]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
0d8f01a06e93a0887f1f7a7ad021b42ef515a892
[gcc.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.
This page took 0.54447 seconds and 4 git commands to generate.