OSDN Git Service

0d8f01a06e93a0887f1f7a7ad021b42ef515a892
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-12-02  Richard Earnshaw  <rearnsha@arm.com>
2
3         * arm.h (ARM_REGNO_OK_FOR_BASE_P, THUMB_REGNO_MODE_OK_FOR_BASE_P): New
4         macros.
5         (REGNO_MODE_OK_FOR_BASE_P): Define in terms of above.
6         (REGNO_OK_FOR_FOR_BASE_P): Delete.
7         (ARM_REG_OK_FOR_BASE_P, THUMB_REG_MODE_OK_FOR_BASE_P): New macros for
8         both strict and non-strict uses.
9         (REG_MODE_OK_FOR_BASE_P): Define in terms of above.
10         (ARM_REG_OK_FOR_INDEX_P, THUMB_REG_OK_FOR_INDEX_P): New macros.
11         (REG_OK_FOR_INDEX_P): Define in terms of above.
12         (REG_OK_FOR_BASE_P): Delete.
13         (REG_OK_FOR_PRE_POST_P): Delete.
14         (ARM_BASE_REGISTER_RTX_P): Renamed from BASE_REGISTER_RTX_P.
15         (ARM_INDEX_REGISTER_RTX_P): Renamed from INDEX_REGISTER_RTX_P.
16         (ARM_GO_IF_LEGITIMATE_INDEX): Renamed from GO_IF_LEGITIMATE_INDEX.
17         (THUMB_LEGITIMATE_OFFSET): Renamed from LEGITIMATE_OFFSET.
18         (ARM_GO_IF_LEGITIMATE_ADDRESS): Adjust for name changes.  Use ARM
19         specific variants rather than general ones.  Use ARM_REG_OK_FOR_BASE_P
20         in pre/post increment cases.
21         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Similarly for Thumb.
22         (ARM_LEGITIMIZE_ADDRESS): Similarly.
23         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Similarly.
24         * arm.c (legitimate_pic_address): Similarly.
25
26 2000-12-02  Neil Booth  <neilb@earthling.net>
27
28         * tradcpp.c (struct answer, parse_assertion, parse_answer,
29         canonicalize_text, find_answer): New.
30         (do_assert, do_unassert): Provide appropriate function bodies.
31         (union hashval): New member answers.
32
33 2000-11-23  Marek Michalkiewicz  <marekm@linux.org.pl>
34
35         * config/avr/avr.md: Document UNSPEC usage.
36         (*tablejump_rjmp, *tablejump_lib, *tablejump_enh, *tablejump):
37         Make operand 0 input only, clobber it.  Use UNSPEC, not a bogus
38         MEM for program memory word reference.  Do not add the label to
39         the table index in each of the asm output templates, instead ...
40         (casesi): ... do it in RTL.  Adjust to match the above change.
41
42 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
43
44         * c-common.c (PTRDIFF_TYPE): Provide default here, ...
45         * c-decl.c: ... not here.
46
47         * haifa-sched.c (sched_dump): Renamed from dump.  All users changed.
48         (old_max_uid): New variable.
49         (compute_forward_dependences): Renamed from
50         compute_block_forward_dependences; changed to accept block head and
51         tail instead of block number.  Caller changed.
52         (free_deps, init_dependency_caches, free_dependency_caches,
53         init_regions, sched_init): New functions, split out from
54         schedule_insns and compute_block_backward_dependences.
55
56 2000-12-02  Neil Booth  <neilb@earthling.net>
57
58         * cppexp.c (parse_number): Update diagnostic test.
59
60 2000-12-02  Bernd Schmidt  <bernds@redhat.co.uk>
61
62         * reload1.c (free_for_value_p): New function, frontend to
63         reload_reg_free_for_value_p.  All callers of the latter now call
64         this function with an additional mode argument.
65
66 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
67
68         * install.texi (Configurations): Remove obsolete documentation for
69         hppa*-*-*.
70
71 2000-12-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
72
73         * install.texi (Installation): Remove obsolete description for
74         libstdc++ which is now an integral part of GCC.
75         
76 2000-12-01  Jim Blandy  <jimb@redhat.com>
77
78         * dbxout.c (dbxout_parms): Correctly describe parameters passed by
79         invisible reference in registers, but then spilled to the stack.
80         Remove code to emit a second stab for such parameters; it attempts
81         to describe the value's location by introducing a synthetic C++
82         `reference' type, and then saying the stack slot has that
83         reference type.  This loses type information (breaking GDB's
84         `ptype' command, among other things) just to describe a location
85         which stabs can represent correctly in other ways.
86
87 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
88
89         * final.c (output_addr_const) <PLUS>: Don't assume at least one
90         operand is a CONST_INT.
91
92         * config/sh/sh.c (reg_class_from_letter): Assign `k' to SIBCALL_REGS.
93         (machine_dependent_reorg): Split all insns.
94         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Compute
95         reg_class_contents[SIBCALL_REGS].
96         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add SIBCALL_REGS.
97         * config/sh/sh.md (calli_pcrel, call_pcrel, call_valuei_pcrel,
98         call_value_pcrel, call, call_value, sibcall): Match even when
99         not optimizing.
100         (sibcalli_pcrel, sibcall_pcrel): Likewise.  Use constraint `k'
101         for call address.
102         (sibcalli): Likewise.
103
104 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
105
106         * c-common.c (warn_format, warn_format_y2k,
107         warn_format_extra_args, warn_format_nonliteral): Define.
108         (check_format_info): Check warn_format_nonliteral and
109         warn_format_extra_args.
110         (check_format_info_main): Check warn_format_y2k.
111         (set_Wformat): New function.
112         * c-common.h (warn_format_y2k, warn_format_extra_args,
113         warn_format_nonliteral, set_Wformat): Declare.
114         * c-decl.c (warn_format): Remove definition.
115         (c_decode_option): Handle -Wformat-nonliteral,
116         -Wno-format-extra-args and -Wno-format-y2k, and negated versions.
117         Use set_Wformat.
118         * invoke.texi: Document these new options and -Wformat=2.
119         * toplev.c (documented_lang_options): Add these new options.
120
121 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
122
123         * builtins.def (BUILT_IN_IMAXABS): Add.
124         * builtins.c (expand_builtin): Also abort on BUILT_IN_IMAXABS.
125         * c-common.c (c_common_nodes_and_builtins): Create builtin
126         functions __builtin_imaxabs, and plain imaxabs unless
127         flag_no_nonansi_builtin outside C99 mode.
128         (expand_tree_builtin): Handle BUILT_IN_IMAXABS.
129         * extend.texi: Document builtin imaxabs.
130
131 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
132
133         * c-common.c: Include "defaults.h".
134         (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Define.
135         (c_common_nodes_and_builtins): Create string_type_node,
136         const_string_type_node, wint_type_node, intmax_type_node,
137         uintmax_type_node, default_function_type, ptrdiff_type_node and
138         unsigned_ptrdiff_type_node.
139         * c-common.h (identifier_global_value): Declare.
140         * c-decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
141         (init_decl_processing): Don't create string_type_node,
142         const_string_type_node, wint_type_node, intmax_type_node,
143         uintmax_type_node, default_function_type, ptrdiff_type_node and
144         unsigned_ptrdiff_type_node.
145         (identifier_global_value): New function.
146
147 2000-12-01  Neil Booth  <neilb@earthling.net>
148
149         * cppinit.c (initialize): Forgotten prototype.
150         * cpplex.c (_cpp_lex_token): Loop until not skipping.
151         Always clear PREV_WHITE upon meeting a new line.
152         * cpplib.c (end_directive): Set pfile->skipping after
153         skip_rest_of_line.
154         * cpplib.h (cpp_reader): Remove macro_pos.
155         * cppmacro.c (cpp_get_line): Don't do anything special inside
156         macros.  
157         (parse_arg): Add PREV_WHITE if a token appears after new lines.
158         (funlike_invocation_p): Save and restore the output position
159         over a successful check for a '('.
160         (enter_macro_context): Delete uses of macro_pos.
161         (cpp_get_token): Don't use pfile->skipping.
162
163 2000-12-01  Phil Edwards  <pme@sources.redhat.com>
164
165         * diagnostic.c:  Fix typos in comments.
166         * diagnostic.h:  Likewise.
167
168 2000-11-30  Phil Edwards  <pme@sources.redhat.com>
169
170         * rtl.texi (Machine Modes):  Document BImode and OImode.
171
172 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
173
174         * gcc.c (default_compilers): Add suffixes .mi, .cp, .ii, .FOR and
175         .FPP.
176
177 2000-12-01  Joseph S. Myers  <jsm28@cam.ac.uk>
178
179         * c-decl.c (grokdeclarator): If pedantic, warn about arrays with
180         incomplete element type.
181         (grokparms): Before checking for incomplete parameter type, check
182         the type isn't error_mark_node.
183
184 2000-12-01  Jakub Jelinek  <jakub@redhat.com>
185
186         * builtins.c (target_char_cast): New function.
187         (expand_builtin_strchr): Use it.
188         (expand_builtin_strrchr): Use it.
189         (builtin_memset_read_str): New function.
190         (expand_builtin_memset): Use target_char_cast.
191         Try to optimize memset with second argument non-zero using
192         store_by_pieces.
193
194 2000-11-30  Marek Michalkiewicz  <marekm@linux.org.pl>
195
196         * install.texi (avr): Replace incomplete list of supported MCU
197         types with a link to the current one ...
198         * invoke.texi (AVR Options): ... here.  Update -mmcu= to list
199         all supported MCU types.  Document -minit-stack= default.
200         Document new options -mno-tablejump, -mtiny-stack.
201         * md.texi (AVR family):  Fix typo in 'w' constraint letter
202         description.  Document 'q'.  Update 'O'.
203
204 2000-12-01  Bernd Schmidt  <bernds@redhat.co.uk>
205
206         * combine.c (cant_combine_insn_p): Only disallow insns involving
207         hard regs if they are reg-reg moves.
208         (try_combine, can_combine_p, combinable_i3pat): Delete old
209         SMALL_REGISTER_CLASSES tests.
210
211 2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
212
213         * config/sh/sh.c (shiftcosts): Don't get INTVAL before testing
214         whether X is a CONST_INT.
215         (addsubcosts): Likewise.
216
217         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA): Use INTVAL instead of
218         mis-used XINT.
219         (ARG_POINTER_REGNUM): Set to AP_REG.
220
221 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
222
223         * config/sh/sh.md (fpu_switch0, fpu_switch1, movpsi, fpu_switch,
224         splits): Only match on TARGET_SH4.
225
226         * combine.c (try_combine): Disregard USEs when updating LOG_LINKS
227         of subsequent insns.
228
229 2000-11-30  Richard Henderson  <rth@redhat.com>
230
231         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Disable.
232         * config/alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
233
234 2000-11-30  Richard Henderson  <rth@redhat.com>
235
236         * config/alpha/elf.h (ASM_OUTPUT_SECTION_NAME): Copy elfos.h defn.
237         (DO_SELECT_SECTION): New.
238         (SELECT_SECTION): Use it.
239         (UNIQUE_SECTION_P): New.
240         (UNIQUE_SECTION): New.
241
242 2000-11-30  Alexandre Oliva  <aoliva@redhat.com>
243
244         * c-common.c (status_warning) [! ANSI_PROTOTYPES]: Load status
245         from va_list before using it.
246
247 2000-11-30  Michael Matz  <matzmich@cs.tu-berlin.de>
248
249         * flow.c (make_edge): Early out, if no flags to set.
250         (calculate_global_regs_live): Clear out garbage only when necessary.
251
252         * simplify-rtx.c (varray_type used_regs): New.
253         (clear_table): Use it to only clear necessary items.
254         (cselib_lookup, cselib_record_set): Remember newly set items.
255         (cselib_update_varray_sizes, cselib_init): Initialize and grow
256         used_regs.
257
258         * local-alloc.c (update_equiv_regs): New local `cleared_regs'.
259         Move clearing of dead regs out of insn-loop.
260
261 2000-11-30  Richard Henderson  <rth@redhat.com>
262
263         * calls.c (expand_call): Emit queued insns before creating
264         the tail recursion sequence.
265
266 2000-11-30  J. David Anglin  <dave.anglin@nrc.ca>
267             Bruce Korb  <bkorb@gnu.org>
268
269         * fixinc/inclhack.def(): prevent dual double definition protection
270         * fixinc/fixincl.x: regenerate
271
272 2000-11-29  Loren J. Rittle  <ljrittle@acm.org>
273
274         * fixinc/Makefile.in (fixincl.x): Explicitly state the
275         location of the generated file.
276
277 2000-11-30  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
278
279         * README.FRESCO: Remove obsolete file.
280
281 2000-11-30  Mark Kettenis  <kettenis@gnu.org>
282
283         * configure.in: Reorganize handling of *-*-gnu*, to share target
284         specific make details with Linux.  Update comments to clarify
285         the distinction between GNU/Linux and GNU/Hurd.
286         * config/t-gnu (LIBGCC1, CROSS_LIBGCC1, CRTSTUFF_T_CFLAGS,
287         TARGET_LIBGCC2_CFLAGS): Remove.  We now use the settings from
288         config/t-linux for the Hurd.
289
290 2000-11-30  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
291
292         * config/mn10200/udivmod.c, config/mn10200/divmod.c,
293         config/mn10200/udivmodsi4.c: Moved from here.
294         * config/udivmod.c, config/divmod.c, config/udivmodsi4.c: To here.
295         * config/mn10200/t-mn10200 (LIB2FUNCS_EXTRA): Use the generic
296         C division functions.
297         * config/m68hc11/t-m68hc11-gas (LIB2FUNCS_EXTRA): Likewise.
298
299 Thu Nov 30 01:12:52 2000  Jeffrey A Law  (law@cygnus.com)
300
301         * pa.md (conditional moves): Avoid holes in operand list.
302         (mod, umod patterns): Similarly.
303         (variable extract/shift patterns): Similarly.
304
305 2000-11-30  Neil Booth  <neilb@earthling.net>
306
307         * objc/objc-act.c (lang_init, finish_file, maybe_objc_comptypes,
308         maybe_objc_check_decl, build_objc_string_object,
309         objc_declare_alias, objc_declare_class, build_message_expr,
310         build_protocol_expr, build_selector_expr, build_encode_expr,
311         get_class_ivars, start_class, start_protocol): Remove
312         redundant code, assuming doing_objc_thang is true.
313
314 2000-11-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
315
316         * pa.c (restore_unscaled_index_insn_codes): Delete procedure.
317         (record_unscaled_index_insn_codes): Likewise.
318         (unscaled_index_insn_codes): Delete.
319         (max_unscaled_index_insn_codes_uid): Delete.
320         (output_function_prologue, output_function_epilogue, pa_reorg):
321         Don't use the unscaled index insn hack.
322
323         * pa.md: Remove hack from all index insns to reverse the operand
324         order of frame and stack pointer references incorrectly created
325         in the reload pass.
326
327         * function.h (emit_status): Delete member regno_pointer_flag and
328         rename regno_pointer_flag_length to regno_pointer_align_length.
329         Delete define for REGNO_POINTER_FLAG.
330         * integrate.h (inline_remap): Delete member regno_pointer_flag.
331         Add member x_regno_reg_rtx.
332         * rtl.h (rtx_def): Use frame_related bit to indicate register is
333         a pointer in REG expressions.  Define REG_POINTER macro.
334         * alias.c (find_base_value, find_base_term): Use REG_POINTER
335         instead of REGNO_POINTER_FLAG.
336         * combine.c (nonzero_bits, num_sign_bit_copies): Likewise.
337         * emit-rtl.c (gen_reg_rtx): Use regno_pointer_align_length instead
338         of regno_pointer_flag_length.  Remove code which refers to
339         regno_pointer_flag.
340         (mark_reg_pointer): Use REG_POINTER.
341         (free_emit_status): Remove code which refers to regno_pointer_flag.
342         (init_emit, mark_emit_status): Likewise.
343         * flow.c (dump_flow_info): Likewise.
344         * function.c (preserve_temp_slots): Likewise.
345         * integrate.c (expand_inline_function, copy_rtx_and_substitute):
346         Use x_regno_reg_rtx instead of regno_pointer_flag for function
347         pointer determination in map.
348         * loop.c (strength_reduce, maybe_eliminate_biv_1): Use REG_POINTER.
349         * predict.c (estimate_probability): Likewise.
350         * regclass.c (record_address_regs, reg_scan_mark_refs): Likewise.
351         * unroll.c (unroll_loop): Use x_regno_reg_rtx instead of
352         regno_pointer_flag for function pointer determination in map.
353         * convex.h (RTX_COSTS): Don't test regno_pointer_flag and use
354         REG_POINTER.
355         * pa.c (hppa_legitimize_address, emit_move_sequence, basereg_operand):
356         Use REG_POINTER.
357         (restore_unscaled_index_insn_codes): Revise comment.
358
359         * expr.c (do_compare_and_jump): Add missing TYPE_MODE in statement.
360
361 2000-11-30  Joseph S. Myers  <jsm28@cam.ac.uk>
362
363         * extend.texi: Update documentation for attributes.
364
365 2000-11-29  David O'Brien  <obrien@FreeBSD.org>
366
367         * config/alpha/elf.h (IDENT_ASM_OP): Protect the #define.
368         (ASM_DECLARE_OBJECT_NAME): Same.
369         (ASM_FILE_END): Same.
370         (ASM_FINISH_DECLARE_OBJECT): Same.
371         (ASM_IDENTIFY_GCC): Same.
372         (ASM_IDENTIFY_LANGUAGE): Same.
373         (ASM_OUTPUT_CONSTRUCTOR): Same.
374         (ASM_OUTPUT_DEF): Same.
375         (ASM_OUTPUT_DESTRUCTOR): Same.
376         (ASM_OUTPUT_EXTERNAL_LIBCALL): Same.
377         (ASM_OUTPUT_SECTION_NAME): Same.
378         (ASM_WEAKEN_LABEL): Same.
379         (BSS_SECTION_ASM_OP): Same.
380         (COMMON_ASM_OP): Same.
381         (CONST_SECTION_ASM_OP): Same.
382         (CONST_SECTION_FUNCTION): Same.
383         (CTORS_SECTION_ASM_OP): Same.
384         (DTORS_SECTION_ASM_OP): Same.
385         (ESCAPES): Same.
386         (FINI_SECTION_ASM_OP): Same.
387         (IDENT_ASM_OP): Same.
388         (IDENT_ASM_OP): Same.
389         (INIT_SECTION_ASM_OP): Same.
390         (INT_ASM_OP): Same.
391         (MAX_OFILE_ALIGNMENT): Same.
392         (SBSS_SECTION_ASM_OP): Same.
393         (SDATA_SECTION_ASM_OP): Same.
394         (SECTION_FUNCTION_TEMPLATE): Same.
395         (SELECT_SECTION): Same.
396         (SE_CONST_SECTION): Same.
397         (SIZE_ASM_OP): Same.
398         (SKIP_ASM_OP): Same.
399         (STRING_ASM_OP): Same.
400         (STRING_LIMIT): Same.
401         (TYPE_ASM_OP): Same.
402         (TYPE_OPERAND_FMT): Same.
403
404 2000-11-29  Neil Booth  <neilb@earthling.net>
405
406         * c-decl.c (c_decode_option): Don't handle -lang-objc.
407         * objc/lang-options.h: Remove -lang-objc.
408         * objc/lang-specs.h: Don't pass -lang-objc to cc1obj.
409         * objc/objc-act.c (lang_init_options): Set c_language.
410
411 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
412
413         * expr.c (can_store_by_pieces): Reinitialize max_size for reverse
414         tests.
415
416 2000-11-29  Neil Booth  <neilb@earthling.net>
417
418         * c-pragma.c (init_pragma): Update for parse_in type change.
419
420 2000-11-29  Laurynas Biveinis  <lauras@softhome.net>
421
422         * configure.in: recognize DOS-style absolute paths.
423
424 2000-11-29  Jakub Jelinek  <jakub@redhat.com>
425
426         * expr.h (store_by_pieces): Add prototype.
427         (can_store_by_pieces): Likewise.
428         * expr.c (struct store_by_pieces): Renamed from clear_by_pieces.
429         (can_store_by_pieces): New.
430         (store_by_pieces): New.
431         (clear_by_pieces): New.
432         (clear_by_pieces_1): New.
433         (store_by_pieces_1): Renamed from clear_by_pieces, handle storing
434         arbitrary compiler generated constants into memory block.
435         (store_by_pieces_2): Renamed from clear_by_pieces_1, likewise.
436         * builtins.c (c_readstr): New.
437         (builtin_memcpy_read_str): New.
438         (expand_builtin_memcpy): If src is string constant and
439         emit_block_move would move it by pieces, compute integer constants
440         from the string and store it into memory block instead.
441         (builtin_strncpy_read_str): New.
442         (expand_builtin_strncpy): If N is not constant zero and c_strlen does
443         not return INTEGER_CST, don't optimize.
444         If N is larger than strlen(src) + 1, try to copy the string
445         including padding with store_by_pieces.
446         (expand_builtin_strcmp): If both arguments have side effects, don't
447         optimize.
448         (expand_builtin_fputs): If STR has side effects, don't optimize.
449
450 2000-11-29  Richard Earnshaw  <rearnsha@arm.com>
451
452         * arm.md (sibcall, sibcall_value, sibcall_insn, sibcall_value_insn):
453         Add use of link register.
454
455 2000-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
456
457         * extend.texi: Update documentation for default format attributes.
458
459 Tue Nov 28 21:56:45 2000  Jeffrey A Law  (law@cygnus.com)
460
461         * pa/pa-64.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
462         a list, to keep track of the sections.
463
464 2000-11-28  Nick Clifton  <nickc@redhat.com>
465
466         * config/arm/arm.md (pic_load_addr): Split into
467         pic_load_addr_arm and pic_load_addr_thumb.
468
469         * config/arm/arm.c (legitimize_pic_address): Generate either
470         ARM or Thumb versions of pic_load_addr.
471         (arm_finalize_pic): Generate either ARM or Thumb versions of
472         pic_load_addr.
473
474 2000-11-28  Richard Henderson  <rth@redhat.com>
475
476         * calls.c (expand_call): Defer const/pure NO_DEFER_POP until
477         after sibcall do_pending_stack_adjust.
478
479 Wed Nov 29 00:08:23 2000  J"orn Rennecke <amylaar@redhat.com>
480
481         * jump.c (delete_insn): Check that REG_LABEL note actually contains
482         a CODE_LABEL.
483
484 2000-11-28  Neil Booth  <neilb@earthling.net>
485
486         * c-common.h: Remove flag_digraphs.
487         * c-decl.c: Remove flag_digraphs.  
488         (c_decode_option): Don't set it. 
489         * c-lex.c (init_c_lex): Don't do anything for digraphs.
490
491 2000-11-28  Richard Henderson  <rth@redhat.com>
492
493         * c-parse.in (finish_parse): Update for parse_in type change.
494         (_yylex): Likewise.
495
496 2000-11-28  Neil Booth  <neilb@earthling.net>
497
498         * cppmacro.c (cpp_scan_buffer_nooutput): Take a boolean
499         indicating whether to scan all buffers on the stack or
500         just one.
501         * cppinit.c (do_includes): Update.
502         * cppmain.c (main): Update.
503         * cpplib.h: Update prototype.
504
505 2000-11-28  Richard Henderson  <rth@redhat.com>
506
507         * genoutput.c (validate_insn_operands): New.
508         (gen_insn): Call it.
509
510         * config/alpha/alpha.md (divmodsi_internal): Renumber operands.
511         (divmoddi_internal): Likewise.
512         * config/arm/arm.md (andsi3_compare0_scratch): Likewise.
513         * config/i960/i960.md (branch patterns): Likewise.
514         * config/ia64/ia64.md (tbit_and_0): Likewise.
515         (tbit_and_1, tbit_or_0, tbit_or_1): Likewise.
516         * config/m68k/m68k.md (zero_extract memory patterns): Likewise.
517         * config/mips/mips.md (divmodsi4_internal): Likewise.
518         (divmoddi4_internal): Likewise.
519         * config/rs6000/rs6000.md (call patterns): Likewise.
520         * config/sh/sh.md (movsi_y): Likewise.
521         * config/sparc/sparc.md: Comment out if 0 v8p shift pattern.
522
523 2000-11-28  Richard Henderson  <rth@redhat.com>
524
525         * config.gcc: Kill residual pyramid support.
526
527 2000-11-28  Neil Booth  <neilb@earthling.net>
528
529         * c-lex.h (parse_in): Change parse_in to a cpp_reader *.
530         * c-decl.c (c_decode_option): Update to match.
531         * c-lex.c (init_c_lex, yyparse): Update to match.
532         * c-lang.c (lang_init_options): Use cpp_create_reader.
533         * cppinit.c (cpp_init): Rename initialize.
534         (cpp_reader_init): Rename cpp_create_reader.  Create the
535         reader.  Initialize cpplib if appropriate.
536         * cpplib.h (cpp_create_reader) New prototype.
537         (cpp_init, cpp_reader_init): Delete prototypes.
538         * cppmain.c (general_init, setup_callbacks): New functions.
539         (main): Use them.
540         * fix-header.c (scan_in): Change type to cpp_reader *.
541         (read_scan_file): Update for new cpplib interface and scan_in type.
542
543         * cp/decl.c (parse_in): Change to cpp_reader *.
544         (lang_decode_option): Update.
545         * cp/lex.c (lang_init_options): Use new cpplib interface.
546         (init_cp_pragma, finish_parse, handle_pragma_implementation): Update.
547         * cp/spew.c (read_token): Update.
548         * objc/objc-act.c (lang_init_options): Update new cpplib interface.
549
550 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
551
552         * loop.c (load_mems): Avoid using next_label to find end_label. If
553         jumping outside of the loop (other than loop end), don't hoist MEMs
554         out of loop.
555
556 2000-11-28  Jan Hubicka  <jh@suse.cz>
557
558         * calls.c (expand_call): Don't disable tail recursion based
559         on the loop nest.
560
561 2000-11-28  Neil Booth  <neilb@earthling.net>
562
563         * tradcpp.c (enum node_type): New hash types T_ASSERT, T_UNASSERT.
564         (struct directive): Drop 4th argument from handlers.
565         (do_define, do_line, do_include, do_undef, do_else, do_elif,
566         do_endif): Similarly.
567         (do_assert, do_unassert, do_ifdef, do_ifndef): New handlers.
568         (do_ifxdef): Update as common handler of do_ifdef and do_ifndef.
569         (make_definition, make_undef): Take a const char*.
570         (make_assertion): New function.
571         (struct directive_table): Update.
572         (main): Handle -A command line argument.
573         (handle_directive): Drop fourth handler argument.
574
575 2000-11-28  Bernd Schmidt  <bernds@redhat.co.uk>
576
577         * simplify-rtx.c (cselib_record_sets): Ignore sets whose destination
578         is anything but REG or MEM, but look inside STRICT_LOW_PART.
579
580 Tue Nov 28 09:53:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
581
582         * system.h (IS_DIR_SEPARATOR): Use uppercase macro name.
583         (IS_ABSOLUTE_PATHNAME): New macro.
584         * gcc.c (find_a_file, process_command, do_spec_1, main): Use it.
585
586 2000-11-28  Jakub Jelinek  <jakub@redhat.com>
587
588         * config/i386/i386.md (truncxfsf2_2): Fix predicate.
589
590 2000-11-27  Jim Wilson  <wilson@redhat.com>
591
592         * reload1.c (reload): Use HOST_WIDE_INT for old_frame_size.
593
594 2000-11-27  Matthias Klose  <doko@cs.tu-berlin.de>
595
596         * extend.texi (Nested Functions): Update URL of Usenix paper.
597
598 2000-11-27  Mark Mitchell  <mark@codesourcery.com>
599
600         * function.c (free_after_compilation): Clear x_clobber_return_insn.
601
602 2000-11-27  Neil Booth  <neilb@earthling.net>
603
604         * cppinit.c (cpp_reader_init): Remove handling of warn_paste   
605         command line options.
606         (cpp_handle_option): Similarly.
607         * cpplib.h (struct cpp_options): Remove warn_paste.
608         * cppmacro.c (paste_tokens): Apart from assembler, make
609         unpasteable token warning mandatory.
610
611 2000-11-27  Neil Booth  <neilb@earthling.net>
612
613         * tradcpp.c (enum pending_dir_t, struct pending_dir): New.
614         (main): Allocate a pending directive set of these.  Use it.
615         Merge handling of -D and -U.  Update handling of pending
616         directives.  Free the memory after use.
617
618 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
619
620         * flow.c (entry_exit_blocks): Add entry for cond_local_set.
621         (struct propagate_block_info): Add new member cond_local_set.
622         (propagate_block): Accept new arg cond_local_set.  All callers
623         changed.
624         (init_propagate_block_info): Likewise.
625         (calculate_global_regs_live): Allocate & free cond_local_set.  Always
626         rescan if there's overlap between cond_local_set and new_live_at_end.
627         (mark_set_1): Set bits either in cond_local_set or local_set, as
628         appropriate.
629         * basic-block.h (struct basic_block_def): New field cond_local_set.
630         (propagate_block, init_propagate_block_info): Update prototypes.
631
632 Mon Nov 27 17:29:44 2000  kaz Kojima <kkojima@rr.iij4u.or.jp>
633
634         * gcc/config/sh/sh.md (udivsi3_i4, udivsi3_i4_single): Clobber
635         T register.
636
637 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
638
639         * arm.c (select_dominance_cc_mode): Handle new way that combine
640         canonicalizes conditional compares.
641         (arm_select_cc_mode): Likewise.
642         * arm.md: Garbage collect some dead code.
643         (cmp_and, cmp_ior): New patterns.
644         (splitter for conditional move with inverted false): Use cond_exec
645         and handle unordered comparisons.
646
647 Mon Nov 27 17:22:56 MET 2000  Jan Hubicka  <jh@suse.cz>
648
649         * i386.c (ix86_force_to_memory, ix86_free_from_memory): New.
650         * i386-protos.h (ix86_force_to_memory, ix86_free_from_memory): Declare
651         * i386.md (float?i?f, int/fp operations): Rewrite spliters to use
652         ix86_force_to_memory and ix86_free_from_memory.
653
654 2000-11-27  Richard Earnshaw  <rearnsha@arm.com>
655
656         * arm.md (arm_adddi3, adddi_sesidi_di, adddi_zesidi_di, arm_addsi3,
657         arm_subsi3_insn, anddi_zesidi_di, arm_andsi3_insn, anddi_notdi_di,
658         anddi_notzesidi_di, anddi_notsesidi_di, arm_iorsi3, 
659         one_cmpldi2): Merge with splitters to create define_insn_and_split
660         patterns.  Remove redundant splits.
661         (peephole2 for add:SI of invalid immediate): New.
662         (peephole2 for minus:SI of invalid immediate): New.
663         (peephole2 for ior:SI of invalid immediate): New.
664         (peephole for merge of move and compare): Convert ot peephole2.
665         (addsf3, adddf3): Mark as commutative.
666
667         * arm.md (thumb peephole for merging stack adjustments): Convert to
668         peephole2.
669
670 2000-11-27  Bernd Schmidt  <bernds@redhat.co.uk>
671
672         * haifa-sched.c (print_pattern): Prettier output for COND_EXEC.
673
674         * reload1.c (reload_cse_simplify_set): Pass down mode to cselib_lookup.
675         (reload_cse_simplify_operands): Do nothing about operands where both
676         the operand and the match_operand fail to give us a mode.
677         * simplify-rtx.c (wrap_constant): New function.
678         (entry_and_rtx_equal_p): Except integer constants to come wrapped in a
679         CONST describing the proper mode.
680         (rtx_equal_for_cselib_p): Pass down modes to recursive calls of
681         cselib_lookup.
682         (cselib_lookup_mem): Call wrap_constant on the rtx that is passed to
683         htab_find_slot_with_hash.
684         (cselib_lookup): Likewise.
685
686         Based on a patch from Geoff Keating <geoffk@redhat.com>:
687         * loop.c (basic_induction_var): If a REG is set from something
688         that is not a biv, then the REG is not a biv.  Even if it is
689         earlier set from something that is a biv.
690
691 2000-11-27  Alexandre Oliva  <aoliva@redhat.com>
692
693         * configure.in (extra_objs): Enclose extra_headers in quotes.
694         * configure: Rebuilt.
695
696 2000-11-27  Neil Booth  <neilb@earthling.net>
697
698         * c-lex.c (cb_enter_file, cb_leave_file, cb_rename_file):
699         Combine into the new function cb_change_file.
700         (init_c_lex): Update.
701         * cppfiles.c (stack_include_file): Use _cpp_do_file_change.
702         (cpp_syshdr_flags): Delete.
703         * cpphash.h (_cpp_do_file_change): New prototype.
704         Move struct cpp_buffer here from...
705         * cpplib.h (struct cpp_buffer): ... here.
706         (enum cpp_fc_reason, struct cpp_file_loc,
707         struct_cpp_file_change, change_file): New.
708         (enter_file, leave_file, rename_file, cpp_syshdr_flags): Delete.
709         * cpplib.c (do_line): Update for new cb_change_file callback.
710         (_cpp_do_file_change): New function.
711         (_cpp_pop_buffer): Update to use it.
712         * cppmain.c (move_printer): Delete.
713         (main): Set up single callback cb_change_file.
714         (cb_enter_file, cb_leave_file, cb_rename_file): Delete.
715         (cb_change_file): New.
716         * fix-header.c (cur_file, cb_change_file): New.
717         (recognized_function, read_scan_file): Update.
718         * scan-decls.c (scan_decls): Update.
719         * scan.h (recognized_function): Update prototype.
720
721 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
722
723         * tree.h (mark_tree_hashtable): New function.
724         * tree.c (mark_tree_hashtable_entry): New function.
725         (mark_tree_hashtable): Likewise.
726
727 2000-11-27  Michael Meissner  <meissner@redhat.com>
728
729         * d30v-protos.h (srelational_si_operator): Correctly spell
730         function.
731         (urelational_si_operator): Ditto.
732         (relational_si_operator): Ditto.
733         (d30v_expand_prologue): Add prototype.
734         (d30v_expand_epilogue): Ditto.
735
736         * d30v.h (OPTIMIZATION_OPTIONS): Undo November 22nd change.
737
738         * d30v.md (movcccc_*): Delete now unused patterns.
739         (64 bit comparison splitters): Rewrite to use COND_EXEC instead of
740         IF_THEN_ELSE.
741         (define_cond_exec): Use 'b' to select branch flags.
742
743 2000-11-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
744
745         * builtins.c (expand_builtin_strncmp, expand_builtin_strncpy): New
746         functions.
747         (expand_builtin): Handle BUILT_IN_STRNCPY and BUILT_IN_STRNCMP.
748
749         * builtins.def (BUILT_IN_STRNCPY, BUILT_IN_STRNCMP): New entries.
750
751         * c-common.c (c_common_nodes_and_builtins): Declare builtin
752         strncpy and strncmp.
753
754         * extend.texi (strncmp, strncpy): Document new builtins.
755
756 2000-11-26  Mark Mitchell  <mark@codesourcery.com>
757
758         * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Use a hash table, not
759         a list, to keep track of the sections.
760         * tm.texi (ASM_OUTPUT_SECTION_NAME): Document the fact that the
761         parameter provided will always be a canonical string.
762
763 2000-11-26  Neil Booth  <neilb@earthling.net>
764
765         * cppmacro.c (cpp_scan_buffer_nooutput): Only scan the
766         current buffer.
767
768 2000-11-26  Joseph S. Myers  <jsm28@cam.ac.uk>
769
770         * makefile.vms: Remove EGCS references.
771
772 2000-11-26  Ulrich Drepper  <drepper@redhat.com>
773
774         * dwarf2out.c (output_file_names): New function.  Compute minimal
775         combination of directory and file name table and emit them.
776         (output_line_info): Remove code to emit directory and file name
777         table and call output_file_names instead.
778         (file_info_cmp): Helper function to sort directory names.
779
780 2000-11-26  Neil Booth  <neilb@earthling.net>
781
782         * cpplib.h (struct cpp_reader): Remove lang_asm.
783         (struct cpp_options): Remove c89. New members lang,
784         extended_numbers.
785         * cppexp.c (parse_number): Use them. 
786         * cpphash.h (VALID_SIGN): Use them.
787         * cppinit.c (set_lang, cpp_start_read): Update.
788         * cpplex.c (parse_string, _cpp_lex_token): Update.
789         * cpplib.c (_cpp_handle_directive): Update.
790         * cppmacro.c (parse_args): Update.
791         * cppmain.c (scan_buffer): Update.
792
793 Sun Nov 26 10:02:37 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
794
795         * fold-const.c (fold, case CONVERT_EXPR): Always return tree of
796         proper type.
797
798 2000-11-26  Neil Booth  <neilb@earthling.net>
799
800         * Makefile.in: Remove MAYBE_CPPLIB and maybe_cpplib.
801         * c-decl.c: Remove parse_in declaration.
802         * c-lang.c: Similarly.
803         * c-lex.c: Similarly.
804         * c-parse.in: Similarly.
805         * c-pragma.c: Similarly.
806         * configure.in: Similarly.
807         * cp/Make-lang.in: Similarly.
808         * cp/spew.c: Similarly.
809         * cp/decl2.c: Remove check for lang-c++ option.
810         * cp/lang-specs.h: Remove -lang-c++ from cc1plus command line.
811         * cp/lex.c (lang_init_options): With cpp_reader_init, default to C++.
812         * c-lex.h: Add declaration of parse_in.
813         * cppinit.c: Call set_lang after allocating pfile->pending.
814         * configure: Regenerate.
815
816 2000-11-25  Zack Weinberg  <zack@wolery.stanford.edu>
817
818         * combine.c (try_combine): Remove redundant test.
819
820 2000-11-25  Richard Henderson  <rth@redhat.com>
821
822         * c-common.h (DECL_C_HARD_REGISTER): New.
823         * c-decl.c (finish_decl): Set it for asm register variables.
824         * c-semantics.c (emit_local_var): Test it when instantiating one.
825
826 2000-11-25  Richard Henderson  <rth@redhat.com>
827
828         * c-decl.c (c_expand_body): Use DECL_SOURCE_LINE rather than
829         lineno for the start of the function.
830
831 2000-11-25  Richard Henderson  <rth@redhat.com>
832
833         * dwarf2out.c (file_table, file_table_allocated): Remove.
834         (file_table_allocated): Remove.
835         (struct file_table): New.
836         (decl_file_table, line_file_table): New.
837         (print_dwarf_line_table): Use them.
838         (size_of_line_prolog): Likewise.
839         (output_line_info): Likewise.
840         (add_src_coords_attributes): Likewise.
841         (gen_subprogram_die): Likewise.
842         (gen_variable_die): Likewise.
843         (dwarf2out_add_library_unit_info): Likewise.
844         (dwarf2out_line): Likewise.
845         (lookup_filename): Take a struct file_table argument.
846         (init_file_table): New.
847         (dwarf2out_init): Use it.
848
849 2000-11-25  Joseph S. Myers  <jsm28@cam.ac.uk>
850
851         * invoke.texi: Update sequence points references.
852
853 2000-11-25  Neil Booth  <neilb@earthling.net>
854
855         * c-common.c: Remove USE_CPPLIB conditional inclusions.
856         * c-common.h: Similarly.
857         * c-decl.c: Similarly.
858         * c-lang.c: Similarly.
859         * c-lex.c: Similarly.
860         * c-parse.in: Similarly.
861         * c-pragma.c: Similarly.
862         * c-pragma.h: Similarly.
863         * gcc.c: Similarly.
864         * toplev.c: Similarly.
865         * cp/cp-tree.h: Similarly.
866         * cp/decl2.c: Similarly.
867         * cp/lang-specs.h: Similarly.
868         * cp/lex.c: Similarly.
869         * cp/lex.h: Similarly.
870         * cp/spew.c: Similarly.
871         * java/lang-options.h: Similarly.
872         * objc/lang-specs.h: Similarly.
873         * objc/objc-act.c: Similarly.
874
875         * configure.in: Remove configure option.
876         * config.in: Regenerate.
877         * configure: Regenerate.
878
879 2000-11-25  Richard Henderson  <rth@redhat.com>
880
881         * haifa-sched.c (sched_analyze_1, sched_analyze_2, sched_analyze):
882         Revert 2000-11-22 change.
883
884 2000-11-25  Bernd Schmidt  <bernds@redhat.co.uk>
885
886         * config/i386/i386.h (FIXED_REGS): Make the three flags registers
887         fixed.
888
889 2000-11-25  Philipp Thomas  <pthomas@suse.de>
890         * configure.in (ALL_LINGUAS): Remove en_GB and add sv.
891         * configure: Rebuilt.
892
893 2000-11-25  Jakub Jelinek  <jakub@redhat.com>
894
895         * config/sparc/sparc.md (muldi3_v8plus): Remove H constraint.
896         Handle CONST_INT as second argument.
897         * config/sparc/sparc.c (set_extends): Remove first argument.
898         Properly handle AND, CONST_INT and CONST_DOUBLE, handle IOR, XOR and
899         MOV.
900         (sparc_check_64): Abort if first argument is not REG.
901         If it is DImode REG, look at the lower register of the register
902         pair.
903
904         * config/sparc/sparc.c (load_pic_register, restore_regs,
905         output_return, sparc_v8plus_shift, sparc_function_profiler,
906         sparc_function_block_profiler, sparc_block_profiler): Fix output
907         formatting.
908
909 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>
910
911         * config/sh/sh.h (TARGET_NONE): New.
912         (TARGET_SWITCHES): For all variant-selecting switch, use
913         TARGET_NONE to reset all other variant-selecting switch.  Added
914         empty strings to avoid warnings.
915         (TARGET_DEFAULT): Set to SH1_BIT.
916
917         * Makefile.in ($(INTL_TARGETS)): Added $(CONFIG_H) for
918         insn-codes.h.
919
920         * gcc/config/sh/sh.md (sibcalli, sibcalli_pcrel): New insns.
921         (sibcall_pcrel): New insn_and_split.
922         (sibcall, sibcall_value, sibcall_epilogue): New expands.
923
924         * config/sh/sh.md (GOTaddr2picreg, symGOT2reg, symGOTOFF2reg,
925         symPLT_label2reg, call, call_value): Don't set
926         current_function_uses_pic_offset_table.
927         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't mark
928         PIC_OFFSET_TABLE_REGNUM as call_used, so that calc_live_regs
929         takes it into account.
930         (FINALIZE_PIC): Delete, useless.
931         (LEGITIMATE_CONSTANT_P): Delete, unused.
932         * config/sh/sh.c (sh_expand_prologue): Don't use
933         current_function_uses_pic_offset_table.  Don't special-case
934         PIC_OFFSET_TABLE_REGNUM.  Initialize it if it's ever live and
935         PIC is enabled.
936         (sh_expand_epilogue, initial_elimination_offset): Don't
937         special case PIC_OFFSET_TABLE_REGNUM.
938
939 2000-11-25  Alexandre Oliva  <aoliva@redhat.com>, NIIBE Yutaka  <gniibe@m17n.org>
940
941         * config/sh/sh-protos.h (symbol_ref_operand): Declare.
942         * config/sh/sh.md (UNSPEC_CALLER): New constant.
943         (calli_pcrel, call_valuei_pcrel): Use PIC_REG.
944         (call_pcrel, call_value_pcrel): New insn_and_splits.
945         (call, call_value): Use them.
946         (call_site): New expand.
947         (sym_label2reg, symPLT_label2reg): Adjust to hold call_sites.
948         * config/sh/sh.h (OUTPUT_ADDR_CONST_EXTRA) [UNSPEC_CALLER]:
949         Output call_site label.
950         (PREDICATE_CODES): Added symbol_ref_operand.
951         * config/sh/sh.c (symbol_ref_operand): Define.
952         * emit-rtl.c (try_split): Propagate CALL_INSN_FUNCTION_USAGE
953         to CALL_INSNs in the split sequence.
954
955 2000-11-24  Nick Clifton  <nickc@redhat.com>
956
957         * config.gcc (v850-*-*): Define c_target_objs and
958         cxx_target_objs.
959
960         * config/v850/t-v850: Define how to build v850-c.o
961
962         * config/v850/v850.h (struct data_area_stack_element): Move
963         definition here from v850.c.
964
965         * config/v850v850.c: Include gcc.h to avoid compile time
966         warning.
967         (push_data_area): Move to v850-c.c.
968         (pop_data_area): Move to v850-c.c.
969         (mark_current_function_as_interrupt): Move to v850-c.c.
970         (GHS_default_section_names): Allow to be exported.
971         (GHS_current_section_names): Allow to be exported.
972         (data_area_stack_elements): Allow to be exported.
973         (ghs_pragma_section): Move to v850-c.c.
974         (ghs_pragma_interrupt): Move to v850-c.c.
975         (ghs_pragma_starttda): Move to v850-c.c.
976         (ghs_pragma_startsda): Move to v850-c.c.
977         (ghs_pragma_startzda): Move to v850-c.c.
978         (ghs_pragma_endtda): Move to v850-c.c.
979         (ghs_pragma_endsda): Move to v850-c.c.
980         (ghs_pragma_endzda): Move to v850-c.c.
981
982         * config/v850/v850-c.c: New file: Contains v850 specific
983         pragma parsing functions.
984
985 2000-11-24  Nick Clifton  <nickc@redhat.com>
986
987         * config.gcc (extra_objs): Remove duplicate description.
988         (c_target_objs): New variable.  Contains target specific
989         object files for the gcc C compiler only.
990         (cxx_target_objs): New variable.  Contains target specific 
991         object files for the gxx C++ compiler only.
992
993         * configure.in (c_target_objs): Substitute in the makefile.
994         (cxx_target_objs): Substitute in the makefile.
995         * configure: Regenerate.
996
997         * Makefile.in (C_TARGET_OBJS): Define and initialise from
998         c_target_objs.
999         (CXX_TARGET_OBJS): Define and initialise from
1000         cxx_target_objs.
1001         (C_AND_OBJC_OBJS): Include C_TARGET_OBJS.
1002
1003         * cp/Make-lang.in (CXX_C_OBJS): Include CXX_TARGET_OBJS).
1004
1005         * tm.texi (REGISTER_TARGET_PRAGMAS): Add paragraph explaining
1006         about how the use of the 'c_lex' function requires the use of
1007         the target specific, language specific object files feature of
1008         the configuration mechanism.
1009
1010 Fri Nov 24 18:50:58 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1011
1012         * gcc.c (process_command): Use F_OK, not R_OK.
1013
1014 2000-11-24  Arno J. Klaassen  <arno@heho.snv.jussieu.fr>
1015
1016         * flow.c (print_rtl_and_abort): Remove ANSIism.
1017
1018 Fri Nov 24 19:54:36 2000  Alexandre Oliva  <aoliva@redhat.com>
1019
1020         * config/sh/sh.h (GENERAL_REGISTER_P,
1021         GENERAL_OR_AP_REGISTER_P, FP_REGISTER_P, XD_REGISTER_P,
1022         FP_OR_XD_REGISTER_P, FP_ANY_REGISTER_P): New macros.  Use them
1023         all over.
1024         (SPECIAL_REG): Renamed to SPECIAL_REGISTER_P.
1025         * config/sh/sh.c: Use new macros.
1026         * config/sh/sh.md: Likewise.
1027
1028 Fri Nov 24 19:46:16 2000  Alexandre Oliva  <aoliva@redhat.com>
1029
1030         * config/sh/sh.md: Clobber MACH_REG and MACL_REG in SImode,
1031         instead of just MACH_REG in DImode.  Always refer to FPSCR_REG
1032         in PSImode.
1033
1034 Fri Nov 24 22:37:41 2000  Denis Chertykov  <denisc@overta.ru>
1035
1036         * config/avr/avr.c (out_tsthi,out_tstsi): Test simplification bug
1037         fixed.
1038         (machine_dependent_reorg): Wrong optimization based on
1039         NOTICE_UPDATE_CC removed. 
1040
1041 Fri Nov 24 19:48:09 2000  J"orn Rennecke <amylaar@redhat.com>
1042
1043         * jump.c (delete_computation): Re-instate deletion of feeding insn.
1044         (delete_insn): Look for REG_LABEL notes.
1045         (redirect_tablejump): Delete feeding insns.
1046
1047 2000-11-24  Bernd Schmidt  <bernds@redhat.co.uk>
1048
1049         * config/i386/i386.md (call_pop_0, call_pop_1, call_value_pop_0,
1050         call_value_pop_1): Make sure operand numbers are contiguous.
1051
1052         * fold-const.c (fold_range_test): Avoid crash if LHS or RHS is null.
1053
1054         * reload1.c (conflicts_with_override): New function.
1055         (emit_input_reload_insns): Use it to tighten test for validity
1056         of substituting into output of previous insn.
1057
1058         * haifa-sched.c (struct ready_list): New.
1059         (ready_lastpos, ready_add, ready_remove_first, ready_sort): New static
1060         functions.
1061         (schedule_insn): Replace args READY and N_READY with a pointer to a
1062         ready_list; return void.  Use the new functions to access the ready
1063         list.  All callers changed.
1064         (queue_to_ready, debug_ready_list): Likewise.
1065         (schedule_block): Initialize a ready_list structure.  Use new
1066         functions to access it.
1067         (max_priority): Remove unused variable.
1068         (schedule_insn): Don't set it.
1069
1070         * c-common.c (verify_tree): Don't recurse into CONSTRUCTORs.
1071
1072         * combine.c (cant_combine_insn_p): New function.
1073         (try_combine): Use it.
1074
1075         * Makefile.in (c-common.o): Depend on $(OBSTACK_H).
1076         * c-common.c (c-obstack.c): Include "obstack.h".
1077         (struct reverse_tree): Delete.
1078         (reverse_list, reverse_max_depth): Delete.
1079         (build_reverse_tree, common_ancestor, modify_ok): Delete functions.
1080         (struct tlist, struct tlist_cache): New.
1081         (tlist_obstack, tlist_firstobj, warned_ids, save_expr_cache): New.
1082         (add_tlist, merge_tlist, verify_tree, warning_candidate_p,
1083         warn_for_collisions, warn_for_collisions_1, new_tlist): New
1084         static functions.
1085         (verify_sequence_points): Rewritten.
1086         * fold-const.c (fold): Don't lose possibly important sequence
1087         points when removing one arm of TRUTH_ORIF_EXPRs or TRUTH_ANDIF_EXPRs.
1088
1089 2000-11-24  Richard Sandiford  <rsandifo@redhat.com>
1090
1091         * gcc/cse.c (cse_insn): Removed conversion of REG_EQUIV to REG_EQUAL
1092         when reversing a register-to-register copy.  Reversal now disabled
1093         when the previous instruction has a REG_EQUIV.
1094
1095 2000-11-24  Nathan Sidwell  <nathan@codesourcery.com>
1096
1097         * c-parse.in (unary_expr): Move VA_ARG from here ...
1098         (primary): ... to here.
1099
1100 2000-11-23  Graham Stott  <grahams@redhat.com>
1101
1102         * expr.c (store_constructor): If a field is non addressable and
1103         the target is a MEM use MEM_ALIAS_SET otherwise use get_alias_set.
1104
1105 2000-11-23  Bernd Schmidt  <bernds@redhat.co.uk>
1106
1107         * flow.c (print_rtl_and_abort): New function.
1108         (verify_wide_reg, verify_local_live_at_start): Try to dump more
1109         information before aborting.
1110
1111 2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
1112
1113         * emit-rtl.c (gen_lowpart_common): Use word 0 if register mode
1114         is narrower than requested mode.
1115         (gen_highpart): Abort if register mode is narrower than
1116         requested mode.
1117
1118 2000-11-23  Graham Stott  <grahams@redhat.com>
1119
1120         * cse.c (cse_insn): Initialise all regcost variables.
1121         Fix a typo add missing '='.
1122         Only compare costs if there is a replacement insn.
1123
1124 Thu Nov 23 04:33:33 2000  Alexandre Oliva  <aoliva@redhat.com>
1125
1126         * final.c (output_addr_const) [LABEL_REF]: Simplify.
1127         [MINUS]: Enclose non-CONST_INTs in parentheses.
1128         [default]: Try OUTPUT_ADDR_CONST_EXTRA.
1129         * tm.texi (OUTPUT_ADDR_CONST_EXTRA): Document it.
1130         * varasm.c (decode_rtx_const) [CONST]: If it's not something
1131         PLUS or MINUS a CONST_INT, use the whole CONST with offset 0
1132         instead of abort()ing.
1133         * sh.c (output_pic_addr_const): Removed.  Fixed all callers.
1134         * sh.h (OUTPUT_ADDR_CONST_EXTRA): New.  Handle the UNSPECs
1135         formerly handled in output_pic_addr_const.
1136         * sh.md (sym_label2reg, symPLT_label2reg): Enclose UNSPEC
1137         operands of MINUS in CONSTs so that decode_rtx_const() will
1138         accept them.
1139
1140 Thu Nov 23 04:10:30 2000  Alexandre Oliva  <aoliva@redhat.com>
1141
1142         * config/sh/sh.md (mova_const): New pattern.
1143         (GOTaddr2picreg): Use it.
1144         * config/sh/sh.c (broken_move): Match it.
1145         (mova_p): Don't match it.
1146         (machine_dependent_reorg): Adjust it.
1147
1148 Thu Nov 23 02:09:09 2000  Alexandre Oliva  <aoliva@redhat.com>
1149
1150         * config/sh/sh.h (FIRST_GENERAL_REG, LAST_GENERAL_REG): New.
1151         Moved most register-number #defines...
1152         * config/sh/sh.md (define_constants): ... here.  Use macros to
1153         refer to registers and unspecs.
1154         * config/sh/sh.c: Likewise.
1155
1156 Thu Nov 23 01:01:32 2000  J"orn Rennecke <amylaar@redhat.com>
1157
1158         * Makefile.in (HOST_CFLAGS): Add -DGENERATOR_FILE.
1159         (rtl.o, print-rtl.o, bitmap.o, obstack.o): Build with -DGENERATOR_FILE.
1160         (alloca.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1161         (splay-tree.o, hash.o): Likewise.
1162         GCONFIG_H: New.
1163         (rtl.o, print-rtl.o): Depend on $(GCONFIG_H) instead of $(CONFIG_H).
1164         (bitmap.o, obstack.o, vfprintf.o, ggc-none.o, errors.o): Likewise.
1165         (hashtab.o): Likewise.
1166         (gcov.o): Depend on $(CONFIG_H).
1167         * configure.in: #include insn-codes.h in tm.h.
1168
1169 2000-11-22  Nick Clifton  <nickc@redhat.com>
1170
1171         * config/arm/arm.c (arm_encode_call_attribute): Make 'newstr' a
1172         const char * to avoid a compile time warning.
1173
1174         * config/arm/arm.md (define_constants): Define symbolic names for
1175         the link register, last integer register and the fake CC register.
1176         Update patterns to use these symbolic names.
1177
1178 2000-11-22  Neil Booth  <neilb@earthling.net>
1179
1180         * cpplex.c (trigraph_ok): Ensure we don't warn twice.
1181         * cpplib.h (struct cpp_buffer): New member last_Wtrigraphs.
1182         
1183 2000-11-22  Richard Henderson  <rth@redhat.com>
1184
1185         * haifa-sched.c (sched_analyze_1): Don't special-case calls
1186         for clobbering registers.
1187         (sched_analyze_2): Likewise.
1188         (sched_analyze): Zap reg_last_uses and reg_last_sets after calls.
1189
1190 2000-11-22  Chris Demetriou  <cgd@sibyte.com>  
1191             Neil Booth  <neilb@earthling.net>
1192
1193         * gcc.c (validate_switches): Validate multiple switches named
1194         in '|' (or) expressions in specs.  
1195         (handle_braces): If more than 1 alternative in a '|' spec
1196         matches, call do_spec1 just once.
1197
1198 2000-11-22  Michael Meissner  <meissner@redhat.com>
1199
1200         * d30v.h (TARGET_SWITCHES): Add documentation strings.
1201         (TARGET_OPTIONS): Ditto.
1202         (OPTIMIZATION_OPTIONS): Temporarily turn off -frename-registers if
1203         -O3.
1204         
1205 Wed Nov 22 06:40:56 2000  Jeffrey A Law  (law@cygnus.com)
1206
1207         * pa.c (hppa_encode_label): Account for addition of encoding
1208         character when allocating persistent space for the new label
1209         name.
1210
1211 2000-11-22  Zack Weinberg  <zack@wolery.stanford.edu>
1212
1213         * Makefile.in, config.gcc, configure.in: Expunge remaining
1214         traces of facility for running MD files through C preprocessor.
1215
1216 2000-11-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1217
1218         * gcov.texi: Add magic comments for texi2pod.pl.
1219         * Makefile.in: Add rules to generate and install gcov.1.
1220         * gcov.1: New (generated) file.
1221
1222 2000-11-21  Richard Henderson  <rth@redhat.com>
1223
1224         * regrename.c (scan_rtx_reg): Terminate the chain rather than
1225         abort on mark_read with NO_REGS.
1226
1227 2000-11-21  Mike Stump  <mrs@wrs.com>
1228
1229         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Fix to allow
1230         compilation with older compilers, such as /bin/cc on SunOS.
1231         * fixinc/fixfixes.c (FIX_PROC_HEAD): Ditto.
1232
1233 2000-11-21  Richard Henderson  <rth@redhat.com>
1234
1235         * varasm.c (record_constant): Pad the constructed
1236         constant_descriptor appropriately.
1237
1238 Wed Nov 22 00:52:55 2000  J"orn Rennecke <amylaar@redhat.com>
1239
1240         * rtl.h (traverse_md_constants): Declare.
1241         (struct md_constant): Define.
1242         * Makefile.in (HOST_RTL): Add hashtab.o .
1243         (OBJS): Add hashtab.o .
1244         (hashtab.o): New rule.
1245         (rtl.o): Depends on HASHTAB_H.
1246         * rtl.c (hashtab.h): #include.
1247         (md_constants): New static variable.
1248         (def_hash, def_name_eq_p, read_constants): New static functions.
1249         (traverse_md_constants): New function.
1250         (read_name): Do constant expansion.
1251         (read_rtx): Recognize define_constants.
1252         * gencodes.c (print_md_constant): New function.
1253         (main): Emit #defines for all constant definitions encountered.
1254         * md.texi (Constant Definitions): New node.
1255         * gensupport.c (xcalloc): New function.
1256
1257 2000-11-21  Richard Henderson  <rth@redhat.com>
1258
1259         * config/alpha/alpha.c (alpha_split_tfmode_frobsign): New.
1260         * config/alpha/alpha-protos.h: Declare it.
1261         * config/alpha/alpha.md (abstf_internal): Use it.
1262         (negtf_internal): Likewise.
1263         (andnotdi3): Unstar the name.
1264         (movtf_internal): Add o/G alternative.
1265
1266 2000-11-21  Zack Weinberg  <zack@wolery.stanford.edu>
1267
1268         * stringpool.c (stringpool_statistics): Also report number and
1269         percentage of entries which are identifiers.
1270
1271 2000-11-21  Diego Novillo  <dnovillo@redhat.com>
1272
1273         * gcse.c (hoist_expr_reaches_here_p): Do not mark expr_bb as
1274         visited before visiting it.
1275
1276 2000-11-21  Nick Clifton  <nickc@redhat.com>
1277
1278         * config/arm/arm.h: Accept TARGET_CPU_arm9tdmi,
1279         TARGET_CPU_strongarm110 and TARGET_SPU_strongarm1100.
1280
1281         * config.gcc: Accept --with-cpu=arm9 and --with-cpu=arm9tdmi.
1282         
1283 2000-11-21  Richard Henderson  <rth@redhat.com>
1284
1285         * c-common.c (c_unsafe_for_reeval): New function.
1286         (add_c_tree_codes): Register it.
1287         * c-common.h: Declare it.
1288         * tree.c (lang_unsafe_for_reeval): New hook.
1289         (unsafe_for_reeval): Call it.
1290         * tree.h: Declare it.
1291
1292 2000-11-21  Richard Henderson  <rth@redhat.com>
1293
1294         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify @GOT
1295         references as well.
1296
1297 2000-11-21  Neil Booth  <neilb@earthling.net>
1298
1299         * do_includes: Revert to using cpp_read_file.
1300
1301 2000-11-21  Bernd Schmidt  <bernds@redhat.co.uk>
1302
1303         * loop.c (consec_sets_giv): If the reg we're examining is anything
1304         but UNKNOWN_INDUCT, do nothing.
1305         Reset the reg's type to UNKNOWN_INDUCT before returning.
1306
1307         Mostly from Vladimir Makarov (vmakarov@redhat.com)
1308         * ia64.md (attr itanium_class): Define insn types as described in
1309         Itanium docs.
1310         (all insn patterns): Use itanium_class, not type attributes.
1311         Occasionally split alternatives as necessary.
1312         (attr type): Compute from new attr itanium_class.
1313         
1314 2000-11-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1315
1316         * tradcpp.c (output_line_command): Mark system headers as such in
1317         `line' commands.
1318
1319 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
1320
1321         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Sparc has .file/.loc
1322         support in as as well.
1323         * configure: Regenerate.
1324
1325 2000-11-20  Richard Henderson  <rth@redhat.com>
1326
1327         * c-lex.c (orig_filename): New variable.
1328         (init_c_lex): Set it.  Move call to cpp_start_read ...
1329         (yyparse): ... here.  New function.
1330         * c-parse.in (yyparse_1): Rename the parser entry point.
1331         * c-tree.h: Declare it.
1332
1333 2000-11-21  Jakub Jelinek  <jakub@redhat.com>
1334
1335         * expr.c (do_compare_and_jump): If op0 was replaced by promoted
1336         integer constant, use type of op1 for comparison.
1337
1338 2000-11-20  Stan Shebs  <shebs@apple.com>
1339
1340         * config/rs6000/xm-darwin.h: New file, Darwin host definitions.
1341         * config/rs6000/x-darwin: New file, Darwin host fragment.
1342         * config.gcc (powerpc-*-darwin*): New host.
1343         * system.h (HAVE_DESIGNATED_INITIALIZERS):  Allow this to be
1344         overridden by a config file.
1345
1346 2000-11-20  Neil Booth  <neilb@earthling.net>
1347
1348         * cppmacro.c (paste_tokens): Rename from paste_payloads.
1349         Change token type after pasting spellings.
1350         (paste_all_tokens): Use it.
1351         * gcc.dg/cpp/paste2.c: Update test.
1352         * objc/execute/paste.m: New test.
1353
1354 2000-11-20  Richard Henderson  <rth@redhat.com>
1355
1356         * dwarf.h (FMT_CODE): Adjust argument order; fix mapping to
1357         dwarf_subscr_data_formats bits.
1358         * dwarfout.c (simple_type_size_in_bits): Handle a type with
1359         no computed size as size zero.
1360         (field_byte_offset): Likewise.
1361         (subscript_data_attribute): Handle a range with no upper bound.
1362
1363 2000-11-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1364
1365         * gansidecl.h (const): Check __STDC__ before undef'ing `const'.
1366
1367 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1368
1369         * c-typeck.c (build_conditional_expr): When merging type
1370         qualifiers for conditional expressions between a pointer and a
1371         pointer to a void type, merge the qualifiers on the target types
1372         rather than the pointer type.  Remove obsolete conditioned out
1373         code.
1374
1375 2000-11-20  Neil Booth  <neilb@earthling.net>
1376
1377         * c-lang.c (lang_init_options): Update call to
1378         cpp_reader_init.
1379         * cppmain.c (main): Similarly.
1380         * fix-header.c (read_scan_file): Similarly.
1381         * cp/lex.c (lang_init_options): Similarly.
1382         * objc/objc-act.c (lang_init_options): Similarly.
1383         * cppexp.c (parse_number): Only warn for unextended C89.
1384         * cppinit.c (set_lang): New function.
1385         (cpp_reader_init): Take a LANG argument and pass it to set_lang.
1386         (COMMAND_LINE_OPTIONS): New option std=c++98.
1387         (cpp_handle_option): Use set_lang.
1388         * cpplex.c (_cpp_lex_token): Warn pedantically if not C99.
1389         * cppib.h (enum_c_lang): New enumeration.  Update comments.
1390
1391 2000-11-20  Will Cohen  <wcohen@redhat.com>
1392
1393         * calls.c (expand_call): Clear target only when target is in
1394         hard register and current_function_check_memory_usage is set.
1395
1396 2000-11-20  Bernd Schmidt  <bernds@redhat.co.uk>
1397
1398         * toplev.c (rest_of_compilation): Run optimize_mode_switching even
1399         if not optimizing.
1400         * sh.c (emit_sf_insn, emit_df_insn): Just call emit_insn.
1401
1402 2000-11-19  Richard Henderson  <rth@redhat.com>
1403
1404         * crtstuff.c (force_to_data): Use array size 1 not 0.
1405
1406         * dwarf2out.c (simple_type_size_in_bits): Handle a type with
1407         no computed size as size zero.
1408         (field_byte_offset): Likewise.
1409
1410 2000-11-20  Joseph S. Myers  <jsm28@cam.ac.uk>
1411
1412         * config.gcc: Fix another typo.
1413
1414 2000-11-19  Richard Henderson  <rth@redhat.com>
1415
1416         * c-decl.c (grokdeclarator): Support flexible array members.
1417         Use open-ended ranges for these and zero-length arrays.
1418         * c-typeck.c (push_init_level): Validate the context of
1419         initialization of a zero-length array.
1420         * tree.c (int_fits_type_p): Be prepared for missing bounds.
1421         * varasm.c (array_size_for_constructor): New.
1422         (output_constructor): Use it for arrays of unspecified length.
1423         * extend.texi (Zero Length): Mention C99 flexible array members.
1424         Document initialization in a top-level struct as valid.
1425
1426 2000-11-19  Joseph S. Myers  <jsm28@cam.ac.uk>
1427
1428         * config.gcc, invoke.texi: Fix errors in spelling of "deprecated".
1429
1430         * alias.c (mems_in_disjoint_alias_sets_p): Do use alias sets in
1431         stdarg and varargs functions.
1432
1433 2000-11-19  Zack Weinberg  <zack@wolery.stanford.edu>
1434
1435         * gcc.c (process_command): Define 'j' variable when
1436         MODIFY_TARGET_NAME is defined.
1437
1438 2000-11-19  Richard Henderson  <rth@redhat.com>
1439
1440         * stor-layout.c (variable_size): Only put SAVE_EXPRs on pending_sizes.
1441
1442 2000-11-19  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1443
1444         * rs6000/rs6000.c (rs6000_encode_section_info): Fix string length
1445         calculation and allocation.
1446
1447 2000-11-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1448
1449         * builtins.c (c_getstr): Constify variable.
1450         * gmon-sol2.c (_mcleanup): Comment out #endif labels.
1451         * conflict.c (const_conflict_graph_arc): New typedef.
1452         (arc_hash, arc_eq): Avoid needlessly casting away const-ness.
1453         * cppmacro.c (builtin_macro): Likewise.
1454         * dwarf2out.c (output_comp_unit): Constify variable.
1455         * fix-header.c (v_fatal): Add ATTRIBUTE_PRINTF.
1456         * protoize.c (IS_SAME_PATH_CHAR): Use TOUPPER, not toupper.
1457         * ssa.c (ssa_rename_from_hash_function): Avoid needlessly casting
1458         away const-ness.
1459         * tradcpp.c (rescan, do_line, macroexpand, macarg): Use
1460         ISALNUM/ISDIGIT/ISPRINT, not isalnum/isdigit/isprint. 
1461         * varasm.c (const_str_htab_hash, const_str_htab_eq,
1462         compare_constant_1, record_constant_1): Constify.
1463
1464 2000-11-18  Richard Henderson  <rth@redhat.com>
1465
1466         * c-decl.c (grokdeclarator): Special case the creation of an
1467         index for a zero-length array.
1468         * tree.c (build_index_type): Revert Oct 20 change.
1469
1470 2000-11-18  Marek Michalkiewicz  <marekm@linux.org.pl>
1471
1472         * config/avr/avr-protos.h (avr_output_addr_vec_elt): Prototype.
1473         * config/avr/avr.c (jump_tables_size): New variable.
1474         (function_prologue): Initialize it as 0.
1475         (function_epilogue): Add it to function_size.
1476         (avr_output_addr_vec_elt): New function.  Count words in jump
1477         tables in jump_tables_size.  Move code ...
1478         * config/avr/avr.h (ASM_OUTPUT_ADDR_VEC_ELT): ... from here.
1479         Call avr_output_addr_vec_elt instead.
1480         * config/avr/avr.md (tablejump): Remove disabled define_expand.
1481
1482 2000-11-18  Mark Mitchell  <mark@codesourcery.com>
1483
1484         * configure.in: Make --enable-new-gxx-abi the default.
1485         * configure: Likewise.
1486
1487 2000-11-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1488
1489         * Makefile.in (tradcpp.o, tradcif.o): Depend on tradcpp.h.
1490
1491         * tradcif.y: Include tradcpp.h.  Constify.  Make functions static.
1492         Move extern function declarations to tradcpp.h.
1493
1494         * tradcpp.c: Likewise.
1495
1496         * tradcpp.h: New file.
1497
1498 2000-11-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1499
1500         * c-decl.c (check_for_loop_decls): New function.
1501         * c-parse.in (for_init_stmt): New.
1502         (select_or_iter_stmt): Use for_init_stmt.
1503         * c-tree.h (check_for_loop_decls): New declaration.
1504
1505 2000-11-18  Neil Booth  <neilb@earthling.net>
1506
1507         * cppinit.c: Update comments.
1508         (cpp_reader_init): Make -imacro and -include use the standard
1509         #include "" search path.
1510         (do_includes): New function.
1511
1512 2000-11-18  Ben Elliston  <bje@redhat.com>
1513
1514         * config/sh/crt1.asm (start_l): Move PC-relative move instruction
1515         out of a branch delay slot.
1516
1517 2000-11-17  Richard Henderson  <rth@redhat.com>
1518
1519         * config/alpha/elf.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG.
1520         (ASM_SPEC): Disable and enable .mdebug based on -gstabs.
1521         (ASM_FILE_START): Only write out ecoff .file directive if
1522         emitting mdebug debugging.
1523
1524 2000-11-17  Richard Henderson  <rth@redhat.com>
1525
1526         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): New.  Detect
1527         whether as accepts .file/.loc and produces dwarf2 line info.
1528         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Default on if
1529         the assembler supports it.
1530         * config.in, configure: Regenerate.
1531
1532 2000-11-17  Richard Henderson  <rth@redhat.com>
1533
1534         * fixinc/mkfixinc.sh: Don't disable fixincludes for any linux*.
1535
1536 2000-11-17  Jim Wilson  <wilson@redhat.com>
1537
1538         * config/ia64/ia64.c (emit_insn_group_barriers, case CALL_INSN): 
1539         Don't clear need_barrier is next_insn is a CALL_INSN, or has
1540         instruction type B or UNKNOWN.
1541
1542 2000-11-17  Neil Booth  <neilb@earthling.net>
1543
1544         * cpperror.c (print_file_and_line): Don't display line number if 0.
1545
1546 2000-11-17  Zack Weinberg  <zack@wolery.stanford.edu>
1547
1548         * ggc.h: Delete ggc_add_string_root and ggc_mark_string.  Add
1549         digit_vector and digit_string.
1550         * stringpool.c (digit_vector): New.
1551         (ggc_alloc_string): Use digit_string.
1552
1553         * stmt.c (digit_strings): Delete.
1554         (init_stmt): Do not initialize digit_strings.
1555         (expand_asm_operands): Use ggc.h's digit_string macro.
1556         * toplev.c (mark_file_stack): Delete.
1557         (compile_file): Don't call init_tree_codes.
1558         (main): No need to make the file stack a GC root.
1559         * tree.c (init_tree_codes): Delete.
1560         * tree.h (init_tree_codes): Delete.
1561
1562         * c-lex.c: Don't include ggc.h.
1563         (mark_splay_tree_node, mark_splay_tree): Delete.
1564         (init_c_lex): No need to ggc_strdup string constant.  Don't add
1565         file_info_tree to GGC roots.
1566         (cb_enter_file, cb_rename_file): No need to ggc_strdup
1567         ip->nominal_fname.
1568
1569         * Makefile.in (c-lex.o): No longer depends on $(GGC_H).
1570
1571         * dbxout.c (dbxout_init),
1572         dwarf2out.c (dwarf2out_line),
1573         ggc-common.c (ggc_mark_rtx_children, ggc_mark_trees),
1574         varasm.c (mark_const_hash_entry, mark_pool_constant, init_varasm_once),
1575         xcoffout.c (xcoffout_source_file),
1576         i386.c (load_pic_register):
1577         Delete call(s) to ggc_add_string_root and/or ggc_mark_string.
1578
1579         * except.c (create_rethrow_ref),
1580         profile.c (init_edge_profiler),
1581         toplev.c (compile_file),
1582         varasm.c (named_section, assemble_static_space,
1583         assemble_trampoline_template, output_constant_def, force_const_mem),
1584         i386.c (load_pic_register),
1585         ia64.c (ia64_encode_section_info),
1586         rs6000.c (rs6000_emit_load_toc_table, create_TOC_reference,
1587         rs6000_emit_prologue, rs6000_emit_epilogue),
1588         rs6000.md (load_toc_aix_si, load_toc_aix_di):
1589         Change ggc_alloc_string (var, -1) to ggc_strdup (var).
1590
1591         * profile.c (output_func_start_profiler),
1592         tree.c (make_node),
1593         i386.c (load_pic_register): No need to ggc_strdup string constant.
1594
1595 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
1596
1597         * Makefile.in (config.status): Depend on config.gcc.
1598         * configure.in <for machine in $build $host $target>: Move
1599         contents of loop into config.gcc, removing autoconf quoting.
1600         Fix changequote bug for alpha*-*-vxworks*.
1601         * configure: Regenerate.
1602         * config.gcc: New.
1603
1604 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
1605
1606         * c-parse.in (if_prefix): Find the filename and line number at
1607         $-2 and $-1 respectively.
1608         * diagnostic.c (error_recursion): Add missing newline, use
1609         fputs, translate string.
1610
1611 2000-11-16  Zack Weinberg  <zack@wolery.stanford.edu>
1612
1613         * stringpool.c: New file.
1614         * ggc-common.c (ggc_mark_string_ptr, ggc_add_string_root): Delete.
1615         (ggc_alloc_string): Now in stringpool.o.
1616         * ggc-page.c, ggc-simple.c: Do not define or allocate empty_string.
1617         * ggc.h: Delete prototype of ggc_add_string_root.  #define
1618         ggc_add_string_root and ggc_mark_string to nothing.  Prototype
1619         init_stringpool and stringpool_statistics.
1620         (ggc_alloc_string): Returns a const char *.
1621         * tree.c (hash_table, do_identifier_warnings): Delete.
1622         (init_obstacks): Don't initialize the identifier hash table.
1623         (get_identifier, maybe_get_identifier, start_identifier_warnings,
1624         set_identifier_size): Now in stringpool.c.
1625         * tree.h (struct tree_string): Constify pointer field.
1626         (approx_sqrt): Prototype.
1627
1628         * Makefile.in (stringpool.o): Add rule, mention in OBJS.
1629
1630         * toplev.c (approx_sqrt): New function.
1631         (compile_file): Call stringpool_statistics if mem_report is on.
1632         (main): Call init_stringpool.
1633
1634         * builtins.c (c_strlen), c-decl.c (finish_decl), c-lex.c
1635         (process_directive), c-typeck.c (constructor_asmspec, struct
1636         initializer_stack, start_init), except.c (create_rethrow_ref),
1637         stmt.c (digit_strings), toplev.c (decode_f_option), tree.c
1638         (built_in_filename), varasm,c (in_named_name,
1639         assemble_static_space, struct constant_descriptor, struct
1640         deferred_string, struct pool_constant, force_const_mem),
1641         i386.c (pic_label_name, global_offset_table_name), rs6000.c
1642         (rs6000_emit_prologue, rs6000_emit_epilogue) : Constify a char *.
1643
1644         * c-common.c (combine_strings): Combine strings in scratch
1645         buffer, then pass to build_string.
1646         * optabs.c (init_libfuncs), profile.c (init_edge_profiler,
1647         output_func_start_profiler), stmt.c (init_stmt), alpha.c
1648         (alpha_need_linkage), arm.c (arm_encode_call_attribute),
1649         i386.c (load_pic_register), ia64.c (ia64_encode_section_info),
1650         rs6000.c (rs6000_encode_section_info): Create string in
1651         scratch buffer, then pass to ggc_alloc_string.
1652
1653         * stmt.c (expand_asm_operands): If we must adjust the
1654         constraint strings, do so by creating a new one, not by
1655         modifying the old one in place.  Constify some char *s.
1656         * config/pa/pa.c (hppa_encode_label): Drop unnecessary second
1657         argument.  Create string in scratch buffer, then pass to
1658         ggc_alloc_string.
1659         * config/pa/pa-protos.h: Update prototype.
1660         * config/pa/elf.h, config/pa/pa.h, config/pa/som.h:
1661         hppa_encode_label takes only one argument.
1662
1663 2000-11-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1664
1665         * mcore.c (mcore_expand_prolog): Call xmalloc/xrealloc, not
1666         malloc/realloc.
1667
1668         * cpplib.c (glue_header_name): Likewise.
1669
1670         * fixincl.c (run_compiles, start_fixer): Likewise.
1671
1672         * fixlib.c (load_file_data): Likewise.
1673
1674         * mkdeps.c (munge): Likewise.
1675
1676 2000-11-17  Hans-Peter Nilsson  <hp@axis.com>
1677
1678         * defaults.h [EH_FRAME_SECTION_ASM_OP] (EH_FRAME_SECTION): Remove
1679         trailing ';'.  Fix formatting.
1680
1681 2000-11-16  Jim Wilson  <wilson@redhat.com>
1682
1683         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT, MASK_INLINE_DIV_THR):
1684         Shift masks left by one to avoid conflict.
1685
1686         * config/ia64/ia64.c (ia64_encode_section_info): Disallow decls with
1687         DECL_EXTERNAL set.
1688
1689 2000-11-16  Nick Clifton  <nickc@redhat.com>
1690
1691         * config/arm/arm.c (output_arm_prologue): Note nested functions.
1692         (arm_expand_prologue): For nested functions preserve the
1693         static chain register during stack frame creation.
1694
1695         * config/arm/arm.h (STATIC_CHAIN_REGNUM): Change to 12.
1696         (ARM_INITIAL_FRAME_ELIMINATION_OFFSET): For a nested function
1697         with a stack frame there is a 4 byte gap between the arg
1698         pointer and the hard frame pointer (used to preserve the
1699         static chain register during stack frame creation).
1700
1701 2000-11-16  DJ Delorie  <dj@redhat.com>
1702
1703         * rtl.c (read_rtx): Provide suitable names for unnamed
1704         define_insn and define_insn_and_split patterns, based on file
1705         and line numbers.
1706
1707 2000-11-15  Neil Booth  <neilb@earthling.net>
1708
1709         * cpplib.c (start_directive, end_directive): New functions.
1710         (_cpp_handle_directive, run_directive): Use them.
1711         (_cpp_handle_directive): Don't -Wtraditional on indented
1712         null directives.
1713         (_cpp_push_buffer): Don't re-clear was_skipping.
1714         * cpplib.h (struct cpp_reader): New member la_saved.
1715         * cppmacro.c (cpp_get_token): Don't interpret _Pragma in
1716         directives.
1717
1718         gcc.dg/cpp/_Pragma1.c: Update.
1719         gcc.dg/cpp/_Pragma2.c: New test.
1720
1721 2000-11-15  Mark Mitchell  <mark@codesourcery.com>
1722
1723         * toplev.c (wrapup_global_declarations): Don't write out
1724         artificial static variables that aren't needed.
1725
1726 2000-11-15  Bernd Schmidt  <bernds@redhat.co.uk>
1727
1728         * ia64.c (struct group): New structure.
1729         (last_group): New static array.
1730         (group_idx): New static variable.
1731         (emit_group_barrier_after, errata_find_address_regs, errata_emit_nops):
1732         New static functions.
1733         (emit_insn_group_barriers): Initialize and keep track of group_idx
1734         and last_group.
1735         Call errata_emit_nops if TARGET_B_STEP or TARGET_A_STEP.
1736         Replace all calls to emit_insn_after that emit a group barrier to use
1737         emit_group_barrier_after.
1738         * ia64.h (MASK_B_STEP): New.
1739         (other MASK_XXX macros): Renumbered.
1740         (TARGET_B_STEP): New.
1741         (TARGET_SWITCHES): Add -mb-step.
1742
1743 2000-11-15  Fred Fish  <fnf@be.com>
1744
1745         * fixinc/mkfixinc.sh (fixincludes): Add *-*-beos* to list of
1746         machines for which fixincludes is not needed.
1747         * config/i386/x-beos (STMP_FIXPROTO): Don't run fixproto.
1748
1749 2000-11-15  Jason Merrill  <jason@redhat.com>
1750
1751         * diagnostic.c (finish_abort): New fn.
1752         (fancy_abort, error_recursion): Use it.
1753         * toplev.c (crash_signal): Likewise.
1754         * diagnostic.h: Declare it.
1755
1756 2000-11-13  Andrew Haley  <aph@redhat.com>
1757
1758         * tree.c (build_type_no_quals): New function.
1759         * tree.h (build_type_no_quals): Declare.
1760         * c-common.c (c_get_alias_set): When considering type
1761         compatibility for pointer types, ignore cv-qualifiers anywhere in
1762         a pointer chain.
1763
1764 2000-11-15  Graham Stott  <grahams@redhat.com>
1765
1766         * regrename.c (scan_rtx_rtx): Skip to the next chain on
1767         encountering a terminated chain.
1768
1769 2000-11-14  Mark Mitchell  <mark@codesourcery.com>
1770
1771         * configure.in: Move check for V3 above check for C++ header-file
1772         directory.
1773         * configure: Regenerated.
1774
1775 2000-11-14  DJ Delorie  <dj@redhat.com>
1776
1777         * config/v850/v850.c: Remove obstacks.
1778
1779 Tue Nov 14 21:54:31 2000  Marek Michalkiewicz  <marekm@linux.org.pl> & Denis Chertykov  <denisc@overta.ru>
1780
1781         * config/avr/avr.c (avr_case_values_threshold): New.
1782         (avr_override_options): Set it depending on options, make it large
1783         when not optimizing to work around "unable to generate reloads".
1784
1785         * config/avr/avr.h (TARGET_SWITCHES): Add -mno-tablejump option.
1786         (EXTRA_SECTION_FUNCTIONS): Make the .progmem.gcc_sw_table section
1787         executable if not AVR_MEGA.  Make sure jump tables are word-aligned.
1788         (JUMP_TABLES_IN_TEXT_SECTION): Define as 0, not 1.
1789         (ASM_OUTPUT_ADDR_VEC_ELT): Optimize, use "rjmp" if not AVR_MEGA.
1790         (avr_case_values_threshold): Declare as extern int.
1791         (CASE_VALUES_THRESHOLD): Define as avr_case_values_threshold.
1792
1793         * config/avr/avr.md (tablejump): Removed.
1794         (*tablejump_rjmp): New for jump tables made from "rjmp" instructions.
1795         (*tablejump_lib, *tablejump_enh, *tablejump): Change to expect the
1796         index in the table, not multiplied by 2.
1797         (casesi): Change to match the above insns.  Always enable.
1798
1799         * config/avr/libgcc.S (__tablejump__): Rename to __tablejump2__.
1800         Change to expect the word address of the table, multiply it by 2
1801         here and not in the caller.  Change "adiw" to faster "inc".
1802
1803 2000-11-14  Neil Booth  <neilb@earthling.net>
1804
1805         * cppexp.c (parse_defined): Call cpp_get_token not
1806         _cpp_get_token.
1807         (lex): Similarly.
1808         * cpplex.c (cpp_output_line): Similarly.
1809         * cpplib.c (glue_header_name, do_line, do_ident,
1810         parse_answer, parse_assertion): Similarly.
1811         (_cpp_handle_diretive): Don't save to lookaheads
1812         when processing directives.
1813         * cppmacro.c (parse_arg, expand_arg): Call cpp_get_token not
1814         _cpp_get_token.
1815         (funlike_invocation_p): Don't save to lookaheads
1816         when pre-expanding arguments.
1817         (_cpp_get_token): Delete.
1818         (cpp_get_token): Merge contents of _cpp_get_token.
1819
1820 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1821
1822         * builtins.c (expand_builtin_setjmp): Set
1823         current_function_calls_setjmp.
1824         (expand_builtin_longjmp): Set current_function_calls_longjmp.
1825
1826         * config/sparc/sparc.md (builtin_setjmp_setup): New expand.
1827         (do_builtin_setjmp_setup): New insn.
1828
1829 Tue Nov 14 12:34:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1830
1831         * tree.c (get_unwidened): Use host_integerp and tree_low_cst.
1832         (int_fits_type_p): For variable bounds, call force_fit_type.
1833
1834 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1835
1836         * varasm.c (struct deferred_string): New structure.
1837         (const_str_htab): New variable.
1838         (STRHASH): New macro.
1839         (mark_const_str_htab_1, mark_const_str_htab, const_str_htab_hash,
1840         constr_str_htab_eq, const_str_htab_del): New functions.
1841         (output_constant_def): Add DEFER argument, defer string
1842         constants until mark_constant_pool time if requested.
1843         (mark_constant_pool): Walk the insn chain even if const_str_htab is
1844         not empty.
1845         (mark_constants): If a SYMBOL_REF for deferred string is found,
1846         output it and remove from hash table.
1847         (output_addressed_constants): Set DEFER to 0 in call to
1848         output_constant_def.
1849         * rtl.h (STRING_POOL_ADDRESS_P): Define.
1850         (output_constant_def): Adjust prototype.
1851         * expr.c (expand_expr): Set DEFER to 1 in call to output_constant_def.
1852
1853 2000-11-14  Chandrakala Chavva  <cchavva@redhat.com>
1854
1855         * optabs.c (expand_complex_ab):: Use overflow-trapping optabs for
1856         signed types if flag_trapv.
1857
1858 2000-11-14  Zack Weinberg  <zack@wolery.stanford.edu>
1859
1860         * tradcpp.c, tradcif.y: Update FSF mailing address, delete
1861         reference to GPLv1.
1862
1863 2000-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1864
1865         * c-common.h (CTI_C_SIZE_TYPE): Update comment.
1866
1867 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1868
1869         * varasm.c (struct varasm_status): Change x_const_rtx_sym_hash_table
1870         to array of pool_constnat pointers.
1871         (struct pool_constant): Add next_sym and label members.
1872         (struct pool_sym): Remove.
1873         (init_varasm_status): Change pool_sym into pool_constant.
1874         (mark_pool_constant): Mark pc->label string as well.
1875         (mark_pool_sym_hash_table): Remove.
1876         (mark_varasm_status): Remove it from caller as well.
1877         (free_varasm_status): Don't free pool_sym structures.
1878         (force_const_mem): Don't allocate pool_sym structure, instead
1879         fill pool->label and chain it into rtx_sym hash table.
1880         (find_pool_constant, mark_constant_pool): Use pool_constant instead
1881         of pool_sym.
1882
1883 2000-11-14  Jakub Jelinek  <jakub@redhat.com>
1884
1885         * reload1.c (emit_input_reload_insns): Honour forcing of constants
1886         into memory by PREFERRED_RELOAD_CLASS NO_REGS.
1887
1888 2000-11-14  Michael Matz  <matzmich@cs.tu-berlin.de>
1889
1890         * dominance.c: New file.
1891         * Makefile.in (OBJS): Add dominance.o.
1892
1893         * flow.c (compute_flow_dominators): Remove.
1894         (compute_immediate_dominators): Remove.
1895         (compute_immediate_postdominators): Remove.
1896         * basic-block.h: Remove their prototypes.
1897         (calculate_dominance_info): Add prototype.
1898
1899         * dce.c (eliminate_dead_code): Change calls to above functions.
1900         Don't compute dominators but only immediate dominators.
1901         * flow.c (flow_loops_find): Change callers.
1902         * gcse.c (compute_code_hoist_data): Likewise.
1903         * haifa-sched.c (schedule_insns): Likewise.
1904         * ifcvt.c (if_convert): Likewise.
1905         * ssa.c (convert_to_ssa): Likewise, and only compute immediate
1906         dominators.
1907
1908 2000-11-14  Richard Henderson  <rth@redhat.com>
1909
1910         * stmt.c (warn_if_unused_value): Don't warn if the expression
1911         has side effects.
1912
1913         * c-typeck.c (c_sizeof): Fold result to c_size_type_node.
1914         (c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
1915
1916 2000-11-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1917
1918         * loop.c (basic_induction_var): Revert accidental checkin.
1919
1920 2000-11-13  Hans-Peter Nilsson  <hp@axis.com>
1921
1922         * c-lex.c (cb_leave_file): Harmonize conditions and order of
1923         statements to those of process_directive for (action == act_pop).
1924
1925         * collect2.c (main): Pass on -B options from COLLECT_GCC_OPTIONS.
1926
1927         * local-alloc.c (equiv_init_movable_p): References to CC0 are not
1928         movable.
1929
1930 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1931
1932         * c-parse.in (stmts_and_decls): Deprecate use of label at end of
1933         compound statement.
1934
1935 2000-11-13  Neil Booth  <neilb@earthling.net>
1936
1937         * cpplex.c (_cpp_lex_token): CPP_COMMENT and true CPP_EOF
1938         cases return without MI check.
1939         * cpplib.c (do_diagnostic): Take boolean of whether to
1940         print the directive name.
1941         (do_error, do_warning): Update.
1942         (do_pragma_dependency): Use it.
1943         * cpplib.h (VARARGS_FIRST): Delete.
1944         (struct cpp_token): Delete integer.
1945         * cppmacro.c (enter_macro_context): Move disabled check
1946         to _cpp_get_token.
1947         (_cpp_get_token): Simplify into a single loop.
1948
1949 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
1950
1951         * configure.in:  Use 'test -f' not '[ -e'.
1952         * configure: Regenerated.
1953
1954 2000-11-13  DJ Delorie  <dj@redhat.com>
1955
1956         * config/mn10300/mn10300.md (store_movm): Note which registers are
1957         really used or clobbered.
1958
1959 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1960
1961         * c-parse.in (ends_in_label): Remove from %union and %type.
1962         (decls, stmts, lineno_stmt_or_labels, xstmts,
1963         lineno_stmt_or_label, stmt_or_label): Remove.
1964         (stmts_and_decls, lineno_stmt_decl_or_labels_ending_stmt,
1965         lineno_stmt_decl_or_labels_ending_decl,
1966         lineno_stmt_decl_or_labels_ending_label,
1967         lineno_stmt_decl_or_labels_ending_error,
1968         lineno_stmt_decl_or_labels, compstmt_contents_nonempty,
1969         lineno_stmt, lineno_label): New.
1970         (compstmt_nostart): Use compstmt_contents_nonempty.
1971
1972 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1973
1974         * c-common.c (boolean_increment): New function.
1975         * c-common.h (enum c_tree_index): Add CTI_C_BOOL_TYPE,
1976         CTI_C_BOOL_TRUE and CTI_C_BOOL_FALSE.
1977         (c_bool_type_node, c_bool_true_node, c_bool_false_node): Define.
1978         (boolean_increment): Declare.
1979         * c-convert.c (convert): Allow for BOOLEAN_TYPE.
1980         * c-decl.c (init_decl_processing): Create boolean nodes.
1981         (finish_struct): Allow for _Bool bitfields.
1982         * c-parse.in (reswords): Add _Bool.
1983         (rid_to_yy): Allow for RID_BOOL.
1984         * c-typeck.c (default_conversion): Make booleans promote to int.
1985         (convert_arguments, build_unary_op, build_modify_expr,
1986         convert_for_assignment): Allow for booleans.
1987         * ginclude/stdbool.h: Make conforming to C99.
1988
1989 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1990
1991         * c-parse.in (c99_block_start, c99_block_end,
1992         c99_block_lineno_labeled_stmt): New.
1993         (simple_if, do_stmt_start): Use c99_block_lineno_labeled_stmt.
1994         (stmt): Split off selection and iteration statements into...
1995         (select_or_iter_stmt): New.  Use c99_block_lineno_labeled_stmt.
1996
1997 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
1998
1999         * invoke.texi (-Wtrigraphs, -fdump-translation-unit, -save-temps,
2000         -time): Update.
2001
2002 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
2003
2004         * arm.md (mulsidi3adddi, umulsidi3adddi): Revert previous change.
2005         Rewrite to avoid use of match_dup.  Don't try to tie registers that
2006         are not in the same mode.
2007
2008 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2009
2010         * invoke.texi: Update lists of languages and suffixes supported.
2011
2012 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2013
2014         * configure.in: Take toplevel configure arguments from the
2015         environment to create configargs.h and substitute
2016         gcc_config_arguments, taking account of any existing configargs.h
2017         if reconfiguring.
2018         * configure: Regenerate.
2019         * gccbug.in: Include toplevel configure arguments in gccbug.
2020
2021 2000-11-13  Richard Earnshaw  <rearnsha@arm.com>
2022
2023         * varasm.c (struct constant_descriptor): Put CONTENTS inside a
2024         union to make it well-aligned.  Update all uses.
2025
2026 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2027
2028         * c-parse.in (initelt): Give appropriate pedantic warnings,
2029         depending on flag_isoc99, for non-ISO syntax and for C99 syntax
2030         outside C99 mode.
2031         (designator): If pedantic, pedwarn for a designator specifying a
2032         range of elements.
2033         * c-typeck.c (set_init_index, set_init_label): Don't pedwarn for
2034         these cases.
2035         * extend.texi: Document the C99 syntax as the preferred syntax,
2036         and the pre-2.5 syntax as obsolete.  Mention use of designator
2037         lists for nested subobjects.
2038
2039 2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2040
2041         * diagnostic.c (vbuild_message_string, output_do_printf, vnotice):
2042         Add ATTRIBUTE_PRINTF.
2043         * tradcpp.c (v_message, warning, error, fatal, error_with_line):
2044         Add ATTRIBUTE_PRINTF*.
2045
2046 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
2047
2048         * function.c (assign_parms): When calling put_var_into_stack, make
2049         sure that there are no hidden pending sequences.
2050
2051 2000-11-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2052
2053         * builtins.c (expand_builtin): Handle BUILT_IN_INDEX and
2054         BUILT_IN_RINDEX.  Add missing checks for BUILT_IN_STRCHR and
2055         BUILT_IN_STRRCHR.
2056
2057         * builtins.def (BUILT_IN_INDEX, BUILT_IN_RINDEX): New entries.
2058
2059         * c-common.c (c_common_nodes_and_builtins): Declare index and
2060         rindex when nonansi builtins are allowed.
2061
2062         * extend.texi (index, rindex): Document new builtins.
2063
2064 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
2065
2066         * configure.in: Turn on libstdc++ V3 by default.
2067         * configure: Regenerated.
2068
2069         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on Solaris.
2070
2071 2000-11-12  Jakub Jelinek  <jakub@redhat.com>
2072
2073         * reload1.c (set_label_offsets): Go inside of PARALLELs.
2074
2075 2000-11-12  Joseph S. Myers  <jsm28@cam.ac.uk>
2076
2077         * invoke.texi: Clean up option summary.
2078
2079 2000-11-12  Nick Clifton  <nickc@redhat.com>
2080
2081         * config/mcore/mcore.c: Fix comment formating, and adjust sequence
2082         of #include headers.
2083
2084 2000-11-12  Marc Espie <espie@openbsd.org>
2085
2086         * configure.in: Fix filds test.
2087         * configure: Regen.
2088
2089 2000-11-12  Mark Mitchell  <mark@codesourcery.com>
2090
2091         * jump.c (delete_computation): Don't assume that just becuase an
2092         instruction sets a register, that register is dead.
2093
2094 2000-11-12  Neil Booth  <neilb@earthling.net>
2095
2096         * cppexp.c: Don't worry about pfile->skipping.
2097         * cpplib.c (struct if_stack): Make was_skipping unsigned char.
2098         (cpp_handle_directive): Save pfile->skipping in struct cpp_buffer
2099         for handled directives.
2100         (skip_rest_of_line): Use _cpp_lex_token after popping contexts
2101         and releasing lookaheads.
2102         (do_ifdef, do_ifndef, do_if): Use buffer->was_skipping.
2103         (do_else, do_elif, push_conditional): Update logic.
2104         (do_endif): Set buffer->was_skipping rather than pfile->skipping.
2105         (unwind_if_stack): Inline into cpp_pop_buffer.
2106         (cpp_push_buffer): Clear ifs->was_skipping for cpp_handle_directive.
2107         * cpplex.c (_cpp_lex_token): Clear skipping on EOF.  Handle
2108         multiple-include optimisation.
2109         * cpplib.h (struct cpp_buffer): New member was_skipping.
2110         * cppmacro.c (_cpp_get_token): Loop whilst pfile->skipping.  This
2111         works because skipping == 0 in directives.
2112         (_cpp_release_lookahead): Renamed from release_lookahead.
2113         (cpp_get_token): No need to check skipping as _cpp_get_token does
2114         this for us.  No need to handle MI optimisation.
2115
2116 Sat Nov 11 21:14:02 2000  Mark P Mitchell  <mark@codesourcery.com>
2117
2118         * fixinc/inclhack.def (sunos_matherr_decl): Bypass matherr
2119         declarations that use `__MATH_EXCEPTION' in their prototypes, too.
2120         * fixinc/fixincl.x: Regenerated.
2121
2122 2000-11-11  Bruce Korb  <bkorb@gnu.org>
2123
2124         * fixinc/inclhack.def (avoid_bool_type): avoid commenting out #endif
2125         (avoid_wchar_t_type): ditto
2126         * fixinc/fixinc.irix: obsoleted
2127
2128 2000-11-11  Zack Weinberg  <zack@wolery.stanford.edu>
2129
2130         * configure.in: Don't add $outputs to all_lang_makefiles.  Add
2131         $srcdir/$s/Makefile.in if it exists.
2132         * configure: Regenerate.
2133
2134 Sat Nov 11 18:41:20 2000  Mark P Mitchell  <mark@codesourcery.com>
2135
2136         * fixinc/mkfixinc.sh: Use the ordinary fixincludes on IRIX.
2137
2138 2000-11-11  Jason Merrill  <jason@redhat.com>
2139
2140         * function.c (assign_parms): If TREE_ADDRESSABLE is set, try to
2141         give the parm a register and then call put_var_into_stack.
2142         * stmt.c (expand_decl): Likewise.
2143
2144 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
2145
2146         * gcc.texi: Adjust wording.
2147
2148 2000-11-11  Mark Mitchell  <mark@codesourcery.com>
2149
2150         * fixinc/inclhack.def (avoid_wchar_t_type): New fix.
2151         * fininc/fixincl.x: Regenerated.
2152
2153 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
2154
2155         * invoke.texi: Correct spelling of -foptimize-register-move.
2156
2157 2000-11-11  Neil Booth  <neilb@earthling.net>
2158
2159         Remove CPP_PLACEMARKERs.
2160
2161         * cppexp.c (lex): Don't handle CPP_PLACEMARKER.
2162         * cpplex.c (_cpp_lex_token): Rename skip_newlines to next_bol
2163         * cpplib.c (skip_rest_of_line, check_eol, cpp_push_buffer):
2164                    Similarly.
2165         * cpplib.h: Remove CPP_PLACEMARKER.
2166         (struct lexer_state): Rename skip_newlines to next_bol.
2167         * cppmacro.c (stringify_arg): Don't handle CPP_PLACEMARKER.
2168         Simplify prev_white handling as a result.
2169         (paste_all_tokens): Don't worry about CPP_PLACEMARKERs.
2170         (parse_arg): Empty arguments are now empty, not CPP_PLACEMARKERs.
2171         (parse_args): Similarly.  Update argument count tests.
2172         (enter_macro_context): Return 2 to indicate an empty macro.
2173         (replace_args): Don't bother pre-expanding an empty argument.
2174         Handle placemarkers and ## extension during pre-expansion.
2175         (cpp_get_token): Handle empty macro expansions.  Don't worry
2176         about CPP_PLACEMARKERs.
2177         (_cpp_create_definition): Empty macros are now empty.
2178         (cpp_macro_defintion): Don't special case empty macros.
2179         * scan-decls.c: Don't bother with CPP_PLACEMARKERs.
2180         * c-lex.c: Similarly.
2181
2182 2000-11-11  Joseph S. Myers  <jsm28@cam.ac.uk>
2183
2184         * gcc.texi, invoke.texi: Add new section discussing language
2185         standards; link to it where appropriate; refer to ISO C instead of
2186         ANSI C.
2187
2188 2000-11-11  Alexandre Oliva  <aoliva@redhat.com>
2189
2190         * builtins.c (std_expand_builtin_va_start): Take PARM_BOUNDARY
2191         into account.
2192
2193         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie SFmode to other FP
2194         modes.
2195
2196 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2197
2198         * gcc.texi, gcov.texi: Update dates and version numbers.
2199
2200 2000-11-10  Zack Weinberg  <zack@wolery.stanford.edu>
2201
2202         * configure.in: Remove AC_PROG_LEX and AC_PROG_YACC.  Look for
2203         flex and bison, specifically, first in a unified build and
2204         then installed on the system.
2205         * Makefile.in: Set BISON to @BISON@, FLEX to @FLEX@.  Rename
2206         LEXFLAGS to FLEXFLAGS.  Adjust ORDINARY_FLAGS_TO_PASS to
2207         match.
2208
2209         (collect2.o, gcc.o, prefix.o, toplev.o, alloca.o, intl.o,
2210         cppdefault.o): Remove pointless sed munging of source file
2211         name.
2212
2213 2000-11-10  Bernd Schmidt  <bernds@redhat.co.uk>
2214
2215         * reload.c (find_reloads_address_1, case POST_MODIFY): Use RELOAD_OTHER
2216         for address reloads.  Push replacements for REG_INC notes.
2217         (regno_clobbered_p): New arg SETS.  Examine SETs if it's nonzero.  All
2218         callers changed.
2219         * reload1.c (choose_reload_regs): Registers set in the insn can't be
2220         used for RELOAD_OTHER reloads.
2221
2222 2000-11-10  Mark Mitchell  <mark@codesourcery.com>
2223
2224         * c-dump.h: New file.
2225
2226 2000-11-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2227
2228         * alpha.c (check_float_value): Use memcpy, not bcopy.
2229         * arm.c (output_move_double): Likewise.
2230         * arm.md: Likewise.
2231         * m88k.c (legitimize_operand): Likewise.
2232         * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise.
2233         * m88k.md: Likewise.
2234         * mips.c (override_options): Likewise.
2235         * mips.md: Likewise.
2236         * romp.c (output_fpops): Likewise.
2237         * rs6000.c (rs6000_override_options): Likewise.
2238         * sh.md: Likewise.
2239         * vax.c (check_float_value): Likewise.
2240
2241         * emit-rtl.c (copy_rtx_if_shared, init_emit_once): Likewise.
2242         * expmed.c (synth_mult): Likewise.
2243         * final.c (add_bb_string): Likewise.
2244         * genattr.c (main): Likewise.
2245         * genattrtab.c (attr_string, simplify_cond, copy_rtx_unchanging):
2246         Likewise.
2247         * jump.c (thread_jumps): Likewise.
2248         * prefix.c (save_string): Likewise.
2249         * real.h (REAL_VALUE_FROM_CONST_DOUBLE): Likewise.
2250         * regclass.c (init_reg_sets, init_reg_sets_1): Likewise.
2251         * reload1.c (reload, eliminate_regs): Likewise.
2252
2253 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2254
2255         * gcc.texi (Service): Update to reflect current practice and
2256         location of the GNU service directory.
2257
2258 2000-11-09  Bernd Schmidt  <bernds@redhat.co.uk>
2259
2260         * regrename.c (build_def_use): Mark contents of REG_INC notes as
2261         needing replacement.
2262
2263         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Emit
2264         a no-op move if regs are equal.
2265         * toplev.c (rest_of_compilation): Do the noop moves elimination pass
2266         when calling jump after post-reload splitting.
2267
2268 2000-11-09  Jan van Male  <jan.vanmale@fenk.wau.nl>
2269
2270         * c-tree.texi: Fix typos.
2271         * extend.texi: Likewise
2272         * gcov.texi: Likewise
2273         * rtl.texi: Likewise
2274         * tm.texi: Likewise
2275
2276 2000-11-09  Hans-Peter Nilsson  <hp@axis.com>
2277
2278         * c-lex.c [! NO_IMPLICIT_EXTERN_C] (cb_enter_file): Check
2279         in_system_header and flags[1] before dereferencing flags[2].
2280
2281 2000-11-09  Matthew Hiller <hiller@redhat.com>
2282
2283         * reload1.c (reload_combine): Fixed calculation of
2284         first_index_reg, last_index_reg.
2285
2286 2000-11-09  Mark Mitchell  <mark@codesourcery.com>
2287
2288         * c-dump.c (dequeue_and_dump): Dump function bodies.
2289
2290         * Makefile.in (C_AND_OBJC_OBJS): Add c-dump.o.
2291         (c-dump.o): New target.
2292         * c-common.h (flag_dump_translation_unit): New variable.
2293         (C_TYPE_QUALS): New macro.
2294         (strip_array_types): New function.
2295         (DECL_C_BIT_FIELD): New macro.
2296         (SET_DECL_C_BIT_FIELD): Likewise.
2297         (CLEAR_DECL_C_BIT_FIELD): Likewise.
2298         (dump_info_p): New typedef.
2299         (dump_tree_fn): Likewise.
2300         (lang_dump_tree): New variable.
2301         (dump_node_to_file): New function.
2302         * c-common.c (flag_dump_translation_unit): Define it.
2303         (strip_array_types): New function.
2304         * c-decl.c (c_decode_option): Handle -fdump-translation-unit.
2305         * c-lang.c (finish_file): Call dump_node_to_file if
2306         flag_dump_translation_unit.
2307         * c-semantics.c (mark_rtl_for_local_static): Fix typo in comment.
2308         * c-tree.h (DECL_C_BIT_FIELD): Remove declaration.
2309         * c-dump.c: New file.
2310
2311 2000-11-09  Christopher Faylor <cgf@cygnus.com>
2312
2313         * config/i386/cygwin.h: Add mingw startfile prefix.
2314
2315 2000-11-09  Richard Henderson  <rth@redhat.com>
2316
2317         * flow.c (invalidate_mems_from_set): Split out from ...
2318         (mark_set_1): ... here.
2319         (try_pre_increment_1): Use it.  Use propagate_block_delete_insn
2320         instead of turning insn into a NOTE_INSN_DELETED.
2321
2322 2000-11-10  Joseph S. Myers  <jsm28@cam.ac.uk>
2323
2324         * extend.texi, invoke.texi: Move documentation of builtin versions
2325         of C library functions to one place and update.
2326
2327 2000-11-09  Richard Henderson  <rth@redhat.com>
2328
2329         * fold-const.c (fold): Compare TYPE_MAIN_VARIANT rather than
2330         the types themselves to discover type equivalence.
2331
2332 2000-11-09  Mike Stump  <mrs@wrs.com>
2333
2334         * Makefile.in (distclean): Remove a few extra leftovers.
2335
2336 2000-11-09  Richard Henderson  <rth@redhat.com>
2337
2338         * recog.c (validate_replace_rtx_1): Consider subregs when
2339         replacing a register with a constant inside a sign/zero_extend.
2340
2341         * config/alpha/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
2342
2343 2000-11-09  Geoffrey Keating  <geoffk@redhat.com>
2344
2345         * c-decl.c (finish_struct): When a structure is completed,
2346         check all its variant types for completeness.
2347
2348 2000-11-09  Neil Booth  <neilb@earthling.net>
2349
2350         * cpphash.c: Move cpp_defined here from cpplib.c.
2351         * cpplib.c: Update comments, move cpp_defined to cpphash.c.
2352         * cpplex.c (_cpp_lex_token): Don't leave the lexer at EOL.
2353         * cppmacro.c (cpp_get_token): Update comments, no need now
2354         to catch the CPP_EOF meaning EOL case.
2355
2356 2000-11-08  Geoffrey Keating  <geoffk@redhat.com>
2357
2358         * config/sparc/sparc.c (sparc_va_arg): When the required alignment
2359         is more than that provided, copy to a temporary.
2360
2361 2000-11-09  Alexandre Oliva  <aoliva@redhat.com>
2362
2363         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Prevent `make' from
2364         interpreting $out as a macro assignment.
2365         * Makefile.in (T_TARGET): New auxiliary macro and target.
2366         (all): Add a target right in the beginning, so that we don't build
2367         T_TARGET by default.
2368
2369 2000-11-09  Graham Stott  <grahams@redhat.com>
2370
2371         * config/i386/i386.md (mmx_pinsrw): Output operands in correct
2372         order for -mintel-syntax.  Remove comment now that the operand
2373         order has been checked.
2374         (mmx_pextrw): Likewise.
2375         (mmx_pshufw): Likewise.
2376
2377 2000-11-09  Jakub Jelinek  <jakub@redhat.com>
2378
2379         * builtins.c (c_strlen): Use TREE_STRING_LENGTH - 1 for max.
2380         (c_getstr): New function.
2381         (expand_builtin_strstr): Do nothing if -fcheck-memory-usage.
2382         If both arguments are constant string, optimize out.
2383         (expand_builtin_strchr, expand_builtin_strrchr): New functions.
2384         (expand_builtin_strpbrk): Use c_getstr, do nothing if
2385         -fcheck-memory-usage.
2386         (expand_builtin_fputs): Likewise.
2387         (expand_builtin_strcmp): Add MODE argument.
2388         Use even if !HAVE_cmpstrsi.
2389         Optimize the case when both arguments are constant strings.
2390         (expand_builtin): Adjust expand_builtin_strcmp caller.
2391         Call expand_builtin_strchr and expand_builtin_strrchr.
2392         * c-common.c (c_common_nodes_and_builtins): Add strchr and strrchr
2393         builtins.
2394         * builtins.def (BUILT_IN_STRRCHR): Add.
2395
2396 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2397
2398         * fixinc/gnu-regex.c: Rename EGCS LOCAL markers to GCC LOCAL.
2399
2400 2000-11-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2401
2402         * calls.c (expand_call, emit_library_call_value_1), collect2.c
2403         (scan_prog_file), config/a29k/a29k.c (print_operand),
2404         config/sparc/sparc.c (order_regs_for_local_alloc): Use memcpy ()
2405         instead of bcopy ().
2406         * real.h: Use memcmp () instead of bcmp ().
2407         * config/m88k/m88k.c (m88k_layout_frame), config/sh/sh.c
2408         (split_branches), config/sparc/sparc.c (ultra_flush_pipeline,
2409         ultrasparc_sched_init, ultrasparc_sched_reorder),
2410         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Use memset ()
2411         instead of bzero ().
2412         * config/vax/xm-xms.h (FILE_NAME_NONDIRECTORY): Use strrchr ()
2413         instead of rindex ().
2414         * configure.in: Don't check for bzero, bcmp, index or rindex.
2415         * configure, config.in: Regenerate.
2416         * system.h: Don't include declarations for bzero, bcmp, index or
2417         rindex.
2418         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Don't define
2419         bzero, bcmp, index or rindex.
2420
2421 Wed Nov  8 21:58:20 2000  Christopher Faylor <cgf@cygnus.com>
2422
2423         * config/i386/cygwin.h: Add -no-win32 switch.  Separate -mno-cygwin
2424         include and library paths from -mcygwin case.  Parameterize some
2425         declarations to avoid warnings.  Use standard locations for include and
2426         lib dirs.
2427
2428 2000-11-08  Nick Clifton  <nickc@redhat.com>
2429
2430         * config/arm/arm.md (mulsidi3adddi): Change output operand
2431         constraint from "=&" to "+&".
2432         (umulsidi3adddi): Change output operand constraint from "=&" to
2433         "+&".
2434
2435 2000-11-08  Richard Henderson  <rth@redhat.com>
2436
2437         * flow.c (init_propagate_block_info): Protect the rtx stored in
2438         mem_set_list from modification by find_auto_inc.
2439         (mark_set_1): Likewise.
2440
2441 2000-11-08  Neil Booth  <neilb@earthling.net>
2442
2443         Move directive handling into the lexer itself.
2444
2445         * cpplex.c (_cpp_lex_token): Handle directives directly.
2446         In the case of a directive interrupting a function-like
2447         macro invocation, use extra_char since read_ahead is
2448         used to store the '#'.  Return a CPP_EOF in this case.
2449         * cppmacro.c (parse_arg): No need to handle CPP_DHASH any more.
2450         (cpp_get_token): Don't handle directives here.
2451         * cpplib.h: Remove CPP_DHASH token type.
2452
2453 Wed Nov  8 21:53:41 MET 2000  Jan Hubicka  <jh@suse.cz>
2454
2455         * regmove.c (combine_stack_adjustments_for_blocks): Recognize pushes
2456         formed using PRE_MODIFY too.
2457
2458 2000-11-08  Mark Mitchell  <mark@codesourcery.com>
2459
2460         * c-tree.texi (VAR_DECL): Describe representation of GCC's
2461         extension for placing variables in particular registers.
2462
2463         * c-tree.texi (FUNCTION_TYPE): Clarify TYPE_ARG_TYPES for
2464         unprototyped C functions with no parameters.
2465
2466 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
2467
2468         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Cast DELTA to int
2469         before passing to fprintf.
2470
2471 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
2472
2473         * function.c (expand_function_start): Cast GET_MODE_SIZE to
2474         HOST_WIDE_INT before negating it.
2475
2476 2000-11-08  Jakub Jelinek  <jakub@redhat.com>
2477
2478         * expr.c (expand_expr) [ADDR_EXPR]: Handle when op0 is RETURN_DECL
2479         passed in multiple non-contiguous locations.
2480
2481 2000-11-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2482
2483         * README.gnat: Remove file.
2484
2485 2000-11-08  Alexandre Oliva  <aoliva@redhat.com>
2486
2487         * mklibgcc.in (EXTRA_MULTILIB_PARTS): Generate multilib parts
2488         in-place.
2489
2490 2000-11-07  Richard Henderson  <rth@redhat.com>
2491
2492         * dwarfout.c (INSN_LABEL_FMT): Remove.
2493         (output_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2494         (dwarfout_label): Remove.
2495         * dwarfout.h: Remove it's prototype.
2496         * dwarf2out.c (INSN_LABEL_FMT): Remove.
2497         (gen_label_die): Use ASM_GENERATE_INTERNAL_LABEL.
2498         (dwarf2out_label): Remove.
2499         * dwarf2out.h: Remove it's prototype.
2500         * final.c (final_scan_insn): Don't call dwarf[2]out_label.
2501
2502 2000-11-07  Richard Henderson  <rth@redhat.com>
2503
2504         * config/ia64/fde-glibc.c (find_fde_for_dso): Do a binary
2505         search on the unwind region section.
2506
2507         * config/ia64/ia64.md (movbi): Add r/r alternative.
2508         (cmovdi_internal_astep): Describe all combinations of register
2509         classes for sources & destinations; remove matching constraints.
2510         (cmovdi_internal): Likewise.
2511
2512         * gcc.c (default_compilers) [@cpp-output]: Add -fpreprocessed.
2513
2514 2000-11-07  Richard Henderson  <rth@redhat.com>
2515
2516         * c-lang.c (start_cdtor, finish_cdtor): New functions.
2517         (finish_file): Use them in building constructor/destructor functions.
2518
2519         * config/alpha/alpha.h (HAS_INIT_SECTION, LD_INIT_SWITCH,
2520         LD_FINI_SWITCH): Move ...
2521         * config/alpha/osf.h: ... here.
2522         * config/alpha/alpha-interix.h: Don't undef them.
2523
2524 2000-11-07  Jeffrey Oldham  <oldham@oz.codesourcery.com>
2525
2526         * config/mips/t-iris6 (FPBIT): New.  Added so that __unorddf2 is
2527         included in libgcc.a.
2528         (DPBIT): Likewise.
2529         (dp-bit.c): Likewise.
2530         (fp-bit.c): Likewise.
2531
2532 2000-11-07  Nick Clifton  <nickc@redhat.com>
2533
2534         * config/m88k/m88k.h (GLOBAL_ASM_OP): Add missing tab.
2535         (INTERNAL_ASM_OP): Add missing tab.
2536
2537 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2538
2539         * alias.c (init_alias_analysis), calls.c (expand_call,
2540         emit_library_call_value_1), combine.c (init_reg_last_arrays),
2541         cse.c (new_basic_block), dbxout.c (dbxout_type), diagnostic.c
2542         (init_output_buffer, set_diagnostic_context), dwarf2out.c
2543         (equate_decl_number_to_die, build_abbrev_table), emit-rtl.c
2544         (init_emit_once), fold-const.c (mul_double, div_and_round_double),
2545         function.c (assign_parms), gcse.c (compute_can_copy,
2546         alloc_gcse_mem, alloc_reg_set_mem, record_one_set,
2547         compute_hash_table, compute_set_hash_table,
2548         compute_expr_hash_table), genattrtab.c (optimize_attrs), global.c
2549         (global_alloc, global_conflicts), haifa-sched.c (compute_trg_info,
2550         clear_units, schedule_block), integrate.c (initialize_for_inline,
2551         expand_inline_function), jump.c (thread_jumps), local-alloc.c
2552         (local_alloc), loop.c (combine_movables, count_loop_regs_set,
2553         load_mems_and_recount_loop_regs_set), print-tree.c (debug_tree),
2554         regclass.c (init_reg_sets, init_reg_sets_1, regclass,
2555         record_reg_classes, allocate_reg_info), reload.c
2556         (get_secondary_mem, remove_address_replacements, find_reloads),
2557         reload1.c (reload, set_initial_label_offsets, finish_spills,
2558         reload_as_needed, choose_reload_regs_init,
2559         reload_cse_simplify_operands), reorg.c (dbr_schedule), sbitmap.c
2560         (sbitmap_zero), simplify-rtx.c (simplify_plus_minus), ssa.c
2561         (rename_registers), stmt.c (expand_end_case), unroll.c
2562         (unroll_loop), varray.c (varray_grow), objc/objc-act.c: Use memset
2563         () instead of bzero ().
2564
2565 2000-11-07  Neil Booth  <neilb@earthling.net>
2566
2567        * cp/lang-specs.h: Fix -save-temps specs under USE_CPPLIB.
2568
2569 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2570
2571         * c-common.c (combine_strings): Only warn about long strings for C.
2572
2573 Tue Nov  7 19:44:30 2000  J"orn Rennecke <amylaar@redhat.com>
2574
2575         * combine.c (distribute_notes): Fix typo in last change.
2576
2577 2000-11-07  Geoff Keating  <geoffk@redhat.com>
2578
2579         * config/rs6000/rs6000.md (movdi_internal32+1): Use
2580         operand_subreg_force rather than gen_rtx_SUBREG.
2581         (movdi_internal32+2): Likewise.
2582
2583 2000-11-07  Philip Blundell  <philb@gnu.org>
2584
2585         * configure.in (arm*-*-linuxaout*): Obsolete, deleted.
2586         * config/arm/linux-aout.h: Likewise.
2587         * configure: Regenerate.
2588
2589 2000-11-07  Philipp Thomas  <pthomas@suse.de>
2590
2591         * ABOUT-GCC-NLS: Remove the patch for gettext as it has been
2592         accepted my the gettext maintainer.
2593
2594 2000-11-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2595
2596         * builtins.c (expand_builtin_strpbrk): New function.
2597         (expand_builtin): Handle BUILT_IN_STRPBRK.
2598
2599         * builtins.def (BUILT_IN_STRPBRK): New entry.
2600
2601         * c-common.c (c_common_nodes_and_builtins): Declare builtin
2602         strpbrk.
2603
2604 2000-11-07  David O'Brien  <obrien@dragon.nuxi.com>
2605
2606         * config/alpha/freebsd.h: New file -- FreeBSD/alpha architecture file.
2607         * POTFILES.in: Add config/alpha/freebsd.h
2608         * configure.in: Add alpha*-freebsd support.
2609         * configure: Regenerate.
2610
2611 2000-11-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2612
2613         * tree.c (build_common_tree_nodes_2): Make va_list_type_node be a
2614         copy of ptr_type_node rather than ptr_type_node itself.
2615
2616 Tue Nov  7 06:29:24 2000  J"orn Rennecke <amylaar@redhat.com>
2617
2618         * combine.c (recog_for_combine): Allocate uninitialized vector with
2619         rtvec_alloc.
2620         * recog.c (apply_change_group): Likewise.
2621
2622 Tue Nov  7 06:24:02 2000  J"orn Rennecke <amylaar@redhat.com>
2623
2624         * flow.c (verify_local_live_at_start): Back out last change.
2625         * combine.c (distribute_notes): When parts of a hard reg are
2626         neither set nor referenced in PLACE, search backwards for a
2627         place to put a REG_UNUSED note; if none found, ask for flow
2628         info refresh.
2629
2630 Mon Nov  6 20:08:13 2000  J"orn Rennecke <amylaar@redhat.com>
2631
2632         * reload1.c (eliminate_regs_in_insn): Allow a set to be a PARALLEL
2633         with (clobber (match_scratch...)).
2634
2635 2000-11-06  Neil Booth  <neilb@earthling.net>
2636
2637         * c-lex.c (init_c_lex): If cpp_start_read fails, exit with
2638         error status.
2639
2640 2000-11-06  Neil Booth  <neilb@earthling.net>
2641
2642         * tradcpp.c (special_symbol): Assign an null string rather
2643         than writing to an unallocated buffer.
2644
2645 2000-11-06  Neil Booth  <neilb@earthling.net>
2646
2647         * cpplex.c (_cpp_equiv_tokens): Check arg_no in the
2648         CPP_MACRO_ARG case.
2649
2650 2000-11-06  Neil Booth  <neilb@earthling.net>
2651
2652         * c-lex.c (c_lex): Replace tok.val.aux with tok.val.c or
2653         tok.val.arg_no as appropriate.
2654         * cppexp.c (lex): Similarly.
2655         * cpplex.c (_cpp_lex_token, cpp_spell_token, cpp_output_token,
2656         cpp_equiv_tokens, cpp_can_paste, cpp_avoid_paste): Similarly.
2657         * cppmacro.c (stringify_arg, replace_args, lex_expansion_token,
2658         cpp_macro_definition): Similarly.
2659         * cpplib.h (struct cpp_token): Replace aux with c and arg_no.
2660
2661 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
2662
2663         * config/sparc/sparc.md (adddi3): If operands[2] is 4096 and
2664         operands[1] is constant, calculate the sum and generate movdi.
2665         (addsi3): Similarly.  Use SImode in call to arith_4096_operand.
2666         (subsi3): Use SImode in call to arith_4096_operand.
2667
2668 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
2669
2670         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): On sparc64 we need to
2671         adjust %o1, not %o0 if the return type is large structure.
2672
2673 2000-11-06  Jakub Jelinek  <jakub@redhat.com>
2674
2675         * config/sparc/sparc.md (smulsi3_highpart_v8plus, ashldi3_v8plus+1,
2676         update_return, flush, flushdi, ffssi2, ffsdi2): Fix output formatting.
2677
2678 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz  <marekm@linux.org.pl>
2679
2680         * expmed.c (expand_divmod): For signed divide by 2, prefer
2681         a branch and fewer shifts if branches are very cheap.
2682
2683 2000-11-05  Joseph S. Myers  <jsm28@cam.ac.uk>
2684
2685         * Makefile.in: Remove all targets related to building
2686         distributions and diffs, or INSTALL.
2687         * INSTALL, install1.texi: Remove.
2688         * configure.in: Remove mention of distdir.
2689         * configure: Regenerate.
2690         * objc/Make-lang.in: Remove mention of distdir.
2691
2692 2000-11-04  Neil Booth  <neilb@earthling.net>
2693
2694         * cpp.texi: Update for _Pragma.
2695
2696 2000-11-04  Joseph S. Myers  <jsm28@cam.ac.uk>
2697
2698         * gcc.texi (Contributing): Update URL for projects web page.
2699
2700 2000-11-04  Neil Booth  <neilb@earthling.net>
2701
2702         * cpplex.c (parse_string): Don't allow multiline strings in
2703         #include family directives.
2704
2705 2000-11-04  Neil Booth  <neilb@earthling.net>
2706
2707         * cpplib.c (do_line): Only warn pedantically if not reading
2708         preprocessed input.
2709
2710 2000-11-04  Alexandre Oliva  <aoliva@redhat.com>
2711
2712         * calls.c (emit_call_1) [sibcall_pop]: Use n_popped instead of
2713         RETURN_POPS_ARGS().
2714
2715 2000-11-03  Zack Weinberg  <zack@wolery.stanford.edu>
2716
2717         * builtins.c (expand_builtin_strlen): Remove unused mode
2718         argument.
2719         * gcc.c (process_command): Remove unused variable.
2720         * fold-const.c: Include expr.h.
2721         * recog.c: Include reload.h.
2722         * Makefile.in (recog.o, fold-const.o): Update deps.
2723
2724 2000-11-02  Geoffrey Keating  <geoffk@cygnus.com>
2725
2726         * fixinc/gnu-regex.c: Change 'CYGNUS LOCAL' to 'EGCS LOCAL'.
2727
2728 Fri Nov  3 13:41:04 2000  Mark P Mitchell  <mark@codesourcery.com>
2729
2730         * config/mips/iris6.h (SUBTARGET_CC1_SPEC): Remove -static
2731         handling.
2732         (STARTFILE_SPEC): Likewise.
2733         (LINK_SPEC): Likewise.
2734
2735 2000-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2736
2737         * Makefile.in (fold-const.o): Depend on $(GGC_H), not ggc.h.
2738         (toplev.o): Likewise for $(LOOP_H)/loop.h and $(REGS_H)/regs.h.
2739         (simplify-rtx.o): Likewise for $(GGC_H)/ggc.h.
2740
2741 2000-11-03  Joseph S. Myers  <jsm28@cam.ac.uk>
2742
2743         * c-decl.c (duplicate_decls, copy_lang_decl), dwarfout.c
2744         (dwarfout_line), gcc.c (main, save_string), tree.c (init_obstacks,
2745         perm_calloc, get_identifier, maybe_get_identifier,
2746         real_value_from_int_cst, simple_cst_equal), varasm.c
2747         (assemble_name, assemble_real, immed_real_const_1,
2748         compare_constant_1, decode_rtx_const, output_constant_pool): Use
2749         strrchr () instead of rindex ().  Use memcmp () instead of bcmp
2750         ().  Use memcpy () instead of bcopy ().  Use memset () instead of
2751         bzero ().
2752
2753 2000-11-03  Nathan Sidwell  <nathan@codesourcery.com>
2754
2755         * cppfiles.c (open_file): If already read, then don't reopen.
2756         Immediately close an empty file.
2757
2758 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
2759
2760         * expr.h (fold_builtin): Move declaration...
2761         * tree.h (fold_builtin): ... here.
2762
2763 Fri Nov  3 05:41:07 2000  J"orn Rennecke <amylaar@redhat.com>
2764
2765         * flow.c (verify_local_live_at_start): Allow hard regs to die.
2766
2767 2000-11-02  Neil Booth  <neilb@earthling.net>
2768
2769 config:
2770         * a29k/a29k.h, a29k/unix.h, a29k/vx29k.h,
2771         alpha/alpha-interix.h, alpha/alpha.h, alpha/linux.h,
2772         alpha/openbsd.h, alpha/osf.h, alpha/vms.h, alpha/vxworks.h,
2773         alpha/win-nt.h, arc/arc.h, arm/arm.h, arm/conix-elf.h,
2774         arm/linux-aout.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
2775         arm/riscix1-1.h, arm/semiaof.h, arm/unknown-elf-oabi.h, arm/vxarm.h,
2776         c4x/rtems.h, clipper/clix.h, convex/convex.h, d30v/d30v.h,
2777         elxsi/elxsi.h, fr30/fr30.h, h8300/h8300.h, i370/linux.h, i370/mvs.h,
2778         i370/oe.h, i386/386bsd.h, i386/aix386ng.h, i386/beos-elf.h,
2779         i386/bsd386.h, i386/crtdll.h, i386/cygwin.h, i386/dgux.h,
2780         i386/djgpp-rtems.h, i386/djgpp.h, i386/freebsd-aout.h, i386/freebsd.h,
2781         i386/gnu.h, i386/i386-interix.h, i386/i386.h, i386/linux-aout.h,
2782         i386/linux-oldld.h, i386/linux.h, i386/lynx-ng.h, i386/lynx.h,
2783         i386/mach.h, i386/mingw32.h, i386/moss.h, i386/netbsd.h,
2784         i386/netware.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
2785         i386/osfelf.h, i386/osfrose.h, i386/ptx4-i.h, i386/rtems.h,
2786         i386/rtemself.h, i386/sco.h, i386/sco4.h, i386/sco4dbx.h, i386/sco5.h,
2787         i386/scodbx.h, i386/sequent.h, i386/sol2.h, i386/sun.h, i386/sysv3.h,
2788         i386/sysv4.h, i386/uwin.h, i386/vsta.h, i386/vxi386.h, i386/win-nt.h,
2789         i386/win32.h, i860/fx2800.h, i860/i860.h, i860/mach.h, i860/sysv3.h,
2790         i860/sysv4.h, i960/i960.h, i960/rtems.h, i960/vx960-coff.h,
2791         ia64/ia64.h, ia64/linux.h, m32r/m32r.h, m68k/3b1.h, m68k/3b1g.h,
2792         m68k/a-ux.h, m68k/altos3068.h, m68k/amix.h, m68k/apollo68.h,
2793         m68k/crds.h, m68k/ctix.h, m68k/dpx2.h, m68k/hp2bsd.h, m68k/hp320.h,
2794         m68k/hp3bsd.h, m68k/hp3bsd44.h, m68k/isi.h, m68k/linux-aout.h,
2795         m68k/linux.h, m68k/lynx-ng.h, m68k/lynx.h, m68k/m68kemb.h,
2796         m68k/m68kv4.h, m68k/mot3300.h, m68k/netbsd.h, m68k/news.h,
2797         m68k/next.h, m68k/openbsd.h, m68k/pbb.h, m68k/plexus.h, m68k/rtems.h,
2798         m68k/rtemself.h, m68k/sun2.h, m68k/sun3.h, m68k/sun3mach.h,
2799         m68k/tower-as.h, m68k/tower.h, m68k/vxm68k.h, m88k/dgux.h,
2800         m88k/dolph.h, m88k/luna.h, m88k/m88k-aout.h, m88k/m88k-coff.h,
2801         m88k/openbsd.h, m88k/sysv3.h, m88k/sysv4.h, mips/bsd-4.h,
2802         mips/bsd-5.h, mips/dec-bsd.h, mips/dec-osf1.h, mips/gnu.h,
2803         mips/iris3.h, mips/iris5.h, mips/iris6.h, mips/linux.h, mips/mips.h,
2804         mips/netbsd.h, mips/news4.h, mips/news5.h, mips/nws3250v4.h,
2805         mips/openbsd.h, mips/osfrose.h, mips/rtems64.h, mips/sni-svr4.h,
2806         mips/svr3-4.h, mips/svr3-5.h, mips/svr4-4.h, mips/svr4-5.h,
2807         mips/ultrix.h, ns32k/encore.h, ns32k/merlin.h, ns32k/netbsd.h,
2808         ns32k/ns32k.h, ns32k/pc532-mach.h, ns32k/pc532.h, ns32k/sequent.h,
2809         ns32k/tek6000.h, ns32k/tek6100.h, ns32k/tek6200.h, pa/pa-hiux.h,
2810         pa/pa-hpux.h, pa/pa-hpux7.h, pa/pa-linux.h, pa/pa-osf.h,
2811         pa/pa-pro-end.h, pa/pa.h, pa/rtems.h, pj/linux.h, pj/pj.h,
2812         romp/romp.h, rs6000/aix.h, rs6000/aix31.h, rs6000/aix41.h,
2813         rs6000/aix43.h, rs6000/beos.h, rs6000/eabi.h, rs6000/eabisim.h,
2814         rs6000/linux.h, rs6000/lynx.h, rs6000/mach.h, rs6000/rtems.h,
2815         rs6000/sysv4.h, rs6000/vxppc.h, sh/elf.h, sh/linux.h, sh/rtems.h,
2816         sh/rtemself.h, sh/sh.h, sparc/aout.h, sparc/elf.h, sparc/linux-aout.h,
2817         sparc/linux.h, sparc/linux64.h, sparc/lite.h, sparc/litecoff.h,
2818         sparc/liteelf.h, sparc/lynx-ng.h, sparc/lynx.h, sparc/netbsd.h,
2819         sparc/openbsd.h, sparc/pbd.h, sparc/rtems.h, sparc/rtemself.h,
2820         sparc/sol2-sld-64.h, sparc/sol2.h, sparc/sp64-aout.h,
2821         sparc/sp64-elf.h, sparc/sp86x-aout.h, sparc/sp86x-elf.h,
2822         sparc/sparc.h, sparc/sysv4.h, sparc/vxsim.h, sparc/vxsparc.h,
2823         v850/rtems.h, vax/netbsd.h, vax/openbsd.h, vax/ultrix.h, vax/vax.h,
2824         vax/vaxv.h, vax/vms.h, we32k/we32k.h
2825
2826         Replace -A() with -A=, the new assertion syntax.
2827
2828 Thu Nov  2 21:52:35 2000  J"orn Rennecke <amylaar@redhat.com>
2829
2830         * combine.c (distribute_notes): Use rtx_equal_p to check elim_i2 /
2831         elim_i1.
2832         In REG_DEAD handling: When handling parts of multi-hard-reg hard
2833         registers, increment the loop counter by the size of the parts;
2834         use recursion to handle individual parts.
2835
2836 2000-11-02  Neil Booth  <neilb@earthling.net>
2837
2838         * configure.in: Make integrated CPP the default.
2839         * configure: Regenerate.
2840
2841 Thu Nov  2 19:20:12 2000  J"orn Rennecke <amylaar@redhat.com>
2842
2843         * reload.c (find_equiv_reg): Test all hard registers for membership
2844         in the requested class.
2845
2846 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2847
2848         * collect2.c (main, write_c_file_stat), gcc.c (translate_options,
2849         process_command, main), gcov.c (open_files, output_data), tlink.c
2850         (frob_extension, scan_linker_output), toplev.c
2851         (file_name_nondirectory): Use strchr () and strrchr () instead of
2852         index () and rindex ().
2853
2854 2000-11-02  Joseph S. Myers  <jsm28@cam.ac.uk>
2855
2856         * c-common.c (get_flag_spec, check_format_info_main,
2857         check_format_types): Use strchr () instead of index ().  Compare
2858         against error_mark_node instead of comparing the TREE_CODE against
2859         ERROR_MARK.
2860
2861 2000-11-02  Zack Weinberg <zackw@Stanford.EDU>
2862
2863         Integrated CPP.
2864
2865         * c-lex.c (init_c_lex): Update cpp_start_read call.
2866         (cb_ident): Update for new callback prototype.
2867         (cb_def_pragma): Update for new cpp_get_token prototype.
2868         (c_lex): Similarly.  Use cpp_get_line.
2869
2870         * c-parse.in (finish_parse): Update for new cpp_finish
2871         prototype.
2872
2873         * cp/lex.c (finish_parse): Similarly.
2874
2875 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
2876
2877         * machmode.def: Add V16QImode.
2878
2879 2000-11-01  Richard Henderson  <rth@redhat.com>
2880
2881         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
2882         from rtl_for_decl_location.
2883         (add_location_or_const_value_attribute): Likewise.
2884
2885 2000-11-01  Neil Booth  <neilb@earthling.net>
2886
2887         * cpplib.c (run_directive): Use correct line number for output
2888         of _Pragma.  Remember any in-progress directive.
2889
2890         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
2891
2892 2000-11-01  Richard Henderson  <rth@redhat.com>
2893
2894         * stmt.c (expand_start_null_loop): Set continue_label.
2895
2896 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
2897
2898         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
2899         (expand_builtin_constant_p): Move parts of the code into
2900         fold_builtin_constant_p.
2901         (expand_builtin_strlen): Move parts of the code into fold_builtin.
2902         * expr.h (fold_builtin): Declare.
2903         * fold-const.c (fold): Handle builtin calls.
2904
2905         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
2906
2907 2000-11-01  Richard Henderson  <rth@redhat.com>
2908
2909         * stmt.c (expand_start_null_loop): New.
2910         (expand_end_null_loop): New.
2911         * c-semantics.c (genrtl_do_stmt): Use them.
2912         * tree.h: Declare them.
2913
2914 2000-11-01  Richard Henderson  <rth@redhat.com>
2915
2916         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
2917
2918 2000-11-01  Neil Booth  <neilb@earthling.net>
2919
2920         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
2921         * cp/spew.c: Similarly.
2922         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
2923         * cppmacro.c (stringify_arg): Similarly.
2924         * cpplib.h (CPP_BACKSLASH): Delete.
2925
2926 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2927
2928         * builtins.c (expand_builtin_strstr): New function.
2929         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
2930
2931         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
2932
2933         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
2934         and builtin strchr.
2935
2936 2000-10-31  Richard Henderson  <rth@redhat.com>
2937
2938         * config/i386/i386.c (fcmov_comparison_operator): Check for
2939         CCFPmode or CCFPUmode instead of CCmode.
2940         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
2941         unordered operations as well.
2942
2943 2000-10-31  Richard Henderson  <rth@redhat.com>
2944
2945         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
2946         of integer_zero_node.
2947
2948 2000-10-31  Richard Henderson  <rth@redhat.com>
2949
2950         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
2951
2952 2000-10-31  Nick Clifton  <nickc@redhat.com>
2953
2954         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
2955         -fdata-sections to override the section attribute of a DECL.
2956
2957 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
2958
2959         * libgcc2.c (__shtab): Remove __shtab variable.
2960         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
2961         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
2962         members.
2963
2964 2000-10-31  Jim Wilson  <wilson@redhat.com>
2965
2966         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
2967         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
2968         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
2969         instead of ASM_OUTPUT_INTERNAL_LABEL.
2970         (dwarf2out_end_block, dwarf2out_label): Likewise.
2971         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
2972         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
2973
2974 2000-10-31  Richard Henderson  <rth@redhat.com>
2975
2976         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
2977         (size_of_locs): Set it.
2978         (output_loc_operands): Use it to compute branch displacement.
2979         (int_loc_descriptor): New.
2980         (mem_loc_descriptor): Dereference memory in the proper size.
2981         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
2982         (loc_descriptor_from_tree): New.
2983         (rtl_for_decl_location): Break out from ...
2984         (add_location_or_const_value_attribute): ... here.
2985         (add_bound_info): Use loc_descriptor_from_tree.
2986
2987 2000-10-31  Neil Booth  <neilb@earthling.net>
2988
2989         * cpp.texi: Update for new command line assertion syntax.
2990         * cpplib.c (cpp_define): Simplify a bit.
2991         (cpp_assert, cpp_unassert): Use handle_assertion.
2992         (handle_assertion): New function; accept new command line
2993         syntax with '='.
2994         * testsuite/gcc.dg/cpp/assert3.c: New tests.
2995
2996 2000-10-31  Neil Booth  <neilb@earthling.net>
2997
2998         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
2999         undefined.  Remove #ifdef check.
3000         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
3001         Define STDC_0_IN_SYSTEM_HEADERS to 1.
3002
3003 2000-10-31  Jan Hubicka  <jh@suse.cz>
3004             Jakub Jelinek  <jakub@redhat.com>
3005
3006         * config/i386/i386.h: Clarify CCNOmode description in comment.
3007         (EXTRA_CC_MODES): Remove CCRCmode.
3008         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
3009         (put_condition_code, ix86_match_ccmode): Likewise.
3010         (ix86_cc_mode): Likewise.  Fix comment.
3011         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
3012         * config/i386/i386.md: Add unspec 12 description.
3013         (adddi3 split): Use unspec 12 instead of CCRCmode.
3014         (addsi3_carry_rc): Remove.
3015         (addsi3_cc, addqi3_cc): New patterns.
3016         (addsi_3): Swap operands, match CCZmode.
3017         (addsi_4): Rewritten.
3018         (addsi_5): Renamed from addsi_6.
3019         (addsi_6): Removed.
3020         (addhi_3): Swap operands, match CCZmode.
3021         (addhi_4): Rewritten.
3022         (addhi_5): Renamed from addhi_6.
3023         (addhi_6): Removed.
3024         (addqi_3): Swap operands, match CCZmode.
3025         (addqi_4): Rewritten.
3026         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
3027         (subsi3_carry_rc): Removed.
3028         (iorqi_3): Use =q constraint for clobber.
3029         (xorqi_cc_2): Likewise.
3030         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
3031         (x86_movsicc_0_m1_rc): Removed.
3032         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
3033
3034 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
3035
3036         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
3037         and decrement of complex types.
3038
3039 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3040
3041         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
3042         builtin fputs, ensure we still evaluate the stream in case it
3043         has side-effects.
3044
3045 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
3046
3047         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
3048         to expand_shift.
3049
3050 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
3051
3052         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
3053         (fp_extended_operand, emit_fpscr_use): Likewise.
3054         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
3055         (fpul_operand): New function.
3056         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
3057         fp_extended_operand.  Add fpul_operand.
3058         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
3059         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
3060         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
3061         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
3062         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
3063         (divdf3_i): Likewise.
3064         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
3065         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
3066         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
3067         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
3068         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
3069
3070 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
3071
3072         * config/i386/i386.c (ix86_init_builtins): Correct return type
3073         building v4hi_ftype_v4hi_int_int tree node.
3074         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
3075         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
3076
3077         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
3078         for operand 1.
3079         (mmx__uavgv8qi3): Correct insn mnemonic.
3080         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
3081         (mmx_punpckhwd): Correct insn mnemonic.
3082         (mmx_punpckhdq): Likewise.
3083         (mmx_punpcklwd): Likewise.
3084         (mmx_punpckldq): Likewise.
3085         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
3086         Renumber case labels to match the _mm_prefetch constants defined in
3087         xmmintrin.h.
3088
3089         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
3090         if the splitter didn't emit new insns.
3091         Make sure we call cleanup_subreg_operands even when splitting the last
3092         insn in a basic block.
3093
3094         * invoke.texi (Debugging Options): Describe -do.
3095         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
3096         (dump_file): Likewise.
3097         (rest_of_compilation): Split .greg dump into .greg and .postreload.
3098
3099 2000-10-30  Neil Booth  <neilb@earthling.net>
3100
3101         * cppfiles.c (stack_include_file): Check for stacked contexts
3102         here.
3103         * cpphash.h (_cpp_do__Pragma): New prototype.
3104         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
3105
3106         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
3107         escaped newlines if !(buffer->from_stage3).
3108         (_cpp_lex_token): Warn about missing newlines iff
3109         !buffer->from_stage3.
3110
3111         * cpplib.c (get__Pragma_string, destringize,
3112         _cpp_do__Pragma): New functions.
3113         (run_directive): Set output_line for _Pragma to avoid line
3114         markers in output.  Set from_stage3 and prevent macro expansion
3115         for _Pragma and command-line options.  Check buffer exhaustion.
3116         (cpp_push_buffer): Don't check for stacked macro contexts, as
3117         this is perfectly legitimate for _Pragma.  Move the check to
3118         stack_include_file instead. Set from_stage3 iff buffer is
3119         preprocessed input.
3120
3121         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
3122         unsigned. New boolean from_stage3.
3123         (struct spec_nodes): Add n__Pragma.
3124
3125         * cppmacro.c (enter_macro_context): Flip sense of return value.
3126         (_cpp_get_token): Handle _Pragma operator.
3127
3128 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
3129
3130         * gcc.texi:  The C++ standard isn't "draft" anymore.
3131
3132 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
3133
3134         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
3135
3136 2000-10-29  Neil Booth  <neilb@earthling.net>
3137
3138         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
3139
3140 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3141
3142         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
3143         fixinc/inclhack.def: Change comments mentioning C9X to refer to
3144         C99 instead.
3145
3146         * invoke.texi: Document that -V will only work for very similar
3147         versions of driver and compiler.
3148
3149 2000-10-29  Neil Booth  <neilb@earthling.net>
3150
3151         * cppmacro.c (_cpp_create_definition): Optimize the case of
3152         a macro defined to itself.
3153
3154 2000-10-29  Neil Booth  <neilb@earthling.net>
3155
3156         * cpplex.c (save_comment): Don't store new lines in C++ comments.
3157
3158 2000-10-29  Michael Hayes  <mhayes@redhat.com>
3159
3160         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
3161
3162 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
3163
3164         * cpphash.c (cpp_forall_identifiers): Add context variable
3165         for callback routine.
3166         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
3167         change.
3168         (main): Call cpp_forall_identifiers with null context.
3169         * cpplib.h (cpp_forall_identifiers): Update prototype.
3170
3171         * cppmain.c: Make `parse_in' and `print' static.
3172
3173 2000-10-28  Alan Modra <alan@linuxcare.com.au>
3174
3175         * c-decl.c (finish_function): Clear c_function_name_declared_p.
3176
3177 2000-10-28  Richard Henderson  <rth@redhat.com>
3178
3179         * regrename.c (scan_rtx_address): Frob action, not class,
3180         when trying to disable optimization.
3181
3182 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
3183
3184         * c-semantics.c (make_rtl_for_local_static): Don't clobber
3185         DECL_ASSEMBLER_NAME.
3186
3187 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
3188
3189         * configure.in: Determine and substitute gcc_version_full.
3190         * configure: Regenerate.
3191         * gccbug.in: Use it to give full version.  Don't allow
3192         confidential PRs.
3193
3194 2000-10-28  Richard Henderson  <rth@redhat.com>
3195
3196         * recog.c (split_all_insns): Run cleanup_subreg_operands
3197         after reload.
3198
3199         * regrename.c (regrename_optimize): Verify that all registers of
3200         a multiple register mode are available.
3201         (scan_rtx_address): Accept the mode of the address; all callers
3202         changed.
3203
3204         * cpplib.c (run_directive): Fix prototype.
3205
3206 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
3207
3208         * reload.c (find_reloads): Distinguish "wins" so that we know whether
3209         a given operand won because of a matching constraint or not; then use
3210         that information to compute goal_alternative_matched properly.
3211         * reload1.c (choose_reload_regs): Never set reload_override_in for an
3212         optional reload.
3213
3214         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
3215         accurate value for MULT.
3216         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
3217         2% or > 98% before using static branch prediction bits.
3218
3219 2000-10-28  Neil Booth  <neilb@earthling.net>
3220
3221         New macro expander.
3222
3223         * cpplib.c (struct answer): New.
3224         (struct if_stack): Use cpp_lexer_pos rather than line and col.
3225         Rename cmacro mi_cmacro.
3226         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
3227         IN_I): New directive and flags.
3228         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
3229         parse_answer, parse_assertion, find_answer): New functions.
3230         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
3231         (lex_macro_node): New function to replace parse_ifdef and
3232         get_define_node.
3233
3234         (_cpp_handle_directive): New function, combines _cpp_check_directive
3235         and _cpp_check_linemarker.
3236
3237         (do_define, do_undef, parse_include, do_include, do_import,
3238         do_include_next, read_line_number, do_line, do_ident, do_pragma,
3239         do_pragma_once, do_pragma_poison, do_pragma_dependency):
3240         Update for new token getting interface.
3241
3242         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
3243         : Update for new multiple-include optimisation technique.
3244         (do_elif): Don't forget to invalidate controlling macros.
3245
3246         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
3247         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
3248         Functions to handle assertions with the new token interface.
3249         (do_assert, do_unassert): Use them.
3250
3251         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
3252         Use run_directive.
3253
3254         (_cpp_init_stacks): Register directive names.  Don't register special
3255         nodes.
3256
3257         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
3258         new position recording regime.
3259         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
3260         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
3261         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
3262         (cpp_type2name): Move to cpplex.c.
3263
3264         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
3265         (parse_defined): Update to handle new multiple include optimisation
3266         method.  Remove poisoned identifier warning.
3267         (parse_assertion, TYPE_NAME): Delete.
3268         (lex): Update for multiple include optimisation, removal of
3269         CPP_DEFINED, to use _cpp_test_assertion for assertions and
3270         cpp_token_as_text.
3271         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
3272         (op_as_text): New function, to wrap cpp_token_as_text.
3273
3274         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
3275         Update for MI optimisation.
3276         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
3277         segfault on diagnostic.
3278         (_cpp_compare_file_date): Take a token rather than 3 args.
3279         (cpp_read_file): Work correctly for zero-length files.
3280
3281         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
3282         _cpp_init_hashtable and _cpp_cleanup_hashtable.
3283         (cpp_lookup): Place identifiers at front of identifier pool
3284         for _cpp_lookup_with_hash.
3285         (_cpp_lookup_with_hash): Require identifiers to be at the front of
3286         the identifier pool.  Commit the memory if not already in the
3287         hash table.
3288
3289         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
3290         Initialise various members of cpp_reader, memory pools, and the
3291         special nodes.
3292         (cpp_printer_init): Delete.
3293         (cpp_cleanup): Update.
3294         (struct builtin, builtin_array, initialize_builtins): Update for new
3295         hashnode definition and builtin handling.
3296         (cpp_start_read, cpp_finish): Don't take or initialise a
3297         printer.  Update.
3298
3299         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
3300         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
3301         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
3302         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
3303         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
3304         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
3305         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
3306         struct toklist, struct cpp_context, struct specnodes,
3307         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
3308         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
3309         enum builtin_type, cpp_can_paste): New.
3310         (struct cpp_token): Delete line and col members.
3311         (struct cpp_buffer): New member output_lineno.
3312         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
3313         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
3314         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
3315         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
3316         base_context, context, directive, mi_state, mi_if_not_defined,
3317         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
3318         mlstring_pos, macro_buffer, macro_buffer_len.
3319         Delete members mls_line, mls_column, token_list, potential_control_macro,
3320         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
3321         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
3322         save_parameter_spellings, need_newline, .
3323         Change type of date, time and spec_nodes members.
3324         Change prototypes for include and ident callbacks.
3325         (struct cpp_hashnode): Change type of name.  Remove union members
3326         expansion and code.  Add members macro, operator and builtin.
3327
3328         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
3329         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
3330         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
3331         cpp_stop_lookahead): New prototypes.
3332         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
3333
3334         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
3335         Move from cpphash.h.
3336
3337         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
3338         ufputs): Move to cpplib.h.
3339         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
3340         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
3341         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
3342         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
3343         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
3344         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
3345         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
3346         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
3347         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
3348         _cpp_parse_assertion, _cpp_find_answer): Delete.
3349         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
3350         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
3351         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
3352         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
3353         _cpp_handle_directive, DSC): New.
3354         (struct include_file): New member defined.
3355
3356         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
3357         _cpp_compare_file_date): Update.
3358         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
3359         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
3360         _cpp_cleanup_hashtable.
3361
3362         * Makefile.in: Remove cppoutput.c.
3363
3364         * cppoutput.c: Delete
3365
3366         * fixheader.c (read_scan_file): Update for new cpp_get_token
3367         prototype.
3368         (recognized_function): New argument LINE.
3369
3370         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
3371         new cpp_get_token prototype.
3372
3373         * scan.h (recognized_function): Update prototype.
3374
3375         * po/POTFILES.in: Remove cppoutput.c.
3376
3377 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
3378
3379         * c-typeck.c (check_init_type_bitfields): Remove.
3380         (constructor_incremental): Likewise.
3381         (struct constructor_stack): Remove incremental bit.
3382         (struct initializer_stack): Likewise.
3383         (start_init): Don't play with constructor_incremental.
3384         (finish_init): Likewise.
3385         (really_start_incremental_init): Likewise.
3386         (push_init_level): Likewise.
3387         (pop_init_level): Likewise.
3388         (output_init_level): Likewise.
3389         (output_pending_init_elements): Likewise.
3390
3391 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
3392
3393         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
3394         Improve error messages.  Correct parsing of
3395         #pragma pack(pop [,id]).  Do not check the user-supplied
3396         alignment if we're popping.
3397
3398         * gcc.dg/pack-test-1.c: New test case.
3399         * gcc.dg/pack-test-2.c: New test case.
3400         * gcc.dg/pack-test-1.h: New file.
3401
3402 2000-10-27  Neil Booth  <neilb@earthling.net>
3403
3404         * cpp.texi: Update.
3405
3406 2000-10-27  Kelley Cook <kelley.cook@home.com>
3407
3408         * invoke.texi: Document -mintel-syntax
3409
3410 2000-10-27  Richard Henderson  <rth@redhat.com>
3411
3412         * invoke.texi: Document -frename-registers.  Add it to -O3.
3413         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
3414         (enum dump_file_index, dump_file): Update order.
3415         (main): Set flag_rename_registers at -O3.
3416
3417 2000-10-27  Richard Henderson  <rth@redhat.com>
3418
3419         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
3420         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
3421         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
3422         * config/alpha/alpha.md (call_osf_1): Use it.
3423         (call_value_osf_1): Likewise.
3424
3425         * config/ia64/ia64.c: Revert 10-23 patch.
3426         (ia64_hard_regno_rename_ok): New.
3427         * config/ia64/ia64-protos.h: Declare it.
3428         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
3429
3430 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
3431             Richard Henderson  <rth@redhat.com>
3432
3433         * regrename.c: Rewrite to handle multi-register modes and
3434         cond_exec instructions.
3435         * Makefile.in (regrename.o): Update dependancies.
3436         * recog.h (struct operand_alternative): Add is_address.
3437         * recog.c (preprocess_constraints) [case 'p']: Set it.
3438
3439 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
3440
3441         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
3442         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
3443         top level.  Kill oldstyle_subdirs.  Do not include
3444         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
3445         $outputs.  Do not run configure.lang from config.status.
3446         Rearrange warning-flag logic to correspond to what the
3447         makefile wants.  Put special vax stage1 options in
3448         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
3449         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
3450         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
3451         switch is given, nothing otherwise.
3452         * configure.lang: Delete.
3453
3454         * Makefile.in: Expunge all traces of extra_c_objs,
3455         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
3456         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
3457         warning options via a three level scheme so that -pedantic and
3458         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
3459         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
3460         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
3461         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
3462         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
3463         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
3464         generation rules.  Wrap all rules that change the current
3465         directory in parentheses; pmake doesn't spawn a new shell for
3466         each command.  Expunge all references to $(P).  When one
3467         command depends on another and they're run all at once, use &&
3468         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
3469         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
3470         and beyond.
3471
3472         * objc/Make-lang.in: Wrap all rules that change the current
3473         directory in parentheses.  Expunge all references to $(P).
3474         When one command depends on another and they're run all at
3475         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
3476         all object-file generation rules.  Delete obsolete variables.
3477         * objc/Makefile.in: Delete.
3478
3479 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
3480
3481         * calls.c (expand_call): If sibcall_failure is set during pass 1,
3482         clear tail_call_insns as well.
3483
3484 2000-10-27  Nick Clifton  <nickc@redhat.com>
3485
3486         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
3487         prototype.
3488
3489 2000-10-26  Richard Henderson  <rth@redhat.com>
3490
3491         * calls.c (expand_call): Supress sibcall if we have a
3492         BLKmode return in registers.
3493
3494 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
3495
3496         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
3497         into memory.
3498
3499 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
3500
3501         * tree.c (make_node, case 't'): Set alignment to that of
3502         char_type_node.
3503         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
3504
3505 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
3506
3507         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
3508         * configure.in (enable-libstdcxx-v3): Arrange to have
3509         HAVE_LIBSTDCXX_V3 substituted into the output files.
3510
3511 2000-10-25  Richard Henderson  <rth@redhat.com>
3512
3513         * recog.c (constrain_operands): Initialize which_alternative
3514         before no alternatives early exit.
3515
3516         * cse.c (find_comparison_args): Check that we can reverse a
3517         comparison if needed before accepting the substitution.
3518
3519         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
3520
3521         * simplify-rtx.c (simplify_relational_operation): Sign extend
3522         low words before sign extending to high words.
3523
3524 2000-10-25  Nick Clifton  <nickc@redhat.com>
3525
3526         * config/mcore/mcore.c: Include config.h before system.h.
3527
3528 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
3529
3530         * config/mcore/mcore.md (return): Force function epilogue to
3531         always be generated to work around epilogue suppression bug in
3532         M*Core backend.
3533
3534 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
3535
3536         * c-decl.c (grokdeclarator): Move warning for qualified void
3537         return types with -pedantic to when the function type is
3538         constructed.  At -W, warn in general for qualified function return
3539         types, except for volatile void.
3540         * invoke.texi: Document this new warning at -W.
3541
3542 2000-10-25  Neil Booth  <neilb@earthling.net>
3543
3544         * cpp.texi: Update with implementation-defined behavior and
3545         internal limits.
3546
3547 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
3548
3549         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
3550         incomplete type force it into alias set 0.
3551
3552 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
3553
3554         * alias.c: Include basic-block.h.
3555         (loop_p): New function.
3556         (mark_constant_function): Use it.
3557         * Makefile.in (alias.o): Update dependencies.
3558
3559 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
3560
3561         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
3562         like memory.
3563
3564 2000-10-24  Jim Wilson  <wilson@cygnus.com>
3565
3566         * expmed.c (store_bit_field): Move integer pun code down after
3567         code that calls emit_move_insn for entire register move.
3568         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
3569         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
3570
3571 2000-10-24  Richard Henderson  <rth@cygnus.com>
3572
3573         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
3574         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
3575
3576 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
3577
3578         * gcse.c (cprop_insn): do not propagate constants into jump_insn
3579         for machines with CC0 more than once.
3580
3581 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
3582
3583         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
3584         pseudos just like memory.
3585
3586 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
3587
3588         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
3589         when deleting libcall sequence collapsed to a single instruction.
3590
3591 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
3592
3593         * expr.c (do_store_flag): Don't crash if either side of a
3594         comparison is error_mark_node.
3595
3596 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
3597
3598         * sibcall.c (purge_mem_unchanging_flag): New function.
3599         (optimize_sibling_and_tail_recursive_calls): Call it.
3600
3601 2000-10-24  Philipp Thomas  <pthomas@suse.de>
3602
3603         * Makefile.in (check-po): New target for doing checks in the po
3604         subdir if all languages configured.
3605         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
3606         configure if NLS is enabled.
3607         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
3608         otherwise leave empty.
3609         * configure: Regenerate.
3610
3611 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
3612
3613         * i386.c (print_operand): Handle new 'A' formatting code.
3614         387 opcodes need suffixes even with -mintel-syntax.
3615         Check for explicit size override (codes 'b', 'w' and 'k').
3616         (print_operand_address): Check if register prefix is needed when
3617         emitting `ds' segment override.
3618         * i386.h: Add comment about new 'A' formatting code.
3619         * i386.md (jump and call patterns): Emit absolute references using %A.
3620
3621 2000-10-23  Richard Henderson  <rth@cygnus.com>
3622
3623         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
3624         output registers as fixed.
3625         (ia64_function_epilogue): Undo output fixation.
3626
3627 2000-10-23  Richard Henderson  <rth@cygnus.com>
3628
3629         * config/alpha/alpha.md: Add names for all unnamed insns; use
3630         define_insn_and_split in some obvious places.
3631         (lda): Remove.
3632         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
3633         (zero_extendqisi2, zero_extendqidi2): Likewise.
3634         (zero_extendhisi2, zero_extendhidi2): Likewise.
3635         (abs splitters): Fix match_scratch operand number.
3636         (bcc_reverse): Swap pc & label instead of non-canonical compare.
3637
3638 2000-10-23  Jim Wilson  <wilson@cygnus.com>
3639
3640         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
3641         CONST_INT.
3642         * ia64.md (cmpsi_adjusted): Use %r3.
3643         (cmpdi_adjusted): Likewise.
3644
3645 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
3646
3647         * config/i386/att.h (ASM_FILE_START): Define.
3648
3649 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
3650
3651         * config/i386/linux.h (ASM_FILE_START): Define.
3652
3653 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
3654
3655         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
3656         since this (only) drags in a crt0.o reference that the .ld files
3657         also introduce.
3658
3659 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
3660
3661         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
3662         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
3663         reloads just like an RELOAD_FOR_OUTPUT would.
3664
3665         * local-alloc.c (update_equiv_regs): Add an abort().  When
3666         deleting or moving insns, update reg_equiv[regno].init_insns.
3667
3668 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
3669
3670         * c-tree.texi: Improve documentation for IF_STMTs and related
3671         conditional statements.
3672
3673 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
3674
3675         * expr.c (do_preexpand_calls): Remove.
3676         (same_from_p): Don't use CALL_EXPR_RTL.
3677         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
3678         (preexpand_calls): Remove.
3679         * tree.c (first_rtl_op): Remove CALL_EXPR case.
3680         (unsave_expr_1): Likewise.
3681         * tree.def (CALL_EXPR): Give it only two slots.
3682         * tree.h (CALL_EXPR_RTL): Remove.
3683
3684 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
3685
3686         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
3687         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
3688         New functions.
3689
3690 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
3691
3692         * calls.c (combine_pending_stack_adjustment_and_call): Don't
3693         adjust stack when unadjusted_alignment ends up as zero.
3694
3695 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3696
3697         * fixinc/genfixes: Remove EGCS reference.
3698         * install.texi: Remove EGCS reference.
3699         * INSTALL: Regenerate.
3700
3701 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
3702
3703         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
3704
3705 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3706
3707         * diagnostic.c: Remove EGCS reference in comment.
3708
3709 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3710
3711         * loop.c (strength_reduce): Fix error in last change.
3712
3713 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
3714
3715         * Makefile.in (SHLIB_NM_FLAGS): New.
3716         (libgcc.mk): Pass it.
3717         * mklibgcc.in (libgcc.map): Use it.
3718
3719         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
3720         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
3721
3722 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3723
3724         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
3725
3726         * sparc.c (load_pic_register): Delete unused varaible.
3727
3728         * libgcc2.c (__addvsi3): Delete unused variable.
3729
3730         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
3731         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
3732         __negvdi2): Prototype.
3733
3734         * ssa.c (apply_delayed_renames): Avoid undefined operation.
3735
3736         * toplev.c (display_target_options): Make static to match
3737         prototype.  Delete empty declaration.
3738
3739 2000-10-20  Tom Tromey  <tromey@cygnus.com>
3740
3741         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
3742         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
3743
3744 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3745
3746         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
3747         returned MEM.
3748         (expand_expr_unaligned, case ARRAY_REF): Check that index is
3749         a constant before comparing it; use tree_low_cst.
3750         * tree.c (save_expr): Set TREE_READONLY.
3751         (substitute_expr): Return inside of NON_LVALUE_EXPR.
3752         (build, build1): Set TREE_READONLY if all operands are.
3753         (build_index_type): If upper bound is a negative number, lower
3754         bound is zero and sizetype is unsigned, use upper bound of one and
3755         lower of zero.
3756
3757 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
3758
3759         * gcc.c (process_command, main): Use "because" instead of
3760         "since" in error messages.
3761
3762 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3763
3764         * stor-layout.c (compute_record_mode): Use tree_low_cst.
3765         Don't use mode of field for record unless sizes are the same.
3766         (layout_type, case ARRAY_TYPE): Remove special bounds handling
3767         previously added for Ada; also change to using host_integerp
3768         and tree_low_cst.
3769
3770         * loop.c (strength_reduce): Show when new register made for
3771         giv is known to be a pointer and its aligment if so and known.
3772         (loop_dump_aux): Show VERBOSE parameter unused.
3773
3774         * gcse.c (set_hash_table_size): Now unsigned.
3775         * sdbout.c (template_name_p): Add "const" to avoid warnings.
3776         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
3777         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
3778         (sdbout_end_epilogue): Remove variable NAME.
3779         * system.h (getopt): Add default definition.
3780         * config/alpha/alpha.c (print_operand): Don't continue processing
3781         after issuing error.
3782         (summarize_insn): Avoid use of UL in constant.
3783
3784         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
3785
3786         * fold-const.c (force_fit_type): Unsigned values can overflow
3787         if they are sizetype.
3788         (int_const_binop): Don't use cache if overflows.
3789
3790 2000-10-20  Richard Henderson  <rth@cygnus.com>
3791
3792         * function.c (locate_and_pad_parm): Zero alignment_pad.
3793
3794         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
3795         perform substitutions, and apply_change_group to see if it worked.
3796
3797 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3798
3799         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
3800
3801         * combine.c (struct undo): Change int to unsigned int.
3802         (do_SUBST_INT): Args are unsigned int.
3803         (make_extraction, force_to_mode): Use proper type when forming mask.
3804         (make_field_assignment): Likewise.
3805
3806 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
3807
3808         * c-common.c (check_format_info_recurse): Extract string constant
3809         initializers from non-volatile constant arrays and check them as
3810         formats.
3811         * c-typeck.c (decl_constant_value): Don't check pedantic or check
3812         for DECL_MODE (decl) != BLKmode.
3813         (decl_constant_value_for_broken_optimization): New function which
3814         includes these checks.
3815         (default_conversion, convert_for_assignment, digest_init): Use
3816         decl_constant_value_for_broken_optimization instead of
3817         decl_constant_value.
3818
3819 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
3820
3821         * tree.h (DECL_ALIGN_UNIT): New macro.
3822
3823 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
3824
3825         * config/avr/avr-protos.h (avr_output_bld): New.
3826         (out_shift_with_cnt): Add t_len argument.
3827         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
3828         (output_movqi, output_movhi, output_movsisf): Optimize loading
3829         any constant with exactly one bit set to NO_LD_REGS.
3830         (out_shift_with_cnt): Optimize output code for size or speed,
3831         depending on optimize_size.  Handle small shift counts as well
3832         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
3833         with or without a scratch register, with help of __tmp_reg__
3834         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
3835         length of TEMPLATE in words, return total insn length in *LEN.
3836         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
3837         out_shift_with_cnt to work with the above change.
3838         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
3839         lshrsi3_out): Likewise.  Optimize more known shift count cases.
3840         Remove cases already well optimized in out_shift_with_cnt.
3841         (avr_output_bld): New function.
3842         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
3843         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
3844         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
3845         Add reload_completed to insn condition - only for peepholes.
3846         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
3847         in a register or memory.
3848         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
3849         Do not require a scratch register.
3850         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
3851         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
3852         Optimize shifts by known count using a scratch register, but only
3853         if one is still available after register allocation.
3854
3855 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3856
3857         * t-vax: New file.  Don't build modules from libgcc1.c.
3858
3859 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
3860
3861         * alias.c: (mark_constant_function): Don't check pure functions.
3862         Initialize and end alias analysis.
3863         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
3864         Don't make a special exception for recursion.  Handle
3865         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
3866         unless it's volatile.
3867
3868         * local-alloc.c (equivalence): New structure.
3869         (reg_equiv): Define.
3870         (contains_replace_regs): Remove array and use
3871         field in reg_equiv.
3872         (memref_referenced_p): Likewise.
3873         (no_equiv): Likewise.
3874         (update_equiv_regs): Likewise.
3875
3876         (equiv_init_varies_p,
3877         equiv_init_movable_p): New functions.
3878         (update_equiv_regs): Use them.  Use rtx_varies_p
3879         instead of function_invariant_p.  Process insns
3880         from end to beginning.  Allow a REG_EQUIV insn
3881         within the same loop as a use to be moved, also
3882         allow it to be moved out of a loop.  Update
3883         REG_DEAD notes when substituting into an insn.
3884
3885 2000-10-19  Jim Wilson  <wilson@cygnus.com>
3886
3887         * c-decl.c (start_decl): Check for error_mark_node type before using
3888         COMPLETE_TYPE_P.
3889         (finish_decl): Likewise.  Don't give an error if decl type is
3890         already error_mark_node.
3891
3892         * haifa-sched.c (compute_trg_info): Add explanatory comments.
3893         New local update_blocks.  Use update_blocks to remove duplicates
3894         when computing update blocks.  Check for bblst_table overflow.
3895         (schedule_block): Add explanatory comment.  Reduce bblst_size by
3896         factor of 2.
3897         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
3898         notes.
3899
3900 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3901
3902         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
3903
3904 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3905
3906         * expmed.c: Minor corrections in comments.
3907         * invoke.texi: Added desciption for the new option -ftrapv.
3908
3909 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
3910
3911         * libgcc2.c: Added the missing #endif.
3912
3913 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3914
3915         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
3916
3917 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
3918
3919         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
3920         Use smulv_optab for -ftrapv.
3921         (expand_mult_highpart): Use unsigned multiply.
3922         (expand_divmod): Special-case division by -1.
3923         For EXACT_DIV_EXPR, do right shift first, then the multiply.
3924         For complex divide, use abs with unsigned result.
3925         * expr.c (force_operand): Use unsigned multiply.
3926         (expand_expr): Use overflow-trapping optabs for signed types if
3927         flag_trapv.
3928         If flag_trapv, don't generate a recursive call with EXPAND_SUM
3929         if the type is signed and the original call wasn't EXPAND_SUM or
3930         EXPAND_INITIALIZER.
3931         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
3932         (negv_optab, absv_optab): Declare.
3933         * flags.h (flag_trapv): Declare.
3934         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
3935         smulv_optab, sdivv_optab, negv_optab and absv_optab.
3936         (gen_insn): Interpret '$P' as requiring an integer mode,
3937         including partial integer modes.
3938         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
3939         (product_cheap_p): Use unsigned expand_mult.
3940         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
3941         (negv_optab, absv_optab): Define.
3942         (expand_binop): Use overflow-trapping optabs for signed types if
3943         flag_trapv.
3944         Handle negv_optab libe neg_optab.
3945         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
3946         Use overflow-trapping optabs for signed result if flag_trapv.
3947         (expand_complex_abs): Use overflow-trapping optabs for signed types if
3948         flag_trapv.
3949         Don't open-code complex absolute-value operation for flag_trapv.
3950         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
3951         sdivv_optab, negv_optab and absv_optab.
3952         * toplev.c (flag_trapv): Define.
3953         (lang_independent_options f_options): Include flag_trapv.
3954         * tree.h (TYPE_TRAP_SIGNED): Define.
3955         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
3956         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
3957         New functions.
3958         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
3959         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
3960
3961 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
3962             David V. Henkel-Wallace  <gumby@cygnus.com>
3963
3964         * config/i386/t-netware: Bring in from the Red Hat tree.
3965         * config/i386/netware.h: Likewise.
3966         * config/netware.h: Likewise.
3967         * config/rs6000/netware.h: Delete.
3968         * configure.in: Add i[34567]86-*-netware.
3969         * configure: Hand-edit to match configure.in change.
3970
3971 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
3972
3973         * c-common.h (flag_no_builtin): Declare.
3974         (flag_no_nonansi_builtin): Likewise.
3975         (c_common_nodes_and_builtins): Change prototype.
3976         * c-common.c (flag_no_builtin): New variable.
3977         (flag_no_nonansi_builtin): Likewise.
3978         (c_common_nodes_and_builtins): Remove parameters.  Adjust
3979         accordingly.
3980         * c-decl.c (flag_no_builtin): Remove.
3981         (flag_no_nonansi_builtin): Likewise.
3982         (init_decl_processing): Adjust call to
3983         c_common_nodes_and_builtins.
3984
3985 2000-10-18  Marc Espie <espie@openbsd.org>
3986
3987         * tm.texi (LIBGCC_SPEC): Synch with reality.
3988
3989 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3990
3991         * c-common.c (check_format_types): Check for writing through a
3992         NULL pointer argument.
3993
3994 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
3995
3996         * tm.texi (Exception Region Output): Document
3997         DWARF_CIE_DATA_ALIGNMENT.
3998         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
3999         #ifndef.
4000         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
4001         DWARF_CIE_DATA_ALIGNMENT.
4002
4003 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
4004
4005         * basic-block.h (struct loop): Delete fields pre_header_root
4006         and pre_header_trace and replace with pre_header_edges
4007         and num_pre_header_edges.
4008         * flow.c (flow_loop_dump): Dump pre_header_edges.
4009         (flow_loops_free): Free pre_header_edges.
4010         (flow_loop_pre_header_scan): Calculate pre_header_edges.
4011
4012 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4013
4014         * contrib.texi: Update references to steering committee members
4015         and Jeff Law's entry.
4016
4017 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
4018
4019         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
4020         (maybe_read_dollar_number, check_format_info_main): Use them for
4021         pedantic warning messages.
4022
4023 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
4024
4025         * c-common.c (check_format_info_main): Minor cleanup: move
4026         variables into inner scopes; initialize declarations where
4027         appropriate; don't hardcode "scanf" name on warning for zero
4028         width.
4029
4030 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
4031
4032         * c-common.c (back_end_hook): New variable.
4033         * c-common.h (back_end_hook): Declare it.
4034         * c-lang.c (finish_file): Use it.
4035
4036         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
4037         earlier.
4038
4039 2000-10-18  Jan Hubicka  <jh@suse.cz>
4040
4041         * i386.c (ix86_comparison_operator, put_condition_code,
4042         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
4043         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
4044         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
4045         * i386.md (adddi and negdi splitter): Use CCRCmode.
4046         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
4047         (subsi3_carry): add '*'
4048         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
4049         (cmp to add peep2): Use CCRCmode; swap operands.
4050
4051 2000-10-18  Kazu Hirata  <kazu@hxi.com>
4052
4053         * h8300.c: Fix a comment typo.
4054         (round_frame_size): New.
4055         (compute_saved_regs): Likewise.
4056         (push): Likewise.
4057         (pop): Likewise.
4058         (push_order): Remove.
4059         (pop_order): Likewise.
4060         (function_prologue): Rearrange code for readability.
4061         (function_epilogue): Likewise.
4062
4063         * config/h8300/h8300.md: Remove an unnecessary sign_extend
4064         expander that is used when not optimizing.  Output a tab after
4065         each assembly insns.
4066
4067         * reorg.c: Fix formatting.
4068
4069 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
4070
4071         * reload1.c (move2add_note_store): Check for simple
4072         auto-inc in destination.
4073
4074 2000-10-17  Michael Chastain  <chastain@redhat.com>
4075
4076         * config/i386/i386-aout.h: define INT_ASM_OP.
4077
4078 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
4079
4080         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
4081
4082 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
4083
4084         * i370.md: Fix spelling typo.
4085
4086 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4087
4088         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
4089         Fixes execute/20001017-1.c on powerpc-linux-gnu.
4090
4091         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
4092         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
4093         LABEL_REF.
4094
4095         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
4096         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
4097         here...
4098         * rs6000/aix.h: ...to here.
4099         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
4100
4101 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
4102
4103         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
4104
4105         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
4106         sure linker can relax even the delay slot mov %g1,%o7, fix output
4107         formating.
4108
4109 2000-10-17  Kazu Hirata  <kazu@hxi.com>
4110
4111         * config/h8300/h8300.md: Remove an unnecessary zero_extend
4112         expander that is used when not optimizing.  Output a tab after
4113         each assembly insns.
4114
4115 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
4116
4117         * gcc.c: New options --target-help.
4118         (process_command): Added code to parse this new option.
4119         * toplev.c (display_target_options): New function to support the
4120         above new option.
4121         * cppinit.c (new_pending_directive) : New option OPT_target__help.
4122         (cpp_handle_option): Support this new option.
4123         * invoke.texi: Added notes about --target-help option.
4124
4125 2000-10-17  Graham Stott  <grahams@redhat.com>
4126
4127         * config/i386/i386.md (testqi_1): Add missing operand prefix
4128         for operand 0.
4129         * config/i386/i386-protos.h: Add missing prototype.
4130
4131 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
4132
4133         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
4134         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
4135         using -mintel-syntax.
4136
4137 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4138
4139         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
4140         (format_types): Use it for printf.
4141         (maybe_read_dollar_number): Add parameter for the kind of format
4142         involved.  Warn for multiple use for arguments if this is
4143         inappropriate for the kind of format involved.
4144         (check_format_info_main): Update calls to maybe_read_dollar_number.
4145
4146 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4147
4148         * inclhack.def (hpux_maxint): Also apply fix to values.h.
4149         * fixincl.x: Rebuilt.
4150
4151 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
4152
4153         * genrecog.c (write_switch): Return the first condition that needs a
4154         label.
4155
4156 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
4157
4158         * c-tree.h (warn_sequence_point): Move declaration to...
4159         * c-common.h (warn_sequence_point): ... here.
4160         * c-decl.c (warn_sequence_point): Move definition to...
4161         * c-common.c (warn_sequence_point): ... here.
4162         (struct reverse_tree): New.
4163         (reverse_list, reverse_max_depth): New static variables.
4164         (build_reverse_tree, common_ancestor, modify_ok
4165         verify_sequence_points): New functions.
4166         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
4167         * c-typeck.c (check_modify_expr): Delete.
4168         (build_modify_expr): Don't call it.
4169
4170 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
4171
4172         * c-common.h (warn_missing_format_attribute): New variable.
4173         * c-decl.c (warn_missing_format_attribute): New variable.
4174         (c_decode_option): Decode -Wmissing-format-attribute and
4175         -Wno-missing-format-attribute.
4176         * c-common.c (check_function_format): If
4177         -Wmissing-format-attribute, give a warning where a vprintf or
4178         vscanf function is called by a function without its own printf or
4179         scanf attribute.
4180         * toplev.c (documented_lang_options): Add
4181         -Wmissing-format-attribute.
4182         * invoke.texi: Document -Wmissing-format-attribute.
4183
4184 2000-10-17  Marc Espie <espie@openbsd.org>
4185
4186         * invoke.texi (-shared): Insist on requiring code generation flags
4187         to be used along with -shared, and document the subtle failure that
4188         may occur otherwise.
4189
4190 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4191
4192         * pa.md (return_internal): Move `use' after `return'.
4193
4194 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4195
4196         * machmode.def: Correct comment.
4197
4198 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
4199
4200         * print-rtl.c (print_rtx_head): Constify.
4201         * rtl.h (print_rtx_head): Similarly.
4202
4203         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
4204         Constify char * return value.
4205         * config/pa/pa/pa.c
4206         (output_64bit_and, output_64bit_ior): Constify char * return value.
4207         (pa_can_combine_p): Make static.
4208         (function_arg): Decorate unused `named' argument. Fix comment typo.
4209         (function_arg_partial_nregs): Decorate unused `named' argument.
4210
4211 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
4212
4213         * c-common.c (format_check_results): New structure.
4214         (finish_dollar_format_checking): Adjust to take a
4215         format_check_results * parameter.
4216         (check_format_info, check_format_info_recurse,
4217         check_format_info_main): Split check_format_info into three
4218         functions, the main checking going in check_format_info_main.
4219         Recurse when any reduction of the format string argument towards a
4220         string literal is done; go down both branches of a conditional
4221         expression.  Don't warn for extra format arguments or empty format
4222         strings if they only occur in some branches of a conditional
4223         expression.
4224
4225 2000-10-16  Kazu Hirata  <kazu@hxi.com>
4226
4227         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
4228
4229 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
4230
4231         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
4232
4233 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
4234
4235         * i386.md (*movsi_or): Switch operand order for intel syntax.
4236
4237 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
4238
4239         * PROBLEMS: Remove.
4240
4241         * gcc.texi (Contributing): Update.
4242
4243 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
4244
4245         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
4246         appropriate assembler dialect.
4247
4248 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
4249
4250         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
4251
4252 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
4253
4254         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
4255         constants 1 and 2 to NO_LD_REGS.
4256
4257 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4258
4259         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
4260
4261         * objc/Make-lang.in (objc-parse.c): Likewise.
4262
4263 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
4264
4265         * arm.c: Include obstack.h
4266         (minipool_obstack, minipool_startobj): Define.
4267         (arm_add_gc_roots): Initialize them.
4268         (create_fix_barrier): Use our new obstack.
4269         (push_minipool_barrier, push_minipool_fix): Likewise.
4270         (arm_reorg): Release obstack memory.
4271
4272 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
4273
4274         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
4275         (prologue, exception_receiver, builtin_setjmp_receiver): New
4276         patterns.
4277         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
4278         * config/sparc/sparc-protos.h (finalize_pic): Remove.
4279         (load_pic_register): New prototype.
4280         * config/sparc/sparc.c (pic_setup_code): Remove.
4281         (finalize_pic): Rename to...
4282         (load_pic_register): ...this function.
4283         Don't look for nonlocal_goto_receivers and emit pic setup code
4284         directly.  Don't check current_function_uses_pic_offset_table.
4285
4286 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
4287
4288         * tree.h (struct obstack): Declare.
4289
4290 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
4291
4292         Remove obstacks.
4293         * Makefile.in (ggc-callbacks.o): Remove target.
4294         (flow.o): Depend on GGC_H.
4295         * alias.c (init_alias_analysis):
4296         Remove ggc_p conditionals.
4297         (end_alias_analysis): Likewise.
4298         * basic-block.h (init_flow): New function.
4299         (allocate_reg_life_data): Declare.
4300         * bb-reorder.c  (function_obstack): Replace with ...
4301         (flow_obstack): ... new variable.
4302         (fixup_reorder_chain): Use it.
4303         * c-decl.c (ggc_p): Remove.
4304         (caller-save.c): Don't call oballoc/obfree.
4305         * combine.c (struct
4306         undobuf): Remove storage.
4307         (try_combine): Don't call oballoc.
4308         (undo_all): Don't call obfree.
4309         * cse.c (insert): Use xmalloc, not
4310         oballoc.
4311         (cse_main): Adjust accordingly.
4312         * dwarf2out.c (save_rtx): Remove
4313         obstack code.
4314         (dwarf2out_init): Remove ggc_p conditionals.
4315         * emit-rtl.c (rtl_obstack): Remove.
4316         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
4317         (make_insn_raw): Likewise.
4318         (emit_insn_before): Likewise.
4319         (emit_insn_after): Likewise.
4320         (emit_insn): Likewise.
4321         (gen_sequence): Likewise.
4322         (copy_insn_1): Remove handling of `b' RTL components.
4323         (init_emit_once): Remove ggc_p conditionals.
4324         * except.c (create_rethrow_ref): Don't fool with obstacks.
4325         (add_partial_entry): Likewise.
4326         (call_get_eh_context): Likewise.
4327         (begin_protect_partials): Likewise.
4328         (protect_with_terminate): Likewise.
4329         * explow.c
4330         (plus_constant_wide): Likewise.
4331         * expr.c (init_expr_once):
4332         Likewise.
4333         (emit_block_move): Likewise.
4334         (clear_storage): Likewise.
4335         (expand_expr): Likewise.
4336         * flow.c (function_obstack): Remove.
4337         (flow_obstack): New variable.
4338         (flow_firstobj): Likewise.
4339         (create_base_block): Use the flow_obstack.
4340         (split_block): Likewise.
4341         (split_edge): Likewise.
4342         (calculate_global_regs_live): Likewise.
4343         (allocate_bb_life_data): Make it static.  Likewiwse.
4344         (init_flow): New function.
4345         (size_int_type_wide): Remove ggc_p conditionals.
4346         * function.c
4347         (push_function_context_to): Don't call save_tree_status.
4348         (pop_function_context_from): Or restore_tree_status.
4349         (assign_stack_local_1): Don't call push_obstacks.
4350         (find_fixup_replacement): Use xmalloc.
4351         (fixup_var_refs_insns): Free the storage.
4352         (insns_for_mem_walk): Don't mess with obstacks.
4353         (instantiate_decls): Likewise.
4354         (trampoline_address): Likewise.
4355         (expand_function_end): Likewise.
4356         * function.h (sturct function):
4357         Remove obstack-related variables.
4358         (save_tree_status): Don't declare.
4359         (restore_tree_status): Likewise.
4360         * gcse.c (compute_can_copy):
4361         Don't call oballoc/obfree.
4362         * genattrtab.c (operate_exp): Remove
4363         ggc_p conditionals.
4364         (simplify_cond): Likewise.
4365         (simplify_test_exp): Don't mess with obstacks.
4366         (optimize_attrs): Likewise.
4367         * gengenrtl.c (gendef): Don't include
4368         ggc_p conditionals.
4369         * ggc-callbacks.c (ggc_p): Remove.
4370         * ggc-none.c (ggc_p): Remove.
4371         * ggc.h (ggc_p): Don't declare.
4372         * integrate.c (save_for_inline): Don't mess with obstacks.
4373         (integrate_decl_tree): Likewise.
4374         (output_inline_function): Likewise.
4375         * lists.c
4376         (init_EXPR_INSN_LIST_cache): Likewise.
4377         * loop.c (temp_obstack):
4378         Remove.
4379         (rtl_obstack): Likewise.
4380         (init_loop): Don't mess with obstacks.
4381         (reg_address_cost): Free BIVs and GIVs.
4382         (check_insns_for_bivs): Use xmalloc, not oballoc.
4383         (find_mem_givs): Likewise.
4384         (record_biv): Likewise.
4385         (general_induction_var): Likewise.
4386         (product_cheap_p): Likewse.
4387         * optabs.c (init_one_libfunc): Remove
4388         ggc_p conditional.
4389         * print-tree.c (debug_tree): Don't use
4390         oballoc/obfree.
4391         (print_node): Likewise.
4392         * profile.c (output_func_start_profiler):
4393         Remove call to temporary_allocation.
4394         * reload1.c
4395         (eliminate_regs_in_insn): Don't mess with obstacks.
4396         * resource.c
4397         (mark_target_live_regs): Use xmalloc.
4398         (free_resource_info): Free the memory.
4399         * rtl.c (rtl_obstack):
4400         Remove.
4401         (rtvec_alloc): Don't mess with obstacks.
4402         (rtx_alloc): Likewise.
4403         (rtx_free): Remove.
4404         (copy_rtx): Don't handle `b' cases.
4405         (read_rtx): Use a local rtl_obstack.
4406         * rtl.h (oballoc): Remove.
4407         (obfree): Likewise.
4408         (pop_obstacks): Likewise.
4409         (push_obstacks): Likewise.
4410         (allocate_bb_life_data): Likewise.
4411         (allocate_reg_life_data): Likewise.
4412         (rtx_free): Likewise.
4413         * sdbout.c (sdbout_queue_anonymous_type):
4414         Use tree_cons, not saveable_tree_cons.
4415         * simplify-rtx.c
4416         (cselib_init): Don't mess with obstacks.
4417         * stmt.c
4418         (mark_block_nesting): Mark the label_chain.
4419         (epxand_label): Use ggc_alloc, not oballoc.
4420         (clear_last_expr): Don't mess with obstacks.
4421         (expand_decl_cleanup): Likewise.
4422         (expand_dcc_cleanup): Likewise.
4423         (expand_dhc_cleanup): Likewise.
4424         (expand_anon_union_decl): Likewise.
4425         (add_case_node): Use xmalloc, not oballoc.
4426         (free_case_nodes): New function.
4427         (expand_end_case): Call it.
4428         * stor-layout.c (layout_type): Don't
4429         mess with obstacks.
4430         (layout_type): Likewise.
4431         * toplev.c (wrapup_global_declarations):
4432         Likewise.
4433         (compile_file): Remove ggc_p conditionals.
4434         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
4435         (decode_f_option): Remove ggc_p conditionals.
4436         * tree.c
4437         (function_maybepermanent_obstack): Remove.
4438         (maybepermanent_obstack): Likewise.
4439         (function_obstack): Likewise.
4440         (tmeporary_obstack): Likewise.
4441         (momentary_obstack): Likewise.
4442         (temp_decl_obstack): Likewise.
4443         (saveable_obstack): Likewise.
4444         (rtl_obstack): Likewise.
4445         (current_obstack): Likewise.
4446         (expression_obstack): Likewise.
4447         (struct obstack_stack): Likewise.
4448         (obstack_stack): Likewise.
4449         (obstack_stack_obstack): Likewise.
4450         (maybepermanent_firstobj): Likewise.
4451         (temporary_firstobj): Likewise.
4452         (momentary_firstobj): Likewise.
4453         (temp_decl_firstobj): Likewise.
4454         (momentary_function_firstobj): Likewise.
4455         (all_types_permanent): Likewise.
4456         (struct momentary_level): Likewise.
4457         (momentary_stack): Likewise.
4458         (init_obstacks): Remove initialization of removed obstacks.
4459         (save_tree_status): Remove.
4460         (restore_tree_status): Likewise.
4461         (temporary_allocation): Liekwise.
4462         (end_temporary_allocation): Liekwise.
4463         (resume_temporary_allocation): Likewise.
4464         (saveable_allocation): Likewise.
4465         (push_obstacks): Likewise.
4466         (push_obstacks_nochange): Likewise.
4467         (pop_obstacks): Likewise.
4468         (allocation_temporary_p): Likewise.
4469         (permanent_allocation): Likewise.
4470         (preserve_data): Likewise.
4471         (preserve_initializer): Likewise.
4472         (rtl_in_current_obstack): Likewise.
4473         (rtl_in_saveable_obstack): Likewise.
4474         (oballoc): Likewise.
4475         (obfree): Likewise.
4476         (savealloc): Likewise.
4477         (expralloc): Likewise.
4478         (print_obstack_name): Likewise.
4479         (debug_obstack): Likewise.
4480         (object_permanent_p): Likewise.
4481         (push_momentary): Likewise.
4482         (perserve_momentary): Likewise.
4483         (clear_momentary): Likewise.
4484         (pop_momentary): Likewise.
4485         (pop_momentary_nofree): Likewise.
4486         (suspend_momentary): Likewise.
4487         (resume_momentary): Likewise.
4488         (make_node): Don't set TREE_PERMANENT.
4489         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
4490         Don't set TREE_PERMANENT.
4491         (get_identifier): Remove ggc_p conditionals.
4492         (build_string): Likewise.
4493         (make_tree_vec): Likewise.
4494         (build_decl_list): Remove.
4495         (build_expr_list): Likewise.
4496         (tree_cons): Remove ggc_p conditionals.
4497         (decl_tree_cons): Remove.
4498         (expr_tree_cons): Likewise.
4499         (perm_tree_cons): Likewise.
4500         (temp_tree_cons): Likewise.
4501         (saveable_tree_cons): Likewise.
4502         (build1): Remove ggc_p conditionals.
4503         (build_parse_node): Likewise.
4504         (build_type_attribute_variant): Don't mess with obstacks.
4505         (build_type_copy): Likewise.
4506         (type_hash_canon): Likewise.
4507         (build_pointer_type): Likewise.
4508         (build_reference_type): Likewise.
4509         (build_index_type): Likewise.
4510         (build_range_type): Likewise.
4511         (dump_tree_statistics): Don't print obstack information.
4512         * tree.h
4513         (struct tree_common): Remove permanent_flag.
4514         (TREE_PERMANENT): Remove.
4515         (TREE_SET_PERMANENT): Likewise.
4516         (TYPE_OBSTACK): Likewise.
4517         (struct tree_type): Remove obstack.
4518         (oballoc): Remove.
4519         (savealloc): Likewise.
4520         (build_decl_list): Likewise.
4521         (build_expr_list): Likewise.
4522         (perm_tree_cons): Likewise.
4523         (temp_tree_cons): Likewise.
4524         (saveable_tree_cons): Likewise.
4525         (decl_tree_cons): Likewise.
4526         (expr_tree_cons): Likewise.
4527         (suspend_momentary): Likewise.
4528         (allocation_temporary_p): Likewise.
4529         (resume_momentary): Likewise.
4530         (push_obstacks_nochange): Likewise.
4531         (permanent_allocation): Likewise.
4532         (push_momentary): Likewise.
4533         (clear_momentary): Likewise.
4534         (pop_momentary): Likewise.
4535         (end_temporary_allocation): Likewise.
4536         (pop_obstacks): Likewise.
4537         (push_obstacks): Likewise.
4538         (pop_momentary_nofree): LIkewise.
4539         (preserve_momentary): Likewise.
4540         (saveable_allocation): Likewise.
4541         (temporary_allocation): Likewise.
4542         (resume_temporary_allocation): Likewise.
4543         (perserve_initializer): Likewise.
4544         (debug_obstack): Likewise.
4545         (rtl_in_current_obstack): Likewise.
4546         (rtl_in_saveable_obstack): Likewise.
4547         (obfree): Likewise.
4548         * varasm.c (current_obstack): Remove.
4549         (saveable_obstack): Remove.
4550         (rtl_obstack): Remove.
4551         (immed_double_const): Don't mess with obstacks.
4552         (immed_real_cons): Likewise.
4553         (output_constant_def): Likewise.
4554         (init_varasm_status): Use xcalloc.
4555         (mark_pool_constant): Mark the pool constant itself.
4556         (free_varasm_status): Free memory.
4557         (decode_rtx_const): Call bzero directly, rather than expanding it
4558         inline.
4559         (record_rtx_const): Don't mess with obstacks.
4560         (force_const_mem): Likewise.
4561         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
4562         conditionals.
4563         (aof_pic_entry): Likewise.
4564         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
4565         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
4566         * config/pa/pa.c (saveable_obstack): Remove.
4567         (rtl_obstack): Likewise.
4568         (current_obstack): Likewise.
4569         (output_call): Don't mess with obstacks.
4570         (hppa_encode_label): Remove ggc_p conditionals.
4571         * config/romp/romp.c (get_symref): Don't mess with obstacks.
4572         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
4573         (rs6000_encode_section_info): Likewise.
4574         * config/sh/sh.c (get_fpscr_rtx): Likewise.
4575
4576 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
4577
4578         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
4579         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
4580         (addsi3_carry): Canonicalize.
4581         (addqi_5): Remove '*'.
4582         (sbb pattern): Canonicalize.
4583
4584         * i386.md (cmp to inc/add peep2): New.
4585
4586 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
4587
4588         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
4589         the exit block.
4590
4591 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
4592
4593         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
4594         * README.TRAD, TESTS.FLUNK: Remove.
4595
4596 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
4597
4598         * c-common.c (decl_attributes): Don't allow strftime formats with
4599         first_arg_num nonzero.
4600         (check_format_info): Set wanted_type and wanted_type_name to zero
4601         before they are possibly assigned and used.
4602
4603 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
4604
4605         * c-common.c (scanf_flag_specs): Add flags ' and I.
4606         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
4607         or the ^ and # flags together.
4608         (scan_char_table): Handle the ' and I flags.
4609         (format_types): Add ' and I flags for scanf.
4610
4611 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
4612
4613         * c-common.c (print_char_table): Use the unpromoted type for
4614         lengths "h" and "hh" with conversions dioxXu.
4615         (check_format_types): Apply the default argument promotions where
4616         the wanted type is not a pointer target.
4617
4618 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
4619             Joseph S. Myers  <jsm28@cam.ac.uk>
4620
4621         * c-typeck.c (check_modify_expr): New function.
4622         (build_modify_expr): Call it if warn_sequence_point.
4623         * c-decl.c (warn_sequence_point): New variable.
4624         (c_decode_option): Handle -Wsequence-point and
4625         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
4626         * c-tree.h (warn_sequence_point): Declare.
4627         * invoke.texi (-Wsequence-point): Document.
4628         * toplev.c (documented_lang_options): Add -Wsequence-point and
4629         -Wno-sequence-point.
4630         Original work by Michael Meeks, 16 Jun 1998.
4631
4632 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4633
4634         * tree.c (get_narrower): Don't look at precision of field if
4635         not laid out yet.
4636
4637 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
4638
4639         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
4640         declaration for data with "progmem" attribute.
4641
4642 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
4643
4644         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
4645         Correct insn length if shift count is a memory operand.
4646         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
4647         (*iorhi3_clobber): Change lo8 to hi8.
4648         (zero_extendhisi2): Change %B0 to %A1.
4649         (ashlhi3, ashrhi3): Correct insn length.
4650         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
4651         from "clobber" to "set_n" in some alternatives.
4652
4653 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
4654
4655         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
4656         remove its insn_chain structure as well.
4657
4658 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4659
4660         * dbxout.c (dbxout_source_line): Remove extra tab.
4661
4662 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
4663
4664         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
4665
4666 2000-10-09  Richard Henderson  <rth@cygnus.com>
4667
4668         * Makefile.in (LANG_LIB2FUNCS): Remove.
4669         (LIB2FUNCS): Remove _pure.
4670         (LIB2ADD): Remove LANG_LIB2FUNCS.
4671         (stage_a): Don't set LANG_LIB2FUNCS.
4672         * libgcc2.c (__terminate): Mark noreturn.
4673         (__pure_virtual): Remove.
4674         * mklibgcc.in: Remove LIB2ADD .txt processing.
4675
4676 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
4677
4678         * arm.md (push_multi): Revert unintended change.
4679
4680 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
4681
4682         * arm.c: Miscellaneous white space and comment clean-ups.  No
4683         functional change.
4684         * arm.md: Likewise.
4685
4686 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4687
4688         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
4689         STRING_CST by calling combine_strings.
4690
4691 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
4692
4693         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
4694         (thumb_output_move_mem_multiple): Support new insn format.
4695         * arm.md (movmem12b): Use SSA compatible format.
4696         (movmem8b): Likewise.
4697
4698 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
4699
4700         * arm.md (predicable): New attribute, default to "no".
4701         (all patterns): Mark as predicable if appropriate.
4702         (conditional execution splits): Split using predication format.
4703         (define_cond_exec): Define.
4704         * arm.c (arm_print_operand): handle insn predicate.
4705
4706 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4707
4708         * README.NS32K: Remove file.
4709
4710 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4711
4712         * README-bugs: Remove file.
4713
4714 2000-10-08  Philipp Thomas  <pthomas@suse.de>
4715         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
4716         for test.
4717         * configure: Rebuilt.
4718
4719 2000-10-08  Philipp Thomas  <pthomas@suse.de>
4720         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
4721         disable catalog building if no suitable program was found.
4722         Move warning message from here
4723         (AM_GNU_GETTEXT): To here.
4724         * configure: Rebuilt.
4725
4726 2000-10-08  Philipp Thomas  <pthomas@suse.de>
4727         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
4728         different cache variables.
4729         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
4730         uses different cache variables.
4731         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
4732         * configure: Regenerated.
4733
4734 2000-10-08  Richard Henderson  <rth@cygnus.com>
4735
4736         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
4737         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
4738         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
4739         Use SHLIB_EXT.
4740
4741         * config/t-linux (SHLIB_EXT): New.
4742         (SHLIB_LINK): Use the entire build command, with substitutions.
4743         (SHLIB_LIBS): Remove.
4744         * config/alpha/t-osf4: Likewise.
4745         * config/mips/t-iris6: Likewise.
4746         * config/sparc/t-sol2: Likewise, but move shlib stuff...
4747         * config/sparc/t-slibgcc-sld: ...here.
4748         * config/sparc/t-slibgcc: New file.
4749
4750 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4751
4752         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
4753         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
4754         CTI_UINTMAX_TYPE.
4755         (intmax_type_node, uintmax_type_node): Define.
4756         * c-common.c (decl_attributes): If pedantic, warn if `mode'
4757         attributes create a type wider than intmax_t.
4758         (T_IM, T_UIM): Define properly.
4759         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
4760         defined.
4761         (init_decl_processing): Initialize intmax_type_node and
4762         uintmax_type_node.
4763         * c-lex.c (lex_number): When pedantic and warning for integer
4764         constants that are too large, in C99 mode warn for those that have
4765         a type wider than long long.
4766
4767 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4768
4769         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
4770         FMT_FLAG_FANCY_PERCENT_OK): Define.
4771         (format_char_info): Add flag "4" to comment.
4772         (format_flag_spec, format_flag_pair): New structures.
4773         (format_kind_info): Add additional fields to control format
4774         checking.
4775         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
4776         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
4777         arrays.
4778         (time_char_table): Use "4" flag to handle %Ey.
4779         (format_types): Add entries for new fields.
4780         (get_flag_spec): New function.
4781         (check_format_info): Increase size of flag_chars[] to 256.
4782         Control format checking using the new fields of a format_kind_info
4783         and the new tables; remove all conditionals on printf_format_type,
4784         scanf_format_type or strftime_format_type.  Handle all details of
4785         bad combinations of flags (including width, precision and strftime
4786         modifiers) through data rather than ad hoc code.  Handle all
4787         details of standard versions in which flags appeared through
4788         data.  Use the "4" flag.
4789
4790 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
4791
4792         * config/h8300/h8300.md: Remove the memory alternative and correct
4793         the insn lengths in the templates for sign extention and zero
4794         extention.
4795
4796 2000-10-07  Richard Henderson  <rth@cygnus.com>
4797
4798         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
4799         * flow.c (make_edges): Revert last change.
4800
4801         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
4802         TREE_THIS_VOLATILE.
4803         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
4804
4805 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
4806
4807         * config/alpha/elf.h: Standardize the formatting.
4808
4809 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
4810
4811         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
4812         #undef.
4813
4814 2000-10-06  Richard Henderson  <rth@cygnus.com>
4815
4816         * function.c (diddle_return_value): Examine
4817         current_function_return_rtx instead of the DECL_RESULT.
4818         (expand_function_end): Handle reloading DECL_RESULT from memory
4819         into a hard register.  Query promote_mode for sign of mismatched
4820         modes.
4821
4822 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4823
4824         * haifa-sched.c (schedule_insns): Fix typo in freeing
4825         forward_dependency_cache.
4826
4827 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
4828
4829         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
4830         `TARGET_SH2' as a condition.
4831
4832 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
4833
4834         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
4835         forward_dependency_cache): New variables.
4836         (add_dependence, remove_dependence): Use anti_dependency_cache and
4837         output_dependency_cache.
4838         (compute_block_forward_dependences): Use forward_dependency_cache.
4839         (schedule_insns): Allocate and free memory for anti/output/forward
4840         dependencies caches.
4841
4842 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
4843
4844         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
4845         `! TARGET_SH1'.  Reindent.
4846
4847 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4848
4849         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
4850         Move functions from here ...
4851
4852         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
4853         ... to here.
4854         (c_expand_builtin): New function.
4855         (init_function_format_info): Don't set `check_function_format_ptr'.
4856         (c_common_nodes_and_builtins): Set built_in_class type for
4857         printf/__builtin_printf to BUILT_IN_FRONTEND.
4858         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
4859
4860         * c-common.h (build_function_call): Declare.
4861
4862         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
4863         to `lang_expand_expr' rather than `expand_builtin'.
4864
4865         * tree.c (check_function_format_ptr): Delete.
4866
4867         * tree.h (check_function_format_ptr): Likewise.
4868
4869 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
4870
4871         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
4872         DW_OP_bregx when cfa->reg > 31.
4873
4874         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
4875         break.
4876
4877 2000-10-05  Richard Henderson  <rth@cygnus.com>
4878
4879         * c-decl.c (warn_missing_noreturn): Remove.
4880         (c_expand_body): Don't set or check can_reach_end.
4881         * c-tree.h (warn_missing_noreturn): Move ...
4882         * flags.h: ... here.
4883         (can_reach_end): Remove.
4884         * flow.c (check_function_return_warnings): New.
4885         (make_edges): No edge to exit for noreturn sibcalls.
4886         * function.c (expand_function_end): Save the return value
4887         clobber instruction.
4888         (mark_function_status): Mark it.
4889         * function.h (struct function): Add x_clobber_return_insn.
4890         * jump.c (can_reach_end): Remove.
4891         (calculate_can_reach_end): Remove.
4892         (jump_optimize_1): Don't call it.
4893         * output.h (check_function_return_warnings): Declare.
4894         * toplev.c (warn_missing_noreturn): Move from c-decl.c
4895         (rest_of_compilation): Call check_function_return_warnings.
4896
4897 2000-10-05  Richard Henderson  <rth@cygnus.com>
4898
4899         * Makefile.in (NM_FOR_TARGET): New.
4900         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
4901         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
4902         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
4903         shared library build on that and EXTRA_MULTILIB_PARTS.
4904         * mkmap-flat.awk: New file.
4905         * mkmap-symver.awk: New file.
4906         * libgcc-std.ver: New file.
4907         * config/libgcc-glibc.ver: New file.
4908         * config/ia64/libgcc-ia64.ver: New file.
4909         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4910         (SHLIB_LINK): Add --version-script.
4911         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
4912         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4913         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
4914         (SHLIB_LINK): Add -M.
4915
4916 2000-10-05  Richard Henderson  <rth@cygnus.com>
4917
4918         * Makefile.in (LIB2FUNCS): Add _clz.
4919         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
4920         (__clz_tab): Put in its own unit, non-static.
4921         * libgcc2.h: Always include longlong.h.
4922
4923         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
4924         a zero instead of -1.
4925         (count_trailing_zeros): Likewise.
4926
4927 2000-10-05  Richard Henderson  <rth@cygnus.com>
4928
4929         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
4930         when second op1 is const0_rtx.  Validate op0 as a register.
4931         * config/alpha/alpha.md (setcc_internal): Don't allow constants
4932         in the first argument of the compare.
4933         (setcc_swapped_internal): Likewise.
4934         (setne_internal): Likewise.
4935
4936 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
4937
4938         * tree.c (tree_size): New function split out of copy_node.
4939         (make_node): Remove obstack handling.  Use tree_size.
4940         (copy_node): Use tree_size.
4941         * tree.h: Prototype tree_size.
4942
4943 2000-10-05  Richard Henderson  <rth@cygnus.com>
4944
4945         * diagnostic.c (output_format): Add missing break.
4946
4947 2000-10-05  Jim Wilson  <wilson@cygnus.com>
4948
4949         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
4950         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
4951         sequence insn to INSN, and delete last sequence insn.
4952
4953 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
4954
4955         * gcc.c (main): Include generated configargs.h header
4956         and use arguments in '-v' output.
4957
4958 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4959
4960         * gcc.c: Move data on prefixes forward in file and reorganize.
4961         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
4962         Always define, but make null if no value.
4963         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
4964         and "md_startfile_prefix_1".
4965         (main): Check whether md_exec_prefix and the others are the
4966         null string rather than whether the macro is defined.
4967
4968 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4969
4970         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
4971         from PSImode to SImode.
4972
4973 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
4974
4975         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
4976         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
4977         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
4978         sizeof(long).
4979
4980 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4981
4982         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
4983         negation in proper type.a
4984
4985 2000-10-04  Richard Henderson  <rth@cygnus.com>
4986
4987         * configure.in (enable-shared): New.
4988         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
4989         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
4990         * mklibgcc.in: Use them to link shared a libgcc.
4991         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
4992         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
4993         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
4994         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
4995
4996         * configure.in (alpha-osf*): Use t-osf and x-osf.
4997         * config/alpha/t-osf: New file.
4998         * config/alpha/t-osf4: New file.
4999         * config/alpha/x-osf: New file.
5000         * config/alpha/x-alpha: Remove file.
5001
5002 2000-10-04  Will Cohen  <wcohen@redhat.com>
5003
5004         * c-typeck.c (process_init_element): Added warning for zero-length
5005         array.
5006
5007         * extend.texi (Zero Length): State that static initializers for
5008         zero-length arrays are not allowed.
5009
5010 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5011
5012         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
5013         to come last.
5014
5015 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5016
5017         * config/float-c4x.h: New.
5018         * configure.in (c4x-*): Set float_format to c4x.
5019         * configure: Regenerate.
5020
5021 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5022
5023         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
5024         compilation for solaris versions 2.7 and greater.
5025
5026 2000-10-02  Marc Espie <espie@openbsd.org>
5027
5028         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
5029         instead of redefining from scratch.
5030
5031 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
5032
5033         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
5034
5035 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
5036
5037         * config/ns32k/genix.h: Remove.
5038         * config/ns32k/x-genix: Likewise.
5039         * config/ns32k/xm-genix.h: Likewise.
5040         * config/fx80: Remove all filee in directory.
5041         * config/pyr: Likewise.
5042         * config/tahoe: Likewise.
5043         * config/gmicro: Likewise.
5044         * config/spur: Likewise.
5045         * configure.in: Remove configury bits for above targets.
5046         * configure: Regenerated.
5047
5048         * configure.in: Don't configure chill by default.
5049         * configure: Regenerated.
5050
5051         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
5052         (lang_mark_false_label_stack): Remove.
5053         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
5054         <top level> string in GC area.
5055         (mark_splay_tree_node): New function.
5056         (mark_splay_tree): Likewise.
5057         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
5058         if it exists.
5059         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
5060         * ggc-common.c (lang_mark_false_label_stack): Change type.
5061         * ggc.h (ggc_alloc_string): Add comment.
5062         (ggc_strdup): New function.
5063
5064 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
5065
5066         * config/avr/avr.h (BRANCH_COST): Define as 0.
5067
5068         * config/pdp11/pdp11.c: #include "tree.h" added.
5069
5070 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
5071
5072         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
5073         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
5074         with known shift count.
5075         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
5076         New alternative for shift count 2 with no scratch register.
5077         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
5078         "set_n" for shift counts 1 and 2.
5079
5080 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
5081
5082         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
5083         the mask value from the individual SET operations.
5084         (return_internal_si): Move the USE after the RETURN.
5085         (return_internal_di): Likewise.
5086         (return_and_restore_fpregs_si): Likewise.
5087         (return_and_restore_fpregs_di): Likewise.
5088         (return_eh_si): Likewise.
5089         (return_eh_di): Likewise.
5090         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
5091         or check, the USE.
5092         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
5093         Don't generate a PARALLEL around a single operation movsi_to_cr.
5094         Generate the RETURN first in any PARALLELs.
5095
5096         * rtlanal.c (single_set_1): Use fatal_insn to display the
5097         invalid insn.  Check for more cases when a USE or CLOBBER occurs
5098         before a SET.
5099         * Makefile.in: Update dependencies for rtlanal.o.
5100
5101 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
5102
5103         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
5104
5105 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
5106
5107         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
5108         Consistently use @email for formatting email addresses.
5109
5110 2000-09-29  Richard Henderson  <rth@cygnus.com>
5111
5112         * cse.c (notreg_cost): New argument outer.
5113         (COST): Pass in SET to notreg_cost
5114         (COST_IN): New.
5115         (fold_rtx): Use COST_IN.  Prefer constants when costs
5116         are the same.
5117
5118 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
5119
5120         * fixinc/inclhack.def (broken_cabs): Generalize regex.
5121         * fixinc/fixincl.x: Regenerate.
5122
5123 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5124
5125         * loop.c (check_final_value): A GIV is not replaceable if used
5126         before set.
5127
5128 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
5129
5130         * version.c: Bump to gcc-2.97.
5131
5132 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5133
5134         * final.c (final_scan_insn): Remove extra extract_insn call;
5135         Use caching for constrain_operands.
5136         (cleanup_subreg_operands): Use caching for extract_insn.
5137         * recog.c (constrain_operands_cached): New.
5138         * recog.h (constrain_operands_cached): Declare.
5139         * i386.c (ix86_attr_length_immediate_default,
5140         ix86_attr_length_address_default, ix86_agi_dependant): Cache
5141         extract_insn call.
5142
5143         * recog.c (asm_noperands): Tweak.
5144         (extract_insn): Do not call asm_noperads for non-asm instructions.
5145
5146 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5147
5148         * recog.c (recog_memoized): Rename to recog_memoized_1.
5149         * recog.h (recog_memoized): Rename to recog_memoized_1.
5150         (recog_memoized): New macro.
5151         * rtl.h (single_set): Rename to single_set_1
5152         (single_set): New macro.
5153         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
5154         to be last.
5155
5156         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
5157         Do not use match_dup of input operands at outputs.
5158         Use register_operand for memory expression.
5159         (rep_movsi): Put use last, canonicalize.
5160         Use register_operand for memory expression.
5161         (rep_movqi): Put use last.
5162         Use register_operand for memory expression.
5163         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
5164         of input operands at outputs.  Use register_operand for memory
5165         expression.
5166         (rep_stossi): Put use last; canonicalize; fix match_dup in
5167         the address expression
5168         (rep_stosqi): Likewise.
5169         (memcmp expander): Update calls.
5170         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
5171         the clobbers.
5172
5173         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
5174         VOIDmode.
5175         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
5176
5177 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
5178
5179         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
5180         Contains the old contents of config/i386/freebsd.h
5181         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
5182         Contains the old contents of config/i386/freebsd-elf.h
5183         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
5184         config/i386/freebsd.h.
5185         * configure.in: Adjust for above changes.
5186         * po/POTFILES.in: Likewise.
5187         * po/en_GB.po: Likewise.
5188         * po/gcc.pot: Likewise.
5189         * configure: Rebuilt.
5190
5191 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5192
5193         * doloop.c (doloop_modify): Prevent delete_insn() from
5194         deleting too much.  Prefer loop->top over loop->start as
5195         target for the new JUMP insn.
5196         (doloop_valid_p): Ignore loop with exit_count != 0.
5197
5198 2000-09-28  Philipp Thomas  <pthomas@suse.de>
5199
5200         * invoke.texi (i386 Options): Add athlon to table of possible
5201         choices for -mcpu=.
5202
5203 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
5204
5205         * diagnostic.h (output_clear_message_text): New function.
5206         (output_message_text): New macro.
5207
5208         * diagnostic.c (clear_text_info): Rename to
5209         output_clear_message_text.
5210         (output_clear): Adjust.
5211         (output_finish): Rename to output_finalize_message.  Tweek.
5212         (output_to_stream): Adjust.
5213
5214 2000-09-28  Neil Booth  <neilb@earthling.net>
5215
5216         * cpperror.c (_cpp_begin_message):  Do the test for suppression
5217         of warnings and pedantic warnings before the "is a warning an
5218         error" tests.
5219         * cppinit.c (cpp_handle_option): Remove surplus \n.
5220         * cpplex.c (ON_REST_ARG): Delete.
5221         (skip_block_comment): Initialise prevc.
5222         (parse_args): Improve error messages.
5223         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
5224         than ON_REST_ARG.
5225         * cpplib.c (cpp_push_buffer): Fix grammar in message.
5226         * cppmain.c (main): Set callbacks for #ident and #pragma
5227         only if no_output option is false.
5228         (do_pragma_implementation): Only call the #pragma handler
5229         if it is set in the cpp_reader structure.
5230
5231 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
5232
5233         * integrate.c (copy_insn_list): if an ignored return value
5234         is being clobbered, skip cloning that into the inline copy.
5235
5236 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
5237
5238         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
5239         use @uref for formatting URLs.
5240
5241 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
5242
5243         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
5244         name and prefix.
5245
5246 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
5247
5248         * gcc.c (cpp_options): Add spec for -ftabstop=.
5249         (invoke_as): New spec that handles invoking as.
5250         Update specs to handle -save-temps and -traditional.
5251         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
5252         Use invoke_as.
5253         * cp/lang-specs.h, objc/lang-specs.h: Update to use
5254         invoke_as, and handle -save-temps and -traditional (if
5255         appropriate).
5256
5257 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
5258
5259         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
5260         op0 is a SUBREG.
5261         (function_arg_slotno): Accept TImode/CTImode.
5262         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
5263         to UNITS_PER_WORD.
5264
5265 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
5266
5267         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
5268         from entry block.
5269
5270 2000-09-25  Jim Wilson  <wilson@cygnus.com>
5271
5272         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
5273         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
5274         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
5275         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
5276
5277 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
5278
5279         * cpplex.c (parse_args): Don't set VOID_REST flag.
5280         (CONTEXT_VARARGS): New flag.
5281         (maybe_paste_with_next): Set context earlier in loop.  Use
5282         it.  Do varargs test with CONTEXT_VARARGS flag.
5283         (push_arg_context): Set CONTEXT_VARARGS flag if we're
5284         pushing an argument context for a varargs argument.
5285         * cpplib.h (VOID_REST): Delete.
5286         * gcc.dg/cpp/vararg1.c: Add test case.
5287
5288 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
5289
5290         * flags.h:  Declare warning flag warn_system_headers.
5291         * toplev.c:  Define it.
5292         (W_options): Add option -Wsystem-headers.
5293         * diagnostic.c (count_error): Test warn_system_headers.
5294         * invoke.texi:  Add description for -Wsystem-headers.
5295         * cpplib.h (cpp_options): New member warn_system_headers.
5296         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
5297         CPP_IN_SYSTEM_HEADER.
5298         * cpplib.c (do_import, do_pragma_once): Likewise.
5299         * cpperror.c (_cpp_begin_message): Test warn_system_headers
5300         and CPP_IN_SYSTEM_HEADER.
5301         * cppinit.c (handle_option): Recognize -Wsystem_headers.
5302         (print_help): Describe -Wsystem_headers.
5303         * cpplex.c (lex_line): Reorganize condition so that warnings
5304         about C++ comments in system headers can be enabled. Remove
5305         label do_line_comment.
5306
5307 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
5308
5309         * cpplex.c (save_comment): Only store the initial '/'
5310         now.
5311         (lex_token): Combine handling of the two comment types.
5312         Pass everything but the initial '/' to save_comment.
5313
5314 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
5315
5316         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
5317         _cpp_can_paste): New library-internal prototypes.
5318         * cpplex.c (dump_param_spelling, output_line_command,
5319         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
5320         cpp_printf, cpp_output_list): Move to cppoutput.c.
5321         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
5322         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
5323         cppoutput.c.
5324         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
5325         dump_param_spelling, output_line_command, cpp_scan_buffer,
5326         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
5327         from elsewhere.
5328         * Makefile.in: Add cppoutput.c.
5329         * po/POTFILES.in: Add cppoutput.c.
5330
5331 2000-09-25  Richard Henderson  <rth@cygnus.com>
5332
5333         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
5334         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
5335         split until after reload.
5336         (rotlsi3, rotldi3): New.
5337
5338 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
5339
5340         * diagnostic.c (output_last_position): Define.
5341         (set_real_maximum_length): Tweek.
5342         * diagnostic.h (output_last_position): Declare.
5343
5344 2000-09-25  Kazu Hirata  <kazu@hxi.com>
5345
5346         * config/i386/i386.c: Fix formatting.
5347
5348 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
5349
5350         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
5351         UNITS_PER_WORD is small.
5352
5353 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5354
5355         * c-common.c (format_char_info): Add flags2; update comments.
5356         (print_char_table, scan_char_table, time_char_table): Split some
5357         flags out into flags2.
5358         (check_format_info): Use flags2 for those flags, for identifying
5359         the initial character of a scanf scanset, and for identifying
5360         printf formats where the '0' flag is ignored with precision.
5361
5362 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
5363
5364         Changes below marked "here" add TABs on either or both sides,
5365         covering start of line, up to any operand for all noted .*ASM.*_OP
5366         definitions.  All callers changed.
5367         * tm.texi: Make documented *_ASM.*_OP:s include spacing
5368         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
5369         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5370         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5371         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
5372         Fix typos in description for LONG_LONG_TYPE_SIZE and
5373         FINI_SECTION_ASM_OP.
5374         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
5375         why these defaults don't have leading spacing.
5376         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
5377         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5378         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
5379         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
5380         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
5381         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
5382         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
5383         * varasm.c (ASM_STABS_OP): Here.
5384         * xcoffout.h (ASM_STABS_OP): Here.
5385         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5386         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5387         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
5388         STRING_ASM_OP): Here.
5389         * config/freebsd.h (IDENT_ASM_OP): Here.
5390         * config/linux-aout.h (SET_ASM_OP): Here.
5391         * config/linux.h (SET_ASM_OP): Here.
5392         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5393         INT_ASM_OP): Here.
5394         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5395         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
5396         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
5397         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5398         INT_ASM_OP): Here.
5399         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
5400         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
5401         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
5402         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5403         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
5404         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5405         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
5406         * config/a29k/udi.h (INT_ASM_OP): Here.
5407         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
5408         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5409         SET_ASM_OP): Here.
5410         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
5411         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5412         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5413         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
5414         ASM_STABD_OP): Here.
5415         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
5416         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
5417         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5418         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
5419         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
5420         SIZE_ASM_OP, STRING_ASM_OP): Here.
5421         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
5422         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
5423         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
5424         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
5425         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
5426         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
5427         Here.
5428         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5429         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
5430         * config/arm/coff.h (INT_ASM_OP): Here.
5431         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5432         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
5433         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
5434         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
5435         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
5436         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5437         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
5438         STRING_ASM_OP): Here.  Update documentation copy in comments.
5439         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
5440         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
5441         DATA_SECTION_ASM_OP): Here.
5442         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
5443         Here.
5444         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
5445         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5446         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5447         BSS_SECTION_ASM_OP): Here.
5448         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5449         BSS_SECTION_ASM_OP): Here.
5450         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5451         Here.
5452         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
5453         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
5454         * config/h8300/h8300.h (ASM_WORD_OP): Here.
5455         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5456         BSS_SECTION_ASM_OP): Here.
5457         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
5458         * config/i386/bsd.h (ASM_BYTE_OP): Here.
5459         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
5460         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
5461         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
5462         Here.
5463         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
5464         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
5465         Here.
5466         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
5467         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5468         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
5469         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
5470         SET_ASM_OP): Here.
5471         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
5472         * config/i386/netbsd.h (INT_ASM_OP): Here.
5473         * config/i386/openbsd.h (INT_ASM_OP): Here.
5474         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
5475         IDENT_ASM_OP): Here.
5476         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
5477         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
5478         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
5479         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
5480         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
5481         SHARED_BSS_SECTION_ASM_OP): Here.
5482         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
5483         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5484         DATA_SECTION_ASM_OP): Here.
5485         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5486         CONST_SECTION_ASM_OP): Here.
5487         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
5488         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5489         BSS_SECTION_ASM_OP): Here.
5490         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
5491         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
5492         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
5493         BSS_ASM_OP): Here, but use trailing spaces.
5494         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5495         DATA_SECTION_ASM_OP): Here.
5496         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
5497         Here.
5498         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
5499         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
5500         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5501         TDESC_SECTION_ASM_OP): Here.
5502         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
5503         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5504         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5505         Here.
5506         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5507         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
5508         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5509         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5510         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
5511         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
5512         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5513         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
5514         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
5515         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
5516         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5517         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5518         SET_ASM_OP): Here.
5519         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5520         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5521         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
5522         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
5523         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
5524         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
5525         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
5526         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5527         GLOBAL_ASM_OP): Here.
5528         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
5529         BSS_SECTION_ASM_OP): Here.
5530         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
5531         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5532         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
5533         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
5534         SKIP_ASM_OP): Here.
5535         * config/m68k/newsgas.h (SET_ASM_OP): Here.
5536         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
5537         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5538         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
5539         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
5540         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
5541         but use trailing spaces.
5542         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
5543         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
5544         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
5545         Here.
5546         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
5547         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5548         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5549         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
5550         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5551         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
5552         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
5553         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
5554         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
5555         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
5556         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
5557         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
5558         ASM_BYTE_OP): Here.
5559         * config/m88k/openbsd.h (SET_ASM_OP): Here.
5560         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5561         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
5562         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
5563         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
5564         DTORS_SECTION_ASM_OP): Here.
5565         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
5566         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5567         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
5568         BSS_SECTION_ASM_OP): Here.
5569         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
5570         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
5571         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
5572         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
5573         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
5574         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
5575         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
5576         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
5577         Here.
5578         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
5579         Here.
5580         * config/mips/osfrose.h (SET_ASM_OP): Here.
5581         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
5582         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
5583         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
5584         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5585         Here.
5586         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
5587         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
5588         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
5589         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
5590         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
5591         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5592         Here.
5593         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5594         Here.
5595         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
5596         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
5597         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
5598         Here.
5599         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
5600         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
5601         * config/sparc/linux.h (COMMON_ASM_OP): Here.
5602         * config/sparc/linux64.h (COMMON_ASM_OP,
5603         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
5604         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
5605         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
5606         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
5607         * config/sparc/pbd.h (ASM_INT_OP): Here.
5608         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
5609         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
5610         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
5611         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
5612         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
5613         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
5614         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
5615         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
5616         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
5617         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5618         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
5619         EH_FRAME_SECTION_ASM_OP): Here.
5620         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
5621         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5622         Here.
5623         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5624         Here.
5625         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
5626         TCOMMON_ASM_OP): Here.
5627         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
5628         Here.
5629         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
5630         ASM_BYTE_OP): Here.
5631
5632 2000-09-25  Richard Henderson  <rth@cygnus.com>
5633
5634         * expmed.c (store_bit_field): Adjust last change to not consider
5635         any word-sized field naturally aligned.
5636
5637 2000-09-24  Richard Henderson  <rth@cygnus.com>
5638
5639         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
5640         TFmode unordered compares properly.  Revalidate integer compare
5641         operands.
5642         (alpha_emit_setcc): New.
5643         (alpha_emit_conditional_move): Revalidate integer compare operands.
5644         * config/alpha/alpha-protos.h: Update.
5645         * config/alpha/alpha.md (cmpdi): Allow general operands.
5646         (sne): Use alpha_emit_setcc.
5647         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
5648         (sunordered, sordered): New.
5649
5650 2000-09-24  Richard Henderson  <rth@cygnus.com>
5651
5652         * config/ia64/ia64-protos.h: Update.
5653         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
5654         (ia64_expand_call): New.
5655         (ia64_expand_prologue): Emit an alloc if we need extra input
5656         registers.
5657         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
5658         instruction if true.
5659         (struct reg_flags): Add is_sibcall.
5660         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
5661         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
5662         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
5663         * config/ia64/ia64.h (PREDICATE_CODES): Update.
5664         * config/ia64/ia64.md (call): Use ia64_expand_call.
5665         (call_value): Likewise.
5666         (sibcall, sibcall_value): New.
5667         (call patterns): Remove extra expanders; tidy.
5668         (sibcall_epilogue): New.
5669         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
5670
5671 2000-09-24  Richard Henderson  <rth@cygnus.com>
5672
5673         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
5674
5675         * sibcall.c (skip_pic_restore): New.
5676         (identify_call_return_value): Use it.
5677
5678 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
5679
5680         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
5681         functions.  Generalize to handle both C and C++.
5682         * Makefile.in (c-tree.info): New target.
5683         (info): Add c-tree.info.
5684
5685 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5686
5687         * expr.c (store_field): If BITSIZE is negative, use size of type.
5688         (expand_expr, case COMPONENT_EXPR): Likewise.
5689
5690 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
5691
5692         * cpplex.c: Update TODO comment.
5693         * cpplib.c (do_error, do_warning): Merge common code of
5694         do_error and do_warning into do_diagnostic.  Use it.
5695         (do_diagnostic): New function.
5696         * cpplib.h: Fix comment typo.
5697
5698 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5699
5700         * c-common.c (check_format_info): Warn for a wide character string
5701         used as a non-wide format argument.
5702
5703 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5704
5705         * builtins.def (BUILT_IN_LLABS): Add.
5706         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
5707         * c-common.c (c_common_nodes_builtins): Create builtin functions
5708         __builtin_llabs, and plain llabs unless no_nonansi_builtins
5709         outside of C99 mode.
5710         (expand_tree_builtin): Handle BUILT_IN_LLABS.
5711
5712 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
5713
5714         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
5715         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
5716         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
5717         _cpp_free_toklist): No need to worry about extra dummy token
5718         at the start of token lists any more.
5719         (trigraph_ok): Only warn outside comments.
5720         (skip_block_comment): Set and clear lexing_comment.
5721         (skip_line_comment): Take a cpp_reader not cpp_buffer.
5722         Set and clear lexing_comment.
5723         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
5724         (check_long_token): Delete.
5725         (lex_percent, lex_dot): New subroutines of lex_token to
5726         handle lexing of '.' and '%' without lookback.
5727         (lex_token): Use lex_dot and lex_percent.
5728         (lex_line): Don't check for LIST_OFFSET.
5729         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
5730         * cpplib.c (_cpp_parse_assertion): Similarly.
5731         (cpp_push_buffer): Initialize extra_char.
5732         * cpplib.h (LIST_OFFSET): Delete.
5733         (struct cpp_buffer): New member extra_char.
5734         (struct lexer_state): New members lexing_comment and seen_dot.
5735
5736 2000-09-23  Jason Merrill  <jason@redhat.com>
5737
5738         * config/rs6000/x-aix41 (CLIB): Define here.
5739         * config/rs6000/t-aix43: Not here.
5740         * config/rs6000/t-aix41: Or here.  Remove.
5741         * configure.in: Don't use it.
5742
5743 2000-09-22  Jason Merrill  <jason@redhat.com>
5744
5745         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
5746         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
5747         * config.in: Regenerate.
5748
5749         * configure.in: Fix checks for assembler features when using a
5750         one-tree assembler that has not yet been built.
5751         Fix --disable-threads.
5752
5753 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
5754
5755         * stmt.c (expand_asm_operands): Allow # in constraints.
5756
5757 2000-09-22  Jason Merrill  <jason@redhat.com>
5758
5759         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
5760
5761         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
5762         function-local names.
5763
5764 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
5765             Mark Mitchell  <mark@codesourcery.com>
5766
5767         * toplev.c (warn_disabled_optimization): Declare new warning flag.
5768         * flags.h (warn_disabled_optimization): Add it here.
5769         * gcse.c (gcse_main): Add warning when disabled.
5770         * invoke.texi: Document -Wdisabled-optimization.
5771
5772 2000-09-21  Jason Merrill  <jason@redhat.com>
5773
5774         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
5775
5776         * dwarf2out.c (tree_add_const_value_attribute): New fn.
5777         (gen_variable_die): Call it for non-definitions.
5778
5779         * dwarf2out.c (die_struct): Add die_mark field.
5780         (mark_dies, unmark_dies): New fns.
5781         (clear_die_sizes): Remove.
5782         (print_die): Check die_symbol rather than die_offset.
5783         (build_abbrev_table, output_pubnames, output_aranges): Check
5784         die_mark rather than die_offset.
5785         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
5786         Call mark_dies.
5787
5788 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
5789
5790         * cppfiles.c (lookup_include_file): Rename to open_file.
5791         Always create a splay tree value, even on syscall failures.
5792         Negative entries indicated by fd == -2.
5793         Re-open files closed in the meantime.
5794         (_cpp_fake_include): Create a negative splay tree entry.
5795         (find_include_file, cpp_read_file): Update for function name
5796         change.
5797         * gcc.gd/cpp/mi4.c: Testcase.
5798
5799 2000-09-21  Nick Clifton  <nickc@redhat.com>
5800
5801         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
5802         ARM and THUMB modes.
5803
5804         * config/mcore/mcore.c: Fix compile time warnings.
5805         * config/mcore/mcore-protos.h: Fix compile time warnings.
5806
5807 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5808
5809         * configure.in: Correct test of gcc_cv_glibc.
5810         * configure: Rebuilt.
5811         * config.in: Rebuilt.
5812
5813 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5814
5815         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
5816         (expand_builtin): Handle BUILT_IN_FWRITE.
5817
5818         * builtins.def (BUILT_IN_FWRITE): New entry.
5819
5820         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
5821
5822 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5823
5824         * gcc.c (modify_target): New variable and struct.
5825         (process_command): Handle MODIFY_TARGET_NAME.
5826         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
5827         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
5828
5829         * c-decl.c (finish_decl): Add else's to avoid referencing
5830         TYPE_DOMAIN of an ERROR_MARK.
5831
5832 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
5833
5834         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
5835         `reload_in*' insns.
5836
5837 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
5838
5839         * config/avr/avr.md (neghi2): Add alternative for input and output
5840         operands in different registers, as in negsi2.
5841         (*negsi2): Remove '*' from the name.  Use "movw" if available.
5842
5843 2000-09-19  Jim Wilson  <wilson@cygnus.com>
5844
5845         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
5846         HAVE_GAS_HIDDEN macro.
5847
5848 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
5849
5850         * cpplex.c (lex_line): Drop the EOF token for unknown
5851         directives in assembler.
5852
5853 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
5854
5855         * configure.in: Allow enable_threads_flag value of "aix".  Define
5856         thread_file as "aix" for AIX 4.3 and above.
5857         * configure: Regenerated.
5858
5859         * gthr-aix.h: New file.
5860
5861         * rs6000/t-aix43: Replace soft-float multilib with pthread.
5862         Remove 403 processor multilib match.  Fix rios2 processor multilib
5863         match.
5864
5865         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
5866         to return to appropriate csect.
5867
5868 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5869
5870         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
5871         functions.
5872         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
5873         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
5874         BUILT_IN_PRINTF.
5875
5876         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
5877         New entries.
5878
5879         * c-common.c (init_function_format_info): Handle __builtin_printf.
5880         Set `check_function_format_ptr'.
5881         (c_common_nodes_and_builtins): Set `puts_ftype' and
5882         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
5883         __builtin_printf and printf.
5884
5885         * tree.c, tree.h (check_function_format_ptr): Declare.
5886
5887 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
5888
5889         * cppfiles.c (read_include_file): Take no special action for
5890         zero-length files.
5891
5892 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
5893
5894         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
5895         rather than that of branch.
5896         (shorten_branches): Don't increment insn_current_address twice.
5897
5898         Undo most of the Wed Jan 27 23:39:53 1999 patch:
5899         * loop.h (struct induction): Delete members derived, ix and last_use.
5900         (struct loop_ivs): Delete members first_increment_giv and
5901         last_increment_giv.
5902         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
5903         recombine_givs): Delete functions.
5904         (find_and_verify_loops): Don't initialize cont_dominator.
5905         (strength_reduce): Lose code to try to find bivs that can be
5906         expressed as givs of another biv, and to convert biv increments
5907         into givs.
5908         Lose loop_scan_start variable, always use loop->scan_start.
5909         Don't call recombine_givs.  Don't handle derived givs.
5910         (record_giv): Don't initialize derived and last_use fields.
5911         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
5912         givs.
5913         * unroll.c (derived_regs): Delete static variable.
5914         (unroll_loop): Don't initialize it.
5915         (copy_loop_body): Lose code to handle derived givs.
5916         (find_splittable_givs): Don't check for givs made from biv
5917         increments.
5918         Don't set derived_regs.
5919
5920         Fix misapplied earlier patch:
5921         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
5922         to fpul.
5923         (floatsisf2): Generate floatsisf_ie by default.
5924         (floatsisf_i4): Conditional on TARGET_SH4.
5925
5926         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
5927         predicate for the expanders.
5928
5929 2000-09-19  Richard Henderson  <rth@cygnus.com>
5930
5931         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
5932         in addition to pentium and pentiumpro symbols.
5933         (CPP_CPU_DEFAULT_SPEC): Likewise.
5934
5935         * c-typeck.c (c_expand_asm_operands): Restore the output tree
5936         after expanding.
5937
5938         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
5939         if the tree has side effects.
5940         (warn_if_unused_value): Do not warn about void constructs.
5941
5942         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
5943
5944         * unroll.c (copy_loop_body): Update LABEL_NUSES before
5945         calling invert_jump.
5946
5947 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
5948
5949         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
5950         into anything.
5951
5952 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5953
5954         * Makefile.in (c-common.o): Depend on diagnostic.h.
5955
5956         * c-common.c: Include diagnostic.h.
5957         (tfaff): Delete.
5958         (status_warning): New function.
5959         (check_format_info, maybe_read_dollar_number, check_format_types,
5960         finish_dollar_format_checking, check_function_format): Accept a
5961         `status' parameter.  All callers changed.
5962
5963         * c-common.h (check_function_format): Accept a `status' parameter.
5964
5965         * c-typeck.c: Update call to `check_function_format'.
5966
5967 2000-09-18  Richard Henderson  <rth@cygnus.com>
5968
5969         * c-decl.c (c_expand_body): Call mark_varargs before
5970         expand_function_start.
5971
5972 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
5973
5974         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
5975         * config/rs6000/eabi-ci.asm: Likewise.
5976
5977 2000-09-18  Richard Henderson  <rth@cygnus.com>
5978
5979         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
5980         for BImode.
5981
5982 2000-09-18  Jim Wilson  <wilson@cygnus.com>
5983
5984         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
5985         before passing it to fold_rtx_mult_add.
5986
5987         * unroll.c (final_giv_value): Pass increment through
5988         extend_value_for_giv before passing it to emit_iv_add_mult.
5989
5990         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
5991         paradoxical subreg, then directly substitute the replacement and
5992         return.
5993
5994 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
5995
5996         * cpp.texi: Update documentation, including some clarifications,
5997         the treatment of various newline combinations, and space between
5998         backslash and newline.
5999
6000 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6001
6002         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
6003         Replace ASM_OUTPUT_LABELREF with assemble_name.
6004
6005 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6006
6007         * sh.c (addsubcosts): CONST is not cheap.
6008         (find_barrier): For Sh1, take alignment after jumps into account.
6009
6010 2000-09-15  Andrew Haley  <aph@redhat.com>
6011
6012         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
6013         remove all SETs of SUBREGs of hard registers.
6014         * function.c (purge_hard_subreg_sets): New function.
6015         (purge_single_hard_subreg_set): New function.
6016         * rtl.h: (purge_hard_subreg_sets): New function.
6017
6018 2000-09-18  Richard Henderson  <rth@cygnus.com>
6019
6020         * config/ia64/ia64-protos.h: Update.
6021         * config/ia64/ia64.c (signed_inequality_operator): New.
6022         (ia64_expand_compare): New.
6023         (ia64_register_move_cost): Handle PR_REGS moves.
6024         (ia64_secondary_reload_class): Require a GR when moving to a PR.
6025         (struct reg_write_state): Add written_by_and/or.
6026         (struct reg_flags): Add is_and/or.
6027         (rws_update): Set them.
6028         (rws_access_regno): Test them to allow parallel comparisons.
6029         (rtx_needs_barrier): Recognize parallel comparisons.
6030         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
6031         Call recog_memoized; ignore pred_rel_mutex.
6032         (emit_predicate_relation_info): Don't call find_basic_blocks here.
6033         (ia64_reorg): Do it here instead.
6034         * config/ia64/ia64.h: s/CCmode/BImode/g
6035         (MODES_TIEABLE_P): Don't tie BImode.
6036         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
6037         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
6038         (RTX_COSTS): Make multiply 4 insns.
6039         (MEMORY_MOVE_COST): New.
6040         (PREDICATE_CODES): Update.
6041         * config/ia64/ia64.md: s/CCmode/BImode/g
6042         (movcci, movbi): New.
6043         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
6044         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
6045         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
6046         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
6047         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
6048         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
6049         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
6050         (mulsi, muldi): Use xmpy not xma.
6051         (cmpbi): New.
6052         (movcc, movcc_internal): Remove.
6053         (branch expanders): Use ia64_expand_compare.
6054         (setcc expanders): Likewise.
6055         (cmov insns): Use move_operand and ia64_move_ok.
6056         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
6057         scheduler from moving it past a use.
6058         * config/ia64/build.hacks: Remove.
6059
6060 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
6061
6062         * cpphash.h (HASHSTEP): Take character rather than pointer
6063         to character.
6064         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
6065
6066         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
6067
6068         * cpplex.c (auto_expand_name_space, trigraph_replace,
6069         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
6070         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
6071         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
6072         KNOWN_DIRECTIVE): Delete.
6073
6074         (handle_newline, check_long_token, skip_escaped_newlines,
6075         unterminated): New functions.
6076         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
6077
6078         (parse_identifier): Was parse_name, new implementation.
6079         (skip_line_comment, skip_block_comment, skip_whitespace,
6080         parse_number, parse_string, trigraph_ok, save_comment,
6081         adjust_column, _cpp_get_line): New implementations.
6082
6083         (lex_token): New function.  Lexes a token at a time, looking
6084         forwards.  Contains most of the guts of the old lex_line.
6085         (lex_line): New implementation, using lex_token to obtain
6086         individual tokens.
6087         (cpp_scan_buffer): Use the token's line, not the list's line.
6088
6089         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
6090          New implementations.
6091         (do_assert): Don't bother setting the answer's list's line.
6092         (cpp_push_buffer): Initialise new pfile and read_ahead members
6093         of struct cpp_buffer.
6094
6095         * cpplib.h (cppchar_t): New typedef.
6096         (struct cpp_buffer): read_ahead, pfile and col_adjust are
6097         new members.
6098         (struct lexer_state): New structure that determines the state
6099         and behaviour of the lexer.
6100         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
6101         (struct cpp_reader): New member "state". Rename
6102         multiline_string_line and multiline_string_column. Delete
6103         col_adjust, in_lex_line members.
6104         (CPP_BUF_COLUMN): Update.
6105
6106 2000-09-18  Richard Henderson  <rth@cygnus.com>
6107
6108         * combine.c (simplify_comparison): Shift a NOT out of a single
6109         bit test.
6110
6111         * combine.c (if_then_else_cond): Canonicalize BImode true to
6112         STORE_FLAG_VALUE.
6113         * explow.c (trunc_int_for_mode): Likewise.
6114
6115         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
6116         the NOT for De Morgan's rule.
6117         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
6118         of a comparison to the reverse comparison.
6119
6120         * combine.c (try_combine): Allow split to create a single insn.
6121
6122         * machmode.def: Add BImode.  Add a column for bitsize.
6123         * machmode.h (DEF_MACHMODE): Adjust for extra column.
6124         (GET_MODE_BITSIZE): Use it.
6125         * rtl.c (DEF_MACHMODE): Adjust for extra column.
6126         (mode_bitsize): New.
6127         (mode_mask_array): Use bitsize.
6128         * combine.c (combine_simplify_rtx): Require inner and outer
6129         modes to match on nonzero_bits optimizations.
6130
6131 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
6132
6133         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
6134         its entry in spill_reg_store.
6135         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
6136         * sh.c (reg_no_subreg_operand): New function.
6137         * sh-protos.h (reg_no_subreg_operand): Declare it.
6138         * sh.h (PREDICATE_CODES): Add it.
6139         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
6140         input operand that needs to be in fpul.
6141         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
6142         * sh.c (find_barrier): Take into account that machine_dependent_reorg
6143         might add new insns.
6144
6145 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
6146
6147         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
6148         MAYBE_DEAD.
6149         (sh_expand_epilogue): Take the PIC register into account when
6150         computing the frame size.
6151
6152         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
6153         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
6154         LABEL_REFs with a PIC-safe unspec.
6155
6156 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
6157
6158         * c-common.c (check_format_info): Properly save the argument
6159         number and parameter for $ operand number formats in case width
6160         and precision arguments are also used.  Allow printf width and
6161         precision arguments to have operand numbers even if none was
6162         specified for the main format, since this is OK for %*.*m.  Only
6163         object to missing $ operand number if the format used requires an
6164         argument.
6165
6166 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
6167
6168         * c-common.c (format_char_info): Add 'W' flag to comment.
6169         (print_char_table, scan_char_table): Use it.
6170         (check_format_info): Use the 'W' flag to determine whether a
6171         format argument is written into.
6172
6173 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
6174
6175         * c-common.c (check_format_types): Reorganise and clean up,
6176         checking earlier for ERROR_MARKs and making cur_type into its
6177         TYPE_MAIN_VARIANT where convenient.
6178
6179 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
6180
6181         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
6182
6183 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
6184
6185         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
6186
6187         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
6188         * i386.c (struct builtin_description): New.
6189         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
6190         (mmx_reg_operand): Declare MODE arg as unused.
6191         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
6192         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
6193         ix86_expand_binop_builtin, ix86_expand_store_builtin,
6194         ix86_init_builtins, ix86_expand_builtin): New functions.
6195         * i386.h (ix86_builtins): New enumeration.
6196         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
6197         * i386.md (attr length_immediate): 0 for mmx/sse types.
6198         (attr prefix_0f): 1 for mmx/sse types.
6199         (setcc_2): Remove "*" so we get gen_setcc_2.
6200         (emms): Account for changed register numbering.  Set "memory" attr
6201         to unknown.
6202         (sfence): Set "memory" attr to unknown.
6203
6204 2000-09-18  Andreas Jaeger  <aj@suse.de>
6205
6206         * configure.in: Define _GNU_SOURCE only when using the GNU C
6207         Library.
6208         * configure: Regenerated.
6209         * config.in: Regenerated.
6210
6211 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
6212
6213         * cppinit.c (cpp_init): Don't use ANSI prototypes.
6214         * flow.c (flow_dump_loop): Likewise.
6215         (flow_loops_dump): Likewise.
6216
6217         * c-typeck.c (c_start_case): Fix typo.
6218
6219 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6220
6221         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
6222         to int for plain complex which defaults to complex double.  Do
6223         warn about defaulting to complex double if pedantic.  Warn about
6224         complex integer types if pedantic.  Warn about complex types if
6225         pedantic and not in C99 mode.
6226         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
6227         for complex conjugation.
6228
6229 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6230
6231         * contrib.texi: Update my entry.
6232
6233 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
6234
6235         * config/avr/avr.md (mcu_enhanced): New attribute.
6236         (mcu_mega): Likewise.
6237         (extendhisi2): Use mcu_enhanced.
6238         (zero_extendhisi2): Likewise.
6239         (call_insn): Use mcu_enhanced and mcu_mega.
6240         (call_value_insn): Likewise.
6241         (*sbrx_branch): Use mcu_mega.
6242         (*sbrx_and_branchsi): Likewise.
6243         (*sbrx_and_branchhi): Likewise.
6244         (*tablejump_lib): Likewise.
6245
6246 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6247
6248         * alias.c (true_dependence): Allow non-unchanging read to conflict
6249         with unchanging write.
6250
6251         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
6252         (store_constructor): Pass alias_set to it.
6253
6254         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
6255         TYPE_MAIN_VARIANT of ERROR_MARK.
6256         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
6257
6258         * simplify-rtx.c (simplify_unary_operation): Add cases
6259         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
6260
6261 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
6262
6263         * expr.h (emit_library_call, emit_library_call_value): Delete
6264         declarations.
6265         * rtl.h (enum libcall_type): New.
6266         (emit_library_call, emit_library_call_value): Change fn_type arg to
6267         be of type enum libcall_type.
6268         * calls.c: Likewise for the function definitions.  Several callers
6269         throughout changed to use the new enumeration appropriately.
6270         (emit_library_call_value_1): Likewise.  Put back code to make libcall
6271         blocks of equal form, but only use it for the two new higher
6272         enumeration values.
6273
6274 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
6275
6276         Convert the C front-end to use function-at-a-time mode.
6277         * c-common.h: Include splay-tree.h.
6278         (C_DECLARED_LABEL_FLAG): New macro.
6279         (struct language_function): Add x_scope_stmt_stack and
6280         x_function_name_declared_p.
6281         (RECHAIN_STMTS): Move definition.
6282         (lang_statment_code_p): Likewise.
6283         (lang_expand_stmt): Likewise.
6284         (lang_expand_decl_stmt): New variable.
6285         (lang_expand_function_end): Likewise.
6286         (current_scope_stmt_stack): New function.
6287         (add_decl_stmt): Likewise.
6288         (add_scope_stmt): Likewise.
6289         (mark_stmt_tree): Likewise.
6290         (struct c_lang_decl): New structure.
6291         (DECL_SAVED_TREE): Define.
6292         (c_mark_lang_decl): New function.
6293         (c_expand_start_cond): Change prototype.
6294         (c_finish_then): New function.
6295         (c_finish_else): Likewise.
6296         (current_function_name_declared): Remove.
6297         (set_current_function_name_declared): Likewise.
6298         (mark_c_language_function): Declare.
6299         (case_compare): Likewise.
6300         (c_add_case_label): Likewise.
6301         (c_expand_expr): Likewise.
6302         (c_safe_from_p): Likewise.
6303         * c-common.c (lang_expand_function_end): New variable.
6304         (struct if_elt): Add if_stmt.
6305         (c_expand_start_cond): Add the if-statement to the statement-tree,
6306         rather than generating RTL.
6307         (c_finish_then): New function.
6308         (c_expand_start_else): Don't generate RTL.
6309         (c_finish_else): New function.
6310         (c_expand_expr_stmt): Don't generate RTL.
6311         (statement_code_p): Add SCOPE_STMT.
6312         (case_compare): New function.
6313         (c_add_case_label): Likewise.
6314         (mark_stmt_tree): Likewise.
6315         (c_mark_lang_decl): Likewise.
6316         (mark_c_language_function): Likewise.
6317         (c_expand_expr): Likewise.
6318         (c_safe_from_p): Likewise.
6319         * c-decl.c (c_stmt_tree): New variable
6320         (c_scope_stmt_stack): Likewise.
6321         (c_function_name_declared_p): Likewise.
6322         (lang_expand_expr_stmt): Remove.
6323         (poplevel): Don't call output_inline_function for nested
6324         functions.
6325         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
6326         `extern' function.
6327         (redeclaration_error_message): Change means of computing whether
6328         or not a function is nested.
6329         (lookup_label): Don't call label_rtx.
6330         (init_decl_processing): Add more GC roots.
6331         (start_decl): Add DECL_STMTs to the statement-tree, rather than
6332         calling rest_of_decl_compilation.
6333         (finish_decl): Don't call expand_decl.
6334         (store_parm_decls): Begin the statement-tree, but don't generate
6335         RTL.
6336         (finish_function): Tie off the statement-tree.  Call c_expand_body
6337         if appropriate.
6338         (c_expand_body): New function.
6339         (push_c_function_context): Save more information.
6340         (pop_c_function_contxt): Likewise.
6341         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
6342         (lang_mark_tree): Mark it.
6343         (current_stmt_tree): Adjust.
6344         (current_scope_stmt_stack): New function.
6345         (do_case): Remove.
6346         (set_current_name_declared): Likewise.
6347         (c_begin_compound_stmt): Define.
6348         (c_expand_decl_stmt): Likewise.
6349         * c-lang.c: Include rtl.h and expr.h.
6350         (lang_init): Set more language-specific hooks.
6351         * c-lex.c: Include expr.h.
6352         * c-parse.in: Changes throughout to add statements to the
6353         statement-tree, rather than generating RTL after every statement.
6354         * c-semantics.c (lang_expand_decl_stmt): Define.
6355         (add_decl_stmt): New function.
6356         (add_scope_stmt): Likewise.
6357         (finish_stmt_tree): Tweak.
6358         (genrtl_expr_stmt): Likewise.
6359         (genrtl_decl_stmt): Handle local labels, and call
6360         lang_expand_decl_stmt if required.
6361         (genrtl_for_stmt): Fix line-number handling.
6362         (genrtl_case_label): Handle cleanups.
6363         (genrtl_asm_stmt): Don't call combine_strings.
6364         (genrtl_compound_stmt): Simplify.
6365         (expand_stmt): Handle SCOPE_STMTs.
6366         * c-tree.h (struct lang_decl): New structure.
6367         (C_DECLARED_LABEL_FLAG): Remove.
6368         (c_begin_compound_stmt): Declare.
6369         (c_expand_decl_stmt): Likewise.
6370         (c_expand_start_case): Rename to c_start_case.
6371         (c_finish_case): New function.
6372         * c-typeck.c (start_init): Tweak setting of
6373         constructor_incremental.
6374         (c_expand_asm_operands): Tweak error-handling.  Add to the
6375         statement-tree.
6376         (c_expand_return): Add to the statement-tree.
6377         (c_expand_start_case): Rename to ...
6378         (c_start_case): ... this.
6379         (struct c_switch): New type.
6380         (switch_stack): New variable.
6381         (do_case): Simplify.
6382         (c_finish_case): New function.
6383         * dependence.c: Include expr.h.
6384         (enum dependence_type): Change spelling of enumerals.
6385         (check_node_dependence): Adjust.
6386         * expr.h (lang_safe_from_p): Declare.
6387         (safe_from_p): Likewise.
6388         * expr.c (lang_safe_from_p): New variable.
6389         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
6390         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
6391         * toplev.c (rest_of_decl_compilation): Robustify.
6392         * tree.c (contains_placeholder_p): Likewise.
6393         * Makefile.in: Update dependencies.
6394         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
6395         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
6396         (objc_expand_function_end): New function.
6397         (finish_method_def): Use it.
6398         (init_objc): Initialize more language-specific hooks.
6399         * objc/Make-lang.in: Update dependencies.
6400
6401 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
6402
6403         * configure.in: Define macros that affect features before
6404         testing for features.  Don't define _XOPEN_SOURCE.
6405         * configure: Regenerated.
6406         * config.in: Regenerated.
6407
6408 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
6409
6410         * rtlanal.c (rtx_varies_p): Volatile asms vary.
6411         (rtx_unstable_p): Restructure code.  Volatile asms
6412         are unstable.
6413
6414 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6415
6416         * function.h (no_debugging_symbols): New field.
6417         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
6418         Initialize no_debugging_symbols.
6419         (output_inline_function): Save and restore write_symbols and set from
6420         no_debugging_symbols.
6421         * toplev.c (rest_of_compilation): Call save_for_inline.
6422         * tree.h: Update comment.
6423
6424         * stor-layout.c (place_field): Don't do anything if field or
6425         its type are ERROR_MARK.
6426
6427 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
6428
6429         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
6430         (read_include_file): Ensure inc->mmaped is initialized.
6431
6432 2000-09-16  Richard Henderson  <rth@cygnus.com>
6433
6434         * cppiles.c (purge_cache): Use PTR not caddr_t.
6435
6436 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
6437
6438         * gcc.c: In description for %{<S}, say the option removed is -S.
6439         * invoke.texi (Spec Files): Ditto.
6440
6441 2000-09-16  Andreas Jaeger  <aj@suse.de>
6442
6443         * configure.in: Always define _GNU_SOURCE to make interfaces
6444         visible that were hidden by only defining _GNU_SOURCE.
6445         * configure: Regenerated.
6446
6447 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
6448
6449         * cpplex.c (push_macro_context): Set an argument's level after
6450         calling parse_args.  We could loop infinitely otherwise.
6451
6452 2000-09-15  Tom Tromey  <tromey@cygnus.com>
6453
6454         * configure, config.in: Rebuilt.
6455         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
6456
6457 2000-09-15  Greg McGary  <greg@mcgary.org>
6458
6459         * cppmacro.c (check_trad_stringification): Check token
6460         text pointers against limit before dereferencing.
6461
6462 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
6463
6464         * c-common.c (format_wanted_type): New structure.
6465         (check_format_types): New function.
6466         (check_format_info): Pass all checking of types of format
6467         arguments, including width and precision arguments, to this new
6468         function.
6469
6470 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6471
6472         * BUGS: Remove file.
6473
6474 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
6475
6476         * config/alpha/alpha.c (override_options): ev6 cache latencies
6477         from Richard Henderson.  Don't allow -mmemory-latency=L0.
6478
6479         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
6480         (TARGET_OPTIONS): Add tune=.
6481         (alpha_tune_string): Declare.
6482         * config/alpha/alpha.c (override_options): Add cpu_table.
6483         Use alpha_cpu_string first to set both alpha_cpu and target_flags
6484         and then alpha_tune_string to set alpha_cpu only.
6485         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
6486         * config/alpha/elf.h (ASM_FILE_START): Likewise.
6487         * config/alpha/osf.h (ASM_FILE_START): Likewise.
6488         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
6489
6490 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6491
6492         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
6493         Remove.
6494         (ix86_comparison_operator, ix86_cc_mode): Declare
6495         * i386.h (CCGC, CCGCO): New modes.
6496         (SELECT_CC_MODE): Move offline to ....
6497         * i386.c (ix86_cc_mode): .... here; use new modes.
6498         (ix86_comparison_operator): New.
6499         (fcmov_comparison_operator): Ensure proper mode.
6500         (put_condition_mode): More sanity checking.
6501         (ix86_match_ccmode): Handle new modes.
6502         (ix86_expand_fp_compare): GEU requires CCmode.
6503         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
6504         doing it by hand.
6505         * i386.md (cmp?i_ccz_1): Remove
6506         (cmp?i_ccno_1): Use ix86_match_ccmode.
6507         (cmp?i_minus_1): New.
6508         (cmpsi_1): New expander.
6509         (cmpqi_ext_1): Use match_ccmode
6510         (cmpqi_ext_3): New expander.
6511         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
6512         (cmpqi_ext_4): Use match_ccmode.
6513         (add?i_?): Use match_ccmode.
6514         (add?i_6): New.
6515         (test?i_ccz_1): Remove
6516         (test?i_1): New.
6517         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
6518         (testqi_ext_0): Use ix86_match_ccmode.
6519         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
6520         (xorqi_cc_ext_1): New expander.
6521         (shift patterns): Use CCGOCmode for all shifts except for sar.
6522         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
6523         (setcc_3, jcc_3, miv?icc_c): Remove.
6524
6525 2000-09-15  Will Cohen  <wcohen@redhat.com>
6526
6527         * dwarf2out.c (add_const_value_attribute): Changed array into a
6528         xmalloced object, so it exists after function exit.
6529         (free_AT): Added case for dw_val_class_float to free allocated
6530         memory.
6531
6532 2000-09-15  Kazu Hirata  <kazu@hxi.com>
6533
6534         * config/i386/i386.md: Fix a comment typo.
6535         * gcc.c: Fix formatting.
6536
6537 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
6538
6539         * optabs.c (emit_libcall_block): If target is a user variable,
6540         copy to a temporary first.
6541         * expr.c (convert_move): When generating a libcall, make a libcall
6542         block.
6543         * calls.c (emit_library_call_value_1): Don't create a libcall
6544         sequence here; our caller will in most cases do it.
6545
6546         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
6547         MACH into FPUL.
6548         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
6549         * sh.md (reload_outsf): Generate recognizable patterns for
6550         TARGET_SH3E.
6551         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
6552         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
6553         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
6554         truncdfsf2_i4): Change not to use explicit references to fpul.
6555         (floatsisf2_ie): Remove USE of fpscr.
6556         (floatsisf2): Change default expansion to match this.
6557         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
6558         unused patterns.
6559
6560 2000-09-15  Richard Henderson  <rth@cygnus.com>
6561
6562         * expmed.c (store_bit_field): Consider naturally aligned
6563         memory for direct reference.
6564
6565 2000-09-15  Richard Henderson  <rth@cygnus.com>
6566
6567         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
6568         AND addresses into alias set 0.
6569         (alpha_expand_unaligned_store): Likewise.
6570         (alpha_expand_unaligned_load_words): Likewise.
6571         (alpha_expand_unaligned_store_words): Likewise.
6572
6573 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
6574
6575         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
6576         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
6577         is defined.
6578         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
6579         rsize of UNITS_PER_WORD.
6580
6581 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
6582
6583         * cpplex.c (ON_REST_ARG): Correct the test.
6584         (maybe_paste_with_next): Duplicate a token that fail pasting,
6585         and clear its PASTE_LEFT flag, so that nested pasting attempts
6586         do not occur.
6587
6588 2000-09-14  Richard Henderson  <rth@cygnus.com>
6589
6590         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
6591         * cse.c (rtx_cost): Likewise.
6592         * optabls.c (expand_binop): Likewise.
6593         (expand_twoval_binop, prepare_cmp_insn): Likewise.
6594         * regclass.c (copy_cost): Likewise.
6595         * reload1.c (reload_cse_move2add): Likewise.
6596
6597 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
6598
6599         * c-parse.in (reswords): Add _Complex.
6600
6601 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6602
6603         * gcc.1: Delete documentation for -undef preprocessor option.
6604
6605 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
6606
6607         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
6608         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
6609         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
6610         Remove undefine before config/elfos.h.
6611         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
6612
6613 2000-09-14  Kazu Hirata  <kazu@hxi.com>
6614
6615         * invoke.texi (H8/300 Options): Add -ms2600.
6616         * config/h8300.c (h8300_init_once): Output an error when -ms2600
6617         is used without -ms.
6618         * config/h8300.h (TARGET_MAC): New.
6619         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
6620         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
6621         machine other than H8/S2600.
6622         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
6623         of the H8/S2000.
6624
6625 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
6626
6627         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
6628         pseudos that refer to the original pseudos, not only to their
6629         equivalent memory locations.
6630
6631 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6632
6633         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
6634         when making new MEM.
6635
6636         * Makefile.in (LN): Remove duplicate definition.
6637
6638 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
6639
6640         From Joern Rennecke:
6641         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
6642         on an insn and function_invariant_p returns nonzero for the source,
6643         add a REG_EQUAL note.
6644
6645 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
6646
6647         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
6648         conflict with frame_pointer_rtx.
6649
6650 2000-09-13  Kazu Hirata  <kazu@hxi.com>
6651
6652         * loop.c: Fix formatting.
6653         * loop.h: Likewise.
6654
6655 2000-09-13  Richard Henderson  <rth@cygnus.com>
6656
6657         * config/ia64/ia64.md (divsf3): New.
6658         (divsf3_internal_lat, divsf3_internal_thr): New.
6659         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
6660         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
6661         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
6662         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
6663         (nmadddf4_alts, nmadddf4_trunc): New.
6664         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
6665         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
6666         (multf3_truncsf_alts, multf3_truncdf_alts): New.
6667         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
6668         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
6669         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
6670         (nmaddtf4_truncdf_alts): New.
6671         (recip_approx): Don't predicate.
6672
6673 2000-09-13  Richard Henderson  <rth@cygnus.com>
6674
6675         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
6676
6677 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6678
6679         * flags.h (flag_dump_rtl_in_asm): Declare.
6680         * toplev.c (flag_dump_rtl_in_asm): Define.
6681         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
6682         if -dP is specified.
6683         * rtl.h (print_rtx_head): Declare.
6684         * print-rtl.c (print_rtx_head): Define.
6685         (print_rtx): Print the string pointed to by print_rtx_head
6686         at beginning of each dump line.
6687         (print_rtl): Likewise.
6688         (print_rtl_single): Likewise.
6689         * final.c (final_scan_insn): Dump the insn in the assembly
6690         file for debugging.
6691         * gcc.1: Document -dP option.
6692         * invoke.texi (Debugging Options): Likewise.
6693
6694 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6695
6696         * md.texi (Machine Constraints): Document the 68HC11 constraints.
6697         * install.texi (Configurations): Document the 68HC11&68HC12 port.
6698         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
6699
6700 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
6701
6702         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
6703         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
6704         (*clrstrqi): Likewise.
6705         (xorhi3,xorsi3,absqi2): Likewise.
6706         (one_cmplhi2,one_cmplsi2): Likewise.
6707         (addsi3): Two stupid constraint alternatives removed.
6708         (extendhisi2): Use `movw' for enhanced avr cores.
6709         (zero_extendhisi2): Likewise.
6710
6711 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
6712
6713         * alias.c (find_base_term): Use frame_pointer_rtx
6714         when handling an ADDRESSOF.
6715
6716         * cse.c (canon_hash): Handle USE of BLKmode memory.
6717         (cse_insn): Outgoing arguments for a libcall don't
6718         affect any recorded expressions.
6719
6720 2000-09-12  Tom Tromey  <tromey@cygnus.com>
6721
6722         * configure, config.in: Rebuilt.
6723         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
6724
6725 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
6726
6727         * c-lex.c (lex_string): Use charwidth to compute bytemask.
6728         * expr.c (expand_expr): Don't optimize constant array references
6729         initialized with wide string constants.
6730
6731 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
6732
6733         * loop.c (note_set_pseudo_multiple_uses): Correct.
6734
6735 2000-09-12  Jim Wilson  <wilson@cygnus.com>
6736
6737         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
6738         else block, and X has side-effects, then fail.
6739
6740 2000-09-12  Greg McGary  <greg@mcgary.org>
6741
6742         * config/mips/mips-protos.h
6743         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
6744         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
6745         (PREDICATE_CODES): Add "trap_cmp_op".
6746         * config/mips/mips.c
6747         (trap_cmp_op, mips_gen_conditional_trap): New functions.
6748         * config/mips/mips.md (trap, conditional_trap): New patterns.
6749
6750 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
6751
6752         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
6753         pointer.
6754
6755 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6756
6757         * builtins.c (built_in_decls): New array.
6758         (expand_builtin_fputs): New function.
6759         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
6760
6761         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
6762
6763         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
6764
6765         * tree.h (built_in_decls): New array.
6766
6767 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
6768
6769         * convex.md: Use "+" instead of "=" for outputs wrapped in a
6770         STRICT_LOW_PART.
6771         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
6772
6773 2000-09-12  Kazu Hirata  <kazu@hxi.com>
6774
6775         * haifa-sched.c: Fix formatting.
6776
6777         * genattrtab.c: Fix formatting.
6778
6779         * unroll.c: Fix formatting.
6780
6781 2000-09-12  Bruce Korb  <bkorb@gnu.org>
6782
6783         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
6784         remove obsolete code
6785         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
6786         * fixinc/fixincl.tpl: make non-exported arrays static scope
6787         * fixinc/fixincl.x: regenerate
6788         * fixinc/fixlib.h: Use PARAMS, not _P_
6789         * fixinc/fixtests.c: make a type for the test proc & use it
6790         * fixinc/server.h: Use PARAMS, not _P_
6791
6792 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6793
6794         * c-typeck.c (process_init_element): Avoid union init warnings on
6795         floating point zero.  Don't crash on unions containing structs.
6796
6797 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
6798
6799         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
6800         general_movsrc_operand, and remove CONST_INT from
6801         general_movdst_operand.
6802
6803 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
6804
6805         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
6806         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
6807         regs with a higher cost.
6808         (preferrable): Deal with cases where either cost or regcost is
6809         MAX_COST.
6810         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
6811         regcost values.
6812         (COSTS_N_INSNS): Move definition...
6813         * rtl.h: ...here.
6814         (MAX_COST): New macro.
6815         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
6816         constant.
6817
6818 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
6819
6820         * c-common.h (genrtl_clear_out_block): Remove.
6821         * c-semantics.c (genrtl_clear_out_block): Remove.
6822         (genrtl_while_stmt): Don't call it.
6823         (genrtl_for_stmt): Likewise.
6824
6825 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
6826
6827         * cppfiles.c: Move all default-#defines to top of file.
6828         (open_include_file): Replace by lookup_include_file.
6829         (read_with_read, read_file): Merged into read_include_file.
6830         (stack_include_file, purge_cache): New functions.
6831         (close_cached_fd): Delete.
6832         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
6833         Cache the in-memory buffer, not the file descriptor.
6834
6835         * cpphash.h (struct include_file): Add buffer, st, refcnt,
6836         mapped fields.
6837         (xcnew): New utility macro.
6838         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
6839         * cpplib.h (struct cpp_buffer): Remove mapped field.
6840
6841 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
6842
6843         * cpplex.c (parse_string): Accept backslash space newline as a
6844         line continuation.
6845         (lex_line): Likewise.
6846         (_cpp_get_token): Remove hard limit on macro nesting.
6847
6848 2000-09-12  Philipp Thomas  <pthomas@suse.de>
6849
6850         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
6851         * configure: Rebuilt.
6852
6853 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
6854
6855         * flow.c (split_block): Fix update of registers live at
6856         end of split block.
6857
6858 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6859
6860         * i386.md (add?i_3, add?i_5): New.
6861         (add?i_4): Rename from add?i_3;  Fix compare pattern.
6862         (sub?i_3, xor?i_3, ior?i_3): New.
6863
6864         * genrecog.c (write_tree): Output code to clear insn_extract cache.
6865         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
6866         instead of extract_insn and extract_constrain_insn_cache instead of
6867         extract_insn and constrain_operands.
6868         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
6869         New functions.
6870         (extract_insn): Clear which_alternative.
6871         (constrain_operands): Set which_alternative to -1 when failed.
6872         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
6873         Declare.
6874
6875 2000-09-11  Matthew Hiller  <hiller@redhat.com>
6876
6877         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
6878         on operand 0 to '+'.
6879         (movstricthi): Likewise.
6880
6881 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6882
6883         * loop.h (LOOP_IVS): New macro.
6884         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
6885         (struct loop_ivs): New.
6886         (struct loop_info): Add ivs field.
6887         (reg_iv_type, reg_iv_info): Delete prototype.
6888         (reg_biv_class, loop_iv_list): Likewise.
6889         * loop.c (record_biv, find_life_end): Pass loop argument.
6890         (reg_iv_type): Remove global array and use
6891         field in loop_regs structure within loop_ivs structure.
6892         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
6893         (first_increment_giv, last_increment_giv): Use entry in
6894         loop_ivs structure.
6895         (record_initial): Pass ivs pointer.
6896         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
6897
6898 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6899
6900         * loop.h (LOOP_REGS): New macro.
6901         (struct loop_regs): New.
6902         (struct loop_info): Add regs field.
6903         * loop.c (set_in_loop): Remove global array and store
6904         in loop_regs structure as part of loop_info structure.
6905         (n_times_set, may_not_optimize): Likewise.
6906         (reg_single_usage, moved_once): Likewise.
6907         (count_one_set): Add regs argument.
6908         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
6909         (set_pseudo_multiple_uses): Pass regs pointer.
6910
6911 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6912
6913         * unroll.c (iteration_info): Subsume into loop_iterations.
6914         * loop.h (loop_info): New field iv.
6915
6916 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6917
6918         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
6919         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
6920         (flow_loops_update): New prototype.
6921         (flow_loops_find): Add flags to prototype.
6922         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
6923         * flow.c (flow_loop_pre_header_scan): New.
6924         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
6925         (flow_loop_free): Free pre-header root and trace and exit dominators.
6926         (flow_loops_find): New argument flags.
6927         (flow_loops_update): New function.
6928         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
6929
6930 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
6931
6932         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
6933         * flow.c (split_block, update_bb_for_insn): New functions.
6934
6935 2000-09-11  Richard Henderson  <rth@cygnus.com>
6936
6937         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
6938
6939 2000-09-11  Richard Henderson  <rth@cygnus.com>
6940
6941         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
6942         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
6943         (ia64_override_options): Prevent optimizing division for both
6944         latency and throughput.
6945         (rtx_needs_barrier): Handle frcpa.
6946         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
6947         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
6948         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
6949         (TARGET_SWITCHES): Add -minline-divide-min-latency and
6950         -minline-divide-max-throughput.
6951         (PREDICATE_CODES): Update.
6952         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
6953         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
6954         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
6955         (extendsftf2): Likewise.
6956         (extenddftf2): Likewise.
6957         (fix_trunctfdi2_alts): New.
6958         (fixuns_trunctfdi2_alts): New.
6959         (madd*4): Rename from madd*3.
6960         (divsi3, modsi3, udivsi3, umodsi3): New.
6961         (divsi3_internal): New.
6962         (divdi3, moddi3, udivdi3, umoddi3): New.
6963         (divdi3_internal_lat, divdi3_internal_thr): New.
6964         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
6965         (recip_approx): New.
6966
6967 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
6968
6969         * print-rtl.c (debug_call_placeholder_verbose): New variable.
6970         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
6971         set.
6972         * integrate.c (copy_rtx_and_substitute): Don't share
6973         LEAF_REG_REMAPpable registers with the inlined function.  Don't
6974         share the function value with calling sequences.
6975
6976 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
6977
6978         * c-decl.c (do_case): Fix a typo.
6979
6980         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
6981         to a if the comparison is floating mode and not -ffast-math.
6982         * simplify-rtx.c (simplify_ternary_operation): Likewise.
6983
6984 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
6985
6986         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
6987         gen_ic_invalidate_line.
6988
6989 2000-09-11  Philip Blundell  <pb@futuretv.com>
6990
6991         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
6992
6993 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
6994
6995         * install.texi (LANGUAGES): Update to include new languages.
6996         * INSTALL: Rebuilt.
6997
6998 2000-09-11  DJ Delorie  <dj@redhat.com>
6999
7000         * gcc.c (main): Don't warn about unused -B prefixes
7001         (unused_prefix_warnings): remove
7002
7003 2000-09-11  Kazu Hirata  <kazu@hxi.com>
7004
7005         * final.c: Fix formatting.
7006
7007         * integrate.c: Fix formatting.
7008
7009 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
7010
7011         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
7012
7013 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
7014
7015         * reload.c (regno_clobbered_p): Fix thinko in previous change.
7016
7017 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7018
7019         * gcc.1: Document 68hc11 specific options.
7020
7021 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
7022
7023         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
7024         (TARGET_LONG_DOUBLE_128): Define.
7025         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
7026         (LONG_DOUBLE_TYPE_SIZE): Redefine.
7027         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
7028         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
7029         of __LONG_DOUBLE_128__.
7030         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
7031         passed.
7032         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
7033         (CPP_SYSV_DEFAULT_SPEC): Define.
7034         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
7035         (INIT_TARGET_OPTABS): Define.
7036
7037         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
7038         (RS6000_UITRUNC): Likewise.
7039         (INIT_TARGET_OPTABS): New macro.
7040         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
7041         (trunc_defined): Delete.
7042         (output_prolog): Don't output .extern definitions for fp->int
7043         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
7044         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
7045         (trunc_defined): Delete.
7046         (RS6000_ITRUNC): Moved to aix.h.
7047         (RS6000_UITRUNC): Likewise.
7048         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
7049         only emit a libcall.
7050         (fixuns_truncdfsi2): Delete.
7051         (trunc_call): Delete.
7052         (trunc_call_rtl): Delete.
7053
7054 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
7055
7056         * varasm.c (make_decl_rtl): Restore leading star on
7057         DECL_ASSEMBLER_NAME set for decls with an asmspec.
7058
7059 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
7060
7061         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
7062         won't give a spurious error for '#pragma pack()'.  Simplify
7063         control flow for readability.  'reset' action is not necessary.
7064
7065 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
7066
7067         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
7068         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
7069         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
7070         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
7071
7072         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
7073         profile.c, sdbout.c, tradcif.y, tree.c:
7074         Include defaults.h if not already included.
7075         Don't define the above macros.
7076
7077         * Makefile.in: Update dependencies.
7078
7079 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
7080
7081         * c-common.h (add_stmt): Change prototype.
7082         (RECHAIN_STMTS): New macro.
7083         (CASE_LABEL_DECL): Likewise.
7084         (genrtl_case_label): Change prototype.
7085         (c_expand_start_case): Remove prototype.
7086         (build_case_label): Change prototype.
7087         (decl_constant_value): Declare.
7088         * c-common.c (check_case_value): Handle C++'s extensions to C
7089         semantics.
7090         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
7091         field.
7092         * c-parse.in (stmt): Adjust handling of return statements and case
7093         laels.
7094         * c-semantics.c (add_stmt): Return the new statement.
7095         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
7096         returned expression.  Directly generate RTL, rather than calling
7097         c_expand_return.
7098         (genrtl_switch_stmt): Don't call c_expand_start_case.
7099         (build_case_label): Take the LABEL_DECL as input, too.
7100         (genrtl_case_label): Just call add_case_node.
7101         (expand_stmt): Adjust calls to genrtl_return_stmt and
7102         genrtl_case_label.
7103         * c-tree.h (c_expand_start_case): Declare.
7104         * c-typeck.c (decl_constant_value): Give it external linkage.
7105         (c_expand_return): Don't call expand_return or expand_null_return;
7106         use genrtl_return_stmt instead.
7107         * stmt.c (struct nesting): Remove num_ranges field.
7108         (add_case_node): Give it external linkage.
7109         (expand_start_case): Don't set num_ranges.
7110         (expand_start_case_dummy): Don't clear it.
7111         (pushcase): Rely on add_case_node to handle `default' labels.
7112         (add_case_node): Handle `default' labels.
7113         * tree.c (tree_int_cst_compare): New function.
7114         * tree.h (tree_int_cst_compare): Declare.
7115         (add_case_node): Likewise.
7116
7117 2000-09-10  Richard Henderson  <rth@cygnus.com>
7118
7119         * c-parse.in: Revert last change.
7120         (init_reswords): Do not enter disabled keywords into the ridpointers
7121         table, modulo objc weirdness.
7122         (_yylex): Return the canonical spelling for a keyword.
7123
7124 2000-09-10  Philip Blundell  <philb@gnu.org>
7125
7126         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
7127         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
7128
7129 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
7130
7131         * alias.c (find_base_term): Handle ADDRESSOF.
7132         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
7133
7134 2000-09-10  Denis Chertykov  <denisc@overta.ru>
7135
7136         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
7137         outputting templates with many lines.
7138
7139 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7140
7141         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
7142         to decide whether 64-bit support must be generated.
7143
7144 2000-09-10  Richard Henderson  <rth@cygnus.com>
7145
7146         * c-parse.in (asm patterns): Fix volatile check.
7147
7148 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7149
7150         * cppmacro.c (check_trad_stringification): New function.
7151         (save_expansion): If -Wtraditional, warn about stringification of
7152         macro arguments.
7153
7154 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
7155
7156         * loop.h (struct loop_mem_info): Move from loop.c
7157         (struct loop_info): Add fields store_mems, mems, mems_idx,
7158         mems_allocated, unknown_address_altered,
7159         unknown_constant_address_altered, num_mem_sets, and
7160         first_loop_store_insn.
7161
7162         * loop.c (loop_store_mems): Replace with field in loop_info struct.
7163         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
7164         (unknown_address_altered, unknown_constant_address_altered): Likewise.
7165         (num_mem_sets): Likewise.
7166         (replace_loop_mems, replace_loop_regs): New.
7167         (struct loop_replace_args): New.
7168         (load_mems): Use replace_loop_mems.
7169         (try_copy_prop): Use replace_loop_regs.
7170         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
7171
7172 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7173
7174         * configure.in: Recognize m6811-elf and m6812-elf.
7175         * configure: Regenerate.
7176
7177 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
7178
7179         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
7180         to operand_subword.
7181
7182 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
7183
7184         * loop.c (struct movables): New.
7185         (num_movables): Move into struct movables.
7186         (the_movables): Change type to struct movables.
7187         (ignore_some_movables): Change struct movable arg to struct movables.
7188         (force_movables, combine_movables, regs_match_p): Likewise.
7189         (rtx_equal_for_loop_p, move_movables): Likewise.
7190         (scan_loop): Change movables to be of type struct movables.
7191         Replace last_movable with field in movables structure.
7192
7193 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
7194
7195         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
7196         (init_pragma): Avoid warning if pfile happens to be unused.
7197         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
7198         define init_pragma to nothing.  Always prototype
7199         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
7200
7201         * c-lex.c (process_directive): Always call dispatch_pragma.
7202         Initialize entering_c_header to 0.
7203
7204 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7205
7206         * config/m68hc11/m68hc11.md: New file, machine description for
7207         68HC11 & 68HC12.
7208         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
7209         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
7210         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
7211         * config/m68hc11/m68hc11-protos.h: New file.
7212         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
7213         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
7214         * config/m68hc11/xm-m68hc11.h: New file, target defs.
7215         * config/m68hc11/larith.asm: New file, libgcc routines.
7216
7217 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
7218
7219         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
7220         (FPBIT_FUNCS): Add _usi_to_sf.
7221         * config/fp-bit.c (usi_to_float): New function.
7222         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
7223         (usi_to_float): Add appropriate #define.
7224
7225 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
7226
7227         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
7228         new functions.
7229         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
7230         * i386.md (attr "type"): Add sse and mmx types.
7231         (attr "memory"): Handle them without a crash.
7232         (movsi_1, movdi_2): Allow MMX regs.
7233         (movdi splits): Don't split moves involving MMX regs.
7234         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
7235         (movv4sf_internal, movv4si_internal, movv8qi_internal,
7236         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
7237         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
7238         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
7239         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
7240         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
7241         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
7242         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
7243         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
7244         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
7245         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
7246         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
7247         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
7248         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
7249         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
7250         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
7251         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
7252         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
7253         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
7254         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
7255         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
7256         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
7257         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
7258         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
7259         mmx_clrdi): New patterns.
7260
7261 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
7262
7263         * arm.c: Don't include tm.h directly.
7264
7265 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7266
7267         * recog.c (validate_replace_rtx_1): Fix confusion about equality
7268         testing; simplify subregs of constants and nested subregs.
7269
7270 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
7271
7272         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
7273
7274 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
7275
7276         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
7277         VEC_CONCAT.
7278         * rtl.texi (description of USE): Add note about possible pitfalls
7279         with this rtx.
7280         From Richard Henderson:
7281         * reload1.c (choose_reload_regs): Compute need_mode properly.
7282
7283 2000-09-07  Richard Henderson  <rth@cygnus.com>
7284
7285         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
7286         (__modsi3, __umodsi3): Likewise.
7287         (__udivsi3): Likewise.  Normalize the TFmode values.
7288
7289 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
7290
7291         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
7292         with a prototype.
7293         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
7294         warning.
7295
7296 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
7297
7298         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
7299         (cmpeqdi_t): Add output pattern.
7300         (cmpeqdi_t+1): Don't split when not optimizing.
7301         Restore proper splitting operation.
7302
7303 2000-09-07  Richard Henderson  <rth@cygnus.com>
7304
7305         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
7306         do not call dispatch_pragma.
7307
7308 2000-09-07  Jim Wilson  <wilson@cygnus.com>
7309
7310         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
7311         to CLASS_CANNOT_CHANGE_MODE.
7312         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
7313         mode classes are different.
7314
7315 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
7316
7317         * cpplib.h (struct cpp_options): Add user_label_prefix member,
7318         left out of commit which removed cppulp.c.
7319
7320 2000-09-07  Richard Henderson  <rth@cygnus.com>
7321
7322         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
7323         after switch for CASE_DROPS_THROUGH.
7324
7325 2000-09-07  Richard Henderson  <rth@cygnus.com>
7326
7327         * loop.c (strength_reduce): Call check_ext_dependant_givs.
7328         Properly extend the biv initial value for the giv.
7329         (record_biv): Zero ext_dependant.
7330         (record_giv): New argument ext_val.  Update all callers.
7331         (general_induction_var): Likewise.
7332         (consec_sets_giv): Likewise.
7333         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
7334         a sign-extend, zero-extend, or truncate.
7335         (combine_givs_p): Make sure modes are compatible.
7336         (check_ext_dependant_givs): New.
7337         (extend_value_for_giv): New.
7338         * loop.h (struct induction): Add ext_dependant.
7339         * unroll.c (iteration_info): Extend the biv initial value for the giv.
7340         (find_splittable_givs): Likewise.
7341         (final_giv_value): Likewise.
7342
7343 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
7344
7345         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
7346         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
7347         definitions from cpplib.h.
7348         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
7349         already done it.
7350         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
7351         documentation for REGISTER_TARGET_PRAGMAS.
7352
7353         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
7354         default-pragma callback to implement -Wunknown-pragmas if
7355         USE_CPPLIB.
7356         * c-parse.in: Move all includes to top of file.
7357         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
7358         tm_p.h.
7359         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
7360         warning.
7361         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
7362
7363         * arm.h, arm-protos.h, arm.c,
7364           c4x.h, c4x-protos.h, c4x.c,
7365           h8300.h, h8300-protos.h, h8300.c,
7366           i370.h, i370-protos.h, i370.c,
7367           i960.h, i960-protos.h, i960.c,
7368           sh.h, sh-protos.h, sh.c,
7369           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
7370         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
7371
7372         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
7373         multiple include guard.
7374         * i370.md (untyped_call): Use GEN_CALL.
7375         (umodsi3): Remove unused variable.
7376         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
7377         * v850.c (output_move_single, output_move_double): Constify
7378         return value.
7379         (print_operand): Constify a char *.
7380         * v850.h (struct small_memory_info): Constify name member.
7381
7382 2000-09-07  Kazu Hirata  <kazu@hxi.com>
7383
7384         * config/h8300.h: Fix comment typos.
7385         * config/h8300/h8300.md: Likewise.
7386         * config/h8300/lib1funcs.asm: Likewise.
7387
7388 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
7389
7390         * Makefile.in: Remove references to cppulp.{c,o}.
7391         * cppinit.c (initialize_builtins, cpp_start_read,
7392         cpp_handle_option): Update to use cpp_options structure.
7393         * cppulp.c: Remove.
7394
7395 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
7396
7397         * c-common.c (time_char_table): Allow %#b and %#h.
7398
7399 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7400
7401         * reorg.c (find_end_label): If the basic block reorder pass moves the
7402         return insn to some other place try to locate it again and put our
7403         end_of_function_label there.
7404         * reorg.c (relax_delay_slots): Check if find_end_label created a
7405         new label that invalidates the current optimazation.
7406
7407 2000-09-07  Catherine Moore  <clm@redhat.com>
7408
7409         * unroll.c (unroll_loop): Check for unconditional jumps
7410         to loop continuation.  Delete if n_iterations is 1.
7411         (ujump_to_loop_cont): New routine.
7412
7413 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
7414
7415         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
7416         MODE_VECTOR_FLOAT.
7417         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
7418         to handle multiword modes correctly.  All callers and the declaration
7419         changed.
7420
7421 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
7422
7423         * c-common.h (prep_stmt): Declare.
7424         (lang_expand_stmt): Likewise.
7425         * c-decl.c (lang_expand_stmt): Remove.
7426         * c-semantics.c (lang_expand_stmt): Define.
7427         (prep_stmt): New function.
7428         (expand_stmt): Handle common statement types here.
7429
7430 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
7431
7432         * configure.in (sh-*-linux*): Added.
7433         * configure: Rebuilt.
7434         * config/sh/t-linux: New file.
7435         * config/sh/sh.h (USERMODE_BIT): Define.
7436         (TARGET_USERMODE): Likewise.
7437         (TARGET_SWITCHES): New switches for the bits above.
7438         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
7439         * config/sh/linux.h: New file.
7440         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
7441         underscore on linux.
7442         (L_sdivsi3, L_udivsi3): Define for linux.
7443         (L_ic_invalidate): Define.
7444         * invoke.texi (SH Options): Document -musermode.
7445
7446 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
7447
7448         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
7449         CSE unless generating PIC.
7450
7451         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
7452         the PIC register.
7453
7454 2000-09-06  H.J. Lu  (hjl@gnu.org)
7455
7456         * Makefile.in (clean_s1): Depend on stage_b.
7457         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
7458         stage2. They are used for "make compare".
7459
7460 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
7461
7462         Move statement-tree facilities from C++ to C front-end.
7463         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
7464         (void_zero_node): New macro.
7465         (struct stmt_tree_s): New type.
7466         (stmt_tree): New typedef.
7467         (struct language_function): New type.
7468         (last_tree): New macro.
7469         (last_expr_type): Likewise.
7470         (walk_tree_fn): New typedef.
7471         (current_stmt_tree): New function.
7472         (begin_stmt_tree): Likewise.
7473         (add_stmt): Likewise.
7474         (finish_stmt_tree): Likewise.
7475         (statement_code_p): Likewise.
7476         (lang_statement_code_p): New variable.
7477         (walk_stmt_tree): New function.
7478         (STMT_IS_FULL_EXPR_P): New macro.
7479         * c-common.c (lang_statement_code_p): New variable.
7480         (c_common_nodes_and_builtins): Initialize void_zero_node.
7481         (statement_code_p): New function.
7482         (walk_stmt_tree): Likewise.
7483         * c-decl.c (language_function): Rename to ...
7484         (c_language_function): ... this.  Include language_function.
7485         (push_c_function_context): Adjust accordingly.
7486         (pop_c_function_context): Likewise.
7487         (mark_c_function_context): Likewise.
7488         (current_stmt_tree): Define.
7489         * c-semantics.c (begin_stmt_tree): New function.
7490         (add_stmt): Likewise.
7491         (prune_unused_decls): Likewise.
7492         (finish_stmt_tree): Likewise.
7493
7494 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7495
7496         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
7497
7498 2000-09-06  Kazu Hirata  <kazu@hxi.com>
7499
7500         * calls.c: Fix formatting.
7501
7502 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
7503
7504         * config/i386/i386.h (ADDRESS_COST): Fix typo.
7505
7506 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
7507
7508         Integrated preprocessor.
7509
7510         * Makefile.in: Remove all references to c-parse.gperf,
7511         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
7512         generating c-parse.c.  Update dependencies.
7513         * c-parse.gperf, c-gperf.h: Delete.
7514
7515         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
7516         yy_lim, or yy_get_token.  Don't define get_directive_line if
7517         USE_CPPLIB.
7518         * c-common.h: Add multiple include guard.  Define RID values
7519         for every keyword in C, C++, and Objective C.  Put all the
7520         modifiers first.
7521         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
7522         * c-decl.c (c_decode_option): Handle -lang-objc here.
7523         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
7524         (grokdeclarator): Adjust for new RID scheme.
7525         (extract_interface_info): New stub.
7526         * c-lang.c: Don't declare yy_cur or parse_options.
7527         (lang_init_options): Call cpp_init.  Don't call
7528         cpp_options_init.
7529         (lang_init): Don't call check_newline if USE_CPPLIB.
7530
7531         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
7532         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
7533         rendered unnecessary by new architecture.  Move routines not
7534         shared with C++ to c-parse.in.  Maintain a local idea of the
7535         line number.    Handle C++ as well as C.
7536         [USE_CPPLIB]: Declare and register callbacks for #ident and
7537         for entering/leaving files.
7538         (init_c_lex, c_lex): Are now the entry points to this file.
7539         (check_newline): Break out directive handling to
7540         process_directive.
7541         (read_ucs, is_extended_char, utf8_extend_token): Moved here
7542         from C++ front end.
7543         (readescape, parse_float): Overhaul.
7544         (lex_number, lex_string, lex_charconst): Break out of c_lex
7545         (n'ee yylex).
7546         (get_fileinfo, update_header_times, dump_one_header,
7547         dump_time_statistics): New and/or moved here from C++.
7548         Support per-file data needed by C++ and per-header timing
7549         statistics (C++ only, at the moment).
7550         * c-lex.h: Update prototypes.  Add multiple include guard.
7551         * c-tree.h (struct lang_identifier): Add rid_code field.
7552         (C_IS_RESERVED_WORD, C_RID_CODE): New.
7553
7554         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
7555         reinit_parse_for_function and/or position_after_white_space.
7556         (save_filename, save_lineno): Look ahead before saving.
7557         (label -> identifier ':'): Save file and line before shifting ':'.
7558         (reservedwords): No need to call get_identifier.
7559         (init_parse, finish_parse, yyerror, yylex, yyprint,
7560         make_pointer_declarator): Are now here for C/ObjC.
7561         (rid_to_yy): Conversion table from RID constants to Yacc codes.
7562
7563         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
7564         #pragma registry.  Provide dummy implementation of that
7565         interface if !USE_CPPLIB.
7566         * c-pragma.h: Update to match.
7567
7568         * flags.h: Add multiple include guard.
7569         (flag_detailed_statistics): Moved here from C++.
7570         * toplev.c: Define flag_detailed_statistics.
7571
7572         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
7573         #if USE_CPPLIB.
7574         * timevar.def (TV_CPP, TV_LEX): New.
7575         * timevar.h: Add multiple include guard.
7576
7577         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
7578         #if USE_CPPLIB.
7579         * objc/objc-act.c: Don't mention yy_cur or parse_options.
7580         Initialize cpplib properly.  Force lineno to 0 after first
7581         call to check_newline.  Don't handle -lang-objc here.
7582         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
7583
7584 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
7585
7586         * rs6000.md: Correct function unit definitions for cr_logical and
7587         mtjmpr.
7588         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
7589         and use portable method for >=0 and floating point >=.  Remove
7590         associated matchers.
7591
7592 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
7593
7594         * extend.texi: Mark named return value extension as deprecated.
7595
7596 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
7597
7598         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
7599         the result.
7600
7601 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
7602
7603         * toplev.c (display_help): Fix thinko in documentation.
7604
7605         * diagnostic.h (output_buffer::indent_skip): New fields.
7606         (output_indentation): New macro.
7607
7608         * diagnostic.c (output_indent): New function.
7609         (output_set_prefix, clear_diagnostic_info): Use.
7610         (output_emit_prefix): Predict future indentation.
7611
7612 2000-09-06  DJ Delorie  <dj@redhat.com>
7613
7614         * Makefile.in (stage_*): add more dependencies to ensure parallel
7615         builds build correctly
7616
7617 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
7618
7619         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
7620         not bootstrap-lean_f.
7621
7622 2000-09-06  Andreas Schwab  <schwab@suse.de>
7623
7624         * mklibgcc.in: Emit rule for libgcc-stage-start.
7625         * Makefile.in (stage1-start, stage2-start, stage3-start,
7626         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
7627
7628 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
7629
7630         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
7631         (update_equiv_regs): Likewise, except for the mn10200 kludge.
7632         (combine_regs): Likewise.
7633
7634         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
7635         * cse.c: Include "basic-block.h".
7636         (struct table_elt): New field REGCOST.
7637         (CHEAP_REG): Delete macro.
7638         (COST): Return 0 for REGs.
7639         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
7640         (notreg_cost): Return 0 for appropriate SUBREGs.
7641         (COSTS_N_INSNS): Return N * 2.
7642         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
7643         SUBREGs.
7644         (CHEAPER): Use new function preferrable.
7645         (insert): Initialize REGCOST member.
7646         (find_best_addr): Use approx_reg_cost for estimation of register
7647         usage.
7648         (cse_insn): Likewise.
7649         * loop.c (iv_add_mult_cost): New function.
7650         (add_cost, shift_cost, mult_cost): Delete variables.
7651         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
7652         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
7653         Make code that detects autoinc opportunities slightly less optimistic.
7654         (simplify_giv_expr): If expression contains other reg that is also a
7655         giv, only increment benefit if this is the only use of that reg.
7656         (consec_sets_giv): Take that change into account.
7657         (combine_givs): Slightly more verbose output.
7658
7659         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
7660         not the cost of an equivalent shift.
7661         * sh-protos.h (addsubcosts): Declare.
7662         * sh.c (addsubcosts): New function.
7663         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
7664         (RTX_COSTS): Tweak.  Use addsubcosts.
7665         (ADDRESS_COST): Return higher cost for reg+reg addressing.
7666
7667 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
7668
7669         * config/rs6000/rs6000.c (validate_condition_mode): New function.
7670         (branch_comparison_operator): Call validate_condition_mode to
7671         abort rather than returning 0.
7672         (branch_positive_comparison_operator): New function.
7673         (scc_comparison_operator): Call validate_condition_mode to abort
7674         rather than returning 0.
7675         (ccr_bit): Call validate_condition_mode.  Update for
7676         new branch scheme.
7677         (print_operand): Delete %C modifier.  Update %E case
7678         to use EQ bit not SO bit.
7679         (rs6000_reverse_condition): New function.
7680         (rs6000_generate_compare): New function.
7681         (rs6000_emit_sCOND): New function.
7682         (rs6000_emit_cbranch): New function.
7683         (output_cbranch): The length of a long branch insn is
7684         now only 8 bytes.  Add validate_condition_mode.  Use
7685         rs6000_reverse_condition.  Remove cror generation.
7686
7687         * config/rs6000/rs6000.h: Update comments.
7688         (PREDICATE_CODES): Add new predicate.  Update codes used
7689         by branch_comparison_operator and scc_comparison_operator.
7690         * config/rs6000/rs6000-protos.h: Add prototypes for
7691         new external functions.
7692         * config/rs6000/rs6000.md: Add new scheduling parameters
7693         for cr_logical instructions.  Change length of branch
7694         instructions.
7695         (bCOND patterns): Call rs6000_emit_cbranch.
7696         (sCOND patterns): Call rs6000_emit_sCOND.
7697         (branch patterns): Change lengths to 4.
7698         (cr logical patterns): New.
7699
7700 2000-09-06  Richard Henderson  <rth@cygnus.com>
7701
7702         * config/i386/i386.md (call_pop): Fix test for setting
7703         current_function_uses_pic_offset_table.
7704         (call, call_value_pop, call_value): Likewise.
7705
7706 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
7707
7708         * timevar.c (timevar_add): Delete.
7709         (timevar_get): Also count time since the selected timer was
7710         last updated.  Do not examine the timevar stack if the
7711         selected timer is standalone.
7712
7713 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7714
7715         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
7716
7717 2000-09-05  Jason Merrill  <jason@redhat.com>
7718
7719         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
7720         for 'extern' arrays.
7721
7722 2000-09-05  Richard Henderson  <rth@cygnus.com>
7723
7724         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
7725         Eliminate final copy from non-trapping case.
7726         (__divdf3, __divsf3): Likewise.
7727
7728 2000-09-05  Richard Henderson  <rth@cygnus.com>
7729
7730         * config/ia64/ia64.md (mulhi3): Fix typo last change.
7731         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
7732
7733 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
7734
7735         * Makefile.in: Restructure bootstrap stages to allow clean
7736         restart after failure.
7737
7738 2000-09-05  Richard Henderson  <rth@cygnus.com>
7739
7740         * config/ia64.md (movsi and movdi patterns): Allow moves from
7741         8-bit constants to AR registers.
7742
7743 2000-09-05  Richard Henderson  <rth@cygnus.com>
7744
7745         * config/ia64/ia64.md (mulhi3): New.
7746
7747 2000-09-05  Richard Henderson  <rth@cygnus.com>
7748
7749         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
7750         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
7751         Optimization Guide, minimum latency alternative.
7752         (__moddi3, __udivdi3, __umoddi3): Likewise.
7753         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
7754
7755 2000-09-05  Bruce Korb  <bkorb@gnu.org>
7756
7757         * fixinc/fixincl.c (load_file): always read header files
7758         with sizes that are a multiple of the page size.
7759         & use libiberty's getpagesize for determining that.
7760
7761 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
7762
7763         * gcse.c (hash_string_1): Add prototype.
7764         * cse.c (canon_hash_string): Likewise.
7765
7766 2000-09-04  Craig Newell  <CraigN@ieee.org>
7767
7768         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
7769
7770 2000-09-04  Andreas Schwab  <schwab@suse.de>
7771
7772         * Makefile.in (STAGESTUFF): Remove libgcc.
7773         (stage1-start, stage2-start, stage3-start): Copy the contents of
7774         the libgcc directory explicitly.
7775         (mostlyclean): Clean libgcc.
7776
7777 2000-09-04  Andrew Haley  <aph@redhat.com>
7778
7779         * dwarf2out.c: (stack_adjust_offset): New prototype.
7780
7781 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
7782
7783         * combine.c (make_extraction): Fix rtx_cost comparison to
7784         match the comment.
7785
7786 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
7787
7788         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
7789         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
7790         Add '*' to insn pattern name.
7791
7792 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
7793
7794         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
7795         use posn - 1 to index into tokens array.
7796         (maybe_paste_with_next): Adjust caller.
7797
7798 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
7799
7800         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
7801
7802         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
7803         (REGNO_REG_CLASS): Use symbolic register
7804         names.
7805
7806 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
7807
7808         * arm.c (final_prescan_insn): If the form of a jump insn isn't
7809         recognized, don't try to conditionally execute it.
7810
7811 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
7812
7813         * config/avr/avr.md ("*tablejump_lib"): New pattern.
7814         (call_value_insn): Right length claculation.
7815         (call_insn): Likewise.
7816
7817 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
7818
7819         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
7820         gas_output_limited_string, gas_output_ascii, output_movqi,
7821         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
7822         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
7823         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
7824         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
7825         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
7826         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
7827         Add "const" as needed to remove warnings.
7828
7829         * config/avr/avr.c (avr_override_options, avr_init_once,
7830         function_prologue, function_epilogue, frame_pointer_required_p,
7831         class_likely_spilled_p, order_regs_for_local_alloc,
7832         avr_address_cost, avr_ret_register): Use K&R style arguments.
7833         (initial_elimination_offset, gas_output_limited_string):
7834         Remove ATTRIBUTE_UNUSED from the used arguments.
7835         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
7836         Use local variables src, dest, base to access operands[].
7837         Rename reg_dest to reg_src if that's what it is.
7838         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
7839         constants to LD_REGS if reg_was_0.
7840         (output_reload_insisf): Change arg 3 to insn length and set it.
7841         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
7842         access to 16-bit I/O register pairs.
7843         (avr_address_cost): Lower cost for the above case.
7844         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
7845         may be clobbered, also for LD_REGS.
7846         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
7847         with a CONST_INT.
7848
7849         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
7850
7851         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
7852         macro to test_hard_reg_class function.
7853         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
7854         for loading immediate constants to LD_REGS.
7855         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
7856
7857
7858 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
7859
7860         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
7861         * config/avr/libgcc.S: Lost part of the previous patch.
7862
7863 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7864
7865         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
7866         object before calling pthread_mutex_init.
7867
7868 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
7869
7870         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
7871         config/sh/crtn.asm: New files.
7872         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
7873         (crt1.o, crti.o, crtn.o): New targets.
7874         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
7875         sh/t-elf.
7876         * configure: Rebuilt.
7877         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
7878         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
7879         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
7880         Undefine for config/elfos.h to redefine.
7881         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
7882
7883 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
7884
7885         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
7886         legitimize_pic_address, output_pic_addr_const): Declare.
7887         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
7888         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
7889         (TARGET_SWITCHES): New switch -mprefergot.
7890         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
7891         (PIC_OFFSET_TABLE_REGNUM): Define.
7892         (GOT_SYMBOL_TABLE): Likewise.
7893         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
7894         (ENCODE_SECTION_INFO): Define.
7895         (FINALIZE_PIC): New macros.
7896         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
7897         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
7898         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
7899         (prepare_move_operands): Call emit_pic_move or
7900         emit_pic_const_move if appropriate.
7901         (output_far_jump): For PIC, use braf and output long offset.
7902         (machine_dependent_reorg):
7903         (sh_expand_prologue): Save and initialize the PIC register.
7904         (sh_expand_epilogue): Restore it.
7905         (initial_elimination_offset): Account for it.
7906         (nonpic_symbol_mentioned_p): New function.
7907         (legitimize_pic_address): Likewise.
7908         (output_pic_addr_const): Likewise.
7909         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
7910         (call, call_value): Use them.
7911         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
7912         symPLT_label2reg): New expands.
7913         * invoke.texi (SH Options): Document -mprefergot.
7914
7915 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
7916
7917         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
7918         * gcse.c (hash_string_1): New function.
7919         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
7920         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
7921         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
7922         (canon_hash_string): New function.
7923         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
7924         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
7925         (fold_rtx): Use ASM_OPERANDS accessor macros.
7926         * emit-rtl.c (copy_insn_1): Likewise.
7927         * integrate.c (copy_rtx_and_substitute): Likewise.
7928         * stmt.c (expand_asm_operands): Likewise.  Give an
7929         ASM_OPERANDS rtx the mode of the output reg being set from it.
7930
7931 2000-09-01  Fred Fish  <fnf@be.com>
7932
7933         * fix-header.c (write_rbrac): Add putc and getc to list of
7934         functions to protect against prior definition as a macro.
7935
7936 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
7937
7938         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
7939         (c_size_type_node): Define.
7940         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
7941         * c-common.c (enum format_lengths, enum format_std_version,
7942         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
7943         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
7944         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
7945         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
7946         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
7947         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
7948         format_types): Define.
7949         (format_char_info, print_char_table, scan_char_table,
7950         time_char_table): Rearrange for new organization of information
7951         about format length modifiers and standard versions.
7952         (T_ST): Redefine to use c_size_type_node.
7953         (check_format_info): Obtain information about length modifiers and
7954         standard versions from tables.  Adjust warning message wordings.
7955         Use the name from the user's program for `ll' and `hh' length
7956         modifiers in warning messages.  Use more informative names for
7957         wanted types where available (for wchar_t, wint_t, size_t, signed
7958         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
7959
7960 2000-09-01  Jim Wilson  <wilson@cygnus.com>
7961
7962         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
7963         * combine.c (distribute_notes): Handle REG_NORETURN.
7964         * rtl.c (reg_note_name): Add REG_NORETURN.
7965         * rtl.h (enum reg_note): Likewise.
7966
7967         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
7968         ia64_file_start.
7969         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
7970         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
7971         (emit_predicate_relation_info): Handle conditional calls with
7972         REG_NORETURN.
7973         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
7974         instead of ia64_file_start.
7975         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
7976         * config/ia64/ia64.md (safe_across_calls_all,
7977         save_across_calls_normal): New patterns.
7978
7979         * loop.c (check_final_value): Check for biv use before checking for
7980         giv use.  Check for both biv and giv uses.  Always set last_giv_use
7981         if there is a giv use.
7982
7983 2000-09-01  Richard Henderson  <rth@cygnus.com>
7984
7985         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
7986         (madddi3): Likewise.
7987         (maddsi3): New.
7988
7989 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7990
7991         * expr.c (clear_storage): Don't use emit_move_insn unless
7992         either BLKmode or proper size.
7993         (store_constructor): Don't call clear_storage if REG of wrong size.
7994
7995         * flow.c (init_propagate_block_info): Don't mark frame dead at end
7996         of function if returns wiht stack pointer depressed.
7997
7998 2000-09-01  Andrew Haley  <aph@redhat.com>
7999
8000         * dwarf2out.c (stack_adjust_offset): New function.
8001         (dwarf2out_stack_adjust): Break out stack adjust logic into
8002         new stack_adjust_offset function.  Look inside parallels and
8003         sequences for stack adjustments.
8004
8005 2000-08-31  Jeff Law <law@cygnus.com>
8006
8007         * arm.md: Use no_new_pseudos to determine when it is safe
8008         to create new pseudo registers.
8009
8010         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
8011         when we can safely allocate new registers.
8012
8013 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
8014
8015         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
8016         so that CONCATs are not generated for ASMs.
8017         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
8018         not generating_concat_p.
8019         * function.c (pop_function_context_from): Reset
8020         generating_concat_p.
8021         (prepare_function_start): Likewise.
8022         * rtl.c (generating_concat_p): Define.
8023         * rtl.h (generating_concat_p): Declare.
8024         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
8025
8026 2000-08-22  Philipp Thomas  <pthomas@suse.de>
8027             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
8028
8029         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
8030         for translation.
8031
8032 2000-08-30  Greg McGary  <greg@mcgary.org>
8033
8034         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
8035         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
8036         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
8037
8038 2000-08-30  Greg McGary  <greg@mcgary.org>
8039
8040         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
8041         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
8042         (TREE_INT_CST): New macro.
8043         * varasm.c (const_hash, compare_constant_1, record_constant_1):
8044         Use new macro TREE_INT_CST.
8045
8046 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
8047
8048         * contrib.texi: Add self.
8049
8050 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
8051
8052         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
8053         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
8054         and labels.
8055
8056 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8057
8058         * fixinc/gnu-regex.c: Don't define `const'.
8059
8060 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8061
8062         * expr.c (store_constructor): Allow variable bounds of array type.
8063         (expand_expr): Don't blow up if type is ERROR_MARK.
8064         * varasm.c (output_constructor): Don't access lower bound of array
8065         type unless need it if index is supplied (so it can be a variable
8066         if no index is supplied).
8067         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
8068         Other minor cleanups.
8069
8070 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8071
8072         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
8073         for compilations in stage 1 and subsequent stages, respectively.
8074         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
8075         * configure: Rebuilt.
8076         * x-vax, x-vax-gcc: Deleted.
8077
8078 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
8079
8080         * c-common.c (declare_function_name): Use func_id_node,
8081         function_id_node, and pretty_function_id_node.  Do not make
8082         __func__ visible at file scope.
8083         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
8084         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
8085         (function_id_node, pretty_function_id_node, func_id_node): New
8086         macros.
8087         * c-decl.c (init_decl_processing): Initialize function_id_node,
8088         pretty_function_id_node, and func_id_node.
8089         (c_make_fname_decl): Correct comment.
8090
8091         * tree.h (struct tree_identifier): Constify pointer member.
8092
8093         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
8094         * c-pragma.h (struct weak_syms): Constify name and value members.
8095         (add_weak): Constify arguments.
8096
8097         * calls.c (special_function_p): Constify a char *.
8098         (expand_call): Remove variable which is initialized and then
8099         never used.
8100         * dependence.c (struct def_use, struct induction, struct subscript):
8101         Constify 'variable' member.
8102         (get_low_bound, have_induction_variable): Constify char * argument.
8103         (find_induction_variable): Add braces to avoid dangling else.
8104         (classify_dependence): Constify char * arrays.
8105         * profile.c (output_func_start_profiler): Constify a char *.
8106         * stor-layout.c (finalize_record_size): Constify a char *.
8107         * tree.c (is_attribute_p): Constify a char *.
8108         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
8109
8110         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
8111         for comprehensibility.  Do not call get_identifier if we did
8112         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
8113         create temporary string constants, not ggc_alloc_string.  No
8114         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
8115         char * to hold IDENTIFIER_POINTERs.
8116
8117 2000-08-29  Richard Henderson  <rth@cygnus.com>
8118
8119         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
8120         for the inputs.
8121
8122 2000-08-29  Richard Henderson  <rth@cygnus.com>
8123
8124         * reload.c (push_secondary_reload): Allow class == reload_class
8125         if we're using a reload_in/out pattern.
8126
8127         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
8128         the half that does not conflict with the reload register.
8129         (reload_outti): Likewise.
8130
8131 2000-08-29  Kazu Hirata  <kazu@hxi.com>
8132
8133         * reload.c: Fix formatting.
8134
8135         * stmt.c: Fix formatting.
8136
8137         * gcc.c: Fix formatting.
8138
8139 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
8140
8141         * flags.h (time_report, mem_report): New global flags.
8142         * toplev.c: Define time_report and mem_report.
8143         (f_options): Add -ftime-report and -fmem-report.
8144         (compile_file): Turn on time_report if quiet_flag is off.
8145         Call ggc_print_statistics at very end if mem_report is on.
8146         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
8147
8148         * ggc-common.c (ggc_print_statistics): Rename to
8149         ggc_print_common_statistics; all callers changed.  Scale
8150         quantities above 10K to kilobytes and above 10M to megabytes.
8151         * ggc-page.c (ggc_page_print_statistics): Rename to
8152         ggc_print_statistics.  Report memory consumed by internal data
8153         structures for each allocation bucket.  Scale quantities above
8154         10K to kilobytes and above 10M to megabytes.
8155         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
8156         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
8157         Define tally_leaves always.
8158         (ggc_print_statistics): New function.
8159         * ggc.h: Adjust for renamed functions.
8160
8161 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
8162
8163         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
8164         output_movsisf instead of which_alternative.
8165
8166         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
8167
8168 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
8169
8170         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
8171         (avr_progmem_p): New prototype.
8172         (output_movsisf): Prototype declaration changed.
8173         (output_movqi): New prototype.
8174         (output_movhi): New prototype.
8175         (call_insn_operand): Likewise.
8176         (final_prescan_insn): Likewise.
8177         (avr_simplify_comparision_p): Likewise.
8178         (avr_normalize_condition): Likewise.
8179         (compare_eq_p): Likewise.
8180         (out_shift_with_cnt): Likewise.
8181         (const_int_pow2_p): Likewise.
8182         (output_reload_inhi): Prototype declaration changed.
8183
8184         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
8185         (ldi_reg_rtx): New. rtx for r31.
8186         (avr_init_stack): Initialize as "__stack".
8187         (function_prologue): Use it.
8188         Replace all TARGET_ENHANCED with AVR_ENHANCED.
8189         (avr_mcu_name): Initialize as "avr2".
8190         (avr_enhanced_p, avr_mega_p): New variables.
8191         (mcu_types, avr_override_options): Handle all known MCU types.
8192         Also handle avr1 (only preprocess, assemble and link).
8193         (print_operand): Using of `%K' in output template removed.
8194         (out_movqi_r_mr): Optimized.
8195         (out_movhi_r_mr): Likewise.
8196         (output_movqi): New function.
8197         (output_movhi): Likewise.
8198         (out_movsi_r_mr): Optimized.
8199         (output_movsisf): Compute insn length for `adjust_insn_length'
8200         (out_movqi_mr_r): Optimized.
8201         (out_movhi_mr_r): Optimized.
8202         (adjust_insn_length): Use output_movsisf, output_movqi,
8203         output_movhi for insn length adjusting.
8204         (reg_unused_after): Use dead_or_set_p.
8205         (preferred_reload_class): Now havn't any restriction.
8206         (reg_was_0): New function.
8207         (io_address_p): Likewise.
8208         (const_int_pow2_p): Likewise.
8209         (output_reload_inhi): Likewise.
8210         (output_reload_insisf): Likewise.
8211
8212         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
8213         (LIB_SPEC): Use -lc for all supported devices.
8214         (LIBGCC_SPEC): Use -lgcc for all supported devices.
8215         (AVR_MEGA): Define as avr_mega_p.
8216         (AVR_ENHANCED): New, define as avr_enhanced_p.
8217         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
8218         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
8219         (CRT_BINUTILS_SPECS): Handle all known MCU types.
8220         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
8221         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
8222         (ASM_SPEC): Pass -mmcu=... to the assembler.
8223         Change all -DAVR_* to -D__AVR_*__.
8224         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
8225         Rename library functions to start with two underscores.
8226         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
8227         alignment.
8228         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
8229         (SUPPORTS_WEAK): Likewise.
8230         (LDI_REG_REGNO): New. Register r31 will be used as temporary
8231         register for loading constants to r0-r14.
8232
8233         * config/avr/avr.md: Replace all TARGET_ENHANCED with
8234         AVR_ENHANCED.
8235         (*mov_r_sp): Removed. Handled by output_movhi.
8236         (*mov_sp_r): Likewise.
8237         (*mov_sp_r_no_interrupts): Likewise
8238         (*mov_sp_r_tiny): Likewise.
8239         (*movqi): Use output_movqi.
8240         (*reload_inqi): New.
8241         (*movhi): Use output_movhi.
8242         (*reload_inhi): New.
8243         (*negsi2): Optimized.
8244         (*negsf2): Likewise.
8245         Added peepholes (define_peephole2) for loading constants to r0-r14
8246         and for using `cpse' command.
8247
8248         * config/avr/libgcc.S: Rename library functions to start with two
8249         underscores.
8250         Add support for enhanced core.
8251         (_moqhi3): Fix typo, now _modqi3.
8252         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
8253         (__prologue_saves__): Remove test for stack adjust by 0.
8254         (__tablejump__): New.
8255
8256         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
8257         Add multilib support.
8258
8259 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
8260
8261         * loop.c (prescan_loop): Don't check unknown_address_altered
8262         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
8263         to loop_store_mems as necessary.
8264         (loop_invariant_p): Don't check unknown_address_altered
8265         or unknown_constant_address_altered.
8266
8267 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8268
8269         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
8270
8271 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
8272
8273         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
8274         print just the filename.
8275         * cpplex.c (_cpp_run_directive): Add additional argument, the
8276         name to give the synthetic buffer.  This defaults to
8277         translated "<command line>".
8278         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
8279         Adjust to match.
8280         (_cpp_define_builtin): New function.
8281         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
8282         * cpphash.h: Update prototypes.
8283
8284         * tradcpp.c (main): Process -D and -U simultaneously, in the
8285         order they appeared on the command line.
8286
8287 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8288
8289         * c-decl.c (define_label): Call warning_with_file_and_line and
8290         error_with_file_and_line instead of plain warning or error.
8291
8292         * c-parse.in (label): Use save_filename/save_lineno to ensure
8293         correct values for calls to define_label.
8294
8295 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
8296
8297         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
8298         away.
8299         * expr.c (expand_expr, case TARGET_EXPR): Don't call
8300         mark_addressable.
8301         * tree.h (get_file_function_name): Remove two duplicate
8302         declarations.
8303
8304 2000-08-28  Kazu Hirata  <kazu@hxi.com>
8305
8306         * tree.c: Fix formatting.
8307
8308         * xcoffout.c: Fix formatting.
8309
8310 2000-08-28  Jason Merrill  <jason@redhat.com>
8311
8312         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
8313
8314 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
8315
8316         * dwarf2out.c (dwarf2out_finish): Don't bother calling
8317         break_out_includes if it won't do anything.
8318
8319 2000-08-28  Richard Henderson  <rth@cygnus.com>
8320
8321         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
8322         (find_reloads): Likewise.
8323         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
8324         (reload_inhi): Likewise.
8325
8326 2000-08-28  Richard Henderson  <rth@cygnus.com>
8327
8328         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
8329         (call_insn_operand): Don't expect a surrounding mem.
8330         (constant_call_address_operand): Likewise.
8331         * config/i386/i386.h (PREDICATE_CODES): Update.
8332         * config/i386/i386.md (call patterns): Move the match_operand
8333         for the call destination inside the mem.
8334
8335 2000-08-28  Richard Henderson  <rth@cygnus.com>
8336
8337         * local-alloc.c (requires_inout): Don't use reserved range for
8338         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
8339         * recog.c (asm_operand_ok): Likewise.
8340         (preprocess_constraints, constrain_operands): Likewise.
8341         * regclass.c (record_reg_classes): Likewise.
8342         * reload.c (find_reloads): Likewise.
8343         * reload1.c (maybe_fix_stack_asms): Likewise.
8344         (reload_cse_simplify_operands): Likewise.
8345         * stmt.c (expand_asm_operands): Likewise.
8346
8347         * md.texi: Update constraints documentation.
8348         * tm.texi (EXTRA_CONSTRAINT): Update.
8349
8350 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
8351
8352         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
8353         (print_die): If we don't know the offset of the
8354         target die, try the symbol.  Add a trailing newline.
8355         (reverse_all_dies): New fn.
8356         (dwarf2out_finish): Call it.
8357         (break_out_includes): Reorganize for clarity.
8358         (add_sibling_attributes): Don't call reverse_die_lists.
8359         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
8360         primary CU, too.
8361         * flags.h: Add flag_eliminate_dwarf2_dups.
8362         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
8363
8364 2000-08-28  Jason Merrill  <jason@redhat.com>
8365
8366         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
8367         * dwarf2out.c: #include "md5.h".
8368         (DIE_LABEL_PREFIX): New macro.
8369         (dw_val_struct): Add 'external' flag to val_die_ref.
8370         (add_AT_die_ref, AT_ref): Adjust.
8371         (AT_ref_external, set_AT_ref_external): New fns.
8372         (build_abbrev_table): Call set_AT_ref_external.
8373         (value_format): Call AT_ref_external.
8374         (die_struct): Add die_symbol field.
8375         (new_die): Clear it.
8376         (dwarf_tag_name): Handle BINCL/EINCL.
8377         (dwarf2out_start_source_file): Add BINCL DIE.
8378         (dwarf2out_end_source_file): Add EINCL DIE.
8379         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
8380         (loc_checksum, attr_checksum, die_checksum): New fns.
8381         (is_type_die, is_comdat_die, is_symbol_die): New fns.
8382         (compute_section_prefix, assign_symbol_names): New fns.
8383         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
8384         (output_die): Call output_die_symbol and AT_ref_external.
8385         (output_comdat_comp_unit): New fn, split out from...
8386         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
8387         secondary CUs.
8388         (output_pubnames, output_aranges): Abort if we see entries from
8389         secondary CUs.
8390         * toplev.h: Declare file_name_nondirectory.
8391         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
8392         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
8393         (debug_start_source_file): Call dwarf2out_start_source_file
8394         regardless of debug verbosity.
8395         (debug_end_source_file): Similarly.
8396         * tree.h: Declare clean_symbol_name.
8397         * tree.c (clean_symbol_name): Split out from...
8398         (get_file_function_name_long): ...here.
8399
8400         * dwarf2out.c (new_loc_descr): Use calloc.
8401         (splice_child_die): Remove the die from the right parent.
8402         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
8403
8404 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8405
8406         * toplev.c (decode_g_option): Don't give warning for unknown -g
8407         option; return 0 instead.
8408         (main): If -g option is not recognized by front end or
8409         language-independent code, give warning.
8410
8411 2000-08-28  Greg McGary  <greg@mcgary.org>
8412
8413         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
8414         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
8415         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
8416
8417 2000-08-27  Greg McGary  <greg@mcgary.org>
8418
8419         * cpplex.c (parse_string): Don't look for backslash
8420         before first char in `namebuf'.
8421         * loop.c (strength_reduce): Skip NOTEs.
8422
8423 2000-08-27  Jason Merrill  <jason@redhat.com>
8424
8425         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
8426         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
8427         TREE_ASM_WRITTEN, either.
8428         (finish_decl): Adjust.
8429
8430 2000-08-28  Philipp Thomas  <pthomas@suse.de>
8431
8432         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
8433         they have been incorporated into the gettext CVS. Change the text to
8434         reflect the current status of NLS. Add instructions for accessing
8435         the gettext CVS and add the patch from Martin v. Loewis.
8436
8437 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
8438
8439         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
8440         by using gen_lowpart_common.
8441         (movdi_internal64+6): Likewise.
8442
8443 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
8444
8445         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
8446         Document.
8447
8448         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
8449         numbers to the ranges used by GDB.
8450
8451 2000-08-25  Richard Henderson  <rth@cygnus.com>
8452
8453         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
8454         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
8455         (ia64_expand_prologue): Likewise.
8456         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
8457         argument for stdargs.
8458
8459 2000-08-25  Jason Merrill  <jason@redhat.com>
8460
8461         * integrate.c (expand_inline_function): Pull out the original decl.
8462
8463 2000-08-25  Jim Wilson  <wilson@cygnus.com>
8464
8465         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
8466
8467         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
8468
8469 2000-08-25  Greg McGary  <greg@mcgary.org>
8470
8471         * flow.c (dump_edge_info): Use ARRAY_SIZE.
8472         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
8473
8474 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
8475
8476         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
8477
8478 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
8479
8480         * i386.c (ix86_find_base_term): New.
8481         * i386-protos.h (ix86_find_base_term): Prototype.
8482         * i386.h (FIND_BASE_TERM): Define.
8483         * alias.c (find_base_term): Use it.
8484         * tm.texi (FIND_BASE_TERM): Document it.
8485
8486         * alias.c (true_dependence, write_dependence_p): Unchanging
8487         memory can't conflict with non-unchanging memory.
8488
8489         * alias.c (memrefs_conflict_p): A BLKmode reference
8490         to a symbol (or CONST_INT address) always conflicts
8491         with a reference to another symbol.
8492
8493 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
8494
8495         * c-common.c (time_char_table): Don't allow width and flags with
8496         "z" format.
8497
8498 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
8499
8500         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
8501         way as LT and LTU when the second operand has 0 in low word.
8502
8503 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
8504
8505         * basic-block.h (struct loop): Rename `exits' field to
8506         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
8507
8508         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
8509         (flow_loop_entry_edges_find): Add.
8510         (flow_edge_list_print): Rename from flow_exits_print.
8511         (flow_loops_find): Call flow_loop_entry_edges_find.
8512         (flow_loop_dump): Dump entry_edges list.
8513         (flow_loops_free): Free entry_edges.
8514
8515 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
8516
8517         * loop.c (loop_dump_aux, debug_loop): New functions.
8518         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
8519
8520         * flow.c (flow_loops_dump): Add callback parameter.
8521         (flow_loop_dump): Add callback parameter and call it.  Move
8522         loop note debugging code to loop_dump_aux.
8523
8524         * basic-block.h (flow_loop_dump): Add callback parameter
8525         (flow_loops_dump): Likewise.
8526
8527         * toplev.c (rest_of_compilation): Add NULL callback function pointer
8528         to call to flow_loops_dump.
8529
8530 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
8531
8532         * loop.c (count_loop_regs_set): Replace start and end arguments
8533         with loop argument.  All callers udated.
8534
8535 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
8536
8537         * loop.c (constant_high_bytes): Delete.
8538
8539 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
8540
8541         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
8542         and NOTE_INSN_LOOP_VTOP to...
8543         (find_and_verify_loops) ...here.
8544
8545 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
8546
8547         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
8548         (fini_dummy, init_dummy): Use it.
8549
8550 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
8551
8552         * cpplex.c (is_macro_disabled): Caller has already checked
8553         that we're not a preprocessed file.
8554
8555 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
8556
8557         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
8558         (c-iterate.o): Remove target.
8559         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
8560         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
8561         (finish_decl): Don't handle iterators.
8562         (grokdeclarator): Likewise.
8563         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
8564         * gcc/c-gperf.h: Regenerated.
8565         * gcc/c-iterate.c: Removed.
8566         * gcc/c-lex.c (init_lex): Don't handle iterators.
8567         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
8568         (compstmt_primary_start): Remove push_iterator_stack call.
8569         (stmt): Don't allow iterator statements.  Replace iterator_expand
8570         with expand_expr_stmt.
8571         (all_iter_stmt): Remove.
8572         (all_iter_stmt_simple): Likewise.
8573         (all_iter_stmt_with_decl): Likewise.
8574         * gcc/c-tree.h (ITERATOR_P): Remove.
8575         (ITERATOR_BOUND_P): Likewise.
8576         (init_iterators): Remove declaration.
8577         (iterator_expand): Likewise.
8578         (iterator_for_loop_start): Likewise.
8579         (iterator_for_loop_end): Likewise.
8580         (iterator_for_loop_record): Likewise.
8581         (push_iterator_stack): Likewise.
8582         (pop_iterator_stack): Likewise.
8583         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
8584         (readonly_warning): Likewise.
8585         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
8586
8587 2000-08-24  Jim Wilson  <wilson@cygnus.com>
8588
8589         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
8590         Copy type in a TYPE_DECL, just like pushdecl does.
8591
8592 2000-08-24  Richard Henderson  <rth@cygnus.com>
8593
8594         * toplev.c (main): Enable flag_reorder_blocks at -O2.
8595
8596 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
8597
8598         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
8599         asked for one page, allocate GGC_QUIRE_SIZE of them and put
8600         the extras on the free list.
8601         (release_pages): Clean up.
8602         (ggc_set_mark): Don't adjust G.allocated here...
8603         (sweep_pages): ... do it here.
8604
8605 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
8606
8607         * cppfiles.c (read_include_file): Rearrange initializations.
8608
8609 2000-08-24  Richard Henderson  <rth@cygnus.com>
8610
8611         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
8612
8613         * config/ia64/ia64-protos.h: Update.
8614         * config/ia64/ia64.c (gr_register_operand): New.
8615         (fr_register_operand, grfr_register_operand): New.
8616         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
8617         (grfr_reg_or_8bit_operand): New.
8618         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
8619         use gr_register_operand.
8620         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
8621         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
8622         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
8623         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
8624         (fr_reg_or_fp01_operand): Likewise.
8625         (not_postinc_memory_operand): New.
8626         (ia64_split_timode): Remove unused variables.
8627         (rtx_needs_barrier): Check arguments to cmpxchg.
8628         (builtin_description): Remove.
8629         (bdesc_2argsi, bdesc_2argdi): Remove.
8630         (ia64_init_builtins): Declare all builtins directly.
8631         (ia64_expand_fetch_and_op): Rewrite to be called from
8632         ia64_expand_builtin directly.  Use expand_binop and co.
8633         (ia64_expand_op_and_fetch): Likewise.
8634         (ia64_expand_compare_and_swap): Likewise.
8635         (ia64_expand_binop_builtin): Remove.
8636         (ia64_expand_lock_test_and_set): New.
8637         (ia64_expand_lock_release): New.
8638         (ia64_expand_builtin): Use them.
8639         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
8640         (EXTRA_CONSTRAINT): Use it.
8641         (PREDICATE_CODES): Update.
8642         * config/ia64/ia64.md (*): Use gr_register_operand and co.
8643         (mf): Indicate that we set memory as well as use it.
8644         (fetchadd_acq_si): Show memory being modified as well.
8645         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
8646         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
8647         (lock_test_and_set_si, lock_test_and_set_di): Remove.
8648         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
8649         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
8650         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
8651         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
8652         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
8653         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
8654         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
8655         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
8656         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
8657         return type.  Pretty print definitions.
8658
8659 2000-08-24  Jim Wilson  <wilson@cygnus.com>
8660
8661         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
8662         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
8663
8664 2000-08-24  Jason Merrill  <jason@redhat.com>
8665
8666         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
8667         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
8668         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
8669         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
8670
8671 2000-08-24  Greg McGary  <greg@mcgary.org>
8672
8673         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
8674         and extendtab within their proper array boundaries.
8675         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
8676         for the entire array.
8677
8678         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
8679         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
8680         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
8681         * config/fr30/fr30.c (fr30_print_operand): Likewise.
8682         * config/i386/dgux.c (output_options): Likewise.
8683         * config/i386/dgux.h (ASM_FILE_START): Likewise.
8684         * config/m88k/m88k.c (output_options): Likewise.
8685         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
8686         * config/mcore/mcore.c (mcore_output_inline_const_forced,
8687         layout_mcore_frame, handle_structs_in_regs): Likewise.
8688         * config/mips/mips.c (output_block_move): Likewise.
8689         * config/rs6000/rs6000.c (rs6000_override_options,
8690         rs6000_file_start): Likewise.
8691         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
8692         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
8693         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
8694         * builtins.c (expand_builtin_setjmp): Likewise.
8695         * expr.c (safe_from_p): Likewise.
8696         * flow.c (life_analysis): Likewise.
8697         * fold-const.c (size_int_type_wide): Likewise.
8698         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
8699         * genattrtab.c (make_length_attrs): Likewise.
8700         * genopinit.c (gen_insn): Likewise.
8701         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
8702         * global.c (global_alloc): Likewise.
8703         * local-alloc.c (find_free_reg): Likewise.
8704         * mips-tdump.c (print_symbol): Likewise.
8705         * mips-tfile.c (parse_def, parse_input): Likewise.
8706         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
8707         * stmt.c (expand_nl_goto_receiver): Likewise.
8708         * stor-layout.c (set_sizetype): Likewise.
8709         * varasm.c (decode_reg_name): Likewise.
8710         * toplev.c (decode_f_option, decode_W_option,
8711         set_target_switch, print_switch_values): Likewise.
8712         (NUM_ELEM): Remove macro.
8713         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
8714
8715 2000-08-24  Greg McGary  <greg@mcgary.org>
8716
8717         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
8718         (MAIN_NAME_P, main_identifier_node): New macros.
8719         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
8720         * c-decl.c (start_decl, grokdeclarator, start_function,
8721         store_parm_decls, finish_function): Use MAIN_NAME_P.
8722         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
8723         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
8724         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
8725         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
8726
8727 2000-08-24  Greg McGary  <greg@mcgary.org>
8728
8729         * cppfiles.c (actual_directory): Don't write beyond `dir'
8730         when it contains "".
8731         * real.c (asctoeg): Stay within bounds of etens[][].
8732
8733 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8734
8735         * dependence.c (dependence_string, direction_string,
8736         dump_one_node, dump_node_dependence): Hide unused identifiers.
8737         (get_low_bound, normalize_coefficients): Match definition to
8738         static prototype.
8739         (get_one_coefficient): Initialize variables `value0_is_idx' and
8740         `value1_is_idx'.
8741         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
8742         (ziv_test): Delete variable `idx', use parameter `sub' instead.
8743         (direction_merge): Avoid automatic aggregate initialization.
8744         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
8745         Initialize variables `dest_idx' and `src_idx'.
8746         (end_dependence_analysis): Avoid C89 style function definition.
8747
8748 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
8749
8750         * c-common.c (time_char_table): Don't allow width with %F.
8751         (check_format_info): Don't allow "Z" length with scanf.
8752
8753 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
8754
8755         * diagnostic.c (finish_diagnostic): Define.
8756         (output_do_printf): Use wrap_text instead of output_add_string.
8757         (default_print_error_function): Avoid embedded '\n'.
8758
8759         * diagnostic.h (flush_diagnostic_buffer): Declare.
8760
8761 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
8762
8763         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
8764
8765 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
8766
8767         * Makefile.in (GCC_PASSES): Add specs.
8768
8769 2000-08-23  Jim Wilson  <wilson@cygnus.com>
8770
8771         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
8772         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
8773         EHANDLER nor UHANDLER bit is set.
8774         (__get_except_table): Likewise.
8775
8776 2000-08-23  Nick Clifton  <nickc@redhat.com>
8777
8778         * config/arm/lib1funcs.asm: Replace upper case condition codes
8779         with lower case versions.
8780
8781         * config/arm/arm.h (STRUCT_VALUE): Define.
8782         (STRUCT_VALUE_REGNUM): Delete.
8783
8784 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
8785
8786         * cpphash.h (IN_I): New flag for directive table.
8787         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
8788         #pragma with IN_I.
8789         (_cpp_check_directive): If -fpreprocessed, execute directives
8790         marked with IN_I.  Issue no warnings in this case.
8791         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
8792
8793 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
8794
8795         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
8796         %u.
8797         (check_format_info): Support printf 'I' flag; warn about it with
8798         -pedantic.
8799
8800 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
8801
8802         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
8803         barrier can't be ignored by the alias analysis code.
8804
8805 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
8806
8807         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
8808         works inside fixincl.
8809
8810 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
8811
8812         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
8813         simplify_relational_operation() unless both operands are of
8814         VOIDmode.
8815         * cse.c (fold_rtx): Likewise.
8816
8817 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
8818
8819         * rtlanal.c (rtx_unstable_p): The pic register is stable
8820         (within one function) and the actual rtx should be used
8821         when checking the registers.
8822         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
8823
8824         * alias.c (true_dependence, write_dependence_p): Fix
8825         bug in previous patch.
8826
8827         * i386.c (ix86_GOT_alias_set): New.
8828         (legitimize_pic_address): Use it.
8829
8830         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
8831         only stable if its address is stable.
8832         (rtx_varies_p): An unchanging MEM can't vary if
8833         its address doesn't vary.
8834
8835 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8836
8837         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
8838
8839 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
8840
8841         * vax.h (ASM_SPEC): Pass `-J' to assembler.
8842         * x-vax-gcc: New file for bootstrapping with gcc.
8843         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
8844         * configure.in: Use x-vax-gcc with gcc.
8845         * configure: Rebuilt.
8846
8847 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8848
8849         * toplev.c (rest_of_compilation): Rebuild label notes after
8850         post-reload splitting pass if new labels have been created.
8851
8852 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
8853
8854         * diagnostic.h (output_buffer_state): New macro.
8855         * diagnostic.c (diagnostic_for_decl, sorry,
8856         default_print_error_function, output_do_verbatim,
8857         report_diagnostic, report_problematic_module): Use it.
8858         (wrap_text): Tweak.
8859         (output_format): Use wrap_text instead of maybe_wrap_text.
8860
8861 2000-08-22  Nick Clifton  <nickc@redhat.com>
8862
8863         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
8864         Common code for ARM divide and modulus functions.
8865         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
8866         ARM_DIV_MOD_BODY.
8867         (FUNC_END): New macro: Common code at the end of the division and
8868         modulo functions.
8869         (THUMB_FUNCTION_START): New macro:  Common code at the start of
8870         Thumb functions.
8871         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
8872
8873 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
8874
8875         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
8876
8877         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
8878         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
8879         const0_rtx.
8880
8881 2000-08-22  Nick Clifton  <nickc@redhat.com>
8882
8883         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
8884         restorative additions, test for bottom bits of IP being set,
8885         rather than relying upon the RORs not matching.
8886         (__modsi3): Ditto.
8887
8888 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
8889
8890         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
8891         text_section() as appropriate instead of emitting text csect
8892         pseudo-op directly.
8893         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
8894         (UNIQUE_SECTION): Define macro.
8895         (ASM_OUTPUT_SECTION_NAME): Define macro.
8896         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
8897         on AIX if debugging and -fdata-sections always.
8898
8899 2000-08-22  Steven King  <sxking@uswest.net>
8900
8901         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
8902         machinery.
8903         (LDBL_MAX): Same here.
8904
8905 2000-08-22  Richard Henderson  <rth@cygnus.com>
8906
8907         * flow.c (tidy_fallthru_edge): Update b->end properly.
8908
8909 2000-08-22  Stan Cox  <scox@redhat.com>
8910
8911         * Makefile.in (OBJS): Add dependence.o.
8912         * dependence.c: New file.
8913
8914 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
8915
8916         * calls.c (check_sibcall_argument_overlap_1): Adjust for
8917         ARGS_GROW_DOWNWARD.
8918         (check_sibcall_argument_overlap): Likewise.
8919
8920 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
8921
8922         * invoke.texi (SH Options): Document -m4-nofpu,
8923         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
8924         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
8925
8926 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
8927
8928         * c-common.c (check_format_info): Give the 'some locales' warning
8929         for strftime %Ey rather than the unconditional 'only last 2 digits
8930         of year' one.
8931
8932 2000-08-22  Richard Henderson  <rth@cygnus.com>
8933
8934         * alias.c (init_alias_analysis): Do not register
8935         struct_value_incoming_rtx or static_chain_rtx as pointing
8936         to stack memory.
8937
8938 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
8939
8940         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
8941
8942 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
8943
8944         * diagnostic.h (report_problematic_module): Declare.
8945         * diagnostic.c (report_problematic_module): New function.
8946         (report_error_function): Tweak.
8947
8948 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8949
8950         * stmt.c (expand_goto_internal, fixup_gotos): Only check
8951         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
8952
8953 2000-08-21  Richard Henderson  <rth@cygnus.com>
8954
8955         * flow.c (calculate_global_regs_live): Mark frame pointer live
8956         everywhere before reload.
8957
8958 2000-08-21  Jim Wilson  <wilson@cygnus.com>
8959
8960         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
8961         INTEL_EXTENDED_IEEE_FORMAT.
8962         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
8963         clear last two bytes of output FP value.
8964
8965 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
8966
8967         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
8968
8969 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
8970
8971         * unroll.c (loop_find_equiv_value): If ret is modified between
8972         insn and loop_start, ret might not be equivalent to reg.
8973
8974 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8975
8976         * c-common.c (init_dollar_format_checking,
8977         maybe_read_dollar_number, finish_dollar_format_checking): New
8978         functions.
8979         (dollar_arguments_used, dollar_arguments_count,
8980         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
8981         New variables.
8982         (check_format_info): Support $ formats for scanf and printf width
8983         and precision.  Always increment format_chars to advance past the
8984         '*' of precision, not just when the format parameters are
8985         available to check.
8986
8987 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8988
8989         * mips.c (block_move_loop, expand_block_move,
8990         function_arg_partial_nregs, save_restore_insns, function_prologue,
8991         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
8992         constant suffix.
8993         (function_arg_advance, function_arg): Match argument to format
8994         specifier `%p'.
8995
8996 2000-08-21  Nix  <nix@esperi.demon.co.uk>
8997
8998         * gcc.c (do_spec_1): Implement %j spec flag.
8999         Remove dead comment.
9000
9001         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
9002         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
9003         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
9004         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
9005
9006         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
9007         writable) instead of hardcoded value.
9008
9009         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
9010
9011         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
9012         MKTEMP_EACH_FILE.
9013
9014         * gcc.c (cc1_options): Do not process -o or run the assembler if
9015         -fsyntax-only.
9016         * objc/lang-spec.h: Likewise.
9017
9018 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
9019
9020         * fixinc/fixincl.c (fix_with_system): Pipe the output of
9021         "external" fixes through `cat', to avoid truncating the input
9022         file by redirection.
9023
9024 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
9025
9026         * config/i386/i386.md (lea_general_1): Copy insn condition to split
9027         condition.
9028         (lea_general_2, lea_general_3): Likewise.
9029
9030 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9031
9032         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
9033         warnings to user code.
9034
9035         * c-lex.c (readescape, yylex): Likewise.
9036
9037         * c-typeck.c (store_init_value, process_init_element): Likewise
9038         (c_expand_start_case): Format.
9039
9040 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9041
9042         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
9043
9044         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
9045         and linker_endian_spec to endian_spec.
9046         (ENDIAN_SPEC): Add %{EB} and %{EL}.
9047         (LINK_SPEC): Remove %{EB} and %{EL}.
9048         (ASM_SPEC): Likewise.  Use %(endian_spec).
9049
9050 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
9051
9052         * c-tree.h (flag_hosted): Move declaration from here...
9053         * c-common.h (flag_hosted): ... to here.
9054         (flag_noniso_default_format_attributes): New declaration.
9055         * c-decl.c (flag_noniso_default_format_attributes): New variable.
9056         (c_decode_option): Set it appropriately for options choosing
9057         language standard variant.
9058         * c-common.c (init_function_format_info): Only provide default
9059         format attributes if flag_hosted.  Only provide the gettext
9060         formats if flag_noniso_default_format_attributes.  Update
9061         comments.
9062         (check_format_info): Disable treatment of %a as a scanf flag in
9063         C99 mode.
9064
9065 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
9066
9067         * c-common.c (scan_char_table): Add 'w' to flags for all formats
9068         except 'n'.
9069         (check_format_info): Set 'wide' for scanf format widths.  Warn for
9070         a zero scanf width.  Make the check for writing into a constant
9071         object at the first level of indirection; at later levels, warn if
9072         any type qualifiers are encountered.
9073
9074 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
9075
9076         * reload.c (reload_inner_reg_of_subreg): New function broken out of
9077         push_reload.
9078         (push_reload): Use reload_inner_reg_of_subreg.
9079         (combine_reloads): Do not combine reloads if the input reload
9080         is a SUBREG in which the inner part will need reloading.
9081
9082         * global.c (global_alloc): Avoid passing dumpfile argument to
9083         reload routines.
9084         * toplev.c (rest_of_compilation): Likewise.
9085         * reload.h (reload): Remove dumpfile argument.  Callers changed.
9086         (debug_reload, debug_reload_to_stream): Move prototypes here.
9087         * rtl.h  (reload): Remove dumpfile argument.
9088         * reload.c (debug_reload): Remove prototype.
9089         (debug_reload_to_stream): Likewise.
9090         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
9091         instead.
9092
9093 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9094
9095         * diagnostic.c (context_as_prefix): Export.
9096         (need_error_newline): Remove.
9097         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
9098         (error_module_changed, record_last_error_module,
9099         error_function_changed, record_last_error_function): New functions.
9100         (initialize_diagnostics): Default intialize
9101         lang_diagnostic_starter, lang_diagnostic_finalizer.
9102         (init_output_buffer): Tweak.
9103         (file_name_as_prefix): New function.
9104         (announce_function, default_print_error_function,
9105         report_error_function, set_diagnostic_context): Tweak.
9106
9107 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
9108
9109         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
9110         condition expression.
9111
9112 2000-08-20  Richard Henderson  <rth@cygnus.com>
9113
9114         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
9115
9116 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
9117
9118         * cppinit.c (cpp_init): Set global flag when called.
9119         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
9120
9121 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
9122
9123         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
9124         before `process_directive' so that newlines won't be missed
9125         for directives.
9126         (cpp_printf): Increment `print->lineno' when newline is emitted.
9127
9128         * cppmain.c (cb_ident): Likewise.
9129         (cb_define): Likewise.
9130         (cb_undef): Likewise.
9131         (cb_include): Likewise.
9132         (cb_def_pragma): Likewise.
9133         (dump_macros_helper): Likewise.
9134
9135 2000-08-20  Richard Henderson  <rth@cygnus.com>
9136
9137         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
9138         assigned before a loop.
9139
9140         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
9141         (ashrsi3, lshrsi3): Likewise.
9142
9143 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
9144
9145         * c-lang.c: #include diagnostic.h
9146         (c_tree_printer): New function.
9147         (lang_init): Initialize lang_printer.
9148
9149         * Makefile.in (c-lang.o): Depends on diagnostic.h
9150
9151 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
9152
9153         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
9154
9155         * diagnostic.c (default_diagnostic_starter,
9156         default_diagnostic_finalizer): New functions.
9157         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
9158         (pedwarn, pedwarn_with_file_and_line, error,
9159         error_with_file_and_line, fatal, warning,
9160         warning_with_file_and_line): Adjust call to report_diagnostic.
9161         (report_diagnostic): Rework.
9162         (set_diagnostic_context): New function.
9163
9164         * diagnostic.h (struct diagnostic_context): New data structure.
9165         (diagnostic_message, diagnostic_argument_list,
9166         diagnostic_file_location, diagnostic_line_location,
9167         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
9168         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
9169         (set_diagnostic_context): Declare.
9170         (report_diagnostic): Change prototype.
9171
9172 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
9173
9174         * fix-header.c (main): Initialize cpplib.
9175
9176 2000-08-19  Michael Meissner  <meissner@redhat.com>
9177
9178         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
9179         instructions in it before checking for indirect jumps.
9180
9181         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
9182         in a indirect jump as a potential for conditional execution.
9183
9184         * d30v.h (d30v_init_expanders): Don't declare here.
9185         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
9186         prototype.
9187
9188 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
9189
9190         * cpp.texi: Add @section for assertions.
9191
9192 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
9193
9194         * loop.c (scan_loop): Use CONST_CALL_P instead of
9195         checking for REG_LIBCALL / REG_RETVAL.
9196
9197 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
9198
9199         * reload1.c (reload_as_needed): Accept dumpfile argument,
9200         pass it to emit_reload_insns.
9201         (emit_reload_insns): Add new dumpfile argument.  If non-null
9202         then dump the reloads for each insn into the dumpfile.
9203         (reload): Pass dumpfile to reload_as_needed.
9204
9205         * invoke.texi: Clean up linux-gnu vs linux comments.
9206
9207 2000-08-19  Richard Henderson  <rth@cygnus.com>
9208
9209         * config/ia64/ia64.c (reg_or_5bit_operand): New.
9210         (ia64_depz_field_mask): New.
9211         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
9212         (PREDICATE_CODES): Update.
9213         * config/ia64/ia64.md: Update commentary.
9214         (depz_internal): New.
9215         (ashlsi3): Implement directly.
9216         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
9217         (ashldi3): Use shladd.
9218         * config/ia64/ia64-protos.h: Update.
9219
9220 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
9221
9222         * toplev.c (independent_decode_option): Always process -g.
9223         Remove third argument, now unused.  Adjust caller to match.
9224
9225 2000-08-18  Richard Henderson  <rth@cygnus.com>
9226
9227         * combine.c (make_compound_operation): Break after creating
9228         the extraction.
9229
9230 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
9231
9232         * cpplib.c (cpp_register_pragma_space): Just return if the
9233         namespace is already registered.
9234
9235 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
9236
9237         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
9238         constant amount.  Do not generate ROTL instruction.
9239
9240 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
9241
9242         * config/sh/elf.h: Do not include sh/sh.h.
9243         * config/sh/rtems.h: Likewise.
9244         * config/sh/rtemself.h: Do not include sh/elf.h.
9245         * configure.in: Get them included with `tm_file's.
9246         * configure: Rebuilt.
9247
9248         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
9249         * config/sh/sh.c (fpscr_set_from_mem): Use them.
9250
9251 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9252
9253         * stor-layout.c (compute_record_type): Don't use mode of single
9254         field as mode of record if not integer mode of same type.
9255
9256         * regmove.c (perhaps_ends_bb_p): New function.
9257         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
9258         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
9259         (fixup_match_1): Likewise.
9260         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
9261         avoid signed/unsigned warnings.
9262
9263         * function.c (fixup_var_refs_1, case MEM): Update CODE after
9264         updating X.
9265
9266 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
9267
9268         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
9269         (_cpp_trigraph_map): Declaration moved from cpplex.c
9270
9271         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
9272         instead of 256.  Use consistent test for designated initializers.
9273         (cpp_init): Initialize trigraph_map.
9274         (initialize_standard_includes, parse_option):  Use memcmp
9275         instead of strncmp.
9276
9277         * cpplex.c (init_trigraph_map): Remove.
9278         (trigraph_ok, trigraph_replace, lex_line): Refer to
9279         _cpp_trigraph_map.
9280
9281         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
9282         (do_unassert): Remove unused "next" local.
9283
9284         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
9285
9286 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
9287
9288         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
9289         insn.
9290
9291 2000-08-17  Richard Henderson  <rth@cygnus.com>
9292
9293         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
9294         the first insn in a sequence.
9295
9296 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
9297
9298         * alias.c (true_dependence, write_dependence_p): A read
9299         involving a label_ref or the constant pool doesn't create
9300         a dependency.
9301
9302         * rtl.h (unchanging): Improve documentation.
9303
9304 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
9305
9306         * cse.c (insert_regs): Remove unused `regno'.
9307
9308 2000-08-17  Neil Booth  <NeilB@earthling.net>
9309
9310         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
9311         remove_dup_dirs.  If qtail == brack, remove brack not
9312         qtail.
9313         (remove_dup_dir, remove_dup_dirs): New functions.
9314
9315 2000-08-17  Neil Booth  <NeilB@earthling.net>
9316
9317         * cppinit.c (cpp_cleanup): Free include dir chains.
9318         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
9319         (do_unassert): Free the assert with _cpp_free_definition.
9320         * cppmacro.c (_cpp_free_definition): Free memory allocated for
9321         assertions.  Make the node a T_VOID node.
9322
9323 2000-08-17  Neil Booth  <NeilB@earthling.net>
9324
9325         * cppinit.c (path_include, append_include_chain):
9326         Remove 2nd parameter (struct cpp_pending *).
9327         (path_include, initialize_standard_includes, cpp_handle_option):
9328         Update callers appropriately.
9329         (cpp_handle_option): Use pend.
9330
9331 2000-08-17  Neil Booth  <NeilB@earthling.net>
9332
9333         * cppinit.c (sort_options): Remove, put functionality in
9334         cpp_init.
9335         (cpp_init): New.
9336         (initialize_builtins): Free memory.
9337         (cpp_start_read): Move init_IStable to cpp_init.
9338
9339         * cpplib.h (cpp_init): New prototype.
9340         * cppmain.c (main): Call cpp_init.
9341
9342 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
9343
9344         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
9345         (rtx_unstable_p, rtx_varies_p): Process vectors.
9346
9347 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
9348
9349         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
9350         references to GLOBAL symbols.  Use LOCAL where appropriate.
9351
9352 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9353
9354         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
9355         use t-aix41 when host == target.
9356
9357 2000-08-16  Richard Henderson  <rth@cygnus.com>
9358
9359         * reload.c (push_secondary_reload): Revert last change.
9360         If we use a reload_in/out pattern, make the when the same
9361         as the primary reload.
9362         (find_reloads): Likewise.
9363
9364 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
9365
9366         * configure.in (libstdcxx-v3): Fix test.
9367         * configure: Regenerate.
9368
9369 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9370
9371         * calls.c (calls_function_1, expand_call): Only test
9372         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
9373         * function.c (thread_prologue_and_epilogue_insns): Likewise.
9374
9375 2000-08-16  Richard Henderson  <rth@cygnus.com>
9376
9377         * combine.c (simplify_shift_const): Revert previous two
9378         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
9379         before the main loop.
9380
9381 2000-08-15  Richard Henderson  <rth@cygnus.com>
9382
9383         * combine.c (simplify_shift_const): Bound shift count when
9384         combining shifts.
9385
9386 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9387
9388         * calls.c (ECF_SP_DEPRESSED): New macro.
9389         (calls_function_1): Treat calling sp-depressed function as alloca.
9390         (emit_call_1): Don't adjust SP if calling sp-depressed function.
9391         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
9392         If sp-depressed, ensure block saves and restores SP.
9393         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
9394         for INTEGER_TYPE.
9395         * function.c (keep_stack_depressed): New function.
9396         (thread_prologue_and_epilogue_insns): Call it.
9397         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
9398         to print DECL_OFFSET_ALIGN.
9399         Print no-force-blk and transparent-union flags properly.
9400         * stmt.c (expand_goto_internal): Don't restore stack if last block
9401         and function returns with sp depressed.
9402         (fixup_gotos): Likewise.
9403         (save_stack_pointer): New function, from code in expand_decl.
9404         (expand_decl): Call new function.
9405         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
9406         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
9407         (save_stack_pointer): New declaration.
9408
9409         * diagnostic.c (fatal_function): New variable.
9410         (set_fatal_function): New function.
9411         (fatal): Call it.
9412         * diagnostic.h (set_fatal_function): New declaration.
9413
9414 2000-08-15  William Cohen  <wcohen@redhat.com>
9415
9416         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
9417         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
9418         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
9419
9420 2000-08-15  Richard Henderson  <rth@cygnus.com>
9421
9422         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
9423
9424 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
9425
9426         * arm.c (arm_function_ok_for_sibcall): New function.
9427         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
9428         * arm.md (call expanders): Don't check here for calls that can't
9429         be sibling calls.
9430
9431 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
9432
9433         * arm.md (splits generating cond_exec): Disable.
9434
9435 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
9436
9437         * arm/linux-elf.h (text_section): Delete declaration.
9438
9439 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
9440
9441         ARM support for unordered FP operations.
9442         * arm-protos.h (arm_comparison_operator): Declare.
9443         * arm.c (arm_comparison_operator): New function.
9444         (arm_select_cc_mode): Add unordered comparison codes.
9445         (get_arm_condition_code): Likewise.
9446         (arm_final_prescan_insn): Can't handle unordered jumps that can't
9447         be done in one insn.
9448         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
9449         * arm.md (all uses of comparison_operator): Replace with
9450         arm_comparison_operator.
9451         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
9452         expands.
9453         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
9454         patterns.
9455
9456 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9457
9458         * gthr-posix.h: Conditionally include <sched.h>; include
9459         <config.h> from libobjc/.
9460
9461 2000-08-14  Richard Henderson  <rth@cygnus.com>
9462
9463         * config/i386/i386.c (legitimize_pic_address): Use Pmode
9464         for all CONSTs.
9465
9466 2000-08-14  Richard Henderson  <rth@cygnus.com>
9467
9468         * configure.in (ia64-*): Set float_format for i386 long double.
9469
9470         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
9471         as we would for i386 XFmode.
9472         (PUT_REAL): Likewise.
9473         (endian, ereal_atof, real_value_truncate): Likewise.
9474         (ereal_isneg, toe64, etens, make_nan): Likewise.
9475         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
9476
9477         * config/ia64/ia64-protos.h: Update.
9478         * config/ia64/ia64.c (general_tfmode_operand): New.
9479         (destination_tfmode_operand): New.
9480         (tfreg_or_fp01_operand): New.
9481         (ia64_split_timode): New.
9482         (spill_tfmode_operand): New.
9483         (ia64_expand_prologue): Use TFmode not XFmode.
9484         (ia64_expand_epilogue): Likewise.
9485         (ia64_function_arg): Likewise.
9486         (ia64_function_arg_advance): Likewise.
9487         (ia64_return_in_memory): Likewise.
9488         (ia64_function_value): Likewise.
9489         (ia64_print_operand): Likewise.
9490         (ia64_register_move_cost): Set GR<->FR to 5.
9491         (ia64_secondary_reload_class): Get GR for TImode memory op.
9492         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
9493         (ROUND_TYPE_ALIGN): Remove.
9494         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
9495         (INTEL_EXTENDED_IEEE_FORMAT): Define.
9496         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
9497         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
9498         (MODES_TIEABLE_P): Use TFmode, not XFmode.
9499         (CLASS_MAX_NREGS): Likewise.
9500         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
9501         (PREDICATE_CODES): Update.
9502         * config/ia64/ia64.md (movti): New.
9503         (movti_internal): Use a clobber for memory alternatives.
9504         (reload_inti, reload_outti): New.
9505         (movsfcc_astep): Predicate properly.
9506         (movdfcc_astep): Likewise.
9507         (movxf): Remove.
9508         (movtf): New.
9509         (extendsftf2, extenddftf2): New.
9510         (trunctfsf2, trunctfdf2): New.
9511         (floatditf2, fix_trunctfdi2): New.
9512         (floatunsditf2, fixuns_trunctfdi2): New.
9513         (addtf3, subtf3, multf3, abstf2): New.
9514         (negtf2, nabstf2, mintf3, maxtf3): New.
9515         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
9516         (cmptf): New.
9517         (fr_spill): Use TFmode, not XFmode.
9518         (fr_restore): Likewise.
9519         * config/ia64/lib1funcs.asm (__divtf3): New.
9520         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
9521
9522 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9523
9524         * cse.c (fold_rtx): Avoid empty body in an if-statement.
9525
9526         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
9527         `U' integer constant suffix.
9528
9529         * dwarf2out.c (add_subscript_info): Avoid empty body in an
9530         else-statement.
9531
9532         * sparc/sol2.h (__enable_execute_stack): Prototype.
9533
9534 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
9535
9536         * collect2.c: Remove use of AIX import file.
9537
9538         * longlong.h: Test ARCH_PWR not ARCH_POWER.
9539
9540         * rs6000.c (print_operand, case 'E'): Add else.
9541
9542 2000-08-14  Richard Henderson  <rth@cygnus.com>
9543
9544         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
9545         (movdi_symbolic): New.
9546
9547 2000-08-14  Jim Wilson  <wilson@cygnus.com>
9548
9549         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9550         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
9551         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
9552         to GNU as.
9553
9554 2000-08-14  Richard Henderson  <rth@cygnus.com>
9555
9556         * expr.c (emit_group_load): Don't force constants into registers.
9557         Special case source already in the correct mode.
9558
9559 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
9560
9561         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
9562         * fixinc/inclhack.def: Likewise.
9563         * fixinc/mkfixinc.sh: Likewise.
9564         * configure: Regenerate.
9565         * fixinc/fixincl.x: Regenerate.
9566         * install.texi: Document equivalence of linux and linux-gnu.
9567
9568 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9569
9570         * cse.c (insert_regs): Also in REG case: When finding an invalid
9571         value, and we make a new quantity, make sure that it won't be
9572         mistaken by for a valid one by mention_regs.
9573
9574 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
9575
9576         * h8300.md: Remove obsolete peepholes.
9577
9578 2000-08-13  Kazu Hirata  <kazu@hxi.com>
9579
9580         * invoke.texi (H8/300 Options): Fix typos.
9581         * config/h8300.c: Fix formatting.
9582         * config/h8300.h: Fix comment typos.
9583         (OVERRIDE_OPTIONS): Fix formatting.
9584
9585         * function.c: Fix formatting.
9586
9587         * cse.c: Fix formatting.
9588
9589 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
9590
9591         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
9592         (attempt_auto_inc): Suppress parentheses warning.
9593         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
9594         * loop.c (load_mems): Remove `u' suffix in two places.
9595         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
9596         hex constants.
9597         * config/rs6000/rs6000.h: Likewise.
9598         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
9599         __eabi dummy routine.
9600         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
9601         variable `buf_ptr'.
9602
9603         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
9604         not put stuff in .sdata unnecessarily.
9605         (rs6000_unique_section): New function.
9606         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
9607         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
9608
9609         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
9610         arrays in C99.  Don't try to look at DECL_REGISTER of a
9611         COMPONENT_REF.  Don't complain twice about the same error.
9612
9613         * fixinc/inclhack.def (aix_pthread): New fix.
9614         (aix_sysmachine): New fix.
9615         * fixinc/fixincl.x: Regenerate.
9616
9617         * expr.c (expand_expr): Call convert_modes when turning a large
9618         multiply into a small one.
9619
9620 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
9621
9622         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
9623         the tree structure an exponent rather than an explicit alignment
9624         so it doesn't overflow.
9625         (SET_DECL_OFFSET_ALIGN): New macro.
9626         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
9627         rather than DECL_OFFSET_ALIGN.
9628         (place_field): Likewise.
9629         * expmed.c (store_bit_field): Abort on align==0 to avoid
9630         antisocial machine behaviour.
9631
9632 2000-08-12  Richard Henderson  <rth@cygnus.com>
9633
9634         * sibcall.c (uses_addressof): Accept both addressof and
9635         current_function_internal_arg_pointer inside a mem.
9636         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
9637         if current_function_uses_addressof.
9638         * stmt.c (expand_return): Kill tail recursion and HAVE_return
9639         optimizations.
9640
9641 2000-08-11  Richard Henderson  <rth@cygnus.com>
9642
9643         * config/ia64/ia64.md (addsi3): Remove expander.
9644         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
9645         (*addsi3_shladd): New.
9646
9647 2000-08-11  Richard Henderson  <rth@cygnus.com>
9648
9649         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
9650         (do_restore): Likewise.
9651         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
9652         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
9653         (rtx_needs_barrier): Track actual bit manipulation for
9654         ar.unat moves, gr_spill, and gr_restore.
9655         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
9656         (process_set): Don't handle varargs spills.
9657         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
9658         .mem.offset here instead of in process_set.
9659         (gr_restore): Likewise.
9660
9661 2000-08-11  Richard Henderson  <rth@cygnus.com>
9662
9663         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
9664
9665 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
9666
9667         * gcc.texi (The Configuration File): Document
9668         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
9669         UPDATE_PATH_HOST_CANONICALIZATION.
9670
9671 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9672
9673         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
9674         unprototyped function pointer casts on integer constants.
9675
9676 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
9677
9678         * fixproto: Recognize DOS paths with drive letters as absolute paths.
9679
9680 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
9681
9682         * extend.texi (Volatiles): Fix typos.
9683
9684 2000-08-11  Kazu Hirata  <kazu@hxi.com>
9685
9686         * flow.c: Fix formatting.
9687
9688 2000-08-11  Richard Henderson  <rth@cygnus.com>
9689
9690         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
9691         pattern, always allocate a tertiary scratch register.
9692
9693         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
9694         (reload_inhi): Likewise.
9695
9696 2000-08-11  Richard Henderson  <rth@cygnus.com>
9697
9698         * function.c (put_reg_into_stack): Allow type to be NULL.
9699         (schedule_fixup_var_refs): Likewise.
9700         (gen_mem_addressof): Allow decl to be NULL.
9701         (put_addressof_into_stack): Likewise.
9702
9703         * flow.c (merge_blocks_nomove): Be more careful about
9704         locating the beginning of block A.
9705
9706         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
9707
9708 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9709
9710         * configure.in:
9711         * configure:
9712         * gthr-posix.h:
9713         * config.in: Reverted the check for <sched.h>.
9714
9715 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
9716
9717         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
9718         macros define the name of CTOR and DTOR sections.
9719         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
9720         DTOR_LIST_END): Change to use attributes to specify
9721         sections.
9722         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
9723         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
9724         DTOR_LIST_END): Same as in mips/elf.h.
9725
9726 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
9727
9728         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
9729         disabling just crt0.o.
9730
9731 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
9732
9733         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
9734         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
9735         (EXTRA_SPECS): Add them.
9736         * arm/lib1funcs.asm: Support builds for interworking.
9737         Use macros to eliminate duplicated pieces of code.
9738
9739 2000-08-10  Kazu Hirata  <kazu@hxi.com>
9740
9741         * h8300.c (expand_a_rotate): New.
9742         (emit_a_rotate): Likewise.
9743         (h8300_adjust_insn_length): Add support for the rotate insns.
9744         * h8300.md (rotlqi3): New.
9745         (*rotlqi3_1): Likewise.
9746         (rotlhi3): Likewise.
9747         (*rotlhi3_1): Likewise.
9748         (rotlhi3): Likewise.
9749         (*rotlhi3_1): Likewise.
9750         * h8300-proto.h: Add prototypes for expand_a_rotate and
9751         emit_a_rotate.
9752
9753         * h8300.c: Fix comment typos.
9754         (dosize): Declare the variable amount as unsigned.
9755         (get_shift_alg): Fix a comparison between signed and unsigned.
9756         (emit_a_shift): Likewise.
9757         (h8300_adjust_insn_length): Simplify the code.
9758
9759         * c-decl.c: Fix formatting.
9760
9761 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9762
9763         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
9764         warning about non-traditional numeric constant suffixes.
9765
9766         * cppexp.c (parse_number): Likewise.
9767
9768         * invoke.texi: (-Wtraditional): Document new behavior.
9769
9770 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
9771
9772         * gthr-posix.h: Include auto-host.h. Conditionally include
9773         <sched.h>.
9774         * configure.in: Check for the <sched.h> header file.
9775         * config.in: Added define for HAVE_SCHED_H.
9776
9777 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9778
9779         * c-typeck.c (process_init_element): For -Wtraditional, warn about
9780         initialization of unions.
9781
9782         * invoke.texi (-Wtraditional): Document new behavior.
9783
9784 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
9785
9786         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
9787         instead of extra_c_flags.
9788         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
9789         * configure: Regenerate.
9790         * config.in: Regenerate.
9791
9792         * cpperror.c (cpp_type2name): New function.
9793         * cpplex.c (lex_line): If we issued an error for an invalid
9794         preprocessing directive, discard that logical line.
9795         * cpplib.c (do_line): Call a hook function if the current file
9796         is renamed by #line.
9797         (do_ident): Pass the contents of the string, not the entire
9798         token, to the callback function.
9799         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
9800         (cb.rename_file): New hook function.
9801         (cb.ident): Adjust prototype.
9802         (cpp_type2name): Prototype.
9803         * cppmacro.c (dump_macro_args): Correct precedence lossage.
9804
9805         * cppmain.c (cb_ident): Update for changed interface.
9806         (cb_rename_file): New function.
9807         (main): Set rename callback.
9808
9809 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
9810
9811         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
9812         multi-word registers.
9813
9814 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9815
9816         * c-common.c (combine_strings, check_format_info): Refer to ISO C
9817         or ISO C89 instead of ANSI C.
9818         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
9819         build_enumerator, do_case): Likewise.
9820         * c-lex.c (parse_float, yylex): Likewise.
9821         * c-parse.in: Likewise.
9822         * c-typeck.c (common_type, build_array_ref, build_binary_op,
9823         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
9824         build_c_cast, convert_for_assignment, set_init_index,
9825         set_init_label, c_expand_start_case): Likewise.
9826         * toplev.c (documented_lang_options, display_help): Likewise.
9827
9828 2000-08-08  Kazu Hirata  <kazu@hxi.com>
9829
9830         * h8300.c: Fix formatting.
9831         * h8300.h: Likewise.
9832         * h8300.md: Likewise.
9833         (movsi_h8300hs): Fix formatting of the resulting assembly code.
9834
9835         * reload1.c: Fix formatting.
9836
9837 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
9838
9839         * alpha/alpha.c (alpha_emit_xfloating_libcall):
9840         Use GEN_CALL_VALUE define.
9841         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
9842         * clipper/clipper.md (untyped_call): Likewise.
9843         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
9844         * fx80/fx80.md (untyped_call): Likewise.
9845         * mips/mips.md (untyped_call): Likewise.
9846         * ns32k/ns32k.md (untyped_call): Likewise.
9847         * pa/pa.md (untyped_call): Likewise.
9848         * romp/romp.md (untyped_call): Likewise.
9849         * sparc/sparc.md (untyped_call): Likewise.
9850
9851 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
9852
9853         * config/i860/i860.c (singlemove_string): Do not generate assembler
9854         pseudo instructions that must be expanded (that is, with signed
9855         constants larger than 16 bits).
9856
9857 2000-08-08  Richard Henderson  <rth@cygnus.com>
9858
9859         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
9860         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
9861         (init_propagate_block_info): Don't kill memory stores at -O0.
9862         (mark_set_1, mark_used_regs): Likewise.
9863
9864 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
9865
9866         * rs6000.c (optimization_options): Decorate 'level' as
9867         ATTRIBUTE_UNUSED.
9868         (mask64_operand): Remove sign-extend thinko.
9869         (rldic_operand): New function.
9870         (load_multiple_operation): regno's are unsigned ints.
9871         (store_multiple_operation): Likewise.
9872         (lmw_operation): Likewise.
9873         (stmw_operation): Likewise.
9874         (includes_lshift_p): shift_mask is unsigned int.
9875         (includes_lshift64_p): New function.
9876         (addrs_ok_for_quad_peep): unsigned int reg1.
9877         (print_operand): Consistently add "else" after
9878         output_operand_lossage().
9879         (print_operand, case 'b'): Fold in case 'W'.
9880         (print_operand, case 'W'): Print rldic MB value.
9881         (output_epilogue): Update Objective-C language string.
9882         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
9883         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
9884         * rs6000.md (ashldi3): Add rldic instruction.
9885         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
9886         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
9887         modifier.
9888
9889 2000-08-08  Richard Henderson  <rth@cygnus.com>
9890
9891         * config/ia64/ia64-protos.h: Remove duplicates.  Update
9892         for massive code rearrangements.
9893         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
9894         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
9895         (ia64_local_regs, ia64_need_regstk): Remove.
9896         (ar_ccv_reg_operand): New.
9897         (ia64_gp_save_reg): New.
9898         (struct ia64_frame_info): Combine most of the size elements;
9899         add new gr save elements.
9900         (find_gr_spill): New.
9901         (next_scratch_gr_reg): New.
9902         (mark_reg_gr_used_mask): New.
9903         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
9904         to GR backing store regs when possible.
9905         (ia64_initial_elimination_offset): New.
9906         (ia64_rap_fp_offset): Remove.
9907         (save_restore_insns): Remove.
9908         (setup_spill_pointers): New.
9909         (finish_spill_pointers): New.
9910         (spill_restore_mem): New.
9911         (do_spill, do_restore): New.
9912         (ia64_expand_prologue): Rewrite to use them.
9913         (ia64_expand_epilogue): Likewise.
9914         (ia64_direct_return): Update for current_frame_info changes.
9915         (ia64_function_prologue): Simplify .prologue emission.  Emit
9916         .spill when needed.
9917         (ia64_setup_incoming_varargs): Don't ever emit rtl.
9918         (ia64_dbx_register_number): New.
9919         (ia64_initialize_trampoline): New.
9920         (ia64_secondary_reload_class): Request GR_REGS for integer
9921         arithmetic destined for FR_REGS.
9922         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
9923         (ia64_mark_machine_status): Mark ia64_gp_save.
9924         (rws_access_regno): Rename from rws_access_reg; don't treat
9925         predicates specially.
9926         (rws_access_reg): New.  Update all callers.
9927         (rtx_needs_barrier): Remove dead unspecs.
9928         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
9929         (ia64_encode_section_info): Silence signed/unsigned warnings.
9930         (spill_offset, sp_offset, spill_offset_emitted): Remove.
9931         (tmp_reg, tmp_saved): Remove.
9932         (process_set): Rewrite to expect complicated bits via
9933         REG_FRAME_RELATED_EXPR.
9934         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
9935         in the use of ar.ccv; never set RTX_UNCHANGING_P.
9936         (ia64_expand_op_and_fetch): Likewise.
9937         (ia64_expand_compare_and_swap): Likewise.
9938         (ia64_expand_builtin): Likewise.
9939         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
9940         (FIRST_PSEUDO_REGISTER): Update.
9941         (AR_M_REGNO_P): Update.
9942         (FIXED_REGS): Don't mark three local registers as used.
9943         (EXTRA_CC_MODES): New.
9944         (SELECT_CC_MODE): New.
9945         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
9946         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
9947         (FRAME_GROWS_DOWNWARD): Unset.
9948         (STARTING_FRAME_OFFSET): Zero.
9949         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
9950         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
9951         (HARD_FRAME_POINTER_REGNUM): New.
9952         (CAN_DEBUG_WITHOUT_FP): Define.
9953         (TRAMPOLINE_TEMPLATE): Remove.
9954         (TRAMPOLINE_SIZE): Lower to 32.
9955         (TRAMPOLINE_ALIGNMENT): Lower to 64.
9956         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
9957         (PREDICATE_CODES): Update.
9958         (struct machine_function): Add ia64_gp_save.
9959         * config/ia64/ia64.md: Purge unused unspecs.
9960         (movsi patterns): Allow moves to/from AR_M_REGS.
9961         (movdi patterns): Allow moves to/from p0.
9962         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
9963         (gr_spill, gr_restore): Indicate ar.unat read/written.
9964         (nonlocal_goto): Don't pass old frame_pointer.
9965         (nonlocal_goto_receiver): Remove.
9966         (exception_receiver): New.
9967         (builtin_setjmp_setup): New.
9968         (builtin_setjmp_receiver): New.
9969         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
9970         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
9971         (__ia64_restore_stack_nonlocal): Likewise.
9972         (__ia64_trampoline): New.
9973         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
9974         function.
9975         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
9976
9977 2000-08-08  Richard Henderson  <rth@cygnus.com>
9978
9979         * frame.h (ia64_frame_state): Add my_psp.
9980         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
9981         (__throw): Pass it in.  Don't clobber r7.
9982         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
9983         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
9984         and nothing to do with sp.
9985         (normalize_reg_loc): Use frame->my_psp.
9986         (frame_translate): Handle frame-pointer-less functions.  Set
9987         spill_base correctly, in absence of being told.
9988         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
9989         (__ia64_backtrace_helper): New sp argument.  Use
9990         builtin_return_address instead of label addresses.
9991         (print_record) [mem_stack_v]: No size member.
9992
9993 2000-08-08  Richard Henderson  <rth@cygnus.com>
9994
9995         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
9996
9997 2000-08-08  Richard Henderson  <rth@cygnus.com>
9998
9999         * tm.texi (LOCAL_REGNO): Document.
10000         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
10001         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
10002         * reload1.c (reload): Likewise when considering nonlocal labels.
10003
10004         * config/ia64/ia64.h (LOCAL_REGNO): New.
10005         * config/sparc/sparc.h (LOCAL_REGNO): New.
10006
10007 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
10008
10009         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
10010
10011 2000-08-07  Nick Clifton  <nickc@redhat.com>
10012
10013         * config/mips/mips.c: Fix compile time warning messages.
10014         * config/mips/mips-protos.h: Add prototype for equality_op.
10015
10016         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
10017
10018 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
10019
10020         * mn10300.md: Use nonimmediate_operand instead of general_operand
10021         on output operands.
10022
10023         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
10024
10025 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
10026
10027         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
10028         * sh.c (expand_block_move): Break long lines.
10029         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
10030         * sh.md (mulsi3): Likewise.
10031         (movdi): Adjust spacing.
10032
10033 2000-08-07  Richard Henderson  <rth@cygnus.com>
10034
10035         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
10036         * expr.c (emit_group_store): Don't set it.
10037
10038 2000-08-07  Kazu Hirata  <kazu@hxi.com>
10039
10040         * invoke.texi (Options for Debugging Your Program or GCC): Remove
10041         duplicate entries for 'w' and 'z'.
10042
10043         * flow.c: Fix a comment typo.
10044
10045 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
10046
10047         * c-parse.in: Changed the language string for Objective-C to "GNU
10048         Objective-C".
10049
10050 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
10051
10052         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
10053         to improve the Posix thread support for Objective-C.
10054
10055 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
10056
10057         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
10058         CTI_UNSIGNED_PTRDIFF_TYPE.
10059         (signed_size_type_node): Define.
10060         (unsigned_ptrdiff_type_node): Define.
10061         * c-decl.c (init_decl_processing): Create the
10062         signed_size_type_node and unsigned_ptrdiff_type_node types.
10063         * c-common.c (T_SC): Define.
10064         (T_SST): Define.
10065         (T_UPD): Define.
10066         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
10067         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
10068         %s and %p.
10069         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
10070         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
10071         flags for %c, %s and %[.
10072         (check_format_info): Only allow leniency for signedness of targets
10073         of character pointers (when pedantic) for formats flagged with
10074         "c", so for strings but not for %hh formats.  When pedantic, don't
10075         allow character pointers to substitute for void pointers if a
10076         second level of indirection is present.
10077
10078 2000-08-06  Kazu Hirata  <kazu@hxi.com>
10079
10080         * invoke.texi (Options for Debugging Your Program or GCC): Update
10081         the names of dump files.
10082
10083         * h8300.c (dosize): Rearrange code for conciseness.
10084         (split_adds_subs): Likewise.
10085
10086         * loop.c: Fix formatting.
10087
10088         * dwarf2out.c: Fix formatting.
10089
10090         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
10091
10092         * expr.c: Fix formatting.
10093
10094 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10095
10096         * rs6000.c (rs6000_maybe_dead): Prototype.
10097
10098 2000-08-06  Richard Henderson  <rth@cygnus.com>
10099
10100         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
10101         HAVE_nonlocal_goto as well.
10102         * config/i960/i960.md (nonlocal_goto): Don't do it here.
10103         * config/pj/pj.md (nonlocal_goto): Likewise.
10104
10105 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
10106
10107         * loop.c (try_swap_copy_prop): New function.
10108         (load_mems): Rename copies to load_copies and add new regset
10109         store_copies.  Check for sets of shadow registers and mark
10110         in store_copies.   Call try_swap_copy_prop for registers
10111         marked in store_copies.
10112
10113 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
10114
10115         * objc/objc-act.c: New command line option -fconstant-string-class
10116         to allow specifying a user defined constant string class,
10117         different from NXConstantString.
10118
10119         * toplev.c: Moved the Objective-C specific options to
10120         objc/lang-options.h.
10121
10122         * objc/lang-options.h: Moved the Objective-C specific options from
10123         toplev.c. Added -fconstant-string-class.
10124
10125 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
10126
10127         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10128         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
10129         __CTOR_LIST__ from func_ptr array to just func_ptr, to
10130         avoid extra alignment imposed on arrays.
10131         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
10132         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
10133
10134         * mips.h: Clean up comments and spacing near MASKs.
10135         (TARGET_UNIX_ASM): Delete.
10136         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
10137         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
10138         values contiguous.
10139
10140 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
10141
10142         * c-common.c (print_char_table): Add entries for the X/Open '
10143         format flag (print decimals with locale's thousands grouping
10144         character).  Make %C expect wint_t.
10145         (check_format_info): If pedantic, warn when the %n$ operand
10146         number form is used.  Allow for the ' flag; warn about it if
10147         pedantic.
10148
10149 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
10150
10151         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
10152         type is a float mode, cfun->decl's return type is not, and
10153         TARGET_FLOAT_RETURNS_IN_80387.
10154
10155 2000-08-04  Andreas Schwab  <schwab@suse.de>
10156
10157         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
10158         token list, which are always `#' and `pragma'.
10159
10160 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
10161
10162         * tree.c (tree_expr_nonnegative_p): Move to...
10163         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
10164         (rtl_expr_nonnegative_p): New.
10165         * tree.h: Add prototype for rtl_expr_nonnegative_p.
10166
10167         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
10168         CONST_DOUBLE_CHAIN: Move to...
10169         * rtl.h: ...here.  Use XCINT/XCEXP.
10170
10171         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
10172         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
10173         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
10174         to VOL_FILES.
10175
10176         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
10177
10178 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10179
10180         * config/c4x/c4x.md (return_indirect_internal): New.
10181         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
10182
10183 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10184
10185         * c-common.c (time_char_table): Mark up formats added in C99 and
10186         make other corrections.  %D and %g were added in C99.  %Og is an
10187         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
10188         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
10189         C99 rather than GNU extensions, but %OG and %Oz are extensions.
10190         %h was added in C99.  %C was added in C99.  %OY and %OC are
10191         extensions.  Add the C99 format %F.
10192         (check_format_info): If pedantic and not in C99 mode, warn for C99
10193         formats, %E and %O.
10194
10195 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10196
10197         * function.c (schedule_fixup_var_refs): New function, broken out
10198         of put_reg_into_stack.
10199         (put_reg_into_stack): Use it.
10200         (put_var_into_stack): In CONCAT case, fixup up references for
10201         components only after fixing up references to the whole concat.
10202
10203 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
10204
10205         * alias.c (mark_constant_function): Use INSN_P.
10206         (init_alias_analysis): Likewise.
10207         * combine.c (combine_instructions): Use INSN_P.
10208         (can_combine_p): Likewise.
10209         (try_combine): Likewise.
10210         (distribute_notes): Likewise.
10211         (distribute_links): Likewise.
10212         * cse.c (cse_around_loop): Use INSN_P.
10213         (invalidate_skipped_block): Likewise.
10214         (cse_set_around_loop): Likewise.
10215         (cse_end_of_basic_block): Likewise.
10216         (delete_trivially_dead_insns): Likewise.
10217         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
10218         (unshare_all_rtl_1): Likewise.
10219         (next_cc0_user): Likewise.
10220         (try_split make_insn_raw): Likewise.
10221         (remove_unnecessary_notes): Likewise.
10222         * final.c (shorten_branches): Use INSN_P.
10223         (leaf_renumber_regs): Likewise.
10224         (leaf_renumber_regs_insn): Likewise.
10225         * flow.c (find_label_refs): Use INSN_P.
10226         (verify_wide_reg): Likewise.
10227         (notice_stack_pointer_modification): Likewise.
10228         (count_or_remove_death_notes): Likewise.
10229         (verify_flow_info): Likewise.
10230         (clear_log_links): Likewise.
10231         * function.c (fixup_var_refs_insns): Use INSN_P.
10232         (compute_insns_for_mem): Likewise.
10233         * gcse.c (alloc_gcse_mem): Use INSN_P.
10234         (compute_sets): Likewise.
10235         (compute_hash_table): Likewise.
10236         (classic_gcse): Likewise.
10237         (cprop): Likewise.
10238         (insert_insn_end_bb): Likewise.
10239         (delete_null_pointer_checks_1): Likewise.
10240         * global.c (expand_preferences): Use INSN_P.
10241         (build_insn_chain): Likewise.
10242         * graph.c (node_data): Use INSN_P.
10243         * haifa-sched.c (priority): Use INSN_P.
10244         (rm_line_notes): Likewise.
10245         (rm_other_notes): Likewise.
10246         (find_insn_reg_weight): Likewise.
10247         (init_target_units): Likewise.
10248         (schedule_block): Likewise.
10249         (compute_block_forward_dependences): Likewise.
10250         (debug_dependencies): Likewise.
10251         (set_priorities): Likewise.
10252         * integrate.c (function_cannot_inline_p): Use INSN_P.
10253         (save_parm_insns): Likewise.
10254         (copy_insn_list): Likewise.
10255         * jump.c (mark_all_labels): Use INSN_P.
10256         (never_reached_warning): Likewise.
10257         * lcm.c (optimize_mode_switching): Use INSN_P.
10258         * local-alloc.c (validate_equiv_mem): Use INSN_P.
10259         (memref_used_between_p): Likewise.
10260         (update_equiv_regs): Likewise.
10261         (block_alloc): Likewise.
10262         (no_conflict_p): Likewise.
10263         * loop.c (scan_loop): Use INSN_P.
10264         (find_and_verify_loops): Likewise.
10265         (count_loop_regs_set): Likewise.
10266         (loop_reg_used_before_p): Likewise.
10267         (strength_reduce): Likewise.
10268         (recombine_givs): Likewise.
10269         (check_dbra_loop): Likewise.
10270         (load_mems): Likewise.
10271         (try_copy_prop): Likewise.
10272         * print-rtl.c (print_rtx): Use INSN_P.
10273         * recog.c (find_single_use): Use INSN_P.
10274         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
10275         (next_flags_user): Likewise.
10276         (swap_rtx_condition): Likewise.
10277         * regmove.c (mark_flags_life_zones): Use INSN_P.
10278         (optimize_reg_copy_1): Likewise.
10279         (optimize_reg_copy_2): Likewise.
10280         (optimize_reg_copy_3): Likewise.
10281         (reg_is_remote_constant_p): Likewise.
10282         (fixup_match_2): Likewise.
10283         (regmove_optimize): Likewise.
10284         (fixup_match_1): Likewise.
10285         * regrename.c (build_def_use): Use INSN_P.
10286         (replace_reg_in_block): Likewise.
10287         (consider_use): Likewise.
10288         * reload.c (find_equiv_reg): Use INSN_P.
10289         * reload1.c (reload): Use INSN_P.
10290         (maybe_fix_stack_asms): Likewise.
10291         (calculate_needs_all_insns): Likewise.
10292         (reload_as_needed): Likewise.
10293         (emit_output_reload_insns): Likewise.
10294         (delete_address_reloads_1): Likewise.
10295         (reload_cse_regs_1): Likewise.
10296         (reload_combine): Likewise.
10297         (reload_cse_move2add): Likewise.
10298         * reorg.c (redundant_insn): Use INSN_P.
10299         (dbr_schedule): Likewise.
10300         * resource.c (find_dead_or_set_registers): Use INSN_P.
10301         (mark_target_live_regs): Likewise.
10302         * rtlanal.c (reg_used_between_p): Use INSN_P.
10303         (reg_referenced_between_p): Likewise.
10304         (reg_set_between_p): Likewise.
10305         (reg_set_p): Likewise.
10306         (single_set): Likewise.
10307         (multiple_sets): Likewise.
10308         (find_last_value): Likewise.
10309         (reg_set_last): Likewise.
10310         (find_reg_note): Likewise.
10311         (find_regno_note): Likewise.
10312         * sibcall.c (sequence_uses_addressof): Use INSN_P.
10313         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
10314         * ssa.c (find_evaluations): Use INSN_P.
10315         (rename_block): Likewise.
10316         (rename_equivalent_regs): Likewise.
10317         * unroll.c (loop_find_equiv_value): Use INSN_P.
10318         (set_dominates_use): Likewise.
10319         * varasm.c (mark_constant_pool): Use INSN_P.
10320         (mark_constants): Likewise.
10321         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
10322         (alphaev4_next_group): Likewise.
10323         (alphaev5_next_group): Likewise.
10324         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
10325         (c4x_rptb_rpts_p): Likewise.
10326         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
10327         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
10328         (rs6000_adjust_priority): Likewise.
10329         * config/sh/sh.c (sh_loop_align): Use INSN_P.
10330         (machine_dependent_reorg): Likewise.
10331         (split_branches): Likewise.
10332         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
10333
10334 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
10335
10336         * combine.c (recog_for_combine): Remove the old notes
10337         prior to attempting to recognize the new pattern.
10338         (distribute_notes): Ignore REG_NONNEG notes.
10339
10340 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
10341
10342         * varasm.c (output_constructor): Add .align 0 for packed vars.
10343
10344 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
10345
10346         * configure.in: Use default thread_file even when enable_threads is
10347         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
10348         * configure: Rebuilt.
10349
10350         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
10351
10352 2000-08-04  Donn Terry (donnte@microsoft.com)
10353
10354         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
10355
10356 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
10357
10358         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
10359         Delete code that conditionally modifies 'version'.
10360         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
10361         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
10362         * gcc.c (main): Use it.
10363         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
10364         * prefix.c (update_path): Use it.
10365         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
10366         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
10367         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
10368         code.
10369         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
10370         (SUBTARGET_SWITCHES): Adjust.
10371         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
10372         defining.
10373         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
10374
10375 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10376
10377         * c-common.h (flag_isoc94): Declare.
10378         * c-decl.c (flag_isoc94): Define.
10379         (c_decode_option): Set flag_isoc94 as appropriate.
10380         * c-common.c (T_PD, T_IM, T_UIM): Define.
10381         (format_char_info): Add tlen and jlen.
10382         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
10383         %F.  Allow %lf.
10384         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
10385         %l[.
10386         (time_char_table): Add NULL entries for %t and %j.
10387         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
10388         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
10389         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
10390         precision.  Allow precision argument to be unsigned int.  If
10391         pedantic, warn for %p passed an argument not a pointer to possibly
10392         qualified void or a possibly qualified character type, and for
10393         pointer targets of the wrong sign, except for character pointers.
10394
10395 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10396
10397         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
10398         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
10399         (wint_type_node): Define.
10400         * c-decl.c (WINT_TYPE): Define.
10401         (init_decl_processing): Create the wint_type_node type.
10402         * c-common.c (T_WI): Define.
10403         (print_char_table): Use T_WI for %lc format.
10404
10405 2000-08-04  Bruce Korb  <bkorb@gnu.org>
10406
10407         * fixinc/:  Verified that the MSDOS patch does not break
10408         the UNIX functionality and applied the next three patches
10409         from July:
10410
10411 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
10412
10413         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
10414         output file with the temporary one by appending ".X" to generate
10415         the temporary fuile's name.  If the output file already has an
10416         extension, replace it with ".X".
10417
10418         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
10419         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
10420         reallocate the command buffer while copying the command-line
10421         argument.  Redirect the output directly to the temporary file,
10422         instead of going through another temporary file.
10423         (process): Close the temporary file before unlinking it.
10424         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
10425         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
10426         (run_compiles): Pass p_fixd argument to machine_matches, as it
10427         expects.
10428
10429         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
10430         environment, assume there are no symlinks in the include
10431         directory.  When cleaning up the DONE files, look for them
10432         case-insensitively.  Don't try to remove symlinks if they aren't
10433         there.
10434
10435         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
10436         all callers changed.  Declare pz "const char *", to avoid compiler
10437         warnings.
10438
10439         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
10440         Change prototype of make_raw_shell_str.
10441
10442 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
10443
10444         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
10445         (initialize) [__MSDOS__]: Use tempnam.
10446         (initialize): Don't use SIGPIPE if it is not defined.
10447
10448         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
10449         return stdout.
10450
10451 2000-07-25  Bruce Korb  <bkorb@gnu.org>
10452
10453         * fixinc/fix*.[ch]: substantially reworked to make it possible
10454         to run this program without using fork(2) or pipe(2) (i.e. in
10455         a DOS environment).
10456
10457 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
10458
10459         * cppdefault.h (WINT_TYPE): Define.
10460         * cppinit.c (builtin_array): Define __WINT_TYPE__.
10461         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
10462         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
10463
10464 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
10465
10466         * (mips_legitimate_address_p): Don't allow register+offset
10467         if the offset is large and negative, and we are compiling
10468         for 64 bit registers.
10469
10470 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10471
10472         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
10473         insn_code_number + 1.
10474
10475 2000-08-04  Kazu Hirata  <kazu@hxi.com>
10476
10477         * h8300.c (function_prologue): Rearrange code for conciseness.
10478         (function_epilogue): Likewise.
10479         * h8300.h (OK_FOR_U): Fix formatting.
10480
10481         * cse.c: Fix a comment typo. Fix formatting.
10482
10483 2000-08-03  Richard Henderson  <rth@cygnus.com>
10484
10485         * config/i386/i386.md (return_indirect_internal): New.
10486         * config/i386/i386.c (ix86_expand_epilogue): Use it.
10487
10488 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
10489
10490         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
10491         before the name.
10492         (lex_line): Glue @ onto the beginning of identifiers and
10493         string constants, in Objective-C mode.
10494         (output_token, spell_token): Handle CPP_OSTRING.
10495         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
10496         beginning of a NAME or a STRING, in objc mode.
10497
10498         * cpplib.c (get_define_node): Do not permit identifiers that
10499         begin with @ to be #defined.
10500         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
10501         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
10502
10503         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
10504         * c-tree.h (build_objc_string): Delete prototype.
10505         * objc/objc-tree.def: Delete OBJC_STRING_CST.
10506         * c-lex.c (yylex): Use build_string for all three kinds of strings.
10507
10508         * c-parse.in, objc/objc-act.c: Update commentary.
10509
10510 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
10511
10512         * extend.texi: Fix typo in last change.
10513
10514         * extend.texi: Add commentary on statement-expressions and their
10515         interactions with C++.
10516
10517 2000-08-03  Nick Clifton  <nickc@cygnus.com>
10518
10519         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
10520         * dwarf.h (LANG_JAVA): Change value to 0x000b.
10521
10522 2000-08-03  Anthony Green  <green@cygnus.com>
10523
10524         * dwarf2out.c (gen_compile_unit_die): Add java language support.
10525         (add_bound_info): Check for java language.
10526         (is_java): New function.
10527         * dwarfout.c (output_compile_unit_die): Ditto.
10528         * dwarf.h (dwarf_source_language): Add java source language type.
10529         * dwarf2.h (dwarf_source_language): Ditto.
10530
10531 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10532
10533         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
10534         operands.
10535
10536         * i386.c (ix86_expand_branch): Mode of comparison in
10537         IF_THEN_ELSE is VOIDmode.
10538
10539 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
10540
10541         * gengenrtl.c, rtl.c: Avoid #elif.
10542
10543 2000-08-03  Michael Poole  <poole@troilus.org>
10544
10545         * tm.texi (Register Classes): Clarify order of sub-initializers
10546         in REG_CLASS_CONTENTS.
10547
10548 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
10549
10550         From SAITOH Masanobu:
10551         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
10552
10553 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
10554
10555         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
10556         is not supported by tradcpp and isn't actually needed for cygwin.
10557
10558 2000-08-03  Kazu Hirata  <kazu@hxi.com>
10559
10560         * h8300.c: Fix a comment typo.
10561         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
10562
10563         * jump.c: Fix formatting.
10564
10565         * toplev.c: Fix formatting.
10566
10567 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
10568
10569         * flow.c (find_auto_inc): Verify that we've got a REG before
10570         peeking at its regno.  Fail, don't abort if we can't find
10571         the increment of the desired register.
10572
10573         * pa.md (shadd height reduction patterns/splitters): Remove.
10574
10575 2000-08-02  Jim Wilson  <wilson@cygnus.com>
10576
10577         * config/ia64/ia64-protos.h (flag_ssa): Declare.
10578         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
10579
10580 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
10581
10582         * dce.c: Remove all uses of assert.
10583         * dwarf2out.c: Likewise.
10584         * dwarfout.c: Likewise.
10585         * ssa.c: Likewise.
10586
10587 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
10588
10589         * gcc.h (lang_specific_driver): Constify second argument.
10590         * gcc.c (translate_options, process_command, main): Likewise.
10591         Constify variables to match.  Cast second argument to
10592         pexecute.
10593
10594         * cppspec.c, gccspec.c: Adjust type of second argument to
10595         lang_specific_driver, and update code as necessary.
10596
10597 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
10598
10599         * loop.c (scan_loop): Ensure update_end label does not
10600         go away until reg_scan_update is run.
10601
10602 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
10603
10604         * c-common.h: Prototype min_precision and c_build_qualified_type here...
10605         * c-tree.h: ... not here.
10606         * errors.h: Prototype fancy_abort.
10607
10608         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
10609         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
10610         * regrename.c (regrename_optimize): Make control flow explicit.
10611         (replace_reg_in_block): Initialize reg_use to 0.
10612
10613         * i386.c (legitimate_address_p): Rename error label to
10614         report_error to avoid namespace clash.
10615
10616 2000-08-02  Kazu Hirata  <kazu@hxi.com>
10617
10618         * fold-const.c: Fix formatting.
10619
10620 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10621
10622         * i386.c (legitimate_address_p): Accept other bases than
10623         pic_offset_table_rtx for GOTOFF constructs.
10624
10625 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10626
10627         * i386.md (shift to lea splitter): Use const_int_operand.
10628
10629 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
10630
10631         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
10632         cppspec.c: Do not use 'legal' or 'illegal' in error messages
10633         and comments.
10634
10635         * cppmain.c (cb_define, cb_undef): Don't generate any output
10636         if not done_initializing.
10637         * cpplex.c (maybe_paste_with_next): When the token after a ##
10638         is an omitted rest argument, only delete the token before it
10639         if that token is a comma.  Do not warn about bogus token
10640         pastes for , ## rest_arg.
10641
10642         * cpp.texi: Update.
10643         * cpp.1: Regenerate.
10644
10645 2000-08-02  Fred Fish  <fnf@be.com>
10646
10647         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
10648         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
10649         and later.
10650
10651         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
10652         Be directories to search path.
10653
10654         Remove support for __declspec(dllimport) and __declspec(dllexport).
10655         This is leftover cruft from the earlier BeOS gcc port when BeOS
10656         used Microsoft's PE object file format.
10657         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
10658         * config/i386/t-beos (winnt.o): Remove Makefile frag.
10659         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
10660         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
10661         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
10662         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
10663         (REDO_SECTION_INFO_P): Remove.
10664         (ASM_EXPORT_DECL): Remove.
10665         (ASM_DECLARE_FUNCTION_NAME): Remove.
10666         (ASM_DECLARE_OBJECT_NAME): Remove.
10667         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
10668         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
10669         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
10670         (STRIP_NAME_ENCODING): Remove.
10671
10672         Remove support for obsolete version of BeOS that is no longer
10673         supported by Be.
10674         * configure.in (i*86-*-beospe*): Remove.
10675         * config/i386/beos-pe.h: Remove.
10676
10677 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
10678             Mark Mitchell <mark@codesourcery.com>
10679
10680         * Makefile.in (OBJS): Added dce.o.
10681         (ssa.o): Updated target to include ssa.h.
10682         (flow.o): Likewise.
10683         (toplev.o): Likewise.
10684         (dce.o): Created target.
10685         * basic-block.h: Added comments.
10686         (INVALID_BLOCK): Added definition.
10687         (connect_infinite_loops_to_exit): Added declaration.
10688         Moved SSA declarations to ssa.h.
10689         * flow.c: Added inclusion of ssa.h.
10690         (struct depth_first_search_dsS, depth_first_search_ds):
10691         Added definitions.
10692         (compute_immediate_postdominators): Added definition.
10693         (connect_infinite_loops_to_exit): Likewise.
10694         (flow_dfs_compute_reverse_init): Likewise.
10695         (flow_dfs_compute_reverse_add_bb): Likewise.
10696         (flow_dfs_compute_reverse_execute): Likewise.
10697         (flow_dfs_compute_reverse_finish): Likewise.
10698         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
10699         (LABEL_P): Added definition.
10700         (JUMP_P): Likewise.
10701         (NOTE_P): Likewise.
10702         (BARRIER_P): Likewise.
10703         (JUMP_TABLE_DATA_P): Likewise.
10704         (INSN_DEAD_CODE_P): Likewise.
10705         * ssa.c: Replaced inclusions with ssa.h inclusion.
10706         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
10707         (rename_registers): Removed unnecessary variables.
10708         * ssa.h: Created by moving declarations from ssa.c and
10709         basic-block.h.
10710         * timevar.def: Defined TV_DEAD_CODE_ELIM.
10711         * toplev.c: Added ssa.h inclusion.
10712         (dump_file_index): Added DFI_dce.
10713         (dump_file): Added "dce" entry.
10714         Defined flag_ssa.
10715         (f_options): Added dce entry.
10716         * invoke.texi: Document -fdce.  Emphasize experimental status of
10717         -fssa.
10718         * dce.c: New file.
10719
10720 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
10721
10722         * cpperror.c (v_message): Split into _cpp_begin_message and
10723         v_message macro.  All callers updated.
10724         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
10725         checks here.
10726
10727         * cppfiles.c (cpp_syshdr_flags): New function.
10728         (read_include_file): Don't call cpp_output_tokens.  Call
10729         enter_file hook.
10730         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
10731         (cpp_reader_init): Don't initialize token_buffer.  Call
10732         _cpp_init_internal_pragmas.
10733         (cpp_cleanup): Don't clear token_buffer.
10734         (cpp_start_read): Don't worry about output from -D processing.
10735         Don't call cpp_output_tokens.
10736         (cpp_finish): Don't dump macros here.  Don't call
10737         cpp_output_tokens.
10738         * cppmacro.c (_cpp_dump_definition): Rename
10739         cpp_dump_definition.  Write directly to a FILE *.
10740         (dump_funlike_macro): Delete.
10741         (dump_macro_args): New.
10742
10743         * cpplex.c (TOKEN_LEN): Convert to inline function.
10744         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
10745         cpp_scan_line, _cpp_dump_list): Delete.
10746         (cpp_printf, cpp_output_list): New.
10747         (output_line_command): Don't worry about entering or leaving files.
10748         (cpp_scan_buffer): Just output each token as we hit it.
10749         (process_directive): Don't call cpp_output_tokens.
10750         (_cpp_glue_header_name): Don't use token_buffer.
10751         (output_token, dump_param_spelling): Write directly to a FILE *.
10752
10753         * cpplib.c (pass_thru_directive, dump_macro_name,
10754         pragma_dispatch, do_pragma_gcc): Delete.
10755         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
10756         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
10757         functions.
10758         (do_error, do_warning, pragma_dependency): Call
10759         _cpp_begin_message, then cpp_output_list.
10760         (cpp_register_pragma, cpp_register_pragma_space,
10761         _cpp_init_internal_pragmas): New.
10762         (do_pragma): Walk the pragmas table here.
10763         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
10764         do_pragma_dependency): Return void.
10765         (do_pragma_implementation): Moved to cppmain.c.
10766
10767         * cpplib.h: Update prototypes.
10768          (struct cpp_reader): Remove printer, token_buffer,
10769         token_buffer_size, and limit.  Add struct cb, and pragmas.
10770         (struct cpp_printer): Remove last_id and written.
10771         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
10772         CPP_ADJUST_WRITTEN): Delete.
10773         * cpphash.h: Update prototypes.
10774         (ufputs): New wrapper.
10775
10776         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
10777         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
10778         (main): Set up callbacks.  Register #pragma implementation.
10779         Dump macros from here.
10780
10781 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
10782
10783         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
10784         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
10785         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
10786         insns if they have a REG_MAYBE_DEAD note attached.
10787         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
10788         (rs6000_emit_load_toc_table): TOC loads may go dead.
10789
10790 2000-08-01  Jim Wilson  <wilson@cygnus.com>
10791
10792         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
10793         type exists before using it.  Use number of words as alignment
10794         otherwise.
10795         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
10796         ia64_va_arg): Propagate ia64_function_args changes here.
10797
10798 2000-08-01  Richard Henderson  <rth@cygnus.com>
10799
10800         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
10801         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
10802
10803 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
10804
10805         From Joern Rennecke:
10806         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
10807         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
10808         unless TARGET_SH3E is set.
10809         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
10810
10811         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
10812         (ashlsi3_std): New pattern.
10813         (ashlsi3 expander): Use it for TARGET_SH3.
10814         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
10815
10816 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10817
10818         * loop.c (canonicalize_condition):  Use destination, not source to
10819         determine SET's mode.
10820
10821 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
10822
10823         * flow.c (clear_log_links): Fix typo.
10824
10825 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
10826
10827         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
10828         on targets which need more than one insn for a compare/cbranch
10829         operation.
10830
10831 2000-07-31  Jim Wilson  <wilson@cygnus.com>
10832
10833         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
10834         when computing offset.
10835
10836 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
10837
10838         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
10839
10840 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
10841
10842         * flow.c (clear_log_links): Nuke global_live_at_start and
10843         global_live_at_end data, since if the log_links stuff is invalid
10844         so is global_live_at_*.
10845
10846 2000-07-31  Richard Henderson  <rth@cygnus.com>
10847
10848         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
10849
10850 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
10851
10852         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
10853         (_cpp_get_token): Don't macro expand a just pasted token if it
10854         was pasted at no_expand_level.
10855
10856 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10857
10858         * cppmacro.c (find_param, count_params, save_expansion):
10859         Permit 'defined' as a macro parameter name.
10860
10861 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10862
10863         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
10864         xcpp to cpp throughout.
10865         (native): Remove unnecessary dependency on cpp.
10866
10867         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
10868         tradcpp to tradcpp0.
10869         (.i spec): Add missing output-file spec to cc1 command line.
10870         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
10871
10872 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
10873
10874         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
10875         (implicit_decl_warning): New function.
10876         (implicitly_declare): Use it.
10877         * c-typeck.c (build_external_ref): Use implicit_decl_warning
10878         to complain about implicit decls of builtins.
10879
10880         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
10881         based on pedantic && flag_isoc99, if not already set.
10882         * c-tree.h: Declare mesg_implicit_function_declaration.
10883         Prototype implicit_decl_warning.
10884
10885 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
10886
10887         * Makefile.in (ssa.o): Updated header files in dependences.
10888         * basic-block.h: Added compute_immediate_postdominators declaration.
10889         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
10890         definition.
10891         * flow.c (compute_immediate_dominators): Updated comment.
10892         (compute_immediate_postdominators): Added definition.
10893         * rtl.h (HARD_REGISTER_P): Added definition.
10894         * ssa.c: Include additional header files.
10895         (assert): Added definition.
10896         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
10897         include select hard registers.
10898         (ssa_rename_to_insert): Likewise.
10899         (ssa_rename_from_initialize): Likewise.
10900         (ssa_rename_from_lookup): Likewise.
10901         (original_register): Likewise.
10902         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
10903         include select hard reigsters.
10904         (ssa_rename_from_traverse): Likewise.
10905         (ssa_rename_from_free): Likewise.
10906         (ssa_rename_from_print): Likewise.
10907         (ssa_rename_from_print_1): Likewise.
10908         (ssa_rename_from_hash_function): Likewise.
10909         (ssa_rename_from_equal): Likewise.
10910         (ssa_rename_from_delete): Likewise.
10911         (simplify_to_immediate_dominators): Removed in favor of
10912         flow.c:compute_immediate_dominators.
10913         (find_evaluations_1): Modified to work with hard registers.
10914         (insert_phi_node): Likewise.
10915         (insert_phi_nodes): Likewise.
10916         (struct rename_set_data): Updated prev_reg comment.
10917         (create_delayed_rename): Modified to work with hard registers.
10918         (RENAME_NO_RTX): Updated comment.
10919         (apply_delayed_renames): Modified to work with hard registers.
10920         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
10921         (rename_block): Updated to use revised ssa_rename_to interface.
10922         (rename_registers): Updated to use revised ssa_rename_to and
10923         ssa_rename_from interface.
10924         (convert_to_ssa): Revised to use compute_immediate_dominators and
10925         deal with hard registers.
10926         (make_regs_equivalent_over_bad_edges): Modified to work with hard
10927         registers.  Added check for illegal unification of hard register.
10928         (make_equivalent_phi_alternatives_equivalent): Modified to work
10929         with hard registers.
10930         (compute_conservative_reg_partition): Likewise.
10931         (coalesce_if_unconflicting): Modified to work with hard registers
10932         and check for conflicting hard registers.
10933         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
10934         registers.
10935         (rename_equivalent_regs_in_insn): Modified to work with hard
10936         registers.
10937         (record_canonical_element_1): Added definition.
10938         (check_hard_regs_in_partition): Added definition.
10939         (convert_from_ssa): Added data structure deallocation and check
10940         for illegal hard register unification.
10941         (conflict_hard_regs_p): Added definition.
10942         * toplev.c (rest_of_compilation): Added comment.
10943
10944 2000-07-31  Anthony Green  <green@redhat.com>
10945
10946         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
10947
10948 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
10949
10950         * builtins.c (expand_builtin_apply): Don't defer pop during
10951         argument setup.
10952
10953 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10954
10955         * calls.c (combine_pending_stack_adjustment_and_call): Only use
10956         preferred_unit_stack_boundary when it is > 1.
10957
10958 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
10959
10960         * c-common.c (init_function_format_info): Add C99 format functions
10961         in C99 mode.
10962
10963         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
10964         void' or 'register void' as being the special case of 'void' alone
10965         in a parameter list.
10966
10967         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
10968         discarding qualifiers into a plain warning.
10969
10970 2000-07-31  Kazu Hirata  <kazu@hxi.com>
10971
10972         * combine.c: Fix formatting.
10973
10974         * h8300.md: Fix formatting.
10975
10976         * local-alloc.c: Fix formatting.
10977
10978         * h8300.c (get_shift_alg): Remove the variable alg.
10979         (emit_a_shift): Rearrange code to improve readability.
10980
10981         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
10982
10983         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
10984         HImode on all architectures and a combination of HImode and SImode
10985         on H8/300H and H8/S.
10986
10987         * h8300.c (split_adds_subs): Rearrange code for conciseness.
10988
10989 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10990
10991         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
10992         in my last checkin.
10993
10994 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
10995
10996         * recog.c (extract_insn): Set operand_mode according to
10997         operand if match_operand is VOIDmode.
10998
10999 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11000
11001         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
11002
11003 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
11004
11005         * c-parse.in (extdefs): Call ggc_collect between external
11006         definitions.
11007
11008 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
11009             Richard Henderson  <rth@cygnus.com>
11010
11011         * Makefile.in (OBJS): Add doloop.o.
11012         * doloop.c: New file.
11013
11014         * final.c (insn_current_reference_address): Return 0 before final.
11015         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
11016         * jump.c (any_uncondjump_p): Likewise.
11017         * loop.c (indirect_jump_in_function): Make static.
11018         (strength_reduce): Call doloop_optimize.
11019         (insert_bct, instrument_loop_bct): Remove.
11020         * loop.h (doloop_optimize): Prototype.
11021         * recog.c (split_all_insns): Split all INSN_P.
11022         * toplev.c (flag_branch_on_count_reg): Default on.
11023
11024         * config/c4x/c4x.c (c4x_optimization_options): Don't set
11025         flag_branch_on_count_reg.
11026         * config/i386/i386.c (override_options): Likewise.
11027         * config/rs6000/rs6000.c (optimization_options): Likewise.
11028
11029         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
11030         (doloop_end): New.
11031         (dbra_ge): Remove, as well as all it's splitters.
11032
11033         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
11034         (doloop_end): New.
11035
11036         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
11037         (ia64_register_move_cost): Declare.
11038         * config/ia64/ia64.c (ar_lc_reg_operand): New.
11039         (struct ia64_frame_info): Add ar_size.
11040         (ia64_compute_frame_size): Set it.
11041         (save_restore_insns): Save and restore ar.lc.
11042         (ia64_register_move_cost): New, moved from header file.  Handle
11043         application registers.
11044         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
11045         (emit_insn_group_barriers): Special case doloop_end_internal.
11046         (ia64_epilogue_uses): Mark ar.lc live at end.
11047         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
11048         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
11049         (FIRST_PSEUDO_REGISTER): Make room.
11050         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
11051         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
11052         (REG_ALLOC_ORDER): Update.
11053         (HARD_REGNO_MODE_OK): Update.
11054         (REGISTER_NAMES): Update.
11055         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
11056         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
11057         (REGNO_REG_CLASS): Update.
11058         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
11059         (REGISTER_MOVE_COST): Move out of line.
11060         (PREDICATE_CODES): Update.
11061         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
11062         (addsi3_plus1_alt, adddi3_plus1_alt): New.
11063         (shladd_elim splitter): Allow constants in the predicate.
11064         (doloop_end, doloop_end_internal): New.
11065
11066 2000-07-30  Richard Henderson  <rth@cygnus.com>
11067
11068         * genattrtab.c (struct insn_def): Add lineno member.
11069         (struct insn_ent): Likewise.
11070         (struct attr_desc): Likewise.
11071         (struct delay_desc): Likewise.
11072         (struct function_unit_op): Likewise.
11073         (struct function_unit): Likewise.
11074         (check_attr_value): Use message_with_line.
11075         (check_defs): Likewise.
11076         (expand_units): Likewise.
11077         (check_attr_test): Take a lineno argument.
11078         (gen_attr): Likewise.
11079         (gen_insn): Likewise.
11080         (gen_delay): Likewise.
11081         (gen_unit): Likewise.
11082         (main): Give it to them.
11083         (convert_set_attr_alternative): Take an insn_def argument
11084         instead of num_alt and insn_index.
11085         (convert_set_attr): Likewise.
11086         (write_test_expr): Protect INSN_ADDRESSES load
11087         with INSN_ADDRESSES_SET_P.
11088
11089 2000-07-30  Richard Henderson  <rth@cygnus.com>
11090
11091         * flow.c (init_propagate_block_info): Use pc_set.
11092
11093 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11094
11095         * i386.md (*lea_general_[123]) New insns and splits.
11096         (addsi3 to lea splitter): Handle other modes too.
11097         (shlsi3 to lea splitter): Likewise.
11098         (addhi_1_lea, shlhi_1_lea): New patterns.
11099         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
11100
11101 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11102
11103         * recog.c (general_operand, nonimmediate_operand): Accept
11104         any mode for VOIDmode CONSTANT_P operands.
11105
11106 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11107
11108         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
11109         instead of replace_rtx.
11110         * recog.c (validate_replace_rtx_subexp): New function.
11111         * recog.h (validate_replace_rtx_subexp): Declare.
11112
11113 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11114
11115         * combine.c (simplify_set, make_extraction, make_compound_operation
11116         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
11117         as force_to_mode argument.
11118
11119 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11120
11121         * combine.c (if_then_else_cond): Be sure that mode fits in
11122         HOST_WIDE_INT.
11123
11124 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11125
11126         * combine.c (record_promoted_value):  Allow bitsize of mode
11127         to be equivalent to HOST_BITS_PER_WISE_INT.
11128
11129 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11130
11131         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
11132         Do not call gen_mode_alignment when mode is BLKmode.
11133
11134 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11135
11136         * loop.c (express_from_1): Fix call of simplify_gen_binary.
11137
11138 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11139
11140         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
11141         VOIDmode implies both operands to be VOIDmode.
11142         (simplify_ternary_operation): Compute properly the mode of comparison.
11143         * combine.c (combine_simplify_rtx): Likewise.
11144
11145 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
11146
11147         * basic-block.h (struct loops): New field rc_order.
11148         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
11149         (flow_loops_free): Free rc_order.
11150         (flow_depth_first_order_compute): New parameter rc_order.
11151         (flow_loops_find): Allocate rc_order and swap usage with
11152         dfs_order.
11153
11154 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11155            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11156
11157         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
11158         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
11159         (nodb_call, return_from_epilogue): Likewise.
11160         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
11161         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
11162         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
11163         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
11164         (c4x_valid_type_attribute_p): Likewise.
11165         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
11166         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
11167
11168 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11169
11170         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
11171         and loadhi_big_constant if applicable.
11172         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
11173         and add new splitter.s
11174
11175 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11176
11177         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
11178
11179 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11180
11181         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
11182
11183 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11184
11185         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
11186
11187 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11188
11189         * config/c4x/libgcc.S (divqf3): Improve accuracy.
11190
11191 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
11192
11193         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
11194         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
11195         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
11196         (get_prev_bb_note): Likewise.
11197         (remove_scope_notes): Likewise.
11198         * flow.c (commit_one_edge_insertion): Likewise.
11199         (merge_blocks_nomove): Likewise.
11200         (verify_flow_info): Likewise.
11201         * gcse.c (insert_insn_end_bb): Likewise.
11202         * reg-stack.c (emit_swap_insn): Likewise.
11203         * ssa.c (first_insn_after_basic_block_note): New function.
11204         (insert_phi_node): Use it.
11205         (rename_block): Likewise.
11206         (eliminate_phi): Likewise.
11207         (make_regs_equivalent_over_bad_edges): Likewise.
11208         (make_equivalent_phi_alternatives_equivalent): Likewise.
11209         (for_each_successor_phi): Likewise.
11210         (convert_from_ssa): Modify phi-node deletion algorithm.
11211
11212 2000-07-29  Andreas Jaeger  <aj@suse.de>
11213
11214         * configure.in (mips*-*-linux*): Use mips*el to check for little
11215         endian MIPS, add tmake_file.
11216
11217         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
11218         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
11219         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
11220
11221 2000-07-28  Richard Henderson  <rth@cygnus.com>
11222
11223         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
11224         Sign extend mode size before negating.
11225
11226 2000-07-28  Richard Henderson  <rth@cygnus.com>
11227
11228         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
11229
11230 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
11231
11232         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
11233         (cse_insn): Likewise.
11234         (addr_affects_sp_p): Likewise.
11235         * expr.c (move_by_pieces): Likewise.
11236         (clear_by_pieces): Likewise.
11237         * gcse.c (oprs_unchanged_p): Likewise.
11238         * haifa-sched.c (sched_analyze_2): Likewise.
11239         * recog.c (offsettable_address_p): Likewise.
11240         * regclass.c (record_address_regs): Likewise.
11241         * reload.c (find_reusable_reload): Likewise.
11242         (push_reload): Likewise.
11243         (operands_match_p): Likewise.
11244         (decompose): Likewise.
11245         (find_reloads_address_1): Likewise.
11246         (find_inc_amount): Likewise.
11247         * reload1.c (elimination_effects): Likewise.
11248         * resource.c (mark_set_resources): Likewise.
11249         * flow.c (attempt_auto_inc): New function; mostly broken out
11250         of find_auto_inc.
11251         (find_auto_inc): Split into two functions and enhanced to
11252         generate POST_MODIFY.
11253         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
11254         * rtl.h (count_all_occurrences):  Declare.
11255         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
11256         defined.
11257         * rtlanal.c (count_all_occurrences): New function.
11258         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
11259         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
11260
11261         * config/ia64/ia64-protos.h (destination_operand): Declare.
11262         * config/ia64/ia64.c (destination_operand): New function.
11263         (ia64_print_operand): Handle POST_MODIFY.
11264         (rtx_needs_barrier): Likewise.
11265         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
11266         (HAVE_POST_MODIFY_REG): Define to 1.
11267         (MAX_REGS_PER_ADDRESS): Change to 2.
11268         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
11269         (LEGITIMATE_ADDRESS_REG): New helper macro.
11270         (LEGITIMATE_ADDRESS_DISP): Likewise.
11271         (PREDICATE_CODES): Add entry for destination_operand.
11272         * config/ia64/ia64.md (all mov patterns): Use destination_operand
11273         predicate for operand 0.
11274
11275 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11276
11277         * dwarf2out.c: Indent #error directive.
11278
11279         * gbl-ctors.h: Fix typo in comment.
11280         (__do_global_ctors): Prototype.
11281
11282         * gcse.c (record_one_set, pre_delete): Remove unused variables.
11283
11284         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
11285         (print_operand): Initialize variable `t'.
11286
11287 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
11288
11289         * config/arm/arm.md ("call_value"): removed constraints.
11290         Constraints are ignored in expanders.
11291         (*call_value_reg): split =rf into various constraints.
11292         (*call_value_mem): same
11293         (*call_value_symbol): same
11294         (*sibcall_value_insn): same
11295
11296 2000-07-28  Philipp Thomas  <pthomas@suse.de>
11297
11298         * install.texi (--enable-nls): Change the description of the NLS
11299         related configure options to match the current state.
11300         (--with-included-gettext): Likewise.
11301         (--enable-maintainer-mode): New description added.
11302         * extend.texi (-fstrict-prototype): Add missing '.'.
11303
11304 2000-07-27  Jim Wilson  <wilson@cygnus.com>
11305
11306         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
11307         DECL_INITIAL (decl) == NULL_TREE.
11308
11309 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
11310
11311         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
11312         on insn-attr.h with it.
11313         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
11314         * insn-addr.h: New header.
11315         (insn_addresses_): Renamed from insn_addresses.
11316         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
11317         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
11318         INSN_ADDRESSES_NEW): New macros.
11319         * genattrtab.c (write_test_expr): Use new macros.
11320         * final.c (insn_addresses, init_insn_lengths): Likewise.
11321         (align_fuzz, shorten_branches): Likewise.
11322         (final): Likewise.  Do not reject new insns if their addresses
11323         have been added to INSN_ADDRESSES.
11324         * config/arm/arm.c, config/avr/avr.c: Use new macros.
11325         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
11326         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
11327         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
11328         * config/sh/sh.c: Likewise.
11329         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
11330
11331         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
11332
11333 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
11334
11335         * gcc.c (struct prefix_list): Add member priority.
11336         (enum path_prefix_priority): Declare.
11337         (add_prefix): Replace ``first'' with ``priority''.  Append new
11338         entry but keep list in priority order.
11339         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
11340         PREFIX_PRIORITY_LAST to add_prefix.
11341         (process_command): Move include kludge - foo/stageN - to before
11342         foo/include.
11343
11344 2000-07-27  Jason Merrill  <jason@redhat.com>
11345
11346         * dwarf2out.c (gen_typedef_die): Abort if we get identical
11347         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
11348
11349 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
11350
11351         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
11352         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
11353
11354 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
11355
11356         * c-decl.c (finish_function): Don't treat 'main' specially unless
11357         flag_hosted.  In C99 mode, return 0 from 'main' unless
11358         DEFAULT_MAIN_RETURN is otherwise defined.
11359
11360         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
11361         parameters defaulting to int in an old-style function definition.
11362
11363 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11364
11365         * c-parse.in (string): For -Wtraditional, warn about string
11366         concatenation only once per line.
11367
11368 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
11369
11370         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
11371         for HI-UX/WE2 systems.
11372
11373 2000-07-24  Bruce Korb  <bkorb@gnu.org>
11374
11375         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
11376         defining the __xxx_TYPE__ macros.
11377         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
11378         * fixincl/fixlib.h: don't need to include "tm.h" anymore
11379         * fixincl/inclhack.def(type_map): now obsolete
11380
11381 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
11382
11383         * cpp.texi: Append a trailing full-stop to xrefs where needed.
11384
11385 2000-07-26  Dave Pitts  <dpitts@cozx.com>
11386
11387         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
11388         routine constants.
11389         (mvs_hash_alias): New function.
11390         (mvs_add_alias): Change argument spacing.
11391         (mvs_need_alias): Change aliasing criteria. Added documentation.
11392         (mvs_get_alias): Change to use hashed name. The hashed name prevents
11393         CSECT name collisions.
11394         (mvs_check_alias): Likewise.
11395         (handle_pragma): Change documentation.
11396         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
11397         mode from SImode to DImode.
11398         (iorhi3): Changed LTORG size for insn.
11399
11400 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
11401
11402         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
11403         mem if the address is a mode_dependent_address_p.
11404
11405 2000-07-26  Kazu Hirata  <kazu@hxi.com>
11406
11407         * h8300.c (print_operand): Print ":8" when the 'R' operand is
11408         suitable for 8-bit absolute.
11409         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
11410         (OK_FOR_U): Add a case for the 8-bit constant address on the
11411         H8/300H.
11412
11413 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
11414
11415         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
11416         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
11417         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
11418         lack of implemented alignment.
11419
11420 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
11421
11422         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
11423         cross-compiling between 64-bit and 32-bit machines.
11424
11425 2000-07-27  Richard Henderson  <rth@cygnus.com>
11426
11427         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
11428         (movhicc_astep, movhi_internal_astep): New.
11429         (movsicc_astep, movsi_internal_astep): New.
11430         (movdicc_astep, movdi_internal_astep): New.
11431         (movsfcc_astep, movsf_internal_astep): New.
11432         (movdfcc_astep, movdf_internal_astep): New.
11433         (movxfcc_astep, movxf_internal_astep): New.
11434         (cmovdi_internal_astep, cmovsi_internal_astep): New.
11435         Unify the cmov[ds]i splitters.
11436
11437 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
11438
11439         * real.c (asctoeg): Rename `error' label to unexpected_char_error
11440
11441 2000-07-26  Nick Clifton  <nickc@cygnus.com>
11442
11443         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
11444         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
11445
11446         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
11447         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
11448
11449 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
11450
11451         * c-decl.c (finish_enum): Convert enumerations that fit in an
11452         `int' to `int'.
11453         (build_enumerator): In pedantic mode, cast to `int' those that
11454         don't.
11455
11456 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
11457
11458         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
11459
11460 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11461
11462         * sh.md (cmpgtdi_t): Must be split.
11463         (cmpgtdi_t+1): New splitter.
11464
11465 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
11466
11467         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
11468         warnings for indented directives even if we are skipping.
11469
11470 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
11471
11472         * invoke.texi (strict-prototypes): Remove.
11473         * extend.texi (Deprecated Features): Add strict-prototypes.
11474         (Backwards Compatibility): New node.
11475
11476 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
11477
11478         * config/i386/i386.md (andsi_1+1): Allow HImode.
11479         (andsi_1+2): Require q_regs_operand.
11480
11481 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
11482
11483         * config/i386/i386.md (call_pop): Check operands[0],
11484         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11485         (call): Likewise.
11486         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
11487         (call_value): Likewise.
11488
11489 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
11490
11491         * toplev.c (pipe_closed): Delete.
11492         (crash_signal): New.  Generate ICE for a fatal signal.
11493         (float_signal): Call crash_signal outside a float-handler
11494         block, not abort.
11495         (main): Install crash_signal as handler for core-dumping signals.
11496
11497 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
11498
11499         * rs6000.c (print_operand, case 'T'): New case.
11500
11501         * rs6000.md (call_indirect_aix32): Convert to expander of
11502         scheduled instructions.
11503         (call_indirect_aix64): Likewise.
11504         (call_value_indirect_aix{32,64}): Likewise.
11505         (call, call_value): Invoke expanders for AIX.  Fall through to
11506         matchers for SysV.
11507         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
11508         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
11509         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
11510         only "g" constraint.
11511         (call_nonlocal_aix64): Likewise.
11512         (call_value_nonlocal_aix{32,64}): Likewise.
11513         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
11514         operands.
11515         (call_value_nonlocal_sysv): New pattern.
11516         (indirect_jump{si,di}): Use new 'T' modifier.
11517         (tablejump{si,di} matchers): Likewise.
11518         (return_internal_{si,di}): Likewise.
11519         (return_eh_{si,di}): Likewise.
11520
11521 2000-07-24  Richard Henderson  <rth@cygnus.com>
11522
11523         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
11524         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
11525         * config/ia64/ia64.md (movdi_internal): Use it.
11526
11527 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
11528
11529         * cppexp.c: Warn about unary + if -Wtraditional.
11530         * cpplex.c (lex_line): Always set BOL on the first token of a line.
11531
11532 2000-07-24  Michael Meissner  <meissner@redhat.com>
11533
11534         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
11535         unsupported macro.
11536
11537 2000-07-24  Nick Clifton  <nickc@cygnus.com>
11538
11539         * config/arm/arm.c (emit_multi_reg_push): Generate a
11540         REG_FRAME_RELEATED_NOTE that is compatable with the code in
11541         dwarf2out_debug_frame_expr.
11542
11543 2000-07-24  Jason Merrill  <jason@redhat.com>
11544
11545         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
11546         UNALIGNED_INT_ASM_OP.
11547         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
11548         a location expression.
11549         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
11550         assume indirect access if we're saving the CFA address exactly.
11551
11552         * Makefile.in (bootstrap): Move -BstageN/ to the end.
11553
11554 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
11555
11556         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
11557         as well.
11558
11559 2000-07-24  Michael Meissner  <meissner@redhat.com>
11560
11561         * invoke.texi (D30V Options): Add d30v options.
11562
11563 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
11564
11565         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
11566         needed by our gcse pass anymore.
11567         (free_pre_mem): Corresponding changes.
11568         (compute_pre_data): Do not call compute_transpout anymore.
11569
11570         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
11571         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
11572         changes.
11573
11574         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
11575         (compute_pre_data): Do it here instead.
11576
11577         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
11578         'temp_bitmap'.
11579         (pre_delete): Corresponding changes.
11580
11581 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
11582
11583         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
11584         to figure out whether or not a variable has already been emitted.
11585
11586 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
11587
11588         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
11589         instead of gen_call.
11590
11591 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
11592
11593         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
11594
11595 2000-07-23  Kazu Hirata  <kazu@hxi.com>
11596
11597         * h8300.c: Fix formatting.
11598
11599 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
11600
11601         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
11602         for `long' switch expression into a plain warning.
11603
11604         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
11605         (yylex): Don't pedwarn for "inline" in C99 mode.
11606
11607         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
11608         with %p.
11609         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
11610         ggc_alloc): Likewise.
11611         * bb-reorder.c (dump_scope_forest_1): Likewise.
11612
11613 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
11614
11615         * reload.c (find_reloads_toplev): Add new parameter
11616         "address_reloaded".
11617         (find_reloads): Add new parameter to find_reloads_toplev calls.
11618
11619 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
11620
11621         * collect2.c (main): Typo fixed.
11622         * diagnostic.c: Typo fixed.
11623         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
11624         * eh-common.h: Typo fixed.
11625         * emit-rtl.c (start_sequence): Typo fixed.
11626         * flow.c (find_label_refs): Typo fixed.
11627         (calculate_global_regs_live): Typo fixed.
11628         (mark_regno_cond_dead): Typo fixed.
11629         (create_edge_list): Typos fixed.
11630         (verify_edge_list): Typo fixed.
11631         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
11632         * loop.c (strength_reduce): Typo in function name fixed.
11633         * rtl.h: Added comments.  Typo in function name fixed.
11634         * rtlanal.c: Typo in function name fixed.
11635         (insn_dependant_p): Rename to ...
11636         (insn_dependent_p): ... this.
11637         (computed_jumo_p): Typo fixed.
11638
11639 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11640
11641         * system.h (__FUNCTION__): Wrap definition in #ifndef.
11642
11643 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
11644
11645         * rs6000.h (SIZE_TYPE): Define.
11646
11647 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
11648
11649         * ssa.c (rename_insn_1): Don't rename registers that are
11650         CLOBBERed.
11651
11652 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
11653
11654         * diagnostic.c (trim_filename, fancy_abort): Moved here from
11655         rtl.c.
11656         (fatal_function, set_fatal_function): Removed.
11657         (fatal): Don't prepare for or call the fatal_function.
11658         (diagnostic_lock, error_recursion): New.
11659         (diagnostic_for_decl, report_diagnostic): Guard against
11660         re-entering the error reporting routines.
11661         (fancy_abort): Assume function is not NULL.
11662
11663         * errors.c (fancy_abort): New.  Assume function is not NULL.
11664         * tradcpp.c (fancy_abort): Assume function is not NULL.
11665
11666         * system.h: Provide default definition of __FUNCTION__.
11667         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
11668         Always use __FUNCTION__ in definition of abort.
11669         * tree.h: Likewise.
11670         * varray.h: Likewise.
11671         * toplev.h: Likewise.  Don't prototype set_fatal_function.
11672
11673 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
11674
11675         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
11676         in 64-bit mode.
11677         * glimits.h: Don't do #if defined for ARCH_PPC.
11678
11679         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
11680         constants of size no larger than a pointer should go in the TOC.
11681         Add 'MODE' parameter.
11682         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
11683         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
11684         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
11685         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
11686         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
11687         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
11688         (rs6000_legitimize_address): Likewise.
11689         (rs6000_emit_move): Likewise.
11690         (rs6000_select_rtx_section): Likewise.
11691         (output_toc): Deal properly with outputting small constants like
11692         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
11693         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
11694         MODE parameter.  Put small constants in the TOC.
11695
11696         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
11697         easy in SImode.
11698         (rs6000_emit_move): When reload calls us with an illegitimate
11699         address, exit early.  Move the change_address calls to one place
11700         at the end of the routine.  Merge the SImode and DImode expanders.
11701         When called by reload to put an integer into a FP register, force
11702         it to memory.
11703
11704         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
11705         field.
11706         (rs6000_hash_constant): Hash mode too.
11707         (toc_hash_function): Allow for key_mode.
11708         (toc_hash_eq): Structures are different if key_mode differs.
11709         (output_toc): Add 'mode' parameter.  Save key_mode.
11710         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
11711         Pass 'mode' parameter.
11712         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
11713
11714         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
11715         for vtable references.
11716
11717         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
11718         choice, don't put integer values in FP regs.
11719
11720 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
11721
11722         * flow.c (verify_flow_info): Revamp code to verify that the
11723         head and end of each basic block are in the insn chain.
11724
11725 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
11726
11727         * gcse.c (record_one_set): Prepend instead of append onto
11728         reg_set_table, making it O(n) instead O(n^2).
11729         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
11730         Use a queue instead of a stack as worklist.
11731
11732 2000-07-20  Kazu Hirata  <kazu@hxi.com>
11733
11734         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
11735         * h8300.h (OK_FOR_T): New.
11736         (EXTRA_CONSTRAINT): Support OK_FOR_T.
11737         * h8300.md: Use inc/dec.[wl] for increment/decrement
11738         by 1 and 2 in HI and SI modes.
11739
11740 2000-07-20  Jim Wilson  <wilson@cygnus.com>
11741
11742         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
11743         larger than 14 bits.
11744
11745 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
11746
11747         * cppmacro.c (CAN_PASTE_AFTER): New macro.
11748         (count_params): Don't set GNU_REST_ARGS on anything.
11749         (save_expansion): Set PASTE_LEFT only on tokens for which
11750         CAN_PASTE_AFTER is true, or which are named operators.
11751
11752         * cpplex.c (parse_args): Distinguish between a rest argument
11753         given one empty argument, and a rest argument given zero arguments.
11754         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
11755         deletion of previous token based on that.
11756         (get_raw_token): Flatten some control structure.
11757
11758         * cpplib.h (CPP_LAST_EQ): Correct.
11759         (VOID_REST): New token flag.
11760         (GNU_REST_ARGS): Delete.
11761
11762         * tradcpp.c (main): Don't munge -D options.
11763         (make_definition): Bring -D handling in line with cpplib.
11764         (do_define): Strip all leading whitespace from macro definitions.
11765
11766 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
11767
11768         * Makefile.in (tradcpp): Depend on intl.o and version.o.
11769
11770 2000-07-20  Bruce Korb  <bkorb@gnu.org>
11771
11772         * fixincl/check.tpl: strip the platform specific types before testing
11773         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
11774         * fixincl/fixincl.tpl: use platform specific types
11775         * fixincl/fixlib.h: include the platform specific types
11776         * fixincl/inclhack.def(gnu_types): don't supply the types
11777         * fixincl/fixincl.x: regen
11778
11779 2000-07-19  Jim Wilson  <wilson@cygnus.com>
11780
11781         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
11782         GR_REGS.
11783
11784 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
11785
11786         * tradcpp.c (rescan): Do not recognize directives when the #
11787         is indented.
11788
11789 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
11790
11791         Implement C++ named operators.
11792
11793         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
11794         of operators allowed in #if and having an _EQ variant.  Add
11795         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
11796         (cpp_token flags): Add NAMED_OP.
11797         (enum node_type): Add T_OPERATOR.
11798         (struct cpp_hashnode): Add code slot to value union.
11799         * cpphash.h (spec_nodes): Remove n_defined.
11800
11801         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
11802         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
11803         (is_macro_disabled): Tweak error messages.
11804
11805         * cpplib.c (get_define_node): Disallow all named operators as
11806         macro names.  Tweak error messages.
11807         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
11808
11809         * cppinit.c (builtin_array): Add entries for the named operators.
11810         * cppexp.c (lex): Check for CPP_DEFINED token.
11811         (priority table): Add entries for CPP_MIN and CPP_MAX.
11812         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
11813
11814 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
11815
11816         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
11817         larger than the array of cuids.
11818         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
11819         cuids.
11820
11821 2000-07-19  Bruce Korb  <bkorb@gnu.org>
11822
11823         * fixinc/fixincl.c:  Convert to using a table of environment variables
11824         and activate the auto-edit marker on the fixed output files.
11825         * fixinc/fixlib.h:  Define the environment table
11826         * fixinc/fixincl.sh: export the ${INPUT} dir
11827         * fixinc/check.tpl: likewise
11828
11829 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
11830
11831         * gcc.c (.h spec): Fix typo.
11832
11833 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
11834
11835         * Makefile.in: Fix tradcif.c path.
11836
11837 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
11838
11839         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
11840           macros, not five.
11841
11842         * cpphash.h (TOKEN_NAME): New macro.
11843         (_cpp_spell_operator): Deleted.
11844         (token_spellings): Now _cpp_token_spellings.
11845
11846         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
11847         * cpplex.c: Use OP and TK macros when expanding the
11848         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
11849         store the stringification of the enumeration name (CPP_CHAR,
11850         etc.) in the name slot of token_spellings.
11851         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
11852         token_spellings directly.
11853         * cpplib.c: Use TOKEN_SPELL.
11854
11855         * cpplex.c (_cpp_push_token): If the token being pushed back
11856         is the previous token in this context, just subtract one from
11857         context->posn.
11858         * cppmacro.c (save_expansion): Clear aux field when storing a
11859         placemarker.
11860
11861 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
11862
11863         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
11864         buffer, provided it is not NULL.
11865
11866 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
11867
11868         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
11869         case of invalid volatile re-declaration.
11870
11871 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
11872
11873         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
11874         (expand_call): Adjust caller.
11875
11876 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
11877
11878         * diagnostic.h (report_diagnostic): Change prototype.
11879
11880         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
11881         diagnostic_for_decl):  Change prototype.
11882         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
11883         error, warning, error_with_file_and_line,
11884         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
11885         Adjust call to report_diagnostic, diagnostic_for_decl.
11886         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
11887         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
11888
11889         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
11890         varaible argument list.
11891
11892 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
11893
11894         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
11895         moved to cppmacro.c.
11896         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
11897         dump_hash_helper): Delete.
11898         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
11899         cpp_forall_identifiers): New. Implement specialized version of
11900         Vlad's expandable hash table.
11901         (cpp_lookup): Use new functions.
11902         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
11903         implementation.
11904         * cppmacro.c: New file.
11905         * cppinit.c (dump_macros_helper): New.
11906         (cpp_finish): Iterate over the identifier table directly.
11907         * cpplex.c (parse_name): Calculate the hash of the identifier
11908         while we scan it.  Use _cpp_lookup_with_hash when we can.
11909
11910         * cpphash.h: Update prototypes.
11911         (xcnewvec, HASHSTEP): New helper macros.
11912         * cpplib.h: Update prototypes.
11913         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
11914         (cppmacro.o): New rule.
11915         (cpphash.o): Update deps.
11916
11917         * cppmain.c: Do not set pfile->printer if no_output is on.
11918
11919 2000-07-15  Neil Booth  <neilb@earthling.net>
11920
11921         * cpplib.c: Change all directive-handler functions to return
11922         void, not int.
11923         * cpphash.h: Update typedefs.
11924
11925 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
11926
11927         * configure: Regenerate.
11928
11929         * extend.texi (Extended Asm): Mention that a memory clobber
11930         does not count as a side-effect.
11931
11932         * unroll.c (copy_loop_body): Fix one instance of using host
11933         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
11934         cross-compile.
11935
11936         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
11937
11938 2000-07-17  Richard Henderson  <rth@cygnus.com>
11939
11940         * config/ia64/ia64.md (movdi): Split out load address code.
11941         New post-reload splitter for symbolic operands.
11942         (movdi_internal): Abort if we didn't split symbolic operands
11943         when we should have.
11944         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
11945         (ia64_reorg): Split insns when not optimizing.
11946         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
11947
11948 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
11949
11950         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
11951         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
11952
11953 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
11954
11955         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
11956
11957 2000-07-17  Jason Merrill  <jason@redhat.com>
11958
11959         * Makefile.in (clean): Remove libgcc directory.
11960
11961         * configure.in (-Wno-long-long check): Use higher-level macros.
11962
11963 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
11964
11965         * simplify-rtx.c (simplify_binary_operation): Recognize
11966            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
11967         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
11968            a CONST_INT, it will always be zero.
11969
11970 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
11971
11972         * loop.c (check_dbra_loop) : Return if more than one condition is
11973         present to control the loop.
11974
11975 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
11976
11977         * mips.c (mips_expand_prologue): Don't calculate the last argument
11978         register unless we need it.  When we are calculating this, make
11979         sure FUNCTION_ARG is giving us a REG.
11980
11981 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
11982
11983         * flow.c (libcall_dead_p): Use single_set to verify the insn
11984         has only one set and get for analysis.
11985         (propagate_one_insn): Don't pass the PATTERN of the insn.
11986
11987 2000-07-17  Mark Klein <mklein@dis.com>
11988
11989          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
11990
11991 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
11992
11993         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
11994         * configure.in (TARGET_GETGROUPS_T): Evaluate.
11995         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
11996         of second argument of getgroups.
11997         * configure, config.in: Rebuilt.
11998
11999 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
12000
12001         * simplify-rtx.c (simplify_relational_operation): Two signed
12002         values with equal high words are less/greater than each other if
12003         their low words are less/greater when considered as unsigned.
12004
12005 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
12006
12007         * configure.in (vax-*-openbsd):  Change to new style configuration,
12008         add collect2/float_format information.
12009         * configure:  Rebuilt.
12010         * config/vax/openbsd1.h:  New.
12011         * config/vax/openbsd.h:  New.
12012         * config/vax/t-openbsd:  New.
12013
12014 2000-07-17  Chip Salzenberg  <chip@valinux.com>
12015
12016         * c-common.c (shorten_compare): Quiet warnings about unsigned
12017         comparisons with zero when they occur in a system header.
12018
12019 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
12020
12021         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
12022         update to describe current practice.
12023
12024         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
12025
12026         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
12027         references to C9X.  Change references to -fstd and -flang-isoc9x
12028         to refer to -std.
12029
12030         * c-common.c (scan_char_table): Allow "z" length modifiers on
12031         diouxXn formats.
12032         (check_format_info): Use TYPE_DOMAIN on the type matched against
12033         for "z" formats, to retrieve the language size_t rather than the
12034         internal one.
12035
12036         * c-common.c (check_format_info): Do not make a pedantic objection
12037         to the 'L' length modifier if used with a floating point type
12038         character.
12039
12040         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
12041         constants in C99 mode.
12042
12043 2000-07-17  Kazu Hirata  <kazu@hxi.com>
12044
12045         * h8300.md: Fix the format of mac.
12046         (movsi_h8300hs): Output a tab after stmac instead of a space.
12047
12048         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
12049         profitable adds/subs sequences.
12050
12051         * fold-const.c: Fix comment typos.
12052
12053 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
12054
12055         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
12056
12057 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12058
12059         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
12060
12061 2000-07-16  Neil Booth  <NeilB@earthling.net>
12062
12063         * cpplex.c: Update comments.
12064         * README.Portability: Small update.
12065
12066 2000-07-16  Neil Booth  <NeilB@earthling.net>
12067
12068         * README.Portability:  Small update.
12069
12070 2000-07-15  Richard Henderson  <rth@cygnus.com>
12071
12072         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
12073         * config/ia64/ia64.c (ia64_move_ok): New function.
12074         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
12075         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
12076
12077 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
12078
12079         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
12080         immediately following a paste operator.
12081         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
12082         (cpp_reader_init): Call it, if HOST_EBCDIC.
12083         (cpp_handle_options): Do not sort option list here.
12084         (handle_option): Rename to cpp_handle_option and export.
12085         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
12086         _cpp_get_token directly.
12087         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
12088         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
12089         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
12090         cpp_scan_line.
12091
12092 2000-07-15  Richard Henderson  <rth@cygnus.com>
12093
12094         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
12095         cast around an expression.  Tidy other unsigned tests.
12096
12097 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
12098
12099         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
12100         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
12101         (v_message_with_decl): Rename to ...
12102         (format_with_decl): ... this. Tweak
12103         (diagnostic_for_decl): New function.
12104         (fatal_io_error): Use verbatim in lieu of notice.
12105         (announce_function): Use verbatim.
12106         (default_print_error_function): Likewise.
12107         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
12108         infratructure.
12109
12110 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12111
12112         * mips.c (function_arg_pass_by_reference): Don't do automatic
12113         aggregate initialization.
12114         (machine_dependent_reorg): Initialize variable `mode'.
12115
12116         * mips.md (absdi2): Change variable `regno1' to unsigned int.
12117         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
12118         conflicts with sys/param.h macro of the same name.
12119         (reload_outdi): Likewise.
12120
12121 2000-07-15  Michael Meissner  <meissner@redhat.com>
12122
12123         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
12124         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
12125         create a new node instead.
12126
12127 2000-07-15  Neil Booth  <NeilB@earthling.net>
12128
12129         * README.Portability: Correct example about calling a function
12130         through a pointer to function.  Format wide paragraphs.
12131
12132 2000-07-15  Michael Meissner  <meissner@redhat.com>
12133
12134         * README.Portability: Update integer suffixes and function
12135         prototype sections.
12136
12137 2000-07-15  Neil Booth  <NeilB@earthling.net>
12138
12139         * README.Portability: Small update.
12140
12141 2000-07-15  Neil Booth  <NeilB@earthling.net>
12142
12143         * README.Portability: New file.
12144
12145 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
12146
12147         * INSTALL: Give special instructions for building GCC on Irix 6.
12148         * config/mips/x-iris6 (CC): Don't set it.
12149         (OLDCC): Likewise.
12150
12151 2000-07-14  Jason Merrill  <jason@redhat.com>
12152
12153         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
12154         register in the stack and later in another register, use the new
12155         register.
12156
12157 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
12158
12159         * config/mips/mips.md: (absdi2): Handle sign_extend for
12160         second operand.
12161
12162 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
12163
12164         * cpplib.c (do_pragma_dependency): Tidy warning messages.
12165
12166 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
12167
12168         * .cvsignore: Correct typo.
12169
12170 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
12171
12172         * .cvsignore: Add generated YACC files.
12173         * objc/.cvsignore: New file.
12174
12175 2000-07-14  Neil Booth  <NeilB@earthling.net>
12176
12177         * cpplex.c (adjust_column): New funcion.
12178         (skip_whitespace): Use it.
12179         (skip_block_comment): Use it, and warn about /*/* with
12180         -Wcomments.
12181
12182 2000-07-14  Neil Booth  <NeilB@earthling.net>
12183
12184         * cpphash.c (struct macro_info): Add new members.
12185         (_cpp_free_definition): Delete the macro directly.
12186         (count_params): Return void, with first token of
12187         expansion in struct macro_info on success.
12188         (parse_define): Return int.  Hoist syntax checking from
12189         save_macro_expansion.  Leave call to save_expansion to
12190         _cpp_create_definition.
12191         (alloc_macro): Needs just 2 arguments.
12192         (free_macro): Delete.
12193         (save_expansion): Don't perform syntax check.
12194         (_cpp_create_definition): Call save_expansion.
12195
12196 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12197
12198         * genrecog.c (write_header): Split long string.
12199
12200         * cpphash.c (macro_info): Don't use the `signed' keyword.
12201
12202         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
12203
12204 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
12205
12206         * calls.c (stored_args_map): New variable.
12207         (check_sibcall_argument_overlap_1): New.
12208         (check_sibcall_argument_overlap): New.
12209         (expand_call): Initialize stored_args_map.
12210         Call check_sibcall_argument_overlap.
12211
12212 2000-07-13  Bruce Korb  <bkorb@gnu.org>
12213
12214         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
12215         (emit_gnu_type): utility procedure for gnu_type_fix
12216         (gnu_type_fix): implement various pre-processor guards around
12217         standard types so these types can be defined over and over
12218         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
12219         types alluded to above will have GNU-compliant base types
12220         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
12221         * fixinc/inclhack.def: add test_text entries and utilize the new
12222         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
12223         * fixinc/fixincl.x: regenerate
12224
12225 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
12226
12227         * diagnostic.c (vline_wrapper_message_with_location,
12228         v_message_with_file_and_line, v_error_with_file_and_file,
12229         v_error_for_asm, v_warning_for_asm, vfatal,
12230         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
12231         vsorry, verror, vwarning, vpedwarn): Remove.
12232         (diagnostic_for_asm): New function.
12233         (pedwarn, error, warning, pedwarn_with_file_and_line,
12234         error_with_file_and_line, warning_with_file_and_line, sorry,
12235         error_for_asm, warning_for_asm, fatal): Reimplement.
12236         (finish_diagnostic): Clear diagnostic info as well.
12237
12238 2000-07-13  Neil Booth  <NeilB@earthling.net>
12239
12240         * c-common.h (flag_digraphs): New.
12241         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
12242         * c-lex.c (yylex): Use flag_digraphs to decide whether to
12243         honour digraphs.
12244
12245 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
12246
12247         * gcc.c (do_spec_1): Add new %B operator.
12248         (set_input): Prepare for %B.
12249
12250         (link_command_spec): Move up with the other tm.h-
12251         overrideable specs.  Factor out the portion conditional on
12252         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
12253         (struct compiler): Just have a single spec string.  All users
12254         updated.
12255         (default_compilers): Remove unnecessary braces.
12256         (static_specs): Update.
12257
12258         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
12259         named specs.
12260         (C and assembly specs): Use the new named specs, as appropriate.
12261
12262         * objc/lang-specs.h: Use the new named specs.
12263         Remove unnecessary braces.
12264
12265 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
12266
12267         * gcc.c (execute): If a subprocess gets a fatal signal, report
12268         strsignal() of the signal number, and ask for a bug report.
12269         Do not do this for SIGPIPE if there's already been an error.
12270
12271         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
12272         Delete pipe_closed.
12273
12274         * tradcif.c: Remove.
12275
12276 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
12277
12278         * final.c (profile_function): Do not emit profile counters in
12279         the data section, if NO_PROFILE_COUNTERS is defined.
12280         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
12281         FUNCTION_PROFILER.
12282
12283         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
12284         (FUNCTION_PROFILER): Just emit a call to mcount.
12285
12286 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
12287
12288         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
12289
12290         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
12291         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
12292         traditional, lang_chill, or lang_fortran.
12293
12294         * cppfiles.c: #undef strcmp to suppress warning about macros
12295         used without arguments.
12296         (_cpp_execute_include): Use f, not fname, in "No include path"
12297         error.
12298         (_cpp_pop_file_buffer): New function.
12299         * cpplib.c: Don't include <sys/mman.h>.
12300         (cpp_push_buffer): Set line_base and lineno in new buffer.
12301         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
12302
12303         * cpplex.c: Move all prototypes and structure declarations to the
12304         top of the file.  Properly parenthesise some macro arguments.
12305         (cpp_scan_line): New function.
12306         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
12307         don't need to walk up the stack counting.
12308
12309 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12310
12311         * c-common.c (combine_strings): Emit a pedantic warning when a
12312         string length is greater than the minimum ANSI C is required
12313         to support.
12314
12315 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
12316
12317         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
12318         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
12319
12320 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12321
12322         * c-decl.c (define_label): Warn about identifier conflicts with
12323         labels in traditional C.
12324
12325         * c-parse.in (unop +): Warn about the unary plus operator for
12326         traditional C.
12327
12328         * c-typeck.c (store_init_value): Warn about automatic aggregate
12329         initialization for traditional C.
12330
12331         * invoke.texi (-Wtraditional): Document new warnings.
12332
12333 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
12334
12335         * Makefile.in (c-errors.o): Fix thinko in dependency.
12336
12337 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
12338
12339         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
12340         -traditional, -ftraditional, or -traditional-cpp was given.
12341         Do not pass -traditional to the preprocessor.
12342         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
12343         preprocessor does it automatically.
12344         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
12345
12346         * ch/lang-specs.h: Always use tradcpp.  Do not pass
12347         -traditional, -trigraphs, or -pedantic to the preprocessor.
12348         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
12349         _LANGUAGE_FORTRAN.
12350
12351 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
12352
12353         * cppexp.c (LOGICAL): Delete macro.
12354         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
12355         and && directly.
12356
12357         * cpphash.c (HASHSIZE): Increase to 4096.
12358         (struct hashdummy): Add hash field.
12359         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
12360         the string values using memcmp.
12361         (cpp_lookup): Set dummy.hash.
12362
12363 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
12364
12365         * configure.in (m88k-openbsd): Express configuration using new fragment
12366         style.
12367         * configure: Rebuilt.
12368         * m88k/aout-dbx.h: New.
12369         * m88k/openbsd.h: New.
12370         * m88k/xm-openbsd.h: New.
12371
12372 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12373
12374         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
12375
12376 2000-07-12  Richard Henderson  <rth@cygnus.com>
12377
12378         * reload.c (push_secondary_reload): Make sure to add the new
12379         reload at the end, after acquiring secondary memory.
12380
12381 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12382
12383         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
12384
12385         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
12386         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
12387
12388         * c-parse.in (stmt): Delete unused variables.
12389
12390         * convert.c (convert_to_vector): Likewise.
12391
12392         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
12393
12394         * tree.c (finish_vector_type): Prototype.
12395
12396 2000-07-12  Bruce Korb  <bkorb@gnu.org>
12397
12398         * fixinc/fixfixes.c: use xmalloc
12399         * fixinc/fixincl.c(initialize): set program name for xmalloc
12400         * fixinc/fixlib.c(must_malloc): obsolete
12401         (is_cxx_header): no longer used - disabled
12402         (skip_quote): inserted and disabled for future use
12403         * fixinc/fixlib.h: reflects above
12404         * fixinc/fixtests.c: removed dinkleberries
12405
12406 2000-07-12  Neil Booth  <NeilB@earthling.net>
12407
12408         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
12409         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
12410
12411         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
12412         struct toklist_dummy): New.
12413         (cpp_free_definition): Free macros with free_macro.
12414         (count_params): Don't save paramter spellings.  Save macro
12415         information in a struct macro_info.
12416         (parse_define): Don't allocate a token list.
12417         (save_expansion): Allocate the macro's token list, and
12418         save parameter spellings if necessary.  Use TOKEN_SPELL.
12419         (cpp_create_definition): Make list const.
12420
12421 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
12422
12423         * c-typeck.c (pedwarn_c99): Move to
12424         * c-errors.c: ... Here.
12425         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
12426         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
12427         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
12428         (c-errors.o): List dependency.
12429
12430 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
12431
12432         * c-parse.c: Remove.
12433         * c-parse.h: Likewise.
12434         * c-parse.y: Likewise.
12435         * objc/objc-parse.c: Likewise.
12436         * objc/objc-pasre.y: Likewise.
12437
12438 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
12439
12440         * gcc.texi: Fix minor typos
12441         * extend.texi: Fix minor typos
12442
12443 2000-07-11  Marc Espie <espie@openbsd.org>
12444
12445         * collect2.c (main): Recognize .lo as object files.
12446
12447 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
12448
12449         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
12450         true.
12451
12452         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
12453         with MAP_ANONYMOUS and MAP_ANON.
12454         * configure, config.in: Rebuilt.
12455
12456 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
12457
12458         * diagnostic.c (save_output_state): Remove.
12459         (restore_output_state): Likewise.
12460         (clear_text_info): New function.
12461         (clear_diagnostic_info): Likewise.
12462         (output_text_length, is_starting_newline, output_prefix,
12463         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
12464         prefixing_policy, output_buffer_ptr_to_format_args): New macros
12465         (set_real_maximum_length, output_set_maximum_length,
12466         output_set_prefix, output_get_prefix, output_set_maximum_length,
12467         output_destroy_prefix, init_output_buffer,
12468         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
12469         output_add_newline, output_add_character, output_add_space,
12470         output_append_r, output_append, wrap_text, output_format,
12471         output_do_printf, output_printf, output_do_verbatim,
12472         output_verbatim, verbatim): Use them.
12473         (output_clear): Split into cleat_text_info and
12474         clear_diagnostic_info.
12475         (struct output_state): Move to...
12476
12477         * diagnostic.h: ...Here
12478         (struct output_buffer): Adjust.
12479
12480 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
12481
12482         * cpplex.c (parse_name): No longer inline (premature optimization).
12483         (do_pop_context): Fold into pop_context.
12484         (pop_context): Returns int.
12485         (lex_next): Hoist test for end of directive into pop_context.
12486         (push_macro_context): Returns int; takes just reader and token.
12487         Hoist test for excessive nesting to caller.
12488         (push_arg_context): Returns void; takes just reader and token.
12489         Do not call stringify_arg or get_raw_token.
12490         (get_raw_token): Convert tail recursion through push_arg_context
12491         to a loop at this level.  Call stringify_arg here if appropriate.
12492         (maybe_paste_with_next): Convert tail recursion to a while loop.
12493         Hoist test of paste_level to caller.
12494
12495         (stringify_arg): Push arg context at beginning.
12496         (cpp_get_token): Split out core into _cpp_get_token.  Call
12497         process_directive here.  Throw away CPP_PLACEMARKER tokens.
12498         (_cpp_get_token): Convert tail recursion through
12499         push_macro_context to a loop at this level.
12500         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
12501         _cpp_get_raw_token): Use _cpp_get_token.
12502         (_cpp_skip_rest_of_line): Drop the context stack directly; do
12503         not call pop_context.
12504         (_cpp_run_directive): Call lex_next directly.
12505
12506         * cpphash.h: Prototype _cpp_get_token.
12507         * cppexp.c (lex): Use it.
12508         * cpphash.c (parse_define): Use it.
12509         * cpplib.c (get_define_node, do_undef, parse_include,
12510         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
12511         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
12512         parse_ifdef, validate_else): Use it.
12513         (cpp_push_buffer): Tweak error message; abort if anyone tries
12514         to push a buffer while macro expansions are stacked.
12515
12516 2000-07-11  Donn Terry  <donnte@microsoft.com>
12517
12518         * cpplex.c (free_macro_args, save_token): Cast arg of free
12519         and/or xrealloc to PTR.
12520         (_cpp_init_input_buffer): Clear all fields of the base context.
12521
12522 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
12523
12524         * gensupport.c (process_rtx): Make rtl checking stop
12525         complaining about the define_insn while it is being
12526         converted from a define_insn_and_split.
12527
12528 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
12529
12530         * config/mips/mips.c (simple_memory_operand): Access the
12531         INTVAL of the address, not it's containing MEM.
12532
12533 2000-07-11  Bruce Korb  <bkorb@gnu.org>
12534
12535         * fixinc/fixtests.c(double_slash): obsolete
12536         (else_endif_label): likewise
12537         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
12538         (libc1_ifdefd_memx): correct initial comment
12539         and omit the #if/#endif pair from the memxxx declarations
12540         * fixinc/fixincl.x: regen
12541
12542 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12543
12544         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
12545
12546 2000-07-11  Neil Booth  <NeilB@earthling.net>
12547
12548         * cpp.texi: Update.
12549
12550 2000-07-11  Neil Booth  <NeilB@earthling.net>
12551
12552         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
12553         (handle_option): Set digraphs according to standard.
12554         Merge OPT_lang_c89 handler with OPT_std_c89.
12555
12556         * cpplex.c: (lex_line, can_paste): Honour digraphs in
12557         accordance with the digraphs flag.
12558
12559         * cpplib.h: (struct cpp_options): New option digraphs.
12560
12561 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
12562             Bruce Korb  <bkorb@gnu.org>
12563
12564         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
12565         * fixinc/fixincl.x: Regenerate.
12566         * fixinc/tests/base/testing.h: Add testcase.
12567
12568 2000-07-10  Richard Henderson  <rth@cygnus.com>
12569
12570         * config/ia64/ia64.c (got_symbolic_operand): New.
12571         (symbolic_operand, move_operand): Revert 0701 change.
12572         * config/ia64/ia64.h (PREDICATE_CODES): Update.
12573         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
12574         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
12575         split the offset into a 14-bit low part instead of a 13-bit low part.
12576         (load_fptr): Mark the mem as unchanging.
12577         (load_symptr): Use got_symbolic_operand.
12578
12579 2000-07-10  Nick Clifton  <nickc@cygnus.com>
12580
12581         * libgcc2.c (next_stack_level): Cast result of computation to
12582         (void **) so that the assignment does not generate a warning.
12583
12584 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
12585
12586         * flags.h : Add new variable flag_single_precision_constant.
12587         * toplev.c (display_help) : Add -fsingle-precision-constant option.
12588         (flag_single_precision_constant): New.
12589         * c-lex.c (yylex): Convert floating point constant to single
12590         precision constant.
12591         * invoke.texi : Add documentation for this new option.
12592
12593 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
12594
12595         * diagnostic.c (output_octal): Second parameter is unsigned.
12596         (output_long_octal): Likewise.
12597         (output_hexadecimal): Likewise.
12598         (output_long_hexadecimal): Likewise.
12599         (output_format): Adjust arguments extraction. Tweak.
12600         (output_verbatim, verbatim): End variable argument list.
12601         (report_diagnostic): Improve documentation.
12602
12603 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
12604
12605         * c-common.h (build_stmt): Declare.
12606         (build_continue_stmt): Likewise.
12607         (build_break_stmt): Likewise.
12608         (build_return_stmt): Likewise.
12609
12610         * c-decl.c (do_case): Rewrite to do what previously done in
12611         c-parse.in.
12612
12613         * c-semantics.c (build_stmt): Define.
12614         (build_return_stmt): Likewise.
12615         (build_break_stmt): Likewise.
12616         (build_continue_stmt): Likewise.
12617         (build_case_label): Likewise.
12618
12619         * c-parse.in (BREAK): Change to build tree, then generate RTL.
12620         (CONTINUE): Likewise.
12621         (RETURN): Likewise.
12622         (CASE): Likewise.
12623         (DEFAULT): Likewise.
12624
12625         * c-parse.y: Regenerate.
12626         * c-pasre.c: Likewise.
12627
12628 2000-07-09  Jason Merrill  <jason@redhat.com>
12629
12630         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
12631
12632         * tree.h (STRIP_NOPS): Check for error_mark_node.
12633         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
12634         (dwarf2out_*): Remove duplicate declarations.
12635
12636         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
12637         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
12638
12639 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
12640
12641         * diagnostic.c (wrap_text): New function.
12642         (maybe_wrap_text): Likewise.
12643         (output_add_string): Use it.
12644         (output_format): Likewise.
12645         (count_error): Use verbatim instead of notice.
12646         (report_error_function): Likewise. Don't use plain fprintf.
12647         (finish_diagnostic): New function.
12648         (output_do_verbatim): Tweak.  Commonalize functionalities in
12649         output_verbatim and verbatim.
12650         (output_verbatim): Adjust.
12651         (verbatim): Likewise.
12652         (report_diagnostic): Define.
12653
12654         * diagnostic.h (report_diagnostic): Prototype.
12655
12656 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
12657
12658         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
12659
12660 2000-07-09  Neil Booth  <NeilB@earthling.net>
12661
12662         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
12663         IShspace, ISspace: Update.
12664
12665         * cppinit.c: ISTABLE: Update.
12666         V: New.
12667
12668         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
12669         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
12670         (skip_block_comment, skip_line_comment, parse_string,
12671         lex_line): Use is_vspace rather than IS_NEWLINE.
12672         (skip_whitespace, lex_line): Clean up to use is_nvspace.
12673         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
12674         gets a BOL flag.
12675         (lex_next): Unconditionally stop if within a directive.
12676         Treat directives within macro invocations as directives
12677         (after parse_args emits error), not as the argument.
12678
12679 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
12680
12681         * diagnostic.c (diagnostic_args): New macro.
12682         (diagnostic_msg): Likewise.
12683         (output_formatted_integer): Likewise.
12684         (output_state): New data type.
12685         (digit_buffer): Make global.
12686         (output_add_integer): Rename to output_decimal. Squeeze
12687         digit_buffer.
12688         (output_long_decimal, output_unsigned_decimal,
12689         output_long_unsigned_decimal, output_octal, output_long_octal,
12690         output_hexadecimal, output_long_hexadecimal): New functions.
12691         (output_append_r): New function.
12692         (output_append): Tweak.
12693         (output_flush_on): Rename to output_to_stream.
12694         (output_format): Change prototype.  Improve documentation. Handle
12695         more format specifiers.
12696         (build_location_prefix): Rename to context_as_prefix.
12697         (output_notice): Rename to output_do_printf.
12698         (output_printf): Tweak.
12699         (line_wrapper_printf): Likewise.
12700         (vline_wrapper_message_with_location): Adjust call to renamed
12701         functions.
12702         (v_message_with_decl): Likewise.
12703         (default_print_error_function): Likewise.
12704         (save_output_state): New function.
12705         (restore_output_state): Likewise.
12706         (output_do_verbatim): Likewise.
12707         (output_verbatim): Define.
12708         (verbatim): Likewise.
12709
12710         * diagnostic.h (printer_fn): Change return type from void to int.
12711         Improve documentation.
12712         (output_add_integer): Rename to output_decimal.
12713         (output_flush_on, output_format): Don't export.
12714         (output_verbatim, verbatim): Declare.
12715
12716 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
12717
12718         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
12719         Check whether c divides op1 exactly if operation is not
12720         multiplication.
12721
12722 2000-07-08  Richard Henderson  <rth@cygnus.com>
12723
12724         * final.c (final): Do not abort when reg-stack introduces
12725         a new insn.
12726
12727 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
12728
12729         * cpplib.h (struct cpp_name): Now struct cpp_string.
12730         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
12731         CPP_HEADER_NAME): Change to type S.
12732         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
12733         field, a cpp_hashnode *.  All references to val.name updated
12734         to use val.str or val.node as appropriate.
12735         (struct cpp_reader): Add spec_nodes field.
12736         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
12737
12738         * cpphash.h (struct spec_nodes): New.
12739         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
12740         val.str.  All references to 'spelling > SPELL_NONE' updated to
12741         match.
12742
12743         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
12744         pfile->buffer->inc are not NULL before dereferencing them.
12745
12746         * cpplex.c (parse_name): Take a pointer to the current token,
12747         plus current position and limit as args; return the new
12748         position; don't copy the text of a name into the string
12749         buffer, instead call cpp_lookup and store the node pointer.
12750         If extending a token, copy out the text of the old into a
12751         scratch buffer, append the new, look that up and store the new
12752         node pointer.  Inline.
12753         (maybe_paste_with_next): If the result of paste is a NAME,
12754         then look up the pasted text and store its node pointer.
12755         (lex_line): Adjust for new parse_name interface.
12756         Check for L"str", L'str' using spec_nodes->n_L.
12757         (spell_token): SPELL_IDENT tokens have their spelling in
12758         val.node->name.  Handle SPELL_STRING tokens that don't have
12759         string delimiters.
12760         (_cpp_expand_name_space,
12761         (can_paste): Check for L ## "str" using spec_nodes->n_L.
12762         (cpp_get_token, special_symbol): No need to call cpp_lookup.
12763         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
12764         return 1=equal 0=not, not a tristate.
12765
12766         * cpphash.c (var_args_str): Delete.
12767         (find_param): Compare node fields directly.
12768         (is__va_args__): Use CPP_PEDANTIC.  Just compare
12769         token->val.node with spec_nodes->n__VA_ARGS__.
12770         (dump_funlike_macro): Don't use var_args_str.
12771
12772         * cpplib.c (_cpp_check_directive): Just walk through
12773         spec_nodes->dirs comparing pointers.
12774         (get_define_node, do_pragma_poison, detect_if_not_defined,
12775         parse_ifdef): The identifier has already been looked up.
12776         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
12777         node.
12778         (do_if): Only call detect_if_not_defined at beginning of file.
12779         (_cpp_parse_assertion): Only copy string pointers for
12780         SPELL_STRING tokens.
12781         (pragma_dispatch): Take a node pointer and examine its name
12782         field.
12783         (_cpp_init_stacks): Also initialize the spec_nodes structure.
12784
12785         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
12786         _cpp_init_macros.
12787         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
12788         reverse order from the corresponding _cpp_init_* routines.
12789
12790         * cppexp.c (parse_number, parse_charconst, parse_defined,
12791         lex): Check val.node->type instead of calling cpp_defined.
12792         Use spec_nodes entries where appropriate.
12793
12794         * fix-header.c, scan-decls.c: Update for interface changes.
12795
12796 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
12797
12798         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
12799         emitting aux_truncdfsf2.
12800
12801 2000-07-03  Donn Terry  (donnte@microsoft.com)
12802
12803         * cppinit.c (print_help): split overlong line into ISO C89
12804         maximum chunks.
12805
12806 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
12807
12808         * cppexp.c: Update all code for new lexer interface.
12809         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
12810         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
12811         * cpplex.c (token_names): Trim leading CPP_ from names; make
12812         the strings unsigned.
12813         (_cpp_spell_operator): New.
12814         (is_macro_disabled): Disable all macros if rescanning
12815         preprocessed text.
12816         (_cpp_get_directive_token): Remove.
12817
12818         * cppinit.c: Don't set no_macro_expand.
12819         * cpplib.c (read_line_number, do_line): Check only for EOF,
12820         not VSPACE.
12821         * cpphash.h: Update prototypes.
12822         * cpplib.h (CPP_VSPACE): Remove.
12823         (struct cpp_reader): Remove no_macro_expand.
12824
12825 2000-07-08  Neil Booth  <NeilB@earthling.net>
12826
12827         * cpphash.c (is__va_args__): New function.
12828         (count_params): Fix line reported in error messages.  Use
12829         is__va_args__.  Don't return ')' on error.  Flag GNU style
12830         rest args macro definitions.
12831         (parse_define): Check macro name is not __VA_ARGS__.
12832         (save_expansion): Check identifier in non-varargs-macro is
12833         not __VA_ARGS__.  Don't flag GNU_VARARGS.
12834         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
12835         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
12836          than per-token GNU_VARARGS.
12837         * cpplib.h (GNU_VARARGS): Remove.
12838         (GNU_REST_ARGS): New.
12839
12840 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
12841
12842         * i386.md (call_pop, call, call_value_pop): Do not set
12843         current_function_uses_pic_offset_table for calls to static
12844         functions or indirect calls.
12845
12846 2000-07-07  Jim Wilson  <wilson@cygnus.com>
12847
12848         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
12849         is_predicate_reg, then take max write_count of register pair.
12850
12851 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12852
12853         * tradcpp.c (main): Rename label `include' to `add_include' to
12854         avoid conflicts with variable `include' in traditional C.
12855
12856 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
12857
12858         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
12859
12860 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
12861
12862         * sibcall.c (uses_addressof): Add INMEM argument, check for
12863         current_function_internal_arg_pointer outside of MEM rtxs in addition
12864         to ADDRESSOFs.
12865         (sequence_uses_addressof): Update caller.
12866
12867 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
12868
12869         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
12870         and friends.
12871
12872 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12873
12874         * system.h (UNION_INIT_ZERO): New macro for initializing union
12875         members in structs.
12876
12877         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
12878
12879 2000-07-07  Neil Booth  <NeilB@earthling.net>
12880
12881         * cpp.texi: Update.
12882
12883 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
12884
12885         * final.c (final): Detect out of bounds array access to
12886         the insn_lengths array.
12887
12888 2000-07-07  Kazu Hirata  <kazu@hxi.com>
12889
12890         * fold-const.c (fold): Fix a comment typo.
12891
12892 2000-07-07  Neil Booth  <NeilB@earthling.net>
12893
12894         * cpp.texi: Update to new lexer.
12895
12896 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
12897
12898         * tradcpp.c: New file.
12899         * tradcif.y: New file.
12900         * tradcif.c: New generated file.
12901
12902         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
12903         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
12904         dependencies of C.  Install tradcpp from install-common, in
12905         $(libsubdir).
12906
12907 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
12908
12909         * cppinit.c: Include cppdefault.h.  Refer to
12910         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
12911         to GCC_INCLUDE_DIR and its length.
12912         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
12913         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
12914         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
12915         cppdefault.h.
12916         (include_defaults_array): Move to cppdefault.c.
12917
12918         * cppdefault.h: New file.
12919         * cppdefault.c: New file.
12920
12921         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
12922         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
12923         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
12924         this file.
12925
12926 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12927
12928         * reload.c (push_reload): When seeing if can reuse a register,
12929         check extra registers against widest of INMODE and OUTMODE.
12930
12931 2000-07-06  Neil Booth  <NeilB@earthling.net>
12932
12933         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
12934         based on full length of predicate.
12935
12936 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
12937
12938         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
12939         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
12940
12941 2000-07-05  Kazu Hirata  <kazu@hxi.com>
12942
12943         * h8300-proto.h: Fix formatting.
12944         * h8300.c: Likewise.
12945         * h8300.h: Likewise.
12946
12947 2000-07-05  Jim Wilson  <wilson@cygnus.com>
12948
12949         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
12950         CCmode.
12951
12952 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
12953
12954         * invoke.texi: Fix minor typos
12955         * md.texi: Fix minor typos
12956
12957 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
12958
12959         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
12960
12961 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
12962
12963         * cpplex.c: Don't include sys/mman.h.
12964         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
12965
12966         * cpplib.c: Include sys/mman.h and obstack.h.
12967         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
12968         obstack.
12969         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
12970         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
12971         bother freeing if stack entries (they will be freed with their buffer).
12972         (do_endif): Free if stack entries from the buffer obstack.
12973         (push_conditional): Allocate if stack entries from the buffer obstack.
12974
12975         (find_answer): Rename to _cpp_find_answer.
12976         (do_assert, do_unassert): Update.
12977
12978         * cpphash.h: Update prototypes.
12979         (xobnew): New convenience macro.
12980         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
12981         Update comments.
12982         (struct cpp_hashnode): Remove disabled field.
12983
12984         * cppinit.c: Don't include hashtab.h or splay-tree.h.
12985         (report_missing_guard): Moved to cppfiles.c.
12986         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
12987         cpp_init_includes.
12988         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
12989         cpp_cleanup_includes.  Don't destroy hashtab or
12990         all_include_files here.
12991         (cpp_finish): Use _cpp_report_missing_guards.
12992
12993         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
12994         (_cpp_init_include_table): Rename _cpp_init_includes.
12995         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
12996
12997         * cppexp.c (parse_assertion): Update for new name of
12998         find_answer.
12999
13000         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
13001
13002 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
13003
13004         * cpplib.c (do_ident): s/VSPACE/EOF/
13005
13006 2000-07-05  Neil Booth  <NeilB@earthling.net>
13007
13008         * cpplex.c: Fix trigraph replacement within strings.
13009
13010 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13011
13012         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
13013
13014         * xcoffout.c (assign_type_number): Constify.
13015         (xcoffout_source_file): Add static prototype.  Don't needlessly
13016         cast away const-ness.
13017
13018 2000-07-04  Jason Merrill  <jason@redhat.com>
13019
13020         * frame.h (frame_state): Move base_offset to end.
13021
13022 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
13023
13024         * calls.c (emit_library_call_value_1): Revert previous change.
13025
13026 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
13027
13028         * fix-header.c (struct partial_proto): Remove unnecessary fields.
13029         (recognized_extern, recognized_function, read_scan_file):
13030         Update for new scheme.
13031         (check_protection): It's still a multiple include guard even
13032         if it doesn't always trigger.
13033         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
13034         new scheme.
13035         * scan.h: Declare struct cpp_token.  Update prototypes.
13036
13037 2000-07-03  Neil Booth  <neilb@earthling.net>
13038             Zack Weinberg  <zack@wolery.cumb.org>
13039
13040         Complete overhaul of the lexer and macro expander.
13041
13042         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
13043         arg, arglist, argdata, reflist, collect_objlike_expansion,
13044         collect_funlike_expansion, collect_params,
13045         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
13046         unsafe_chars, macarg, compare_defs, special_symbol,
13047         scan_arguments, stringify, funlike_macroexpand,
13048         _cpp_quote_string, monthnames): Delete.
13049         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
13050         _cpp_create_definition, _cpp_dump_definition,
13051         dump_hash_helper): Adjust.
13052         (find_param, count_params, parse_define, var_args_str,
13053         check_macro_redefinition, save_expansion): New.
13054
13055         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
13056         parse_string, output_line_command, trigraph_replace,
13057         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
13058         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
13059         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
13060         _cpp_skip_rest_of_line): Modify.
13061
13062         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
13063         find_position, null_warning, bump_column, expand_name_space,
13064         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
13065         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
13066         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
13067         _cpp_prescan): Delete.
13068
13069         (dump_param_spelling, process_directive, lex_next,
13070         is_macro_disabled, stringify_arg, expand_context_stack,
13071         output_token, make_string_token, alloc_number_token,
13072         special_symbol, duplicate_token, maybe_paste_with_next,
13073         can_paste, prevent_macro_expansion, restore_macro_expansion,
13074         get_temp_token, release_temp_tokens, quote_string,
13075         token_names, token_spellings, _cpp_expand_name_space,
13076         _cpp_glue_header_name, _cpp_reserve_name_space,
13077         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
13078         placemarker_token, eof_token, cpp_context, macro_args,
13079         get_raw_token, parse_arg, parse_args, save_token,
13080         push_arg_context, push_macro_context, pop_context,
13081         do_pop_context, free_macro_args, _cpp_get_line,
13082         _cpp_run_directive): New.
13083
13084         * cpplib.c (validate_else, parse_include, push_conditional,
13085         pass_thru_directive, read_line_number, parse_ifdef,
13086         detect_if_not_defined, _cpp_check_directive, do_define,
13087         do_undef, do_include, do_import, do_include_next, do_error,
13088         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
13089         top_pragmas, do_pragma_gcc, do_pragma_implementation,
13090         do_pragma_poison, do_pragma_system_header,
13091         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
13092         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
13093         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
13094         cpp_defined): Update for new scheme.
13095         (strtoul_for_line, get_define_node, dump_macro_name,
13096         _cpp_check_linemarker, _cpp_parse_assertion): New.
13097         (_cpp_handle_directive, do_pragma_default): Delete.
13098
13099         * cpphash.h (struct predicate): Now struct answer.
13100         (enum spell_type, struct token_spelling, struct directive,
13101         directive_handler): New.
13102         Update prototypes.  Remove unused macros.
13103         * cpplib.h: Update prototypes.  Remove unused macros,
13104         structure definitions, and fields.
13105
13106         * cpperror.c (print_containing_files, v_message): Adjust.
13107         * cppexp.c (parse_assertion, lex, parse_escape,
13108         _cpp_parse_expr): Adjust.
13109         * cppfiles.c (open_include_file, _cpp_execute_include,
13110         _cpp_compare_file_date, cpp_read_file, read_include_file):
13111         Adjust.
13112         * cppinit.c (dump_special_to_buffer): Delete.
13113         (append_include_chain, merge_include_chains, cpp_reader_init,
13114         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
13115         cpp_finish, handle_option, print_help): Adjust.
13116         * cppmain.c (main): Adjust.
13117
13118 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
13119
13120         * cppspec.c (lang_specific_driver): Use double quotes in error
13121         message.
13122
13123 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
13124
13125         * calls.c (emit_library_call_value_1): Use valreg instead
13126         of hard_libcall_value.
13127
13128 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
13129
13130         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
13131         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
13132         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
13133         (movhi): Likewise.
13134         (movqi): Likewise.
13135         (movdf): Likewise.
13136         (movsf): Likewise.
13137         (movdi): Likewise.
13138         (movti): Likewise.
13139
13140         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
13141         mode instead of wider_mode is being used.
13142
13143 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
13144
13145         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
13146         of 'r'. Use q_regs_operand.
13147         (andsi_1+2): Use q_regs_operand.
13148
13149 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
13150
13151         * builtins.c (get_memory_rtx): Always put into alias set 0.
13152
13153 2000-07-03  Nick Clifton  <nickc@cygnus.com>
13154
13155         * config/arm/arm.md: Fix post increment and pre increment
13156         peepholes so that they do not generate UNPREDICATBLE opcodes.
13157         (ie ones where the increment clobbers the source/destination).
13158
13159 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
13160
13161         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
13162         change too big for -mtiny-stack" a warning, if larger than 63.
13163         (out_set_stack_ptr): Change the logic so -mno-interrupts is
13164         always safe to use on possible future devices.
13165         (function_prologue): Write SPH before SPL, for consistency.
13166         If interrupt_func_p true, we know we have enabled interrupts.
13167         (avr_num_arg_regs): New function.  Round up to even number of
13168         bytes if no -mpack-args or if calling a libgcc function.
13169         (function_arg, function_arg_advance): Use it.
13170         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
13171         Output "movw" if available.
13172         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
13173         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
13174         (asm_output_section_name): Add blanks for consistent output.
13175         (encode_section_info): Set TREE_READONLY for progmem data to
13176         avoid gas warnings about changed section attributes.
13177         (avr_hard_regno_mode_ok): Force non-QImode data to start in
13178         even numbered registers on devices with "movw".
13179         * config/avr/avr.h (MASK_*): Define bits for target_flags.
13180         (TARGET_SWITCHES): Mark help strings for translation.
13181         Add new -mpack-args and -menhanced switches.
13182         (TARGET_OPTIONS): Mark help strings for translation.
13183         (progmem_section): Add section attributes.
13184         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
13185         Output "movw" if available.
13186         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
13187         New patterns.
13188         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
13189         call convention (arguments aligned on even registers).
13190         (_cleanup, _exit): Make weak symbols libc can override.
13191
13192 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13193
13194         * fp-bit.h: New file.
13195
13196         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
13197         Comment #endif statements.
13198         (__thenan_sf, __thenan_df): Add missing braces around initializer.
13199
13200 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
13201
13202         * gcse.c (compute_pre_data): Compute ae_kill using other local
13203         properties instead of calling compute_ae_kill.
13204
13205         * alias.c (init_alias_analysis): Do not call
13206         prologue_epilogue_contains until after reload has completed.
13207
13208 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
13209
13210         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
13211         (genrtl_finish_compound_stmt): Likewise.
13212         (genrtl_compound_stmt): Change to return void.
13213
13214         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
13215         move code from here to ...
13216         (genrtl_compound_stmt): ... here.
13217         (genrtl_finish_compound_stmt): Remove.
13218         (expand_stmt): Add comment.
13219
13220 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
13221
13222         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
13223         and VOID_TYPE_P.
13224
13225 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
13226
13227         * cpplib.h (struct cpp_reader): New field include_depth.
13228         (struct cpp_printer): Rename last_bsd to last_id.
13229         * cppfiles.c (read_include_file): Bump include_depth.
13230         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
13231         (output_line_command): Output correct #line if a header
13232         is including itself and is not protected against multiple inclusion.
13233         Use include_depth instead of buffer_stack_depth, last_id instead of
13234         last_bsd.
13235         * cppinit.c (cpp_start_read): Initialize last_id instead of
13236         last_bsd.
13237
13238 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
13239
13240         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
13241         (c-semantics.o): New target.
13242
13243         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
13244         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
13245         (genrtl_clear_out_block): Likewise.
13246         (genrtl_goto_stmt): Likewise.
13247         (genrtl_expr_stmt): Likewise.
13248         (genrtl_decl_stmt): Likewise.
13249         (genrtl_if_stmt): Likewise.
13250         (genrtl_while_stmt): Likewise.
13251         (genrtl_do_stmt): Likewise.
13252         (genrtl_return_stmt): Likewise.
13253         (genrtl_for_stmt): Likewise.
13254         (genrtl_break_stmt): Likewise.
13255         (genrtl_continue_stmt): Likewise.
13256         (genrtl_scope_stmt): Likewise.
13257         (genrtl_switch_stmt): Likewise.
13258         (genrtl_case_label): Likewise.
13259         (genrtl_begin_compound_stmt): Likewise.
13260         (gerntl_finish_compound_stmt): Likewise.
13261         (genrtl_compound_stmt): Likewise.
13262         (genrtl_asm_stmt): Likewise.
13263         (genrtl_decl_cleanup): Likewise.
13264         (DECL_ANON_UNION_ELEMS): Likewise.
13265         (emit_local_var): Likewise.
13266         (make_rtl_for_local_static): Likewise.
13267         (expand_cond): Likewise.
13268         (expand_stmt): Likewise.
13269         (c_expand_return): Likewise.
13270         (c_expand_start_case): Likewise.
13271         (do_case): Likewise.
13272         (COMPOUND_STMT_NO_SCOPE): Likewise.
13273         (c_expand_asm_operands): Likewise.
13274         (NEW_FOR_SCOPE_P): New macro.
13275         (expand_expr_stmt_fn): New type.
13276
13277         (set_current_function_name_declared): Likewise.
13278         (current_function_name_declared): Likewise.
13279         (lang_expand_stmt): Likewise.
13280         (stmts_are_full_exprs_p): Likewise.
13281         (anon_aggr_type_p): Likewise.
13282         (lang_expand_expr_stmt): Likewise.
13283         (build_case_label): Likewise.
13284
13285         * c-decl.c (lang_expand_expr_stmt): Initialize.
13286         (stmts_are_full_exprs_p): Define.
13287         (current_function_name_declared): Likewise.
13288         (do_case): Likewise.
13289         (lang_expand_stmt): Likewise.
13290         (set_current_function_name_declared): Likewise.
13291         (anon_aggr_type_p): Likewise.
13292
13293         * c-semantics.c: New file.
13294         (expand_cond): Moved from cp/semantics.c.
13295         (genrtl_do_pushlevel): Likewise.
13296         (genrtl_clear_out_block): Likewise.
13297         (genrtl_goto_stmt): Likewise.
13298         (genrtl_expr_stmt): Likewise.
13299         (genrtl_decl_stmt): Likewise.
13300         (genrtl_if_stmt): Likewise.
13301         (genrtl_while_stmt): Likewise.
13302         (genrtl_do_stmt): Likewise.
13303         (genrtl_return_stmt): Likewise.
13304         (genrtl_for_stmt): Likewise.
13305         (genrtl_break_stmt): Likewise.
13306         (genrtl_continue_stmt): Likewise.
13307         (genrtl_scope_stmt): Likewise.
13308         (genrtl_switch_stmt): Likewise.
13309         (genrtl_case_label): Likewise.
13310         (genrtl_begin_compound_stmt): Likewise.
13311         (genrtl_finish_compound_stmt): Likewise.
13312         (genrtl_compound_stmt): Likewise.
13313         (genrtl_asm_stmt): Likewise.
13314         (genrtl_decl_cleanup): Likewise.
13315         (make_rtl_for_local_static): Moved from cp/decl.c.
13316         (emit_local_var): Likewise.
13317         (expand_stmt): Define.
13318
13319         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
13320         (c_expand_return): Likewise.
13321         (c_expand_start_case): Likewise.
13322
13323 2000-07-01  Richard Henderson  <rth@cygnus.com>
13324
13325         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
13326         with the low 13 bits set.
13327         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
13328         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
13329         of the low 13 bits into a CONST plus an adddi3.
13330         (load_symptr): Set RTX_UNCHANGING_P.
13331
13332 See ChangeLog.3 for earlier changes.