Denis Chertykov <denisc@overta.ru>
[gcc.git] / gcc / ChangeLog
1 2000-02-11 Denis Chertykov <denisc@overta.ru>
2
3 * README.AVR: New file with information about the avr ports.
4 * config/avr: New directory with avr port files.
5
6 2000-02-11 Andreas Jaeger <aj@suse.de>
7
8 * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
9
10 2000-02-11 Zack Weinberg <zack@wolery.cumb.org>
11
12 * cpphash.c: Fix formatting, update commentary.
13 (dump_definition): Take three separate arguments instead of a
14 MACRODEF structure argument.
15 * cpphash.h: Update prototype of dump_definition.
16 * cppinit.c (cpp_finish): Update call of dump_definition.
17
18 * cpplib.c (do_define): Always create new hash entry with
19 T_MACRO type. Remove redundant check for redefinition of
20 poisoned identifier. Update call of dump_definition.
21 (do_undef): Don't call check_macro_name. Rename sym_length to
22 len.
23 (do_error, do_warning): Don't use copy_rest_of_line or
24 SKIP_WHITE_SPACE.
25 (do_warning): Don't use pedwarn for the actual warning,
26 only the notice about its not being in the standard. (Fixes
27 bug with #warning in system headers.)
28 (do_ident): Stricter argument checking - accept only a single
29 string after #ident. Also, macro-expand the line.
30 (do_xifdef): Use cpp_defined. De-obfuscate.
31
32 (do_pragma): Split out specific pragma handling to separate
33 functions. Use get_directive_token. Update commentary. Do
34 not pass on #pragma once or #pragma poison to the front end.
35 (do_pragma_once, do_pragma_implementation, do_pragma_poison,
36 do_pragma_default): New.
37
38 Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com)
39
40 * jump.c (jump_optimize_1): The first operand in a relational
41 can be a CONST_INT.
42 * optabs.c (emit_conditional_move): Handle relationals which
43 have a known true/false result.
44
45 2000-02-11 Geoff Keating <geoffk@cygnus.com>
46
47 * function.c (thread_prologue_and_epilogue_insns): Don't insert
48 a RETURN insn into a block which already ends with a jump.
49
50 2000-02-11 Geoff Keating <geoffk@cygnus.com>
51
52 * haifa-sched.c (BUF_LEN): Increase a lot.
53
54 2000-02-11 Nick Clifton <nickc@cygnus.com>
55
56 * configure.in: Add tm_p_file specification for thumb targets.
57 * configure: Regenerate.
58
59 * config/arm/thumb-protos.h: New file: Prototypes for exported
60 functions defined in thumb.c.
61
62 2000-02-11 Robert Lipe <robertl@sco.com>
63
64 * Makefile.in (bootstrap-lean): Remove additional files.
65 (bootstrap2-lean): Likewise.
66 (VOL_FILES): List of files for above.
67
68 2000-02-11 Nathan Sidwell <nathan@acm.org>
69
70 * cpphash.c (special_symbol): Remove spurious argument to
71 cpp_lookup.
72
73 2000-02-11 Joel Sherrill (joel@OARcorp.com>
74
75 * configure.in: (i*86-*-rtems*): Swapped elf and coff
76 stanzas.
77 * configure: Rebuilt.
78
79 2000-02-11 Rodney Brown <RodneyBrown@pmsc.com>
80
81 * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
82
83 Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com)
84
85 * pa.c, pa.h: Remove trigraph sequences within comments.
86
87 Fri Feb 11 02:51:56 2000 Pavel Roskin <pavel_roskin@geocities.com>
88
89 * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
90
91 Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu)
92
93 * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
94
95 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
96
97 * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
98
99 2000-02-11 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
100
101 * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
102 (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
103 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
104 (ASM_FILE_END): Use c4x_file_end.
105 * config/c4x/c4x.c (c4x_global_label): New function.
106 (c4x_external_ref, c4x_file_end): Likewise.
107
108 * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
109 (c4x_external_ref, c4x_end_file): Likewise.
110
111 2000-02-10 Zack Weinberg <zack@wolery.cumb.org>
112
113 * cppexp.c: Don't include cpphash.h.
114 (parse_charconst, cpp_lex): Use cpp_defined.
115 (cpp_lex): Use get_directive_token throughout. Remove
116 unnecessary cases from switch. Move assertion-handling code
117 down to OTHER case.
118 (cpp_parse_expr): If we see '+' or '-', check the context to
119 determine if they are unary or binary operators. Streamline
120 the jumps a bit. Do not call skip_rest_of_line.
121
122 * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
123 static. Export get_directive_token. Update commentary.
124 (cpp_defined): New function.
125 (do_define): Remove reference to T_PCSTRING. Call
126 free_definition to release memory for old definition, when
127 redefining a macro.
128 (eval_if_expression): Set only_seen_white to 0 before calling
129 cpp_parse_expr. Call skip_rest_of_line after it returns.
130 (cpp_read_check_assertion): Don't preserve a pointer into the
131 token buffer across a call to cpp_get_token.
132
133 * Makefile.in (cppexp.o): Don't depend on cpphash.h.
134 * cppfiles.c (redundant_include_p): Use cpp_defined.
135 * cpphash.c (free_definition): New function.
136 (delete_macro): Use it. Update commentary.
137 * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and
138 free_definition.
139 * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
140 from enum node_type. Prototype cpp_defined and get_directive_token.
141 Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
142
143 * fix-header.c (check_macro_names): Use cpp_defined.
144 (read_scan_file): Set inhibit_warnings and inhibit_errors in
145 the options structure.
146
147 2000-02-10 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
148
149 * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
150
151 2000-02-10 Jason Merrill <jason@casey.cygnus.com>
152
153 * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
154 rather than die->die_tag.
155
156 Thu Feb 10 16:26:49 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
157
158 * combine.c (make_extraction, force_to_mode): Avoid warning on
159 mixed-signedness conditionals.
160 (make_field_assignment, nonzero_bits): Likewise.
161 * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
162 (store_split_bit_field, extract_split_bit_field): Likewise.
163 (extract_fixed_bit_field, store_bit_field,
164 * expr.c: Change alignment to be unsigned everywhere.
165 (move_by_pieces, store_constructor_field, store_constructor):
166 Alignment parm is unsigned.
167 (emit_block_move, emit_group_load, emit_group_store): Likewise.
168 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
169 (do_compare_rtx_and_jump): Likewise.
170 (move_by_pieces_ninsns, clear_by_pieces): Likewise.
171 Compare align with GET_MODE_ALIGNMENT.
172 (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
173 (get_inner_reference): Likewise.
174 (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
175 (expand_assignment): Local vars for alignment now unsigned.
176 (store_constructor, store_field, expand_expr, do_jump): Likewise.
177 (do_compare_and_jump): Likewise.
178 (store_field): Call new function expr_align.
179 * expr.h (emit_block_move, emit_group_load, emit_group_store):
180 Alignment arg now unsigned.
181 (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
182 (do_compare_rtx_and_jump, store_bit_field): Likewise.
183 (extract_bit_field): Likewise.
184 * fold-const.c (add_double): Add cast to eliminate signedness warning.
185 * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
186 (get_best_mode): Alignment arg is unsigned.
187 * rtl.h (move_by_pieces): Likewise.
188 * store-layout.c (maximum_field_alignment, set_alignment):
189 Now unsigned.
190 (layout_decl): Alignment arg is now unsigned.
191 Remove unneeded casts.
192 (layout_record, layout_union, layout_type): Remove unneeded casts.
193 Local alignment variables now unsigned.
194 (get_best_mode): Alignment arg now unsigned.
195 * tree.c (expr_align): New function.
196 * tree.h (expr_align): Likewise.
197 (maximum_field_alignment, set_alignment): Now unsigned.
198 (get_inner_reference): Alignment argument is now pointer to unsigned.
199 * varasm.c (assemble_variable): Add cast to eliminate warning.
200
201 Thu Feb 10 12:56:47 2000 Jim Wilson <wilson@cygnus.com>
202
203 * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
204 then store directly into op0.
205
206 * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
207 the CALL_INSN, and emit the note immediately after it.
208
209 2000-02-10 Nick Clifton <nickc@cygnus.com>
210
211 * config/arm/thumb.md (epilogue): Include a (return) in the
212 generated insn, and emit it using emit_jump_insn not
213 emit_insn.
214
215 Thu Feb 10 18:28:59 MET 2000 Jan Hubicka <jh@suse.cz>
216
217 * function.c (assign_temp): Change zero-sized arrays to size 1.
218 * integrate.c (expand_inline_function): Do not update
219 stack_alignment_needed
220 * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
221 add some sanity checking, remove optimization for function with
222 zero frame size.
223
224 2000-02-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
225
226 * flow.c (mark_regs_live_at_end): Delete unused variables.
227
228 * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
229
230 * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
231 in macro FRAME_GROWS_DOWNWARD.
232
233 * stmt.c (expand_end_bindings): Delete unused variable.
234
235 * unroll.c (iteration_info): Mark parameter `loop' with
236 ATTRIBUTE_UNUSED.
237
238 2000-02-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
239
240 * fixinc/server.c (load_data): Return NULL if the marker line is
241 not found.
242 (run_shell): If load_data returns NULL, retry the command once, in
243 a new shell.
244
245 * configure: Rebuilt.
246
247 2000-02-09 Bruce Korb <bkorb@gnu.org>
248
249 * gcc/fixincludes: ** DELETED **
250 * gcc/fixcpp: ** DELETED **
251 * gcc/fixinc-nt.sed: ** DELETED **
252 * gcc/just-fixinc: ** DELETED **
253 * gcc/Makefile.in: Removed out-dated commentary
254 * gcc/configure.in: Removed fast-fixincludes disablement.
255 * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
256
257 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
258 * function.c (thread_prologue_and_epilogue_insns): Uncomment
259 last change.
260
261 2000-02-09 Richard Henderson <rth@cygnus.com>
262
263 * jump.c (delete_insn): Don't delete user labels at -O0.
264
265 2000-02-09 Robert Lipe <robertl@sco.com>
266
267 * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
268 Don't link with HOST_LIBS.
269
270 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
271
272 * configure.in: Correct --help text for --with-dwarf2.
273 Put tm-dwarf2.h after other tm files, if it's requested.
274 * configure: Regenerate.
275 * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
276 defining it.
277
278 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
279
280 * cpplib.h: Provide HASHNODE typedef and forward decl of
281 struct hashnode only. Kill cpp_hashnode typedef. MACRODEF,
282 DEFINITION, struct hashnode, struct macrodef, struct
283 definition, scan_decls prototype, default defn of
284 INCLUDE_LEN_FUDGE moved elsewhere.
285
286 * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
287 definition, and struct hashnode moved here. Remove the unused
288 'predefined' field from struct definition. Replace the 'args'
289 union with its sole member. All users updated (cpphash.c).
290 Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add
291 multiple include guard.
292
293 * cpphash.c (hashf): Make static; use better algorithm; drop
294 HASHSIZE parameter; return an unsigned int.
295 (cpp_lookup): Drop HASH parameter. PFILE parameter is
296 used. Calculate HASHSIZE modulus here.
297 (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
298 here.
299 (create_definition): Drop PREDEFINITION parameter.
300 * cpplib.c (do_define): Don't calculate a hash value here.
301 Don't pass (keyword == NULL) to create_definition.
302
303 * scan.h: Prototype scan_decls here.
304 * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
305 * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
306 callers of cpp_lookup and cpp_install updated.
307
308 * cpphash.c (macarg): Hoist all the flag diddling out of the
309 function...
310 (macroexpand): ... and out of the loop that calls macarg.
311 Skip over the initial paren before macro arguments with
312 cpp_get_non_space_token; point may be some distance before
313 that paren. Abort if it's not there.
314
315 * cpplib.c (parse_clear_mark): Delete function.
316 (parse_set_mark, parse_goto_mark): Make static.
317 (ACTIVE_MARK_P): New macro.
318 (skip_block_comment, skip_line_comment): Do not bump the line
319 if ACTIVE_MARK_P is true.
320 (cpp_pop_buffer): The buffer to be popped may not have an
321 active mark.
322 (cpp_get_token): When looking for the initial paren before
323 macro arguments, only set a mark in a file buffer, Always
324 return to that mark before proceeding to call macroexpand or
325 return a NAME token.
326
327 * cpplib.h: Remove prototypes of parse_set_mark,
328 parse_clear_mark, parse_goto_mark.
329 (struct cpp_options): Rename 'put_out_comments' to
330 'discard_comments' and invert its sense.
331 * cppinit.c, cpphash.c, cpplib.c: All users of
332 put_out_comments changed to use discard_comments, with
333 opposite sense.
334
335 2000-02-09 Clinton Popetz <cpopetz@cygnus.com>
336
337 * function.c (thread_prologue_and_epilogue_insns): Don't delete
338 the edge from a block that both jumps and falls through to the
339 fallthru block.
340
341 2000-02-09 Scott Bambrough <scottb@netwinder.org>
342
343 * config/arm/arm.md (movsi): In PIC mode, make sure that a
344 constant source address is legitimate.
345
346 2000-02-09 Philip Blundell <pb@futuretv.com>
347
348 * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
349 correctly.
350
351 * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
352 generating PIC.
353 (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
354
355 2000-02-09 Zack Weinberg <zack@wolery.cumb.org>
356
357 * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
358 ends with a newline and a NUL. Don't be so clever manipulating
359 strings.
360
361 Wed Feb 9 14:18:08 MET 2000 Jan Hubicka <jh@suse.cz>
362
363 * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
364 not to BIGGEST_ALIGNMENT.
365
366 2000-02-08 Geoff Keating <geoffk@cygnus.com>
367
368 * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
369 * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
370 (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
371 (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
372 * frame.c (execute_cfa_insn): Handle
373 DW_CFA_GNU_negative_offset_extended.
374
375 2000-02-08 Richard Henderson <rth@cygnus.com>
376
377 * flow.c (tidy_fallthru_edges): Split out from ...
378 (delete_unreachable_blocks): ... here.
379 (find_basic_blocks): Use it.
380
381 Tue Feb 8 15:51:50 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
382
383 * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
384
385 2000-02-08 Zack Weinberg <zack@wolery.cumb.org>
386
387 * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
388 (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
389 (fix-header.o): Don't depend on cpphash.h.
390
391 * scan.c (hashstr): New function.
392 * scan.h: Prototype it.
393 * fix-header.c: Don't include cpphash.h. Use hashstr.
394 * gen-protos.c: Don't include cpphash.h or cpplib.h. Use
395 hashstr. Report hash table statistics. Add private
396 definition of xrealloc.
397
398 2000-02-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
399
400 * i386.h (TARGET_SWITCHES): Fix typo in option name.
401
402 2000-02-08 Clinton Popetz <cpopetz@cygnus.com>
403
404 * function.c (thread_prologue_and_epilogue_insns): Don't replace
405 jumps with returns unless they are jumps to the fallthru block.
406
407 Tue Feb 8 07:53:55 2000 Jan Hubicka <jh@suse.cz>
408
409 * i386.md (addqi3_cc): Fix contraints.
410
411 Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
412
413 * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
414
415 2000-02-07 Mark Mitchell <mark@codesourcery.com>
416
417 * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
418 carriage return after a macro name.
419
420 2000-02-07 Fred Fish <fnf@be.com>
421
422 * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
423 so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
424
425 2000-02-07 Zack Weinberg <zack@wolery.cumb.org>
426
427 * cppfiles.c (deps_output): Count spacers in deps_column.
428
429 2000-02-07 Neil Booth <NeilB@earthling.net>
430
431 * cppinit.c (initialize_dependency_output): If there is no
432 suffix, don't try to look for known suffixes. Use strrchr.
433 (cpp_start_read): Remove duplicate initialization.
434
435 Mon Feb 7 18:36:41 MET 2000 Jan Hubicka <jh@suse.cz>
436
437 * calls.c (compute_argument_block_size): New argument
438 preferred_stack_boundary.
439 (expand_call): update cfun->preferred_stack_boundary, update call of
440 compute_argument_block_size
441 (emit_library_call): Increate cfun->preferred_stack_boundary
442 to PREFERRED_STACK_BOUNDARY
443 (emit_library_call_value): Likewise.
444 * explow.c (allocate_dynamic_stack_spave): Likewise.
445 * function.c (prepare_function_start): Set
446 cfun->preferred_stack_boundary
447 * function.h (struct function): Add preferred_stack_boundary field.
448 * integrate.c (expand_inline_function): Update
449 cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
450 (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
451 * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
452
453 2000-02-06 Zack Weinberg <zack@wolery.cumb.org>
454
455 * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
456 cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
457 cpp_pedwarn, cpp_pedwarn_with_line,
458 cpp_pedwarn_with_file_and_line): Move to cpperror.c.
459 (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
460 v_cpp_error_with_line, v_cpp_warning_with_line,
461 cpp_message_from_errno, cpp_perror_with_name): Delete.
462
463 * cpperror.c (cpp_print_containing_files): Take starting
464 buffer as argument.
465 (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
466 (v_cpp_message): Now called directly by all entry points.
467 Remove -1 case.
468 (cpp_pfatal_with_name, cpp_message): Delete.
469 (cpp_notice_from_errno, cpp_ice): New functions.
470 (cpp_notice): Is now for reporting error conditions, just
471 without an associated file.
472 (cpp_error, cpp_error_with_line): Don't do anything if
473 opts->inhibit_errors is on.
474 (cpp_pedwarn_with_file_and_line): Take column argument also.
475
476 * cpplib.h: Update prototypes of exported functions.
477 (struct cpp_options): Add inhibit_errors.
478
479 * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
480 non-error messages. Include intl.h.
481
482 * cppinit.c, cppmain.c: Likewise. Also, use
483 cpp_notice_from_errno instead of cpp_perror_with_name or
484 cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
485
486 * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
487 report internal errors.
488
489 * cpplib.c (do_define): Switch bcopy to memcpy.
490 Give cpp_pedwarn_with_file_and_line a dummy column argument.
491
492 * cpplib.c (copy_rest_of_line): Revert previous change: don't
493 bail out early if we hit a line comment.
494
495 2000-02-06 Richard Henderson <rth@cygnus.com>
496
497 * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
498 * basic-block.h: Declare them.
499 * emit-rtl.h (active_insn_p): New.
500 (next_active_insn, prev_active_insn): Use it.
501 * rtl.h: Declare it.
502 * function.c (emit_return_into_block): New.
503 (thread_prologue_and_epilogue_insns): Insert return insns instead
504 of epilogues when possible.
505 * jump.c (jump_optimize_1): Remove code to insert a return insn
506 on the fallthru to the exit block.
507
508 * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
509 and for non-empty stack frames.
510 * i386.md (return): Expand to return-pop as needed.
511
512 2000-02-06 Richard Henderson <rth@cygnus.com>
513
514 * simplify-rtx.c (simplify_relational_operation): Canonicalize
515 constant to op1 for testing.
516
517 2000-02-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
518
519 * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
520 (fixuns_truncqfqi2): Use it.
521
522 2000-02-06 Richard Henderson <rth@cygnus.com>
523
524 * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
525 as a TYPE_LEA insn.
526
527 * i386.md (widening and peepholes): Mask the constant instead of
528 using gen_lowpart.
529
530 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
531
532 * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
533 input pointer before possibly branching off to the backslash
534 code.
535 * cpphash.c (macroexpand): Correctly delete \r escapes when
536 stringifying parameters.
537 * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
538 if we can; bail out early if we hit a line comment.
539 (handle_directive): Treat '# 123' in an .S file just like
540 '# <punctuation>'. Discard the shifted '#' if we hit '#\n'.
541 Return 1 for '# not_a_directive'.
542 (get_directive_token): Pop macro buffers here, so that
543 cpp_get_token can't sneakily move past a newline.
544 Add sanity checks.
545 (cpp_get_token): goto randomchar if handle_directive returns 0.
546
547 * cppalloc.c: Update copyright.
548 * cpplib.c: Merge all the static function prototypes into one
549 block.
550 * cpplib.h: Remove #if 0 block.
551
552 * cpperror.c: Remove #ifdef EMACS block.
553 * cppmain.c: Likewise.
554 * cpphash.c: Remove #if 0 blocks.
555 * cppinit.c: Remove #if 0 blocks, and the -lint option.
556 * cpplib.c: Remove #if 0 blocks and code referencing
557 pcp_inside_if or for_lint. Remove duplicate error message.
558 Fix error messages for #else after #else or #elif. Reformat.
559 Remove archaic TODO list.
560 * cpplib.h: Remove pcp_inside_if and for_lint flags.
561
562 2000-02-05 Zack Weinberg <zack@wolery.cumb.org>
563
564 * i386/osf1elf.h: Add missing backslash to multiline string.
565
566 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
567
568 * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
569
570 2000-02-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
571
572 * Makefile.in (c-common.o): Depend on $(EXPR_H).
573
574 * c-common.c: Include expr.h.
575
576 * c-pragma.c (mark_align_stack): Add prototype.
577
578 * caller-save.c (add_stored_regs): Likewise.
579
580 * combine.c (record_promoted_value): Likewise.
581
582 * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
583 Likewise.
584
585 * cppinit.c (new_pending_define): Likewise.
586
587 * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
588
589 * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
590 AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
591 AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
592 class_scope_p): Likewise.
593
594 * dwarf2out.h (dwarf2out_set_demangle_name_func,
595 dwarf2out_add_library_unit_info): Likewise.
596
597 * ggc.h (ggc_page_print_statistics): Likewise.
598
599 * haifa-sched.c (propagate_deps): Likewise.
600
601 * reg-stack.c (next_flags_user, record_label_references): Likewise.
602
603 * rtl.h (set_stack_check_libfunc): Likewise.
604
605 * toplev.h (set_fatal_function): Likewise.
606
607 * toplev.c (set_fatal_function): Delete prototype.
608
609 * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
610
611 2000-02-05 Geoff Keating <geoffk@cygnus.com>
612
613 * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
614 (FUNC_END): Likewise.
615
616 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
617
618 * caller-save.c: Include tm_p.h.
619
620 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
621
622 * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
623
624 2000-02-04 Neil Booth <NeilB@earthling.net>
625
626 * cccp.c (main): Check 'dir' for a NULL pointer before passing
627 it to strcmp.
628
629 2000-02-04 Zack Weinberg <zack@wolery.cumb.org>
630
631 * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
632 * genflags.c: Use the max_operand_1 logic from genemit.c to
633 calculate how many arguments gen_insn prototypes have. Remove
634 NO_MD_PROTOTYPES ifdefs from the generated file.
635 * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
636 file. Cast gen_insn initializers to insn_gen_fn.
637 * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
638 * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
639
640 2000-02-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
641
642 * fixinc/Makefile.in (HDR): Add machname.h.
643 (clean): Likewise.
644
645 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
646
647 * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
648 (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
649 (c4x_cpu_version): Ditto.
650 * config/c4x/c4x-protos.h: ... here.
651
652 2000-02-04 Jason Merrill <jason@casey.cygnus.com>
653
654 * dwarf2out.c (add_abstract_origin_attribute): Don't call
655 gen_abstract_function on our context if we're a nested function.
656
657 2000-02-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
658
659 * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
660 * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
661
662 2000-02-04 Bruce Korb <bkorb@gnu.org>
663
664 * fixinc/genfixes(machname.h):
665 Move the functionality from gen-machine.h into this file.
666 UNdef MN_NAME_PAT if there are no names to change.
667 Also, be a little kinder when AutoGen is not present.
668
669 * fixinc/Makefile.in(machname.h):
670 Change the generation rule to use genfixes.
671
672 * fixinc/fixfixes.c(machine_name):
673 machine_name_fix's functionality now dependent upon whether
674 MN_NAME_PAT is defined.
675
676 * fixinc/fixtests.c(machine_name):
677 ditto.
678
679 * fixinc/fixlib.c(mn_get_regexps): conditional on definition
680 of MN_NAME_PAT.
681
682 * fixinc/fixlib.h(mn_get_regexps):
683 ditto
684
685 * fixinc/gen-machine.h: DELETED
686
687 2000-02-04 Jan Hubicka <jh@suse.cz>
688 Richard Henderson <rth@cygnus.com>
689
690 * i386.c (SAVE_REGS_FIRST): Remove.
691 (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
692 (ix86_compute_frame_size): Likewise.
693 (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack.
694 (ix86_emit_restore_regs): Remove.
695 (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
696 when a frame pointer is in use.
697 (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov
698 instead of pop to restore a register when profitable; emit leave
699 when profitable.
700 (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
701 as a TYPE_LEA insn.
702 (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
703 * i386.md (prologue_allocate_stack): Remove.
704 (epilogue_deallocate_stack): Remove.
705 (pro_epilogue_adjust_stack): New.
706
707 2000-02-04 Richard Henderson <rth@cygnus.com>
708
709 * function.c (diddle_return_value): Rework to use a callback function.
710 Use current_function_return_rtx if it's been set up.
711 (do_clobber_return_reg, clobber_return_register): New.
712 (do_use_return_reg, use_return_register): New.
713 (expand_function_end): Use them.
714 * stmt.c (expand_null_return): Likewise.
715 * function.h: Declare them.
716 * flow.c (mark_regs_live_at_end): Use diddle_return_value.
717 (mark_reg): Change arguments as appropriate for callback.
718 * integrate.c (expand_inline_function): Revert 19 Jan change.
719
720 Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson <hp@bitrange.com>
721
722 * tm.texi (Values in Registers): Fix typo: "fo" "for".
723 (Misc): Say the scheduler, not the Haifa scheduler.
724
725 2000-02-04 Clinton Popetz <cpopetz@cygnus.com>
726
727 * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
728 when in_mem is set. Update all callers.
729
730 2000-02-04 Richard Henderson <rth@cygnus.com>
731
732 * i386/openbsd.h (INT_ASM_OP): Define.
733
734 Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson <hp@bitrange.com>
735
736 * tm.texi: Fix various typos.
737
738 Thu Feb 3 17:17:32 2000 Steve Ellcey <sje@cup.hp.com>
739
740 * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
741 (MD_STARTFILE_PREFIX_1): New macro.
742
743 Thu Feb 3 15:08:13 MET 2000 Jan Hubicka <jh@suse.cz>
744
745 * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
746 destination when needed.
747 (strmovsi, strsetsi): New expander.
748 (strmovsi_1, strsetsi_1): New pattern.
749 * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
750 TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
751 (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
752 * invoke.texi (align-stringops, inline-all-stringops): Document.
753
754 Wed Feb 2 23:04:47 2000 Krister Walfridsson <cato@df.lth.se>
755
756 * i386/netbsd.h (INT_ASM_OP): Define.
757
758 2000-02-02 Zack Weinberg <zack@wolery.cumb.org>
759
760 * cpplib.h (cpp_reader): Add new flag, no_directives.
761 * cpphash.c (macarg): Set it.
762 * cpplib.c (handle_directive): If no_directives is on and we
763 find a directive, issue an error and discard the line.
764
765 Wed Feb 2 13:07:10 2000 Jim Wilson <wilson@cygnus.com>
766
767 * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
768 FP constants. Add ! TARGET_FPU check for FP constants.
769
770 2000-02-02 Clinton Popetz <cpopetz@cygnus.com>
771
772 * flow.c (find_basic_blocks): Don't kill label_value_list
773 here.
774 (cleanup_cfg): Kill it here.
775
776 Wed Feb 2 08:12:30 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
777
778 * expr.c (store_field): Ensure ALIGN is no stricter than the
779 alignment of EXP.
780
781 2000-02-02 Richard Henderson <rth@cygnus.com>
782
783 * jump.c (delete_insn): Partially revert 19 Jan change;
784 don't convert unused code labels to notes at -O0.
785
786 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
787
788 * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
789 split_all_insns to recreate REG_LABEL notes for flow2 pass.
790
791 2000-02-01 Richard Henderson <rth@cygnus.com>
792
793 * i386.c (general_no_elim_operand): New.
794 (nonmemory_no_elim_operand): New.
795 (ix86_expand_move): Copy eliminable operands before a push.
796 * i386-protos.h: Declare new functions.
797 * i386.h (CAN_ELIMINATE): Simplify.
798 (PREDICATE_CODES): Update.
799 * i386.md (push insns): Don't allow eliminable register operands.
800
801 2000-02-01 Richard Henderson <rth@cygnus.com>
802
803 * flow.c (mark_regs_live_at_end): Follow expand_function_end and
804 replace BLKmode with DECL_RTL's mode.
805
806 2000-02-01 Zack Weinberg <zack@wolery.cumb.org>
807
808 * frame.c (find_fde): Convert for loop to do-while so compiler
809 sees it's always executed at least once.
810 * libgcc2.c (BBINBUFSIZE): Kill.
811 (__bb_init_prg): Use fgets.
812 (__bb_exit_trace_func): Don't paste strings.
813 * unroll.c (unroll_loop): Initialize unroll_type, not
814 unroll_number, and tweak logic to match.
815
816 * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
817 all failure paths.
818 (ix86_flags_dependant): Likewise. Disentangle control flow.
819 (ix86_sched_reorder): Break guts out to
820 ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
821 (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
822 any possible use.
823
824 * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
825 use string concatenation. Don't save and restore esi.
826
827 * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
828 (machname.h): Remove script to separate file. Use two-step
829 sequence so target is not created if script fails.
830 * fixinc/gen-machname.h: New file. Handle case where no non-reserved
831 identifiers are defined.
832 * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
833 an empty string, machine_name doesn't need to do anything at
834 all.
835 (is_cxx_header): Add more cases to regexp.
836 * fixinc/fixlib.h: Update prototype.
837 * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
838 mn_get_regexps.
839 * fixinc/fixincl.c: Define NO_BOGOSITY.
840
841 * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
842 (hp_sysfile): Add missing comma.
843 (math_exception): Put the wrapper ifdefs at the beginning and
844 the end of the file.
845 * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
846
847 2000-02-01 Richard Henderson <rth@cygnus.com>
848
849 * sparc.c (fp_zero_operand): Turn into a normal predicate.
850 Use CONST0_RTX. Update all callers.
851 * sparc.h, sparc-protos.h: Update accordingly.
852 * sparc.md (fp mov insns): Use fp_zero_operand directly
853 where applicable.
854
855 Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson <hp@bitrange.com>
856
857 * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
858 example.
859
860 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
861
862 * Makefile.in (specs.ready): New target.
863 (fixinc.sh): Depend on `specs.ready' instead of `specs'.
864
865 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
866
867 * fixinc.irix: Use unique filenames for writing into /tmp,
868 * fixinc.ptx: Likewise.
869 * fixinc.sco: Likewise.
870 * fixinc.svr4: Likewise.
871 * fixinc.winnt: Likewise.
872
873 2000-02-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
874
875 * tsystem.h: New file.
876
877 * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
878 s-crtS): Depend on tsystem.h.
879
880 * crtstuff.c: Include tsystem.h.
881 * frame.c: Likewise.
882 * libgcc2.c: Likewise.
883
884 Tue Feb 1 19:53:27 CET 2000 Jan Hubicka <jh@suse.cz>
885
886 * builtins.c (expand_builtin_memset): Expand for variable sized
887 lengths too.
888
889 2000-02-01 David Billinghurst <David.Billinghurst@riotinto.com.au>
890
891 * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
892 on ABI.
893
894 Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
895
896 * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
897
898 * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
899
900 2000-01-31 Chandra Chavva <cchavva@cygnus.com>
901
902 * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
903 case 3->2 combining (combining with splitting) in which 2 is CC0
904 setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
905 checked at the begining of the function with the aid of calling
906 function 'can_combine_p'.
907
908 2000-01-31 Dave Brolley <brolley@redhat.com>
909
910 * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
911
912 2000-01-31 Jason Merrill <jason@casey.cygnus.com>
913
914 * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
915 new label.
916
917 2000-01-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
918
919 * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
920
921 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
922 PROTO -> PARAMS.
923
924 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
925
926 * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
927 i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
928 i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
929 i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
930 i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
931 i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
932 i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
933 i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
934 i386/vxi386.h, i386/win-nt.h, i386/win32.h:
935 Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
936
937 * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
938 Add %(cpp_cpu) to CPP_SPEC.
939
940 * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
941 Add %(cc1_cpu) to CC1_SPEC.
942
943 2000-01-28 Ulrich Drepper <drepper@redhat.com>
944
945 * c-decl.c (c_decode_option): Accept optional numeric argument to
946 -Wformat and set warn_format.
947 * c-common.c: Don't emit warning about non-constant printf format
948 string unless warn_format > 1.
949
950 2000-01-30 Richard Henderson <rth@cygnus.com>
951
952 * alpha.md (return_internal): Allow after reload only.
953
954 2000-01-30 Richard Henderson <rth@cygnus.com>
955
956 * i386.c (ix86_compute_frame_size): Omit padding1 if the
957 local frame size is zero.
958
959 2000-01-30 Richard Henderson <rth@cygnus.com>
960
961 * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
962 * alpha.h (EPILOGUE_USES): New. Mark $26 live.
963 * alpha.md (return): Turn into an expander.
964 (return_internal): Don't use $26.
965 (epilogue): Emit the return insn.
966
967 2000-01-30 Richard Henderson <rth@cygnus.com>
968
969 * alpha.md (negtf2, abstf2): Fix word order thinko.
970 (extendsftf2): New.
971 (trunctfsf2): Avoid intermediate rounding errors.
972
973 2000-01-30 Zack Weinberg <zack@wolery.cumb.org>
974
975 * cppfiles.c (find_position): Drop 'colp' argument, return the
976 new line base.
977 (read_and_prescan): Adjust to match. Don't ever manipulate
978 line or line_base except via find_position.
979
980 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
981
982 * c-parse.in: Apply Ulrich's changes from c-parse.y.
983 * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
984 Regenerate.
985
986 2000-01-29 Zack Weinberg <zack@wolery.cumb.org>
987
988 * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
989 just print "<command line>". If 'filename' is null or an
990 empty string, print "<stdin>" for the filename.
991 * cpplib.c (do_define): Don't print the 'location of the
992 previous definition' message if we're still parsing the
993 command line.
994 (cpp_pedwarn_with_file_and_line): Always call
995 cpp_file_line_for_message.
996
997 2000-01-29 Mark Mitchell <mark@codesourcery.com>
998
999 * flow.c (mark_regs_live_at_end): Fix typo.
1000
1001 2000-01-28 Ulrich Drepper <drepper@redhat.com>
1002
1003 * c-common.c: Adjust variable names, comments, help strings to c99.
1004 * c-lex.c: Likewise.
1005 * c-parse.y: Likewise.
1006 * c-tree.h: Likewise.
1007 * cccp.c: Likewise.
1008 * cpplib.h: Likewise.
1009 * c-decl.c: Likewise. Recognize options with names "*99" as well.
1010 * cppinit.c: Likewise.
1011
1012 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1013
1014 * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
1015 * c4x.c: Define the optab rtx values.
1016 (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
1017 (c4x_emit_libcall): Use new optab rtx values.
1018 (c4x_emit_libcall3): Likewise.
1019 (c4x_emit_libcall_mulhi): Likewise.
1020 * c4x-protos.h: Add prototypes for optab rtx values and change
1021 prototypes for above c4x_emit_libcall functions.
1022
1023 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1024
1025 * c4x.c (c4x_output_ascii): Restrict line length of output when TI
1026 syntax is used.
1027 (c4x_function_prologue): Use regnames intead of float_reg_names when
1028 TI syntax is used.
1029 (c4x_function_epilogue): Likewise.
1030 (c4x_print_operand): Likewise.
1031 * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
1032 * c4x.md (set_high): Disable for TARGET_TI.
1033
1034 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1035
1036 * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
1037 of framepointer + constant to ADDR_REGS class.
1038 * c4x.md (addqi3, addqi3_noclobber_reload): Update.
1039 * c4x.c (std_or_reg_operand): New function.
1040 * c4x-protos.h (std_or_reg_operand): Prototype it.
1041
1042 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1043
1044 * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
1045 object names as libgcc2.c.
1046 * libgcc.S: Use newly defined names.
1047
1048 Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
1049 * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
1050 function.
1051 * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
1052 * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
1053 (FLOW_LOOP_LAST_BLOCK): Likewise.
1054
1055 2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1056
1057 * basic-block.h (struct loop): New fields 'first' and 'last'.
1058 * flow.c (flow_loops_find): Compute loop->first and loop->last.
1059 (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
1060 and loop->last to check for NOTE_INSN_LOOP_END.
1061
1062 Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
1063
1064 * predict.c (estimate_probability): Use the new FIRST and LAST fields
1065 of the loop descriptor rather than HEADER and LATCH. Also added
1066 missing break statements as well making some coding style modifications
1067 as suggested by Michael Hayes.
1068
1069 2000-01-28 Richard Henderson <rth@cygnus.com>
1070
1071 * flow.c (find_basic_blocks): Remove do_cleanup argument.
1072 Break out that code ...
1073 (cleanup_cfg): ... here.
1074 (commit_one_edge_insertion): Detect a return instruction being
1075 emitted to an edge. Emit a barrier following; clear fallthru.
1076 (commit_edge_insertions): Verify CFG consistency.
1077 * function.c (expand_function_start): Kill unused variable.
1078 (expand_function_end): Likewise.
1079 (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
1080 to insert the epilogue.
1081
1082 * gcse.c (gcse_main): Adjust for find_basic_blocks change.
1083 (delete_null_pointer_checks): Likewise.
1084 * output.h: Likewise.
1085 * reg-stack.c (reg_to_stack): Likewise.
1086 * toplev.c (rest_of_compilation): Likewise. Run
1087 thread_prologue_and_epilogue_insns after rebuilding the CFG.
1088
1089 2000-01-28 Richard Henderson <rth@cygnus.com>
1090
1091 * Makefile.in (flow.o): Revert 24 Jan change.
1092 * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode
1093 FUNCTION_VALUE result to DECL_RESULT's mode.
1094
1095 * haifa-sched.c (schedule_insns): Don't recompute reg info
1096 after reload.
1097
1098 2000-01-28 Zack Weinberg <zack@wolery.cumb.org>
1099
1100 * configure.in: Make --enable-cpplib the default.
1101 * configure: Regenerate.
1102 * gcc.dg/990119-1.c: No longer expected to fail.
1103
1104 2000-01-28 Bernd Schmidt <bernds@cygnus.co.uk>
1105
1106 * jump.c (jump_optimize_1): Delete an optimization that is also done
1107 by merge_blocks in flow.
1108
1109 2000-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1110
1111 * diagnostic.c (build_message_string, output_printf,
1112 line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
1113 (build_location_prefix): Fix non-literal format string.
1114
1115 2000-01-27 Richard Henderson <rth@cygnus.com>
1116
1117 * alpha.md (trunctfsf2): New.
1118
1119 2000-01-27 Andrew Hobson <ahobson@eng.mindspring.net>
1120
1121 * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
1122
1123 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
1124
1125 * cppinit.c (cpp_handle_option): Recognize C++ comments under
1126 -std=gnu89.
1127 * cpplib.c (skip_block_comment, skip_line_comment): Split code
1128 out of...
1129 (skip_comment) ... here. Permit C++ comments in system
1130 headers always. Warn about C++ comments in user code under
1131 -std=gnu89 -pedantic.
1132 (copy_comment): Use skip_comment.
1133 (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
1134 return EOF.
1135 (consider_directive_while_skipping, do_else, do_endif): Call
1136 validate_else unconditionally.
1137 (validate_else): Check CPP_PEDANTIC here. Accept non-comment
1138 text after the conditional in a system header.
1139 * cpplib.h (struct cpp_buffer): Add flag
1140 warned_cplusplus_comments.
1141
1142 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
1143
1144 * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
1145 Use unshare_all_rtl_1.
1146 (unshare_all_rtl_again): New function.
1147 (unshare_all_rtl_1): New function split out of unshare_all_rtl.
1148
1149 * function.c (purge_addressof_1): Use unshare_all_rtl_again
1150 rather than resetting the 'used' flags ourself.
1151
1152 * toplev.c (rest_of_compilation): Add current_function_decl
1153 to the unshare_all_rtl call.
1154 * tree.h: Prototype unshare_all_rtl.
1155 * rtl.h: Prototype unshare_all_rtl_again here.
1156
1157 2000-01-27 Geoffrey Keating <geoffk@cygnus.com>
1158
1159 * genoutput.c (output_prologue): Include ggc.h in generated
1160 files.
1161 * Makefile.in (insn-output.o): Depends on ggc.h.
1162
1163 2000-01-27 Ian Dall <ian@sibyl.beware.dropbear.id.au>
1164 Hans-Peter Nilsson <hp@bitrange.com>
1165
1166 * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
1167 Remove redundant include of xm-ns32k.h.
1168 * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
1169 Remove redundant include of xm-ns32k.h.
1170 * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
1171 Remove redundant include of xm-ns32k.h.
1172 * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
1173
1174 * ns32k/ns32k.h: Update comment on multiply-add instructions.
1175 (TARGET_SWITCHES): Add documentation strings.
1176 (DWARF_FRAME_REGNUM): Override default definition.
1177 (REG_CLASS_CONTENTS): Add comments.
1178 (SUBSET_P): Format to reduce line length.
1179 (SMALL_REGISTER_CLASSES): Make a run time option.
1180 (GO_IF_NONINDEXED_ADDRESS): Reformat.
1181 (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
1182 dereferencing it. Braces to avoid "ambiguous else" were misplaced.
1183 (regclass_map): fix typo in comment.
1184 * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
1185 Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
1186 (trace, reg_or_mem_operand): Delete, unused function.
1187 (calc_address_cost): Small offsets are cheaper than large ones.
1188 (expand_block_move): Generate more efficient code when bytes is a
1189 known at compile time.
1190 * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
1191 (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
1192 instead of reg_or_mem_operand.
1193
1194 * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
1195 not general_operand. Similarly use "=rm" or stricter, not "=g".
1196 For input operands, use stricter constraints than "g" if not
1197 general_operand. Similarly use stricter predicate than
1198 "general_operand" when stricter constraints than "g" are present,
1199 except for matching constraints.
1200 (movstrsi): Use "memory_operand" for operands 0 and 1.
1201 (truncsiqi2, truncsihi2, trunchiqi2): Remove.
1202 (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
1203 not reg_or_mem_operand.
1204 (udivmoddisi4): Ditto.
1205 Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
1206 Use nonimmediate_operand for operand 3, not register_operand.
1207 (udivmoddiqi4_internal): Use register_operand for operand 1, not
1208 reg_or_mem_operand.
1209
1210 2000-01-27 Fred Fish <fnf@be.com>
1211
1212 * gthr-posix.h: Fix typo; compatibily -> compatibility.
1213 * gthr-single.h: Likewise.
1214 * gthr-solaris.h: Likewise.
1215 * gthr-vxworks.h: Likewise.
1216 * gthr-win32.h: Likewise.
1217 * gthr.h: Likewise.
1218
1219 2000-01-27 Zack Weinberg <zack@wolery.cumb.org>
1220
1221 * cppinit.c: Add " (cpplib)" to end of string printed by
1222 -v / --version.
1223
1224 2000-01-27 Richard Henderson <rth@cygnus.com>
1225
1226 * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
1227 testing for a signed comparison.
1228 (alpha_emit_floatuns): New.
1229 * alpha-protos.h: Declare it.
1230 * alpha.md (floatunsdisf2, floatunsdidf2): New.
1231 (extendsfdf2): Tidy.
1232
1233 2000-01-27 Jakub Jelinek <jakub@redhat.com>
1234
1235 * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
1236 no -g option specifying debugging format, default to -gstabs+.
1237
1238 Wed Jan 26 22:19:14 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
1239
1240 * calls.c (special_function_p): New argument fork_or_exec.
1241 (expand_call): When profile_arc_flag is set and the function
1242 is in the fork_or_exec group, call __bb_fork_func first.
1243 * libgcc2.c, _bb module (__bb_fork_func): New function.
1244 (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
1245 output file.
1246 * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
1247 * tree.h (special_function_p): Update prototype.
1248
1249 2000-01-26 Richard Henderson <rth@cygnus.com>
1250
1251 * alpha.c (alpha_split_tfmode_pair): New.
1252 * alpha-protos.h: Declare it.
1253 * alpha.md (abstf2, negtf2): New.
1254 (movtf insn): Add input G constraint.
1255 (movtf splitter): Use alpha_split_tfmode_pair.
1256
1257 2000-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1258
1259 * i386/cygwin.h: PROTO -> PARAMS.
1260
1261 2000-01-26 Jakub Jelinek <jakub@redhat.com>
1262
1263 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
1264 TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
1265 using _Qp_cmp/_Q_cmp and testing the return value.
1266 (print_operand): Call reverse_condition_maybe_unordered if
1267 we are handling CCFPmode or CCFPEmode.
1268 Handle ORDERED, UN* and LTGT comparisons.
1269 * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
1270 if not TARGET_HARD_QUAD.
1271 (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
1272 bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
1273 Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
1274 Adjust gen_b* calls so that they reflect return comparison of
1275 sparc_emit_float_lib_cmp.
1276
1277 2000-01-26 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1278
1279 * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
1280 incoming operands array is large enough for one more operand.
1281 (alpha_emit_xfloating_arith): Likewise.
1282
1283 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
1284
1285 * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
1286 file with one line and no trailing newline.
1287 Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
1288 * fixinc/fixtests.c (machine_name_test): Fix fencepost error
1289 checking if the match is on the line.
1290 * fixinc/gnu-regex.c: Provide regerror not __regerror.
1291
1292 2000-01-25 Richard Henderson <rth@cygnus.com>
1293
1294 * sparc.c (output_cbranch): Fix accidental squashing of the
1295 fp branch pre-delay nop.
1296
1297 2000-01-25 Richard Henderson <rth@cygnus.com>
1298
1299 * tree.def (UNNE_EXPR): Remove.
1300 * c-typeck.c (build_binary_op): Don't handle it.
1301 * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
1302
1303 * rtl.def (UNNE): Remove.
1304 (LTGT): Add.
1305 * jump.c (reverse_condition): Update accordingly.
1306 (swap_condition): Likewise.
1307 (comparison_dominates_p): Handle unordered comparisons.
1308 (reverse_condition_maybe_unordered): New.
1309 * rtl.h (reverse_condition_maybe_unordered): Declare.
1310
1311 * sparc.c (select_cc_mode): Update for UNNE/LTGT.
1312 (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
1313 * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs.
1314 * sparc.md (bltgt): New.
1315
1316 2000-01-25 Nick Clifton <nickc@redhat.com>
1317
1318 * emit-rtl.c (emit_insn): Only check machine class insns for
1319 improper emission of a RETURN.
1320
1321 2000-01-25 Richard Henderson <rth@cygnus.com>
1322
1323 * Makefile.in (flow.o): Depend on $(EXPR_H).
1324 * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
1325 duplicate the structure of diddle_return_value for keeping regs live.
1326
1327 2000-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1328
1329 * loop.c (current_loop_info): Delete.
1330 (consec_sets_invariant_p): Add loop argument, update callers.
1331 (get_condition_for_loop): Likewise.
1332 (count_nonfixed_reads, update_giv_derive): Likewise.
1333 (simplify_giv_expr, general_induction_var): Likewise.
1334 (consec_sets_giv, recombine_givs): Likewise.
1335 (move_movables): Delete loop_start and loop_end arguments,
1336 add loop argument, and update callers.
1337 (find_mem_givs, check_final_value): Likewise.
1338 (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
1339 (loop_invariant_p): Rename from invariant_p, add loop argument, and
1340 update callers.
1341 (basic_induction_var): Add loop argument, delete loop_level argument,
1342 and update callers.
1343 * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
1344 add loop argument, and update callers.
1345 (find_splittable_regs, find_splittable_givs): Likewise.
1346 (reg_dead_after_loop, loop_find_equiv_value): Likewise.
1347 (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
1348 (biv_total_increment): Delete loop_start and loop_end arguments;
1349 update callers.
1350 (precondition_loop_p): Delete loop_start and loop_info arguments;
1351 update callers.
1352 * loop.h (get_condition_for_loop): Add loop argument.
1353 (biv_total_increment): Delete loop_start and loop_end arguments.
1354 (precondition_loop_p): Delete loop_start and loop_info arguments;
1355 add loop argument.
1356 (final_biv_value): Delete loop_start and loop_end arguments;
1357 add loop argument.
1358 (final_giv_value, back_branch_in_range_p): Likewise.
1359
1360 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
1361
1362 * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
1363
1364 2000-01-25 Gavin Romig-Koch <gavin@cygnus.com>
1365
1366 * Makefile.in (c-gperf.h) : Change the "See" pointer to
1367 point to the new "generated_files" doc.
1368
1369 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
1370
1371 * config/fp-bit.c (_unord_f2): Fix typo.
1372
1373 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
1374
1375 * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
1376 c-typeck.c, objc/objc-act.c: Remove all references to obstack
1377 functions obsoleted by GC, such as push_obstacks_nochange,
1378 end_temporary_allocation, savealloc, saveable_tree_cons, etc.
1379 and code which existed only to decide whether or not to call
1380 them. Remove now-unused NESTED argument from start_function;
1381 all callers changed. Do not change behavior based on ggc_p.
1382 The use of the ixp_obstack in c-iterate.c and the util_obstack
1383 in objc/objc-act.c remain; these are not obsoleted by garbage
1384 collection.
1385 * c-tree.h: Update prototype for start_function.
1386
1387 * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
1388
1389 2000-01-25 Clinton Popetz <cpopetz@cygnus.com>
1390
1391 * config/mips/mips.md (zero_extendsidi2_internal): Disable for
1392 mips16.
1393
1394 2000-01-25 Richard Henderson <rth@cygnus.com>
1395
1396 * sparc-protos.h (select_cc_mode): Declare.
1397 * sparc.c (select_cc_mode): New. Handle unordered compares.
1398 (output_cbranch): Always reverse via code change. Handle
1399 unordered compares. Factor tests and string updates.
1400 * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
1401 (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
1402 * sparc.md (bunordered, bordered): New.
1403 (bungt, bunlt, buneq, bunge, bunle): New.
1404
1405 2000-01-25 Richard Henderson <rth@cygnus.com>
1406
1407 * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
1408 * ggc-common.c (ggc_add_rtx_varray_root): New.
1409 (ggc_mark_rtx_varray): New.
1410 (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr
1411 functions down below ggc_mark_foo.
1412 * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
1413
1414 2000-01-25 Richard Henderson <rth@cygnus.com>
1415
1416 * alpha.c (secondary_reload_class): Don't allocate a secondary
1417 for integral mode memories into FLOAT_REGS. Rearrange the more
1418 complicated memory expression inward.
1419
1420 2000-01-25 Zack Weinberg <zack@wolery.cumb.org>
1421
1422 * inclhack.def: Fixes to play nicer with FreeBSD, and
1423 corrections to comments.
1424 (cxx_unready): Add select expression.
1425 (irix_sockaddr): Add bypass expression.
1426 (machine_ansi_h_va_list): New fix.
1427 (stdio_va_list): No need to edit _BSD_VA_LIST_.
1428 Split out addition of "#include <stdarg.h>" to...
1429 (stdio_stdarg_h): ... here.
1430 (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply
1431 to stdlib.h also. Do not munge _BSD_SIZE_T_.
1432 (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
1433 size_t.
1434 (ultrix_ifdef): Tighten up select expression.
1435
1436 * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of
1437 re_ct and max_mach to avoid use of shell. Make printed names
1438 match names in inclhack.def. Use static copyright date.
1439 Don't count c_test and test expressions as requiring regex_t
1440 slots. Add some commentary.
1441 * inclhack.tpl: Do not include the 'This script contains N
1442 fixup scripts' line if PROGRAM is defined. Use static
1443 copyright date.
1444
1445 2000-01-24 Jason Merrill <jason@casey.cygnus.com>
1446
1447 * dwarf2out.c: include "varray.h", not dyn-string.h.
1448 (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
1449 (addr_const_to_string, addr_to_string): Lose.
1450 (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
1451 (struct dw_val_struct): val_addr is now an rtx.
1452 (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
1453 (used_rtx_varray): New varray.
1454 (dwarf2out_init): Initialize it.
1455 (save_rtx): New fn.
1456 (mem_loc_descriptor, add_const_value_attribute): Call it instead of
1457 addr_to_string.
1458 * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
1459 sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
1460 * Makefile.in (dwarf2out.o): Update dependencies.
1461
1462 2000-01-24 Richard Henderson <rth@cygnus.com>
1463
1464 * i386.c (i386_dwarf_output_addr_const): New.
1465 * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
1466
1467 * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
1468 if defined.
1469 * dwarfout.c (output_mem_loc_descriptor): Likewise.
1470 * i386.c (i386_simplify_dwarf_addr): New.
1471 * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
1472
1473 Mon Jan 24 16:56:10 2000 Jim Wilson <wilson@cygnus.com>
1474
1475 * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
1476 TYPE_STUB_DECL is NULL.
1477
1478 2000-01-24 Richard Henderson <rth@cygnus.com>
1479
1480 * builtins.c (expand_tree_builtin): Move ...
1481 * c-common.c (expand_tree_builtin): ... here.
1482
1483 2000-01-25 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1484
1485 * loop.h (LOOP_INFO): New accessor macro.
1486 * basic-block.h (struct loop): Rename field `info' to `aux'.
1487 * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
1488 (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
1489 * unroll.c (loop_iterations, unroll_loop): Likewise.
1490
1491 2000-01-24 Christopher Faylor <cgf@cygnus.com>
1492
1493 * config/i386/t-cygwin: Accomodate new winsup directory layout
1494 when searching for include files.
1495
1496 2000-01-24 Richard Henderson <rth@cygnus.com>
1497
1498 * rtl.def: Add unordered fp comparisions.
1499 * tree.def: Likewise.
1500 * tree.h: Add ISO C 9x unordered fp comparision builtins.
1501
1502 * builtins.c (expand_tree_builtin): New function.
1503 * c-typeck.c (build_function_call): Use it.
1504 (build_binary_op): Support unordered compares.
1505 * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
1506
1507 * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
1508 (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
1509 * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
1510 (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
1511 * jump.c (reverse_condition): Don't abort for UNLE etc, but
1512 return UNKNOWN.
1513 (swap_condition): Handle unordered compares.
1514 (thread_jumps): Check can_reverse before reversing.
1515 * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be
1516 reversed for FP.
1517
1518 * optabs.c (can_compare_p): New argument CODE. Verify branch or
1519 setcc is present before acking for cmp_optab. Update all callers.
1520 (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
1521 * expmed.c (do_cmp_and_jump): Update for can_compare_p.
1522 * expr.c (expand_expr): Likewise. Support unordered compares.
1523 (do_jump, do_store_flag): Likewise.
1524 * expr.h (enum libfunc_index): Add unordered compares.
1525
1526 * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
1527 (DPBIT_FUNCS): Add _unord_df.
1528 * config/fp-bit.c (_unord_f2): New.
1529 * fp-test.c (main): Try unordered compare builtins.
1530
1531 * alpha-protos.h (alpha_fp_comparison_operator): Declare.
1532 * alpha.c (alpha_comparison_operator): Check mode properly.
1533 (alpha_swapped_comparison_operator): Likewise.
1534 (signed_comparison_operator): Likewise.
1535 (alpha_fp_comparison_operator): New.
1536 (alpha_emit_conditional_branch): Handle unordered compares.
1537 * alpha.h (PREDICATE_CODES): Update.
1538 * alpha.md (fp compares): Use alpha_fp_comparison_operator.
1539 (bunordered, bordered): New.
1540
1541 2000-01-24 Richard Henderson <rth@cygnus.com>
1542
1543 * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
1544 * alpha.md (movtf): New expander, insn, and splitter.
1545
1546 Mon Jan 24 19:49:47 MET 2000 Jan Hubicka <jh@suse.cz>
1547
1548 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
1549 dead registers.
1550
1551 Mon Jan 24 17:37:31 MET 2000 Jan Hubicka <jh@suse.cz>
1552
1553 * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
1554 (FIXED_REGISTERS, CALL_USED_REGISTERS,
1555 REG_ALLOC_ORDER): Add frame pointer
1556 (FRAME_POINTER_REGNUM): Set to 20
1557 (HARD_FRAME_POINTER_REGNUM): New macro.
1558 (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
1559 to HARD_FRAME_POINTER.
1560 (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
1561 (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
1562 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
1563 (HI_REGISTER_NAMES): Add "frame".
1564 (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
1565 (debug_reg): Handle FRAME_POINTER_REGNUM.
1566 (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
1567 GENERAL_REGS and INDEX_REGS.
1568 * i386.c (SAVED_REGS_FIRST): new macro.
1569 (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
1570 (ix86_decompose_address, memory_address_length): Likewise.
1571 (regclass_map): Add frame pointer.
1572 (call_insn_operand): Handle frame_pointer_rtx.
1573 (reg_no_sp_operand): Likewise.
1574 (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
1575 (print_operand, legitimize_pic_address): Fix formating.
1576 (ix86_compute_frame_size): Make static, update prototype, new
1577 parameters padding1, padding2, use ix86_nsaved_regs, use
1578 stack_alignment_needed.
1579 (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
1580 to HARD_FRAME_POINTER_REGNUM conversions.
1581 (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
1582 (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
1583 (print_reg): Abort on FRAME_POINTER_REGNUM
1584
1585 Mon Jan 24 16:50:08 MET 2000 Jan Hubicka <jh@suse.cz>
1586
1587 * i386.h (PREDICATE_CODES): Add aligned_operand.
1588 * i386.c (aligned_operand): New function.
1589 (ix86_aligned_p): Kill.
1590 * i386.md (movhi_1): Emit mov for aligned operands.
1591 (promoting peep2s): Use aligned_operand.
1592
1593 2000-01-23 Zack Weinberg <zack@wolery.cumb.org>
1594
1595 * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
1596 expression to allow underscores in macro names.
1597 (fix_char_macro_defines): Increment scanning pointer.
1598
1599 2000-01-23 Richard Henderson <rth@cygnus.com>
1600
1601 * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
1602 * alpha/osf5.h: New file.
1603 * configure.in (alpha-*-osf5): Add it to tm_file.
1604
1605 * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
1606
1607 * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
1608 (alpha_emit_xfloating_cvt, function_arg): Declare.
1609 * alpha.c (alpha_emit_conditional_branch): Call
1610 alpha_emit_xfloating_compare for TFmode compares.
1611 (alpha_lookup_xfloating_lib_func): New.
1612 (alpha_compute_xfloating_mode_arg): New.
1613 (alpha_emit_xfloating_libcall): New.
1614 (alpha_emit_xfloating_arith): New.
1615 (alpha_emit_xfloating_compare): New.
1616 (alpha_emit_xfloating_cvt): New.
1617 (print_operand): Add default abort case.
1618 (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
1619 * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
1620 (BIGGEST_ALIGNMENT): Increase to 128 bits.
1621 (RETURN_IN_MEMORY): True for TF/TCmode.
1622 (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
1623 (FUNCTION_ARG): Move to function_arg.
1624 (FUNCTION_ARG_PASS_BY_REFERENCE): New.
1625 (ASM_OUTPUT_LONG_DOUBLE): New.
1626 (ASM_OUTPUT_DOUBLE): Always output bits.
1627 * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
1628 (fix_trunctfdi2, floatditf2, floatunsditf2): New.
1629 (extenddftf2, trunctfdf2): New.
1630
1631 2000-01-23 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
1632
1633 * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
1634 * config/sparc/sol2.h: ... here.
1635
1636 2000-01-24 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1637
1638 * basic-block.h (struct loops): New field `levels'.
1639 * flow.c (flow_loops_level_compute): Traverse all outer loops.
1640 (flow_loop_level_compute): Initialise level to 1.
1641 (flow_loops_find): Set loops->levels.
1642 (flow_loops_dump): Print loops->levels.
1643
1644 2000-01-23 Richard Henderson <rth@cygnus.com>
1645
1646 * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
1647 (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
1648
1649 2000-01-23 Richard Henderson <rth@cygnus.com>
1650
1651 * i386.c (dbx_register_map, svr4_dbx_register_map): New.
1652 * i386.h (DBX_REGISTER_NUMBER): Use them.
1653 * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
1654 * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
1655 * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
1656 * i386/sequent.h: Kill incorrect comment.
1657
1658 2000-01-23 Mark Mitchell <mark@codesourcery.com>
1659
1660 * ggc-page.c (struct page_entry): Make `context_depth' an
1661 `unsigned short'.
1662 (struct globals): Likewise.
1663
1664 2000-01-23 Clinton Popetz <cpopetz@cygnus.com>
1665
1666 * loop.c (check_dbra_loop): When checking a loop for
1667 reversability, check the source of any stores to ensure
1668 they don't depend on an initial value.
1669
1670 2000-01-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1671
1672 * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
1673
1674 2000-01-22 Zack Weinberg <zack@wolery.cumb.org>
1675
1676 * fixinc/fixincl.c: Move declarations of 'pz_fname' and
1677 'pz_scan' into scope of entire function. Only affects
1678 compiles with -DDEBUG.
1679
1680 2000-01-22 Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
1681
1682 * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
1683 section naming to that prior to 2000-01-07 patch.
1684 * config/mips/elf.h (UNIQUE_SECTION): Ditto.
1685 * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
1686 * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
1687 * config/i386/interix.c (UNIQUE_SECTION): Ditto.
1688 * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
1689
1690 2000-01-22 Bernd Schmidt <bernds@cygnus.co.uk>
1691
1692 * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
1693 constant.
1694
1695 2000-01-21 Jim Wilson <wilson@cygnus.com>
1696
1697 * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
1698 * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
1699
1700 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
1701
1702 * cpphash.c (change_newlines): Delete function.
1703 (struct argdata): Delete 'newlines' and 'use_count' fields.
1704 (macroexpand): Remove code referencing those fields.
1705
1706 2000-01-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1707
1708 * loop.c (loops_info): New variable.
1709 (loop_optimize): Allocate loops->array and free it on exit.
1710 Allocate memory for loops_info and assign to each loop,
1711 replacing alloca.
1712 (find_and_verify_loops): Do not allocate loops->array.
1713
1714 2000-01-21 Zack Weinberg <zack@wolery.cumb.org>
1715
1716 * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
1717
1718 2000-01-21 Jakub Jelinek <jakub@redhat.com>
1719
1720 * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
1721 pseudos if expanded after first flow.
1722 (movdi_pic_label_ref): Likewise.
1723
1724 2000-01-20 Richard Henderson <rth@cygnus.com>
1725
1726 * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
1727
1728 2000-01-20 Zack Weinberg <zack@wolery.cumb.org>
1729
1730 * Makefile.in (fixinc.sh): Depend on specs.
1731 * fixinc/Makefile.in: Add rule to create machname.h.
1732 (fixlib.o): Depend on machname.h.
1733 * fixinc/fixtests.c (machine_name): New test.
1734 * fixinc/fixfixes.c (machine_name): New fix.
1735 * fixinc/fixlib.c (mn_get_regexps): New helper function for
1736 the machine_name test and fix.
1737 * fixinc/fixlib.h: Prototype it.
1738 * fixinc/inclhack.def (machine_name): Use the C test and fix.
1739 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
1740
1741 * gcc.c (do_spec_1) [case P]: Take care not to create
1742 identifiers with three leading or trailing underscores.
1743
1744 * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
1745 (fixincl): Don't specify libraries twice on link line.
1746 (gnu-regex.o): Remove special rule.
1747 * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
1748 defined by config.h. Do not define _REGEX_RE_COMP.
1749 (regcomp): Allocate and initialize a fastmap.
1750 * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
1751
1752 2000-01-20 Brad Lucier <lucier@math.purdue.edu>
1753
1754 * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
1755
1756 2000-01-19 Richard Henderson <rth@cygnus.com>
1757
1758 * flow.c (propagate_block): Replace FIRST, LAST and BNUM
1759 arguments with BB. Update all callers. Tidy line wrapping.
1760
1761 2000-01-19 Clinton Popetz <cpopetz@cygnus.com>
1762
1763 * emit-rtl.c (try_split): Return last_insn if we split the
1764 last_insn.
1765
1766 Thu Jan 20 01:01:23 MET 2000 Jan Hubicka <jh@suse.cz>
1767
1768 * i386-protos.h (ix86_compute_frame_size): Remove prototype.
1769 (ix86_initial_elimination_offset): Declare.
1770 * i386.c (ix86_nsaved_regs): Break out from ...
1771 (ix86_can_use_return_insn_p): ... here.
1772 (ix86_emit_save_regs): Break out from ...
1773 (ix86_expand_prologue): ... here.
1774 (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
1775 out from ...
1776 (ix86_expand_epilogue): ... here.
1777 (ix86_compute_frame_size): Make static, add prototype.
1778 (ix86_initial_elimination_offset): Break out from ...
1779 * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
1780
1781 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1782
1783 * recog.h (OUT_FCN): Delete.
1784
1785 * vax.md: Call `get_insn_template' instead of OUT_FCN.
1786
1787 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1788
1789 * cppalloc.c: PROTO -> PARAMS.
1790 * cpperror.c: Likewise.
1791 * cppfiles.c: Likewise.
1792 * cpplib.c: Likewise.
1793 * cpplib.h: Likewise.
1794
1795 * config/arm/arm-protos.h: PROTO -> PARAMS.
1796 * config/arm/arm.c: Likewise.
1797 * config/c4x/c4x.c: Likewise.
1798 * config/fr30/fr30-protos.h: Likewise.
1799 * config/nextstep.c: Likewise.
1800 * config/pa/pa.c: Likewise.
1801 * config/pj/pj.c: Likewise.
1802 * config/rs6000/rs6000.c: Likewise.
1803 * config/v850/v850-protos.h: Likewise.
1804 * config/v850/v850.c: Likewise.
1805
1806 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1807
1808 * i370-protos.h: New file.
1809
1810 * i370.c: Include tm_p.h. Fix compile time warnings.
1811
1812 * i370.h: Move prototypes to i370-protos.h. Fix compile time
1813 warnings.
1814
1815 * i370.md: Likewise.
1816
1817 2000-01-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1818
1819 * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
1820 (target_isinf, target_isnan, eisnan): Mark parameter with
1821 ATTRIBUTE_UNUSED.
1822 (eiisinf): Wrap in INFINITY.
1823 (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
1824 (ibmtoe): Remove unused variable `rndsav'.
1825
1826 Wed Jan 19 20:23:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1827
1828 * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
1829 (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
1830
1831 2000-01-19 Zack Weinberg <zack@wolery.cumb.org>
1832
1833 * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
1834 * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
1835 (fix_char_macro_defines, fix_char_macro_uses): New functions.
1836
1837 * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
1838 Recognize Emacs mode markers also.
1839 * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
1840 C++ comments in C++ headers. Call is_cxx_header only if
1841 necessary.
1842
1843 * fixinc/inclhack.def (avoid_bool): Add select for the problem and
1844 bypass for ncurses.
1845 (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
1846 (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
1847 ... these, which use the new C fixes.
1848 (math_exception): Escape literal '+' in bypass expression.
1849
1850 * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
1851 Regenerate.
1852
1853 2000-01-19 Geoff Keating <geoffk@cygnus.com>
1854
1855 * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
1856 inside the MEM.
1857
1858 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1859
1860 * loop.c (loop_optimize): Allocate loop_info structure for each loop
1861 prior to calling scan_loop.
1862
1863 Wed Jan 19 19:54:38 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1864
1865 * sh.c (find_barrier, gen_block_redirect): Fix indentation.
1866 (split_branches, calc_live_regs): Likewise.
1867
1868 Wed Jan 19 19:12:36 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
1869
1870 * sh.md (fpu_single, fp_mode): New attributes.
1871
1872 2000-01-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
1873
1874 * loop.c (current_loop_info): Renamed from loop_info_data
1875 and changed to a pointer.
1876 (loop_optimize): Allocate loop_info structure for each loop
1877 and initialise to zero.
1878 (scan_loop): Set current_loop_info.
1879
1880 * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
1881 on iteration_var.
1882
1883 2000-01-19 Richard Henderson <rth@cygnus.com>
1884
1885 * stupid.c: Die die die.
1886 * Makefile.in (OBJS): Remove stupid.o.
1887 (stupid.o): Likewise.
1888
1889 * except.c (emit_eh_context): Don't emit USEs for stupid.
1890 * explow.c (probe_stack_range): Likewise.
1891 * flags.h (obey_regdecls): Remove.
1892 * flow.c (find_basic_blocks): Don't run try_merge_blocks
1893 when not optimizing.
1894 (life_analysis): Limit data collection when not optimizing.
1895 (mark_regs_live_at_end): Always mark the return value registers.
1896 (mark_used_regs): Remove dummy RETURN case.
1897 (print_rtl_with_bb): Don't consult obey_regdecls.
1898 * function.c (use_variable, use_variable_after): Remove.
1899 (assign_parms): Consult optimize not obey_regdecls.
1900 (expand_function_start): Don't emit USEs for stupid.
1901 (expand_function_end): Likewise.
1902 * global.c (build_insn_chain): Export.
1903 * integrate.c (expand_inline_function): Kill return-value USE
1904 handling code.
1905 * jump.c (jump_optimize_1): Do simple jump optimizations and
1906 dead code elimination.
1907 (calculate_can_reach_end): Remove check_deleted argument.
1908 (delete_insn): Patch out insns even when not optimizing.
1909 * local-alloc.c (block_alloc): Don't do tying when not optimizing.
1910 * rtl.h (use_variable, use_variable_after): Remove declarations.
1911 (build_insn_chain): Declare.
1912 * stmt.c (expand_value_return): Don't emit USEs for stupid.
1913 (expand_end_bindings): Likewise.
1914 (expand_decl): Likewise. Consult optimize not obey_regdecls.
1915 * toplev.c (obey_regdecls): Remove.
1916 (rest_of_compilation): Don't set it. Kill stupid in favour of
1917 flow1, local-alloc, and reload.
1918 (main): Don't set obey_regdecls.
1919
1920 * config/nextstep.c (handle_pragma): Likewise.
1921
1922 * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
1923
1924 * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
1925
1926 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1927
1928 * alpha-protos.h: PROTO -> PARAMS.
1929 * alpha.c: Likewise.
1930 * elf.h: Likewise.
1931 * h8300.c: Likewise.
1932 * i386-protos.h: Likewise.
1933 * i386.c: Likewise.
1934 * m32r-protos.h: Likewise.
1935 * m32r.c: Likewise.
1936 * mips.c: Likewise.
1937 * mips.md: Likewise.
1938 * gmon-sol2.c: Likewise.
1939 * sparc.c: Likewise.
1940
1941 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1942
1943 * ns32k-protos.h: New file.
1944
1945 * ns32k.c: Fix compile time warnings.
1946
1947 * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time
1948 warnings.
1949
1950 * ns32k.md: Likewise.
1951
1952 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1953
1954 * vax-protos.h: New file.
1955
1956 * vax.c: Fix compile time warnings.
1957
1958 * vax.h: Move prototypes to vax-protos.h. Fix compile time
1959 warnings.
1960
1961 * vax.md: Likewise.
1962
1963 * vaxv.md: Likewise.
1964
1965 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1966
1967 * romp-protos.h: New file.
1968
1969 * romp.c: Fix compile time warnings.
1970
1971 * romp.h: Move prototypes to romp-protos.h. Fix compile time
1972 warnings.
1973
1974 * romp.md: Likewise.
1975
1976 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1977
1978 * we32k-protos.h: New file.
1979
1980 * we32k.c: Fix compile time warnings.
1981
1982 * we32k.h: Move prototypes to we32k-protos.h. Fix compile time
1983 warnings.
1984
1985 2000-01-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1986
1987 * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
1988
1989 * except.c (eh_regs): Likewise.
1990
1991 * final.c (output_operand): Likewise.
1992
1993 * fold-const.c (target_isinf, target_isnan): Likewise.
1994
1995 Tue Jan 18 16:19:55 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
1996
1997 * i386.h (BIGGEST_ALIGNMENT): Set to 128.
1998 (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
1999
2000 * i386.md (memstr): Do not use rep stosb for counts divisible by 4
2001 when optimize_size.
2002 (clrstrsi): Rewrite.
2003 (strsethi, strsetqi): New expanders.
2004 (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
2005 (cmpstrsi): Emit compare insn before cmpstrsi_1
2006 (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
2007 (strlensi_1): Likewise.
2008 (cmpstrsi_1): Likewise; do not output compare.
2009 (strlen expander): Do not unroll when optimizing for size.
2010 (*subsi3_carry): Rename to subsi3_carry
2011 (addqi3_cc): New pattern.
2012 * i386.h (processor_costs): Add move_ratio field.
2013 (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
2014 * i386.c (*_cost): Set move_ratio.
2015 (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
2016 (x86_expand_strlensi_1): Rewrite the main loop.
2017
2018 2000-01-17 Richard Henderson <rth@cygnus.com>
2019
2020 * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
2021 * cse.c (find_comparison_args, fold_rtx): Likewise.
2022 * integrate.c (subst_constants): Likewise.
2023 * loop.c (get_condition): Likewise.
2024
2025 * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
2026
2027 * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
2028
2029 2000-01-18 Martin v. Löwis <loewis@informatik.hu-berlin.de>
2030
2031 * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
2032 (RESTORE_WARN_FLAGS): Unpack it.
2033 Change semantic type of extension to ttype.
2034 * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
2035 * c-parse.y, c-parse.c, objc/objc-parse.y,
2036 objc/objc-parse.c: Regenerate.
2037
2038 2000-01-17 Zack Weinberg <zack@wolery.cumb.org>
2039
2040 * fixinc/fixlib.c: Add copyright notice.
2041 (compile_re): New function.
2042 * fixinc/fixlib.h: Prototype compile_re.
2043
2044 * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
2045 Use compile_re to compile regular expressions.
2046
2047 * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
2048 where the pattern matched.
2049
2050 * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
2051 use 'replace'.
2052 (ultrix_ansi_compat): Likewise.
2053 (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
2054 add egrep test.
2055 (interactv_add2, interactv_add3): Delete.
2056 (x11_sprintf): Don't use filename glob.
2057 * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
2058 Regenerate.
2059
2060 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2061
2062 * print-rtl.c: PROTO -> PARAMS.
2063 * real.c: Likewise.
2064 * reg-stack.c: Likewise.
2065 * resource.c: Likewise.
2066 * sdbout.h: Likewise.
2067 * simplify-rtx.c: Likewise.
2068 * stor-layout.c: Likewise.
2069 * stupid.c: Likewise.
2070 * xcoffout.c: Likewise.
2071 * xcoffout.h: Likewise.
2072
2073 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2074
2075 * toplev.c: PROTO -> PARAMS.
2076 * toplev.h: Likewise.
2077 * tree.c: Likewise.
2078 * tree.h: Likewise.
2079 * unroll.c: Likewise.
2080 * varasm.c: Likewise.
2081 * varray.c: Likewise.
2082 * varray.h: Likewise.
2083
2084 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2085
2086 * reload.c: PROTO -> PARAMS.
2087 * reload.h: Likewise.
2088 * reload1.c: Likewise.
2089 * reorg.c: Likewise.
2090 * resource.h: Likewise.
2091 * rtl.c: Likewise.
2092 * rtl.h: Likewise.
2093 * rtlanal.c: Likewise.
2094 * sbitmap.h: Likewise.
2095 * sdbout.c: Likewise.
2096 * stack.h: Likewise.
2097 * stmt.c: Likewise.
2098 * system.h: Likewise.
2099
2100 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2101
2102 * machmode.h: PROTO -> PARAMS.
2103 * mbchar.h: Likewise.
2104 * mips-tdump.c: Likewise.
2105 * mips-tfile.c: Likewise.
2106 * optabs.c: Likewise.
2107 * output.h: Likewise.
2108 * prefix.c: Likewise.
2109 * profile.c: Likewise.
2110 * protoize.c: Likewise.
2111 * real.h: Likewise.
2112 * recog.c: Likewise.
2113 * recog.h: Likewise.
2114 * regclass.c: Likewise.
2115 * regmove.c: Likewise.
2116 * regs.h: Likewise.
2117
2118 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2119
2120 * ggc-common.c: PROTO -> PARAMS.
2121 * ggc-page.c: Likewise.
2122 * ggc-simple.c: Likewise.
2123 * ggc.h: Likewise.
2124 * global.c: Likewise.
2125 * graph.c: Likewise.
2126 * gthr-win32.h: Likewise.
2127 * haifa-sched.c: Likewise.
2128 * halfpic.h: Likewise.
2129 * integrate.c: Likewise.
2130 * integrate.h: Likewise.
2131 * jump.c: Likewise.
2132 * lcm.c: Likewise.
2133 * local-alloc.c: Likewise.
2134 * loop.c: Likewise.
2135 * loop.h: Likewise.
2136
2137 2000-01-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2138
2139 * genattr.c: PROTO -> PARAMS.
2140 * genattrtab.c: Likewise.
2141 * gencheck.c: Likewise.
2142 * gencodes.c: Likewise.
2143 * genconfig.c: Likewise.
2144 * genemit.c: Likewise.
2145 * genextract.c: Likewise.
2146 * genflags.c: Likewise.
2147 * gengenrtl.c: Likewise.
2148 * genopinit.c: Likewise.
2149 * genoutput.c: Likewise.
2150 * genpeep.c: Likewise.
2151 * genrecog.c: Likewise.
2152
2153 2000-01-16 Mark Mitchell <mark@codesourcery.com>
2154
2155 * tree.h (BINFO_VPTR_FIELD): Augment documentation.
2156
2157 2000-01-16 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2158
2159 * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
2160 * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
2161 * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
2162 * configure, config.in: Rebuilt.
2163
2164 2000-01-16 Zack Weinberg <zack@wolery.cumb.org>
2165
2166 * config/i386/i386.md: Add peephole to merge successive stack
2167 adjusts.
2168
2169 Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com)
2170
2171 * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
2172 instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK
2173 when walking backwards to find all the parameter loads when
2174 the basic block ends in a call.
2175
2176 2000-01-15 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2177
2178 * loop.c (this_loop_info): Delete.
2179 (uid_loop): Add in place of uid_loop_num. All uses updated.
2180 (loop_number_exit_count): Delete and replace with entry in loop
2181 structure. All uses updated.
2182 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
2183 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
2184 (loop_outer_loop): Likewise.
2185 (loop_invalid, loop_number_exit_labels): Likewise.
2186 (loop_used_count_register): Delete and replace with entry in
2187 loop_info structure.
2188 (find_and_verify_loops): Add loops argument.
2189 (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
2190 loop_end, etc. arguments with loop structure pointer. All callers
2191 changed.
2192 (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
2193 (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
2194 (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
2195 (insert_bct): Likewise.
2196 (basic_induction_var): New argument level.
2197 * loop.h (struct loop_info): Delete fields num, loops_enclosed,
2198 vtop, and cont. Add used_count_register.
2199 (uid_loop): Delete declaration.
2200 (loop_number_exit_count): Likewise.
2201 (loop_number_loop_starts, loop_number_loop_ends): Likewise.
2202 (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
2203 (loop_outer_loop, loop_used_count_register): Likewise.
2204 (loop_invalid, loop_number_exit_labels): Likewise.
2205 (unroll_loop): Replace loop_start and loop_end arguments
2206 with loop structure pointer.
2207 (loop_precondition_p, loop_iterations): Likewise.
2208 Include basic-block.h.
2209 * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
2210 with loop structure pointer.
2211 (loop_precondition_p, loop_iterations): Likewise.
2212 * basic-block.h (struct loop): New entries vtop, cont,
2213 cont_dominator, start, end, top, scan_start, exit_labels,
2214 exit_count.
2215 * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
2216
2217 2000-01-15 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
2218
2219 * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
2220
2221 2000-01-14 Nathan Sidwell <sidwell@codesourcery.com>
2222
2223 * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
2224
2225 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2226
2227 * pdp11-protos.h: New file.
2228
2229 * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile
2230 time warnings.
2231
2232 * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time
2233 warnings.
2234
2235 * pdp11.md: Likewise.
2236
2237 * 2bsd.h: Likewise.
2238
2239 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2240
2241 * mn10300-protos.h: New file.
2242
2243 * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile
2244 time warnings.
2245
2246 * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time
2247 warnings.
2248
2249 * mn10300.md: Likewise.
2250
2251 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2252
2253 * mn10200-protos.h: New file.
2254
2255 * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile
2256 time warnings.
2257
2258 * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time
2259 warnings.
2260
2261 * mn10200.md: Likewise.
2262
2263 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2264
2265 * h8300-protos.h: New file.
2266
2267 * h8300.c: Include tm_p.h. Add static prototypes. Fix compile
2268 time warnings.
2269
2270 * h8300.h: Move prototypes to h8300-protos.h. Fix compile time
2271 warnings.
2272
2273 * h8300.md: Likewise.
2274
2275 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2276
2277 * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
2278 (asm_emit_uninitialised): Likewise.
2279
2280 2000-01-13 Gavin Romig-Koch <gavin@cygnus.com>
2281
2282 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
2283 * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
2284
2285 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
2286
2287 * config/mips/mips.c (override_options): Don't turn on extra
2288 alignment for mips16.
2289
2290 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
2291
2292 * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
2293 eabi, and make sure queued POSTINCREMENT rtl is emitted at
2294 the right point.
2295
2296 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
2297
2298 * builtins.c (PAD_VARARGS_DOWN): Define.
2299 (std_expand_builtin_va_arg): Use the above macro.
2300 * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
2301 * tm.texi (Register Arguments): Document the above macro.
2302
2303 2000-01-14 Nick Clifton <nickc@cygnus.com>
2304
2305 * emit-rtl.c (emit_insn): If checking is enabled, make sure
2306 that this function has not been used to emit a jump
2307 instruction.
2308
2309 * jump.c (return_jump_1): Cope with being passed a null rtx.
2310
2311 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2312
2313 * eh-common.h: PROTO -> PARAMS.
2314 * emit-rtl.c: Likewise.
2315 * errors.c: Likewise.
2316 * errors.h: Likewise.
2317 * except.c: Likewise.
2318 * except.h: Likewise.
2319 * explow.c: Likewise.
2320 * expmed.c: Likewise.
2321 * expr.c: Likewise.
2322 * expr.h: Likewise.
2323 * final.c: Likewise.
2324 * fix-header.c: Likewise.
2325 * flow.c: Likewise.
2326 * fold-const.c: Likewise.
2327 * function.c: Likewise.
2328 * function.h: Likewise.
2329 * gcc.c: Likewise.
2330 * gcov-io.h: Likewise.
2331 * gcov.c: Likewise.
2332 * gcse.c: Likewise.
2333
2334 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2335
2336 * sh-protos.h: New file.
2337
2338 * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
2339 Add static prototypes. Fix compile time warnings.
2340
2341 * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings.
2342 * sh.md: Likewise.
2343 * elf.h: Likewise.
2344
2345 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2346
2347 * arc-protos.h: New file.
2348
2349 * arc.c: Include tm_p.h. Add static prototypes. Fix compile
2350 time warnings.
2351
2352 * arc.h: Move prototypes to arc-protos.h. Fix compile time
2353 warnings.
2354
2355 * arc.md: Likewise.
2356
2357 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2358
2359 * dsp16xx-protos.h: New file.
2360
2361 * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile
2362 time warnings.
2363
2364 * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time
2365 warnings.
2366
2367 * dsp16xx.md: Likewise.
2368
2369 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2370
2371 * convex-protos.h: New file.
2372
2373 * convex.c: Include tm_p.h. Add static prototypes. Fix compile
2374 time warnings.
2375
2376 * convex.h: Move prototypes to convex-protos.h. Fix compile time
2377 warnings.
2378
2379 2000-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2380
2381 * elxsi-protos.h: New file.
2382
2383 * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile
2384 time warnings.
2385
2386 * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time
2387 warnings.
2388
2389 * elxsi.md: Likewise.
2390
2391 2000-01-14 Clinton Popetz <cpopetz@cygnus.com>
2392
2393 * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
2394 case for moving from HI/LO/HI_LO_REG. This makes the behavior
2395 match the comment for MIPS16.
2396
2397 Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com)
2398
2399 * flow.c (split_edge): Do not call set_block_for_insn if we
2400 do not have a basic_block_for_insn structure.
2401
2402 * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
2403 and destination functions are 32bit aligned within the trampoline.
2404 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
2405 (TRAMPOLINE_ALIGNMENT): Define.
2406
2407 * cse.c (cse_insn): When changing (set (pc) (reg)) to
2408 (set (pc) (label_ref)), verify the change creates a valid insn.
2409
2410 * fr30.c (call_operand): Tighten and rework to match rules for
2411 call RTL expressions.
2412 * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
2413 * fr30.md (call patterns): Improve constraints.
2414
2415 Thu Jan 13 23:44:03 2000 Richard Henderson <rth@cygnus.com>
2416
2417 * fr30.c (fr30_expand_epilogue): Revert last change.
2418 Use emit_jump_insn for the return insn.
2419
2420 Thu Jan 13 14:46:03 2000 Jason Eckhardt <jle@cygnus.com>
2421 Stan Cox <scox@cygnus.com>
2422
2423 * predict.c: New file. Preliminary infrastructure work for static
2424 branch prediction and basic block reordering.
2425 * basic-block.h: Add prototype for estimate_probability.
2426 * Makefile.in: Add rules for predict.o.
2427
2428 2000-01-13 Jason Merrill <jason@yorick.cygnus.com>
2429
2430 * fixincludes (va_list): Use __not_va_list__ for the dummy.
2431 * fixinc/*: Likewise.
2432
2433 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2434
2435 * cccp.c: PROTO -> PARAMS.
2436 * cexp.y: Likewise.
2437 * collect2.c: Likewise.
2438 * combine.c: Likewise.
2439 * convert.h: Likewise.
2440 * cse.c: Likewise.
2441 * dbxout.c: Likewise.
2442 * dbxout.h: Likewise.
2443 * diagnostic.c: Likewise.
2444 * doprint.c: Likewise.
2445 * dwarf2out.c: Likewise.
2446 * dwarf2out.h: Likewise.
2447 * dwarfout.c: Likewise.
2448 * dwarfout.h: Likewise.
2449 * dyn-string.h: Likewise.
2450
2451 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2452
2453 * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
2454 macro conditionals guarding use.
2455
2456 * dwarf2out.c: Include "tm_p.h".
2457
2458 * function.c (locate_and_pad_parm): Mark parameter with
2459 ATTRIBUTE_UNUSED.
2460 (expand_function_end): Likewise for variable `context'.
2461
2462 * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
2463
2464 2000-01-13 Nick Clifton <nickc@cygnus.com>
2465
2466 * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
2467 register to prevent compile time warnings.
2468
2469 2000-01-13 Zack Weinberg <zack@wolery.cumb.org>
2470
2471 * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
2472 to avoid -Wtraditional warning.
2473
2474 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2475
2476 * 1750a-protos.h: New file.
2477
2478 * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile
2479 time warnings.
2480
2481 * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time
2482 warnings.
2483
2484 * 1750a.md: Likewise.
2485
2486 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2487
2488 * a29k-protos.h: New file.
2489
2490 * a29k.c: Include tm_p.h. Add static prototypes. Fix compile
2491 time warnings.
2492
2493 * a29k.h: Move prototypes to a29k-protos.h. Fix compile time
2494 warnings.
2495
2496 2000-01-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2497
2498 * clipper-protos.h: New file.
2499
2500 * clipper.c: Include tm_p.h. Add static prototypes. Fix compile
2501 time warnings.
2502
2503 * clipper.h: Move prototypes to clipper-protos.h. Fix compile time
2504 warnings.
2505
2506 Thu Jan 13 16:03:06 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
2507
2508 * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
2509
2510 2000-01-13 Nathan Sidwell <sidwell@codesourcery.com>
2511
2512 * configure.in (--enable-new-gxx-abi): New option.
2513 * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
2514 * Makefile.in (GXX_ABI_FLAG): New variable.
2515 * configure: Regenerate.
2516
2517 2000-01-13 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2518
2519 * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
2520 * tm.texi (FORCE_STRUCT_BLK): Document.
2521 * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
2522
2523 Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson <hp@axis.com>
2524
2525 * config/ns32k/ns32k.md: Revert Jan 9 change.
2526
2527 * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
2528 to a mode-test, if the predicate is address_operand.
2529
2530 Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com)
2531
2532 * combine.c (if_then_else_cond): Be careful about what kinds
2533 of RTL expressions are passed to operand_subword.
2534
2535 * flow.c (split_edge): If we have to insert a new jump, make
2536 sure to associate it with a basic block.
2537
2538 * flow.c (commit_one_edge_insertion): A block with one successor
2539 can end in a JUMP_INSN that is not a simplejump.
2540
2541 2000-01-12 Robert Lipe <robertl@sco.com>
2542
2543 * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
2544 (BUILD_VA_LIST_TYPE): Define.
2545 (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
2546 with crtstuff.c.
2547
2548 2000-01-12 Jason Merrill <jason@casey.cygnus.com>
2549
2550 * cccp.c (do_pragma): Add cast to (char *).
2551
2552 2000-01-12 Richard Henderson <rth@cygnus.com>
2553 Fred Fish <fnf@be.com>
2554 Jason Merrill <jason@cygnus.com>
2555
2556 * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
2557 * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
2558 * i386/beos-elf.h, i386/beos-pe.h: New files.
2559
2560 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
2561 * cross-make (SYSTEM_HEADER_DIR): Define using
2562 CROSS_SYSTEM_HEADER_DIR.
2563
2564 * gcc.c (LIBRARY_PATH_ENV): Provide default.
2565 (process_command): Use it.
2566 (main): Likewise. Kill trailing = from env vars.
2567 (build_search_list): Put it back.
2568 * collect2.c (main): Use LIBRARY_PATH_ENV.
2569
2570 * configure.in (GCC_NEED_DECLARATIONS): Add environ.
2571 * toplev.c: Use NEED_DECLARATION_ENVIRON.
2572
2573 * tm.texi (Frame Layout): Document SMALL_STACK.
2574 * c-common.c (c_common_nodes_and_builtins): Check it.
2575
2576 * system.h: Undef alloca after including glibc's <stdlib.h>,
2577 if USE_C_ALLOCA is defined.
2578
2579 * gcc.c (set_input): New fn.
2580 (main): After all input files are compiled, reset the input file
2581 info to the first.
2582
2583 * aclocal.m4 (rindex, index): If already defined, don't attempt
2584 to redefine.
2585
2586 * ginclude/varargs.h: (__va_list__): Define ifndef.
2587 * ginclude/stdarg.h: Likewise.
2588
2589 * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
2590 instead of unsigned char.
2591
2592 * hash.h (true, false, boolean): Undef before enum.
2593
2594 * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
2595 proper type of "HOST_WIDE_INT *", rather than their natural type of
2596 "unsigned HOST_WIDE_INT *".
2597
2598 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2599
2600 * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
2601
2602 * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
2603
2604 * regclass.c (choose_hard_reg_mode): Likewise.
2605
2606 * reload.c (find_valid_class, strict_memory_address_p): Likewise.
2607
2608 * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
2609
2610 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2611
2612 * c-common.c: PROTO -> PARAMS.
2613 * c-common.h: Likewise.
2614 * c-decl.c: Likewise.
2615 * c-iterate.c: Likewise.
2616 * c-lang.c: Likewise.
2617 * c-lex.c: Likewise.
2618 * c-lex.h: Likewise.
2619 * c-parse.in: Likewise.
2620 * c-pragma.c: Likewise.
2621 * c-pragma.h: Likewise.
2622 * c-tree.h: Likewise.
2623 * c-typeck.c: Likewise.
2624 * objc/objc-act.c: Likewise.
2625 * objc/objc-act.h: Likewise.
2626
2627 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2628
2629 * m88k-protos.h: New file.
2630
2631 * m88k.c: Include tm_p.h. Add static prototypes. Fix compile
2632 time warnings.
2633
2634 * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings.
2635
2636 * m88k.md: Likewise.
2637
2638 * tekXD88.h: Likewise.
2639
2640 2000-01-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2641
2642 * m68k-protos.h: New file.
2643
2644 * m68k.c: Include tm_p.h. Add static prototypes. Fix compile
2645 time warnings.
2646
2647 * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings.
2648
2649 * mot3300.h: Likewise.
2650
2651 2000-01-12 Richard Earnshaw <rearnsha@arm.com>
2652
2653 * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
2654 extract_bitlst.
2655 (extract_bitlist): Declare bitlen.
2656
2657 2000-01-12 Zack Weinberg <zack@wolery.cumb.org
2658
2659 * cccp.c: Accept and ignore -lang-fortran.
2660
2661 * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
2662 qualifiers don't match at any level of pointerness.
2663
2664 2000-01-12 Robert Lipe <robertl@sco.com>
2665
2666 * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
2667
2668 2000-01-12 Bernd Schmidt <bernds@cygnus.co.uk>
2669
2670 * reload1.c (reload_reg_unavailable): New static variable.
2671 (reload_reg_free_p): Test it.
2672 (reload_reg_free_for_value_p): Test it instead of
2673 reload_reg_used.
2674 (choose_reload_regs_init): Compute it.
2675
2676 Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com)
2677
2678 * reorg.c (fill_slots_from_thread): Check modified_in_p
2679 before replacing.
2680
2681 Wed Jan 12 03:20:31 2000 John Marshall <john_w_marshall@palm.com>
2682
2683 * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
2684 these nodes even if INTERNALS is not set.
2685
2686 Wed Jan 12 09:39:22 2000 Nick Burrett <nick.burrett@btinternet.com>
2687
2688 * gcse.c (delete_null_pointer_checks_1): Cope when
2689 get_condition cannot determine the condition.
2690
2691 2000-01-12 Gabriel Dos Reis <gdr@codesourcery.com>
2692
2693 * toplev.h (set_message_length): Declare.
2694
2695 * diagnostic.c (obstack_chunk_alloc): Define macro.
2696 (obstack_chunk_free): Likewise.
2697 (struct output_buffer): New data structure.
2698 (vmessage): Remove.
2699 (output_maximum_width): New variable.
2700 (doing_line_wrapping, set_message_length, init_output_buffer,
2701 get_output_prefix, output_space_left, emit_output_prefix,
2702 output_newline, output_append, output_puts, dump_output,
2703 vbuild_message_string, build_message_string, build_location_prefix,
2704 voutput_notice, output_printf, line_wrapper_printf,
2705 vline_wrapper_message_with_location): New functions. Implement
2706 automatic line wrapping.
2707 (v_message_with_decl): Make it handle automatic line wrapping.
2708 (v_error_with_file_and_line): Likewise.
2709 (v_warning_with_file_and_line): Likewise.
2710 (announce_function): Likewise.
2711 (default_print_error_function): Likewise.
2712
2713 2000-01-11 16:24 -0800 Zack Weinberg <zack@wolery.cumb.org>
2714
2715 * cpplib.h (struct cpp_options): Change lang_asm to char.
2716 Add lang_fortran.
2717 * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
2718 done in cpp_handle_option now.
2719 (initialize_builtins): Take out special case code used only by
2720 __STDC_VERSION__.
2721 (cpp_handle_option): Turn off trigraphs and trigraph warnings
2722 if -traditional. Recognize -lang-fortran and set
2723 lang_fortran, also turn off cplusplus_comments.
2724 (print_help): Document -lang-fortran.
2725 * cpplib.c (handle_directive): Ignore `# 123 "file"' if
2726 lang_asm. Ignore all directives other than `# 123 "file"' if
2727 CPP_PREPROCESSED.
2728 (cpp_get_token): If -traditional, don't recognize directives
2729 unless the # is in column 1.
2730 (parse_string): If lang_fortran or lang_asm, silently
2731 terminate strings ('' or "") at end of line.
2732 Remove unnecessary braces.
2733
2734 2000-01-11 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2735 Richard Henderson <rth@cygnus.com>
2736
2737 * resource.c (mark_referenced_resources): Mark a set strict_low_part
2738 as used.
2739 * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
2740 strict_low_part when possible.
2741
2742 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2743
2744 * alias.c: PROTO -> PARAMS.
2745 * basic-block.h: Likewise.
2746 * bitmap.c: Likewise.
2747 * bitmap.h: Likewise.
2748 * builtins.c: Likewise.
2749 * c-aux-info.c: Likewise.
2750 * caller-save.c: Likewise.
2751 * calls.c: Likewise.
2752
2753 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2754
2755 * Makefile.in (toplev.o): Depend on regs.h.
2756
2757 * output.h (tdesc_section): Prototype.
2758
2759 * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
2760
2761 * sdbout.c: Include "tm_p.h".
2762
2763 * toplev.c: Include "regs.h".
2764
2765 Tue Jan 11 11:37:58 2000 Mike Stump <mrs@wrs.com>
2766
2767 * unroll.c (unroll_loop): Add EH support.
2768
2769 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2770
2771 * pa-protos.h: New file.
2772
2773 * pa.c: Include recog.h and tm_p.h.
2774 (compute_zdepwi_operands, compute_movstrsi_length,
2775 remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
2776 find_addr_reg, import_milli): Add static prototypes.
2777 (pa_cpu_string, pa_arch_string): Constify a char*.
2778 (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
2779 (read_only_operand): Add argument `mode'.
2780 (singlemove_string, output_move_double, output_fp_move_double,
2781 output_block_move, output_and, output_ior, output_ascii,
2782 remove_useless_addtr_insns, milli_names, output_mul_insn,
2783 output_div_insn, output_mod_insn, output_arg_descriptor,
2784 output_cbranch, output_bb, output_bvb, output_dbra, ,
2785 output_millicode_call, output_call, hppa_encode_label,
2786 output_parallel_movb, output_parallel_addb): Constify a char*.
2787 (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
2788 (output_parallel_addb): Remove extra arg to `constrain_operands'
2789
2790 * pa.h: Move all prototypes to pa-protos.h.
2791 (pa_cpu_string, pa_arch_string): Constify a char*.
2792 (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
2793
2794 * pa.md: Call `function_label_operand' with mode argument.
2795 Likewise for `read_only_operand'.
2796 Fix nesting of parens in call to `symbolic_operand'.
2797
2798 2000-01-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2799
2800 * i860-protos.h: New file.
2801
2802 * i860.c: Include tm_p.h. Add static prototypes. Fix compile
2803 time warnings.
2804
2805 * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings.
2806
2807 * i860.md: Likewise.
2808
2809 Tue Jan 11 18:59:35 MET 2000 Jan Hubicka <jh@suse.cz>
2810
2811 * i386.md (movstrsi expander): Rewrite.
2812 (movstrsi_1 insn): Deleted.
2813 (strmovhi, strmovqi expander): New expanders.
2814 (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
2815 * i386.c (x86_single_stringop): New global variable.
2816 * i386.h (x86_single_stringop): Declare.
2817 (TARGET_SINGLE_STRINGOP): New macro.
2818
2819 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
2820
2821 * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
2822 integer vararg POSTINCREMENT before the destination of the jump
2823 for the hard fp case.
2824 (function_arg_pass_by_reference): Pass a copy of CUM to
2825 FUNCTION_ARG.
2826
2827 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
2828 for CONSTANT_ADDRESS_P above while loop for subreg.
2829
2830 2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
2831
2832 * flow.c (propagate_block): When a prologue/epilogue insn
2833 is marked dead, unconditionally clear libcall_is_dead and
2834 insn_is_dead, and only dump rtl if warnings aren't being
2835 suppressed.
2836
2837 Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
2838
2839 * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
2840 * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
2841 (FIXED_REGISTERS): Set dirflag as fixed.
2842 (CALL_USED_REGISTERS): Set dirflag as used.
2843 (REG_ALLOC_ORDER): Set dirflag as last one.
2844 (DIRFLAG_REG): New macro.
2845 (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
2846 (HI_REGISTER_NAMES): Add dirflag.
2847 (DEBUF_PRINT_REG): Handle dirflag.
2848 * i386.md (type attribute): New cld and str types.
2849 (length_opcode attribute): Set cld and str to 1.
2850 (memory attribute): Set str to unknown - it is not clear from the
2851 patterns.
2852 (pent_np function unit): Prefixed string operations takes 12 cycles
2853 minimally; cld takes 2 cycles.
2854 (ppro_uops attribute): Str is "many" and cld is "few".
2855 (ppro_p0 unit): Handle cld here.
2856 (k6_alux unit): Handle cld and str types.
2857 (k6_load unit): It is ocupied by str opcodes.
2858 (k6_store unit): It is ocupied by str opcodes.
2859 (athlon_decode): Str is vector decoded.
2860 (athlon_ieu): Handle str and cld.
2861 (cld pattern): New.
2862 (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
2863 (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
2864 cmpstrsi_nz_1 insn): Do not output cld instruction
2865
2866 Tue Jan 11 06:14:39 2000 David Starner <dstarner98@aasaa.ofe.org>
2867
2868 * gcc.texi (G++ and GCC): Add Java and Chill.
2869 (Bug Critera): Don't list languages.
2870
2871 * gcc.texi (Incompatibilities): No longer claim most C compilers
2872 are K&R.
2873
2874 * gcc.texi (G++ and GCC): Update other front-ends list.
2875
2876 Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com)
2877
2878 * i386.c (ix86_expand_setcc): Fix typo.
2879 (ix86_expand_movcc): Similarly.
2880
2881 * Band-aid until haifa's bitset implementation is nuked.
2882 * haifa-sched.c (extract_bitlst): New parameter for size of the
2883 bitset in bits. All callers changed. Avoid looking at undefined
2884 bits in the bitset.
2885 (edgeset_bitsize): New variable.
2886 (schedule_region): Initialize edgeset_bitsize.
2887
2888 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2889
2890 * Makefile.in (optabs.o): Depend on real.h
2891 (resource.o): Depend on insn-attr.h
2892
2893 * builtins.c (result_vector): Wrap prototype in macro conditions
2894 governing definition and use.
2895
2896 * c-common.c: Include tm_p.h.
2897
2898 * c-lex.c: Likewise.
2899
2900 * elfos.h: Constify a char*.
2901
2902 * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
2903 (get_attr_length, shorten_branches, profile_after_prologue): Mark
2904 parameter with ATTRIBUTE_UNUSED.
2905
2906 * fold-const.c (exact_real_inverse): Wrap variable `i' in
2907 CHECK_FLOAT_VALUE.
2908
2909 * haifa-sched.c (schedule_insns): Mark parameter with
2910 ATTRIBUTE_UNUSED.
2911
2912 * optabs.c: Include real.h.
2913
2914 * real.h (ereal_atof): Add prototype arguments.
2915
2916 * resource.c: Include insn-attr.h.
2917
2918 * sdbout.c (sdbout_queue_anonymous_type,
2919 sdbout_dequeue_anonymous_types): Wrap in macro
2920 SDB_ALLOW_FORWARD_REFERENCES.
2921 (sdbout_init, sdbout_start_new_source_file): Mark parameter with
2922 ATTRIBUTE_UNUSED.
2923
2924 * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
2925
2926 * stupid.c: Include tm_p.h.
2927
2928 * tree.c (real_value_from_int_cst): Mark parameter with
2929 ATTRIBUTE_UNUSED.
2930
2931 2000-01-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2932
2933 * i960-protos.h: New file.
2934
2935 * i960.c: Include tm_p.h. Add static prototypes. Fix compile
2936 time warnings.
2937
2938 * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings.
2939
2940 2000-01-10 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2941
2942 * combine.c (expand_field_assignment): Do not discard SUBREGs
2943 while computing nonzero_bits.
2944
2945 2000-01-09 Nick Clifton <nickc@cygnus.com>
2946
2947 * config/arm/arm.c: Fix compile time warnings about signed vs
2948 unsigned constants.
2949 * config/arm/arm.h: Fix compile time warnings about signed vs
2950 unsigned constants.
2951
2952 2000-01-09 Philip Blundell <philb@gnu.org>
2953
2954 * config/arm/arm.c (output_return_instruction): Use `ldr' rather
2955 than `ldm' with only one register.
2956 * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
2957 only one register.
2958
2959 * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
2960 clobbered.
2961
2962 Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson <hp@axis.com>
2963
2964 * config/ns32k/ns32k.md (load or push effective address): Operand 1
2965 must have SImode.
2966
2967 2000-01-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2968
2969 * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
2970 assignment used as truth value.
2971
2972 * function.c (assign_temp): Mark parameter `dont_promote' with
2973 ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro
2974 PROMOTE_FOR_CALL_ONLY.
2975
2976 * genrecog.c (write_subroutine): Mark variable `operands' with
2977 ATTRIBUTE_UNUSED.
2978
2979 * optabs.c (prepare_cmp_insn): Mark parameter `align' with
2980 ATTRIBUTE_UNUSED.
2981
2982 * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
2983 (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
2984
2985 * toplev.c (note_deferral_of_defined_inline_function): Likewise
2986 for `decl'.
2987
2988 2000-01-09 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
2989
2990 * config/c4x.h: Tidy up comments.
2991 * config/c4x.c: Likewise.
2992
2993 Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com)
2994
2995 * fold-const.c (lshift_double, rshift_double): Handle
2996 shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
2997
2998 2000-01-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
2999
3000 * toplev.c (rest_of_compilation): Initialize cse_not_expected as
3001 in prepare_function_start().
3002
3003 Sat Jan 8 12:12:46 2000 Nick Clifton <nickc@cygnus.com>
3004
3005 * config/v850/v850.c (expand_epilogue): Interrupt functions no
3006 longer allocate extra stack for function calls.
3007
3008 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3009
3010 * config/c4x/c4x.md (*subqf3_set): Fix typo.
3011
3012 2000-01-08 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3013
3014 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
3015
3016 2000-01-07 David Edelsohn <edelsohn@gnu.org>
3017
3018 * rs6000.c (processor_target_table): Add power3 as alias for 630.
3019 * aix43.h: Revert Aug 2 change.
3020 (HAS_INIT_SECTION): Define, not visible yet.
3021 (LD_INIT_SWITCH): Define, not visible yet.
3022 * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
3023
3024 * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
3025
3026 * collect2.c (main): Expand ld2 size further.
3027 (export_object_lst): Cast assignment to avoid warning.
3028 (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
3029 (scan_prog_file, COFF): Do not collect initialization or
3030 finalization functions generated for entire shared object if
3031 init/fini support present.
3032
3033 2000-01-07 Nick Clifton <nickc@cygnus.com>
3034
3035 * config/elfos.h: Tidy up formatting of marcos. Make sure
3036 that .section directives are always prefixed by a tab.
3037
3038 * config/svr4.h: Add #include "elfos.h" and remove duplicate
3039 definitions.
3040
3041 2000-01-07 Matt Austern <austern@sgi.com>
3042
3043 * fold-const.c (real_hex_to_f): Remove duplicate declaration of
3044 expon.
3045
3046 Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com)
3047
3048 * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
3049 crtstuff.c.
3050 (crtbegin.o, s-crtS): Likewise.
3051
3052 2000-01-06 Richard Henderson <rth@cygnus.com>
3053
3054 * alpha.md (adddi_2+1): Limit offset such that it will be
3055 loadable with a single ldah+lda pair.
3056 (adddi_2+2): Explicitly fail split if we can't make it work.
3057
3058 2000-01-06 Mumit Khan <khan@xraylith.wisc.edu>
3059
3060 * protoize.c: Conditionally include unistd.h.
3061 (IS_SAME_PATH_CHAR): New macro.
3062 (IS_SAME_PATH): New macro.
3063 (CPLUS_FILE_SUFFIX): New macro.
3064 (cplus_suffix): New static variable.
3065 (is_abspath): New static function.
3066 (in_system_include_dir): Handle DOS style pathnames.
3067 (file_could_be_converted): Likewise.
3068 (file_normally_convertible): Likewise.
3069 (directory_specified_p): Likewise.
3070 (file_excluded_p): Likewise.
3071 (abspath): Likewise.
3072 (shortpath): Likewise.
3073 (referenced_file_is_newer): Likewise.
3074 (save_def_or_dec): Likewise.
3075 (do_processing): Likewise.
3076 (main): Likewise.
3077 (edit_file): Likewise. Use rename instead of link.
3078 (rename_c_file): Likewise. Don't rename syscalls file.
3079 (munge_compile_params): Define null device for DOS based systems.
3080 (process_aux_info_file): Use binary mode if appliable.
3081 (edit_file): Likewise.
3082 * invoke.texi (Running Protoize): Document C++ suffixes used.
3083
3084 * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
3085 IS_DIR_SEPARATOR macros.
3086 * collect2.c: Likewise.
3087 * cppinit.c: Likewise.
3088 * dwarf2out.c: Likewise.
3089 * gcc.c: Likewise.
3090 * gcov.c: Likewise.
3091 * prefix.c: Likewise.
3092 * rtl.c: Likewise.
3093 * toplev.c: Likewise.
3094 * system.h: And move to here.
3095
3096 * prefix.c (update_path): Fix typo in variable name.
3097
3098 2000-01-06 Richard Henderson <rth@cygnus.com>
3099
3100 * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
3101 (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
3102 (count_reg_sets_1, count_reg_references): Likewise.
3103 (flow_loops_level_compute): Start counting actual loop depth at 1.
3104 (flow_loops_find): Likewise.
3105 * local-alloc.c (update_equiv_regs): Likewise.
3106 * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
3107
3108 2000-01-06 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
3109
3110 * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
3111 FIRST_PSEUDO_REGISTER
3112 * dwarf2out.c: Don't include frame.h
3113 * dwarfout.c: Likewise
3114 * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
3115 frame.h
3116
3117 Thu Jan 6 13:44:59 CET 2000 Jan Hubicka <jh@suse.cz>
3118
3119 * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
3120 dead registers.
3121
3122 * i386.c (movsf splitter): Fix typo in my last checkin.
3123
3124 2000-01-05 Nick Clifton <nickc@cygnus.com>
3125
3126 * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
3127 own definition of this macro.
3128 (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
3129 flag_data_sections or UNIQUE_SECTION_P are true.
3130
3131 * tm.texi (UNIQUE_SECTION): Document that it can be called for
3132 unitialised data decls.
3133
3134 * config/i386/winnt.c (i386_pe_unique_section): Cope with
3135 being called for uninitialised data.
3136
3137 * config/i386/interix.c (i386_pe_unique_section): Cope with
3138 being called for uninitialised data.
3139
3140 * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
3141 for uninitialised data.
3142
3143 * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
3144 for uninitialised data.
3145
3146 * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
3147 for uninitialised data.
3148
3149 * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
3150 (UNIQUE_SECTION_P): Always generate a unique section if
3151 flag_data_sections is true.
3152 (UNIQUE_SECTION): Also generate unique sections for
3153 uninitialised data.
3154 (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
3155 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
3156 named_section().
3157
3158 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3159
3160 * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
3161 SI, or DI.
3162
3163 2000-01-06 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3164
3165 * config/c4x/c4x.md (udivqi3, divqi3): Delete.
3166 (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
3167 (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
3168 (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
3169 (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
3170
3171 * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
3172
3173 2000-01-05 11:25 -0800 Zack Weinberg <zack@rabi.columbia.edu>
3174
3175 * c-decl.c (finish_enum): Simplify code to determine minimum and
3176 maximum values of the enum, and calculate the type. Remove check
3177 for FUNCTION_DECLs in the values list, which cannot happen. Replace
3178 the DECL_INITIAL of each enumeration constant with a copy converted
3179 to the enumeration type. When updating variant types, don't bother
3180 updating the type itself.
3181
3182 * c-typeck.c (build_binary_op): Simplify conditional expressions
3183 when weeding out spurious signed-unsigned warnings. Add new
3184 spurious warning category: if the unsigned quantity is an enum
3185 and its maximum value fits in signed_type(result_type). Update
3186 commentary.
3187 (build_conditional_expr): Warn here if one alternative is signed
3188 and the other is unsigned.
3189
3190 2000-01-05 Nick Clifton <nickc@cygnus.com>
3191
3192 * config/fr30/fr30.h: Remove extraneous comments.
3193
3194 2000-01-05 Bernd Schmidt <bernds@cygnus.co.uk>
3195
3196 * reload1.c (choose_reload_regs): When disabling a reload, also
3197 set reload_spill_index to -1.
3198
3199 2000-01-04 Joel Sherrill (joel@OARcorp.com>
3200
3201 * configure.in (m68*-*-rtemscoff*): New target, formal name for
3202 old m68*-*-rtems*.
3203 (m68*-*-rtemself*): New target.
3204 (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
3205 (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
3206 (sparc*-*-rtemself*): New target.
3207 (sparc*-*-rtems*): Now elf not a.out.
3208 * config/i386/rtems.h: Include config/rtems.h.
3209 * config/i386/rtemself.h: Include config/rtems.h.
3210 * config/i960/rtems.h: Include config/rtems.h.
3211 * config/m68k/rtems.h: Include config/rtems.h.
3212 * config/m68k/rtemself.h: Include config/rtems.h.
3213 * config/mips/rtems64.h: Include config/rtems.h.
3214 * config/pa/rtems.h: Include config/rtems.h.
3215 * config/rs6000/rtems.h: Include config/rtems.h.
3216 * config/sh/rtems.h: Include config/rtems.h.
3217 * config/sh/rtemself.h: Include config/rtems.h.
3218 * config/sparc/rtems.h: Include config/rtems.h.
3219 * config/sparc/rtemself.h: Include config/rtems.h
3220
3221 Tue Jan 4 23:59:26 2000 Denis Chertykov <denisc@overta.ru>
3222
3223 * final.c (shorten_branches): Correctly compute length of
3224 asms without operands.
3225
3226 Tue Jan 4 22:55:41 2000 Steve Chamberlain <sac@pobox.com>
3227
3228 * configure.in: Add pj target.
3229 * configure: Regenerate.
3230 * config/pj: New directory.
3231 * config/pj/lib1funcs.S: New file.
3232 * config/pj/linux.h: New file.
3233 * config/pj/pj.c: New file.
3234 * config/pj/pj.md: New file.
3235 * config/pj/pjl.h: New file.
3236 * config/pj/t-pj: New file.
3237 * config/pj/xm-pj.h: New file
3238
3239 Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com)
3240
3241 * toplev.c (rest_of_compilation): Run shorten-branches before
3242 reg-stack for now.
3243
3244 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3245
3246 * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
3247 macros so that they're consistent with their names.
3248 * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
3249 * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
3250
3251 2000-01-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3252
3253 * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
3254 modified inadvertently.
3255
3256 2000-01-04 Joel Sherrill <joel@OARcorp.com>
3257
3258 * configure.in (v850*-*-rtems*): New target.
3259 * configure: Regenerate.
3260 * config/v850/rtems.h: New file.
3261
3262 2000-01-04 Mumit Khan <khan@xraylith.wisc.edu>
3263
3264 * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
3265 (__gthread_key_create): Likewise.
3266 (__gthread_key_dtor): Likewise.
3267 (__gthread_once): Fix logic.
3268 (__gthread_key_delete): Cast away constness.
3269
3270 * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
3271 * invoke.texi: Document.
3272 * i386/mingw32.h (CPP_SPEC): Use.
3273 (LIBGCC_SPEC): Likewise.
3274 * i386/crtdll.h (LIBGCC_SPEC): Likewise.
3275
3276 2000-01-04 David Edelsohn <edelsohn@gnu.org>
3277
3278 * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
3279 (HANDLE_PRAGMA_PACK): Undefine.
3280 (SLOW_UNALIGNED_ACCESS): Define.
3281
3282 2000-01-04 David Edelsohn <edelsohn@gnu.org>
3283
3284 * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
3285 to default definition.
3286 (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
3287 (store_fixed_bit_field): Call macro with word_mode and alignment.
3288 (extract_bit_field): Call macro with relevant mode and alignment.
3289 * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
3290 to default definition.
3291 (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
3292 and alignment.
3293 (move_by_pieces_ninsns): Likewise.
3294 (clear_by_pieces): Likewise.
3295 (emit_push_insn): Likewise.
3296 (store_field): Call macro with relevant mode and alignment.
3297 (expand_expr): Likewise.
3298 (expand_expr_unaligned): Likewise.
3299
3300 * rs6000.h (HANDLE_PRAGMA_PACK): Define.
3301 (SLOW_UNALIGNED_ACCESS): Define.
3302 (CASE_VECTOR_MODE): Always use 32-bit offsets.
3303 (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
3304 (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
3305 (toc_section): Likewise and .toc pseudo-op.
3306 (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in
3307 64-bit mode.
3308 (TEXT_SECTION_ASM_OP): Likewise.
3309 (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
3310 32-bit offsets.
3311
3312 * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
3313 * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
3314 * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
3315 * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
3316 * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
3317
3318 Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com)
3319
3320 * regclass.c: Revert my Jan 4 change to loop cost computation.
3321
3322 Tue Jan 4 19:22:39 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
3323
3324 * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
3325 compilation.
3326
3327 2000-01-04 Stan Cox <scox@cygnus.com>
3328
3329 * haifa-sched.c (build_control_flow): Change unreachable simple
3330 loop test to check if current block has only one predecessor.
3331 (find_rgns): Initialize degree. Use dest as degree index, not src.
3332
3333 2000-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3334
3335 * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
3336
3337 * calls.c (expand_call): Likewise for
3338 `old_stack_arg_under_construction'.
3339
3340 * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
3341
3342 * function.c (pad_to_arg_alignment): Likewise for `save_var' and
3343 `save_constant'.
3344
3345 * gcc.c (execute): Likewise for `ut' and `st'.
3346
3347 * genattrtab.c (attr_rtx): Likewise for `rt_val'.
3348
3349 * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
3350
3351 * jump.c (jump_optimize_1): Likewise for `temp2'.
3352
3353 * local-alloc.c (block_alloc): Likewise for `r1'.
3354
3355 * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
3356
3357 * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
3358 (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
3359
3360 * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
3361 and `set2'.
3362
3363 * reload.c (find_reloads): Likewise for `goal_alternative_number'
3364 and `goal_earlyclobber'.
3365
3366 * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
3367
3368 * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
3369
3370 * stupid.c (stupid_life_analysis): Likewise for `chain'.
3371
3372 * unroll.c (copy_loop_body): Likewise for `copy'.
3373
3374 * varasm.c (output_constructor): Likewise for `byte'.
3375
3376 Tue Jan 4 15:34:34 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
3377
3378 * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
3379 all FP constants for constant->reg moves.
3380 (ix86_split_to_parts): Try to convert memory address into immediate
3381 when available in the constant pool.
3382 * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
3383 moves.
3384 (LEGITIMATE_CONSTANT_P): Return 1.
3385 * i386.md (pushsf): New splitter to convert constant pool memory
3386 reference to immediate.
3387 (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
3388 reload.
3389
3390 2000-01-04 Bernd Schmidt <bernds@cygnus.co.uk>
3391
3392 * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
3393 (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
3394 ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
3395 (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
3396 rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
3397
3398 2000-01-04 Martin von Löwis <loewis@informatik.hu-berlin.de>
3399
3400 * ginclude/stdbool.h: Support compilation as C++.
3401
3402 Tue Jan 4 01:35:13 2000 J"orn Rennecke <amylaar@cygnus.co.uk>
3403
3404 * fold-const.c (make_range): Don't try to reverse an unbounded range.
3405
3406 Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com)
3407
3408 * regclass.c (regclass): Properly compute loop_cost. Adjust
3409 comments.
3410
3411 * regclass.c: Fix minor whitespace problems.
3412
3413 2000-01-03 Anthony Green <green@cygnus.com>
3414
3415 * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
3416 Restore the pic register if required.
3417
3418 2000-01-03 Ulrich Drepper <drepper@cygnus.com>
3419
3420 * c-common.c (format_char_info): Update comment.
3421 (check_format_info): Recognize 'z' modifier in the same way 'Z'
3422 was recognized. Emit warning for formats new in ISO C99 only
3423 if flag_isoc9x is not set.
3424
3425 Mon Jan 3 12:59:54 2000 Mark P. Mitchell <mark@codesourcery.com>
3426
3427 * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
3428
3429 Mon Jan 3 15:33:37 MET 2000 Jan Hubicka <hubicka@freesoft.cz>
3430
3431 * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
3432 SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
3433 (make_compound_operation): Choose cheaper alternative between
3434 ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
3435
3436 * regclass.c (op_costs): Remove global variable.
3437 (record_reg_classes): New parameter "op_costs" and "reg_pref".
3438 (record_operand_costs): Break out from ...
3439 (scan_one_insn): ... here.
3440 (dump_regclass): Make dumps nicer.
3441 (regclass): Dump preferrences choosed and changes done during passes.
3442
3443 2000-01-03 Jakub Jelinek <jakub@redhat.com>
3444
3445 * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
3446
3447 2000-01-03 Jakub Jelinek <jakub@redhat.com>
3448
3449 * config/sparc/sparc.c (gen_df_reg): New function.
3450 * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
3451 * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
3452 movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
3453 movtf_cc_reg_sp64+1): Use it.
3454
3455 2000-01-02 Mark Mitchell <mark@codesourcery.com>
3456
3457 * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
3458 copied LABEL_DECLs.
3459
3460 Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson <hp@bitrange.com>
3461
3462 * config/i386/i386.c (ix86_expand_unary_operator): Function
3463 definition made void.
3464 (ix86_expand_binary_operator): Update outdated preceding comment.
3465 * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
3466 prototype.
3467
3468 * config/i386/i386.c (override_options): Fix option-name typo.
3469
3470 2000-01-02 Mark Mitchell <mark@codesourcery.com>
3471
3472 * system.h (CEIL): Define.
3473 * builtins.c (CEIL): Remove.
3474 * expmed.c (CEIL): Likewise.
3475 * expr.c (CEIL): Likewise.
3476 * stor-layout.c (CEIL): Likewise.
3477
3478 2000-01-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3479
3480 * expr.c (store_constructor_field): Fix typo introduced with last
3481 gcc2 merge.
3482
3483 2000-01-01 Mark Mitchell <mark@codesourcery.com>
3484
3485 * tree.h (BINFO_N_BASETYPES): New macro.
3486
3487 2000-01-01 Bernd Schmidt <bernds@cygnus.co.uk>
3488
3489 * expmed.c (emit_store_flag): Prevent losing a pending stack
3490 adjust the same way we prevent losing queued increments.
3491
3492 Fri Dec 31 19:10:31 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3493
3494 * function.c (update_temp_slot_address): Handle case where sum of
3495 temporary address plus offset in register is a valid address.
3496
3497 1999-12-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3498
3499 * genrecog.c (change_state) Corrected typo.
3500
3501 1999-12-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3502
3503 * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
3504 getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
3505 strerror, getrlimit, setrlimit, abort): Add prototype arguments.
3506
3507 1999-12-30 Bernd Schmidt <bernds@cygnus.co.uk>
3508
3509 * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
3510 case, expand GT comparisons correctly. Fix a comment before this
3511 part of the code.
3512
3513 1999-12-30 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
3514
3515 * dwarfout.c: Include "frame.h"
3516 * dwarf2out.c: Likewise.
3517 * Makefile.in (dwarfout.o): Depend on frame.h
3518 (dwarf2out.o): Likewise.
3519
3520 1999-12-29 "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
3521
3522 Restore i386 binary compatibility in Dwarf EH info.
3523 * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
3524 value of FIRST_PSEUDO_REGISTER.
3525 * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
3526 (struct frame_state): Use DWARF_FRAME_REGISTERS.
3527 * dwarfout.c (output_reg_number): Ditto.
3528 * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
3529 (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
3530
3531 1999-12-29 Bruce Korb <autogen@linuxbox.com>
3532
3533 * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
3534 * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
3535 (<hack>_RE_CT): not needed
3536 * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
3537 rewritten to scan the file text once only
3538 "template<..." test added
3539 * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
3540 (is_cxx_header): declaration added
3541 * fixinc/fixtests.c(is_cxx_header): removed
3542 (apply_fix_p_t): removed
3543 (double_slash_test): is_cxx_header is only called once now
3544 * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
3545 * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
3546 within the templates.
3547 The borken spelling of "broken" was fixed.
3548 * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
3549 The default level depends on FIXINC_DEBUG.
3550
3551 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3552
3553 * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
3554 Otherwise provide a declaration for atexit.
3555 (init_dummy): Make sure dummy call to atexit is nevertheless
3556 called with correct number of args.
3557
3558 * frame.c: Update comments referring to other files.
3559
3560 * libgcc2.c: Likewise.
3561
3562 1999-12-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3563
3564 * cse.c (free_element, get_element): Remove unused prototypes.
3565
3566 * fold-const.c (extract_muldiv): Initialize variables `op0' and
3567 `op1'.
3568
3569 * jump.c (invert_exp): Add explicit braces to avoid ambiguous
3570 `else' clauses.
3571
3572 Wed Dec 29 12:44:54 1999 Donald Lindsay <dlindsay@cygnus.com>
3573
3574 * configure.in,configure: case arm for mn10200-*-* now sets
3575 float_format=i32 so that float.h will correctly claim "double"
3576 to be 32 bits. Ran autoconf to generate configure from .in file.
3577
3578 Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com)
3579
3580 * pa.md (conditional zero): If op1 is a register, force it into
3581 the same register as op0.
3582
3583 1999-12-28 Mark Mitchell <mark@codesourcery.com>
3584
3585 * tree.h (BINFO_BASETYPES): Improve documentation.
3586
3587 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3588
3589 * configure.in (--enable-checking): Use a more portable `for'
3590 loop syntax.
3591
3592 1999-12-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3593
3594 * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
3595 arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
3596
3597 * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
3598 Delete files.
3599
3600 * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
3601 Delete descriptions.
3602
3603 * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
3604 m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
3605 m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
3606 pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
3607 xm-svr4.h: Remove all instances of sys_siglist handling.
3608
3609 1999-12-27 Jakub Jelinek <jakub@redhat.com>
3610
3611 * config/sparc/sparc.md (cmp_zero_qi,
3612 cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
3613 cmp_zero_extendqidi2_andcc_set): New patterns.
3614
3615 1999-12-28 Manfred Hollstein <mhollstein@cygnus.com>
3616
3617 * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
3618 (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
3619 (fpgnulib.c, xfgnulib.c): Add rules.
3620 * m68k/t-mot3300-gas: Likewise.
3621
3622 1999-12-27 Ian Lance Taylor <ian@zembu.com>
3623
3624 * configure.in: Avoid [[ by using test and changequote. Add
3625 changequote required by 1999-12-14 change.
3626 * configure: Rebuild.
3627
3628 1999-12-27 Clinton Popetz <cpopetz@cygnus.com>
3629
3630 * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
3631
3632 1999-12-27 Christophe Jaillet <jaillet.christophe@caramail.com>
3633
3634 * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
3635 * flow.c (find_use_as_address): Likewise.
3636 * function.c (fixup_var_refs_1): Likewise.
3637 (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
3638 * jump.c (invert_exp, redirect_exp): Likewise.
3639 * loop.c (replace_call_address): Likewise.
3640 (count_nonfixed_reads): Likewise.
3641 * rtlanal.c (modified_between_p): Likewise.
3642 (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
3643 (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
3644 * unroll.c (remap_split_bivs): Likewise.
3645
3646 1999-12-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3647
3648 * diagnostic.c (v_message_with_decl): Use .* format specifier
3649 instead of building the format specifier width manually.
3650
3651 * system.h (strsignal): Don't check HAVE_STRSIGNAL when
3652 determining whether to provide a prototype. Remove the
3653 sys_siglist clause in the conditional.
3654
3655 1999-12-23 Martin v. Löwis <loewis@informatik.hu-berlin.de>
3656
3657 * fold-const.c (operand_equal_p): Use memcmp to compare string
3658 constants.
3659 Suggested by D. J. Bernstein
3660
3661 1999-12-17 Jakub Jelinek <jakub@redhat.com>
3662
3663 * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
3664 UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
3665 compiling libgcc2.
3666 * config/mips/mips.h (TARGET_64BIT): Likewise.
3667 * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
3668 * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
3669 of {SI,DI}type and DIunion. Define these types to QI/HI modes on
3670 dsps. Give routines proper names if SI/DI modes are not used.
3671 * longlong.h: Use DWunion instead of DIunion.
3672
3673 1999-12-26 Zack Weinberg <zack@wolery.cumb.org>
3674
3675 * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
3676 GC_CHECKING, GC_ALWAYS_COLLECT.
3677 * configure.in: Allow --enable-checking with an argument
3678 listing check modes to enable.
3679 * config.in, configure: Rebuilt.
3680 * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
3681 GGC_ALWAYS_VERIFY for ggc-simple.c) only if
3682 ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if
3683 ENABLE_GC_ALWAYS_COLLECT.
3684 * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
3685 throughout.
3686 * tree.h, tree.c: Change ENABLE_CHECKING to
3687 ENABLE_TREE_CHECKING throughout.
3688
3689 Sun Dec 26 07:48:20 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3690
3691 * fold-const.c (fold_truthop): Properly check for FP RHS.
3692
3693 1999-12-24 Mark Mitchell <mark@codesourcery.com>
3694
3695 * toplev.h (note_deferall_of_defined_inline_function): Declare.
3696 * toplev.c (note_deferral_of_defined_inline_function): New
3697 function, split out from ...
3698 (rest_of_compilation): ... here. Use it.
3699
3700 Fri Dec 24 12:34:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3701
3702 * expr.c (store_constructor): Don't call clear_storage if size is
3703 variable.
3704
3705 1999-12-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3706
3707 * Makefile.in (toplev.o): Depend on loop.h.
3708
3709 * dwarfout.c: Include tm_p.h.
3710
3711 * emit-rtl.c (restore_emit_status): Mark parameter with
3712 ATTRIBUTE_UNUSED.
3713
3714 * final.c (final_scan_insn): Likewise.
3715
3716 * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
3717 flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
3718 flow_depth_first_order_compute, flow_loop_pre_header_find,
3719 flow_loop_tree_node_add, flow_loops_tree_build,
3720 flow_loop_level_compute, flow_loops_level_compute,
3721 flow_loop_outside_edge_p): Add prototypes.
3722 (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
3723
3724 * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
3725 Mark with ATTRIBUTE_NORETURN.
3726
3727 * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
3728
3729 * local-alloc.c (no_conflict_p): Likewise.
3730
3731 * loop.c (insert_bct): Hide definitions of variables with hidden
3732 usage.
3733 (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
3734
3735 * regclass.c (memory_move_secondary_cost): Mark variable `mem'
3736 with ATTRIBUTE_UNUSED.
3737 (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
3738 (reg_scan): Likewise.
3739
3740 * reload.c (find_reloads): Remove unused variables `changed'.
3741
3742 * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
3743 away const-ness.
3744 (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
3745 Remove unused variable `insn'.
3746
3747 * toplev.c: Include loop.h.
3748 (report_file_and_line): Remove unnecessary prototype.
3749
3750 * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
3751
3752 * unroll.c (biv_total_increment): Likewise.
3753
3754 Thu Dec 23 23:15:22 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
3755
3756 * reload1.c (emit_input_reload_insns): Restore old behaviour
3757 wrt. 'special' reloads.
3758
3759 1999-12-23 Zack Weinberg <zack@wolery.cumb.org>
3760
3761 * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
3762 hash.h. (cse.c): Don't depend on hashtab.h.
3763
3764 * cse.c: Don't include hashtab.h.
3765 (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
3766 of dead functions.
3767 * ggc-simple.c: Don't include hash.h.
3768
3769 1999-12-22 Jason Merrill <jason@casey.cygnus.com>
3770
3771 * dwarf2out.c (add_abstract_origin_attribute): Call
3772 gen_abstract_function on our function context.
3773
3774 Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson <hp@bitrange.com>
3775
3776 * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
3777
3778 1999-12-23 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3779
3780 * config/c4x/c4x.c (c4x_address_cost): Add statement to default
3781 case in switch.
3782
3783 1999-12-22 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3784
3785 * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
3786 constraints to "a!r".
3787
3788 1999-12-21 Mark Mitchell <mark@codesourcery.com>
3789
3790 * Makefile.in (calls.o): Depend on function.h.
3791 (alias.o): Likewise.
3792
3793 1999-12-21 Bernd Schmidt <bernds@cygnus.co.uk>
3794
3795 * reload1.c (emit_reload_insns): Break out code and variables into...
3796 (input_reload_insns, other_input_address_reload_insns,
3797 other_input_reload_insns, input_address_reload_insns,
3798 inpaddr_address_reload_insns, output_reload_insns,
3799 output_address_reload_insns, outaddr_address_reload_insns,
3800 operand_reload_insns, other_operand_reload_insns,
3801 other_output_reload_insns): ... new static variables, and...
3802 (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
3803 do_output_reload): ... new functions.
3804
3805 Tue Dec 21 07:06:36 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3806
3807 * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
3808
3809 1999-12-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3810
3811 * md.texi: Add c4x constraints documentation.
3812
3813 1999-12-21 Martin v. Löwis <loewis@informatik.hu-berlin.de>
3814
3815 * config/i386/dgux.c (struct option): Rename to
3816 lang_independent_option.
3817 (struct m_options): Add description field.
3818 (output_options): Rename option type, add sep declaration, output
3819 ix86_cpu_string and ix86_arch_string only if set.
3820 (output_file_start): Rename option type.
3821
3822 Mon Dec 20 23:15:36 1999 Mike Stump <mrs@wrs.com>
3823
3824 * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
3825 stmp-int-hdrs.
3826 (libgcc2.a): Similarly.
3827
3828 Mon Dec 20 23:06:47 1999 David Edelsohn <edelsohn@gnu.org>
3829
3830 * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
3831 with W_TYPE_SIZE == 32. Do not fall through to POWER architecture
3832 for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
3833
3834 Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com)
3835
3836 * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
3837 Remove redundant initialization of "frexpon" and "expon".
3838
3839 Mon Dec 20 15:00:04 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3840
3841 * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
3842
3843 * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
3844 (store_constructor_field, expand_expr): Pass new arg.
3845
3846 1999-12-20 Mark Mitchell <mark@codesourcery.com>
3847
3848 * Makefile.in (explow.o): Depend on function.h.
3849
3850 * stor-layout.c (set_sizetype): Fix typo.
3851
3852 1999-12-20 Bernd Schmidt <bernds@cygnus.co.uk>
3853
3854 * function.c (cfun): Renamed from current_function. All users
3855 changed.
3856 * function.h (cfun): Rename declaration as well.
3857
3858 * reload.h (struct insn_chain): Change live_throughout and dead_or_set
3859 to be of type regset_head, not regset. All users changed by adding
3860 address operator.
3861 * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
3862
3863 1999-12-20 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3864
3865 * config/c4x/rtems.h: New file.
3866
3867 1999-12-19 Bernd Schmidt <bernds@cygnus.co.uk>
3868
3869 * reload1.c (spill_failure): Take class of failed reload as argument
3870 and print it. Caller changed.
3871
3872 Sun Dec 19 07:50:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3873
3874 * rs6000.h (SUBTARGET_DEFAULT): New macro.
3875 (TARGET_SWITCHES): Allow subtargets to default switches.
3876 * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
3877
3878 1999-12-18 Mark Mitchell <mark@codesourcery.com>
3879
3880 * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
3881 in a main program.
3882
3883 Sat Dec 18 20:42:43 1999 Richard Henderson <rth@cygnus.com>
3884
3885 * cccp.c (main): Define __STDC_VERSION__ as necessary.
3886 * cppinit.c (cpp_handle_option): Likewise.
3887
3888 * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
3889 determine when to define.
3890
3891 Sat Dec 18 20:34:00 1999 Richard Henderson <rth@cygnus.com>
3892
3893 * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
3894 cmove with mismatched test and data modes.
3895
3896 Sat Dec 18 20:30:15 1999 Richard Henderson <rth@cygnus.com>
3897
3898 * c-typeck.c (c_expand_start_case): Don't warn for long switch
3899 in system headers.
3900
3901 Sat Dec 18 16:28:43 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3902
3903 * alias.c: Minor reformatting.
3904 * flow.c: Likewise.
3905 * regs.h: Likewise.
3906 * stor-layout.c: Likewise.
3907 * fold-const.c: Likewise.
3908 (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
3909 (struct cb_args, const_binop_1, const_binop): Pass type of arg,
3910 not arg itself.
3911 (size_int_wide): Cache nodes even if garbage collecting.
3912 (twoval_comparison_p): Reenable SAVE_EXPR case if operand
3913 of SAVE_EXPR has no side effects.
3914 * cse.c: Move a comment.
3915 * tree.c: Minor reformatting.
3916 (int_size_in_bytes): Return -1 if constant overflows.
3917
3918 Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
3919
3920 * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
3921
3922 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
3923
3924 * objc/objc-parse.c: Regenerate. This file must be rebuilt
3925 after any change to c-parse.in, even if objc-parse.y didn't
3926 change. Oops.
3927
3928 1999-12-18 David S. Miller <davem@redhat.com>
3929
3930 * toplev.c (rest_of_compilation): Restore BLOCK tree
3931 reconstruction and branch shortening changes lost in
3932 December 18th change.
3933
3934 Sat Dec 18 05:29:29 1999 Scott Bambrough <scottb@netwinder.org>
3935
3936 * config/arm/linux-elf.h: Change all instances of
3937 ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
3938 * config/arm/uclinux-elf.h: Likewise.
3939
3940 1999-12-18 Gabriel Dos Reis <gdr@codesourcery.com>
3941
3942 * toplev.c (notice, vmessage, v_message_with_file_and_line,
3943 v_message_with_decl, file_and_line_for_asm,
3944 v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
3945 verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
3946 v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
3947 v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
3948 pfatal_with_name, fatal_io_error, need_error_newline,
3949 last_error_function, last_error_tick, announce_function,
3950 default_print_error_function, print_error_function,
3951 report_error_function, fnotice, error_with_file_and_line,
3952 error_with_decl, error_for_asm, error, set_fatal_function, fatal,
3953 _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
3954 warning_with_decl, warning_for_asm, warning, pedwarn,
3955 pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
3956 diagnostic.c
3957 (compile_file): Use fnotice instead of notice. Adjust call.
3958
3959 * diagnostic.c: New file.
3960
3961 * Makefile.in (OBJS): Include diagnostic.o
3962 (diagnostic.o): Define dependence.
3963
3964 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3965
3966 * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
3967 Tweak formatting.
3968
3969 1999-12-18 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
3970
3971 * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
3972
3973 1999-12-17 13:21 -0800 Zack Weinberg <zack@rabi.columbia.edu>
3974
3975 * fixtests.c (is_cxx_header): New fn, split out of
3976 double_slash_test.
3977 (else_endif_label): Allow "#endif // comment" in C++ headers,
3978 as determined by is_cxx_header.
3979 * fixfixes.c (else_endif_label_fix): Update comment.
3980 * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
3981 a tty.
3982 * genfixes: Correct double thinko in commandline parsing.
3983 * hackshell.tpl: Generate correct sh syntax for bypass
3984 entries.
3985
3986 * inclhack.def (all): Whenever an inserted preprocessor
3987 conditional is split over multiple lines, use double
3988 backslashes in this file so the fixed header will be readable.
3989
3990 (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
3991 and add bypass entry for correct version of this header.
3992 (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
3993 (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
3994
3995 (hpux8_bogus_inlines): New fix, split from...
3996 (ultrix_atof_param) ... here.
3997 (math_expression): Add bypass entry keyed to glibc comment
3998 indicating the problem has been dealt with; disable
3999 unnecessary sed operations; update commentary.
4000 (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
4001 add select and bypass entries, simplify shell operation.
4002 (math_huge_val_ifndef): Split from math_gcc_ifndefs.
4003
4004 (ip_missing_semi, rs6000_param, tinfo_cplusplus,
4005 ultrix_atof_param): Add select entry.
4006 (stdio_va_list, sunos_mather_decl): Add bypass entry.
4007 (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
4008 comments with the fixes they describe.
4009
4010 * c-parse.in (string action): Do not warn about ANSI string
4011 concatenation in system headers. Affects C parser only.
4012 * c-parse.y, c-parse.c, c-parse.h: Rebuild.
4013
4014 1999-12-16 Jakub Jelinek <jakub@redhat.com>
4015
4016 * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
4017 compiling libgcc2 the macro depends always on arch cpp defines.
4018
4019 Fri Dec 17 10:34:16 1999 Richard Earnshaw <rearnsha@arm.com>
4020
4021 * loop.c (insert_loop_mem): Don't record MEMs from inside
4022 EXPR_LISTs.
4023
4024 Fri Dec 17 12:08:11 MET 1999 Jan Hubicka <hubicka@freesoftr.cz>
4025
4026 * regclass.c (regclass): Do not use flowgraph when not optimizing.
4027
4028 * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
4029 notes too, create one when replacement failed, attempt to simplify
4030 resulting notes.
4031 (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
4032 or REG_EQUIV notes.
4033
4034 1999-12-16 Mark Mitchell <mark@codesourcery.com>
4035
4036 * crtstuff.c (__dso_handle): Declare.
4037 (__cxa_finalize): Likewise.
4038 (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
4039 non-NULL.
4040
4041 * invoke.texi: Document -fuse-cxa-atexit.
4042
4043 * tree.h (ptr_type_node): Document.
4044 (const_ptr_type_node): Likewise.
4045
4046 Fri Dec 17 01:32:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4047
4048 * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
4049 (optimize_reg_copy_2): Likewise.
4050 (optimize_reg_copy_3): Likewise.
4051 (fixup_match_2): Likewise.
4052 (regmove_optimize): Likewise.
4053 (fixup_match_1): Liekwise.
4054
4055 * i386.md (HI to SImode promoting splitters): Rewrite.
4056 (pushsf mem peep2): New.
4057 (testhi to andhi peep2): Remove.
4058 * i386.h (x86_promote_QImode): New.
4059 (TARGET_PROMOTE_QImode): New.
4060 (PREDICATE_CODES): Add promotable_binary_operator.
4061 * i386.c (x86_promote_QImode0: New.
4062 (promotable_binary_operator): New.
4063 * i386-protos.h (promotable_binary_operator): New.
4064
4065 * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
4066 condition.
4067 (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
4068
4069 1999-12-16 Mark Mitchell <mark@codesourcery.com>
4070
4071 * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
4072 * function.c (insert_block_after_note): Remove.
4073 (retrofit_block): Likewise.
4074 (identify_blocks): Fix indentation.
4075 (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
4076 NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
4077 * function.h (insert_block_after_note): Remove prototype.
4078 (retrofit_block): Likewise.
4079 * integrate.c (expand_inline_function): Don't call
4080 find_loop_tree_blocks. Use expand_start_bindings_and_block, not
4081 just expand_start_bindings. Use the block_map to remap old
4082 NOTE_BLOCKs to new ones.
4083 (integrate_decl_tree): Keep track of remapped blocks.
4084 * integrate.h (struct inline_remap): Add block_map.
4085 * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set
4086 NOTE_BLOCK on the notes.
4087 (expand_start_bindings): Rename to ...
4088 (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK.
4089 (expand_end_bindings): Set NOTE_BLOCK.
4090 * toplev.c (rest_of_compilation): In function-at-a-time-mode,
4091 reconstruct the BLOCK tree.
4092 * tree.h (expand_start_bindings): Macroize. Call ...
4093 (expand_start_bindings_and_block): New function.
4094
4095 1999-12-16 Jakub Jelinek <jakub@redhat.com>
4096
4097 * config/sparc/sparc.c (print_operand): Cast fprintf arguments
4098 to match the format.
4099
4100 1999-12-16 David S. Miller <davem@redhat.com>
4101
4102 * expr.c (emit_move_insn_1): Only emit clobbers if one of
4103 the outputs is a SUBREG.
4104 * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
4105 change.
4106
4107 * config/sparc/sparc.c (epilogue_renumber): Add default case
4108 to switch stmt.
4109
4110 Thu Dec 16 11:33:57 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4111
4112 * toplev.c (rest_of_compilation): Run branch shortening after
4113 reg-stack.
4114
4115 * regclass.c (loop_depth): Remove
4116 (scan_one_insn): Do not handle LOOP_NOTE insns.
4117 (regclass): Go through basic blocks and set loop_cost
4118
4119 Thu Dec 16 02:56:25 1999 Zack Weinberg <zack@bitmover.com>
4120
4121 * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
4122
4123 Thu Dec 16 10:43:35 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4124
4125 * i386.md (movqi): Use "nonimmediate_operand" for output operand.
4126 (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
4127 (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
4128
4129 Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com)
4130
4131 * loop.c (insert_loop_mem): Ignore memory clobbers.
4132
4133 * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
4134 to (OP A B).
4135
4136 Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com)
4137
4138 * profile.c: Remove redundant #include "output.h".
4139
4140 * h8300.md (HImode preinc peephole): Fix typo.
4141
4142 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
4143
4144 * function.c (retrofit_block): Abort if we don't find a suitable insn.
4145 (insert_block_after_note): Abort if we don't have a previous block.
4146 Remove FN parameter.
4147 * function.h: Adjust.
4148
4149 1999-12-15 Mark Mitchell <mark@codesourcery.com>
4150
4151 * builtins.c (expand_builtin_mathfn): Make sure not to expand the
4152 argument more than once.
4153
4154 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
4155
4156 * stmt.c (expand_decl): Expand upper bound of a dynamic array.
4157
4158 1999-12-15 Jakub Jelinek <jakub@redhat.com>
4159
4160 * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
4161
4162 Wed Dec 15 16:11:55 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4163
4164 * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
4165 (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
4166 update stack_alignment_needed.
4167 (prepare_function_start): Initialize stack_alignment_needed
4168 * function.h (struct function): Add field stack_alignment_needed.
4169
4170 Wed Dec 15 14:55:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
4171
4172 * caller-save.c (insert_one_insn): Returns struct insn_chain *.
4173 Handle live_throughout / dead_or_set instead of live_before /
4174 live_after.
4175 (save_call_clobbered_regs): Get register livenessinformation from
4176 chain->live_throughout.
4177 (add_stored_regs): New function.
4178 (insert_restore, insert_save): Add restored / saved registers to
4179 dead_or_set.
4180 * global.c (reg_dies): New parameter chain.
4181 (reg_becomes_live): Third parameter is regs_set now.
4182 Changed all callers.
4183 (reg_dies): New parameter chain. Changed all callers.
4184 (build_insn_chain): Set live_throughout instead of
4185 live_before / live_after.
4186 * reload.h (struct insn_chain): Replace members live_before /
4187 live_after with live_throughout / dead_or_set.
4188 * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
4189 instead of live_before / live_after.
4190 (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
4191 (order_regs_for_reload, find_reg, finish_spills): Likewise.
4192 (choose_reload_regs_init): Likewise.
4193 * stupid.c (current_chain, find_clobbered_regs): Delete.
4194 (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
4195 instead of chain->live_before / chain->live_after.
4196 (mark_hard_ref): New function.
4197 (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
4198
4199 1999-12-15 David S. Miller <davem@redhat.com>
4200
4201 * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
4202
4203 Wed Dec 15 15:05:30 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4204
4205 * flow.c (calculate_loop_depth): Make global, remove prototype,
4206 rewrite to use new loop infrastructure.
4207 (find_basic_block): Remove calculate_loop_depth call.
4208 * toplev.c (rest_of_compilation): Call find_basic_block.
4209 * output.h (calculate_loop_depth): Declare.
4210
4211 * flow.c (dump_flow_info): Dump loop_depth.
4212 (flow_loops_nodes_find): Increase loop_depth for basic block in the
4213 body.
4214 (flow_loops_find): Initialize the loop_depth for each basic block.
4215
4216 1999-12-15 Jason Merrill <jason@casey.cygnus.com>
4217
4218 * tree.c (decl_function_context): Handle virtual functions.
4219
4220 * tlink.c (scan_linker_output): Don't look in demangled name when
4221 looking for linker output keywords.
4222
4223 * dwarfout.c (output_type): We can defer namespace-scope classes.
4224
4225 Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com)
4226
4227 * regclass.c (record_reg_classes): Update comment for merging
4228 register class preferences in reg->reg copies. Tighten conditions
4229 for merging register class preferences in reg->reg copies.
4230
4231 Wed Dec 15 02:19:32 1999 David Edelsohn <edelsohn@gnu.org>
4232
4233 * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
4234
4235 1999-12-14 Geoff Keating <geoffk@cygnus.com>
4236
4237 * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
4238 (INIT_SECTION_ASM_OP): Delete.
4239 (FINI_SECTION_ASM_OP): Delete.
4240 (STARTFILE_SPEC): Define to hold just crtbegin.o.
4241
4242 1999-12-14 Jason Merrill <jason@casey.cygnus.com>
4243
4244 * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
4245 the abstract origin wasn't emitted.
4246
4247 * dwarf2out.c (class_scope_p): New fn.
4248 (gen_subprogram_die): Use it.
4249 (gen_variable_die): Use it. Tweak logic.
4250 (gen_struct_or_union_type_die): Check context_die to determine
4251 if we're function-local.
4252 (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
4253
4254 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
4255
4256 * loop.c (check_dbra_loop): Can't reverse a biv that has
4257 maybe_multiple set.
4258
4259 1999-12-14 Nick Clifton <nickc@cygnus.com>
4260
4261 * config/arm/arm.c: Add support for -mcpu=arm720 command line
4262 switch.
4263
4264 Tue Dec 14 18:13:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
4265
4266 * loop.c (strength_reduce): Fix sign of giv lifetime calculation
4267 for givs made from biv increments.
4268
4269 Tue Dec 14 08:11:27 1999 Richard Henderson <rth@cygnus.com>
4270
4271 * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
4272 * alpha.c (override_options): Recognize -mcpu=ev67.
4273 * alpha.h (CPP_CPU_EV67_SPEC): New.
4274 (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
4275 (EXTRA_SPECS): Update.
4276
4277 Tue Dec 14 08:04:28 1999 Richard Henderson <rth@cygnus.com>
4278
4279 * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
4280 appropriate for -lang-c89 and -std=*.
4281 * cppinit.c (cpp_handle_option): Likewise.
4282 (new_pending_define): New, split out from cpp_handle_option.
4283 * gcc.c (default_compilers): Don't define __STRICT_ANSI__
4284 or enable trigraphs for -ansi/-std=*.
4285
4286 * ginclude/stdarg.h (__va_copy): New.
4287 (va_copy): Don't define for C89.
4288
4289 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz <cpopetz@cygnus.com>
4290
4291 * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
4292 for long long multiply-accumulate.
4293
4294 Tue Dec 14 13:51:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4295
4296 * regclass.c (scan_one_insn): Set loop_cost to 1 when
4297 optimizing for size.
4298
4299 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
4300
4301 * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
4302 if something changed. Back out that part of yesterday's changes.
4303
4304 * loop.c (loop_max_reg): New static variable.
4305 (loop_optimize): Initialize it. Eliminate one unnecessary call to
4306 max_reg_num.
4307 (scan_loop): Call reg_scan_update whenever we may have added new
4308 registers, and update loop_max_reg.
4309
4310 Tue Dec 14 12:07:29 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4311
4312 * regclass.c (record_reg_classes): Do not do the copying preferrencing
4313 when source does not die.
4314
4315 * regclass.c (record_reg_classes): Handle INOUT operands propertly.
4316
4317 1999-12-14 Jakub Jelinek <jakub@redhat.com>
4318
4319 * config/sparc/linux64.h (TARGET_LIVE_G0,
4320 TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
4321 variants on Linux.
4322 * config/sparc/linux.h (TARGET_LIVE_G0,
4323 TARGET_BROKEN_SAVERESTORE): Likewise.
4324 * config/sparc/linux-aout.h (TARGET_LIVE_G0,
4325 TARGET_BROKEN_SAVERESTORE): Likewise.
4326
4327 * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
4328 (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
4329 not %g2.
4330 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
4331 as sparc64 block profiling register.
4332 * config/sparc/sparc.c (sparc_override_options): Allow block
4333 profiling with -m32.
4334 (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
4335 profiling register.
4336 * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
4337 macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
4338 * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
4339
4340 * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
4341 for sparc64.
4342 * config/sparc/sparc.h: Likewise.
4343 * config/sparc/xm-sysv4-64.h: Likewise.
4344 * config/float-sparc.h: Likewise.
4345 * glimits.h: Likewise.
4346 * longlong.h: Likewise.
4347
4348 * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
4349 (ASM_IDENTIFY_GCC): Remove.
4350
4351 1999-12-14 Bernd Schmidt <bernds@cygnus.co.uk>
4352
4353 * combine.c (combine_simplify_rtx): Don't make shared rtl.
4354 (simplify_logical): Likewise.
4355
4356 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
4357
4358 * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
4359 * cppfiles.c (INO_T_EQ): Likewise.
4360
4361 1999-12-14 Mumit Khan <khan@xraylith.wisc.edu>
4362
4363 * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
4364 * i386/mingw32.h (LIB_SPEC): Likewise.
4365 (STARTFILE_SPEC): Likewise.
4366 * i386/uwin.h (LIB_SPEC): Likewise.
4367 (STARTFILE_SPEC): Likewise.
4368
4369 * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
4370 * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
4371
4372 Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com)
4373
4374 * combine.c (combine_simplify_rtx): Fix order of checks for
4375 (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
4376
4377 1999-12-13 Clinton Popetz <cpopetz@cygnus.com>
4378
4379 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out
4380 12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
4381
4382 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
4383
4384 * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
4385 defined.
4386 * regclass.c (inv_reg_alloc_order): New array.
4387 (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
4388
4389 * reload.h (struct insn_chain): Delete fields group_size, group_mode,
4390 counted_for_groups, counted_for_nongroups. Add fields rld and
4391 n_reloads.
4392 * reload.c (push_secondary_reload): Don't set nongroup field of
4393 new reloads.
4394 (push_reload): Likewise.
4395 (find_reloads): Delete code to compute nongroup fields.
4396 * reload1.c (reload_insn_firstobj): New static variable.
4397 (pseudos_counted, spilled_pseudos): Now of type regset_head. All
4398 users changed.
4399 (calculate_needs, find_tworeg_group, find_group, possible_group_p,
4400 count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
4401 dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
4402 functions.
4403 (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
4404 functions.
4405 (struct hard_reg_n_uses): Deleted.
4406 (potential_reload_regs): Deleted.
4407 (init_reload): Initialize spilled_pseudos and pseudos_counted.
4408 (reload): Don't try to allocate reload registers if we already know
4409 we have to make another pass. Call select_reload_regs. Free memory
4410 starting with reload_firstobj when starting another pass.
4411 Don't allocate spilled_pseudos.
4412 (calculate_needs_all_insns): Call copy_reloads for an insn that
4413 needs reloads; don't call calculate_needs.
4414 (spill_cost): New static array.
4415 (used_spill_regs_local): New static variable.
4416 (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
4417 to compute potential_reload_regs.
4418 (find_reload_regs): Completely rewritten to use find_reg.
4419 (allocate_reload_reg): Don't test counted_for_groups or
4420 counted_for_nongroups. Lose NOERROR arg and code to give an error;
4421 all cllers changed.
4422 (choose_reload_regs): Add fallback code that uses the existing
4423 register allocation from find_reload_regs.
4424
4425 Mon Dec 13 00:54:14 1999 Philippe De Muyter <phdm@macqel.be>
4426
4427 * flow.c (create_edge_list): Cast xmalloc return value.
4428
4429 Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com)
4430
4431 * doprnt.c: Remove incorrect comment closure.
4432
4433 * cse.c: Fix a few minor whitespace goofs.
4434
4435 1999-12-13 Don Bowman <don@pixstream.com>
4436
4437 * mips/vxworks.h: Fix problem with comment termination.
4438 (EXTRA_SECTIONS): Add in_sbss.
4439 (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
4440
4441 1999-12-12 David S. Miller <davem@redhat.com>
4442
4443 * cse.c (struct cse_reg_info): Add hash_next member,
4444 reorder rest of struct for better packing on 64-bit
4445 hosts.
4446 (cse_reg_info_tree): Kill.
4447 (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
4448 REGHASH_FN): New custom pow2 hash mechanism.
4449 (NBUCKETS): Kill.
4450 (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
4451 use a pow2 hash table.
4452 (get_cse_reg_info): Rework to use new REGHASH.
4453 (new_basic_block): Likewise, use HASH_SIZE, and inline
4454 free_element call.
4455 (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
4456 and inline free_element call.
4457 (lookup_as_function, insert, flush_hash_table, invalidate,
4458 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
4459 invalidate_for_call, use_related_value, find_comparison_args,
4460 fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
4461 (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
4462 get_element): Kill.
4463
4464 Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com)
4465
4466 * cse.c (cse_basic_block): Free qty_table consistently.
4467
4468 1999-12-12 David S. Miller <davem@redhat.com>
4469 Jakub Jelinek <jakub@redhat.com>
4470
4471 * config/sparc/sparc.md (movtf reg/reg split): Don't generate
4472 SUBREGs by hand, gen the appropriate hard reg directly.
4473 (movtf reg/mem split): Likewise and alter_subreg on destination
4474 if necessary.
4475 (movtf mem/reg split): Similarly.
4476 (movdf_cc_sp64): Rename from hidden pattern.
4477 (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
4478 (movtf_cc_sp64, following split): New pattern and splitter.
4479 (movdf_cc_reg_sp64): Rename from hidden pattern.
4480 (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
4481 TARGET_HARD_QUAD.
4482 (movtf_cc_reg_sp64, following split): New pattern and splitter.
4483
4484 1999-12-12 Stephen L Moshier <moshier@mediaone.net>
4485
4486 * loop.c (load_mems): Don't hoist written floating point mem
4487 if -ffloat-store.
4488
4489 1999-12-12 Mark Mitchell <mark@codesourcery.com>
4490
4491 * except.h (struct eh_queue): Add `next' pointer.
4492 (struct eh_status): Make x_ehqueue a pointer.
4493 (push_ehqueue): Declare.
4494 (pop_ehqueue): Likewise.
4495 * except.c (expand_eh_region_end): Adjust now that ehqueue is a
4496 pointer.
4497 (expand_fixup_region_end): Likewise.
4498 (expand_leftover_cleanups): Likewise.
4499 (push_ehqueue): Define.
4500 (pop_ehqueue): Likewise.
4501 (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
4502 than doing it inline.
4503 (expand_start_all_catch): Adjust now that ehqueue is a
4504 pointer.
4505 (mark_eh_queue): Mark all level of the queue.
4506 (mark_eh_status): Adjust now that ehqueue is a
4507 pointer.
4508 (init_eh_for_function): Allocate ehqueue.
4509 (free_eh_status): Free it.
4510 * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
4511 expansion for a fixup.
4512
4513 1999-12-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4514
4515 * gthr-single.h (__gthread_active_p): Add prototype arguments.
4516
4517 * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
4518 (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
4519 __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
4520 function_ptr, getpagesize, __enable_execute_stack,
4521 __enable_execute_stack, __clear_insn_cache,
4522 __enable_execute_stack, __do_global_dtors, __do_global_ctors,
4523 _cleanup, _exit, __default_terminate, __terminate_func,
4524 __terminate, __empty, __throw, new_eh_context,
4525 eh_context_initialize, eh_context_static, eh_context_specific,
4526 get_eh_context, __get_eh_context, __get_eh_info,
4527 init_reg_size_table, eh_threads_initialize,
4528 __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
4529 __unwinding_cleanup, throw_helper, __throw, __rethrow,
4530 __pure_virtual): Add prototype arguments.
4531 (__bb_exit_func): Cast a sizeof to long when comparing against one.
4532 Cast a signed value to unsigned long when comparing against one.
4533 (new_eh_context): Wrap in _GTHREADS macro.
4534 (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
4535 declaration.
4536 (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
4537 (throw_helper): Initialize variables `handler_p' and `pc_p'.
4538
4539 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4540
4541 * combine.c (record_promoted_value): Remove unused variable
4542 `links2'.
4543
4544 * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
4545
4546 * global.c (record_conflicts): Likewise for `j'.
4547
4548 * genoutput.c (output_insn_data): Don't unnecessarily cast away
4549 const-ness.
4550
4551 1999-12-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4552
4553 * i386-protos.h (output_387_binary_op, output_fix_trunc,
4554 output_fp_compare): Constify a char*.
4555
4556 * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
4557 static prototypes.
4558 (override_options, ix86_comp_type_attributes, print_operand,
4559 output_387_binary_op, output_fix_trunc, output_fp_compare):
4560 Constify a char*.
4561 (ix86_sched_reorder): Mark parameter `clock_var' with
4562 ATTRIBUTE_UNUSED.
4563
4564 * i386.h (DEBUG_PRINT_REG): Constify a char*.
4565
4566 Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco <apbianco@cygnus.com>
4567
4568 * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
4569 operand, for use in the Java front-end.
4570
4571 1999-12-10 Ben Collins <bcollins@debian.org>
4572
4573 * configure.in: Fix typo for "-64" in 64bit as check.
4574 * configure: Rebuilt.
4575
4576 1999-12-10 Jakub Jelinek <jakub@redhat.com>
4577
4578 * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
4579 appropriate.
4580
4581 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4582
4583 * c-parse.in (string): With -Wtraditional, warn if ANSI string
4584 concatenation is utilized.
4585
4586 * invoke.texi (-Wtraditional): Document it.
4587
4588 1999-12-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4589
4590 * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
4591 Cast a ptrdiff_t to long and pass it to printf with %ld.
4592
4593 1999-12-10 Geoff Keating <geoffk@cygnus.com>
4594
4595 * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
4596 68881, we have no 68881 registers at all.
4597 (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
4598 value in a 68881 register if it is available.
4599
4600 1999-12-10 Clinton Popetz <cpopetz@cygnus.com>
4601
4602 * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
4603 for long long multiply-accumulate.
4604
4605 1999-12-10 Bernd Schmidt <bernds@cygnus.co.uk>
4606
4607 * loop.c (insert_loop_mem): Undo last change.
4608
4609 1999-12-10 David S. Miller <davem@redhat.com>
4610
4611 * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
4612 New functions.
4613 * config/sparc/sparc-protos.h: Add them.
4614 * config/sparc/sparc.h: Add them to PREDICATE_CODES.
4615 (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
4616 constraints which use those helpers.
4617 (EXTRA_CONSTRAINT): Use this new macro.
4618 * md.texi: Update sparc target constraints documentation.
4619 * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
4620 movsf_const_high, movsf_const_lo, movsf_insn): Delete.
4621 (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
4622 movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
4623 (movsf high/lo_sum split): Rework for new patterns.
4624 (movsf expander): Allow storing fp_zero to memory if ! live_g0.
4625
4626 1999-12-09 Gavin Romig-Koch <gavin@cetus.cygnus.com>
4627
4628 * c-common.c (c_common_nodes_and_builtins):
4629 Create __builtin_ptrdiff_t and __builtin_size_t.
4630
4631 Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com)
4632
4633 * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
4634
4635 Fri Dec 10 00:53:10 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
4636
4637 * regclass.c (globalize_reg): Re-instate test that allows
4638 fixed registers to be declared as a variable even after functions
4639 are defined.
4640
4641 Fri Dec 10 00:52:13 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4642
4643 * i386.md (cpu attribute): Add "athlon".
4644 (athlon_decode): New attribute.
4645 (Athlon scheduling units definitions): New.
4646 (fcmp and shld patterns): Set athlon_decode to "vector".
4647 * i386.c (athlon_cost): New.
4648 (m_ATHLON): New.
4649 (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
4650 x86_use_sahf): Set for Athlon.
4651 (x86_use_fiop): Unset for Athlon.
4652 (override_options): Define Athlon alignments and "athlon" name.
4653 (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
4654 * i386.h (TARGET_ATHLON): New.
4655 (enum processor_type): Add PROCESSOR_ATHLON.
4656 (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
4657 for CPU_DEFAULT==5
4658 (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
4659
4660 1999-12-09 Andreas Jaeger <aj@suse.de>
4661
4662 * loop.c (record_biv): Declare parameter as int.
4663
4664 * config/i386/i386-protos.h: Declare long_memory_operand.
4665
4666 1999-12-09 Mark Mitchell <mark@codesourcery.com>
4667
4668 * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
4669 EXPR_WITH_FILE_LOCATION.
4670
4671 Thu Dec 9 11:36:24 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4672
4673 * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
4674 in expander.
4675
4676 * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
4677
4678 * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
4679 updating code.
4680
4681 1999-12-09 Jakub Jelinek <jakub@redhat.com>
4682
4683 * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
4684 default on linux64 again.
4685 * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
4686 models for multilibing.
4687 * genmultilib: Accept | as alternative separator within a set in
4688 MULTILIB_OPTIONS.
4689
4690 * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
4691
4692 * calls.c (precompute_arguments): Make sure initial_value contains
4693 value pseudo which CSE expects.
4694 * cse.c (struct set): New entry orig_src.
4695 (cse_insn): Set it early on entry, use it for libcall EQUIV note
4696 replacement.
4697
4698 Wed Dec 8 22:24:15 1999 Richard Henderson <rth@cygnus.com>
4699
4700 * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
4701
4702 1999-12-08 Bernd Schmidt <bernds@cygnus.co.uk>
4703
4704 * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
4705
4706 1999-12-08 Jakub Jelinek <jakub@redhat.com>
4707
4708 * config/sparc/sparc.c (ultra_cmove_results_ready_p,
4709 ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
4710
4711 * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
4712 if TARGET_ARCH32.
4713
4714 * longlong.h: Merge in changes from glibc.
4715 Also don't clobber %g2 register in 32bit SPARC assembly, so that
4716 -mno-app-regs libgcc can be compiled.
4717 * libgcc2.c: Add defines so that the updated longlong.h
4718 can be used in libgcc2.a. Also, make sure on most architectures
4719 (at least on all which have optimized code in longlong.h defined
4720 for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
4721
4722 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
4723
4724 * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
4725 `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
4726 * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
4727 is GNU ld.
4728 * configure: Rebuilt.
4729
4730 Wed Dec 8 03:45:40 1999 Richard Henderson <rth@cygnus.com>
4731
4732 * alpha.c (secondary_reload_class): For !BWX, sub-simode
4733 outputs require a register.
4734
4735 1999-12-08 Brendan Kehoe <brendan@cygnus.com>
4736
4737 * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
4738 _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to
4739 functions like dptoul will be resolved.
4740 (libgcc2.a): Make sure that the object files from DPBIT are named
4741 differently (prefix `_dp') from those that would be coming from
4742 FPBIT.
4743
4744 1999-12-08 Alexandre Oliva <oliva@lsd.ic.unicamp.br>, Jakub Jelinek <jakub@redhat.com>
4745
4746 * configure.in: When target is sparc* and tm_file contains 64,
4747 test for 64bit support in assembler. If not supported, remove
4748 sparc/t-sol2-64 from target-dependent Makefile fragments.
4749 (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
4750 (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
4751 (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
4752 * acconfig.h (AS_SPARC64_FLAG): Added.
4753 * configure, config.in: Rebuilt.
4754 * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
4755 support. Use AS_SPARC64_FLAG.
4756
4757 1999-12-07 Jakub Jelinek <jakub@redhat.com>
4758
4759 * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
4760 suitable for holding OFmode values so that gcc works with complex
4761 quad long doubles.
4762 (hard_64bit_mode_classes): Likewise.
4763
4764 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
4765 so that it is actually matched.
4766 (sethi_di_medlow): Likewise.
4767
4768 * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
4769 as legitimate constant if -mvis.
4770 * config/sparc/sparc.md (movtf): Likewise.
4771 (clear_sf): Use const_double_operand.
4772 (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
4773
4774 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
4775 * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
4776 * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
4777 routines, _Qp_* cannot be handled like that now.
4778 (INIT_TARGET_OPTABS): Likewise.
4779 * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
4780 (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
4781 sparc_emit_float_lib_cmp if ARCH64 and soft float.
4782 (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
4783 floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
4784 divtf3, sqrttf3): New expanders.
4785 (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
4786 floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
4787 addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
4788 non-_hq patterns.
4789
4790 * configure.in (sparc64-*-linux*): Use posix threads if enabled.
4791 * configure: Rebuilt.
4792 * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
4793 -mcpu is given and we're doing 64bit compiles.
4794
4795 Tue Dec 7 19:22:06 1999 Richard Henderson <rth@cygnus.com>
4796
4797 * loop.h (struct induction): Add multi_insn_incr.
4798 * loop.c (basic_induction_var): New multi_insn_incr argument.
4799 Set it if we search back through previous insns for the biv.
4800 (record_biv): New multi_insn_incr argument; fill in struct induction.
4801 (strength_reduce): Discard an iv with multiple bivs, any of
4802 which require multiple insns to increment.
4803
4804 1999-12-07 Martin v. Löwis <loewis@informatik.hu-berlin.de>
4805
4806 * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
4807 documentation.
4808
4809 1999-12-06 David S. Miller <davem@redhat.com>
4810
4811 * combine.c (check_promoted_subreg): Do not conditionalize this upon
4812 PROMOTE_FUNCTION_RETURN.
4813
4814 Mon Dec 6 15:12:14 1999 Jim Wilson <wilson@cygnus.com>
4815
4816 * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
4817 and handle REG_UNUSED note on insn.
4818
4819 * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set
4820 inner_mask instead of mask.
4821
4822 1999-12-06 Brendan Kehoe <brendan@cygnus.com>
4823
4824 * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
4825 zero if there was an error.
4826
4827 1999-12-06 Jakub Jelinek <jakub@redhat.com>
4828
4829 * config/sparc/sparc.md (return_losum_di): Fix typo in asm
4830 output string.
4831
4832 * longlong.h: Fix clobbers in SPARC asm statements.
4833
4834 * config/sparc/sparc.c (input_operand): Allow HImode and QImode
4835 valid sethi operations when TARGET_ARCH64.
4836
4837 * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
4838 always use move_by_pieces to avoid infinite recursion.
4839 (restore_fixed_argument_area): Likewise.
4840
4841 * combine.c (check_promoted_subreg, record_promoted_value): New
4842 functions.
4843 (combine_instructions): Use them to retain nonzero and sign bit
4844 information after SUBREGs are eliminated by optimizations in
4845 this pass if PROMOTE_FUNCTION_RETURN.
4846
4847 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
4848 .register declaration. Don't use variables with __ prefixes.
4849
4850 Mon Dec 6 12:24:52 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
4851
4852 * fold-const.c (optimize_bit_field_compare): Only use one mode
4853 for both RHS and LHS in non-constant case.
4854
4855 1999-12-06 Nathan Sidwell <nathan@acm.org>
4856
4857 * frame.c (start_fde_sort): Only allocate erratic array, if
4858 linear one was allocated. Return allocated flag.
4859 (fde_insert): Only insert, if there's a valid array.
4860 (fde_end_sort): Split, sort and merge if linear and erratic
4861 arrays exist, else just sort linear one.
4862 (search_fdes): New function. Linear search through original fde
4863 structure.
4864 (frame_init): Permit multiple initializations. Cope with
4865 memory shortages.
4866 (find_fde): Fallback on linear search, if failed to sort array.
4867 (__deregister_frame_info): Only free sorted array, if we
4868 allocated it.
4869
4870 1999-12-06 Jakub Jelinek <jakub@redhat.com>
4871
4872 * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
4873
4874 1999-12-05 Jakub Jelinek <jakub@redhat.com>
4875
4876 * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
4877
4878 1999-12-05 Mark Mitchell <mark@codesourcery.com>
4879
4880 * tree.h (special_function_p): Declare.
4881 * calls.c (special_function_p): Make it global. Don't take `name'
4882 as a parameter. Fix typo in 1999-11-28 change.
4883 (expand_cal): Adjust.
4884
4885 1999-12-04 Mark Mitchell <mark@codesourcery.com>
4886
4887 * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
4888 * tree.h (EXPR_WFL_FILENAME): Define in terms of
4889 EXPR_WFL_FILENAME_NODE.
4890 (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
4891 the TREE_CHAIN.
4892 * print-tree.c (print_note): Print TREE_PRIVATE and
4893 TREE_PROTECTED.
4894
4895 * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
4896 the original die cannot be found.
4897
4898 * varray.h (varray_head_tag): Add elements_used.
4899 (VARRAY_PUSH): New macro.
4900 (VARRAY_POP): Likewise.
4901 (VARRAY_TOP): Likewise.
4902 Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
4903 types.
4904 * varray.c (varray_init): Initialize elements_used.
4905 * Makefile.in (BASIC_BLOCK_H): Add varray.h.
4906 (INTEGRATE_H): New variable.
4907 (integrate.o): Depend on INTEGRATE_H.
4908 (unroll.o): Likewise.
4909
4910 * function.h (insert_block_after_note): Declare.
4911 * function.c (insert_block_after_note): Split out from ...
4912 (retrofit_block): ... here.
4913
4914 * stmt.c (expand_fixup): Fix typo in comment.
4915
4916 Sat Dec 4 14:13:38 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
4917
4918 * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
4919 (optimize_reg_copy_1): Remove REG_N_REFS updating code.
4920 (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
4921 (regmove_optimize, fixup_match_1): Likewise.
4922
4923 1999-12-05 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
4924
4925 * flow.c (flow_loops_dump): Add missing argument when calling
4926 flow_loop_nested_p.
4927
4928 1999-12-04 Geoffrey Keating <geoffk@cygnus.com>
4929 Greg McGary <gkm@gnu.org>
4930
4931 * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
4932 (init_attributes): Add A_NO_LIMIT_STACK.
4933 (decl_attributes): Handle A_NO_LIMIT_STACK.
4934 * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
4935 * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
4936 Handle stack bounds checking.
4937 * flags.h (flag_stack_check): Use the word 'probe' rather than
4938 'check', because the flag doesn't actually cause any checking to
4939 be done.
4940 * function.c (expand_function_start): Set
4941 current_function_limit_stack.
4942 * function.h (struct function): Add limit_stack.
4943 (current_function_limit_stack): Define.
4944 * invoke.texi (Code Gen Options): Document new options.
4945 * rtl.h: Declare stack_limit_rtx.
4946 * toplev.c (stack_limit_rtx): New variable.
4947 (decode_f_option): Handle new options -fstack-limit-register=REG,
4948 -fstack-limit-symbol=IDENT, -fno-stack-limit.
4949 (main): Add stack_limit_rtx as GC root.
4950 * tree.h (DECL_NO_LIMIT_STACK): New macro.
4951 (struct tree_decl): New member no_limit_stack.
4952
4953 * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
4954 stack_limit_rtx.
4955 * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
4956 (conditional_trap+1): Get new mnemonic correct.
4957 (conditional_trap+2): New pattern for DImode traps.
4958
4959 * config/m68k/m68k.c (output_function_prologue): Handle
4960 stack_limit_rtx.
4961 * config/m68k/m68k.md (trap): New insn.
4962 (conditional_trap): New insn.
4963 * md.texi (Standard Names): Document `trap' and
4964 `conditional_trap'.
4965 * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
4966 so a cc0 setter doesn't get emitted at some random place in the
4967 function.
4968
4969 * config/i960/i960.md (trap): New insn.
4970 (conditional_trap): New expander.
4971 (conditional_trap+1, conditional_trap+2): New insns for signed
4972 and unsigned cases.
4973 * config/i960/i960.c (i960_function_prologue): Use
4974 STARTING_FRAME_OFFSET. Handle stack_limit_rtx.
4975
4976 Thu Dec 2 21:22:45 1999 Greg McGary <gkm@gnu.org>
4977 Geoffrey Keating <geoffk@cygnus.com>
4978
4979 * flags.h (warn_padded, warn_packed): Add global var decls.
4980 * toplev.c (warn_padded, warn_packed): Add global var defns.
4981 (W_options): Add warnings `-Wpacked' and `-Wpadded'.
4982 * stor-layout.c (layout_record): Add local variable `type'
4983 to hold often-used TREE_TYPE (field). Add local variable
4984 `unpacked_align' to hold alignment that would be in force
4985 if no `packed' attribute were present. Warn if `packed' attribute
4986 is unnecessary, or even harmful. Warn when gcc inserts padding
4987 to satisfy alignment requirements of members. Use NULL_TREE
4988 when checking whether var_size is set.
4989 * invoke.texi: Document new flags.
4990
4991 1999-12-03 Nathan Sidwell <nathan@acm.org>
4992
4993 * frame.c (fde_split): Reimplement to avoid variable sized array.
4994
4995 Thu Dec 2 18:59:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
4996
4997 * combine.c (try_combine): Before fixing up LOG_LINKS for the
4998 i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
4999
5000 1999-12-02 Gavin Romig-Koch <gavin@cygnus.com>
5001
5002 * invoke.texi: Document the mips option -mno-crt0
5003
5004 1999-12-02 Mike Karr <mkarr@mathworks.com>
5005
5006 * cccp.c (argdata): Added free_ptr member.
5007 (macroexpand): Initialize free_ptr of each argument. When an
5008 argument's buffers are freed, if the argument's free_ptr corresponds
5009 to a buffer on the input stack, then return the free_ptr to that stack
5010 frame, otherwise, free it.
5011 (macarg): If an argument begins and ends on the same input stack level,
5012 then transfer the free_ptr of that buffer to the argument in case
5013 the stack is popped during the processing of a subsequent argument.
5014
5015 1999-12-02 Bernd Schmidt <bernds@cygnus.co.uk>
5016
5017 * loop.c (note_reg_stored): New function.
5018 (struct note_reg_stored_arg): New structure.
5019 (try_copy_prop): Change to be more conservative; only replace within
5020 one extended basic block and stop replacing if a store to the
5021 replacement reg is seen.
5022
5023 1999-12-02 Nick Clifton <nickc@cygnus.com>
5024
5025 * config/fp-bit.c: Initialise all fields of the NAN
5026 constants.
5027
5028 * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
5029 to HANDLE_PRAGMA.
5030
5031 Wed Dec 1 18:16:38 1999 Jan Hubicka <hubicka@freesoft.cz>
5032
5033 * i386.md (extend?f?f2): Force the input into a register, not
5034 the output.
5035
5036 1999-12-01 Jakub Jelinek <jakub@redhat.com>
5037
5038 * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
5039 regclass' sake.
5040 (movdf_const_intreg_sp32): Likewise. Prefer the memory load
5041 alternative because setting up 64bit constant is usually costly,
5042 especially when reload is in progress or completed.
5043 (movdf_const_intreg_sp64): Likewise.
5044 (movdf_const_intreg split): Fix building up constants when
5045 HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
5046
5047 Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com)
5048
5049 * combine.c (if_then_else_cond): Use const_true_rtx instead of
5050 const1_rtx for return values in EQ/NE comparison against (const_int 0)
5051 case.
5052
5053 * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
5054 (asm_file_start): Emit .am33 into assembly file when compiling for
5055 the AM33.
5056 (print_operand_address): Handle POST_INC addresses.
5057 (can_use_return_insn, initial_offset): Check AM33 registers too.
5058 (expand_prologue): Check & save AM33 registers too.
5059 (expand_epilogue): Similarly.
5060 (secondary_reload_class): Handle AM33 specific secondary reloads.
5061 (output_tst): Emit efficient code for the AM33 too.
5062 * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
5063 (TARGET_SWITCHES): Add -mam33 switch.
5064 (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
5065 (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
5066 (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
5067 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
5068 (enum reg_class, REG_CLASS_NAMES): Likewise.
5069 (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
5070 (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
5071 (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
5072 (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
5073 (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
5074 (HAVE_POST_INCREMENT): Define.
5075 (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
5076 (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
5077 * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
5078 (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
5079 (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
5080 (zero_extend to SI from QI/HI): Likewise.
5081 (sign_extend to SI from QI/HI): Likewise.
5082 (mulsidi3, umulsidi3): New patterns for the AM33.
5083 (tstsi with zero extension from QI/HI): Add AM33 variants.
5084 (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
5085 (return_internal_regs, store_movm): Handle new AM33 registers.
5086 * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
5087 (LIBGCC, INSTALL_LIBGCC): Likewise.
5088 * invoke.texi: Document new flags.
5089
5090 Fri Nov 26 10:59:12 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
5091
5092 * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
5093 (addsi3_carry): Likewise.
5094 (sbbsi3_cc): Add "binary_operator_ok" to the condition.
5095 (sbbsi3_carry): Likewise.
5096 (mulsi3): Rewrite to expander, ensure that only one operand is memory.
5097 (mulhi3): Likewise.
5098 (test?i_1): Ensure that only one operand is memory.
5099 (conditional move patterns): likewise.
5100 (shift and rotate patterns): Rewrite to expander, add
5101 "binary_operator_ok" to the condition.
5102
5103 * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
5104 * i386.h (procesor_costs): Add movzbl_load field.
5105 (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
5106 non-Q registers, accept DImode registers anywhere.
5107 (Q_CLASS_P): New.
5108 (MEMORY_MOVE_COST): Calculate QImode moves correctly.
5109 * i386.c (*_cost): Set value for movxbl_load field.
5110
5111 * (addsi): New add to lea splitter.
5112 (ashlsi): Likewise.
5113 (lea to add/shift peep2): New.
5114
5115 1999-12-01 Mark Salter <msalter@cygnus.com>
5116
5117 * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
5118 * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
5119 * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
5120
5121 Tue Nov 30 15:20:52 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5122
5123 * i386.c (ix86_expand_move): Never add clobbers to move patterns.
5124 * i386.md (movsi_xor): New.
5125 (movsi_or): New.
5126 (movsi_1, movhi_1, movqi_1): Remove.
5127 (movsi_2): Rename to movsi_1.
5128 (movhi_2): Rename to movhi_1.
5129 (movqi_2): Rename to movqi_1.
5130 (movdi_1): Remove; remove splitter.
5131 (movdi_2): Rename to movdi_1.
5132 (divmodsi4 splitter): Do not emit clobbers for move patterns.
5133 (long move peep2): Do not create QI or HI mode mov0s
5134 (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
5135
5136 * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
5137 rewrite splitters.
5138
5139 * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
5140 (abs?f2_if): Likewise.
5141
5142 1999-11-30 Alex Samuel <samuel@codesourcery.com>
5143
5144 * ggc.h (ggc_test_and_set_mark): New macro.
5145 (ggc_mark_rtx): Use ggc_test_and_set_mark.
5146 (ggc_mark_tree): Likewise.
5147 (ggc_mark_rtvec): Likewise.
5148 * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
5149
5150 1999-11-30 Jason Merrill <jason@casey.cygnus.com>
5151
5152 * dwarf2out.c (scope_die_for): Only handle types. Only search for
5153 containing types.
5154 (decl_scope_table): Just an array of trees now.
5155 (push_decl_scope): Simplify.
5156 (dwarf2out_init): Adjust.
5157 (local_scope_p): New fn.
5158 (gen_inlined_enumeration_type_die): Don't call scope_die_for.
5159 (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
5160 (gen_typedef_die): Likewise.
5161 (gen_lexical_block_die): Don't call push/pop_decl_scope.
5162 (gen_inlined_subroutine_die): Likewise.
5163 (gen_abstract_function): Set current_function_decl temporarily.
5164 (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
5165 Handle block extern declarations. Don't call push/pop_decl_scope.
5166 (gen_decl_die): Fix logic for block externs.
5167
5168 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5169
5170 * calls.c (special_function_p): Remove `realloc' and add `strdup'
5171 to the list of functions which have attribute malloc by default.
5172
5173 1999-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5174
5175 * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
5176 integer constant does not match the traditional type, limit the
5177 warnings to cases where the base of the type is ten.
5178
5179 * invoke.texi (-Wtraditional): Document it.
5180
5181 Tue Nov 30 15:18:35 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5182
5183 * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
5184 * rs6000.md: Only access a CONST_INT with INTVAL
5185
5186 Tue Nov 30 14:21:00 1999 Richard Henderson <rth@cygnus.com>
5187
5188 * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
5189 (compute_nearerout): Likewise.
5190 * ggc-page.c (ggc_page_print_statistics): Explicitly cast
5191 size_t to unsigned long for formatting.
5192
5193 1999-11-30 Jakub Jelinek <jakub@redhat.com>
5194
5195 * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
5196 Allow the user to override call-used/fixed state of %g2-5
5197 registers from the command line (with the exception of %g4 for
5198 embedded model).
5199 (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
5200 there is a higher chance of having a leaf function.
5201 (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
5202 for ARCH64 which has %ccr register.
5203 * config/sparc/sparc.md (return_losum_si, return_losum_di): New
5204 patterns.
5205 * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
5206 insn accept into delay slot any insn which does not use %[ol]
5207 registers. Accept some LO_SUM and shift left by 1 for the normal
5208 restore case.
5209 (output_function_epilogue): Likewise.
5210 (epilogue_renumber): Added argument which inhibits any renumbering
5211 and just tests if the rtx does not use any %[ol] registers.
5212 (output_return): Reflect above change.
5213
5214 1999-11-30 Jakub Jelinek <jakub@redhat.com>
5215
5216 * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
5217 aggregate passing for sizes <= 16 bytes.
5218
5219 1999-11-30 Bernd Schmidt <bernds@cygnus.co.uk>
5220
5221 * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
5222 * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
5223 * reload.c (find_dummy_reload): Likewise.
5224 (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
5225 * reload1.c (reload_as_needed): Likewise.
5226 * stupid.c (stupid_find_reg): Likewise.
5227 * tm.texi (Obsolete Register Macros): Delete section.
5228 * gmicro.h: Remove all traces of the two macros.
5229 * i386.h: Likewise.
5230 * m88k.h: Likewise.
5231 * mips.h: Likewise.
5232
5233 1999-11-30 Brendan Kehoe <brendan@cygnus.com>
5234
5235 * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
5236 (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
5237 (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
5238 * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
5239 units for the sparclite86x chip.
5240 (flush): Revert October 14th change; add SImode specifically.
5241 (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
5242 * invoke.texi: Document it.
5243
5244 Tue Nov 30 14:58:14 1999 Nick Clifton <nickc@cygnus.com>
5245
5246 * config/mn10200/mn10200.h (PREDICATE_CODES): Add
5247 psimode_truncation_operand.
5248
5249 * config/mn10200/mn10200.c (psimode_truncation_operand): New
5250 function. Return true if the operand is either a MEM valid
5251 for a PSImode address or not a MEM at all.
5252
5253 * config/mn10200/mn10200.md (truncsipsi2): Use
5254 psimode_truncation_operand.
5255
5256 1999-11-30 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5257
5258 * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
5259 (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
5260 (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
5261 (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
5262 (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
5263 (flow_loop_level_compute, low_loops_level_compute): Likewise.
5264 (flow_loops_find, flow_loop_outside_edge_p): Likewise.
5265 * basic-block.h: Protect from multiple inclusion.
5266 (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
5267 (struct loops, struct loop): Define structures.
5268 * sbitmap.c (sbitmap_a_subset_b_p): New function.
5269 * sbitmap.h: Protect from multiple inclusion.
5270 (sbitmap_a_subset_b_p): Add prototype.
5271 * Makefile.in (LOOP_H): New macro.
5272 (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
5273
5274 Tue Nov 30 01:34:47 1999 Philippe De Muyter <phdm@macqel.be>
5275
5276 * cppinit.c (CAT): The argument list of this macro may not contain
5277 spaces !
5278
5279 1999-11-29 David S. Miller <davem@redhat.com>
5280
5281 Move quantity tables and register equivalence chains into
5282 per-qty and per-register structure arrays respectively.
5283 * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
5284 qty_const_insn, qty_comparison_code, qty_comparison_const,
5285 qty_comparison_qty): Delete, replace with...
5286 (qty_table): this structure table.
5287 (reg_next_eqv, reg_prev_eqv): Delete, replace with...
5288 (reg_eqv_table): this structure table.
5289 (make_new_qty): Add argument MODE. Caller updated.
5290 Update to use qty_table and reg_eqv_table.
5291 (make_regs_eqv, delete_reg_equiv, insert_regs,
5292 insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
5293 fold_rtx, equiv_constant, record_jump_cond, cse_insn,
5294 cse_process_notes, cse_main, cse_basic_block): Likewise.
5295
5296 Mon Nov 29 16:56:42 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5297
5298 * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
5299 operation if C is negative.
5300 (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
5301 (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
5302 law for some divisions if constant is negative and change other
5303 divisions to the opposite rounding.
5304
5305 * expr.c (store_constructor_field): If bit position is not multiple
5306 of alignment of TARGET's mode, use BLKmode.
5307
5308 * expr.c (expand_expr_unaligned): Add more code from full case
5309 that is needed when OP0 is in a register.
5310
5311 Mon Nov 29 18:09:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5312
5313 * dwarfout.c (field_byte_offset): Size can be zero if there was
5314 an error.
5315
5316 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
5317
5318 * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
5319 (associate_trees): Delete unused var TEM.
5320 (extract_muldiv): Delete unused var CANCEL_P.
5321
5322 * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
5323 (target_isinf, target_isnan, target_negative): Add return types to
5324 function definitions.
5325
5326 1999-11-29 Bruce Korb <autogen@linuxbox.com>
5327
5328 * fixinc/fixincl.c(process): don't skip GLIBC files any more.
5329 * fixinc/hackshell.tpl: ditto
5330 * fixinc/fixtests.c(double_slash_test): more C++ header testing
5331 * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
5332
5333 1999-11-29 Bernd Schmidt <bernds@cygnus.co.uk>
5334
5335 * reload.c (push_reload): When looking for a register to put into
5336 reg_rtx, make sure all hard regs in a multi-reg register are in the
5337 right class and nonfixed.
5338
5339 * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
5340 pending_read_insns, pending_write_insns, pending_read_mems,
5341 pending_write_mems, pending_list_length, last_pending_memory_flush,
5342 last_function_call, sched_before_next_call): Move static variables
5343 into a structure.
5344 (bb_ prefixed versions): Replace with single array bb_deps.
5345 (struct deps): New structure.
5346 (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
5347 sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
5348 argument of type "struct deps *"; use that instead of global
5349 variables. All callers changed.
5350 (init_rgn_data_dependencies): Delete function.
5351 (init_rtx_vector): Delete function.
5352 (init_deps): New function.
5353
5354 (free_pending_lists): Simplify, we always use the bb_deps array even
5355 if only one basic block.
5356 (compute_block_backward_dependences): Likewise.
5357 (schedule_region): Likewise.
5358
5359 (propagate_deps): New function, broken out of
5360 compute_block_backward_dependences.
5361 (compute_block_backward_dependences): Use it.
5362
5363 * alpha.md: Delete useless patterns that tried to work around
5364 register elimination problems.
5365
5366 * unroll.c (loop_iterations): Don't abort if iteration variable
5367 was made by loop.
5368
5369 From Joern Rennecke:
5370 * reload1.c (reloads_conflict): Reverse test comparing operand
5371 numbers when testing for conflict between output/outaddr reloads.
5372
5373 1999-11-29 David S. Miller <davem@redhat.com>
5374
5375 * config/sparc/sparc.c (init_cumulative_args): Fix type of third
5376 arg.
5377 * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
5378
5379 1999-11-28 Robert Lipe <robertl@cygnus.com>
5380
5381 * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
5382 table from .fini into .dtor.
5383
5384 1999-11-28 Anthony Green <green@cygnus.com>
5385
5386 * tree.h (struct tree_decl): Add malloc_flag.
5387 (DECL_IS_MALLOC): Define.
5388 * c-common.c (attrs): Add A_MALLOC attribute.
5389 (init_attributes): Add this attribute to the table.
5390 (decl_attributes): Handle malloc attribute.
5391 * calls.c (special_function_p): Check for the malloc attribute.
5392 * extend.texi (Function Attributes): Document malloc attribute.
5393
5394 Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com)
5395
5396 * pa.md (reload shift-add patterns): Remove.
5397
5398 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5399
5400 * reorg.c (dbr_schedule) Print more statistics. Corrected
5401 problem when printing info when 3 delay slots are filled.
5402
5403 1999-11-28 Jakub Jelinek <jakub@redhat.com>
5404
5405 * combine.c (setup_incoming_promotions): Pass an outgoing
5406 regno to FUNCTION_ARG_REGNO_P which it expects.
5407
5408 1999-11-28 Andreas Jaeger <aj@suse.de>
5409
5410 * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
5411
5412 Sun Nov 28 00:48:15 1999 Philippe De Muyter <phdm@macqel.be>
5413
5414 * cccp.c (do_include): Avoid initialization of automatic variable.
5415
5416 * integrate.c (mark_stores): Function definition made void, to match
5417 previous declaration.
5418 * regclass.c (dump_regclass): Ditto.
5419 * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
5420
5421 Sat Nov 27 08:38:26 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5422
5423 * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
5424 known to be multiple of divisor.
5425
5426 * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
5427
5428 * combine.c (try_combine): Add code to try to merge a set of a
5429 two-word pseudo to a constant with a setting of one of those words
5430 to a constant.
5431
5432 * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
5433 (split_tree): Completely rework to make more general.
5434 (make_range, fold): Call negate_expr.
5435 (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
5436 (fold, associate): Call new split_tree and associate_trees.
5437 (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
5438
5439 1999-11-26 Bernd Schmidt <bernds@cygnus.co.uk>
5440
5441 * loop.c (try_copy_prop): Avoid GNU C extension.
5442
5443 1999-11-25 Mark Mitchell <mark@codesourcery.com>
5444
5445 * except.c (init_eh_for_function): Still zero eh_return_context,
5446 eh_return_stack_adjust, and eh_return_handler.
5447
5448 * except.h (eh_status): Adjust documentation for x_protect_list.
5449 (begin_protect_partials): New function.
5450 * except.c (enqueue_eh_entry): Fix formatting.
5451 (get_first_handler): Add consistency check.
5452 (add_partial_entry): Adjust usage of protect_list.
5453 (emit_cleanup_handler): Save and restore ehqueue.
5454 (expand_start_all_catch): Add comment.
5455 (begin_protect_partials): New function.
5456 (end_protect_partials): Adjust usage of protect_list.
5457 (init_eh_for_function): Use xcalloc.
5458
5459 1999-11-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5460
5461 * c-common.c (check_format_info): Don't call a variadic function
5462 with a non-literal format string.
5463
5464 * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
5465
5466 * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
5467 pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
5468 Likewise.
5469
5470 * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
5471 Likewise.
5472
5473 * collect2.c (collect_wait): Likewise.
5474
5475 * dbxout.c (dbxout_type): Likewise.
5476
5477 * gcc.c (do_spec_1): Likewise.
5478
5479 * genemit.c (gen_insn, gen_expand): Likewise.
5480
5481 * genrecog.c (write_switch, write_subroutine): Likewise.
5482
5483 * mips-tfile.c (catch_signal, botch): Likewise.
5484
5485 * print-rtl.c (print_rtx): Likewise.
5486
5487 * toplev.c (default_print_error_function, report_error_function,
5488 _fatal_insn): Likewise.
5489
5490 1999-11-25 Mark Mitchell <mark@codesourcery.com>
5491
5492 * tree.c (unsave_expr_now): Handle NULL_TREE as input.
5493
5494 Wed Nov 24 17:08:09 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5495
5496 * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
5497 operations when needed.
5498 * i386.md (fop_?f_comm): New.
5499 (fop_?f_1): Do not accept commutative operands.
5500
5501 1999-11-25 Andreas Jaeger <aj@suse.de>
5502
5503 * config/mips/mips.md (casesi_internal): Add missing brace.
5504
5505 1999-11-25 Jason Merrill <jason@casey.cygnus.com>
5506
5507 * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
5508 (splice_child_die): Handle moving a child DIE from the declaration
5509 DIE of a class to its specification.
5510 (gen_struct_or_union_type_die): Use 'complete' consistently.
5511 (gen_decl_die): Generate the virtual context DIE first.
5512 Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
5513
5514 1999-11-24 Gavin Romig-Koch <gavin@cygnus.com>
5515
5516 * config/mips/mips.md (call_value_multiple_interanal1): New.
5517
5518 1999-11-24 Jason Merrill <jason@casey.cygnus.com>
5519
5520 * dwarf2out.c (free_AT, free_die): New fns.
5521 (remove_children): Call them.
5522 (output_line_info): Disable removal of duplicate notes.
5523
5524 Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
5525 * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
5526 means pretend the type isn't defined.
5527 Don't defer emitting types.
5528 (gen_type_die_for_member): New fn.
5529 (gen_decl_die): Call it.
5530 (splice_child_die): New fn.
5531 (gen_member_die): Call it rather than generate duplicate dies.
5532
5533 Defer emitting information for the abstract instance of an inline
5534 until we either inline it or emit an out-of-line copy.
5535 * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
5536 from output_inline_function if DECL_ABSTRACT is also set.
5537 (block_ultimate_origin): Likewise.
5538 (gen_abstract_function): New fn.
5539 (gen_decl_die, gen_inlined_subroutine_die): Call it.
5540 (gen_subprogram_die): An abstract instance is not a declaration
5541 just because it doesn't match current_function_decl. Don't abort
5542 because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration
5543 has an abstract origin.
5544 * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
5545 abstract instance here.
5546
5547 Wed Nov 24 18:39:18 1999 Andrew Haley <aph@cygnus.com>
5548
5549 * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
5550 where we need to reload fpul from a system register.
5551
5552 1999-11-24 Andreas Jaeger <aj@suse.de>
5553
5554 * config/mips/linux.h (CPP_PREDEFINES): Added.
5555 (LINK_SPEC): Remove -Y since this is only needed on sparc.
5556
5557 1999-11-24 Andreas Jaeger <aj@suse.de>
5558
5559 * config/mips/linux.h (TARGET_VERSION): Added.
5560 (HANDLE_SYSV_PRAGMA): Added.
5561 (DEFAULT_VTABLE_THUNKS): Added.
5562
5563 Wed Nov 24 14:12:15 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5564
5565 * local-alloc.c (qty): New structure and static variable.
5566 (qty_phys_reg): Remove, all references changed to qty.
5567 (qty_n_refs): Likewise.
5568 (qty_min_class): Likewise.
5569 (qty_birth): Likewise.
5570 (qty_death): Likewise.
5571 (qty_size): Likewise.
5572 (qty_mode): Likewise.
5573 (qty_n_calls_crossed): Likewise.
5574 (qty_alternate_class): Likewise.
5575 (qty_changes_size): Likewise.
5576 (qty_first_reg): Likewise.
5577 (alloc_qty): Rename variable QTY to QTYNO.
5578 (finf_free_reg): Likewise.
5579 (local_alloc): Allocate qty, do not allocate the removed variables.
5580
5581 Wed Nov 24 17:26:05 1999 Geoffrey Keating <geoffk@cygnus.com>
5582
5583 * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
5584 when -membedded-pic is passed.
5585
5586 * config/mips/mips.md (casesi): Handle 64-bit case too.
5587 (casesi_internal_di): New insn.
5588
5589 * config/mips/mips.c (embedded_pic_offset): Always make the
5590 embedded-pic subtractions relative to the name of the current
5591 function by use of the magic string "..CURRENT_FUNCTION".
5592 * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
5593
5594 1999-11-24 Geoffrey Keating <geoffk@cygnus.com>
5595
5596 * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
5597 of (const_int 0), when what we really care about is
5598 whether it's a zero constant anyway.
5599 (div_trap_mips16): Likewise.
5600
5601 1999-11-23 Mark Mitchell <mark@codesourcery.com>
5602
5603 * loop.c (loop_optimize): Always find_loop_tree_blocks and
5604 unroll_block_trees when generating debuggable code.
5605
5606 * tree.h (unsave_expr_1): New function.
5607 (lang_unsave): New variable.
5608 (get_callee_fndecl): New function.
5609 * tree.c (unsave_expr_now_r): New function.
5610 (lang_unsave): Define.
5611 (unsave_expr_1): Likewise.
5612 (unsave_expr_now_r): Split out from unsave_expr_now.
5613 (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise,
5614 call unsave_expr_now_r.
5615 (get_callee_fndecl): Define.
5616
5617 * Makefile.in (gencheck): Don't depend on lang_tree_files.
5618 (gencheck.o): Do depend on lang_tree_files.
5619
5620 * integrate.h (copy_decl_for_inlining): New declaration.
5621 * integrate.c (copy_and_set_decl_abstract_origin): Remove.
5622 (copy_decl_for_inlining): New function.
5623 (integrate_parm_decls): Use it.
5624 (integrate_decl_tree): Likewise.
5625
5626 1999-11-23 Gavin Romig-Koch <gavin@cygnus.com>
5627
5628 * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
5629 the second two from the first.
5630 (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
5631 * config/mips/mips.md (movcc,reload_incc,reload_outcc,
5632 conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
5633 ISA_HAS_FP4.
5634 * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
5635 override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
5636 ISA_HAS_FP4.
5637
5638 Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com)
5639
5640 * pa.md (call_internal_symref, call_value_internal_symref): No mode
5641 needed on the address operand.
5642 * pa.c (call_operand_address): Check for the correct mode.
5643
5644 1999-11-23 Bernd Schmidt <bernds@cygnus.co.uk>
5645
5646 * loop.c: Include "basic-block.h".
5647 (try_copy_prop, replace_loop_reg): New functions.
5648 (load_mems): Detect registers that just hold copies of the hoisted
5649 mem, and call try_copy_prop to eliminate them.
5650 * Makefile.in (loop.o): Update dependencies.
5651
5652 Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson <hp@axis.com>
5653
5654 * Makefile.in (gencheck.o): Depend on gencheck.h.
5655 (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
5656 (insn-peep.o): Depend on except.h and function.h.
5657 (insn-attrtab.o): Depend on RECOG_H.
5658 (insn-output.o): Depend on toplev.h and flags.h.
5659 (gengenrtl.o): Depend on real.h.
5660 (gen-protos.o): Depend on cpplib.h and cpphash.h.
5661 Unify all dependencies to be on RECOG_H rather than recog.h.
5662
5663 Tue Nov 23 00:57:10 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
5664
5665 From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
5666 * configure.in: Try building a bi-arch 32/64-bit compiler on
5667 sparc-*-solaris2.7 and higher.
5668 * configure: Rebuild.
5669
5670 Mon Nov 22 23:09:44 1999 David O'Brien <obrien@FreeBSD.org>
5671
5672 * config/freebsd.h: New, FreeBSD architecture independent file.
5673 * config/i386/freebsd-elf.h: removed FreeBSD architecturally
5674 independent pieces.
5675 * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
5676 directly by i386/freebsd.h.
5677 * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
5678 independent configuration file.
5679 (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
5680 directly by i386/freebsd.h.
5681 * configure: Rebuilt.
5682
5683 * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
5684 which is in the user's namespace.
5685 * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
5686 `i386' which is not in our namespace.
5687
5688 Mon Nov 22 22:58:01 1999 "R. Kelley Cook" <KelleyCook@attglobal.net>
5689
5690 * invoke.texi (ARM Options): Add in -mno-alignment-traps
5691
5692 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
5693
5694 * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
5695 (add_dwarf_attr, add_child_die): Just push onto the front.
5696 (reverse_die_lists): New fn.
5697 (add_sibling_attributes): Use it.
5698 (push_decl_scope): Reorganize.
5699 (add_name_and_src_coords_attributes): Don't set file and line for
5700 an artificial decl.
5701 (gen_subprogram_die): An artificial function doesn't need to match
5702 file and line.
5703 (gen_compile_unit_die): Return the generated die. Only add
5704 AT_comp_dir if the filename is relative.
5705 (remove_AT): Simplify loop. Also free string values.
5706 (output_die): A DIE ref can't be null.
5707 (output_value_format, value_format): Take a dw_attr_ref.
5708 (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
5709 (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
5710 AT_addr, AT_lbl): New fns.
5711 (various): Use them.
5712 (various): Constify.
5713
5714 Mon Nov 22 23:53:50 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
5715
5716 * combine.c (combine_simplify_rtx): When handling a SUBREG,
5717 take SUBREG_WORD into account.
5718 (if_then_else_cond): Likewise.
5719
5720 1999-11-22 Jason Merrill <jason@casey.cygnus.com>
5721
5722 * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
5723 clause from BSD license, pursuant with
5724
5725 ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
5726
5727 1999-11-22 Bernd Schmidt <bernds@cygnus.co.uk>
5728
5729 * loop.c (load_mems): Reformat slightly.
5730 * basic-block.h (regset_head): New typedef.
5731 (INIT_REG_SET): New macro.
5732
5733 1999-11-22 Bruce Korb <autogen@linuxbox.com
5734
5735 * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
5736 (mips-dec-bsd*): non-functional code
5737 (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
5738
5739 * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
5740 added three replacement fixes
5741 (no_double_slash): removed comments that are not (any longer) pertinent
5742 (bad_lval): this fix currently runs against many files.
5743 The comment seems to indicate that we should select for files
5744 containing 'pragma extern_prefix'.
5745
5746 * fixinc/fixinc.x86-linux-gnu: deleted
5747 * fixinc/inclhack.sh: regen
5748 * fixinc/fixincl.x: regen
5749 * fixinc/fixincl.sh: regen
5750
5751 Fri Nov 12 14:08:40 1999 Andrew Haley <aph@cygnus.com>
5752
5753 * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
5754 its code is INSN and it has no notes.
5755
5756 1999-11-22 Andrew Haley <aph@cygnus.com>
5757
5758 * varasm.c (function_defined): Remove.
5759 (make_function_rtl): Don't set function_defined.
5760 (make_decl_rtl): Remove global register warning.
5761 * regclass.c (no_global_reg_vars): New variable.
5762 (globalize_reg): Warn if function has already been defined.
5763 (regclass_init): Set no_global_reg_vars.
5764
5765 Mon Nov 22 14:42:22 MET 1999 Jan Hubicka <hubicka@freesoft.cz>
5766
5767 * regclass.c (reg_pref): New structure and static variable
5768 (prefclass): Delete.
5769 (altclass): Delete.
5770 (all uses of prefclass and altclass): Use reg_pref instead.
5771
5772 1999-11-21 Nick Clifton <nickc@cygnus.com>
5773
5774 * invoke.texi (ARM Options): Replace -mshort-load-bytes with
5775 -malignment-traps.
5776 (arm.h): Replace -mshort-load-bytes with -malignment-traps.
5777 (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
5778 (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
5779
5780 Sun Nov 21 17:11:13 1999 Geoffrey Keating <geoffk@cygnus.com>
5781
5782 * varasm.c (output_constructor): Solve problem with long long
5783 bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
5784
5785 Fri Nov 19 05:48:45 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
5786
5787 * global.c (allocno): New structure and static variable.
5788 (allocno_reg): Remove, all references replaced by allocno.
5789 (allocno_size): Likewise.
5790 (hard_reg_conflicts): Likewise.
5791 (hard_reg_preferences): Likewise.
5792 (hard_reg_copy_preferences): Likewise.
5793 (hard_reg_full_preferences): Likewise.
5794 (regs_someone_prefers): Likewise.
5795 (allocno_calls_crossed): Likewise.
5796 (allocno_n_refs): Likewise.
5797 (allocno_live_length): Likewise.
5798 (find_reg): Rename ALLOCNO to NUM.
5799
5800 * regclass.c (may_move_in_cost): Rename from may_move_cost, all
5801 references updated.
5802 (may_move_out_cost): New variable.
5803 (init_reg_sets_1): Initialize may_move_out_cost.
5804 (record_reg_classes): Use may_move_out_cost.
5805
5806 * regclass.c (dump_regclass): New function.
5807 (regclass): New parameter DUMP, call DUMP_REGCLASS.
5808 * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
5809 pass rtl_dump_file to regclass.
5810 * rtl.h (regclass): Update prototype.
5811
5812 Fri Nov 19 06:32:19 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
5813
5814 * i386.md (neg, not and abs patterns): Revmap to use
5815 ix86_expand_unary_operator and ix86_unary_operator_ok.
5816 (add?f and sub?f expanders): Force operand 1 to register.
5817 * i386.c (ix86_expand_unary_operator): Rewrite.
5818 (ix86_unary_operator_ok): Ensure that memory operands
5819 match real opcode.
5820 (ix86_binary_operator_ok): Do not allow operand 1 to
5821 come into memory and operand 0 not.
5822 (ix86_expand_binary_operator): Ensure that
5823 src1 is not non-matching memory.
5824
5825 * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
5826 to support integer registers and memory.
5827 (abss?2_integer): Likewise.
5828
5829 * i386.h (enum reg_class): Add FLOAT_INT_REGS.
5830 (REG_CLASS_NAMES): Likewise.
5831 (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
5832 and GENERAL_REGS.
5833 * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
5834 (movsf): Likewise; unify 4th and 5th alternative.
5835 (pushdf): Likewise.
5836 (movdf_1): Likewise; rename to movdf_integer.
5837 (pushxf): Likewise; rename to pushxf_integer; fix output template;
5838 remove redundant splitter.
5839 (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
5840 (movdf_nointeger): New.
5841 (movxf_nointeger): New.
5842 (pushxf_nointeger): New.
5843
5844 * i386.md (extend?f?f): Split to expander and pattern, refuse two
5845 memory operands in patterns.
5846 (fop*): Refuse two memory operands.
5847
5848 * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
5849 on !TARGET_USE_CLTD CPUs.
5850
5851 Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell <nathan@acm.org>
5852
5853 * extend.texi: Document C++ restricted pointers and references.
5854
5855 1999-11-19 Bernd Schmidt <bernds@cygnus.co.uk>
5856
5857 * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
5858 (invalidate_skipped_set): Call it unconditionally.
5859 (cse_set_around_loop): Likewise.
5860
5861 Thu Nov 18 17:29:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
5862
5863 * rtl.texi (mem): Add documentation for alias-set argument
5864 to RTX `mem'.
5865
5866 Fri Nov 18 13:39:22 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
5867
5868 * i386.h (struct_processor_costs): New fields int_load, int_store,
5869 fp_move, fp_load and fp_store
5870 (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
5871 fp->int moves
5872 (MEMORY_MOVE_COST): New macro.
5873 * i386.c (386_cost): Define new fields.
5874 (i486_cost): Likewise.
5875 (pentium_cost): Likewise.
5876 (pentiumpro_cost): Likewise.
5877 (k6_cost): Likewise.
5878
5879 Fri Nov 19 11:11:55 1999 Greg McGary <gkm@gnu.org>
5880 Geoffrey Keating <geoffk@cygnus.com>
5881
5882 * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
5883
5884 * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
5885 MASK_ALIGN_INT.
5886
5887 * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
5888 (TARGET_STRICT_ALIGNMENT): New macro.
5889 (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
5890 (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
5891 * invoke.texi (M680x0 Options): Document -mstrict-align.
5892
5893 Thu Nov 18 11:10:03 1999 Jan Hubicka <hubicka@freesoft.cz>
5894 Richard Henderson <rth@cygnus.com>
5895
5896 * i386-protos.h (split_xf, ix86_split_movdi): Remove.
5897 (ix86_split_long_move): Declare.
5898 * i386.c (split_xf, ix86_split_movdi): Remove.
5899 (ix86_split_to_parts, ix86_split_long_move): New.
5900 * i386.md (dimode move splitters): Use ix86_split_long_move.
5901 (dfmode move splitters): Likewise.
5902 (xfmode move splitters): Likewise.
5903 (movsf_1): Allow F->r.
5904 (movdf_1, movxf_1): Allow F->ro.
5905
5906 1999-11-17 Mark Mitchell <mark@codesourcery.com>
5907
5908 * except.h (struct eh_entry): Add goto_entry_p.
5909 (eh_region_from_symbol): Remove prototype.
5910 * except.c (find_func_region_from_symbol): New function.
5911 (emit_cleanup_handler): Likewise.
5912 (eh_region_from_symbol): Make it static.
5913 (add_new_handler): Verify the argument.
5914 (find_func_region): Update comment.
5915 (expand_eh_region_end): Expand handlers here, rater than waiting
5916 until expand_leftover_cleanups or start_all_catch.
5917 (expand_leftover_cleanups): Don't expand here.
5918 (expand_start_all_catch): Or here.
5919 (expand_rethrow): Check the return value from find_func_region.
5920 * function.c (expand_function_end): Emit the catch_clauses.
5921
5922 1999-11-18 Gavin Romig-Koch <gavin@cygnus.com>
5923
5924 * integrate.c (expand_inline_function): Add necessary check for NULL.
5925
5926 1999-11-18 Nick Clifton <nickc@cygnus.com>
5927
5928 * toplev.c (main): Correctly detect an unrecognised option.
5929
5930 * cppinit.c (cpp_handle_option): Do not claim to have consumed
5931 a -f option if it has not been recognised.
5932
5933 Thu Nov 18 00:59:11 1999 Michael Gschwind <mikeg@alagoas.watson.ibm.com>
5934
5935 * basic-block.h (update_life_extent): Remove trailing comma on
5936 enumeration type list.
5937
5938 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5939
5940 * varasm.c (output_constructor) Solved problem with long long
5941 bitfields. Corrected calculating this_time and shift. Also
5942 corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
5943
5944 Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com)
5945
5946 * flow.c (split_edge): Take looping structure into account when
5947 determining where to put the new block note.
5948
5949 Wed Nov 17 20:42:43 1999 Jeff Holcomb <jeffh@cygnus.com>
5950
5951 * Makefile.in (ggc-none.o): Provide host specific version if
5952 needed.
5953
5954 Wed Nov 17 16:51:23 1999 Richard Henderson <rth@cygnus.com>
5955
5956 * cse.c (delete_trivially_dead_insns): Identify no-op insns
5957 containing subregs too.
5958
5959 Wed Nov 17 17:39:48 MST 1999 Diego Novillo <dnovillo@cygnus.com>
5960
5961 * invoke.texi: Add documentation for -muninit-const-in-rodata.
5962 * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
5963 (TARGET_UNINIT_CONST_IN_RODATA): Define.
5964 (text_section): Add switches -munint-const-in-rodata and
5965 -mno-uninit-const-in-rodata.
5966 (ASM_OUTPUT_COMMON): Remove.
5967 (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
5968 const objects should be placed in read-only data. Otherwise declare
5969 them in common.
5970
5971 Wed Nov 17 16:38:32 1999 Richard Henderson <rth@cygnus.com>
5972
5973 * jump.c (jump_optimize_1): Revert last change.
5974
5975 Wed Nov 17 15:18:30 1999 Richard Henderson <rth@cygnus.com>
5976
5977 * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
5978 test if optimizing for size.
5979
5980 1999-11-17 Mark Mitchell <mark@codesourcery.com>
5981
5982 * Makefile.in (toplev.o): Depend on except.h.
5983 (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
5984
5985 Mon Nov 15 22:45:39 CET 1999 Jan Hubicka <hubicka@freesoft.cz>
5986
5987 * i386.md (divmodsi4): Rewrite to expander.
5988 (*divmodsi4_nocltd): New.
5989 (*divmodsi4_cltd): New.
5990 (divmodsi4 splitter): Handle the case when input comes in edx.
5991 (udivmodhi4): Do not use constraints in exander.
5992 (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
5993
5994 1999-11-17 Jason Merrill <jason@yorick.cygnus.com>
5995
5996 * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
5997 for the common case.
5998
5999 1999-11-16 Jakub Jelinek <jakub@redhat.com>
6000
6001 * explow.c (hard_function_value): Add outgoing argument.
6002 * expr.h (hard_function_value): Declare it.
6003 * calls.c (expand_call, emit_library_call_value): Update callers.
6004 * function.c (aggregate_value_p): Ditto.
6005 (diddle_return_value): Must look at the outgoing registers
6006 on archs with register windows.
6007
6008 Mon Nov 15 20:46:45 1999 Richard Henderson <rth@cygnus.com>
6009
6010 * alpha.c (alpha_build_va_list): Use make_lang_type and
6011 initialize TYPE_NAME for the va_list record.
6012
6013 * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
6014
6015 * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
6016 for printing.
6017 * ggc.h (struct ggc_statistics): Rearrange elements for better
6018 packing on 64-bit hosts.
6019 * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
6020 (compute_nearerout): Likewise.
6021
6022 Tue Nov 16 14:37:52 1999 Geoffrey Keating <geoffk@cygnus.com>
6023
6024 * config/rs6000/rs6000.c (first_reg_to_save): Save
6025 PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
6026
6027 1999-11-15 Jason Merrill <jason@casey.cygnus.com>
6028
6029 * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
6030 notion of nesting to find the DIE for a type or function.
6031 DIEs can go in limbo even if we got a context_die.
6032 (push_decl_scope): Our context doesn't need to be in decl_scope_table.
6033 (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
6034 for local type.
6035 (gen_decl_die): Ignore NAMESPACE_DECLs for now.
6036 (gen_type_die): Writing out the context doesn't cause member class
6037 template instantiations to be written out as well.
6038
6039 Mon Nov 15 15:33:18 1999 Richard Henderson <rth@cygnus.com>
6040
6041 * rs6000.h (ASM_OUTPUT_DEF): New.
6042 Based on proposed addition from David Edelsohn.
6043
6044 1999-11-15 Robert Lipe <RobertLipe@usa.net>
6045 Bruce Korb <autogen@linuxbox.com>
6046
6047 * fixinc/inclhack.def
6048 (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features
6049 (unixware7_byteorder_fix): added. Removes conflicts for new defs
6050 in net/inet.h.
6051 (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax
6052 (svr4_endian): enabled with SVR5
6053 (svr4_mkdev): simplified syntax and enabled with SVR5
6054
6055 Sun Nov 14 18:49:37 1999 David O'Brien <obrien@FreeBSD.org>
6056
6057 * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
6058 * configure: Rebuilt.
6059 * config/t-freebsd-thread: New file.
6060
6061 Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com)
6062
6063 * i386.c (ix86_decompose_address): Verify the base is a REG
6064 before trying to examine its register number.
6065
6066 * basic-block.h: Remove all #defines and prototypes related to
6067 integer lists.
6068 (free_bb_mem, compute_preds_succs): Remove prototype.
6069 * rtl.h (free_bb_mem): Remove prototype.
6070 * flow.c (alloc_int_list_node); Remove function.
6071 (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
6072 (compute_preds_succs, free_bb_mem): Likewise.
6073 * gcse.c (gcse_main): Do not call free_bb_mem anymore.
6074 * toplev.c (rest_of_compilation): Likewise.
6075 * haifa-sched.c (build_control_flow): Use flow generated edge
6076 list to build the haifa specific edge list.
6077 (find_rgns): Use new CFG data structures instead of pred/succ lists.
6078 (schedule_insns): Do not build pred/succ lists anymore. Instead
6079 build the edge table.
6080
6081 * basic-block.h (dump_bb_data): Remove declaration.
6082 * flow.c (dump_bb_data): Remove function.
6083 * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
6084 (sbitmap_union_of_predsucc): Likewise.
6085
6086 * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
6087 argument. All callers changed.
6088 (delete_null_pointer_checks_1): No longer need to compute the
6089 pred/succ lists.
6090
6091 * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
6092 All callers changed.
6093 (pre_expr_reaches_here_p_work): Likewise.
6094 (pre_edge_insert): No longer call pre_expr_reaches_here_p.
6095 * lcm.c (compute_laterin): Fix initialization of LATER.
6096 (compute_nearerout): Similarly for NEARER.
6097
6098 Sun Nov 14 12:41:57 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6099
6100 * cse.c (set_nonvarying_address_components): Delete unused function.
6101 (refers_to_p): Likewise.
6102
6103 Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com)
6104
6105 * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
6106 needed.
6107
6108 Sat Nov 13 16:20:09 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6109
6110 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
6111 definition in do while (0).
6112
6113 Fri Nov 12 16:26:25 1999 Jim Wilson <wilson@cygnus.com>
6114
6115 * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
6116
6117 Fri Nov 12 12:43:49 1999 Richard Henderson <rth@cygnus.com>
6118
6119 * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
6120
6121 Fri Nov 12 15:14:19 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
6122
6123 * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
6124 (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
6125 (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
6126 (INITIAL_FRAME_POINTER_OFFSET): Remove it.
6127
6128 * i960.c (i960_function_prologue): Don't allocate space for g8-g11
6129 saved on the stack. Output more accurate stack frame statistics
6130 into assembler file.
6131
6132 1999-11-12 11:47 -0800 Zack Weinberg <zack@bitmover.com>
6133
6134 * genextract.c (record_insn_name): New function.
6135 (get_insn_name): No longer a stub.
6136 (main): Call record_insn_name for each insn. After each label
6137 written, print the insn name in a comment.
6138
6139 Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6140
6141 * output.h (const_section, init_section, fini_section): Add
6142 prototypes.
6143
6144 * alpha/elf.h (const_section): Delete declaration.
6145
6146 * svr4.h (const_section): Likewise.
6147
6148 Fri Nov 12 08:54:22 1999 Mark Mitchell <mark@codesourcery.com>
6149
6150 * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
6151 * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
6152 (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
6153 expressions.
6154 * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
6155 variable-sized array bounds.
6156
6157 Fri Nov 12 08:04:45 1999 Catherine Moore <clm@cygnus.com>
6158
6159 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use
6160 ASM_OUTPUT_LABEL.
6161
6162 Fri Nov 12 13:31:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6163
6164 * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
6165 addresses the same way GO_IF_LEGITIMATE_INDEX does.
6166
6167 Fri Nov 12 12:36:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6168
6169 * cse.c (hash_arg_in_struct): Delete.
6170 (struct table_elt): Delete elt in_struct.
6171 (struct set): Delete elt src_in_struct.
6172 (merge_equiv_classes): Don't set either hash_arg_in_struct or
6173 the corresponding in_struct elts.
6174 (canon_hash): Likewise.
6175 (safe_hash): Likewise.
6176 (find_best_addr): Likewise.
6177 (record_jump_cond): Likewise.
6178 (cse_insn): Likewise.
6179
6180 Thu Nov 11 19:45:24 1999 Jim Wilson <wilson@cygnus.com>
6181
6182 * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
6183
6184 * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
6185 unsigned types.
6186
6187 Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com)
6188
6189 * function.c (diddle_return_value): Put back check that the DECL_RTL
6190 for the function is a register.
6191
6192 * function.c (diddle_return_value): Use hard_function_value to
6193 get an rtx suitable for use in the USE/CLOBBER insn.
6194
6195 * global.c (global_conflicts): Update comments.
6196 (record_conflicts): No need to record conflicts between pseudos here.
6197
6198 1999-11-11 Bruce Korb <autogen@linuxbox.com>
6199
6200 * fixinc/fixincl.c: Added verbose levels for status messages
6201
6202 Thu Nov 11 13:23:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6203
6204 * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
6205 operand as argument to expand_and or expand_binop.
6206
6207 Thu Nov 11 02:21:16 1999 Rodney Brown <RodneyBrown@pmsc.com>
6208
6209 * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
6210 gcc_add_string_root.
6211
6212 Wed Nov 10 21:24:19 1999 Jason Eckhardt <jle@cygnus.com>
6213
6214 * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
6215
6216 Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com)
6217
6218 * flow.c (compute_flow_dominators): Initially put all blocks on
6219 the worklist.
6220 * lcm.c (compute_antinout_edge, compute_available): Similarly.
6221 * gcse.c (compute_cprop_avinout): Remove.
6222 (compute_cprop_data): Use compute_available.
6223 (delete_null_pointer_checks_1): Use compute_available.
6224
6225 * basic-block.h (compute_available): Returns a void now.
6226 * gcse.c (one_classic_gcse_pass): Do not expect compute_available
6227 to return a value anymore.
6228 * lcm.c (compute_available, compute_antinout_edge): Revamp to use
6229 worklists. Fix boundary cases. Compute maximal solutions.
6230 (compute_laterin, compute_nearerout): Similarly.
6231
6232 * dwarf2out.c (add_AT_location_description): Allow
6233 (mem (plus (pseudo) (...)) too.
6234
6235 Wed Nov 10 10:52:42 1999 Tom Tromey <tromey@cygnus.com>
6236
6237 * gcc.c (do_spec_1): Support text between `%u' and `%O'.
6238
6239 Wed Nov 10 12:43:21 1999 Philippe De Muyter <phdm@macqel.be>
6240 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6241
6242 * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
6243
6244 * gansidecl.h: Likewise.
6245
6246 * rtl.c: Likewise.
6247
6248 * rtl.h: Likewise.
6249
6250 * toplev.h: Likewise.
6251
6252 * tree.c: Likewise.
6253
6254 * tree.h: Likewise.
6255
6256 * varray.c: Likewise.
6257
6258 * varray.h: Likewise.
6259
6260 Wed Nov 10 10:57:22 1999 Clinton Popetz <cpopetz@cygnus.com>
6261
6262 * gcov.c (struct arcdata): Add hits and total, remove prob.
6263 (output_branch_counts): New.
6264 (process_args): Set output_branch_counts if -c.
6265 (calculate_branch_probs): Store hits and total instead of
6266 percentage.
6267 (output_data): Emit counts if output_branch_counts is true.
6268 * gcov.texi (Invoking Gcov): Document -c switch..
6269
6270 Wed Nov 10 01:10:41 1999 Philippe De Muyter <phdm@macqel.be>
6271
6272 * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
6273 `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
6274
6275 Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson <hp@axis.se>
6276
6277 * invoke.texi (C Dialect Options): Add missing builtins from
6278 c-common.c to list.
6279 * extend.texi (Other Builtins): Copy to this list.
6280
6281 Wed Nov 10 04:58:09 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6282
6283 * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
6284 (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove
6285 redundant bitmap.h.
6286
6287 Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com)
6288
6289 * flow.c (compute_flow_dominators): No longer treat basic block 0
6290 or (n_basic_blocks - 1) specially. Clear the AUX field before
6291 starting computation of doms/pdoms. Fix initial state for pdoms.
6292
6293 Wed Nov 10 03:58:08 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6294
6295 * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
6296 match rtl.o's: added ggc.h and toplev.h
6297 ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
6298 ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
6299 ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
6300
6301 Tue Nov 9 10:30:08 1999 Tom Tromey <tromey@cygnus.com>
6302
6303 * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
6304 from HAVE_DOS_BASED_FILESYSTEM.
6305 * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
6306 HAVE_DOS_BASED_FILESYSTEM.
6307 (main): Likewise.
6308 (split_directories): Only special-case DOS file names if
6309 HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR
6310 instead of explicit tests. Conditionalize on !VMS.
6311 (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
6312 tests. Conditionalize on !VMS.
6313 (process_command): Only use make_relative_prefix if !VMS.
6314 (free_split_directories): Conditionalize on !VMS.
6315 (DIR_UP): Conditionalize on !VMS.
6316
6317 Wed Jun 9 16:57:11 1999 Mumit Khan <khan@xraylith.wisc.edu>
6318
6319 * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
6320
6321 Fri Feb 5 14:22:01 1999 Mumit Khan <khan@xraylith.wisc.edu>
6322
6323 * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
6324 case.
6325
6326 Mon Nov 8 14:16:57 1999 Michael Meissner <meissner@cygnus.com>
6327
6328 * invoke.texi (Environment Variables): Document relative path
6329 lookup.
6330 * gcc.c (DIR_UP): If not defined, define as "..".
6331 (standard_bindir_prefix): New static, holds target location to
6332 install binaries.
6333 (split_directories): New function to split a filename into
6334 component directories.
6335 (free_split_directories): New function, release memory allocated
6336 by split_directories.
6337 (make_relative_prefix): New function, make a relative pathname if
6338 the compiler is not in the expected location.
6339 (process_command): If GCC_EXEC_PREFIX was not specified, see if we
6340 can figure out an appropriate prefix from argv[0].
6341 * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
6342 STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define
6343 STANDARD_BINDIR_PREFIX.
6344
6345 Wed Nov 10 11:47:54 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
6346
6347 * config/c4x/c4x-protos.h: New file. Prototypes for functions defined
6348 in c4x.c.
6349 * config/c4x/c4x.h: Moved prototypes to c4x.h.
6350 * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
6351 c4x_secondary_memory_needed) Delete.
6352 (fp_zero_operand): Add mode argument.
6353
6354 Thu Nov 4 15:52:35 1999 Andrew Haley <aph@cygnus.com>
6355
6356 * reload1.c (reload_reg_free_for_value_p): Don't use a register
6357 that is in reload_reg_used.
6358
6359 Tue Nov 9 16:43:00 1999 Nick Clifton <nickc@cygnus.com>
6360
6361 * config/arm/arm-protos.h: New file: Prototypes for functions
6362 defined in arm.c and pe.c.
6363 * config/arm/arm.h: Fix compile time warnings.
6364 * config/arm/arm.c: Fix compile time warnings.
6365 * config/arm/pe.h: Fix compile time warnings.
6366 * config/arm/aout.h: Fix compile time warnings.
6367
6368 Tue Nov 9 14:55:44 1999 Nick Clifton <nickc@cygnus.com>
6369
6370 * config/m32r/m32r-protos.h: New file: Prototypes for functions
6371 defined in m32r.c
6372
6373 * config/m32r/m32r.h: Move prototypes to m32r-protos.h
6374 Add support for subtargets.
6375 Add prototypes for new predicates.
6376 Add scheduling macros.
6377
6378 * config/m32r/m32r.c: Fix compile time warnings.
6379 (int8_operand): New predicate function.
6380 (reg_or_cmp_int16_operand): New predicate function.
6381 (extend_operand): New predicate function.
6382 (m32r_adjust_code): New scheduling function.
6383 (m32r_adjust_priorty): New scheduling function.
6384 (m32r_sched_init): New scheduling function.
6385 (m32r_sched_reorder): New scheduling function.
6386 (m32r_sched_variable_issue): New scheduling function.
6387 (direct_return): New codegen function.
6388 (m32r_not_same_reg): New rtl testsing function.
6389
6390 * config/m32r/m32r.md: Fix compile time warnings.
6391 Add support for pre decrement and post increment memory
6392 references.
6393 Add S<cc> patterns.
6394 Add fabs patterns.
6395
6396 Mon Nov 8 22:20:13 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6397
6398 * global.c (EXECUTE_IF_CONFLICT): Don't define.
6399 (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
6400 (find_reg): Likewise.
6401
6402 Mon Nov 8 13:16:46 1999 Jason Eckhardt <jle@cygnus.com>
6403
6404 * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
6405 to avoid assembler errors.
6406
6407 Mon Nov 8 15:38:41 1999 Nick Clifton <nickc@cygnus.com>
6408
6409 * config/v850/v850-protos.h: New file: Prototypes for functions
6410 defined in v850.c
6411 * config/v850/v850.h: Move prototypes to v850-protos.h
6412 * config/v850/v850.c: Move prototypes to v850-protos.h
6413 * config/v850/v850.md: Fix compile time warnings.
6414
6415 * config/fr30/fr30-protos.h: New file: Prototypes for functions
6416 defined in fr30.c
6417 * config/fr30/fr30.h: Move prototypes to fr30-protos.h
6418 * config/fr30/fr30.c: Fix compile time warnings.
6419 * config/fr30/fr30.md: Fix compile time warnings.
6420
6421 Mon Nov 8 07:25:37 1999 Mark Mitchell <mark@codesourcery.com>
6422
6423 * tree.h (get_containing_scope): Declare it.
6424 * tree.c (get_containing_scope): New fucntion.
6425 (decl_function_context): Use it.
6426 * toplev.c (rest_of_compilation): Use get_containing_scope.
6427
6428 aMon Nov 8 03:03:07 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6429
6430 * Makefile.in (rtl.o): Depend on toplev.h.
6431
6432 Sun Nov 7 20:55:14 1999 Mark Mitchell <mark@codesourcery.com>
6433
6434 * cse.c (delete_trivially_dead_insns): Replace alloca with
6435 xmalloc/xcalloc.
6436 * except.c (update_rethrow_references): Likewise.
6437 (init_eh_nesting_info): Likewise.
6438 * function.c (identify_blocks): Likewise.
6439 * gcse.c (dump_hash_table): Likewise.
6440 * graph.c (print_rtl_graph_with_bb): Likewise.
6441 * loop.c (combine_movables): Likewise.
6442 (move_movables): Likewise.
6443 (count_loop_regs_set): Likewise.
6444 (strength_reduce): Likewise.
6445 * profile.c (compute_branch_probabilities): New function, split
6446 out from ...
6447 (branch_prob): Here. Replace alloca with xmalloc/xcalloc.
6448 * regclass.c (regclass): Likewise.
6449 * regmove.c (regmove_optimize): Likewise.
6450 * toplev.c (compile_file): Likewise.
6451 (main): Don't mess with the stack rlimit.
6452
6453 Sun Nov 7 19:41:17 1999 Catherine Moore <clm@cygnus.com>
6454
6455 * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
6456 (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
6457
6458 Sun Nov 7 10:23:28 1999 Mark P. Mitchell <mark@codesourcery.com>
6459
6460 * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
6461
6462 Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com)
6463
6464 * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
6465 (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
6466 macro expansion.
6467
6468 Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net)
6469
6470 * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
6471
6472 Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com)
6473
6474 * gcse.c (post_dominators): Kill.
6475 (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
6476 (compute_code_hoist_data): Use compute_flow_dominators. Do not
6477 pass in a pdom array since we do not need pdoms.
6478 * haifa-sched.c (schedule_insns): Similarly.
6479 * flow.c (compute_dominators): Remove dead function.
6480 (compute_flow_dominators): Do not compute doms or pdoms if the
6481 caller does not request them. Split up loop to build doms and
6482 pdoms. Use a worklist to compute doms and pdoms.
6483 * basic-block.h (compute_dominators): Remove prototype.
6484
6485 Sat Nov 6 11:38:39 1999 Richard Henderson <rth@cygnus.com>
6486
6487 * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
6488 (insn_luid, insn_priority, insn_costs, insn_units): Remove.
6489 (insn_reg_weight, insn_depend, insn_dep_count): Remove.
6490 (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
6491 (cant_move, fed_by_spec_load, is_load_insn): Remove.
6492 (schedule_region): Remove unused variable.
6493 (schedule_insns): Allocate h_i_d, and not all the separate arrays.
6494
6495 Sat Nov 6 10:00:34 1999 Mark Mitchell <mark@codesourcery.com>
6496
6497 * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
6498 (update_equiv_regs): Likewise.
6499 (block_alloc): Likewise.
6500 * reg-stack.c (reg_to_stack): Likewise.
6501 (convert_regs_2): Likewise.
6502 * reload1.c (reload_as_needed): Likewise.
6503
6504 Sat Nov 6 09:57:59 1999 Mark Mitchell <mark@codesourcery.com>
6505
6506 * Makefile.in (dbxout.o): Depend on ggc.h.
6507 (dwarf2out.o): Likewise.
6508 (xcoffout.o): Likewise.
6509 * dbxout.c: Include ggc.h.
6510 (dbxout_init): Register lastfile as a root.
6511 * dwarf2out.c: Include ggc.h.
6512 (dwarf2out_line): Register lastfile as a root.
6513 * xcoffout.c: Include ggc.h.
6514 (xcoffout_source_line): Register xcoff_lastfile as a root.
6515
6516 Sat Nov 6 09:52:09 1999 Richard Henderson <rth@cygnus.com>
6517
6518 * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
6519
6520 Sat Nov 6 07:48:59 1999 Catherine Moore <clm@cygnus.com>
6521
6522 * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
6523 defined.
6524 (ASM_DECLARE_FUNCTION_SIZE): Likewise.
6525
6526 Fri Nov 5 18:33:39 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6527
6528 * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
6529 (EXECUTE_IF_CONFLICT): Likewise.
6530 (ALLOCNO_LIVE_P): Avoid signed division.
6531 (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
6532 (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
6533 (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
6534
6535 Fri Nov 5 12:04:02 1999 Richard Henderson <rth@cygnus.com>
6536
6537 * haifa-sched.c (schedule_block): Don't crash if there's no
6538 next insn for an interblock movement.
6539 (add_branch_dependences): Don't allow clobber insns to move either.
6540
6541 Fri Nov 5 10:18:11 1999 Richard Henderson <rth@cygnus.com>
6542
6543 * i386.c (split_xf): New.
6544 * i386-protos.h: Declare it.
6545 * i386.md (movxf_1): Add general regs alternatives.
6546 (movxf_1+1): New splitter for same.
6547
6548 Fri Nov 5 12:05:52 1999 Nick Clifton <nickc@cygnus.com>
6549
6550 * function.c (purge_addressof_1): Add missing return values.
6551
6552 Fri Nov 5 10:07:25 1999 Nick Clifton <nickc@cygnus.com>
6553
6554 * function.c (is_addressof): New function. Returns true if
6555 the given piece of RTL is an ADDRESSOF.
6556 (purge_addressof_1): Make boolean. Return false if the
6557 ADDRESSOFs could not be purged.
6558 (purge_addressof): If ADDRESSOFs could not be purged from the
6559 notes attached to an insn, remove the offending note(s),
6560 unless they are attached to a libcall.
6561
6562 1999-11-05 Andreas Jaeger <aj@suse.de>
6563
6564 * genoutput.c (null_operand =): Initialize all fields.
6565
6566 * errors.h: Add extern to prototypes.
6567
6568 Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com)
6569
6570 * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
6571 * configure: Rebuilt.
6572
6573 Fri Nov 5 01:24:37 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
6574
6575 * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
6576 (mirror_conflicts): New function.
6577 (global_alloc): Call it.
6578 (expand_preferences): Remove redundant CONFLICTP test.
6579 (find_reg, dump_conflicts): Likewise.
6580 (prune_preferences): Process conflicts one word at a time.
6581
6582 Fri Nov 5 01:05:21 1999 Richard Henderson <rth@cygnus.com>
6583
6584 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
6585 instead of an explicit loop.
6586
6587 Thu Nov 4 23:07:14 1999 Jim Wilson <wilson@cygnus.com>
6588
6589 * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt,
6590 if REG_RETVAL check succeeds, then put classp in src_elt.
6591
6592 Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com)
6593
6594 * function.c (pad_to_arg_alignment): Only update argument_pad
6595 if the argument's alignment is greater than STACK_BOUNDARY.
6596
6597 Thu Nov 4 16:44:53 1999 Richard Henderson <rth@cygnus.com>
6598
6599 * bitmap.h (BITMAP_XFREE): New.
6600 * flow.c (life_analysis): Use it.
6601 (life_analysis_1): Free blocks.
6602
6603 * combine.c (undo_commit): New.
6604 (try_combine): Use it. Don't zap undobuf.undos.
6605 (combine_instructions): Don't zap undobuf.undos; free the
6606 undobuf.frees list.
6607
6608 * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
6609
6610 * stmt.c (cost_table_): New.
6611 (estimate_case_costs): Use it instead of xmalloc.
6612
6613 * toplev.c (compile_file): Reuse dumpname memory instead
6614 of strdup'ing it.
6615
6616 Thu Nov 4 16:36:44 1999 Richard Henderson <rth@cygnus.com>
6617
6618 * reg-stack.c (convert_regs_1): Initialize target_stack->top
6619 after verifying an EH edge.
6620
6621 * haifa-sched.c (init_rgn_data_dependences): Correctly
6622 size bb_pending_lists_length when zeroing.
6623
6624 Thu Nov 4 16:36:36 1999 Richard Henderson <rth@cygnus.com>
6625
6626 * function.c (diddle_return_value): New.
6627 (expand_function_end): Use it.
6628 * stmt.c (expand_null_return): Likewise.
6629 (expand_value_return): Likewise.
6630
6631 * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
6632
6633 * reload1.c (reload): Don't remove return value clobbers.
6634
6635 Thu Nov 4 13:33:46 1999 Richard Henderson <rth@cygnus.com>
6636
6637 * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
6638
6639 Thu Nov 4 12:49:52 1999 Richard Henderson <rth@cygnus.com>
6640
6641 * cse.c (cse_main): Use xmalloc, not alloca.
6642 (cse_basic_block): Likewise.
6643 * local-alloc.c (local_alloc): Likewise.
6644
6645 Thu Nov 4 14:22:12 1999 David Billinghurst <David.Billinghurst@riotinto.com.au>
6646 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6647
6648 * rtl.c: Include toplev.h.
6649 (fatal): Remove declaration.
6650
6651 Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com)
6652
6653 * haifa-sched.c (schedule_block): Fix thinko.
6654
6655 1999-11-03 James McKelvey <mckelvey@fafnir.com>
6656
6657 * fixinc/fixincl.c(create_file): Allow for systems that do not have
6658 S_IR* defined values
6659
6660 1999-11-03 Philippe De Muyter <phdm@macqel.be>
6661
6662 * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
6663 call `malloc' instead.
6664
6665 Wed Nov 3 23:05:14 1999 Mark Mitchell <mark@codesourcery.com>
6666
6667 * flags.h (flag_renumber_insns): Declare.
6668 * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print
6669 renumbering table.
6670 * rtl.h (renumber_insns): Change prototype.
6671 * toplev.c (flag_renumber_insns): Define.
6672 (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
6673
6674 Wed Nov 3 15:11:27 1999 David S. Miller <davem@redhat.com>
6675
6676 * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
6677 and fpsqrtd. Use them and create fdiv function unit to more
6678 accurately represent fpu sqrt pipeline semantics on UltraSparc.
6679 * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
6680
6681 Wed Nov 3 15:11:27 1999 Matteo Frigo <athena@fftw.org>
6682
6683 * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
6684 3 on UltraSparc.
6685 * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
6686 insn into ready list, do not use just a raw swap.
6687
6688 Wed Nov 3 14:51:59 1999 Mark P. Mitchell <mark@codesourcery.com>
6689
6690 * rtl.h (renumber_insns): New function.
6691 (remove_unnecessary_notes): Likewise.
6692 * emit-rtl.c (renumber_insns): Define.
6693 (remove_unncessary_notes): Likewise.
6694 * toplev.c (rest_of_compilation): Remove dead code.
6695 Use renumber_insns and remove_unncessary_notes.
6696
6697 * gcse.c (struct null_pointer_info): New type.
6698 (get_bitmap_width): New function.
6699 (current_block): Remove.
6700 (nonnull_local): Likewise.
6701 (nonnull_killed): Likewise.
6702 (invalidate_nonnull_info): Take a null_pointer_info as input.
6703 (delete_null_pointer_checks_1): New function.
6704 (delete_null_pointer_checks): Use it.
6705
6706 * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
6707 (split_edges): Likewise.
6708 (schedule_block): Likewise.
6709 (compute_block_backward_dependencies): Likewise.
6710 (schedule_region): Likewise.
6711 (schedule_insns): Likewise.
6712
6713 Wed Nov 3 15:40:23 1999 Catherine Moore <clm@cygnus.com>
6714
6715 * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
6716 * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
6717 * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
6718 * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
6719 * jump.c (delete_unreferenced_labels): Don't delete if
6720 LABEL_ALTERNATE_NAME is set.
6721 * print-rtl.c (print_rtx): Dump alternate name.
6722 * rtl.def (CODE_LABEL): Change format to "iuuis00s".
6723 * rtl.h (LABEL_ALTERNATE_NAME): Define.
6724 * rtl.texi (LABEL_ALTERNATE_NAME): Document.
6725 * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
6726
6727 Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6728
6729 * fix-header.c (recognized_extern, recognized_function): Constify
6730 a char*.
6731
6732 * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
6733 (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
6734 (compute_available): Remove unused variable `last'.
6735 (compute_nearerout): Remove unused variable `temp_bitmap'.
6736 (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
6737 Remove unused variable `x'.
6738
6739 * scan.h (recognized_function, recognized_extern): Constify a
6740 char*.
6741
6742 * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
6743
6744 Wed Nov 3 10:40:53 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6745
6746 * varasm.c (decode_rtx_const): Use XSTR to access the string
6747 of a SYMBOL_REF.
6748
6749 Wed Nov 3 10:10:58 1999 Richard Henderson <rth@cygnus.com>
6750
6751 * c-decl.c (duplicate_decls): Copy DECL_MODE too.
6752
6753 Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6754
6755 * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
6756
6757 Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
6758
6759 * pa.c (ireg_operand): New function.
6760 * pa.h (PREDICATE_CODES): Handle ireg_operand.
6761 * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
6762 Fix out of date comment.
6763
6764 * pa.md (negdi2): Turn into expander + anonymous pattern.
6765
6766 * reload.c (find_reloads): Fix typos in recent change.
6767
6768 * dwarf2out.c: Do not include ctype.h.
6769
6770 Tue Nov 2 21:53:44 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6771
6772 * regclass.c (record_reg_classes): Always use may_move_cost when
6773 seeing how operand fits with various register classes.
6774
6775 Tue Nov 2 15:38:17 1999 Richard Henderson <rth@cygnus.com>
6776
6777 * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
6778 * toplev.c: Revert Nov 1 13:22 change.
6779
6780 Tue Nov 2 14:21:37 1999 Jason Eckhardt <jle@cygnus.com>
6781
6782 * config/pa/pa.md (height reduction patterns): Add checks for
6783 overlapping operands to avoid semantic-destroying splits for
6784 height reduction patterns.
6785
6786 Tue Nov 2 15:27:31 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
6787
6788 * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
6789 have been an hyphen, fixed.
6790 * configure: Rebuilt.
6791
6792 Tue Nov 2 17:04:36 1999 Nick Clifton <nickc@cygnus.com>
6793
6794 * config/arm/tpe.h: Add prototypes for exported functions.
6795 * config/arm/pe.c: Fix compile time warnings.
6796 * config/arm/semi.h: Fix compile time warnings.
6797 * config/arm/arm.c: Fix compile time warnings.
6798 * config/arm/arm.h: Fix compile time warnings.
6799 * config/arm/arm.md: Fix compile time warnings.
6800 * config/arm/thumb.c: Fix compile time warnings.
6801 * config/arm/thumb.h: Fix compile time warnings.
6802 * config/arm/thumb.md: Fix compile time warnings.
6803
6804 Tue Nov 2 04:10:24 1999 Jan Hubicka <hubicka@freesoft.cz>
6805
6806 * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
6807 detection code
6808
6809 * unroll.c (unroll_loop): Remove LOOP notes when loop is
6810 completely unrolled.
6811
6812 Tue Nov 2 16:57:22 1999 Bernd Schmidt <bernds@cygnus.co.uk>
6813
6814 * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
6815
6816 Tue Nov 2 09:43:00 1999 Catherine Moore <clm@cygnus.com>
6817
6818 * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
6819 * rtl.h (rtx_equal_p): Move prototype.
6820 * rtl.c (rtx_equal_function_value_matters): Move from
6821 rtlanal.c
6822 (rtx_equal_p): Likewise.
6823 * rtlanal.c (rtx_equal_function_value_matters): Delete.
6824 (rtx_equal_p): Likewise.
6825
6826 Mon Nov 1 23:21:17 1999 Jason Merrill <jason@yorick.cygnus.com>
6827
6828 * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
6829 ! HAS_INIT_SECTION.
6830
6831 Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com)
6832
6833 * gcc.1 (PA options): Remove obsolete -mshared-libs options.
6834
6835 * pa.h (ADDR_VEC_ALIGN): Define.
6836
6837 * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
6838 notes when presented with "if (foo) break; end_of_loop" and
6839 the break sequence gets moved out of the loop.
6840
6841 * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
6842 Remove explicit zero initializations of entries within MAP.
6843
6844 Mon Nov 1 18:09:14 1999 Richard Henderson <rth@cygnus.com>
6845
6846 * reg-stack.c (convert_regs_1): Handle EH edges specially.
6847
6848 Mon Nov 1 15:41:01 1999 Mark P. Mitchell <mark@codesourcery.com>
6849
6850 * bitmap.h (BITMAP_XMALLOC): New macro.
6851 * flow.c (CLEAN_ALLOCA): Remove.
6852 (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
6853 (life_analysis): Likewise.
6854 (update_life_info): Don't use CLEAN_ALLOCA.
6855 (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
6856 (calculate_global_regs_live): Likewise.
6857 (print_rtl_with_bb): Likewise.
6858 (verify_flow_info): Likewise.
6859 * global.c (global_alloc): Likewise.
6860 (global_conflicts): Likewise.
6861 * integrate.c (save_for_inline_nocopy): Likewise.
6862 (expand_inline_function): Likewise.
6863 * jump.c (jump_optimize_1): Likewise.
6864 (duplicate_loop_exit_test): Likewise.
6865 (thread_jumps): Likewise.
6866 * loop.c (loop_optimize): Likewise.
6867 (combine_givs): Likewise.
6868 (recombine_givs): Likewise.
6869 * reorg.c (dbr_schedule): Likewise.
6870 * unroll.c (unroll_loop): Likewise.
6871
6872 * combine.c (combine_instructions): Use xmalloc instead of alloca.
6873
6874 Mon Nov 1 13:22:30 1999 Richard Henderson <rth@cygnus.com>
6875
6876 * toplev.c (rest_of_compilation): Don't optimize the CFG
6877 when rebuilding, just before dbr.
6878
6879 Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6880
6881 * output.h (assemble_end_function, assemble_destructor,
6882 assemble_constructor, assemble_gc_entry, assemble_global,
6883 assemble_label, output_constant_pool) Constify a char*.
6884
6885 * varasm.c (assemble_destructor, assemble_constructor,
6886 assemble_gc_entry, assemble_end_function, assemble_global,
6887 assemble_label, output_constant_pool): Likewise.
6888
6889 Mon Nov 1 14:22:51 1999 Nick Clifton <nickc@cygnus.com>
6890
6891 * config/arm/thumb.c (thumb_expand_prologue): Add comments
6892 explaining what is goin on in this function.
6893
6894 Mon Nov 1 08:03:15 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6895
6896 * regclass.c (record_reg_classes): In matching case, recompute
6897 costs since the direction of movement is different.
6898
6899 Sun Oct 31 21:59:34 MST 1999 Diego Novillo <dnovillo@cygnus.com>
6900
6901 * resource.c (mark_target_live_regs): For unconditional branches,
6902 the resources found at the branch target should be added to the
6903 resources found so far, not intersected.
6904
6905 Sun Oct 31 15:48:49 1999 Philippe De Muyter <phdm@macqel.be>
6906
6907 * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
6908 old cpp's.
6909 * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
6910 (sys/mman.h): Include this file only if #HAVE_MMAP.
6911 (run_compiles): Initialize `esac_fmt' with one old KR string, not
6912 with automatically concatenated ANSI strings.
6913
6914 Sun Oct 31 23:57:07 1999 Mark Mitchell <mark@codesourcery.com>
6915
6916 * ggc-page.c (struct page_entry): Remove save_num_free_objects.
6917 (DIV_ROUND_UP): Robustify.
6918 (ggc_recalculate_in_use_p): New function.
6919 (release_pages): Don't inline it.
6920 (ggc_alloc_obj): Don't refuse to allocate objects on pages for
6921 outer contexts.
6922 (ggc_pop_context): Use ggc_recalculate_in_use_p.
6923 (clear_marks): Always save in_use_p.
6924 (sweep_pages): Use ggc_recalculate_in_use_p.
6925 (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
6926 Release pages before counting statistics.
6927
6928 Sun Oct 31 23:42:37 1999 Mark Mitchell <mark@codesourcery.com>
6929
6930 * toplev.c (rest_of_compilation): Fix thinko in this change:
6931
6932 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
6933
6934 (rest_of_compilation): If inside an inlined external function,
6935 pretend we are just being declared.
6936
6937 Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com)
6938
6939 * flow.c (calculate_global_regs_live): Fix thinko.
6940
6941 * integrate.c (expand_inline_function): Fix bugs in previous
6942 change from Oct 28, 1999.
6943
6944 Sun Oct 31 20:27:45 1999 Mark Mitchell <mark@codesourcery.com>
6945
6946 * stmt.c (expand_value_return): Fix typo in this change:
6947
6948 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6949 (expand_value_return): Correctly convert VAL when promoting function
6950 return; support RETURN_REG being a PARALLEL.
6951
6952 Sun Oct 31 20:25:42 1999 Mark P. Mitchell <mark@codesourcery.com>
6953
6954 * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
6955
6956 Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6957
6958 * hard-reg-set.h (reg_names): Constify a char*.
6959
6960 * regclass.c (reg_names): Likewise.
6961
6962 * regs.h (reg_names): Likewise
6963
6964 * a29k/a29k.c (reg_names): Delete declaration.
6965
6966 * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
6967
6968 * arc/arc.c (arc_save_restore, arc_output_function_prologue,
6969 arc_output_function_epilogue): Likewise.
6970
6971 * elxsi/elxsi.c (reg_names): Likewise.
6972
6973 * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
6974
6975 * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
6976 Likewise.
6977
6978 * m88k/m88k.c (output_function_profiler): Likewise.
6979
6980 * sparc/sparc.c (sparc_flat_output_function_prologue,
6981 sparc_flat_output_function_epilogue): Likewise.
6982
6983 Sun Oct 31 13:32:15 CET 1999 Marc Lehmann <pcg@goof.com>
6984
6985 * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
6986 warning from -Wuninitialized and put it under -W.
6987 * function.c (uninitialized_vars_warning): Warn only when the
6988 corresponding flag is set.
6989
6990 Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com)
6991
6992 * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
6993 is nonzero and the single set does not have an elt, then assign
6994 it an elt.
6995
6996 * simplify-rtx.c: New file.
6997 * Makefile.in (OBJS): Add simplify-rtx.o
6998 (simplify-rtx.o): Add dependencies.
6999 * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
7000 * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
7001 (cse_gen_binary, simplify_unary_operation): Delete.
7002 (simplify_binary_operation, simplify_plus_minus): Likewise.
7003 (check_fold_consts, simplify_relation_operation): Likewise.
7004 (simplify_ternary_operation): Likewise.
7005 (delete_trivially_dead_insns): Simplify the contents of the
7006 REG_EQUAL note before trying to substitute it into the source
7007 of the reg-reg copy at the end of a libcall sequence.
7008
7009 * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All
7010 references/callers changed.
7011
7012 * mn10200.c (mn10200_va_arg): Force the return value into a
7013 register.
7014
7015 * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
7016
7017 * cccp.c (macroexpand): Avoid out of range accesses for omitted
7018 arguments.
7019
7020 Sat Oct 30 22:42:50 1999 Stephen L Moshier <moshier@mediaone.net>
7021
7022 * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
7023
7024 Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com)
7025
7026 * fold-const.c (fold): Fix thinko when optimizing comparisons
7027 against -0.0.
7028
7029 Sat Oct 30 21:32:17 1999 David Starner <dstarner98@aasaa.ofe.org>
7030
7031 * gcc.texi (Passes): Update front-end files to their current
7032 location.
7033
7034 Sat Oct 30 14:41:40 1999 Richard Henderson <rth@cygnus.com>
7035
7036 * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
7037 (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7038 (PREDICATE_CODES): Add addition_operation.
7039 * alpha-protos.h (addition_operation): Declare.
7040 (secondary_reload_class): Likewise.
7041 * alpha.c (addition_operation): New.
7042 (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
7043 * alpha.md (adddi3): Turn into expander.
7044 (*lda, *adddi_2): New.
7045 (movsf, movdf patterns): Don't preference integer regs.
7046 (movsi, movdi patterns): Don't preference fp regs.
7047
7048 Sat Oct 30 14:38:22 1999 Richard Henderson <rth@cygnus.com>
7049
7050 * genrecog.c (write_switch): Check for duplicate CODE cases.
7051
7052 Sat Oct 30 14:31:48 1999 Richard Henderson <rth@cygnus.com>
7053
7054 * ggc-common.c: Update pre-function commentary.
7055 * ggc-page.c: Likewise.
7056 (poison): Remove.
7057 (poison_pages): Use memset directly.
7058 (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages.
7059 (ggc_collect): Poison before sweeping.
7060 * ggc-simple.c: Update pre-function commentary.
7061 (ggc_alloc_obj): Poison non-zeroed memory.
7062
7063 Sat Oct 30 14:28:52 1999 Mark Mitchell <mark@codesourcery.com>
7064
7065 * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
7066 match format string, even on 64-bit hosts.
7067 * gcc-page.c (ggc_page_print_statistics): Likewise.
7068
7069 Sat Oct 30 14:38:04 1999 Catherine Moore <clm@cygnus.com>
7070
7071 * config/i386/i386.c (ix86_cpu): Revert last patch.
7072 * config/i386/i386.h (ix86_cpu): Ditto.
7073
7074 Fri Oct 29 17:00:42 1999 Jim Wilson <wilson@cygnus.com>
7075
7076 * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
7077 TYPE_SIZE, convert type of result to sizetype.
7078
7079 Fri Oct 29 14:34:17 1999 Richard Henderson <rth@cygnus.com>
7080
7081 * flow.c (count_or_remove_death_notes): Equate NULL with the
7082 universal set.
7083
7084 * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
7085 * toplev.c (rest_of_compilation): Rebuild CFG immediately before
7086 dbr_schedule.
7087
7088 * i386.c (pic_label_no): Delete.
7089 (ix86_attr_length_default): Don't use single_set to peek
7090 inside a parallel.
7091
7092 * recog.c (peephole2_optimize): Allow recog_next_insn to index
7093 the first insn after bb->end.
7094 * i386.md (push mem peeps): Scratch is live after evaluation
7095 of the memory.
7096 (cmp mem peep): Similarly.
7097
7098 Fri Oct 29 11:50:11 1999 Catherine Moore <clm@cygnus.com>
7099
7100 * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
7101 * function.c (pad_to_arg_alignment): Add missing braces.
7102
7103 Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7104
7105 * alpha/alpha-protos.h (literal_section): Add prototype.
7106 (alpha_need_linkage, alpha_start_function,alpha_end_function):
7107 Constify a char*.
7108
7109 * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
7110 prototype.
7111 (alpha_start_function, alpha_end_function, float_strings,
7112 alpha_need_linkage): Constify a char*
7113
7114 * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
7115
7116 * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
7117
7118 * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
7119
7120 * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
7121
7122 Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7123
7124 * flow.c (debug_flow_info): Add prototype.
7125
7126 * gcc.c (main): Likewise.
7127
7128 * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
7129 Likewise.
7130
7131 * reload1.c (failed_reload, set_reload_reg): Likewise.
7132
7133 * mips-tfile.c (main): Likewise.
7134 (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
7135 with ATTRIBUTE_NORETURN.
7136
7137 Fri Oct 29 18:16:03 1999 Andrew Haley <aph@cygnus.com>
7138
7139 * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
7140 DECL is not a memory ref.
7141
7142 Fri Oct 29 09:05:34 1999 Catherine Moore <clm@cygnus.com>
7143
7144 * config/i386/i386.h (ix86_cpu): Remove extern attribute.
7145 * config/i386/i386.c (ix86_cpu): Add extern attribute.
7146
7147 Fri Oct 29 16:30:04 1999 Andrew Haley <aph@cygnus.com>
7148
7149 * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
7150 * config/mips/elf64.h: ditto.
7151
7152 Fri Oct 29 08:03:57 1999 Catherine Moore <clm@cygnus.com>
7153
7154 * expr.c (emit_push_insn): New argument alignment_pad.
7155 Update all callers. Adjust stack pointer based on alignment pad.
7156 * function.c (pad_to_arg_alignment): New argument alignment_pad.
7157 Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY.
7158 (locate_and_pad_parm): New argument alignment_pad. Update all
7159 callers.
7160 * expr.h (emit_push_insn): Update prototype.
7161 (locate_and_pad_parm): Update prototype.
7162 * calls.c (arg_data): Add new field alignment_pad.
7163 (initialize_argument_information): Initialize alignment_pad.
7164
7165 Fri Oct 29 02:51:35 1999 Mark Mitchell <mark@codesourcery.com>
7166
7167 * except.c (free_eh_nesting_info): Free the info itself.
7168 * function.c (free_after_compilation): Don't free NULL.
7169 * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
7170 (pre_edge_insert): Free inserted.
7171 * stmt.c (free_stmt_status): Don't free NULL.
7172
7173 Fri Oct 29 15:25:07 1999 Arnaud Charlet <charlet@ACT-Europe.FR>
7174
7175 * gcov.c (DIR_SEPARATOR): Provide default.
7176 (output_data): Add test for MS-DOS format absolute filename.
7177 (fancy_abort): Correct program name.
7178 (open_files): Open all files in binary mode.
7179 * libgcc2.c (__bb_exit_func): Likewise.
7180
7181 * profile.c (init_branch_prob): Specify binary when opening files.
7182
7183 * flags.h (flag_unwind_tables): New decl.
7184 * toplev.c (flag_unwind_table): New definition.
7185 (f_options): Add -funwind-tables.
7186 (decode_g_option): Clarify warning when unknown -g option is given.
7187 (rest_of_compilation): If inside an inlined external function,
7188 pretend we are just being declared.
7189
7190 * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
7191 (dwarf2out_frame_finish): Likewise.
7192
7193 Fri Oct 29 07:44:26 1999 Vasco Pedro <vp@di.fct.unl.pt>
7194
7195 * fold-const.c (merge_ranges): If not in0, but in1, handle
7196 upper bounds equal like subset case.
7197
7198 Thu Oct 28 19:22:24 1999 Douglas Rupp <rupp@gnat.com>
7199
7200 * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
7201 passed in a register but moved to the stack.
7202
7203 Thu Oct 28 19:12:57 1999 Sam Tardieu <tardieu@act-europe.fr>
7204
7205 * gcc.c (pass_exit_codes, greatest_status): New variables.
7206 (struct option_map): Add entry for "--pass-exit-codes".
7207 (execute): Update greatest_status if error.
7208 (display_help): Add documentation for -pass-exit-codes.
7209 (process_command): Handle -pass-exit-codes.
7210 (main): Look at pass_exit_codes and greatest_status on call to exit.
7211
7212 Thu Oct 28 18:06:50 1999 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7213
7214 * reload.c (find_reloads): Refine test for no input reload
7215 case to not includes reloads emitted after insn.
7216
7217 * function.c (find_temp_slots_from_address): Handle sum involving
7218 a register that points to a temp slot.
7219 (update_temp_slot_address): Make recursive call if both old and
7220 new are PLUS with a common operand.
7221 * calls.c (expand_call): Mark temp slot for result as having
7222 address taken.
7223
7224 * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
7225
7226 * gcc.c (process_command): Add standard_exec_prefix with "GCC"
7227 component as well as "BINUTILS".
7228
7229 * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
7230 * integrate.c (copy_rtx_and_substitute): Likewise.
7231 (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
7232 All callers changed.
7233 * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
7234
7235 * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
7236 gdb extensions, write size of type; also be more consistent
7237 in using references when this is a subtype.
7238
7239 * pa.md (extv, extzv, insv): Use define_expand to reject constant
7240 that is out of range.
7241
7242 * loop.c (unknown_constant_address_altered): New variable.
7243 (prescan_loop): Initialize it.
7244 (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
7245 (invariant_p, case MEM): Remove handling for volatile and readonly;
7246 check new variable if readonly.
7247 (check_dbra_loop): Chdeck unknown_constant_address_altered.
7248
7249 * cse.c (canon_hash, case MEM): Do not record if BLKmode.
7250 (addr_affects_sp_p): Removed from note_mem_written and only
7251 define #ifdef AUTO_INC_DEC.
7252
7253 * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
7254
7255 * regclass.c (record_reg_classes): Properly handle register move
7256 directions.
7257
7258 * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
7259 Don't think valid if both operands are invalid.
7260 (struct constant_descriptor): New field RTL.
7261 (mark_const_hash_entry): Mark it.
7262 (record_constant{,_rtx}): Initialize it.
7263 (output_constant_def): Allocate RTL in permanent obstack and
7264 save in table.
7265 ({record,compare}_constant_1): Modes must match for
7266 CONSTRUCTOR of ARRAY_TYPE.
7267
7268 * c-common.h (initializer_constant_valid_p): Delete decl from here.
7269 * output.h (initializer_constant_valid_p): Move decl to here.
7270 * c-common.c (initializer_constant_valid_p): Delete function from here.
7271 * varasm.c (initializer_constant_valid_p): Move function to here.
7272
7273 * tree.h (STRIP_SIGN_NOPS): New macro.
7274 * fold-const.c (optimize_minmax_comparison): New function.
7275 (invert_truthvalue, case WITH_RECORD_EXPR): New case.
7276 (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
7277 (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
7278 cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
7279 widening conversions.
7280 (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
7281 to look at size of mode, not precision of type; also add missing cases.
7282 (optimize_bit_field_compare, decode_field_reference): Don't try to
7283 optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
7284
7285 * dwarf2out.c (ctype.h): Include.
7286 (dwarf2out_set_demangle_name_func): New function.
7287 (size_of_line_info): Deleted.
7288 (output_line_info): Compute size of line info table from difference
7289 of labels.
7290 (base_type_die, add_name_attribute): Call demangle function, if any.
7291 (field_byte_offset): Use bits per word for variable length fields.
7292 (gen_array_type_die): Add array name.
7293 (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
7294 (dwarf2out_add_library_unit_info): New function.
7295
7296 * explow.c (set_stack_check_libfunc): New function.
7297 (stack_check_libfunc): New static variable.
7298 (probe_stack_range): Allow front-end to set up a libfunc to call.
7299
7300 * combine.c (simplify_comparison): When making comparison in wider
7301 mode, check for having commuted an AND and a SUBREG.
7302 (contains_muldiv): New function.
7303 (try_combine): Call it when dividing a PARALLEL.
7304 (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
7305 (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
7306 a PLUS.
7307 (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
7308 use one of the CLOBBERs instead.
7309 (if_then_else_cond): If comparing against zero, just return thing
7310 being compared.
7311
7312 * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
7313 Don't generate shifts and subtract if have conditional arithmetic.
7314
7315 * rtl.h (delete_barrier): New declaration.
7316 * jump.c (jump_optimize): Set up to handle conditional call.
7317 In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
7318 (delete_barrier): New function.
7319
7320 * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
7321
7322 * recog.c (nonmemory_operand): Accept ADDRESSOF.
7323
7324 * tree.c (build_type_attribute_variant): Push to obstack of
7325 ttype around type_hash_canon call.
7326
7327 * expr.c (placeholder_list): Move decl to file scope.
7328 (expand_expr): Don't force access to volatile just because its
7329 address is taken.
7330 If ignoring reference operations, just expand the operands.
7331 (expand_expr, case COMPONENT_REF): Propagate
7332 EXPAND_CONST_ADDRESS to recursive call when expanding inner.
7333 Refine test for using bitfield operations vs pointer punning.
7334 (expand_expr, case CONVERT_EXPR): If converting to
7335 BLKmode UNION_TYPE from BLKmode, just return inner object.
7336 Use proper mode in store_field call.
7337 Properly set sizes of object to store and total size in store_field
7338 call for convert to union.
7339 (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
7340 memory (like for ADDR_EXPR). Also, don't put constant in register if
7341 we'll want it in memory.
7342 (readonly_fields_p): New function.
7343 (expand_expr, case INDIRECT_REF): Call it if LHS.
7344 (expand_assignment): Handle a RESULT_DECL where
7345 DECL_RTL is a PARALLEL.
7346 (do_jump, case WITH_RECORD_EXPR): New case.
7347 (get_inner_reference): Always go inside a CONVERT_EXPR
7348 and NOP_EXPR if both modes are the same.
7349 (store_field): Use bitfield operations if size of bitsize is not same
7350 as size of RHS's type.
7351 Check for bitpos not a multiple of alignment in BLKmode case.
7352 Do block move in largest possible alignment.
7353 (store_constructor): Set BITSIZE to -1 for variable size and properly
7354 in case of array of BLKmode.
7355 (expand_expr_unaligned): New function.
7356 (do_compare_and_jump): Call it.
7357
7358 * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
7359 * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
7360 does not include 'o'.
7361
7362 * function.c (instantiate_virtual_regs_1, case SET): Handle case where
7363 both SET_DEST and SET_SRC reference a virtual register.
7364 (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
7365
7366 * integrate.c (expand_inline_function): Handle case of setting
7367 virtual stack vars register (from built in setjmp); when parameter
7368 lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
7369 (subst_constant): Add new parm, MEMONLY.
7370 (expand_inline_function, integrate_parm_decls): Pass new parm.
7371 (integrate_decl_tree): Likewise.
7372 (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
7373 (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
7374 (copy_rtx_and_substitute, case SET): Add explicit calls to
7375 copy_rtx_and_substitute for both sides.
7376
7377 * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
7378 constraints.
7379 (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
7380 within INDEX_TYPE, instead of before.
7381 (fixup_gotos): Use f->target_rtl, not the next insn,
7382 since latter may be from a later fixup.
7383 (expand_value_return): Correctly convert VAL when promoting function
7384 return; support RETURN_REG being a PARALLEL.
7385 (expand_return): When checking for result in regs and having
7386 cleanup, consider PARALLEL in DECL_RTL as being in regs.
7387
7388 1999-10-28 21:27 -0700 Zack Weinberg <zack@bitmover.com>
7389
7390 * cpplib.h (struct cpp_buffer: fname, nominal_fname,
7391 last_nominal_fname): Mark const.
7392 (struct include_hash: name, nshort, control_macro): Mark
7393 const.
7394 (struct macrodef: symnam): Mark const.
7395 (struct if_stack: fname): Mark const.
7396 (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
7397 (IStable): New character-syntax array which encompasses all
7398 the old is_foo arrays.
7399 (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
7400 is_space): New macros for interrogating IStable.
7401 (check_macro_name): Kill last argument. All callers changed.
7402
7403 * cppinit.c (initialize_char_syntax): Delete.
7404 (is_idchar, is_idstart, is_hor_space, is_space,
7405 trigraph_table): Delete.
7406 (IStable): New. Initialize with clever macros to avoid
7407 information duplication.
7408 (builtin_array): Table of builtins to get rid of explicit list
7409 in initialize_builtins.
7410 (initialize_builtins): Use builtins_array.
7411 (cpp_start_read): Call init_IStable, and set IStable['$'] if
7412 opts->dollars_in_ident.
7413
7414 * cppexp.c: Change all refs to is_xyz[] arrays to use new
7415 is_xyz() macros.
7416 (cpp_parse_expr): Avoid 'format string is not constant'
7417 warning. Use ISGRAPH to identify printable chars.
7418 * cppfiles.c: Change all refs to is_xyz[] arrays to use new
7419 is_xyz() macros.
7420 (read_and_prescan): Map trigraphs to chars with open-coded
7421 if-else-if-... sequence, not a lookup table.
7422 * cpphash.c: Change all refs to is_xyz[] arrays to use new
7423 is_xyz() macros.
7424 * cpplib.c: Change all refs to is_xyz[] arrays to use new
7425 is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused).
7426 (check_macro_name): Remove ability to report an invalid
7427 assertion name, which is never used.
7428 (do_line): Constify a couple of char *'s.
7429 * cppmain.c (main): Call cpp_cleanup before returning.
7430
7431 Thu Oct 28 21:16:35 1999 Mark Mitchell <mark@codesourcery.com>
7432
7433 * ggc.h (struct ggc_statistics): New type.
7434 (ggc_get_size): New function.
7435 (ggc_print_statistics): Likewise.
7436 * ggc-common.c (ggc_stats): New variable.
7437 (ggc_mark_rtx_children): Keep statistics.
7438 (ggc_mark_tree_children): Likewise.
7439 (ggc_print_statistics): New function.
7440 * ggc-page.c (struct globals): Add bytes_mapped field.
7441 (alloc_anon): Update it.
7442 (release_pages): Likewise.
7443 (ggc_get_size): New function.
7444 (ggc_page_print_statistics): New function.
7445 * ggc-simple.c (ggc_get_size): New function.
7446
7447 Fri Oct 29 06:32:44 1999 Geoffrey Keating <geoffk@cygnus.com>
7448
7449 * flow.c (propagate_block): When the last reference to a label
7450 before an ADDR_VEC is deleted because the reference is a dead
7451 store, delete the ADDR_VEC.
7452
7453 Thu Oct 28 12:28:50 1999 Richard Henderson <rth@cygnus.com>
7454
7455 * resource.c (find_free_register): Don't use the frame pointer
7456 if frame_pointer_needed.
7457
7458 Thu Oct 28 10:02:00 1999 Jim Wilson <wilson@cygnus.com>
7459
7460 * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
7461 (function_arg_pass_by_reference): Check for a NULL pointer in cum.
7462
7463 * config/i960/i960.c (i960_va_start): New locals base, num.
7464 Use INDIRECT_REF instead of ARRAY_REF on valist.
7465 (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
7466
7467 Thu Oct 28 09:45:48 1999 Mark Mitchell <mark@codesourcery.com>
7468
7469 * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
7470
7471 Thu Oct 28 03:37:50 1999 Peter Gerwinski <peter@gerwinski.de>
7472
7473 * tree.def (PLACEHOLDER_EXPR): Update comments.
7474
7475 Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7476
7477 * c-common.c (check_format_info): Avoid non-literal format string
7478 warnings when `first_arg_num' is zero.
7479
7480 Thu Oct 28 12:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7481
7482 * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
7483
7484 Thu Oct 28 11:05:13 1999 Richard Earnshaw <rearnsha@arm.com>
7485
7486 * arm.md (casesi_insn): Add a clobber of the condition code
7487 register.
7488
7489 Mon Oct 18 21:16:06 1999 Fred Fish <fnf@be.com>
7490
7491 * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
7492 used by both cc1 and cc1plus.
7493
7494 Thu Oct 28 10:00:48 1999 Nick Clifton <nickc@cygnus.com>
7495
7496 * config/arm/arm.c: Initialise arm_structure_size_boundary to
7497 DEFAULT_STRUCTURE_SIZE_BOUNDARY.
7498 * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
7499 to the value 32 if it has not already been defined.
7500 * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
7501 Override definition in arm.h with a value of 8.
7502
7503 Thu Oct 28 03:12:02 1999 David Starner <dstarner98@aasaa.ofe.org>
7504
7505 * c-pragma.c (push_alignment): Don't check the return value
7506 of xmalloc.
7507
7508 Thu Oct 28 03:08:38 1999 Matteo Frigo <athena@fftw.org>
7509
7510 * sparc.h (ADJUST_COST): Fix thinko.
7511
7512 Thu Oct 28 02:44:03 1999 Glen Nakamura <glen.nakamura@usa.net>
7513
7514 * cccp.c (rescan): Fixed obp pointer handling around call to
7515 check_expand subroutine.
7516
7517 Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com)
7518
7519 * gcse.c (delete_null_pointer_checks): Only record non-null info
7520 for pseudos when examining stores.
7521
7522 * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
7523 splitters for these patterns. Use "#" for output templates.
7524 (addsi3_carryin_shift): New pattern.
7525
7526 Thu Oct 28 10:20:02 1999 Geoffrey Keating <geoffk@cygnus.com>
7527
7528 * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
7529 of the function return register into a plain REG until
7530 after function inlining is done.
7531
7532 Wed Oct 27 15:21:46 1999 Richard Henderson <rth@cygnus.com>
7533
7534 * jump.c (jump_optimize_1): If we did cross-jumping, and
7535 the data will matter, rebuild the CFG.
7536 * reg-stack.c (reg_to_stack): Only (re)build the CFG if
7537 not optimizing. Don't run shorten_branches.
7538 * toplev.c (rest_of_compilation): Run shorten_branches after
7539 reg_to_stack.
7540
7541 Wed Oct 27 12:33:40 1999 Mark Mitchell <mark@codesourcery.com>
7542
7543 * rtl.h (note_stores): Add additional paramter.
7544 * rtlanal.c (reg_set_p_1): Take additional paramter.
7545 (reg_set_last_1): Likewise.
7546 (reg_set_p): Adjust call to note_stores.
7547 (reg_set_last): Likewise.
7548 (note_stores): Pass data parameter to worker function.
7549 * alias.c (record_set): Take additional parameter.
7550 (init_alias_analysis): Pass it.
7551 * caller-save.c (mark_set_regs): Take additional parameter.
7552 (save_call_clobbered_regs): Pass NULL to note_stores.
7553 * combine.c (set_nonzero_bits_and_sign_copies): Take additional
7554 parameter.
7555 (record_dead_and_set_regs_1): Likewise.
7556 (reg_dead_at_p_1): Likewise.
7557 (combine_instructions): Adjust calls to note_stores.
7558 (try_combine): Likewise.
7559 (record_dead_insn): Remove.
7560 (record_dead_and_set_regs): Adjust calls to note_stores.
7561 (reg_dead_at_p): Likewise.
7562 * cse.c (invalidate_skipped_set): Take additional parameter.
7563 (cse_check_loop_start): Likewise.
7564 (cse_check_loop_start_value): Remove.
7565 (cse_set_around_loop): Adjust calls to note_stores.
7566 * flow.c (notice_stack_pointer_modification): Take additional
7567 parameter. Remove duplicate declaration.
7568 (record_volatile_insns): Adjust calls to note_stores.
7569 * gcse.c (record_set_info): Take additional parameter.
7570 (record_last_set_info): Likewise.
7571 (invalidate_nonnull_info): Likewise.
7572 (record_set_insn): Remove.
7573 (compute_sets): Adjust calls to note_stores.
7574 (last_set_insn): Remove.
7575 (compute_hash_table): Adjust calls to note_stores.
7576 (insert_insn_end_bb): Likewise.
7577 (delete_null_pointer_checks): Likewise.
7578 * global.c (mark_reg_store): Take additional parameter.
7579 (mark_reg_clobber): Likewise.
7580 (reg_becomes_live): Likewise.
7581 (global_conflicts): Adjust calls to note_stores.
7582 (build_insn_chain): Likewise.
7583 * integrate.c (note_modified_parmregs): Take additional parameter.
7584 (mark_stores): Likewise. Make it static.
7585 (save_for_inline_nocopy): Adjust calls to note_stores.
7586 (try_constants): Likewise.
7587 * integrate.h (mark_stores): Remove declaration.
7588 * jump.c (mark_modified_reg): Take additional parameter.
7589 (thread_jumps): Adjust calls to note_stores.
7590 * local-alloc.c (validate_equiv_mem_from_store): Take additional
7591 parameter.
7592 (no_equiv): Likewise.
7593 (reg_is_set): Likewise.
7594 (validate_equiv_mem): Adjust calls to note_stores.
7595 (update_equiv_regs): Likewise.
7596 (block_alloc): Likewise.
7597 * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
7598 (note_addr_stored): Take additional parameter.
7599 (note_set_pseudo_multiple_uses): Likewise.
7600 (record_initial): Likewise.
7601 (prescan_loop): Adjust calls to note_stores.
7602 (strength_reduce): Likewise.
7603 (check_dbra_loop): Likewise.
7604 * regmove.c (flags_set_1): Take additional paramter.
7605 (mark_flags_life_zones): Adjust calls to note_stores.
7606 * reload1.c (mark_not_eliminable): Take additional parameter.
7607 (forget_old_reloads_1): Likewise.
7608 (reload_cse_invalidate_rtx): Likewise.
7609 (reload_cse_check_clobber): Likewise.
7610 (reload_combine_note_store): Likewise.
7611 (move2add_note_store): Likewise.
7612 (reload): Adjust calls to note_stores.
7613 (reload_as_needed): Likewise.
7614 (emit_reload_insns): Likewise.
7615 (reload_cse_regs_1): Likewise.
7616 (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
7617 (reload_combine): Adjust calls to note_stores.
7618 * resource.c (update_live_status): Take additional paramter.
7619 (mark_target_live_regs): Adjust calls to note_stores.
7620 * stupid.c (find_clobbered_regs): Take additional parameter.
7621 (stupid_life_analysis): Adjust calls to note_stores.
7622
7623 Wed Oct 27 19:26:12 1999 Nick Clifton <nickc@cygnus.com>
7624
7625 * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
7626 definition.
7627
7628 * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
7629 definition.
7630
7631 * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
7632 of the variable arm_structure_size_boundary.
7633
7634 Wed Oct 27 02:05:58 1999 Mark P. Mitchell <mark@codesourcery.com>
7635
7636 * alias.c (init_alias_analysis): Allocate reg_known_value and
7637 reg_known_equiv_p on the heap. Likewise for new_reg_base_value
7638 and reg_seen.
7639 (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
7640 * cse.c (cse_main): Call end_alias_analysis.
7641 * haifa-sched.c (schedule_insns): Likewise.
7642 * local-alloc. (update_equiv_regs): Likewise.
7643 * reload1.c (reload_cse_regs): Likewise.
7644
7645 Wed Oct 27 01:49:17 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
7646
7647 * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
7648 * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
7649 mapping from MASK_FPU.
7650
7651 Wed Oct 27 01:42:26 1999 Scott Christley <scottc@net-community.com>
7652
7653 * sparc.md (call): Don't bound structure return size to 0xfff.
7654
7655 Wed Oct 27 00:56:59 1999 Richard Henderson <rth@cygnus.com>
7656
7657 * resource.c (mark_target_live_regs): Check that the target
7658 insn wasn't created after compute_bb_for_insn.
7659
7660 Tue Oct 26 23:15:03 1999 Mark Mitchell <mark@codesourcery.com>
7661
7662 * ggc-page.c (poison_pages): Don't be overzealous.
7663
7664 Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com)
7665
7666 * alias.c: Update comments for ADDRESS.
7667 (nonlocal_reference_p): Look inside the ADDRESS to determine if
7668 it is a local memory reference.
7669
7670 * c-typeck.c (build_function_call): Check that the built-in
7671 function is of class BUILT_IN_NORMAL before trying to recongize
7672 it as BUILT_IN_ABS.
7673 * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
7674 * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
7675
7676 Wed Oct 27 00:14:13 1999 Robert Lipe <robertlipe@usa.net>
7677
7678 * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
7679 of alloca.
7680 (pre_gcse): Likewise.
7681 (hoist_expr_reaches_here_p): Likewise.
7682 (hoist_code): Likewise.
7683 (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core
7684 code to ...
7685 (pre_expr_reaches_here_p_work): ... here.
7686 (expr_reaches_here_p): Replace alloca with xcalloc. Move core
7687 code to ...
7688 (expr_reaches_here_p_work): ... here.
7689
7690 Tue Oct 26 20:42:45 1999 Richard Henderson <rth@cygnus.com>
7691
7692 * resource.c (find_basic_block): Delete.
7693 (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
7694 (init_resource_info): Call compute_bb_for_insn.
7695
7696 Tue Oct 26 20:21:02 1999 Richard Henderson <rth@cygnus.com>
7697
7698 * flow.c (merge_blocks_move_predecessor_nojumps): Cope
7699 with already adjacent blocks, but no fallthru.
7700 (merge_blocks_move_successor_nojumps): Simplify.
7701 (debug_flow_info): New.
7702
7703 * toplev.c (rest_of_compilation): Open jump1 dump file before
7704 jump and close after, as opposed to just using dump_rtl.
7705
7706 Wed Oct 27 03:09:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
7707
7708 * reload.h (earlyclobber_operand_p): Declare.
7709 * reload.c (earlyclobber_operand_p): Don't declare. No longer static.
7710 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
7711 an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
7712 case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p.
7713
7714 Tue Oct 26 18:23:38 1999 Jan Hubicka <hubicka@freesoft.cz>
7715 Richard Henderson <rth@cygnus.com>
7716
7717 * emit-rtl.c (emit_block_insn_before): New.
7718 (emit_block_insn_after): New.
7719 * basic-block.h: Declare them.
7720
7721 * bitmap.h: Protect from multiple inclusion.
7722
7723 * recog.c (scratch_operand): Handle VOIDmode correctly.
7724
7725 * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
7726
7727 * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
7728 * function.c (assign_parms): Likewise.
7729 * global.c (global_conflicts): Clarify STACK_REGS commentary.
7730
7731 * reg-stack.c (max_uid): Remove.
7732 (blocks, block_begin, block_end, block_drops_in): Remove.
7733 (block_stack_in, block_out_reg_set, block_number): Remove.
7734 (struct block_info_def, BLOCK_INFO): New.
7735 (enum emit_where): New.
7736 (current_block): New.
7737 (BLOCK_NUM): Remove.
7738 (mark_regs_pat, record_label_references): Remove.
7739 (record_reg_life_pat, record_reg_life, find_blocks): Remove.
7740 (nan): New.
7741 (goto_block_pat, print_blocks, dump_stack_info): Remove.
7742 (reg_to_stack): Simplified test for existance of fp code. Use
7743 flow.c code. Call shorten_branches after cross-jump opt.
7744 (check_asm_stack_operands): Renamed from record_asm_reg_life.
7745 Return false if the asm doesn't use stack regs. Don't do life
7746 analysis on the asm.
7747 (emit_pop_insn): Replace function pointer arg `when' with
7748 enum `where'. Update all callers.
7749 (change_stack): Likewise. Update basic block end.
7750 (emit_swap_insn): Use current_block->head to limit reverse search
7751 for start of block. Use emit_block_insn_after.
7752 (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
7753 (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct
7754 structure assignment instead of bcopy.
7755 (print_stack): New.
7756 (convert_regs_entry, convert_regs_exit): New.
7757 (convert_regs_1, convert_regs_2): Split out from convert_regs.
7758 Work on basic blocks and the CFG.
7759 (convert_regs): Use them.
7760
7761 * i386.c (output_fix_trunc): Remove code for DImode input operand
7762 not at top-of-stack.
7763 * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
7764 appropriate mode.
7765 (fix_truncdi_1): Allow any mode scratch.
7766
7767 Tue Oct 26 13:30:35 1999 Richard Henderson <rth@cygnus.com>
7768
7769 * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
7770 * linux.h, netbsd.h, vms.h: Not here.
7771
7772 1999-10-26 Gavin Romig-Koch <gavin@cygnus.com>
7773
7774 * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
7775 ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
7776 (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
7777 CONDITIONAL_REGISTER_USEAGE): Use them.
7778 * config/mips/mips.c (mips_move_1word,mips_move_2words,
7779 gen_conditional_branch,override_options) : Use them.
7780 * config/mips/mips.md : Use them.
7781
7782 Tue Oct 26 13:09:23 1999 Richard Henderson <rth@cygnus.com>
7783
7784 * i386.md (zero_extendqihi2): Use SImode register name with andl.
7785
7786 Tue Oct 26 12:35:38 1999 Richard Henderson <rth@cygnus.com>
7787
7788 * integrate.c (function_cannot_inline_p): Don't allow inlining
7789 if setjmp is used.
7790
7791 Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7792
7793 * c-parse.in (cast_expr): Constify.
7794
7795 * cccp.c (special_symbol): Likewise.
7796
7797 * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
7798
7799 * dwarf2out.c (base_type_die): Likewise.
7800
7801 * global.c (allocno_compare): Likewise.
7802
7803 * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
7804
7805 * regclass.c (fix_register): Likewise.
7806
7807 * rtl.h (fix_register): Likewise.
7808
7809 * stupid.c (stupid_reg_compare): Likewise.
7810
7811 * toplev.c (decode_f_option): Likewise.
7812
7813 * tree.c (build_complex_type): Likewise.
7814
7815 Tue Oct 26 18:35:25 1999 Richard Earnshaw <rearnsha@arm.com>
7816
7817 * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
7818
7819 Tue Oct 26 15:42:56 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7820
7821 * reload.c (find_reloads): Compute mode and nregs fields of all
7822 reloads.
7823 * reload1.c (calculate_needs_all_insns): Simplify a bit.
7824 (calculate_needs): Use precomputed mode/nregs values.
7825 (allocate_reload_reg): Likewise.
7826 Break out two...
7827 (failed_reload, set_reload_reg): ... new functions.
7828 (choose_reload_regs_init): New function, mostly broken out from...
7829 (choose_reload_regs): ... here. Lose all the save_xxx nonsense.
7830 Also lose one #if 0 block.
7831
7832 Tue Oct 26 02:48:32 1999 Marc Espie <espie@cvs.openbsd.org>
7833
7834 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name
7835 substitution.
7836
7837 Tue Oct 26 01:27:32 1999 Mark Mitchell <mark@codesourcery.com>
7838
7839 * tree.h (BLOCK_TYPE_TAGS): Remove.
7840 (BLOCK_END_NOTE): Likewise.
7841 (BLOCK_LIVE_RANGE_FLAG): Likewise.
7842 (BLOCK_LIVE_RANGE_START): Likewise.
7843 (BLOCK_LIVE_RANGE_END): Likewise.
7844 (tree_block): Remove live_range_flag, live_range_var_flag, and
7845 type_tags. Remove end_note, live_range_start, and live_range_end.
7846 (remember_end_note): Remove prototype.
7847 * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
7848 * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
7849 remember_end_note.
7850 * ggc-common.c (ggc_mark_tree_children): Don't mark
7851 BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
7852 * integrate.c (adjust_copied_decl_tree): Remove.
7853 * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
7854 * stmt.c (last_block_end_note): Remove.
7855 (init_stmt): Don't add a GC root for it.
7856 (expand_fixup): Don't set it.
7857 (remember_end_note): Remove.
7858 (expand_end_bindings): Don't set last_block_end_note.
7859
7860 Tue Oct 26 00:41:54 1999 Bernd Schmidt <bernds@cygnus.co.uk>
7861
7862 * reload1.c (reload_reg_free_for_value_p): Show
7863 RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
7864 reloads.
7865
7866 Mon Oct 25 23:54:45 1999 Geoff Keating <geoffk@cygnus.com>
7867
7868 * expmed.c (extract_bit_field): Allow for the case of non-integer
7869 objects that are smaller than a word (like SFmode on a 64-bit
7870 machine).
7871
7872 * loop.c (basic_induction_var): A non-integer variable which is
7873 being set by a paradoxical subreg is probably not a biv.
7874
7875 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7876
7877 * prefix.c (translate_name) Check for empty prefix string.
7878
7879 Mon Oct 25 23:10:45 1999 Andreas Schwab <schwab@suse.de>
7880
7881 * Makefile.in (CPP_CROSS_NAME): New variable.
7882 (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
7883 xcpp.
7884 (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
7885 names of the files to be uninstalled.
7886
7887 Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com)
7888
7889 * collect2.c (IS_DIR_SEPARATOR): Define.
7890 (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
7891
7892 * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
7893 functions too.
7894
7895 * haifa-sched.c (add_dependence): Update the true dependency
7896 cache the first time we add a true dependence to the LOG_LINKS chain.
7897
7898 Mon Oct 25 22:27:40 1999 Jim Kingdon <http://developer.redhat.com/>
7899
7900 * fold-const.c (fold): Fix comment.
7901
7902 Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7903
7904 * dbxout.c (lastfile, cwd, dbxout_type_method_1,
7905 dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
7906 dbxout_start_new_source_file, dbxout_source_file,
7907 dbxout_source_line, dbxout_finish, dbxout_type_fields,
7908 dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
7909 Constify a char*.
7910 (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
7911 (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
7912 (dbxout_block): Initialize variable `blocknum'.
7913
7914 * dbxout.h (dbxout_init, dbxout_finish,
7915 dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
7916 dbxout_args, dbxout_source_line): Constify a char*.
7917
7918 * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
7919 dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
7920 dwarf_fund_type_name, name_attribute, stmt_list_attribute,
7921 low_pc_attribute, high_pc_attribute, body_begin_attribute,
7922 body_end_attribute, comp_dir_attribute, sf_names_attribute,
7923 src_info_attribute, mac_info_attribute, producer_attribute,
7924 lookup_filename, generate_macinfo_entry, fundamental_type_code,
7925 dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
7926 dwarfout_undef): Constify a char*.
7927 (add_incomplete_type, retry_incomplete_types): Add prototypes.
7928
7929 * dwarfout.h (dwarfout_define, dwarfout_undef,
7930 dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
7931
7932 1999-10-25 Gavin Romig-Koch <gavin@cygnus.com>
7933
7934 * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
7935 (MULTILIB_ISA_DEFAULT): New.
7936 (MULTILIB_DEFAULTS): Use it.
7937 * config/mips/mips.c (): Remove the now unnecessary definition
7938 of MIPS_ISA_DEFAULT.
7939 * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
7940 unnecessary definition.
7941
7942 Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com)
7943
7944 * arm.md (pic_load_addr): Add constraints to operand 1.
7945
7946 1999-10-25 Bruce Korb <autogen@linuxbox.com>
7947
7948 * fixinc/genfixes: Provide a means for specifying -D options to
7949 AutoGen
7950
7951 Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com)
7952
7953 * arm.c (arm_override_options): Correct initialization of
7954 arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
7955 arm_is_strong, and arm_is_6_or_7.
7956
7957 * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
7958 (note_set_pseudo_multiple_uses): New function.
7959 (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
7960 if a pseudo set in the loop exit is used elsewhere.
7961
7962 Sun Oct 24 20:52:40 1999 Mark Mitchell <mark@codesourcery.com>
7963
7964 * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
7965
7966 Sun Oct 24 21:02:46 1999 Richard Henderson <rth@cygnus.com>
7967
7968 * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
7969 a single load-address pattern.
7970
7971 Sun Oct 24 19:33:24 1999 Mark P. Mitchell <mark@codesourcery.com>
7972
7973 * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
7974 depending on whether or not line-number notes are present.
7975
7976 Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7977
7978 * cccp.c (progname, file_buf, default_include, include_file,
7979 macrodef, definition, hashval, wchar_type, user_label_prefix,
7980 directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
7981 expand_to_temp_buffer, is_system_include, base_name,
7982 absolute_filename, read_name_map, open_include_file,
7983 record_control_macro, check_precompiled, check_preconditions,
7984 pcfinclude, pass_thru_directive, create_definition,
7985 check_macro_name, comp_def_part, collect_expansion,
7986 check_assertion, read_token_list, assertion_install,
7987 assertion_lookup, eval_if_expression, conditional_skip,
7988 validate_else, skip_quoted_string, quote_string, macarg1,
7989 error_from_errno, install, lookup, hashf, dump_defn_1,
7990 perror_with_name, pfatal_with_name, main, trigraph_pcp,
7991 check_white_space, rescan, handle_directive, monthnames,
7992 special_symbol, do_include, remap_include_file, write_output,
7993 arglist, do_assert, do_unassert, do_line, do_error, do_once,
7994 do_ident, do_sccs, do_xifdef, skip_if_group,
7995 output_line_directive, macroexpand, macarg, change_newlines,
7996 initialize_builtins, make_definition): Constify a char*.
7997
7998 * pcp.h (stringdef): Likewise.
7999
8000 Sun Oct 24 13:29:28 1999 Richard Henderson <rth@cygnus.com>
8001
8002 * unroll.c (copy_loop_body): Examine SET_DEST of single_set
8003 not of pattern.
8004
8005 Sun Oct 24 13:14:20 1999 Graham <grahams@rcp.co.uk>
8006 Richard Henderson <rth@cygnus.com>
8007
8008 * alias.c: Include ggc.h.
8009 (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
8010 (record_set): Verify enough room in reg_base_value.
8011 (init_alias_analysis): Allocate reg_base_value with xcalloc.
8012 Register it as a GC root.
8013 (end_alias_analysis): Free reg_base_value. Remove it as a GC root.
8014 * Makefile.in (alias.o): Depend on ggc.h.
8015
8016 * unroll.c (unroll_loop): Verify the insn before a barrier
8017 is a JUMP_INSN before checking JUMP_LABEL.
8018
8019 Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8020
8021 * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
8022 * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
8023 * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
8024 * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
8025 * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
8026 * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
8027
8028 Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8029
8030 * output.h (ctors_section, dtors_section, bss_section): Prototype.
8031
8032 * alpha/alpha-interix.h (text_section): Delete prototype.
8033 * alpha/elf.h (text_section): Likewise.
8034 * arm/linux-elf.h (text_section): Likewise.
8035 * arm/linux-telf.h (text_section): Likewise.
8036 * c4x/c4x.h (text_section): Likewise.
8037 * dsp16xx/dsp16xx.h (bss_section): Likewise.
8038 * elfos.h (text_section): Likewise.
8039 * i386/aix386ng.h (text_section): Likewise.
8040 * i386/i386-interix.h (text_section): Likewise.
8041 * i386/sco5.h (text_section): Likewise.
8042 * i386/svr3gas.h (text_section): Likewise.
8043 * nextstep.h (text_section): Likewise.
8044 * psos.h (text_section): Likewise.
8045 * ptx4.h (text_section): Likewise.
8046 * svr3.h (text_section): Likewise.
8047 * svr4.h (text_section, ctors_section, dtors_section): Likewise.
8048
8049 Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8050
8051 * final.c (peephole): Delete prototype.
8052
8053 * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
8054 (pre_insert_copies): Remove unused variable `bb'.
8055
8056 * genrecog.c (debug_decision_0, debug_decision_list, main): Add
8057 prototypes.
8058
8059 * output.h (peephole): Add prototype.
8060
8061 Sun Oct 24 11:35:30 1999 Mark P. Mitchell <mark@codesourcery.com>
8062
8063 * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
8064 -O0.
8065
8066 Sat Oct 23 21:13:00 1999 Mark Mitchell <mark@codesourcery.com>
8067
8068 * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
8069 for inlined declarations.
8070
8071 Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com)
8072
8073 * arm.c (logical_binary_operator): New fucntion.
8074 * arm.h (logical_binary_operator): Declare it.
8075 (PREDICATE_CODES): Handle logical_binary_operator.
8076 * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
8077 output constraints. Add appropriate splitters.
8078 (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
8079 (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
8080 (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
8081
8082 Fri Oct 22 23:46:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8083
8084 * genoutput.c (struct operand_data): New elt eliminable.
8085 (output_operand_data): Write it.
8086 (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
8087 (compare_operands): Take it into account.
8088 * recog.h (struct insn_operand_data): New elt eliminable.
8089 * reload1.c (check_eliminable_occurrences, elimination_effects): New
8090 functions.
8091 (old_asm_operands_vec, new_asm_operands_vec): Delete.
8092 (eliminate_regs): Move code that detects changes to elimination
8093 target regs into new function elimination_effects.
8094 Delete one #if 0 block.
8095 Abort for USE, CLOBBER, ASM_OPERANDS and SET.
8096 (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
8097 ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
8098 Only call eliminate_regs for real operands of the insn, not for parts
8099 of its structure or parts matched by things like match_operator.
8100 Use elimination_effects and check_eliminable_occurrences. Use
8101 copy_insn to duplicate the pattern when not in the final pass.
8102
8103 Fri Oct 22 09:03:44 1999 Mark Mitchell <mark@codesourcery.com>
8104
8105 * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
8106 and fld.
8107
8108 1999-10-22 Bruce Korb <autogen@linuxbox.com>
8109
8110 * fixinc/README: document the "mach" machine matching test
8111 * fixinc/fixfixes.c: Implement the #else/#endif label fix
8112 * fixinc/fixtests.c: Implement the #else/#endif label test
8113 * fixinc/inclhack.def: utilize these tests and fixes
8114 * fixinc/inclhack.sh: regen
8115 * fixinc/fixincl.x: regen
8116 * fixinc/fixincl.sh: regen
8117
8118 Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com)
8119
8120 * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also
8121 depend on ggc.h.
8122
8123 Thu Oct 21 20:30:19 1999 Matthias Klose <doko@debian.org>
8124
8125 * gcc.1: Document exit codes.
8126
8127 Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8128
8129 * calls.c: Include tm_p.h later, so everything we need is defined.
8130 * expr.c: Likewise.
8131 * function.c: Likewise.
8132
8133 * except.c: Include tm_p.h.
8134
8135 * sparc.c: Likewise.
8136 (dwarf2out_cfi_label): Don't prototype.
8137 (check_return_regs, epilogue_renumber,
8138 ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
8139 ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
8140 ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
8141 ultra_schedule_insn): Add static prototype.
8142 (data_segment_operand, text_segment_operand): Call itself with the
8143 proper number of arguments.
8144 (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
8145
8146 * sparc.h: Move all declarations to sparc-protos.h.
8147 (SELECT_RTX_SECTION): Pass a missing MODE argument to
8148 symbolic_operand.
8149
8150 * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
8151
8152 * config/svr4.h (text_section, ctors_section, dtors_section): Add
8153 Prototypes.
8154 (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
8155 ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
8156 ASM_OUTPUT_ASCII): Constify a char*.
8157
8158 * sparc-protos.h: New file for sparc prototypes.
8159
8160 Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8161
8162 * function.c (record_insns, contains): Always declare and define.
8163 (record_insns): Mark with ATTRIBUTE_UNUSED.
8164
8165 Thu Oct 21 13:03:49 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
8166
8167 * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
8168 to .section when outputting a .bss section to deal with multiple
8169 .bss input sections (as happens with -fdata-sections)
8170 Also output %progbits, not @progbits so the assembler doesn't treat as
8171 a comment.
8172 * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
8173
8174 * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
8175 thumb parts even when building with non-thumb CPUs, by forcing
8176 thumb mode.
8177
8178 Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com)
8179
8180 * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
8181 (movdf_const_intreg_sp64): Similarly.
8182
8183 * local-alloc.c (update_equiv_regs): Check the correct insn
8184 for pre-existing REG_EQUIV notes.
8185
8186 Wed Oct 20 20:41:46 1999 Mark Mitchell <mark@codesourcery.com>
8187
8188 * cse.c (cse_end_of_basic_block): Don't return the end of a basic
8189 block reached by a branch if we're not going to actually process
8190 this block.
8191
8192 Wed Oct 20 15:18:42 1999 Jim Wilson <wilson@cygnus.com>
8193
8194 * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
8195 a local extern function declaration.
8196
8197 Wed Oct 20 13:56:01 1999 Richard Henderson <rth@cygnus.com>
8198
8199 * i386.c (ix86_expand_prologue): Properly wrap USE around
8200 reg for CALL_INSN_FUNCTION_USAGE.
8201
8202 Thu Oct 14 18:51:37 1999 Andrew Haley <aph@cygnus.com>
8203
8204 * config/mips/mips.md (movdf_internal1a): Allow floating-point
8205 move between GP_REGs.
8206
8207 Wed Oct 20 15:36:11 1999 Andrew Haley <aph@cygnus.com>
8208
8209 * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
8210 the mode size when finding out if an offset is legal.
8211
8212 Wed Oct 20 06:26:58 1999 Richard Henderson <rth@cygnus.com>
8213
8214 * basic-block.h (PROP_*): Move constants from ...
8215 * flow.c: ... here.
8216 (compute_bb_for_insn): Free the array before reallocating.
8217 (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
8218 (allocate_reg_life_data): Reset all reg variables collected by
8219 propagate_block.
8220 (get_block_head_tail): Don't convert from bb to block.
8221 (get_bb_head_tail): New. Update all callers of get_block_head_tail.
8222 (find_insn_reg_weight): Take block not bb.
8223 (schedule_block): Don't set block num for moved insns.
8224 (schedule_region): Don't update_life_info or find_insn_reg_weight.
8225 (schedule_insns): Do it here instead.
8226 * combine.c (combine_instructions): Invoke compute_bb_for_insn
8227 before update_life_info.
8228 * recog.c (split_all_insns, peephole2_optimize): Update for
8229 new arg to update_life_info.
8230 * rtlanal.c (remove_note): Cope with NULL note.
8231 * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
8232 if we did sched1.
8233
8234 Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com)
8235
8236 * jump.c (jump_optimize_1): More accurately detect casesi insns.
8237
8238 * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
8239 block records so that merge_blocks_nomove will clean up correctly.
8240 (split_edge): Handle casesi insns.
8241
8242 * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
8243
8244 Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com)
8245
8246 * pa.md (call, call_value): Do not emit a blockage after restoring
8247 the PIC register.
8248
8249 Tue Oct 19 17:22:39 1999 Mark Mitchell <mark@codesourcery.com>
8250
8251 * c-typeck.c (c_expand_asm_operands): Fix typo.
8252
8253 Tue Oct 19 18:42:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8254
8255 * arm.c (fpu_rhs_operand): Verify modes.
8256 (fpu_add_operand): Likewise.
8257 (di_operand): Likewise.
8258 (soft_df_operand): Likewise.
8259
8260 Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com)
8261
8262 * arm.c (arm_return_in_memory): APCS rules state that the elements
8263 of a structure returned in a register must be 'integer-like'.
8264
8265 1999-10-19 Bruce Korb <autogen@linuxbox.com>
8266
8267 * fixinc/Makefile.in: Change the generation rules to run `genfixes'
8268 in the source tree when the generated targets are out of date
8269 * fixinc/genfixes: Alter it to run individual fixes for make.
8270 * fixinc/README: rewrite
8271 * fixinc/inclhack.def: moved initial comments to README
8272
8273 Tue Oct 19 14:01:34 1999 Nick Clifton <nickc@cygnus.com>
8274
8275 * toplev.c (main): Do not generate an error message if an
8276 unrecognised command line switch is recognisable by another
8277 language. If extra_warnings are enabled, then generate a
8278 warning message instead.
8279
8280 Tue Oct 19 11:41:12 1999 Mumit Khan <khan@xraylith.wisc.edu>
8281
8282 * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
8283 (insert_pack_attributes): Delete prototype.
8284
8285 * c-pragma.c (default_alignment): New static variable.
8286 (push_alignment): Initialize to current effective alignment.
8287 (pop_alignment): Use to set new alignment.
8288 (insert_pack_attributes): Delete function.
8289 (handle_pragma_token): Set default_alignment as well each time
8290 a #pragma pack(<n>) is encountered.
8291
8292 Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com)
8293
8294 * reg-stack.c (stack_result): Aggregates are not returned in
8295 stack registers.
8296
8297 Tue Oct 19 01:26:48 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
8298
8299 * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
8300
8301 Mon Oct 18 15:19:41 1999 Richard Henderson <rth@cygnus.com>
8302
8303 * basic-block.h (set_block_num): Declare.
8304 * flow.c (update_life_info): Don't call compute_bb_for_insn
8305 or free_basic_block_vars.
8306 * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
8307 (insn_orig_block): Remove.
8308 (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM.
8309 (schedule_block): Keep BLOCK_NUM up-to-date.
8310 (schedule_insns): Use compute_bb_for_insn.
8311 * recog.c (split_all_insns): Likewise.
8312 (peephole2_optimize): Likewise.
8313
8314 Mon Oct 18 18:50:51 1999 Andreas Schwab <schwab@suse.de>
8315
8316 * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
8317 if the pic register is used.
8318
8319 Mon Oct 18 02:38:46 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8320
8321 * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
8322 (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
8323 if that tests TREE_PERMANENT.
8324
8325 Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com)
8326
8327 * cse.c (invalidate_for_call): Do not remove memory references from
8328 the table here. It's handled elsewhere.
8329
8330 * haifa-sched.c (add_dependence): Protect references to the
8331 true dependency cache with #ifdef INSN_SCHEDULING.
8332 (remove_dependence): Similarly.
8333
8334 * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
8335 to the cfg code that this is a return instruction.
8336 * mn10300.md (return_internal): Similarly.
8337
8338 * combine.c (get_last_value): If the last set of a register
8339 is after subst_low_cuid, then we can not use it to determine
8340 the register's last value.
8341
8342 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
8343
8344 * Makefile.in: Back out previous change.
8345
8346 Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com)
8347
8348 * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
8349
8350 * haifa-sched.c (add_dependence): Only check/update the cache
8351 if it exists.
8352 (remove_dependence): Likewise.
8353 (schedule_insns): Only create the true_dependency_cache if the
8354 average number of instructions in a basic block is very large.
8355
8356 Sun Oct 17 11:02:52 1999 Mark Mitchell <mark@codesourcery.com>
8357
8358 * Makefile.in (ggc-common.o): Depend on genrtl.h.
8359 (ggc-simple.o): Likewise.
8360 (ggc-page.o): Likewise.
8361
8362 Sun Oct 17 02:09:50 1999 Andrew MacLeod <amacleod@cygnus.com>
8363
8364 * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
8365 Prototype for exported functions.
8366 (pre_lcm, pre_rev_lcm): Remove prototypes.
8367 * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
8368 (compute_available): Move to lcm.c, and change parameter order.
8369 (one_classic_gcse_pass): Call compute_ae_kill with parameters.
8370 (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
8371 (gcse_main): No longer call compute_preds_succs. Rebuild the
8372 set table after reach pre pass.
8373 (pre_insert_map, pre_delete_map, edge_list): New.
8374 (alloc_pre_mem): Allocate edge vectors.
8375 (free_pre_mem): Delete edge vectors.
8376 (compute_pre_data): Call new edge based lcm routines.
8377 (process_insert_insn): New function.
8378 (insert_insn_end_bb): Use it.
8379 (pre_edge_insert): New function.
8380 (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as
8381 needed.
8382 (pre_insert_copies): Revamp using new edge based lcm outputs.
8383 (pre_delete): Likewise.
8384 (one_pre_gcse_pass): Insert & remove fake edges to the exit
8385 block.
8386 (compute_code_hoist_vbeinout): New new edge based routines.
8387 * lcm.c: Remove all the old LCM functions. Replace with new ones
8388 that work with the new cfg datastructures and work with edges
8389 instead of blocks.
8390
8391 Sun Oct 17 00:44:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
8392
8393 * reload.h (struct reload): Add new fields "mode" and "nregs".
8394 * reload1.c: Change all occurrences of reload_mode and reload_nregs
8395 to reference the "mode" and "nregs" field within struct reload.
8396
8397 Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com)
8398
8399 * haifa-sched.c (true_dependency_cache): New.
8400 (add_dependence): Use the true dependency cache to avoid expensive
8401 walks down the LOG_LINKS dependency list. Add entries to the
8402 cache as necessary.
8403 (remove_dependence): Remove entries from the true dependency cache
8404 as needed.
8405 (schedule_insns): Allocate and initialize and free the true
8406 dependency cache.
8407
8408 * haifa-sched.c (schedule_insns): Do not remove inter-block
8409 dependencies anymore.
8410
8411 Sat Oct 16 11:19:52 1999 Richard Henderson <rth@cygnus.com>
8412
8413 * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
8414 * i386/t-winnt: Likewise.
8415
8416 Sat Oct 16 11:11:54 1999 Richard Henderson <rth@cygnus.com>
8417
8418 * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
8419
8420 1999-10-16 Manfred Hollstein <mhollstein@cygnus.com>
8421
8422 * Makefile.in (LANGUAGES): Omit "proto".
8423 (clean): Remove stale comment about removing unprotoize.c.
8424
8425 Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8426
8427 * protoize.c (safe_read, safe_write): Avoid the gcc extension of
8428 using arithmetic on void pointers.
8429
8430 Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com)
8431
8432 * haifa-sched.c (compute_block_forward_dependencies): Only check
8433 for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
8434
8435 Sat Oct 16 00:07:01 1999 Richard Henderson <rth@cygnus.com>
8436
8437 * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
8438 (expr_equiv_p): Reject memories with different alias sets.
8439
8440 Fri Oct 15 15:17:29 1999 Greg McGary <gkm@gnu.org>
8441
8442 * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
8443 * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
8444 (f_options): Add "bounded-pointers" and "bounds-check" entries.
8445 * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
8446 (lang_init): Set default for flag_bounds_check if still "unspecified".
8447
8448 Sat Oct 16 13:42:29 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8449
8450 * config/c4x/c4x.md (HF mode patterns): Add missing modes.
8451
8452 Sat Oct 16 13:37:46 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8453
8454 * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
8455 instructions.
8456
8457 Sat Oct 16 13:26:47 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8458
8459 * config/c4x/c4x.md (*db_noclobber,
8460 *decrement_and_branch_until_zero_noclobber): New patterns and
8461 associated splitters.
8462
8463 Sat Oct 16 13:13:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8464
8465 * config/c4x/c4x.md (parallel instruction patterns): Rework
8466 constraints to keep reload happy.
8467
8468 Sat Oct 16 13:03:16 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8469
8470 * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
8471 *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
8472 *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
8473 Add new patterns and associated post-reload splitters.
8474
8475 Sat Oct 16 12:42:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8476
8477 * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
8478
8479 Sat Oct 16 12:34:44 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8480
8481 * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
8482 if appropriate.
8483 * config/c4x/c4x.md (rpts_top): New pattern and splitter.
8484
8485 Sat Oct 16 12:26:30 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8486
8487 * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF
8488 memory mode.
8489
8490 Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com)
8491
8492 * pa.c (move_operand): Rely on memory_address_p to determine the
8493 validity of non-indexed memory addresses.
8494 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
8495 operand in DFmode and SFmode when generating PA2.0 code.
8496
8497 Fri Oct 15 14:25:19 1999 Richard Henderson <rth@cygnus.com>
8498
8499 * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
8500
8501 Fri Oct 15 13:48:45 1999 Richard Henderson <rth@cygnus.com>
8502
8503 * mips.c (function_prologue): Fix argument types.
8504 * mips.md (casesi): Use emit_jump_insn for casesi_internal.
8505 (casesi_internal): Write to the scratch register.
8506
8507 1999-10-15 11:16 -0700 Zack Weinberg <zack@bitmover.com>
8508
8509 * cppexp.c (cpp_parse_escape): Make static. Change second arg
8510 to U_CHAR **.
8511 (parse_charconst): Delete unnecessary cast when calling
8512 cpp_parse_escape.
8513 (cpplib.h): Kill prototype of cpp_parse_escape.
8514
8515 Fri Oct 15 11:02:46 1999 Richard Henderson <rth@cygnus.com>
8516
8517 Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
8518 * unroll.c (unroll_loop): Cast return value of alloca.
8519 * i370/i370.c: Include function.h and toplev.h.
8520 (i370_label_scan): Remove c++ commented abort.
8521 * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
8522 (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
8523 * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
8524 * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
8525
8526 Fri Oct 15 03:01:01 1999 Loren Rittle <ljrittle@acm.org>
8527
8528 * config/t-freebsd: Do not override USER_H.
8529 * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
8530
8531 Fri Oct 15 02:37:28 1999 Alastair J. Houghton <ajh8@doc.ic.ac.uk>
8532 Mumit Khan <khan@xraylith.wisc.edu>
8533
8534 * c-parse.in (component_decl): Support anonymous struct/union.
8535 (%expect): Update.
8536 * c-parse.y: Regenerate.
8537 * c-parse.c: Likewise.
8538 * objc/objc-parse.y: Likewise.
8539 * objc/objc-parse.c: Likewise.
8540 * c-decl.c (finish_struct): Don't sort the fields.
8541 (field_decl_cmp): Delete unused function.
8542
8543 Fri Oct 15 01:20:52 1999 Richard Henderson <rth@cygnus.com>
8544
8545 * sparc.md (movsf_const_intreg): Revert last constraint change.
8546 (movdf_const_intreg_sp32): Likewise.
8547
8548 Fri Oct 15 01:47:51 1999 Vladimir Makarov <vmakarov@loony.cygnus.com>
8549
8550 * cse.c: Include hashtab.h instead of splay-tree.h
8551 (struct cse_reg_info): No longer use variant union. Add new
8552 field "regno". All references changed to avoid union.
8553 (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
8554 (free_cse_reg_info): Remove.
8555 (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
8556 (get_cse_reg_info): Revamp to use expandable hash tables instead
8557 of splay trees. Initialize new fields in cse_reg_info structure.
8558 (new_basic_block): Similarly.
8559
8560 Thu Oct 14 23:51:56 1999 Richard Henderson <rth@cygnus.com>
8561
8562 * genrecog.c (message_with_line): Prototype.
8563 (validate_pattern): Pass along the set for the dest, not a flag.
8564 Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL.
8565 Check for PC/CC0 as sources.
8566 (nodes_identical): Check for children position match before
8567 allowing the combination.
8568
8569 * rtl.c (read_rtx): Track line number across \\\n.
8570
8571 Thu Oct 14 23:50:25 1999 Richard Henderson <rth@cygnus.com>
8572
8573 * mips.h (SPECIAL_MODE_PREDICATES): New.
8574 * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
8575 (movdi+1, movsi+1): Add output reload constraint.
8576 (casesi_internal): Likewise. Fix commentary.
8577 (return_internal): Use pmode_register_operand.
8578
8579 Thu Oct 14 23:19:34 1999 Richard Henderson <rth@cygnus.com>
8580
8581 * 1750a.md (movstrqi): Add missing output reload constraint.
8582 (call_value): Likewise.
8583 * a29k.md (cpxxx patterns): Add missing match_operator mode.
8584 (jmpfdec): Add missing inout reload constraint.
8585 * elxsi.md (addsi patterns): Add missing output reload constraint.
8586 (move from sp): Use @ alternates.
8587 (call_value): No constraint on output.
8588 * fr30.md (movsi_pop): Add missing output reload constraint.
8589 (movsf_constant_store): Likewise.
8590 (splits): Remove constraints.
8591 (subsi3): Add missing mode.
8592 * i370.md (cmpstrsi+1): Add missing output reload constraint.
8593 (call_value): Likewise.
8594 * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
8595 * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
8596 * m32r.md (movsicc_internal): Add output reload constraint.
8597 (movstrsi_internal): Add inout reload constraints.
8598 * m88k.h (reg_names): Don't declare.
8599 (SPECIAL_MODE_PREDICATES): New.
8600 * m88k.md (*): Use register_operand not reg_or_0_operand
8601 on destinations.
8602 * mn10200.h (PREDICATE_CODES): New.
8603 * ns32k.md (ffs pattern): Add output reload constraint.
8604 * pdp11.md (sob pattern): Add inout reload constraint.
8605 * sh.md (splits): Remove constraints.
8606 (indirect_jump_scratch, fpu_switch): Add output reload constraint.
8607 * v850.md (pattern_is_ok_for_epilogue): Likewise.
8608 * vax.md (jgequ pattern): Add inout reload constraint.
8609
8610 Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com)
8611
8612 * configure.in (djgpp): Revert previous patch.
8613 * configure: Rebuit.
8614 * config/i386/djgpp.h: Revert previous patch.
8615
8616 Fri Oct 15 00:00:24 1999 Loren J. Rittle <ljrittle@acm.org>
8617
8618 * fixinc/inclhack.def: Restore patch lost during last merge of
8619 "no_bogosity" branch.
8620 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
8621
8622 Thu Oct 14 23:57:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
8623
8624 * fixincludes: Add a HPUX 11 fix for inttypes.h.
8625 * fixinc/inclhack.def: Same.
8626 * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
8627
8628 Thu Oct 14 22:51:55 1999 Richard Henderson <rth@cygnus.com>
8629
8630 * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
8631 as the base of a PLUS.
8632
8633 Fri Oct 15 18:36:07 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8634
8635 * config/c4x/c4x.md: Define mode for remaining unspec operators.
8636 * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand.
8637
8638 Thu Oct 14 22:14:23 1999 Richard Henderson <rth@cygnus.com>
8639
8640 * pa.md (post_stw+1): Use pmode_register_operand.
8641 (dcacheflush, icacheflush): Likewise.
8642
8643 * i386.md (movstricthi_1): Allow r/r.
8644
8645 Thu Oct 14 19:44:08 1999 Jan Hubicka <hubicka@freesoft.cz>
8646
8647 * fold-const.c (fold): Convert (or (not arg0) (not arg1))
8648 to (not (and (arg0) (arg1))). Similary for and.
8649
8650 * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
8651 fallthrough to associate code.
8652 Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
8653 bits in common.
8654
8655 * combine.c (simplify_logical): Convert XOR to IOR if operands have
8656 no bits in common; remove XOR to ROTATE conversion.
8657
8658 Fri Oct 15 17:40:11 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8659
8660 * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
8661
8662 Fri Oct 15 17:27:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8663
8664 * config/c4x/c4x.c (dst_operand): New.
8665 (PREDICATE_CODES): Update.
8666 * config/c4x/c4x.h (dst_operand): Declare it.
8667 * config/c4x/c4x.md: Define mode for each unspec usage.
8668 (move patterns): Use dst_operand predicate instead of src_operand.
8669 (movqi_update, movqf_update): Delete.
8670
8671 Thu Oct 14 18:48:54 1999 Richard Henderson <rth@cygnus.com>
8672
8673 * recog.c (pmode_register_operand): New.
8674 * recog.h: Declare it.
8675 * genrecog.c (pred_codes): Likewise.
8676 (special_mode_pred_table): Likewise.
8677 (validate_pattern): Don't warn no mode for address_operand.
8678
8679 * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
8680 if the operand is not insn-like.
8681
8682 Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com)
8683 Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
8684
8685 * fold-const.c (fold): Handle more simplifications allowed by IEEE.
8686
8687 Thu Oct 14 17:30:14 1999 Richard Henderson <rth@cygnus.com>
8688
8689 * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
8690 instead of general_operand in a SET_DEST. Use const_double_operand
8691 instead of an explicit test against CONST_DOUBLE.
8692 (movsf_const_lo): Add missing register mode.
8693 (goto_handler_and_restore): Add auxiliary test for Pmode.
8694 (flush): Adjust to use address_operand.
8695 (return_sf_no_fpu): Add missing output constraint.
8696
8697 Thu Oct 14 17:21:26 1999 Richard Henderson <rth@cygnus.com>
8698
8699 * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
8700 for call return value.
8701 (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
8702
8703 Thu Oct 14 13:54:25 1999 Jason Merrill <jason@yorick.cygnus.com>
8704
8705 * toplev.c (main): Only warn about options for other languages.
8706 * collect2.c (main): Pass -w to sub-gcc.
8707
8708 Thu Oct 14 16:27:50 1999 Richard Henderson <rth@cygnus.com>
8709
8710 * flow.c (propagate_block): Add call-clobbered registers to
8711 significant too.
8712
8713 * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
8714 zapping mem_set_list.
8715 (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
8716 (mark_set_1, mark_used_regs): Likewise.
8717
8718 Thu Oct 14 10:51:49 1999 Richard Henderson <rth@cygnus.com>
8719
8720 * m68k.md (zero_extendsidi2): Add missing output reload constraint.
8721
8722 Wed Oct 13 00:09:18 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
8723
8724 * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
8725 -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
8726 options. Also add a new item "C-only Warning Options" to the
8727 option summary.
8728
8729 1999-10-14 Gavin Romig-Koch <gavin@cygnus.com>
8730
8731 * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
8732 from multiple calls.
8733
8734 Thu Oct 14 04:54:54 1999 Richard Henderson <rth@cygnus.com>
8735
8736 * i386.md (call value patterns): Move to the end of the file.
8737 (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
8738
8739 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
8740
8741 * configure.in (djgpp configuration): Define extra_objects..
8742 * configure: Rebuilt.
8743 * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
8744 (DTORS_SECTION_ASM_OP): Define.
8745 (INIT_SECTION_ASM_OP): Define.
8746 (FINI_SECTION_ASM_OP): Define.
8747 (DATA_SECTION_ASM_OP): Define.
8748 (TEXT_SECTION_ASM_OP): Define.
8749 (EH_FRAME_SECTION_ASM_OP): Define.
8750 (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
8751 (STARTFILE_SPEC): Add crtbegin.o.
8752 (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
8753 to here from LINK_COMMAND_SPEC.
8754 (DO_GLOBAL_CTORS_BODY): Define.
8755 (CRTSTUFF_USE_FINI_SECTION): Define
8756 (HAS_INIT_SECTION): Delete.
8757
8758 Thu Oct 14 05:08:14 1999 Andreas Schwab <schwab@suse.de>
8759
8760 * Makefile.in (all.cross): Depend on xcpp$(exeext).
8761
8762 Thu Oct 14 04:00:40 1999 Richard Henderson <rth@cygnus.com>
8763
8764 * pa.h (PREDICATE_CODES): New.
8765
8766 * genrecog.c (validate_pattern): Condense the destination
8767 non-lvalue message.
8768
8769 Thu Oct 14 03:23:08 1999 Richard Henderson <rth@cygnus.com>
8770
8771 * alpha.md (call-1): Supply missing mode for operator.
8772 (*): Add missing output reload constraints. Remove constraints
8773 from define_splits.
8774
8775 * i386.h (SPECIAL_MODE_PREDICATES): New.
8776 * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
8777 (movqi_1, movdi_1, movdi_2, some splits): Likewise.
8778 (addsi_lea_3): Add missing mode for op 3.
8779 (prologue_set_got, prologue_get_pc): Add missing modes.
8780 (*) Add missing output reload constraints.
8781
8782 Thu Oct 14 03:59:57 1999 Stephane Carrez <stcarrez@worldnet.fr>
8783
8784 * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
8785 check for member bit-size overflow and use var_size if it occurs.
8786 (layout_record): Use bitsize_int() to define the type size in bits.
8787 Likewise for computation and assignment to DECL_FIELD_BITPOS.
8788 (layout_decl): Likewise when assigning to DECL_SIZE.
8789
8790 Thu Oct 14 02:57:05 1999 Richard Henderson <rth@cygnus.com>
8791
8792 * genrecog.c (validate_pattern): Typo last change. Verify
8793 that output operands have output reloads.
8794
8795 Thu Oct 14 01:49:54 1999 Richard Henderson <rth@cygnus.com>
8796
8797 * genrecog.c (special_mode_pred_table): New.
8798 (NUM_SPECIAL_MODE_PREDS): New.
8799 (find_operand): New.
8800 (validate_pattern): New argument `insn'. Warn for assignment to
8801 any predicate accepting non-lvalues. Conditionaly warn for
8802 match_operand without a mode. Try much harder to match source
8803 and destination modes on a set.
8804 * tm.texi (SPECIAL_MODE_PREDICATES): Document.
8805
8806 Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com)
8807
8808 * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
8809
8810 Thu Oct 14 02:18:19 1999 Marc Espie <espie@cvs.openbsd.org>
8811
8812 * combine.c (simplify_logical): Recognize xor pattern that encodes
8813 rotation.
8814
8815 Wed Oct 13 23:23:45 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
8816
8817 * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
8818 alignment.
8819
8820 Wed Oct 13 21:47:18 1999 Richard Henderson <rth@cygnus.com>
8821
8822 * ggc-page.c (MAP_FAILED): Provide default.
8823
8824 Wed Oct 13 21:41:59 1999 Richard Henderson <rth@cygnus.com>
8825
8826 * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
8827 * sparc.h (PREDICATE_CODES): Update.
8828
8829 Wed Oct 13 21:18:17 1999 Richard Henderson <rth@cygnus.com>
8830
8831 * alpha.c (some_ni_operand): New.
8832 * alpha-protos.h: Declare it.
8833 * alpha.h (PREDICATE_CODES): Update.
8834 * alpha.md (sXaddq reload insns): Use some_ni_operand
8835 for SET_DEST instead of some_operand.
8836
8837 Wed Oct 13 21:04:45 1999 Richard Henderson <rth@cygnus.com>
8838 Jim Wilson <wilson@cygnus.com>
8839
8840 * genrecog.c (maybe_both_true_2): Don't compare modes of
8841 two DT_pred tests.
8842 (process_tree): Elide peephole2_insns. Invoke simplify_tests
8843 after find_afterward.
8844 (debug_decision_1): Dump next and afterward codes.
8845
8846 Wed Oct 13 20:35:16 1999 Richard Henderson <rth@cygnus.com>
8847
8848 * rtl.c (dump_and_abort): Remove.
8849 (fatal_with_file_and_line): New.
8850 (fatal_expected_char): New.
8851 (read_rtx_lineno, read_rtx_filename): New.
8852 (read_skip_spaces): Track line number.
8853 (read_name): Use fatal_with_file_and_line.
8854 (read_rtx): Use fatal_expected_char. Track line number.
8855 * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
8856
8857 * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
8858 if it isn't a CODE_LABEL.
8859
8860 * genattr.c (main): Set read_rtx_filename.
8861 * genattrtab.c (main): Likewise.
8862 * gencodes.c (main): Likewise.
8863 * genconfig.c (main): Likewise.
8864 * genemit.c (main): Likewise.
8865 * genextract.c (main): Likewise.
8866 * genflags.c (main): Likewise.
8867 * genopinit.c (main): Likewise.
8868 * genoutput.c (main): Likewise.
8869 * genpeep.c (main): Likewise.
8870
8871 * genrecog.c (decision_test.u.insn): Add `lineno'.
8872 (pattern_lineno, error_count): New variables.
8873 (message_with_line): New.
8874 (add_to_sequence): Break out checking code to ...
8875 (validate_pattern): ... here. Detect SET_DEST matching CONST_INT.
8876 (merge_insn): Use message_with_line.
8877 (make_insn_sequence): Use validate_pattern. Record insn lineno.
8878 (main): Set read_rtx_filename, pattern_lineno. Exit early on error.
8879
8880 Wed Oct 13 22:01:35 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
8881
8882 * expr.c (store_constructor): Clear union if constructor is empty.
8883
8884 Wed Oct 13 15:19:04 1999 Jim Wilson <wilson@cygnus.com>
8885
8886 * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
8887 Add !endian checks. Change %{...} to %(...).
8888
8889 Wed Oct 13 13:30:34 1999 Richard Henderson <rth@cygnus.com>
8890
8891 * i386.md (*addsi3_cc): Renamed from addcsi3.
8892 (*addsi3_carry): Renamed from addxsi3.
8893 (*subsi3_cc): Renamed from subcsi3.
8894 (*subsi3_carry): Renamed from subxsi3.
8895 (*xorqi_cc_1): Renamed from xorcqi_1.
8896 (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
8897 * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
8898
8899 Wed Oct 13 13:10:46 1999 Richard Henderson <rth@cygnus.com>
8900
8901 * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
8902 (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
8903
8904 1999-10-13 Brendan Kehoe <brendan@cygnus.com>
8905
8906 * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
8907 climb up the chain of insns.
8908
8909 Wed Oct 13 10:20:58 1999 Richard Henderson <rth@cygnus.com>
8910
8911 * genrecog.c (write_subroutine): Careful for null trees.
8912 (process_tree): Don't elide empty functions.
8913
8914 Wed Oct 13 10:07:54 1999 Richard Henderson <rth@cygnus.com>
8915
8916 * Makefile.in (genrtl.o): Depend on ggc.h.
8917 * configure.in (valloc): Probe for it.
8918 (with-gc): Use ggc-page if valloc present.
8919 * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
8920 (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
8921 (ggc_alloc_string): Moved from ggc-page.c.
8922 * ggc-none.c (ggc_alloc_obj): New.
8923 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
8924 * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
8925 (struct globals): Likewise for dev_zero_fd.
8926 (init_ggc): Likewise for it's initialization.
8927 (ggc_allocated_p): Move careful dereference from ...
8928 (ggc_lookup_page_table): ... here. Delete.
8929 (lookup_page_table_entry): Don't use ggc_lookup_page_table.
8930 (alloc_anon): Use valloc if no mmap.
8931 (release_pages): Use free if using valloc.
8932 (ggc_alloc_obj): Renamed from alloc_obj.
8933 (ggc_set_mark): Renamed from mark_obj.
8934 (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
8935 (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
8936 (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
8937 (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
8938 (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
8939 (ggc_collect): Use fp printing instead of our own rounding.
8940 * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
8941 (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
8942 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
8943 (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
8944 (struct ggc_string, struct ggc_any): Delete.
8945 (offsetof): Provide default definition.
8946 (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
8947 (PTR_KEY): New.
8948 (struct ggc_mem): New, from corpse of ggc_any.
8949 (struct ggc_status): Delete.
8950 (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
8951 (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
8952 (n_strings_collected, n_anys_collected): Delete.
8953 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
8954 (ggc_alloc_string, ggc_alloc): Delete.
8955 (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
8956 (ggc_free_string, ggc_free_any): Delete.
8957 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
8958 (ggc_compare_addresses, ggc_mark_string): Delete.
8959 (ggc_mark_string_if_gcable, ggc_mark): Delete.
8960 (search_data): Delete.
8961 (struct globals): New.
8962 (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
8963 (tree_insert, tree_lookup): New.
8964 (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
8965 (clear_marks, sweep_objs): New.
8966 (ggc_collect): Gut. Use clear_marks, sweep_objs.
8967 (init_ggc): Set allocated_last_gc.
8968 (ggc_push_context): Gut. Use G.context.
8969 (ggc_pop_context): Likewise.
8970 (ggc_pop_context_1): New.
8971 (debug_ggc_tree): New.
8972 (debug_ggc_balance, tally_leaves): New.
8973 * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
8974 (ggc_mark_string_if_gcable): Remove decl.
8975 (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
8976 (ggc_mark_rtvec_children): New.
8977 (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
8978 (ggc_mark_if_gcable): New decl.
8979 (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
8980 (ggc_alloc_tree, ggc_alloc): Likewise.
8981 (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
8982 (ggc_alloc_obj): New decl.
8983 (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
8984 (ggc_alloc_tree, ggc_alloc): Likewise.
8985 (ggc_set_mark): New decl.
8986 * rtl.h (struct rtx_def): Remove gc_mark.
8987 (struct rtvec_def): Likewise.
8988 * tree.h (struct tree_common): Likewise.
8989
8990 Wed Oct 13 01:44:29 1999 Carol LePage <carolo@hal.com>
8991
8992 * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
8993 float_format and thread_file definitions.
8994 * configure: Rebuilt.
8995
8996 Wed Oct 13 09:25:03 1999 Niels Möller <nisse@lysator.liu.se>
8997
8998 * extend.texi (Function Names): Document types of function names.
8999
9000 Wed Oct 13 00:45:04 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9001
9002 * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with
9003 an earlyclobbered output conflict with RELOAD_INPUT reloads.
9004
9005 Tue Oct 12 23:28:28 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9006
9007 * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
9008
9009 Tue Oct 12 23:19:32 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9010
9011 * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
9012
9013 Tue Oct 12 17:09:38 1999 David Edelsohn <edelsohn@gnu.org>
9014
9015 * collect2.c (main): Do prelimnary link on AIX if rflag.
9016
9017 Tue Oct 12 09:45:19 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
9018
9019 * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
9020 __CTOR_LIST__ in opposite order, which is the correct order for sorted
9021 constructors.
9022 (__do_global_dtors): similarly for __DTOR_LIST__.
9023
9024 Fri Oct 8 19:46:03 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
9025 Diego Novillo <dnovillo@cygnus.com>
9026
9027 * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
9028 FPUL_REGS.
9029
9030 Tue Oct 12 07:38:41 1999 Bruce Korb <autogen@linuxbox.com>
9031
9032 * fixincl/*: Merged "no_bogosity" branch
9033 * fixincl/fixlib.h: protect against doubly defining t_bool
9034 * fixincl/server.h: protect against doubly defining t_bool
9035
9036 Mon Oct 11 20:18:41 1999 Jim Wilson <wilson@cygnus.com>
9037
9038 * genoutput.c: Include toplev.h.
9039
9040 Mon Oct 11 18:56:14 1999 Jim Wilson <wilson@cygnus.com>
9041
9042 * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
9043 Undef.
9044 * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
9045 * configure: Regenerate.
9046
9047 Mon Oct 11 16:07:49 1999 Richard Henderson <rth@cygnus.com>
9048
9049 * gcse.c (delete_null_pointer_checks): Returns void.
9050
9051 Mon Oct 11 20:31:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9052
9053 * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
9054 * emit-rtl.c (copy_insn_1): Likewise.
9055
9056 Mon Oct 11 13:29:06 1999 Geoffrey Keating <geoffk@cygnus.com>
9057
9058 * config/mips/mips.c (mips_build_va_list): Correct
9059 TREE_CHAIN setting when hard-float.
9060 (mips_va_start): Use corrected setting.
9061 (mips_va_arg): Likewise. Also pass a tree to build of
9062 POSTINCREMENT_EXPR rather than a naked 'int'.
9063
9064 Sun Oct 10 18:27:27 1999 Mark Mitchell <mark@codesourcery.com>
9065
9066 * ggc.h (ggc_push_context): Fix comment.
9067 (ggc_pop_context): Likewise.
9068 (mark_string_if_gcable): Likewise.
9069 * ggc-common.c (ggc_mark_rtx_children): Use
9070 ggc_mark_string_if_gcable.
9071 * ggc-page.c (ggc_lookup_page_table): New function.
9072 (ggc_allocated_p): Likewise.
9073 (mark_obj): Fix formatting.
9074 (ggc_mark_string_if_gcable): New function.
9075 * ggc-simple.c (ggc_allocated_strings): New variable.
9076 (ggc_strings_used): Likewise.
9077 (ggc_compare_addresses): New function.
9078 (ggc_pop_context): Pop the `any' memory too.
9079 (ggc_mark_string_if_gcable): New function.
9080 (ggc_collect): Initialize and tear down ggc_allocated_strings.
9081
9082 Sun Oct 10 20:05:21 1999 David Edelsohn <edelsohn@gnu.org>
9083
9084 * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
9085 (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
9086 * rs6000.c (expand_block_move): Match movstrsi_?reg register
9087 changes.
9088
9089 Sun Oct 10 16:37:01 1999 Richard Henderson <rth@cygnus.com>
9090
9091 * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
9092 (sched_reg_live_length, sched_reg_basic_block): Delete.
9093 (current_block_num, bb_live_regs, old_live_regs): Delete.
9094 (dead_notes, struct sometimes): Delete.
9095 (sched_note_set, birthing_insn_p): Delete.
9096 (adjust_priority): Gut useless reg lifetime code.
9097 (create_reg_dead_note, attach_deaths): Delete.
9098 (attach_deaths_insn, new_sometimes_live): Delete.
9099 (finish_sometimes_live): Delete.
9100 (find_pre_sched_live, find_post_sched_live): Delete.
9101 (update_reg_usage): Delete.
9102 (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
9103 (schedule_insns): Delete reg lifetime code.
9104 (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
9105 (unlink_other_notes): Adjust REG_NOTE commentary.
9106 (reemit_notes): Use REG_SAVE_NOTE.
9107 (schedule_block): Likewise.
9108 (schedule_region): Allocate bitmap of blocks in region. Use
9109 count_or_remove_death_notes. Use update_life_info.
9110
9111 * rtl.h (REG_SAVE_NOTE): New.
9112 * rtl.c (reg_note_name): Update.
9113
9114 Sun Oct 10 16:14:16 1999 Richard Henderson <rth@cygnus.com>
9115
9116 * combine.c (refresh_blocks, need_refresh): New.
9117 (combine_instructions): Allocate refresh_blocks. Invoke
9118 update_life_info if needed.
9119 (distribute_notes): Mark refresh_blocks instead of installing
9120 USE insns.
9121 * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
9122 * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
9123
9124 * Makefile.in (recog.o): Depend on basic-block.h.
9125
9126 Sun Oct 10 12:03:21 1999 Richard Henderson <rth@cygnus.com>
9127
9128 * genrecog.c (add_to_sequence): Thinko last change: delete
9129 shadowing allow_const_int variable.
9130
9131 Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9132
9133 * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
9134 __GNUC__ and __GNUC_MINOR__.
9135
9136 * gansidecl.h: Likewise.
9137
9138 * rtl.c: Likewise.
9139
9140 * rtl.h: Likewise.
9141
9142 * toplev.h: Likewise.
9143
9144 * tree.c: Likewise.
9145
9146 * tree.h: Likewise.
9147
9148 * varray.c: Likewise.
9149
9150 * varray.h: Likewise.
9151
9152 Sun Oct 10 13:28:48 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9153
9154 * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
9155 use one before a jump table.
9156
9157 * rtl.def (ADDRESS): Change documentation to match reality.
9158 * md.texi: Don't document it.
9159 * gmicro.md (load address pattern): Use 'p' constraint, delete use
9160 of ADDRESS rtx.
9161
9162 * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
9163
9164 Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
9165
9166 * genrecog.c (add_to_sequence): Move allow_const_int test outside
9167 known predicate block; default allow_const_int true.
9168 (debug_decision_list): New.
9169
9170 Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
9171
9172 * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
9173
9174 Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com)
9175
9176 * gcse.c (gcse_main): Avoid global optimizations if we have a
9177 large number of basic blocks and the ratio of edges to blocks
9178 is high.
9179 (delete_null_pointer_checks): Likewise.
9180
9181 Sat Oct 9 23:16:01 1999 Ken Raeburn <raeburn@mit.edu>
9182
9183 * c-common.c (check_format_info): Warn if format string isn't a
9184 string literal.
9185
9186 Sat Oct 9 23:04:02 1999 Jonathan Larmour <jlarmour@cygnus.co.uk>
9187
9188 * configure.in (arm*-*-*): Don't let autoconf remove brackets
9189 * configure: regenerate
9190
9191 Sat Oct 9 13:15:53 1999 Richard Henderson <rth@cygnus.com>
9192
9193 * alpha.md (extendsidi2): Turn into a splitter. Allow f/f.
9194 If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern.
9195 (peepholes): Re-enable.
9196
9197 Sat Oct 9 12:18:16 1999 Richard Henderson <rth@cygnus.com>
9198
9199 * Makefile.in (flow.o): Depend on TREE_H.
9200 * basic-block.h (REG_SET_EQUAL_P): New.
9201 (XOR_REG_SET): New.
9202 (n_edges): Declare.
9203 (free_regset_vector): Remove declaration.
9204 (flow_delete_insn_chain): Declare.
9205 (enum update_life_extent): New.
9206 (update_life_info, count_or_remove_death_notes): Declare.
9207 * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
9208 Verify register live at bb->global_live_at_start before adding USE.
9209 * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
9210 (CLEAN_ALLOCA): New.
9211 (n_edges): New.
9212 (PROP_*): New flags.
9213 (find_basic_blocks_1): Use alloc_EXPR_LIST.
9214 (clear_edges): Zero n_edges.
9215 (make_edge): Increment n_edges.
9216 (split_edge): Don't allocate bb->local_set. Increment n_edges.
9217 (flow_delete_insn_chain): Export.
9218 (delete_block): Decrement n_edges.
9219 (merge_blocks_nomove): Likewise.
9220 (life_analysis): Give life_analysis_1 PROP flags.
9221 (verify_wide_reg_1, verify_wide_reg): New.
9222 (verify_local_live_at_start): New.
9223 (update_life_info): Rewrite to call into propogate_block.
9224 (mark_reg): New.
9225 (mark_regs_live_at_end): After reload, if epilogue as rtl,
9226 always mark stack pointer. Conditionally mark PIC register.
9227 After reload, mark call-saved registers, return regsiters.
9228 (life_analysis_1): Accept PROP flags not remove_dead_code.
9229 Call mark_regs_live_at_end before zeroing regs_ever_live.
9230 Use calculate_global_regs_live. Copy global_live_at_end before
9231 calling final propagate_block. Zero reg_next_use on exit.
9232 (calculate_global_regs_live): New.
9233 (allocate_bb_life_data): Don't allocate bb->local_set.
9234 (init_regset_vector, free_regset_vector): Remove.
9235 (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
9236 Test flags before every operation. Warn if prologue/epilogue insn
9237 would have been deleted.
9238 (mark_set_regs, mark_set_1): Accept and use FLAGS.
9239 Use alloc_EXPR_LIST.
9240 (mark_used_regs): Accept and use FLAGS, not FINAL.
9241 Remove special handling for RETURN.
9242 (try_pre_increment): Use alloc_EXPR_LIST.
9243 (dump_flow_info): Dump n_edges.
9244 (unlink_insn_chain, split_hard_reg_notes): Remove.
9245 (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
9246 (find_insn_with_note, new_insn_dead_notes): Remove.
9247 (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
9248 (maybe_remove_dead_notes, prepend_reg_notes): Remove.
9249 (replace_insns): Remove.
9250 (count_or_remove_death_notes): New.
9251 (verify_flow_info): Abort on error after all checks.
9252 (remove_edge): Decrement n_edges.
9253 (remove_fake_edges): Tweek format.
9254 * haifa-sched.c (schedule_insns): Use split_all_insns.
9255 * output.h (update_life_info): Remove declaration.
9256 * recog.c (split_all_insns): From the corpse of split_block_insns,
9257 do the whole function block by block. Use update_life_info.
9258 (recog_last_allowed_insn): New.
9259 (recog_next_insn): Mind it.
9260 (peephole2_optimize): Set it. Walk backwards through blocks.
9261 Use update_life_info.
9262 * rtl.h (update_flow_info, replace_insns): Remove declarations.
9263 (split_all_insns): Declare.
9264 * toplev.c (rest_of_compilation): Thread prologue before flow2.
9265 Use split_all_insns.
9266
9267 * i386.md (or -1 peep2s): Disable.
9268
9269 Fri Oct 8 17:49:08 1999 Richard Henderson <rth@cygnus.com>
9270
9271 * config/mips/mips.md (movstrsi+[123]) : Combine these into
9272 a single pattern. Scrap the 'd' versions as unnecessary.
9273
9274 * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
9275 tablejump_mips162,tablejump_internal4): The operands to a
9276 label_ref must be VOIDmode.
9277
9278 Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9279
9280 * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
9281
9282 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
9283
9284 * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
9285
9286 Fri Oct 8 11:58:34 1999 Richard Henderson <rth@cygnus.com>
9287
9288 * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
9289 cache every function if ggc_p.
9290
9291 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9292
9293 * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
9294 instead of copy_rtx. Accept sequences that contain asm statements.
9295 * emit-rtl.c (copy_insn_1, copy_insn): New functions.
9296 (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
9297 orig_asm_operands_vector, copy_asm_operands_vector,
9298 orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
9299 variables.
9300 * rtl.h (copy_insn, copy_insn_1): Declare.
9301
9302 Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9303
9304 * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
9305
9306 * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
9307 arguments to `current_file_function_operand'.
9308
9309 * genrecog.c: Include hard-reg-set.h and resource.h in the
9310 generated output file.
9311
9312 * real.c: Include tm_p.h.
9313
9314 Fri Oct 8 18:46:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9315
9316 * i386.md (prologue_allocate_stack): Add '=' constraint letter on
9317 output operand.
9318
9319 Thu Oct 7 23:06:50 1999 Richard Henderson <rth@cygnus.com>
9320
9321 * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
9322 before the fctiwz insn.
9323
9324 Thu Oct 7 22:53:00 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9325 Mark Mitchell <mark@codesourcery.com>
9326
9327 * tree.c (make_lang_type_fn): New funtion pointer.
9328 (make_lang_type): Call it.
9329 * tree.h (make_lang_type): Declare.
9330 (make_lang_type_fn): Likewise.
9331 * rs6000.c (rs6000_build_va_list): Use make_lang_type.
9332
9333 Thu Oct 7 00:36:17 1999 Diego Novillo <dnovillo@cygnus.com>
9334
9335 * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
9336 make sure that HIGH instructions are copied into BASE_REGS.
9337
9338 Thu Oct 7 17:02:34 1999 Jason Merrill <jason@yorick.cygnus.com>
9339
9340 * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
9341
9342 Thu Oct 7 17:01:58 1999 Greg McGary <gkm@gnu.org>
9343
9344 * c-decl.c (finish_struct): Use simpler method of
9345 removing elements of a singly-linked list.
9346
9347 Thu Oct 7 15:23:28 1999 Michael Meissner <meissner@cygnus.com>
9348
9349 * alpha.md (peephole2's): Comment out peephole2's that generate
9350 buggy code.
9351
9352 Thu Oct 7 12:00:53 1999 Richard Henderson <rth@cygnus.com>
9353
9354 * genrecog.c (add_to_sequence): Disable mode check for
9355 wildcard matches.
9356
9357 Thu Oct 7 20:14:16 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9358
9359 * ggc-simple.c (init_ggc): Set empty_string.
9360
9361 Thu Oct 7 01:13:15 1999 Richard Henderson <rth@cygnus.com>
9362
9363 * configure.in: Detect mmap. Add --with-gc=foo to select
9364 garbage collector; default to page if mmap available.
9365 * Makefile.in (GGC): Substitute.
9366
9367 Wed Oct 6 23:56:30 1999 Richard Henderson <rth@cygnus.com>
9368
9369 * c-decl.c (ggc_p): Enable.
9370
9371 Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9372
9373 * flow.c (verify_flow_info): Make it extern & unconditionally define.
9374
9375 1999-10-06 Brendan Kehoe <brendan@cygnus.com>
9376
9377 * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
9378 string for little-endian-data.
9379
9380 Wed Oct 6 16:10:35 1999 Michael Meissner <meissner@cygnus.com>
9381
9382 * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
9383 case somebody tries to compile --enable-checking code with gcc
9384 1.34 or such.
9385
9386 Wed Oct 6 12:22:50 1999 Richard Henderson <rth@cygnus.com>
9387
9388 * genrecog.c (add_to_sequence): Verify operand to label_ref is
9389 VOIDmode.
9390
9391 Wed Oct 6 10:21:15 1999 Richard Henderson <rth@cygnus.com>
9392
9393 * genconfig.c (main): Disable HAVE_conditional_arithmetic.
9394 * jump.c (jump_optimize_1): Document why.
9395
9396 Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9397
9398 * collect2.c (scan_prog_file, scan_libraries): Prototype function
9399 pointers and casts for `int_handler' and `quit_handler'.
9400
9401 * flow.c (verify_flow_info, split_hard_reg_notes,
9402 find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
9403 remove_edge, remove_fake_successors): Add static prototypes.
9404 (verify_flow_info): Wrap with macro ENABLE_CHECKING.
9405 (mark_set_1): Initialize variable `regno'.
9406 (unlink_insn_chain): Likewise for variable `curr'.
9407 (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
9408
9409 * loop.c (strength_reduce): Initialize variable
9410 `unrolled_insn_copies'.
9411 (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
9412 prototypes. Change these functions to take const PTR parameters
9413 to avoid prototype conflict when used as the comparson argument
9414 for qsort.
9415 (check_dbra_loop): Initialize variable `comparison_val'.
9416
9417 * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
9418 (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
9419 (find_valid_class): Initialize variable `best_class'.
9420 (find_reloads): Call memcpy, not bcopy.
9421
9422 * reload1.c (gen_mode_int, dump_needs): Add prototypes.
9423 (hard_reg_use_compare): Don't needlessly cast away const.
9424 (reload_reg_class_lower): Likewise.
9425 (choose_reload_regs): Initialize variable `regno'.
9426
9427 Tue Oct 5 16:34:12 1999 Paul Burchard <burchard@pobox.com>
9428
9429 * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
9430
9431 Tue Oct 5 16:14:40 1999 Michael Meissner <meissner@cygnus.com>
9432
9433 * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
9434 ({,d}discard): Add forward declarations. Declare parameter as
9435 unused.
9436 (main_without_main): Explicitly declare return type to be int.
9437 (memcpy): Properly declare.
9438
9439 * libgcc2.c (toplevel): If inhibit_libc is defined and not
9440 building the trampoline support, declare malloc, free, and
9441 atexit.
9442 (__clear_cache): Mark arguments as potentially unused.
9443
9444 * frame.c (toplevel): If inhibit_libc is defined, declare
9445 malloc and free.
9446
9447 Tue Oct 5 12:00:32 1999 Richard Henderson <rth@cygnus.com>
9448
9449 * flow.c (make_edge): Accept an optional 2D bitmap in which
9450 to cache edge existence. Update all callers.
9451 (make_label_edge, make_eh_edge): Pass through the edge cache.
9452 (make_edges): Provide the cache.
9453
9454 Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9455
9456 * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
9457 a char*.
9458 (local_mbtowc): Change the type of variable `i' from int to size_t.
9459
9460 * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
9461 (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
9462
9463 Tue Oct 5 11:34:52 1999 Michael Meissner <meissner@cygnus.com>
9464
9465 * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
9466 after other includes that define the appropriate types. Include
9467 tm_p.h for getting user prototypes.
9468 * ggc-callbacks.c (toplevel): Ditto.
9469 * ggc-none.c (toplevel): Ditto.
9470 * gcc-page.c (toplevel): Ditto.
9471 * ggc-simple.c (toplevel): Ditto.
9472
9473 Mon Oct 4 16:48:16 1999 Diego Novillo <dnovillo@cygnus.com>
9474 Jonathan Larmour <jlarmour@cygnus.co.uk>
9475
9476 * config/mips/mips.c (mips_move_2words): Split doubles if
9477 ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
9478
9479 Mon Oct 4 21:47:31 1999 Richard Henderson <rth@cygnus.com>
9480
9481 * genrecog.c (struct decision_test): New.
9482 (struct decision): Remove test-related members, sort the rest by size.
9483 (IS_SPLIT): Simplify.
9484 (new_decision, new_decision_test): New.
9485 (add_to_sequence): Use them. No special handling for args of
9486 non-MATCH codes.
9487 (maybe_both_true): Renamed from not_both_true; return sense changed.
9488 (maybe_both_true_1, maybe_both_true_2): New. Broken out
9489 of maybe_both_true and adjusted for decision_test.
9490 (position_merit): Remove.
9491 (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
9492 (merge_accept_insn): New, broken out of merge_trees.
9493 (merge_trees): Use them. No special case for c_test; no node
9494 splitting; use test type instead of position_merit.
9495 (factor_tests): New.
9496 (simplify_tests): New.
9497 (break_out_subroutines): Don't write code now.
9498 (find_afterward): New.
9499 (write_afterward, write_switch, write_cond): New.
9500 (write_action, is_unconditional): New.
9501 (write_node): New. Use them.
9502 (write_tree_1): Rewrite. Use the new functions above.
9503 (write_tree): Remove afterward processing.
9504 (write_subroutine): Simplify function variant emission.
9505 (write_subroutines): New.
9506 (same_codes, clear_codes): Remove.
9507 (same_modes, clear_modes): Remove.
9508 (write_header): New, broken out of main.
9509 (make_insn_sequence): Use new_decision and new_decision_test.
9510 (process_tree): New, broken out of main.
9511 (main): Adjust for merge_trees interface change.
9512 Don't #define operands in the output file.
9513 (record_insn_name): New, broken out of make_insn_sequence.
9514 (debug_decision_2, debug_decision_1, debug_decision_0): New.
9515 (debug_decision): New.
9516
9517 1999-10-04 21:58 -0700 Zack Weinberg <zack@bitmover.com>
9518
9519 * resource.c (find_free_register): Mark class_str argument const.
9520 * resource.h: Update prototype to match.
9521
9522 * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
9523 * i386.md: Give all anonymous insns names.
9524
9525 Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com)
9526
9527 * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
9528 blocks.
9529
9530 Mon Oct 4 21:01:39 1999 Richard Henderson <rth@cygnus.com>
9531
9532 * toplev.c (dbr_sched_time): Unconditional.
9533 (peephole2_time): New.
9534 (compile_file): Add pass numbers to all of the dump file suffixes.
9535 Dump peephole2_time. Don't dump times for non-applicable passes.
9536 (rest_of_compilation): Add pass numbers to dump file suffixes.
9537 Conditionalize calls to the scheduler.
9538 * invoke.texi: Update.
9539
9540 Mon Oct 4 20:25:13 1999 Anthony Green <green@cygnus.com>
9541
9542 * flow.c (make_edges): Fix insn iteration.
9543 (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
9544 (find_basic_blocks_1): Fix spelling mistake.
9545
9546 Mon Oct 4 16:56:11 1999 Richard Henderson <rth@cygnus.com>
9547
9548 * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
9549 always have side-effects. Use memset not bzero.
9550 (make_node): Likewise.
9551
9552 Mon Oct 4 16:22:20 1999 Mark Mitchell <mark@codesourcery.com>
9553
9554 * stmt.c (expand_anon_union_decl): When any of the elements of the
9555 union is addressable, so is the entire union.
9556
9557 Mon Oct 4 11:38:33 1999 Richard Henderson <rth@cygnus.com>
9558
9559 * sbitmap.c (sbitmap_ones): Don't set too many bits.
9560
9561 * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
9562 * bitmap.c (bitmap_operation): Return true iff TO changed.
9563 (bitmap_equal_p): New.
9564 (bitmap_bit_p): Tidy arithmetic.
9565 (debug_bitmap_file): Likewise.
9566
9567 Mon Oct 4 11:28:37 1999 Richard Henderson <rth@cygnus.com>
9568
9569 * toplev.c (rest_of_compilation): Turn on cse_not_expected
9570 before cse2 instead of after.
9571
9572 Mon Oct 4 09:55:17 1999 Stan Cox <scox@cygnus.com>
9573
9574 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
9575 register offsets.
9576
9577 Mon Oct 4 08:54:12 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
9578
9579 * cppinit.c (is_idchar initializer): Loosen tests to accept
9580 gcc 2.>6 and >2.
9581
9582 Mon Oct 4 02:31:20 1999 Mark Mitchell <mark@codesourcery.com>
9583
9584 * mips.md: Define conditional move patterns for floating point
9585 operands and DI mode conditions.
9586
9587 Mon Oct 4 02:12:41 1999 Mark Mitchell <mark@codesourcery.com>
9588
9589 * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
9590 always have side-effects.
9591
9592 Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com)
9593
9594 * mn10200.c (asm_file_start): Fix typo.
9595
9596 * cppinit.c (is_idchar initializer): Tighten tests for when
9597 to put the table into initialized memory.
9598
9599 * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
9600 not an array of rtunion.
9601 * gcc-page.c (ggc_alloc_rtvec): Similarly.
9602 * gcc-simple (ggc_free_rtvec): Similarly.
9603
9604 * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
9605 of rtunions.
9606
9607 * mbchar.h: Add missing #endif.
9608
9609 * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
9610 (FPBIT, DPBIT): Define.
9611
9612 Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9613
9614 * print-tree.c (print_node, indent_to): Remove redundant prototypes.
9615
9616 * profile.c (instrument_arcs, output_gcov_string,
9617 tablejump_entry_p): Add static prototypes.
9618 (output_gcov_string): Constify a char*.
9619
9620 * regmove.c (replacement_quality, fixup_match_2): Add static
9621 prototypes.
9622
9623 * resource.h (reg_dead_p): Add extern prototype.
9624
9625 * rtl.c (trim_filename): Add static prototype.
9626
9627 * scan-decls.c (skip_to_closing_brace): Likewise.
9628
9629 * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
9630 (expand_end_case): Initialize variable `range'.
9631 (emit_case_nodes): Remove unused prototype `rtx_fn'.
9632
9633 * varasm.c (asm_emit_uninitialised): Add static prototype.
9634 (asm_emit_uninitialised, assemble_variable): Mark parameter with
9635 ATTRIBUTE_UNUSED.
9636
9637 Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9638
9639 * cpplib.c (if_directive_nameo): Add static prototype.
9640
9641 * cse.c (cse_insn): Remove unused variable `p'.
9642
9643 * except.c (create_rethrow_ref, push_entry,
9644 receive_exception_label, new_eh_region_entry, find_func_region,
9645 clear_function_eh_region, process_nestinfo): Add static prototypes.
9646 (get_reg_for_handler): Hide definition.
9647 (process_nestinfo): Initialize variable `extra_handlers'.
9648
9649 * expr.h (expand_builtin_longjmp): Add extern prototype.
9650
9651 * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
9652
9653 * function.c (prepare_function_start): Likewise.
9654 (pop_function_context_from): Mark parameter `context' with
9655 ATTRIBUTE_UNUSED.
9656 (push_temp_slots_for_block, flush_addressof): Hide definition.
9657
9658 * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
9659 solve_program_flow_graph, calculate_branch_probs,
9660 function_summary, main, fancy_abort): Add prototypes.
9661
9662 * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
9663 (add_hash): Constify a char*.
9664
9665 * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
9666 ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
9667 ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
9668
9669 * integrate.c (expand_inline_function_eh_labelmap): Likewise.
9670
9671 * lists.c (free_list, zap_lists): Likewise.
9672
9673 Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9674
9675 * alias.c (nonlocal_reference_p): Add static prototype.
9676
9677 * bitmap.c (bitmap_element_allocate): Prototype args in function
9678 pointer cast.
9679
9680 * builtins.c (stabilize_va_list): Add static prototype.
9681 (expand_builtin_va_arg): Constify a char*.
9682
9683 * c-lex.c (getch, put_back, extend_token_buffer_to,
9684 read_line_number, token_getch, token_put_back): Add static
9685 prototypes.
9686
9687 * c-parse.gperf (hash, is_reserved_word): Likewise.
9688
9689 * cccp.c (is_dir_separator): Likewise.
9690
9691 Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9692
9693 * graph.h: New file to prototype functions exported by graph.c.
9694
9695 * Makefile.in (graph.o, toplev.o): Depend on graph.h.
9696
9697 * graph.c: Include graph.h.
9698
9699 * toplev.c: Likewise. Remove redundant prototypes.
9700
9701 Sat Oct 2 11:28:33 1999 Krister Walfridsson <cato@df.lth.se>
9702
9703 * invoke.texi: Removed duplicated description for -Q.
9704
9705 Sat Oct 2 11:16:00 1999 Jim Kingdon <http://developer.redhat.com>
9706
9707 * extend.texi: Grammar fix in __extension__ text.
9708
9709 Sat Oct 2 11:06:31 1999 Richard Henderson <rth@cygnus.com>
9710
9711 * md.texi (define_peephole2): New section.
9712
9713 Sat Oct 2 10:57:56 1999 Jan Hubicka <hubicka@freesoft.cz>
9714
9715 * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
9716 (mov $-1 to or peepholer): Enable for pentium when optimizing for
9717 speed.
9718
9719 Sat Oct 2 10:55:25 1999 Jan Hubicka <hubicka@freesoft.cz>
9720
9721 * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
9722
9723 Sat Oct 2 10:53:22 1999 Jan Hubicka <hubicka@freesoft.cz>
9724
9725 * i386.md (ffs expander): Emit Pentium friendly code for
9726 TARGET_PENTIUM.
9727
9728 Sat Oct 2 02:48:21 1999 Mark P. Mitchell <mark@codesourcery.com>
9729
9730 * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
9731 for non-trees.
9732 (build1): Likewise.
9733
9734 Fri Oct 1 18:01:11 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9735
9736 * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
9737
9738 Fri Oct 1 12:42:53 1999 Andreas Schwab <schwab@suse.de>
9739
9740 * config/m68k/m68k.c (use_return_insn): Return false if the pic
9741 register is in use.
9742
9743 Fri Oct 1 10:56:06 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9744
9745 * md.texi (No Constraints): Delete section.
9746 * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
9747 * final.c (final_scan_insn): We always have register constraints.
9748 * genattrtab.c: Don't include "insn-config.h".
9749 (write_attr_case): We always have register constraints.
9750 * genconfig.c (register_constraint_flag): Delete.
9751 (walk_insn_part): Don't check whether we have register constraints.
9752 (main): Don't write out "#define REGISTER_CONSTRAINTS".
9753 * genoutput.c (have_constraints): Delete.
9754 (main): Don't set it.
9755 (output_operand_data): We always have constraints.
9756 (scan_operands): Likewise.
9757 (compare_operands): Likewise.
9758 * local-alloc.c (block_alloc): We always have constraints.
9759 (requires_inout): Always compile this function.
9760 * recog.c (extract_insn): We always have constraints.
9761 (constrain_operands, reg_fits_class_p): Always compile these
9762 functions.
9763 * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
9764 fields.
9765 (struct insn_operand_data): Likewise.
9766 * regclass.c (regclass): We always have constraints.
9767 (record_reg_classes, copy_cost, record_address_regs,
9768 auto_inc_dec_reg_p): Always compile these functions.
9769 * regmove.c (regmove_optimize): We always have constraints.
9770 * reload.c (find_reloads): Likewise.
9771 * reload1.c (reload): Likewise.
9772 (reload_cse_simplify_operands): Likewise.
9773 * i860.c (output_delay_insn): Likewise.
9774
9775 Thu Sep 30 23:04:41 1999 Mark P. Mitchell <mark@codesourcery.com>
9776
9777 * iris6.h (BUILD_VA_LIST_TYPE): Define.
9778
9779 Thu Sep 30 18:44:50 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
9780
9781 * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
9782 for the va_list record.
9783
9784 Thu Sep 30 18:34:54 1999 Jan Hubicka <hubicka@freesoft.cz>
9785
9786 * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
9787 prologues.
9788
9789 Thu Sep 30 18:31:36 1999 Jan Hubicka <hubicka@freesoft.cz>
9790
9791 * alias.c: Include insn-flags.h.
9792 * Makefile.in (alias.o): Update.
9793
9794 Thu Sep 30 18:21:30 1999 Jan Hubicka <hubicka@freesoft.cz>
9795
9796 * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
9797 to LTU and GEU. Handle more cases using sbb.
9798
9799 Thu Sep 30 18:18:39 1999 Jan Hubicka <hubicka@freesoft.cz>
9800
9801 * i386.md (truncatexfdf splitters): Do not use subreg.
9802 (fop XFmode patterns): Fix mode in operand testing.
9803
9804 Thu Sep 30 18:04:13 1999 Richard Henderson <rth@cygnus.com>
9805
9806 * jump.c (jump_optimize_1): Amend last change to test only the
9807 form of the operand, not the insn.
9808
9809 * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
9810 not register_operand to determine when B may need preloading.
9811
9812 Thu Sep 30 17:39:16 1999 Richard Henderson <rth@cygnus.com>
9813
9814 * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
9815 (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
9816 (call-value patterns): Move to end of file.
9817 (*): Remove mode from label_ref in (pc) context.
9818 (movstrqi): Use memory not general_operand for BLKmode operands.
9819 (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
9820 to register_operand operands.
9821 (peep2 patterns): Convert from commented-out peephole patterns.
9822
9823 Thu Sep 30 14:39:17 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9824
9825 * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
9826 to BUILT_IN_INIT_DWARF_REG_SIZES.
9827 * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
9828 Renamed from BUILT_IN_DWARF_REG_SIZE; call
9829 expand_builtin_init_dwarf_reg_sizes.
9830 * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
9831 with __builtin_init_dwarf_reg_size_table.
9832 * dwarf2out.c (struct reg_size_range): Delete.
9833 (expand_builtin_init_dwarf_reg_sizes): New function.
9834 (expand_builtin_dwarf_reg_size): Delete.
9835 * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
9836 (expand_builtin_dwarf_reg_size): Don't declare.
9837 * libgcc2.c (dwarf_reg_size_table_initialized): New.
9838 (dwarf_reg_size_table): New.
9839 (init_reg_size_table): New function.
9840 (copy_reg): Use dwarf_reg_size_table.
9841 (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
9842 before use.
9843
9844 Thu Sep 30 05:40:34 1999 Richard Earnshaw <rearnsha@arm.com>
9845
9846 * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
9847 Correctly build argument list to constructor and destructor functions.
9848
9849 Thu Sep 30 00:13:27 1999 Dirk Zoller <duz@rtsffm.com>
9850
9851 * c-tree.h (warn_float_equal): Declare.
9852 * c-decl.c (warn_float_equal): Define.
9853 (c_decode_option): Recognize -W[no-]float-equal.
9854 * c-typeck.c (build_binary_op): Conditionally warn
9855 about equality tests of floating point types.
9856 * toplev.c (documented_lan_options): Add -W[no-]float-equal.
9857 * invoke.texi: Add docs for -Wfloat-equal warning.
9858
9859 Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com)
9860
9861 * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
9862 generating RTL directly.
9863 * mips.h (INIT_TARGET_OPTABS): Likewise.
9864 * mn10200.h (INIT_TARGET_OPTABS): Likewise.
9865
9866 * expr.h (init_mov_optab): Delete declaration
9867
9868 * h8300.c (WORD_REG_USED): Update to avoid useless register
9869 saves in interrupt functions and functions which never return.
9870
9871 * cse.c (struct set): Delete inner_dest_loc field.
9872 (cse_insn): Remove assignments to inner_dest_loc field.
9873
9874 Wed Sep 29 16:06:20 1999 Richard Henderson <rth@cygnus.com>
9875
9876 * ggc-page.c: Don't include <unistd.h> etc taken care of
9877 by "system.h". Include <sys/mman.h> afterward.
9878
9879 Wed Sep 29 16:05:18 1999 Richard Henderson <rth@cygnus.com>
9880
9881 * rs6000.c (rs6000_encode_section_info): If ggc_p, use
9882 ggc_alloc_string.
9883
9884 Tue Sep 28 16:45:40 1999 David Edelsohn <edelsohn@gnu.org>
9885
9886 * xcoffout.c (xcoffout_declare_function): Add documentation.
9887 * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
9888 TARGET_64BIT. Compare constant to -1, not bit pattern.
9889 (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
9890 (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix
9891 gen_movsi typos.
9892
9893 Tue Sep 28 16:43:14 1999 Nick Clifton <nickc@cygnus.com>
9894
9895 * dwarf2out.c (add_abstract_origin_attribute): Abort if
9896 origin_die is NULL.
9897 (gen_inlined_enumeration_type_die): Do not abort if the type has
9898 not been writeen out.
9899 (gen_inlined_structure_type_die): Do not abort if the type has
9900 not been writeen out.
9901 (gen_inlined_union_type_die): Do not abort if the type has
9902 not been writeen out.
9903 (gen_tagged_type_instantiation_die): Do not abort if the type
9904 has not been written out.
9905
9906 Tue Sep 28 14:33:47 1999 Bernd Schmidt <bernds@cygnus.co.uk>
9907
9908 * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
9909 call it.
9910 * reg-stack.c (straighten_stack): Copy hard reg set with
9911 COPY_HARD_REG_SET.
9912
9913 Tue Sep 28 01:11:05 1999 Richard Henderson <rth@cygnus.com>
9914
9915 * builtins.c (stabilize_va_list): Stabilize array type va_list
9916 to a pointer type, not the base record type.
9917 (expand_builtin_va_copy): Dereference the pointers explicitly;
9918 use the correct size for the copy.
9919
9920 * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
9921 (rs6000_va_arg): Likewise.
9922
9923 Mon Sep 27 23:27:21 1999 Richard Henderson <rth@cygnus.com>
9924
9925 * rtl.h (struct rtx_def): Move gc_mark to align mode field.
9926
9927 Mon Sep 27 23:20:29 1999 Mark Mitchell <mark@codesourcery.com>
9928
9929 * tree.h (struct tree_decl): Use `bclass', not `class', in name of
9930 field.
9931 (DECL_BUILT_IN_CLASS): Adjust accordingly.
9932
9933 Mon Sep 27 23:03:16 1999 Richard Henderson <rth@cygnus.com>
9934
9935 * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
9936 (init_ggc): Use it instead of a constant.
9937 (ggc_collect): Bound allocated_last_gc by it.
9938
9939 Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com)
9940
9941 * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
9942 with va_list.
9943
9944 Mon Sep 27 19:40:17 CEST 1999 Marc Espie <espie@cvs.openbsd.org>
9945
9946 * configure.in (mips*el-*-openbsd*): Don't duplicate default settings.
9947 (mips*-*-openbsd*): Let big endian configuration be a fragment.
9948 * configure: Regen.
9949 * config/mips/openbsd.h: New, OpenBSD little endian target.
9950 * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment.
9951 * config/mips/xm-openbsd.h: New, OpenBSD host.
9952
9953 Mon Sep 27 10:28:48 1999 Andreas Schwab <schwab@suse.de>
9954
9955 * config/m68k/m68k.c (output_function_prologue,
9956 output_function_epilogue): Use
9957 current_function_uses_pic_offset_table instead of regs_ever_live
9958 to decide whether to save/restore pic register.
9959 (legitimize_pic_address): Don't modify regs_ever_live any more.
9960
9961 Sun Sep 26 10:55:36 1999 Mark Mitchell <mark@codesourcery.com>
9962
9963 * function.h (struct function): Add x_dont_save_pending_sizes_p.
9964 * stor-layout.c (variable_size): Don't add sizes to the pending
9965 sizes list if x_dont_save_pending_sizes_p is set.
9966
9967 Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net)
9968
9969 * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
9970 for symbolic_operand().
9971 * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
9972
9973 Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9974
9975 * combine.c (gen_rtx_combine): Add missing call to va_end().
9976
9977 * final.c (asm_fprintf): Likewise.
9978
9979 * genattrtab.c (attr_rtx): Likewise.
9980
9981 Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com)
9982
9983 * cse.c: Update comments.
9984 (cse_insn): When converting a conditional/computed jump into
9985 an unconditional jump, always make sure a BARRIER immediately
9986 follows the converted jump. Do not delete unreachable code.
9987 (cse_basic_block): Do not delete unreachable code.
9988 * toplev.c (rest_of_compilation): Move call to
9989 delete_trivially_dead_insns after the conditional call to
9990 jump_optimize.
9991
9992 Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9993
9994 * collect2.c (make_temp_file): Don't prototype.
9995
9996 * gcc.c (make_temp_file): Likewise.
9997
9998 * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
9999
10000 Sat Sep 25 13:42:15 1999 Nick Clifton <nickc@cygnus.com>
10001
10002 * varasm.c (asm_emit_uninitialised): New function: Generate
10003 the assembler statements necessary to declare an uninitialised
10004 variable.
10005 (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
10006 variable.
10007 (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
10008 (ASM_EMIT_COMMON): New macro: Emit an entry in the common
10009 section.
10010 (assemble_variable): Use asm_emit_uninitialised to emit an
10011 uninitialised variable.
10012
10013 Fri Sep 24 17:10:56 1999 Nick Clifton <nickc@cygnus.com>
10014
10015 * combine.c (simplify_comparison): Cope with downshifting a 32 bit
10016 constant on a 64 bit host. Patch supplied by Geoffrey Keating
10017 <geoffk@cygnus.com>.
10018
10019 Fri Sep 24 10:48:10 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10020
10021 * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
10022 * c-common.h (builtin_function): Don't declare.
10023
10024 * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
10025 DECL_BUILT_IN.
10026 (pushdecl): Likewise.
10027 (finish_decl): Likewise.
10028 (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type
10029 int. All callers changed.
10030 Set the builtin's DECL_BUILT_IN_CLASS.
10031 * tree.h (enum built_in_class): New.
10032 (enum built_in_function): Delete NOT_BUILT_IN.
10033 (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
10034 in a union.
10035 (DECL_SET_FUNCTION_CODE): Likewise.
10036 (DECL_BUILT_IN_CLASS): New macro.
10037 (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
10038 (struct tree_decl): Split builtin function code field into a
10039 struct.
10040 (builtin_function): Declare.
10041
10042 Fri Sep 24 01:45:05 1999 Mark Mitchell <mark@codesourcery.com>
10043
10044 * optabs.c (init_traps): Fix typo in last change.
10045
10046 Fri Sep 24 01:10:11 1999 Mark Mitchell <mark@codesourcery.com>
10047
10048 * toplev.c (rest_of_decl_compilation): Update comment.
10049
10050 Fri Sep 24 11:57:06 1999 Geoffrey Keating <geoffk@cygnus.com>
10051
10052 * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
10053 in .sbss if appropriate.
10054 (EXTRA_SECTION_FUNCTIONS): Add sbss.
10055 (SBSS_SECTION_ASM_OP): New macro.
10056 * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
10057 (EXTRA_SECTIONS): Add in_sbss.
10058 * config/mips/mips.h: Prototype sbss_section.
10059
10060 Thu Sep 23 18:18:55 1999 Mark Mitchell <mark@codesourcery.com>
10061
10062 * stmt.c (expand_start_bindings): Don't allow cleanup instructions
10063 to disappear.
10064
10065 Thu Sep 23 18:07:01 1999 Mark Mitchell <mark@codesourcery.com>
10066
10067 * optabs.c (init_traps): Register trap_rtx as a GC root.
10068
10069 Thu Sep 23 17:41:47 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10070
10071 * config/mips/mips.c (function_arg_pass_by_reference): Define
10072 unconditionally, since it's called unconditionally.
10073
10074 Thu Sep 23 13:40:02 1999 Jason Merrill <jason@yorick.cygnus.com>
10075
10076 * toplev.c (documented_lang_options): Add -fshort-wchar.
10077 * c-decl.c (c_decode_option): Likewise.
10078 (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
10079 for wchar_t.
10080 * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
10081 * gcc.c (default_compilers): If -fshort-wchar,
10082 override __WCHAR_TYPE__.
10083 * tm.texi (C Dialect Options): Add -fshort-wchar.
10084
10085 * dwarf2out.c (output_aranges): Use DW_AT_location to find the
10086 symbol for a variable.
10087
10088 * cpplib.h (CPP_PREPROCESSED): New macro.
10089 * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
10090 we're seeing this input for a second time.
10091
10092 Thu Sep 23 12:54:49 1999 Alex Samuel <samuel@codesourcery.com>
10093
10094 * emit-rtl.c (init_emit_once): Initialize modes first.
10095
10096 Sun Sep 19 01:23:23 1999 Alex Samuel <samuel@codesourcery.com>
10097
10098 * config/i386/i386.c (pic_label_name): Change to char pointer.
10099 (global_offset_table): New variable.
10100 (load_pic_register): Fill global_offset_table if it hasn't
10101 already been done. Allocate pic_label_name dynamically.
10102 * ggc.h (empty_string): New variable.
10103 * ggc-simple.c (empty_string): Likewise.
10104 (init_ggc): Allocate empty_string and add as root.
10105 * stmt.c (digit_strings): New variable.
10106 (init_stmt): Add last_block_end_note as root. Allocate and
10107 initialize digit_strings.
10108 (expand_asm_operands): Use empty_string instead of string
10109 constant. Use digit_strings instead of string constants.
10110 * profile.c (init_arc_profiler): Allocate string with
10111 ggc_alloc_string instead of xmalloc.
10112 (output_func_start_profiler): Likewise.
10113 * c-typeck.c (digest_init): Check if init is error_mark_node.
10114
10115 Thu Sep 23 12:59:14 1999 Alex Samuel <samuel@codesourcery.com>
10116 Richard Henderson <rth@cygnus.com>
10117
10118 * ggc-page.c: New file.
10119 * Makefile.in (ggc-page.o): New.
10120
10121 Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com)
10122
10123 * invoke.texi: Document -fdelete-null-pointer-checks
10124 * toplev.c (flag_delete_null_pointer_checks): New.
10125 (f_options): Add entry for -fdelete-null-pointer-checks.
10126 (rest_of_compilation): Conditionalize null pointer check
10127 elimination on flag_delete_null_pointer_checks.
10128 (main): If -O2 or greater, enable -fdelete-null-pointer-checks
10129
10130 1999-09-23 10:56 -0700 Zack Weinberg <zack@bitmover.com>
10131
10132 * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
10133 copyright notice and special exception to GPL.
10134
10135 Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10136
10137 * abi64.h (mips_function_value): Add prototype arguments.
10138
10139 * mips-protos.h: New file with mips prototypes.
10140
10141 * mips.c: Include "tm_p.h".
10142 (mktemp, lookup_name): Add prototype arguments.
10143 (extern_list, string_constant, mips_fill_delay_slot,
10144 mips_output_external, mips_output_external_libcall,
10145 mips_output_filename, mips_declare_object, function_prologue,
10146 mips_expand_prologue, function_epilogue, mips16_constant,
10147 build_mips16_function_stub, mips_output_conditional_branch):
10148 Constify a char*.
10149 (mips_va_start): Remove unused variable `u'.
10150 (mips_va_arg): Cast value to unsigned when comparing against one.
10151 (trace): Delete.
10152 (save_restore_insns, mips_expand_prologue): Add missing arg in
10153 call to `large_int'.
10154
10155 * mips.h: Move prototypes to mips-protos.h.
10156 (data_section, memory_address_p, rdata_section,
10157 readonly_data_section, simple_epilogue_p, text_section): Delete
10158 prototypes delcared elsewhere.
10159 (mips_epilogue_delay_slots, print_options): Delete unused decls.
10160 (trace): Delete.
10161 (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
10162
10163 * mips.md: Delete extra args in call to `mips_move_2words'.
10164
10165 * xm-iris6.h (alloca): Add prototype argument.
10166
10167 * genpeep.c: Include "tm_p.h" in generated output file.
10168
10169 Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10170
10171 * basic-block.h (find_edge_index): Change parameters.
10172 * flow.c (verify_edge_list): Pass basic_block parameters to
10173 find_edge_index instead of integers.
10174
10175 Thu Sep 23 15:54:12 1999 Nick Clifton <nickc@cygnus.com>
10176
10177 * combine.c (simplify_comparison): Use an unsigned shift to adjust
10178 the constant.
10179
10180 Thu Sep 23 08:46:21 1999 Guy Harris <guy@netapp.com>
10181
10182 * gcc.1: Fix a formatting error.
10183
10184 Wed Sep 22 16:10:21 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
10185
10186 * install.texi (Configurations): Remove pyramid. Add fr30, i686,
10187 i786, mn10200, mn10300, pdp11, v850.
10188
10189 Thu Sep 23 07:37:13 1999 Dan Nicolaescu <dann@ics.uci.edu>
10190
10191 * libgcc2.c (num_digits): Add prototype with
10192 __attribute__((const)).
10193 (__terminate): Add prototype.
10194
10195 Thu Sep 23 05:32:06 1999 Richard Henderson <rth@cygnus.com>
10196
10197 * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
10198
10199 * alpha/alpha.c (print_operand): Fix type of `code'.
10200 (alpha_output_filename): Constify.
10201 * alpha/alpha.h: Move all function declarations ...
10202 * alpha/alpha-protos.h: ... here. New file.
10203 * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
10204 (SECTION_FUNCTION_TEMPLATE): Likewise.
10205
10206 Thu Sep 23 11:15:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10207
10208 * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
10209 * expr.c (expand_expr): Likewise.
10210 (do_jump): Likewise.
10211 (do_store_flag): Pass ccp_store_flag to can_compare_p.
10212 * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
10213 accessor macros.
10214 (enum can_compare_purpose): New.
10215 (can_compare_p): Adjust prototype.
10216 (prepare_cmp_insn, prepare_operand): Declare.
10217 * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
10218 * optabs.c (cmp_available_p): Deleted.
10219 (expand_abs): Pass ccp_jump to can_compare_p.
10220 (can_compare_p): New arg PURPOSE. Check for combined optabs.
10221 (prepare_cmp_insn): No longer static. Add arg PURPOSE.
10222 Call can_compare_p rather than cmp_available_p.
10223 (prepare_operand): No longer static.
10224 (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
10225 (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
10226 (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
10227 sequence to use emit_cmp_and_jump_insns.
10228 (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
10229
10230 Wed Sep 22 17:58:01 1999 Stan Cox <scox@cygnus.com>
10231
10232 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
10233 register offsets; let LEGITIMIZE_ADDRESS load it into a register.
10234 (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
10235 (plus (reg) (const_int 0))
10236 * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
10237
10238 Wed Sep 22 17:55:31 1999 David Edelsohn <edelsohn@gnu.org>
10239
10240 * rs6000.c (expand_block_move): DImode loads and stores require
10241 word-aligned displacements. Increment address registers with
10242 adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT.
10243
10244 Wed Sep 22 17:35:55 1999 Michael Meissner <meissner@cygnus.com>
10245
10246 * dwarf2out.c (base_type_die): Use the name __unknown__ if there
10247 is no name for the base type, rather than segfault. If we are
10248 writing out a complex integer type, use DW_ATE_lo_user.
10249
10250 * expr.c (emit_move_insn_1): If we are copying a complex that fits
10251 in one word or less (complex char, complex short, or on 64 bit
10252 systems complex float) to/from a hard register, copy it through
10253 memory instead of dying in gen_{real,imag}part. If we have a
10254 short complex type, prevent inlining since it allocates stack
10255 memory.
10256
10257 * tree.c (build_complex_type): If we are writing dwarf2 output,
10258 generate a name for complex integer types.
10259
10260 Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10261
10262 * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
10263 * flow.c (remove_edge): Remove extra whitespace.
10264 (remove_fake_edges): Fix comment.
10265 (add_noreturn_fake_exit_edges): Use the correct name.
10266
10267 Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell <nathan@acm.org>
10268
10269 * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
10270 (mostlyclean): Depend on INTL_MOSTLYCLEAN.
10271 (clean): Depend on INTL_CLEAN.
10272 (maintainer-clean): Adjust.
10273
10274 Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10275
10276 * configure.in (AC_PREREQ): Bump to 2.13.
10277 (AC_C_STRINGIZE): Call this instead of using a custom macro.
10278
10279 * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
10280
10281 * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
10282
10283 * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
10284
10285 * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
10286 (HAVE_STRINGIZE): Define.
10287
10288 Wed Sep 22 06:25:15 1999 Jim Kingdon <http://developer.redhat.com>
10289
10290 * c-parse.in: save and restore warn_pointer_arith on __extension__
10291 along with pedantic.
10292 (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
10293 Set the type of extension to itype rather than $<itype>1 kludge.
10294 * extend.texi (Alternate Keywords): Adjust documentation.
10295 * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
10296
10297 Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com)
10298
10299 * pa.c, pa.h, pa.md: Support multiple assembler dialects in
10300 most assembler templates.
10301
10302 * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
10303 FP loads and stores.
10304 (following_call): Always return zero for the PA8000.
10305 * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
10306 FP loads and stores.
10307 (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
10308
10309 * pa.h (BRANCH_COST): Define.
10310
10311 * pa.md (return, return_internal): Use bve for PA2.0.
10312
10313 * pa.md (fused multiply): Add variants which reduce height for the
10314 fused multiply, but which still generate 2 insns.
10315 (fnegabs): Similarly.
10316
10317 * pa.md (subsi3): Turn into an expander. Create two anonymous
10318 patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0.
10319 * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
10320
10321 * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
10322 for TARGET_PA_20.
10323 (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
10324 code generation.
10325 (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
10326 (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
10327
10328 * regclass.c (init_regs): Add "top_of_stack" as a garbage
10329 collection root.
10330
10331 * flow.c (record_active_eh_regions): Terminate loop after finding
10332 the last insn in the last basic block.
10333
10334 Wed Sep 22 20:25:00 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10335
10336 * config/c4x/c4x.md: Delete parallel instruction peepholes.
10337
10338 Wed Sep 22 19:59:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10339
10340 * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
10341
10342 Wed Sep 22 19:56:25 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10343
10344 * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
10345 splitting to not use output template.
10346
10347 Wed Sep 22 19:50:12 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10348
10349 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
10350 * config/c4x/c4x.c (c4x_va_start): New function.
10351
10352 Tue Sep 21 18:40:01 1999 Jan Hubicka <hubicka@freesoft.cz>
10353
10354 * genrecog.c (not_both_true): Handle correctly cases when called for
10355 tests with different positions in the insn.
10356
10357 Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10358
10359 * machmode.h (HOST_PTR_PRINTF): Move from here ...
10360
10361 * system.h (HOST_PTR_PRINTF): ... to here.
10362
10363 * mips-tfile.c: Don't include machmode.h.
10364
10365 * Makefile.in (MACHMODE_H): New variable. Update to use it.
10366 (mips-tfile.o): Don't depend on machmode.h.
10367
10368 Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10369
10370 * haifa-sched.c (sched_analyze): Rename local variable `region' to
10371 avoid conflicts with typedef struct `region' at the top level scope.
10372
10373 Tue Sep 21 14:14:50 1999 Richard Henderson <rth@cygnus.com>
10374
10375 * basic-block.h (basic_block): Add eh_beg, eh_end.
10376 * flow.c (entry_exit_blocks): Update.
10377 (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
10378 Call new functions.
10379 (find_basic_blocks_1): Don't record eh_list at each bb. Use
10380 lists.c functions to allocate insn lists.
10381 (make_edges): Use eh_beg+eh_end, not the lists. Split out EH
10382 edge creation ...
10383 (make_eh_edge): ... here. New.
10384 (move_stray_eh_region_notes): New.
10385 (record_active_eh_regions): New.
10386 (delete_unreachable_blocks): Split out block merging ...
10387 (try_merge_blocks): ... here. New.
10388 (merge_blocks_move_predecessor_nojumps): Remove edge arg.
10389 Dump debugging data.
10390 (merge_blocks_move_successor_nojumps): Likewise.
10391 (merge_blocks): Use eh_beg+eh_end to validate block movement.
10392
10393 Tue Sep 21 11:15:03 1999 Martin v. Löwis <loewis@informatik.hu-berlin.de>
10394
10395 * extend.texi (Bound member functions): Document unbound pmf
10396 conversion.
10397
10398 Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10399
10400 * flow.c (split_edge): Handle insertion on a fallthrough edge which
10401 has the EXIT_BLOCK as a dest.
10402
10403 Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10404
10405 * flow.c (remove_edge): New function to remove an edge from the
10406 flow graph.
10407 (remove_fake_successors): New function to remove fake successor edges.
10408 (remove_fake_edges): New function to remove all fake edges from the
10409 flow graph.
10410 (add_fake_exit_edges): New function to add fake edges from all blocks
10411 with no successors to the exit block.
10412 * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
10413 prototypes for new functions.
10414
10415 Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
10416
10417 * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
10418 Use Pmode to determine whether to output .dword or .word.
10419
10420 Tue Sep 21 11:04:34 1999 Alex Samuel <samuel@codesourcery.com>
10421
10422 * tree.c (built_in_filename): New variable.
10423 (BUILT_IN_FILENAME): New macro.
10424 (init_tree_codes): Allocate built_in_filename.
10425 (make_node): Use built_in_filename instead of string constant.
10426
10427 Tue Sep 21 14:13:27 1999 Nick Clifton <nickc@cygnus.com>
10428
10429 * configure.in: Add fr30 target.
10430 * configure: Regenerate.
10431 * config/fr30: New directory.
10432 * config/fr30/crti.asm: New file.
10433 * config/fr30/fr30.c: New file.
10434 * config/fr30/crtn.asm: New file.
10435 * config/fr30/fr30.h: New file.
10436 * config/fr30/fr30.md: New file.
10437 * config/fr30/lib1funcs.asm: New file.
10438 * config/fr30/t-fr30: New file.
10439 * config/fr30/xm-fr30.h: New file.
10440
10441 Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com)
10442
10443 * flow.c (merge_blocks_move_successor_nojumps): Delete the
10444 BARRIER at the end of the successor, not the BARRIER before
10445 the successor.
10446
10447 * pa.c (pa_add_gc_roots): Fix thinko in last change.
10448
10449 Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com)
10450
10451 * stmt.c (any_pending_cleanups): Don't crash when
10452 current_function->stmt is unset.
10453
10454 Tue Sep 21 00:59:49 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10455
10456 * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
10457 other initializations that may use it for relative offsets.
10458
10459 Mon Sep 20 21:43:25 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10460
10461 * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
10462 (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas.
10463 * config/i386/sol2dbg.h: Removed.
10464 * config/i386/sol2gas.h: New file, to enable gas work-around.
10465 * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
10466 Don't use sol2dbg.h.
10467 * configure: Rebuilt.
10468
10469 Mon Sep 20 13:29:41 1999 Mark Mitchell <mark@codesourcery.com>
10470
10471 * invoke.texi (-fthis-is-variable): Remove documentation.
10472
10473 Mon Sep 20 12:59:16 1999 Richard Henderson <rth@cygnus.com>
10474
10475 * basic-block.h (compute_bb_for_insn): Declare.
10476 * flow.c (compute_bb_for_insn): Export. Don't accept the varray
10477 to use; set size of basic_block_for_insn directly.
10478 (find_basic_blocks): Update.
10479
10480 Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10481
10482 * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
10483
10484 Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10485
10486 * crtstuff.c (ON_EXIT): Delete empty macro definition.
10487 (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
10488
10489 Mon Sep 20 15:25:35 1999 Nick Clifton <nickc@cygnus.com>
10490
10491 * c-decl.c (c_decode_option): Extend comment.
10492
10493 Mon Sep 20 14:43:37 1999 Nick Clifton <nickc@cygnus.com>
10494
10495 * toplev.c (progname): Make 'const char *'
10496 (flag_print_mem): Move out of main.
10497 (version_flag): Move out of main.
10498 (filename): Move out of main.
10499 (debug_args): Remove g prefix from options.
10500 (documented_lang_options): Remove cpplib specific options.
10501 (display_help): Add g prefix to debug options.
10502 (check_lang_option): Delete this function.
10503 (decode_d_option): New function: Decode -d... option.
10504 (decode_f_option): New function: Decode -f... option.
10505 (decode_W_option): New function: Decode -W... option.
10506 (decode_g_option): New function: Decode -g... option.
10507 (independent_decode_option): New function: Decode a language
10508 independent command line option.
10509 (main): Invoke lang_decode_option and then
10510 independent_decode_option on each command line option in
10511 turn.
10512
10513 Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com)
10514
10515 Revert this change. Gavin's patch to operand_equal_p is a better fix.
10516 * fold-const.c (fold_range_test): Do not try to fold the range
10517 test if the rhs or lhs has side effects.
10518
10519 * basic-block.h (compute_flow_dominators): Declare.
10520
10521 * gcse.c (alloc_code_hoist_mem): New function.
10522 (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
10523 (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
10524 (hoist_code, one_code_hoisting_pass): Likewise.
10525 (gcse_main): If optimizing for size, then hoist expressions
10526 computed in multiple dominated basic blocks.
10527
10528 * gcse.c (invalid_nonnull_info): New function.
10529 (delete_null_pointer_checks): Likewise.
10530 * rtl.h (delete_null_pointer_checks): Declare.
10531 * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
10532
10533 * flow.c (merge_blocks_move_predecessor_nojumps): New function.
10534 (merge-blocks_move_successor_nojumps): Likewise.
10535 (merge_blocks): Allow merging of some blocks, even if it requires
10536 physical movement of the blocks, but not if it requires new jumps.
10537
10538 * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
10539 Callers and prototype changed.
10540 * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
10541
10542 Mon Sep 20 06:56:32 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10543
10544 * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
10545 -YP when both -p and -pg are present. From i386/sol2.h.
10546
10547 Mon Sep 20 10:49:05 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10548
10549 * Makefile.in (distclean): Delete tm_p.h.
10550 * configure.in: Create a new file, "tm_p.h", from a list in
10551 "tm_p_file". For ix86 systems, set up "tm_p_file" to include
10552 "i386/i386-protos.h".
10553
10554 * alias.c: Include "tm_p.h".
10555 * c-typeck.c: Likewise.
10556 * calls.c: Likewise.
10557 * cse.c: Likewise.
10558 * emit-rtl.c: Likewise.
10559 * explow.c: Likewise.
10560 * expmed.c: Likewise.
10561 * expr.c: Likewise.
10562 * final.c: Likewise.
10563 * flow.c: Likewise.
10564 * fold-const.c: Likewise.
10565 * function.c: Likewise.
10566 * gcse.c: Likewise.
10567 * global.c: Likewise.
10568 * haifa-sched.c: Likewise.
10569 * integrate.c: Likewise.
10570 * jump.c: Likewise.
10571 * local-alloc.c: Likewise.
10572 * loop.c: Likewise.
10573 * optabs.c: Likewise.
10574 * recog.c: Likewise.
10575 * reg-stack.c: Likewise.
10576 * regclass.c: Likewise.
10577 * regmove.c: Likewise.
10578 * reload.c: Likewise.
10579 * reload1.c: Likewise.
10580 * reorg.c: Likewise.
10581 * resource.c: Likewise.
10582 * stmt.c: Likewise.
10583 * stor-layout.c: Likewise.
10584 * toplev.c: Likewise.
10585 * tree.c: Likewise.
10586 * unroll.c: Likewise.
10587 * genattrtab.c (main): Make generated file include "tm_p.h".
10588 * genemit.c (main): Likewise.
10589 * genoutput.c (main): Likewise.
10590 * genrecog.c (main): Likewise.
10591
10592 * i386.h: Delete all prototypes.
10593 * i386.c: Include "tm_p.h".
10594 (ix86_attr_length_default): Call constant_call_address_operand
10595 with correct number of arguments.
10596 * i386-protos.h: New file.
10597 * i386.md (unnamed patterns): Call constant_call_address_operand
10598 with correct number of arguments.
10599 (exception_receiver): Call load_pic_register with correct number
10600 of arguments.
10601
10602 Sun Sep 19 14:18:39 1999 Richard Henderson <rth@cygnus.com>
10603
10604 * c-pragma.c (mark_align_stack): Dereference the void* properly.
10605
10606 Sun Sep 19 09:03:40 1999 Mark Mitchell <mark@codesourcery.com>
10607
10608 * rtl.h (insns_safe_to_move_p): New function.
10609 * loop.c (find_and_verify_loops): Use it.
10610 * rtlanal.c (insns_safe_to_move_p): Define it.
10611
10612 Sun Sep 19 02:54:33 1999 Richard Henderson <rth@cygnus.com>
10613
10614 * c-pragma.c: Include ggc.h.
10615 * Makefile.in (c-pragma.o): Update.
10616
10617 Sat Sep 18 16:01:18 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10618
10619 * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
10620 (LIB_SPEC): Likewise.
10621 (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
10622 Reindent -YP/-p/-pg.
10623 Copied from config/sparc/sol2.h.
10624
10625 Sat Sep 18 11:52:43 1999 Richard Henderson <rth@cygnus.com>
10626
10627 * c-pragma.c (mark_align_stack): New.
10628 (init_pragma): New.
10629 * c-pragma.h (init_pragma): Declare it.
10630 * c-lex.c (init_parse): Call it.
10631
10632 Sat Sep 18 15:20:38 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
10633
10634 * configure.in: Pick up thread library on Solaris/x86 just
10635 like on Solaris/sparc.
10636 * configure: Rebuilt.
10637
10638 Sat Sep 18 11:15:58 1999 Alex Samuel <samuel@codesourcery.com>
10639
10640 * rtl.h (global_rtx_index): New enum.
10641 (global_rtl): Change to array of rtx.
10642 (pc_rtx, cc0_rtx): Redefine accordingly.
10643 (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
10644 (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
10645 (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
10646 (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
10647 (const_int_rtx): Change to array of rtx.
10648 (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
10649 accordingly.
10650 * emit-rtl.c (global_rtl): Change to array of rtx.
10651 (const_int_rtx): Change to aray of rtx.
10652 (gen_rtx_CONST_INT): Redefine accordingly.
10653 (init_emit_once): Allocate and initialize global_rtl. Likewise
10654 for const_int_rtx. Add both as GC roots.
10655 * genattrtab.c (global_rtl): Update declaration.
10656
10657 1999-09-17 Ulrich Drepper <drepper@cygnus.com>
10658
10659 * Makefile (USER_H): Add iso646.h back.
10660
10661 Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com)
10662
10663 * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
10664 zapping the LOG_LINKS of sched_before_next_call.
10665
10666 * pa.h (INSN_SETS_ARE_DELAYED): Delete.
10667 * pa.c (insn_refs_are_delayed): Renamed from
10668 insn_sets_and_refs_are_delayed.
10669
10670 Fri Sep 17 15:19:01 1999 Mark Mitchell <mark@codesourcery.com>
10671
10672 * functiion.h (struct function): Add x_whole_function_mode_p.
10673 (retrofit_block): Declare.
10674 * function.c (retrofit_block): New function.
10675 (identify_blocks): Add assertions. Allow an incomplete set of
10676 block notes if we're still generating code for the function.
10677 * integrate.c: Include loop.h.
10678 (expand_inline_function): Call find_loop_tree_blocks to map block
10679 notes to blocks when in whole-function mode. Use retrofit_block
10680 to insert new BLOCKs for the inlined function, rather than
10681 insert_block.
10682 * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel.
10683 * Makefile.in (integrate.o): Depend on loop.h.
10684
10685 Fri Sep 17 15:11:20 1999 Mark Mitchell <mark@codesourcery.com>
10686
10687 * tree.h (warn_about_unused_variables): Declare.
10688 * stmt.c (warn_about_unused_variables): New function, split out
10689 from ...
10690 (expand_end_bindings): Here.
10691
10692 Fri Sep 17 15:07:37 1999 Mark Mitchell <mark@codesourcery.com>
10693
10694 * stmt.c (preserve_subexpressions_p): Don't crash when
10695 current_function->stmt is unset.
10696
10697 Fri Sep 17 15:03:16 1999 Mark Mitchell <mark@codesourcery.com>
10698
10699 * stmt.c (expand_start_bindings): Allow callers to pass a flag
10700 indicating that no NOTE_INSN_BLOCK_BEG note is required.
10701 (expand_start_target_temps): Use it.
10702 * except.c (expand_eh_region_start_for_decl): Likewise.
10703 * expr.c (expand_expr): Likewise.
10704
10705 Fri Sep 17 15:05:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
10706
10707 * fold-const.c (operand_equal_p): Pay attention to side effects.
10708
10709 Fri Sep 17 11:14:17 1999 Jason Merrill <jason@yorick.cygnus.com>
10710
10711 * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
10712 * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
10713
10714 * tlink.c (scan_linker_output): Look for keywords before accepting
10715 a mangled name in quotes.
10716
10717 Thu Sep 16 16:47:08 1999 Richard Henderson <rth@cygnus.com>
10718
10719 * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
10720 * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
10721
10722 Thu Sep 16 16:35:41 1999 Richard Henderson <rth@cygnus.com>
10723
10724 * alpha.md: Revert Thu Nov 26 change that came in through the
10725 last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
10726 Avoid earlyclobber when possible.
10727
10728 Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10729
10730 * libgcc2.c (__do_global_ctors): Call atexit with one arg.
10731
10732 * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
10733 Define HAVE_ON_EXIT.
10734
10735 Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10736
10737 * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use
10738 CTYPE_CONV in all ctype macros.
10739
10740 * cccp.c (initialize_char_syntax): Use uppercase ctype macro
10741 from system.h.
10742
10743 * cexp.y (initialize_random_junk): Likewise.
10744
10745 * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
10746
10747 * i370.c (handle_pragma): Likewise.
10748
10749 * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
10750
10751 * v850.c (override_options): Likewise.
10752
10753 * doprint.c (_doprnt): Likewise.
10754
10755 * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
10756 Likewise.
10757
10758 * fixinc/server.c (load_data): Likewise.
10759
10760 * fold-const.c (real_hex_to_f): Likewise.
10761
10762 * genattr.c (write_upcase, gen_attr): Likewise.
10763
10764 * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
10765 write_upcase): Likewise.
10766
10767 * genemit.c (print_code): Likewise.
10768
10769 * genopinit.c (gen_insn): Likewise.
10770
10771 * genpeep.c (print_code): Likewise.
10772
10773 * genrecog.c (print_code): Likewise.
10774
10775 * optabs.c (init_libfuncs): Likewise.
10776
10777 Thu Sep 16 14:03:32 1999 Mark Mitchell <mark@codesourcery.com>
10778
10779 * haifa-sched.c (sched_analyze): Keep the list of notes organized
10780 in pairs.
10781 (reemit_notes): Likewise.
10782
10783 Thu Sep 16 11:50:52 1999 Alex Samuel <samuel@codesourcery.com>
10784
10785 * ggc.h (ggc_root): Move to ggc-common.c.
10786 (roots): Remove.
10787 (ggc_mark_rtx, ggc_mark_tree): Change to macro.
10788 (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
10789 (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
10790 (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
10791 * ggc-common.c (ggc_root): Move from ggc.h.
10792 (roots): Declare, static.
10793 (ggc_mark_rtx, ggc_mark_tree): Renamed to...
10794 (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
10795 null or check/set mark bit.
10796 (ggc_mark_roots): New.
10797 * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
10798
10799 Thu Sep 16 11:37:32 1999 Richard Henderson <rth@cygnus.com>
10800
10801 * m32r.c: Include toplev.h.
10802 (*): Add ATTRIBUTE_UNUSED as needed to arguments.
10803 (gen_compare): Rename swap_p to must_swap to match uses.
10804 Add default abort case.
10805 (m32r_output_function_epilogue): Remove unused variables.
10806 (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
10807 * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
10808 define to empty parameter list. Update all uses.
10809 (predicate decls): Use enum machine_mode not int.
10810 * m32r.md (movsi): Call abort, not fatal_insn.
10811 (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
10812
10813 1999-09-14 Andrew Haley <aph@cygnus.com>
10814
10815 * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
10816 use $0 instead of 0.
10817
10818 Thu Sep 16 10:53:36 1999 Bernd Schmidt <bernds@cygnus.co.uk>
10819
10820 * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
10821 computation out of loop over hard regs.
10822
10823 Wed Sep 15 21:37:06 1999 Mark Mitchell <mark@codesourcery.com>
10824
10825 * function.c (identify_blocks): Don't shadow a variable in an
10826 outer scope.
10827 * integrate.c (integrate_decl_tree): Don't use pushlevel,
10828 pushdecl, or poplevel to build up the new BLOCK tree.
10829 (expand_inline_function): Likewise.
10830 (integrate_parm_decls): Likewise.
10831
10832 Wed Sep 15 21:20:38 1999 Mark Mitchell <mark@codesourcery.com>
10833
10834 * c-typeck.c (qualify_type): Merge qualifiers from both types.
10835
10836 1999-09-15 Brad Lucier <lucier@math.purdue.edu>
10837
10838 * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
10839 * invoke.texi: Document this change.
10840
10841 Wed Sep 15 17:56:00 1999 Richard Henderson <rth@cygnus.com>
10842
10843 * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
10844 Free the struct.
10845 (mark_emit_status): Renamed from mark_emit_state.
10846 * except.c (mark_eh_status): Renamed from mark_eh_state.
10847 Check not null before marking.
10848 (free_eh_status): New.
10849 * expr.c (mark_expr_status, free_expr_status): New.
10850 * function.c (free_machine_status): New.
10851 (free_after_parsing): New.
10852 (free_after_compilation): Move bits to free_after_parsing; call
10853 free_eh_status, free_expr_status; zero the marked members of the
10854 function state.
10855 (prepare_function_start): No can_garbage_collect.
10856 Call init_eh_for_function.
10857 (expand_dummy_function_end): Free up current_function state.
10858 (mark_function_status): Renamed from mark_function_state.
10859 (mark_function_chain): No can_garbage_collect. Call mark_expr_status.
10860 * function.h (struct function): No can_garbage_collect.
10861 (free_machine_status, free_after_parsing): Declare.
10862 (free_eh_status, free_expr_status): Declare.
10863 * ggc.h (mark_expr_status): Declare.
10864 * stmt.c (free_stmt_status): Free the struct.
10865 (mark_stmt_status): Renamed from mark_stmt_state.
10866 (init_stmt): Don't call init_eh.
10867 (init_stmt_for_function): Don't call init_eh_for_function.
10868 * toplev.c (compile_file): Call init_eh.
10869 (rest_of_compilation): Free basic block info before ggc_collect.
10870 Call free_after_parsing; conditionally call free_after_compilation.
10871 * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
10872 Check not null before marking.
10873 (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct.
10874
10875 Wed Sep 15 17:53:16 1999 Richard Henderson <rth@cygnus.com>
10876
10877 * c-lex.c (yylex): Initialize warn.
10878
10879 Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com)
10880
10881 * pa.c (emit_move_sequence): Properly set the mode of the scratch
10882 register when performing secondary reloads for the SAR register.
10883
10884 Wed Sep 15 15:51:52 1999 Mark Mitchell <mark@codesourcery.com>
10885
10886 * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
10887 (NOTE_BLOCK): New macro.
10888 (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
10889 * function.h (identify_blocks): Change prototype.
10890 * function.c (identify_blocks): Simplify.
10891 (reorder_blocks): Likewise.
10892 * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
10893 NOTE_INSN_BLOCK_{BEG,END}.
10894 * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
10895 the list of saved notes if the note isn't a
10896 NOTE_INSN_BLOCK_{BEG,END}.
10897 (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
10898 NOTE_BLOCK_NUMBER.
10899 (reemit_notes): Adjust recreation of notes to reflect new saved
10900 note structure.
10901 * print-rtl.c (print_rtx): Print the address of the BLOCK when
10902 printing a block note.
10903 * stmt.c (block_vector): Remove.
10904 (find_loop_tree_blocks): Simplify.
10905 (unroll_block_trees): Likewise.
10906 * tree.h (reorder_block): Change prototype.
10907
10908 Wed Sep 15 14:39:35 1999 Jason Merrill <jason@yorick.cygnus.com>
10909
10910 * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT.
10911 * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
10912 (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
10913 (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl.
10914 (atexit, exit): Simplify.
10915 * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT.
10916 * config/lots: Remove defns of HAVE_ATEXIT.
10917
10918 Wed Sep 15 10:25:12 1999 Mark Mitchell <mark@codesourcery.com>
10919
10920 * calls.c (precompute_arguments): Fix typo in comment.
10921 * expr.c (preexpand_calls): Don't preexpand the cleanup in a
10922 TARGET_EXPR.
10923
10924 Wed Sep 15 09:59:59 1999 Mark Mitchell <mark@codesourcery.com>
10925
10926 * dsp16xx.c (override_options): Fix typos in GC root registration.
10927
10928 Wed Sep 15 15:23:28 1999 Philip Blundell <pb@nexus.co.uk>
10929
10930 * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
10931 from config/svr4.h.
10932 (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
10933 (FUNCTION_PROFILER): Redefine appropriately for Linux.
10934 (CC1_SPEC): Likewise.
10935
10936 Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10937
10938 * genattr.c (main): Add extern prototype. Call return, not exit.
10939 * genattrtab.c (main): Likewise.
10940 * gencheck.c (main): Likewise.
10941 * gencodes.c (main): Likewise.
10942 * genconfig.c (main): Likewise.
10943 * genemit.c (main): Likewise.
10944 * genextract.c (main): Likewise.
10945 * genflags.c (main): Likewise.
10946 * gengenrtl.c (main): Likewise.
10947 * genopinit.c (main): Likewise.
10948 * genoutput.c (main): Likewise.
10949 * genpeep.c (main): Likewise.
10950 * genrecog.c (main): Likewise.
10951
10952 * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
10953 * genattrtab.c (get_insn_name): Likewise.
10954 * gencodes.c (get_insn_name): Likewise.
10955 * genconfig.c (get_insn_name): Likewise.
10956 * genemit.c (get_insn_name): Likewise.
10957 * genextract.c (get_insn_name): Likewise.
10958 * genflags.c (get_insn_name): Likewise.
10959 * genopinit.c (get_insn_name): Likewise.
10960 * genpeep.c (get_insn_name): Likewise.
10961
10962 * gencheck.c (usage): Add static prototype.
10963 * genextract.c (print_path): Constify a char*.
10964 * genopinit.c (optabs): Likewise.
10965 * genoutput.c (operand_data, data, output_predicate_decls,
10966 compare_operands): Likewise.
10967 * genrecog.c (write_tree): Add default case in switch.
10968
10969 Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10970
10971 * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
10972
10973 * print-rtl.c (get_insn_name): Remove prototype.
10974
10975 * toplev.h (progname): Declare const.
10976
10977 * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
10978 init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
10979 dump_sched_info, dump_local_alloc, regset_release_memory,
10980 print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
10981 error_with_file_and_line, error_with_decl, error_for_asm, error,
10982 fatal, warning_with_file_and_line, warning_with_decl, warning,
10983 pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
10984 Remove redundant prototypes.
10985
10986 (notice, check_lang_option, report_file_and_line, vnotice,
10987 mark_file_stack): Add static prototype.
10988 (set_fatal_function): Add prototype.
10989 (vnotice, report_file_and_line, set_fatal_function,
10990 check_lang_option): Constify a char*.
10991 (main): Prototype. Call return, not exit.
10992
10993 Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10994
10995 * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
10996
10997 * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
10998
10999 * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
11000
11001 * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
11002
11003 Wed Sep 15 11:04:43 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11004
11005 * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it,
11006 behave as if it's zero in all cases.
11007 (expand_function_start): Adjust call to assign_parms.
11008 * tree.h (assign_parms): Adjust prototype.
11009 * objc/objc-act.c (hack_method_prototype): Adjust call to
11010 assign_parms.
11011
11012 Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com)
11013
11014 * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
11015 arg_pointer_rtx fixed if the argument pointer register is
11016 not fixed.
11017 (NONZERO_BASE_PLUS_P): Likewise.
11018
11019 Tue Sep 14 20:26:02 1999 Richard Henderson <rth@cygnus.com>
11020
11021 * rtl.def (match_insn, match_insn2): Remove match_insn; rename
11022 match_insn2 to match_insn.
11023 * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
11024
11025 Tue Sep 14 20:10:29 1999 Richard Henderson <rth@cygnus.com>
11026
11027 * Makefile.in (USER_H): Remove va-foo.h.
11028
11029 * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
11030 va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
11031 va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
11032 va-spur.h,va-v850.h}: Remove.
11033
11034 Tue Sep 14 19:43:16 1999 Richard Henderson <rth@cygnus.com>
11035
11036 * sparc/sparc.md (eligible_for_return_delay): New attribute.
11037 (in_return_delay): Use it instead of match_insn.
11038
11039 Tue Sep 14 23:05:37 1999 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11040
11041 * config/alpha/va_list.h (va-alpha.h): Do not include.
11042 (__gnuc_va_list): Typedef as in varargs.h.
11043
11044 Tue Sep 14 18:14:03 1999 Richard Henderson <rth@cygnus.com>
11045
11046 * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
11047 DECL_LIVE_RANGE_RTL.
11048
11049 Tue Sep 14 16:47:08 1999 Mark Mitchell <mark@codesourcery.com>
11050
11051 * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
11052 not NOTE_BLOCK_NUMBER.
11053 (expand_eh_region_end): Likewise.
11054 (find_exception_handler_labels): Likewise.
11055 (scan_region): Likewise.
11056 (exception_optimize): Likewise.
11057 (update_rethrow_references): Likewise.
11058 (set_insn_eh_region): Likewise.
11059 * final.c (final_scan_insn): Likewise.
11060 * flow.c (make_edges): Likewise.
11061 * integrate.c (expand_inline_function): Likewise.
11062 * print-rtl.c (print_rtx): Likewise.
11063
11064 Tue Sep 14 16:30:16 1999 Richard Henderson <rth@cygnus.com>
11065
11066 * ginclude/stdarg.h, ginclude/varargs.h: Implement in
11067 terms of builtin functions and types.
11068
11069 * mips.c (mips_build_va_list): New.
11070 (mips_va_start, mips_va_arg): New.
11071 * mips.h (BUILD_VA_LIST_TYPE): New.
11072 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
11073
11074 * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
11075 (sh_build_va_list, sh_va_start, sh_va_arg): New.
11076 * sh.h (BUILD_VA_LIST_TYPE): New.
11077 (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
11078
11079 Tue Sep 14 16:20:24 1999 Richard Henderson <rth@cygnus.com>
11080
11081 * recog.h (struct recog_data): Make dup_num, operand_address_p,
11082 n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
11083 (struct insn_data): Likewise with n_operands, n_dups,
11084 n_alternatives, output_format.
11085 * regclass.c (scan_one_insn): Cast n_operands to int before
11086 arithmetic inside comparison.
11087
11088 Tue Sep 14 15:13:36 1999 Richard Henderson <rth@cygnus.com>
11089
11090 * toplev.c (compile_function): Unconditionally emit nop.
11091
11092 Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11093
11094 * haifa-sched.c (actual_hazard): Move declaration of variable
11095 `this_cost' into the scope where it is used.
11096
11097 Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11098
11099 * c-pragma.c (handle_pragma_token): Wrap variables `name' and
11100 `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in
11101 HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
11102
11103 * genrecog.c (make_insn_sequence): Call memset, not bzero.
11104
11105 * jump.c (find_insert_position): Don't declare or define unless
11106 !HAVE_conditional_arithmetic.
11107 (returnjump_p_1, delete_prior_computation): Add static prototypes.
11108
11109 * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
11110
11111 * recog.c (offsettable_address_p): Prototype function pointer.
11112 (preprocess_constraints): Call memset, not bzero.
11113
11114 * tree.c (tree_node_kind_names): Constify a char*. Make static.
11115 (gcc_obstack_init): Don't declare.
11116 (fix_sizetype): Add static prototype.
11117 (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
11118 (tree_cons): Call memset, not bzero.
11119
11120 * varasm.c (remove_from_pending_weak_list): Wrap declaration and
11121 definition in macro ASM_WEAKEN_LABEL.
11122 (mark_const_hash_entry): Add static prototype.
11123
11124 Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11125
11126 * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
11127
11128 * unroll.c (find_common_reg_term, subtract_reg_term,
11129 loop_find_equiv_value): Add static prototypes.
11130 (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
11131 (copy_loop_body): Remove unreachable break statement.
11132
11133 * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
11134
11135 * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
11136
11137 Tue Sep 14 15:28:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11138
11139 Undo some changes from the gcc2 merge:
11140 * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
11141 * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
11142 pointers.
11143
11144 Undo this change:
11145 Sat Oct 3 07:20:28 1998 Stephen L Moshier <moshier@world.std.com>
11146 * emit-rtl.c (gen_lowpart_common): Disable optimization of
11147 initialized float-int union if the value is a NaN.
11148
11149 Tue Sep 14 04:03:44 1999 Mumit Khan <khan@xraylith.wisc.edu>
11150
11151 * gthr-win32.h: New file.
11152
11153 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
11154 shared as a valid attribute.
11155 * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
11156 * extend.texi: Document `shared' variable attribute.
11157
11158 Tue Sep 14 04:01:46 1999 Loren Rittle <ljrittle@acm.org>
11159
11160 * configure.in: Handle --enable-threads on FreeBSD.
11161 * configure: Rebuit.
11162
11163 Tue Sep 14 03:58:44 1999 Andreas Jaeger <aj@arthur.rhein-neckar.de>
11164
11165 * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
11166 thread support.
11167 * configure: Rebuilt.
11168
11169 Tue Sep 14 03:47:23 1999 Joel Sherrill <joel@OARcorp.com>
11170 Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
11171 Rosimildo DaSilva <rdasilva@connecttel.com>
11172
11173 * configure.in (m68k-*-rtemscoff*): Added.
11174 * configure.in (mips64orion-*-rtems*): Converted to ELF.
11175 * configure.in (sparc-*-rtemsaout*): Added as alias for old
11176 sparc-rtems configuration.
11177 * configure.in (sparc-*-rtemself*): Added.
11178 * configure.in (sparc-*-rtems*): Now ELF not a.out.
11179 * config/i386/rtems.h: Added comment.
11180 * config/sparc/rtemself.h: New file.
11181
11182 * configure.in (m68k-rtemself): Added.
11183 * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
11184 and DWARF_DEBUGGING_INFO.
11185 * config/m68k/crti.s: New file.
11186 * config/m68k/crtn.s: New file.
11187 * config/m68k/t-crtstuff: New file.
11188 * config/m68k/rtemself.h: New file.
11189
11190 * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
11191 global ctor/dtor and C++ exception handling.
11192 * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
11193 for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
11194 ENDFILE_SPEC.
11195 * config/i386/t-rtems-i386: New File.
11196
11197 Tue Sep 14 09:47:41 1999 Andreas Schwab <schwab@suse.de>
11198
11199 * stmt.c (expand_end_case): Return right away if the case stack is
11200 empty.
11201
11202 Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com)
11203
11204 * Makefile.in (version.c): Remove rule incorrectly brought in from
11205 the gcc2 merge.
11206
11207 Tue Sep 14 01:42:27 1999 Marc Espie <espie@cvs.openbsd.org>
11208
11209 * Makefile.in: Prepend $(SHELL) to move-if-change calls.
11210 * msdos/top.sed: Take into account a prepended $(SHELL) to
11211 move-if-change.
11212 * winnt/config-nt.sed: Likewise. Kill bogus substitution.
11213
11214 * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
11215
11216 Tue Sep 14 01:38:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
11217
11218 * regmove.c (fixup_match_1): Don't change an unchanging register.
11219 (stable_but_for_p): Renamed to:
11220 (stable_and_no_regs_but_for_p). Reject unchanging registers too.
11221 Changed all callers.
11222
11223 Tue Sep 14 01:33:15 1999 Andreas Schwab <schwab@suse.de>
11224
11225 * loop.c (strength_reduce): Don't call reg_used_between_p if the
11226 insn from BL2 is after the insn from BL.
11227
11228 Mon Sep 13 21:06:01 1999 Richard Henderson <rth@cygnus.com>
11229
11230 * recog.h (INSN_OUTPUT_FORMAT_*): New.
11231 (struct insn_data): Merge `template' and `outfun' into `output'.
11232 Add `output_format'.
11233 * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
11234 (struct data): Remove `outfun'; add `output_format'.
11235 (name_for_index): Remove declaration.
11236 (output_insn_data): Handle output formats.
11237 (process_template): Emit the bare array for @.
11238 (gen_expand, gen_split): Set output_format to NONE.
11239 * output.h (get_insn_template): Declare.
11240 * final.c (get_insn_template): New.
11241 (final_scan_insn): Use it.
11242 * toplev.c (compile_file): Likewise.
11243
11244 * c4x/c4x.c (c4x_process_after_reload): Likewise.
11245 * i860/i860.c (output_delayed_branch): Likewise.
11246 (output_delay_insn): Likewise.
11247
11248 1999-09-13 Alexandre Oliva <oliva@lsd.ic.unicamp.br>
11249
11250 * rtl.c (obstack_alloc_rtx): Removed.
11251
11252 1999-09-13 17:03 -0700 Zack Weinberg <zack@bitmover.com>
11253
11254 * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
11255
11256 Mon Sep 13 15:21:46 1999 Richard Henderson <rth@cygnus.com>
11257
11258 * i386.c (call_insn_operand): Reject const_int.
11259 (expander_call_insn_operand): Use call_insn_operand.
11260
11261 Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11262
11263 * gcc.c (getrusage): Wrap prototype arguments in PROTO().
11264
11265 1999-09-13 12:18 -0700 Zack Weinberg <zack@bitmover.com>
11266
11267 * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
11268 Use DImode operation.
11269
11270 1999-09-13 12:13 -0700 Zack Weinberg <zack@bitmover.com>
11271
11272 * gcc.c: Include sys/resource.h.
11273 (report_times): New flag.
11274 (execute): If report_times is set, calculate and report the
11275 CPU time consumed by each subprocess.
11276
11277 (rus, prus): New globals.
11278 (option_map): Add --time.
11279 (display_help): Document -time.
11280 (process_command): Set report_times if -time is given.
11281 Turn off -pipe if -time is given.
11282
11283 * invoke.texi: Document new option -time.
11284
11285 * configure.in: Check for getrusage. Check if we have to
11286 prototype getrusage.
11287 * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
11288 * configure: Regenerate.
11289 * config.in: Regenerate.
11290
11291 Mon Sep 13 12:57:06 1999 Dave Brolley <brolley@cygnus.com>
11292
11293 * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
11294 fields.
11295
11296 Mon Sep 13 10:01:33 1999 Nick Clifton <nickc@cygnus.com>
11297
11298 * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
11299 appropriate) if FINE_GRAINED_LIBRARIES is not defined.
11300 (nan): Return _thenan_sf or _thenan_df as appropriate.
11301 (L_thenan_sf): Define _thenan_sf.
11302 (L_thenan_df): Define _thenan_df.
11303
11304 * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
11305 (DPBIT_FUNCS): Add _thenan_df.
11306
11307 Mon Sep 13 09:38:53 1999 Andreas Schwab <schwab@suse.de>
11308
11309 * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and
11310 TYPE_SIZE_UNIT.
11311
11312 Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11313
11314 * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
11315
11316 * gcc.h: New file.
11317 (lang_specific_driver): Don't take a function pointer parameter.
11318 All callers changed.
11319
11320 * gcc.c: Include gcc.h.
11321 (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
11322 lang_specific_extra_outfiles, fatal): Don't declare.
11323 (multilib_defaults_raw): Constify.
11324 (read_specs): Call memset, rather than bzero.
11325 (main): Call return, not exit.
11326 (lookup_compiler): Call memcpy, not bcopy.
11327 (fatal): Make extern.
11328
11329 * cppspec.c: Include gcc.h.
11330 (lang_specific_driver): Initialize variable `quote'. Constify a
11331 char*. All calls to the function pointer parameter now
11332 explicitly call `fatal'.
11333
11334 * gccspec.c (lang_specific_driver): Include gcc.h.
11335
11336 Sun Sep 12 19:52:10 1999 Richard Earnshaw <rearnsha@arm.com>
11337
11338 * arm.c (note_invalid_constants): Use recog_data.operand_type
11339 for recog_op_type.
11340
11341 Sun Sep 12 15:53:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11342
11343 * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
11344 Declare.
11345
11346 * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
11347 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
11348 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
11349 reload_secondary_in_reload, reload_secondary_out_reload,
11350 reload_secondary_in_icode, reload_secondary_out_icode,
11351 reload_reg_rtx, reload_when_needed): Delete declarations.
11352 (struct reload): New structure.
11353 (rld): Declare new array.
11354 * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
11355 reload_reg_class, reload_inmode, reload_outmode, reload_optional,
11356 reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
11357 reload_secondary_in_reload, reload_secondary_out_reload,
11358 reload_secondary_in_icode, reload_secondary_out_icode,
11359 reload_reg_rtx, reload_when_needed): Delete definitions.
11360 (rld): New array.
11361 (whole file): Replace uses of the deleted arrays with uses of rld.
11362 * reload1.c (whole file): Replace uses of the deleted arrays with
11363 uses of rld.
11364 (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
11365 explicit loops, not with bcopy.
11366
11367 Sun Sep 12 05:00:24 1999 Richard Henderson <rth@cygnus.com>
11368
11369 * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
11370 insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
11371 insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
11372 insn_name): Delete and consolidate into new structures.
11373 (insn_operand_predicate_fn): New.
11374 (insn_output_fn): New.
11375 (insn_gen_fn): New.
11376 (struct insn_operand_data): New.
11377 (struct insn_data): New.
11378 (insn_data): New.
11379 (OUT_FCN): Update for insn_data change.
11380 * builtins.c (expand_builtin_strlen): Likewise.
11381 (expand_builtin_memcmp): Likewise.
11382 * combine.c (make_extraction, simplify_comparison): Likewise.
11383 * cse.c (canon_reg, cse_insn): Likewise.
11384 * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
11385 * expmed.c (store_bit_field, extract_bit_field): Likewise.
11386 (emit_store_flag): Likewise.
11387 * expr.c (convert_move, emit_block_move): Likewise.
11388 (clear_storage, emit_push_insn, expand_increment): Likewise.
11389 (do_store_flag): Likewise.
11390 * expr.h (GEN_FCN): Likewise.
11391 (insn_gen_function): Die.
11392 * final.c (final_scan_insn): Update for insn_data change.
11393 (output_asm_name): Likewise.
11394 * function.c (fixup_var_refs_1): Likewise.
11395 * loop.c (check_dbra_loop): Likewise.
11396 * optabs.c (expand_binop, expand_twoval_binop): Likewise.
11397 (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
11398 (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
11399 (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
11400 * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
11401 * regmove.c (gen_add3_insn): Likewise.
11402 * reload.c (push_secondary_reload, combine_reloads): Likewise.
11403 (find_reloads, find_reloads_address_1): Likewise.
11404 (debug_reload_to_stream): Likewise.
11405 * reload1.c (emit_reload_insns, gen_reload): Likewise.
11406 * stmt.c (expand_end_case): Likewise.
11407 * toplev.c (compile_file): Likewise.
11408
11409 * c4x/c4x.c (c4x_process_after_reload): Likewise.
11410 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
11411
11412 * print-rtl.c (insn_name_ptr): Remove declaration.
11413 (get_insn_name): Declare.
11414 (print_rtx): Use it.
11415 * genoutput.c (insn_name_ptr): Remove.
11416 (next_operand_number): New.
11417 (struct operand_data): New.
11418 (null_operand, odata, odata_end): New.
11419 (struct data): Use struct operand_data.
11420 (idata, idata_end): Renamed from insn_data and end_of_insn_data.
11421 (get_insn_name): Renamed from name_for_index.
11422 (output_prologue): Define NO_MD_PROTOTYPES.
11423 (output_predicate_decls): Break out from output_epilogue.
11424 Iterate over the operands list.
11425 (output_operand_data): Break out from output_epilogue. Emit
11426 just the operands list.
11427 (output_insn_data): Break out from output_epilogue. Emit just
11428 the insn data.
11429 (output_epilogue): Remove.
11430 (output_get_insn_name): New.
11431 (constraints, op_n_alternatives, predicates, address_p): Die.
11432 (modes, strict_low, seen): Die.
11433 (scan_operands): Take new param `d' instead of writing to
11434 seven global variables.
11435 (compare_operands): New.
11436 (place_operands): New.
11437 (validate_insn_alternatives): Update for struct data change.
11438 (gen_insn): Don't zero or copy 7 global arrays. Update for
11439 scan_operands; call place_operands.
11440 (gen_peephole, gen_expand, gen_split): Likewise.
11441 (main): Update for new output routines.
11442
11443 * genattr.c (insn_name_ptr): Remove.
11444 (get_insn_name): New function.
11445 * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
11446 * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
11447 * genrecog.c: Likewise.
11448
11449 * alpha.md (adddi3): Make `pattern' array static.
11450
11451 Sun Sep 12 22:05:21 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11452
11453 * config/c4x/c4x.h (c4x_rpts_cycles_string,
11454 c4x_cpu_version_string): Constify char *.
11455 * config/c4x/c4x.c (c4x_rpts_cycles_string,
11456 c4x_cpu_version_string): Likewise.
11457
11458 Sat Sep 11 23:28:33 1999 Richard Henderson <rth@cygnus.com>
11459
11460 * tree.c (save_tree_status): Revert 10 Sep change.
11461 (restore_tree_status): Likewise. Call obstack_free with NULL
11462 before freeing the obstack proper.
11463
11464 Sat Sep 11 23:23:46 1999 Richard Henderson <rth@cygnus.com>
11465
11466 * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
11467
11468 * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
11469 surrounding context.
11470
11471 Sat Sep 11 19:52:43 1999 Mark Mitchell <mark@codesourcery.com>
11472
11473 * tree.c (type_hash_canon): Put all types in the hash-table, when
11474 GC'ing.
11475
11476 Sat Sep 11 18:37:04 1999 Richard Henderson <rth@cygnus.com>
11477
11478 * recog.h (struct recog_data, recog_data): New.
11479 (recog_foo variables): Kill.
11480 * recog.c (recog_operand, recog_operand_loc): Kill.
11481 (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
11482 (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
11483 (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
11484 (recog_data): Define.
11485 (extract_insn): Update all recog_foo references to use recog_data.
11486 (preprocess_constraints, constrain_operands): Likewise.
11487 * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
11488 * genattrtab.c (main): Likewise.
11489 * genextract.c (main): Likewise.
11490 * genoutput.c: Likewise.
11491 * genrecog.c (write_subroutine, main): Likewise.
11492 * local-alloc.c (block_alloc): Likewise.
11493 * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
11494 * regclass.c (scan_one_insn, record_reg_classes): Likewise.
11495 * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
11496 * reload.c (find_reloads, find_reloads_toplev): Likewise.
11497 * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
11498 (reload_cse_simplify_operands): Likewise.
11499
11500 * arc/arc.c (arc_final_prescan_insn): Likewise.
11501 * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
11502 * h8300/h8300.c (notice_update_cc): Likewise.
11503 * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
11504 * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
11505 * mn10200/mn10200.c (notice_update_cc): Likewise.
11506 * mn10300/mn10300.c (notice_update_cc): Likewise.
11507 * romp/romp.c (update_cc): Likewise.
11508 * sparc/sparc.c (check_pic): Likewise.
11509 * v850/v850.c (notice_update_cc): Likewise.
11510
11511 * genemit.c (main): Don't declare recog_operand.
11512
11513 Sat Sep 11 12:41:55 1999 Alex Samuel <samuel@codesourcery.com>
11514
11515 * ggc.h (rtvec_def): Forward declare.
11516 (tree_node): Likewise.
11517 (ggc_root): Define.
11518 (roots): Declare.
11519 (ggc_set_mark_rtx): Add prototype.
11520 (ggc_set_mark_rtvec): Likewise.
11521 (ggc_set_mark_tree): Likewise.
11522 * ggc-simple.c (ggc_root): Don't define.
11523 (roots): Don't declare.
11524 (ggc_mark_rtx): Remove.
11525 (ggc_mark_rtvec): Likewise.
11526 (ggc_mark_tree): Likewise.
11527 (ggc_mark_varray): Likewise.
11528 (ggc_mark_tree_hash_table_entry): Likewise.
11529 (ggc_mark_tree_hash_table): Likewise.
11530 (ggc_set_mart_rtx): New function.
11531 (ggc_set_mark_rtvec): Likewise.
11532 (ggc_set_mark_tree): Likewise.
11533 (ggc_add_root): Remove.
11534 (ggc_add_rtx_root): Likewise.
11535 (ggc_remove_tree_root): Likewise.
11536 (ggc_add_string_root): Likewise.
11537 (ggc_add_tree_varray_root): Likewise.
11538 (ggc_add_tree_hash_table_root): Likewise.
11539 (ggc_del_root): Likewise.
11540 (ggc_mark_rtx_ptr): Likewise.
11541 (ggc_mark_tree_ptr): Likewise.
11542 (ggc_mark_string_ptr): Likewise.
11543 (ggc_mark_tree_varray_ptr): Likewise.
11544 (ggc_mark_tree_hash_table_ptr): Likewise.
11545 * ggc-common.c: New file.
11546 * Makefile.in (OBJS): Add ggc-common.o.
11547 (ggc-common.o): List dependencies.
11548
11549 1999-09-10 22:37 -0700 Zack Weinberg <zack@bitmover.com>
11550
11551 * cppalloc.c (xstrdup): Use memcpy.
11552 * cpperror.c (cpp_print_containing_files): Don't use
11553 cpp_notice.
11554 * cpplib.c (conditional_skip): Set temp->lineno.
11555 (do_endif): Make error message less obscure.
11556 (if_directive_name): New function.
11557 (cpp_get_token [case EOF]): Unwind the if stack and generate
11558 error messages for each unterminated conditional in this file.
11559 (parse_string): Do not behave differently if -traditional.
11560
11561 Fri Sep 10 14:04:07 1999 Richard Henderson <rth@cygnus.com>
11562
11563 * builtins.c (expand_builtin_va_arg): Cope with an array-type
11564 va_list decomposing to pointer-type.
11565 * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
11566 (rs6000_va_arg): Likewise.
11567
11568 Fri Sep 10 13:21:21 1999 Jim Wilson <wilson@cygnus.com>
11569
11570 * except.c (start_dynamic_handler): Compute size using
11571 STACK_SAVEAREA_MODE.
11572
11573 Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11574
11575 * protoize.c: Remove various __STDC__ and POSIX hacks. Don't
11576 include directory headers. Don't define strrchr. Don't provide
11577 my_* replacement functions. Prefer PTR over `pointer_type'.
11578 Don't prototype system functions. Don't redefine getopt.
11579
11580 (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
11581 safe_read, safe_write, save_pointers, restore_pointers,
11582 is_id_char, in_system_include_dir, directory_specified_p,
11583 file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
11584 find_corresponding_lparen, referenced_file_is_newer,
11585 save_def_or_dec, munge_compile_params, gen_aux_info_file,
11586 process_aux_info_file, identify_lineno, check_source,
11587 seek_to_line, forward_to_next_token_char, output_bytes,
11588 output_string, output_up_to, other_variable_style_function,
11589 find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
11590 do_processing, is_syscalls_file, rename_c_file, find_extern_def,
11591 find_static_definition, connect_defs_and_decs, add_local_decl,
11592 add_global_decls, needs_to_be_converted, visit_each_hash_node,
11593 add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
11594 edit_fn_declaration, edit_formals_lists, edit_fn_definition,
11595 scan_for_missed_items, edit_file, string_list_cons): Add static
11596 prototypes.
11597 (standard_exec_prefix, target_machine, target_version,
11598 default_syscalls_dir, string_list, string_list_cons, find_file,
11599 do_cleaning): Constify a char*.
11600 (safe_read, safe_write): Use PTR, not a char*.
11601 (is_id_char): Take an int, not a char.
11602 (main): Add prototype. Call return, not exit.
11603
11604 Fri Sep 10 16:48:26 1999 Andrew Haley <aph@cygnus.com>
11605
11606 * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
11607 when comparing types.
11608
11609 Fri Sep 10 08:43:32 1999 Richard Henderson <rth@cygnus.com>
11610
11611 * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
11612 (strength_reduce): Release the varrays from the no-bivs early exit.
11613
11614 * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
11615 the loop over the registers.
11616
11617 * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
11618 for a new obstack.
11619 (restore_tree_status): Check that instead when freeing the obstack.
11620
11621 Wed Sep 8 16:12:04 1999 Andrew Haley <aph@cygnus.com>
11622
11623 * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
11624 as pointers.
11625
11626 Fri Sep 10 11:58:55 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11627
11628 * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some
11629 operand size modifiers.
11630
11631 Fri Sep 10 10:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11632
11633 * c-common.c (c_common_nodes_and_builtins): Don't build
11634 va_list_type_node.
11635 * c-common.h (enum c_tree_index and related accesor macros): Remove
11636 everything now declared in tree.h.
11637 * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
11638 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
11639 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
11640 (error_mark_node, void_type_node, char_type_node, integer_type_node,
11641 unsigned_type_node, ptr_type_node, va_list_type_node,
11642 integer_zero_node, null_pointer_node, integer_one_node): Delete.
11643 (init_decl_processing): Call build_common_tree_nodes and
11644 build_common_tree_nodes_2 instead of building their nodes here.
11645 Don't add roots for these nodes.
11646 * stor-layout.c (size_zero_node, size_one_node): Delete.
11647 (set_sizetype): Make a new node for bitsizetype each time.
11648 * tree.c (global_trees): New variable.
11649 (init_obstacks): Add a gc root for it.
11650 (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
11651 LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
11652 DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
11653 (build_common_tree_nodes): New function.
11654 (fix_sizetype): New function.
11655 (build_common_tree_nodes_2): New function.
11656 * tree.h (enum tree_index): New.
11657 (global_trees): Declare.
11658 Add accessor macros for all nodes now moved to global_trees.
11659 Delete their declarations.
11660
11661 Thu Sep 9 20:15:46 1999 Richard Henderson <rth@cygnus.com>
11662
11663 * c-decl.c (finish_function): When processing a nested function,
11664 push and pop GC context around rest_of_compilation.
11665
11666 Thu Sep 9 16:42:06 1999 Richard Henderson <rth@cygnus.com>
11667
11668 * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
11669 Default ix86_arch to PROCESSOR_I386.
11670 * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo.
11671 (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
11672 (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
11673 (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
11674 __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__.
11675 (EXTRA_SPECS): Remove deleted specs.
11676
11677 Thu Sep 9 16:03:06 1999 Richard Henderson <rth@cygnus.com>
11678
11679 * function.c (assign_stack_local_1): Allocate from
11680 function->x_frame_offset, not frame_offset.
11681
11682 Thu Sep 9 14:36:31 1999 Mark Mitchell <mark@codesourcery.com>
11683
11684 * ggc.h (lang_cleanup_tree): Remove.
11685 * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
11686 * ggc-callbacks.c (lang_cleanup_tree): Remove.
11687
11688 * c-decl.c (finish_struct): Use ggc_alloc to allocate
11689 TYPE_LANG_SPECIFIC when garbage collecting.
11690 (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
11691 (lang_cleanup_tree): Remove.
11692
11693 Thu Sep 9 14:23:02 1999 Jason Merrill <jason@yorick.cygnus.com>
11694
11695 * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
11696 * crtstuff.c: Not here.
11697 * dwarf2out.c: Or here.
11698 * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
11699 info.
11700
11701 Thu Sep 9 09:40:58 1999 Mark Mitchell <mark@codesourcery.com>
11702
11703 * function.h (free_after_compilation): Remove decl parameter.
11704 (free_varasm_status0: Likewise.
11705 (free_emit_status): Likewise.
11706 (free_stmt_status): Likewise.
11707 (free_after_compilation): Likewise.
11708 (init_lang_status): New variable.
11709 (free_lang_status): Likewise.
11710 * emit-rtl.c (free_emit_status): Make decl parameter implicit.
11711 * function.c (init_lang_status): New variable.
11712 (free_lang_status): Likewise.
11713 (push_function_context_to): Don't set function::decl here.
11714 (free_after_copmilation): Make decl parameter implicit. Call
11715 free_lang_status if defined.
11716 (prepare_function_start): Call init_lang_status if defined.
11717 (init_function_start): Set function::decl here.
11718 * profile.c (output_func_start_profiler): Don't call pushdecl
11719 until we've actually started the function.
11720 * stmt.c (free_stmt_status): Make decl parameter implicit.
11721 * toplev.c (rest_of_compilation): Don't pass decl to
11722 free_after_compilation.
11723 * varasm.c (free_varasm_status): Likewise.
11724
11725 Thu Sep 9 17:23:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
11726
11727 * except.c (call_get_eh_context): Add root when allocating static
11728 tree variable.
11729
11730 Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw <rearnsha@arm.com>
11731
11732 * arm.c: Include "ggc.h".
11733 (arm_add_gc_roots): New function.
11734 (arm_override_options): Call it.
11735 (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
11736
11737 * arm.md (define_asm_attributes): Add a pool_range attribute.
11738
11739 Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell <nathan@acm.org>
11740
11741 * extend.texi (Volatiles): New node.
11742
11743 Thu Sep 9 03:37:31 1999 Richard Henderson <rth@cygnus.com>
11744
11745 * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
11746 (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
11747 (struct ggc_any): Replace `mark' with `magic_mark'.
11748 (ggc_alloc_string): Use memcpy, not bcopy.
11749 (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc.
11750 (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
11751 (ggc_free_any): New.
11752 (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string.
11753 (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match.
11754 (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK.
11755 Use IS_MARKED. Use ggc_free_any.
11756
11757 1999-09-09 Scott Bambrough <scottb@netwinder.org>
11758
11759 * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
11760
11761 Thu Sep 9 01:55:21 1999 Richard Henderson <rth@cygnus.com>
11762
11763 * toplev.c (main): Always init_ggc.
11764
11765 Wed Sep 8 23:53:22 1999 Richard Henderson <rth@cygnus.com>
11766
11767 * except.c (find_all_handler_type_matches): Free the list if
11768 we found no matches.
11769
11770 * combine.c (SUBST): Break out to a real function do_SUBST.
11771 (SUBST_INT): Likewise.
11772 * gcse.c (free_pre_mem): Free `temp_bitmap'.
11773 (pre_insert): Free `inserted'.
11774 * loop.c (basic_induction_var): Always set `location'.
11775
11776 * function.c (expand_function_end): Add initial_trampoline as a root.
11777 * rtl.h (init_varasm_once): Declare.
11778 * toplev.c (compile_file): Call it.
11779 * ggc-simple.c (ggc_mark_string_ptr): New.
11780 (ggc_add_string_root): New.
11781 (ggc_collect): Disable collection avoidance temporarily.
11782 * ggc.h (ggc_add_string_root): Declare.
11783 * except.c (create_rethrow_ref): Use ggc_alloc_string.
11784 * optabs.c (init_libfuncs): Likewise.
11785 * varasm.c (named_section): Use ggc_alloc_string.
11786 (make_function_rtl): Likewise.
11787 (make_decl_rtl): Likewise.
11788 (assemble_static_space): Likewise.
11789 (assemble_trampoline_template): Likewise.
11790 (output_constant_def): Likewise.
11791 (force_const_mem): Likewise.
11792 (mark_const_hash_entry): New.
11793 (mark_pool_sym_hash_table): New.
11794 (mark_varasm_state): Use it.
11795 (init_varasm_once): New.
11796
11797 * expr.h (init_one_libfunc): Declare.
11798 * optabs.c (init_one_libfunc): New.
11799 (init_optabs): Use it.
11800 * config/gofast.h: Likewise.
11801 * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
11802 * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
11803
11804 Thu Sep 9 13:46:06 1999 Geoffrey Keating <geoffk@cygnus.com>
11805
11806 * Makefile.in (cppexp.o): Depend on cpphash.h.
11807 * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
11808 Include cpphash.h.
11809 * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
11810 * cpplib.c (do_define): Generalise to handle poisoned definitions,
11811 redefining poisoned identifiers, etc.
11812 (do_undef): Don't allow poisoned identifiers to be undefined.
11813 (do_pragma): Add #pragma poison.
11814 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
11815
11816 * cccp.c: Add T_POISON node type.
11817 (special_symbol): Handle `defined(xxx)' and plain `xxx' for
11818 poisoned xxx.
11819 (do_define): Generalise to handle poisoned definitions,
11820 redefining poisoned identifiers, etc.
11821 (do_undef): Don't allow poisoned identifiers to be undefined.
11822 (do_pragma): Add #pragma poison.
11823 (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
11824
11825 * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
11826 * c-pragma.h: Add ps_poison state. We now always have generic
11827 pragmas.
11828
11829 Wed Sep 8 20:30:42 1999 Mark Mitchell <mark@codesourcery.com>
11830
11831 * ggc.h (ggc_alloc): New function.
11832 (ggc_mark): Likewise.
11833 * ggc-simple.c (ggc_any): New structure.
11834 (ggc_status): Add anys.
11835 (n_anys_collected): New variable.
11836 (ggc_alloc): Define.
11837 (ggc_mark): Likewise.
11838 (ggc_collect): Collect the anys.
11839
11840 Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11841
11842 * c-decl.c (mark_binding_level): Make static to match prototype.
11843
11844 Wed Sep 8 16:41:27 1999 Richard Henderson <rth@cygnus.com>
11845
11846 * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
11847
11848 Wed Sep 8 16:07:52 1999 Richard Henderson <rth@cygnus.com>
11849
11850 * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
11851 will use into account. Expand the max width to 5.
11852 * rtl.c: Likewise.
11853
11854 Wed Sep 8 16:01:14 1999 Richard Henderson <rth@cygnus.com>
11855
11856 * ggc-simple.c (ggc_free_rtx): Poison the correct amount
11857 for the rtx length.
11858
11859 Wed Sep 8 15:23:54 1999 Richard Henderson <rth@cygnus.com>
11860
11861 * alpha.md (call value patterns): Remove the result predicates.
11862
11863 Wed Sep 8 13:35:38 1999 Richard Henderson <rth@cygnus.com>
11864
11865 * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
11866 last change.
11867
11868 Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11869
11870 * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
11871 changed from extern char *, to extern PTR. Also fix typo in
11872 NEED_DECLARATION_REALLOC test.
11873
11874 * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
11875
11876 Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11877
11878 * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
11879 ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
11880 ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
11881 ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
11882
11883 * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
11884
11885 * cccp.c (pcfinclude): Likewise.
11886
11887 * global.c (allocno_compare): Likewise.
11888
11889 * haifa-sched.c (rank_for_schedule): Likewise.
11890
11891 * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
11892
11893 * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
11894
11895 * stupid.c (stupid_reg_compare): Likewise.
11896
11897 * tree.c (_obstack_allocated_p): Likewise.
11898
11899 * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
11900
11901 1999-09-08 Bruce Korb autogen@linuxbox.com
11902
11903 * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
11904 why "gperf -F" fails.
11905 * gcc/cp/Makefile.in: ditto
11906 * gcc/Makefile.in: ditto
11907 * gcc/java/Makefile.in: ditto
11908
11909 Wed Sep 8 04:43:22 1999 Richard Henderson <rth@cygnus.com>
11910
11911 * lists.c: Include ggc.h.
11912 (zap_lists): New.
11913 (init_EXPR_INSN_LIST_cache): Install it.
11914
11915 * ggc-simple.c (init_ggc): Absorb the old init.
11916 (ggc_push_context): Use xcalloc.
11917 (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
11918 (ggc_collect): Add [rvts] tags to the collection stats.
11919
11920 Wed Sep 8 11:14:25 1999 Andreas Schwab <schwab@suse.de>
11921
11922 * cccp.c (main): Fix handling of -include and -imacros options.
11923
11924 Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com)
11925
11926 * cpplib.c (cpp_push_buffer): Fix order of arguments.
11927
11928 Wed Sep 8 04:44:09 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
11929
11930 * rtl.h (obstack_alloc_rtx): Removed, it's now static in
11931 genrtl.c.
11932
11933 Wed Sep 8 00:33:43 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
11934
11935 * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
11936 * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
11937 and SET_DEST. Update comment.
11938
11939 Wed Sep 8 18:55:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
11940
11941 * config/c4x/c4x.c: Include ggc.h.
11942 (c4x_add_gc_roots): New function.
11943 (c4x_override_options): Call c4x_add_gc_roots.
11944
11945 Wed Sep 8 00:00:16 1999 Richard Henderson <rth@cygnus.com>
11946
11947 * defaults.h (TARGET_ESC): Move ...
11948 * system.h: ... here, where Linas had it in the first place. Silly me.
11949
11950 Tue Sep 7 23:46:35 1999 Linas Vepstas <linas@linas.org>
11951
11952 * c-common.c: Use ISGRAPH, ISLOWER, toupper.
11953 * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
11954 genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
11955 * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
11956 * defaults.h (TARGET_ESC): Add default.
11957
11958 Tue Sep 7 23:36:59 1999 Linas Vepstas <linas@linas.org>
11959
11960 * configure.in: add i370-*-openedition, i370-*-mvs and
11961 i370-*-linux targets
11962
11963 Tue Sep 7 23:31:53 1999 Mark Mitchell <mark@codesourcery.com>
11964
11965 * dsp16xxx.c: Include ggc.h
11966 (override_options): Mark GC roots.
11967 * mn10200.c: Include ggc.h.
11968 (asm_file_start): Mark GC roots.
11969 * tahoe.c: Include ggc.h.
11970 (extensible_operand): Mark GC roots.
11971
11972 Tue Sep 7 23:23:15 1999 Linas Vepstas <linas@linas.org>
11973
11974 * README: Add section discussing status of ELF ABI.
11975 * i370.c: Fix misc spelling mistakes.
11976 (i370_label_scan): Updated notes, exception handling.
11977 (i370_function_prolog): Simplify ELF stack handling.
11978 * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
11979 (STACK_GROWS_DOWNWARD): ELF stack grows down.
11980 (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
11981 * i370.md: (movdi): Add notes.
11982 (floatsidf2): Use stack not rtca for scratch float area.
11983 (iorsi3): Correct operand constraints.
11984 * x-oe: Restore TAROUTOPTS which are used by pax.
11985
11986 Tue Sep 7 22:39:18 1999 Mark Mitchell <mark@codesourcery.com>
11987
11988 * rs6000.c: Include ggc.h.
11989 (rs6000_add_gc_roots): New function.
11990 (override_options): Call it.
11991
11992 Tue Sep 7 22:09:03 1999 Richard Henderson <rth@cygnus.com>
11993
11994 * alpha.h (alpha_compare): New.
11995 (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
11996 * alpha.c: Likewise for the definitions.
11997 (alpha_emit_conditional_branch): Update for alpha_compare.
11998 (alpha_emit_conditional_move): Likewise.
11999 * alpha.md (cmpdf, cmpdi): Likewise.
12000 (setcc patterns): Likewise. Zero alpha_compare after use.
12001 (sne): Optimize (x != 0) into (0U < x).
12002
12003 Tue Sep 7 21:55:02 1999 Richard Henderson <rth@cygnus.com>
12004
12005 * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
12006 (struct machine_function): Declare; add eh_epilogue_sp_ofs.
12007 (INIT_EXPANDERS): Remove.
12008 * alpha.c: Include ggc.h.
12009 (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
12010 (alpha_init_machine_status, alpha_mark_machine_status): New.
12011 (override_options): Install them.
12012 (struct machine_function): Moved to alpha.h.
12013 (alpha_save_machine_status, alpha_restore_machine_status): Remove.
12014 (alpha_init_expanders): Remove.
12015 (alpha_return_addr): Adjust to use current_function->machine.
12016 (alpha_ra_ever_killed): Likewise.
12017 (alpha_expand_epilogue): Likewise.
12018 * alpha.md (eh_epilogue): Likewise.
12019
12020 Wed Sep 8 14:34:42 1999 Ian Piumarta <piumarta@prof.inria.fr>
12021 Melissa O'Neill <oneill@cs.sfu.ca>
12022 Geoffrey Keating <geoffk@cygnus.com>
12023
12024 * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
12025 call-used registers (call-saved registers must still be contiguous
12026 and end with r31, of course).
12027
12028 Tue Sep 7 21:41:38 1999 Richard Henderson <rth@cygnus.com>
12029
12030 * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
12031 (self_promoting_type_p): Delete.
12032 (self_promoting_args_p): Move ...
12033 * c-common.c: ... here.
12034 (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
12035 (simple_type_promotes_to): New.
12036 * builtins.c (lang_type_promotes_to): New.
12037 (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
12038 * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
12039 * c-common.h: ... here.
12040 (self_promoting_args_p, simple_type_promotes_to): Declare.
12041 * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
12042 (grokdeclarator): Likewise.
12043 * tree.h (lang_type_promotes_to): Declare.
12044
12045 Tue Sep 7 17:15:21 1999 Mark Mitchell <mark@codesourcery.com>
12046
12047 Add some machine-dependent GC roots.
12048 * sparc.c: Include ggc.h.
12049 (sparc_add_gc_roots): New function.
12050 (mark_ultrasparc_pipeline_state): Likewise.
12051 (override_options): Call sparc_add_gc_roots.
12052 * pa.c: Include ggc.h.
12053 (pa_add_gc_roots): New function.
12054 (mark_deferred_plabels): Likewise.
12055 (override_options): Call pa_add_gc_roots.
12056 * mips.c: Include ggc.h.
12057 (mips_add_gc_roots): New function.
12058 (override_options): Use it.
12059
12060 Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12061
12062 * cpperror.c (cpp_file_line_for_message): Constify a char*.
12063
12064 * cppexp.c (parse_number, parse_charconst, cpp_lex,
12065 cpp_parse_expr): Add static prototypes.
12066 (parse_charconst): Don't cast away const-ness.
12067 (token): Constify a char*.
12068
12069 * cppfiles.c (file_name_list, include_hash, find_include_file,
12070 finclude, initialize_input_buffer): Constify a char*.
12071 (file_cleanup, find_position): Add static prototypes.
12072
12073 * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
12074 collect_expansion): Add static prototypes.
12075 (cpp_install, create_definition, monthnames): Constify a char*.
12076
12077 * cpphash.h (cpp_install): Likewise.
12078
12079 * cppinit.c (known_suffixes, default_include,
12080 dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
12081 (base_name, dump_special_to_buffer, initialize_dependency_output):
12082 Add static prototypes.
12083
12084 * cpplib.c (my_strerror): Constify a char*.
12085 (null_underflow, null_cleanup, skip_comment, copy_comment,
12086 copy_rest_of_line, handle_directive, pass_thru_directive,
12087 get_directive_token, read_line_number, cpp_print_file_and_line,
12088 v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
12089 v_cpp_warning_with_line, detect_if_not_defined,
12090 consider_directive_while_skipping): Add static prototypes.
12091 (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
12092 cpp_pedwarn_with_file_and_line): Constify a char*.
12093
12094 * cpplib.h (cpp_options, include_hash, progname, definition,
12095 cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
12096 check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
12097 find_include_file, deps_output, include_hash): Constify a char*.
12098
12099 * cppmain.c (progname): Constify.
12100 (main): Add prototype. Use return, not exit.
12101
12102 * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
12103 recognized_macro, check_macro_names, read_scan_file, write_rbrac,
12104 inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
12105 check_protection): Add static prototype.
12106 (xfree): Remove.
12107 (progname, recognized_macrom, recognized_extern): Constify a char*.
12108 (main): Add prototype.
12109
12110 * gen-protos.c (progname): Constify a char*.
12111
12112 Tue Sep 7 00:47:52 1999 Mark Mitchell <mark@codesourcery.com>
12113
12114 * emit-rtl.c (free_emit_status): Take decl as a parameter.
12115 (init_emit_once): Add more GC roots.
12116 * except.c (mark_func_eh_entry): New function.
12117 (mark_eh_node): Mark false_label and rethrow_label.
12118 (init_eh): Add more GC roots.
12119 * function.c (free_after_compilation): Take decl as a paramter.
12120 Call free_stmt_status.
12121 (mark_function_state): Don't assume x_parm_reg_stack_loc is
12122 non-NULL.
12123 * function.h (free_after_compilation): Change prototype.
12124 (free_varasm_status): Likewise.
12125 (free_emit_status): Likewise.
12126 (free_stmt_status): New function.
12127 * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
12128 Remove, replacing with ...
12129 (ggc_status): New structure.
12130 (ggc_chain): New variable.
12131 (init_gcc): Define.
12132 (ggc_push_context): New function.
12133 (ggc_pop_context): Likewise.
12134 (ggc_alloc_rtx): Adjust for use of ggc_chain.
12135 (ggc_alloc_rtvec): Likewise.
12136 (ggc_alloc_tree): Likewise.
12137 (ggc_alloc_string): Likewise.
12138 (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
12139 (ggc_mark_tree): Give language-dependent code a chance to mark
12140 `x' nodes.
12141 (ggc_mark_tree_varray): Handle empty arrays.
12142 (ggc_collect): Adjust for use of ggc_chain. Clear
12143 bytes_alloced_since_last_gc.
12144 * ggc.h (ggc_pop_context): New function.
12145 (ggc_push_context): Likewise.
12146 * print-tree.c (print_node): Don't print obstacks when GC'ing.
12147 * stmt.c (free_stmt_status): New function.
12148 (init_stmt_for_function): Clear last_expr_value.
12149 * toplev.c (rest_of_compilation): Always call free_after_compilation.
12150 Conditionalize call to ggc_collect.
12151 (main): Call init_ggc.
12152 * tree.c (push_obstacks): Do the push, even when GC'ing.
12153 (push_obstacks_nochange): Likewise.
12154 (pop_obstacks): Liekwise.
12155 * varasm.c (free_varasm_status): Take decl as a parameter.
12156
12157 Tue Sep 7 08:15:49 1999 Gavin Romig-Koch <gavin@cygnus.com>
12158
12159 * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
12160 (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
12161 * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
12162 * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
12163
12164 Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com)
12165
12166 * pa/x-pa-mpeix: New file for the MPE port.
12167
12168 * pa/quadlib.asm: New file for long double support.
12169
12170 * configure.in: Add hppa1.0-*-mpeix for MPE port.
12171 * configure: Rebuilt.
12172
12173 Tue Sep 7 10:08:40 1999 Andreas Schwab <schwab@suse.de>
12174
12175 * final.c (shorten_branches): Fix last change.
12176
12177 Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com)
12178
12179 * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
12180
12181 Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com)
12182
12183 * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for
12184 details.
12185
12186 Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12187
12188 * c-aux-info.c (concat): Don't define.
12189
12190 * cccp.c (my_strerror): Likewise. All callers changed to use
12191 xstrerror instead.
12192 (do_include): Call xstrdup, not xmalloc/strcpy.
12193 (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
12194 (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
12195
12196 * collect2.c (my_strsignal): Likewise. All callers changed to use
12197 strsignal instead.
12198 (locatelib): Call xstrdup, not xmalloc/strcpy.
12199
12200 * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
12201
12202 * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
12203
12204 * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
12205
12206 * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
12207
12208 * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
12209
12210 * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
12211
12212 * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
12213 malloc/realloc.
12214 (find_all_handler_type_matches): Likewise. Don't check return
12215 value.
12216 (get_new_handler, init_insn_eh_region, process_nestinfo): Call
12217 xmalloc, not malloc.
12218 (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero.
12219
12220 * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
12221 (init_spec): Call xcalloc, not xmalloc/bzero.
12222 (set_spec): Call xstrdup, not save_string.
12223 (record_temp_file): Call xstrdup, not xmalloc/strcpy.
12224 (find_a_file): Call xstrdup, not xmalloc/strcpy.
12225 (process_command): Call xstrdup, not save_string.
12226 (main): Call xcalloc, not xmalloc/bzero.
12227
12228 * gcov.c (xmalloc): Don't define.
12229 (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
12230 (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
12231 (output_data): Call xcalloc, not xmalloc/bzero.
12232
12233 * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
12234
12235 * mips-tdump.c (xmalloc): Don't define.
12236 (print_symbol): Call xmalloc, not malloc.
12237 (read_tfile): Call xcalloc, not calloc.
12238
12239 * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
12240 Don't define. All callers of xfree/my_strsignal changed to use
12241 free/strsignal instead.
12242 (allocate_cluster): Call xcalloc, not calloc.
12243
12244 * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
12245 Fix memory leak, free allocated memory.
12246
12247 * prefix.c (translate_name): Call xstrdup, not save_string.
12248 (update_path): Likewise.
12249
12250 * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
12251
12252 * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
12253 Don't define. Callers of xfree/savestring2 changed to use
12254 free/concat instead.
12255
12256 * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
12257 (init_elim_table): Likewise.
12258
12259 * resource.c (init_resource_info): Likewise.
12260
12261 * stupid.c (stupid_life_analysis): Likewise.
12262
12263 * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
12264 (open_dump_file): Call concat, not xmalloc/strcpy/...
12265 (clean_dump_file): Likewise.
12266 (compile_file): Call xstrdup, not xmalloc/strcpy.
12267
12268 Mon Sep 6 15:04:55 1999 Richard Henderson <rth@cygnus.com>
12269
12270 * v850.h (EXPAND_BUILTIN_VA_ARG): New.
12271 * v850.c (v850_va_arg): New.
12272
12273 Tue Sep 7 09:36:01 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12274
12275 * haifa-sched.c: Tidy comments.
12276
12277 Mon Sep 6 14:30:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12278
12279 * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
12280 (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
12281 $(out_object_file)): Depend on ggc.h.
12282 * c-common.c: Include "ggc.h".
12283 (combine_strings): If doing GC, use ggc_alloc_string.
12284 * c-decl.c: Include "ggc.h".
12285 (ggc_p): Define with value 0.
12286 (mark_binding_level): New function.
12287 (init_decl_processing): Add GC roots.
12288 (mark_c_function_context): New function.
12289 (lang_mark_false_label_stack): New function.
12290 (lang_mark_tree): New function.
12291 (lang_cleanup_tree): New function.
12292 * c-lang.c: Include "ggc.h".
12293 (lang_init): Call c_parse_init.
12294 * c-lex.c: Include "ggc.h".
12295 (check_linenum): If doing GC, don't copy filenames to permanent
12296 obstack.
12297 * c-parse.in: Include "ggc.h".
12298 (c_parse_init): New function.
12299 * c-tree.h (c_parse_init, mark_c_function_context): Declare.
12300 * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
12301
12302 * except.c (mark_eh_state): Mark more state.
12303 * function.c (mark_function_state): Likewise.
12304 * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
12305 (ggc_alloc_string) [GGC_DUMP]: Fix typo.
12306 * toplev.c (mark_file_stack): New function.
12307 (compile_file): If doing GC, use ggc_alloc_string on input filename.
12308 (main): Add root for input_file_stack.
12309
12310 * i386.c: Include "ggc.h".
12311 (ix86_mark_machine_status): New function.
12312 (override_options): Set mark_machine_status.
12313
12314 Mon Sep 6 15:26:23 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12315
12316 * tree.c (copy_node): Copy node contents also if doing GC.
12317
12318 Mon Sep 6 08:42:06 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
12319
12320 * collect2.c (scan_libraries): Fix double-thinko :-).
12321
12322 Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
12323
12324 * collect2.c (scan_libraries): Fix thinko.
12325
12326 * cse.c (delete_trivially_dead_insns): Do not skip the last
12327 insn if it is a real insn.
12328
12329 Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
12330
12331 * Makefile.in (ggc-simple.o): Depend on hash.h.
12332 * ggc.h (ggc_add_tree_hash_table_root): Declare.
12333 (ggc_mark_tree_varray): Likewise.
12334 (ggc_mark_tree_hash_table): Likewise.
12335 * ggc-simple.c: Include hash.h.
12336 (ggc_mark_tree_hash_table_ptr): New function.
12337 (ggc_mark_tree_hash_table_entry): Likewise.
12338 (ggc_mark_tree_hash_table): Likewise.
12339 (ggc_add_tree_hash_table_root): Likewise.
12340 * varray.h (const_equiv_data): Use struct rtx_def *, rather than
12341 rtx, when defining fields.
12342
12343 Sun Sep 5 18:57:42 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
12344
12345 * profile.c (output_func_start_profiler): Remove apparently
12346 nonsensical call to start_sequence.
12347
12348 Sun Sep 5 17:34:33 1999 Richard Henderson <rth@cygnus.com>
12349
12350 * clipper/clipper.c (clipper_va_start): Fix typos.
12351
12352 * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
12353 * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
12354 (spur_va_arg): New stub.
12355
12356 * configure.in: Comment out pyramid.
12357
12358 Sun Sep 5 19:11:01 1999 Michael Meissner <meissner@cygnus.com>
12359
12360 * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
12361 don't conflict with the bits that win32, cygwin, and dgux
12362 defines.
12363
12364 Sun Sep 5 09:31:56 1999 Richard Henderson <rth@cygnus.com>
12365 Bernd Schmidt <bernds@cygnus.co.uk>
12366
12367 * integrate.c (function_cannot_inline_p): Do not inline
12368 functions with forced labels.
12369
12370 Sun Sep 5 00:35:17 1999 Richard Henderson <rth@cygnus.com>
12371 Bernd Schmidt <bernds@cygnus.co.uk>
12372 Mark Mitchell <mark@codesourcery.com>
12373
12374 * Makefile.in (ggc-simple.o): Depend on varray.h.
12375 (rtl.o): Depend on ggc.h.
12376 (genattrtab.o): Depend on ggc.h.
12377 (print-tree.o): Likewise.
12378 (fold-const.o): Likewise.
12379 * emit-rtl.c (sequence_element_free_list): Remove, and all references.
12380 (make_insn_raw): Don't cache insns when GC'ing.
12381 (emit_insn_before): Likewise.
12382 (emit_insn_after): Likewise.
12383 (emit_insn): Likewise.
12384 (start_sequence): Use xmalloc to allocate the sequence_stack.
12385 (end_sequence): Add free to free it.
12386 (gen_sequence): Don't cache insns when GC'ing.
12387 (clear_emit_caches): Don't use sequence_element_free_list.
12388 (init_emit): Use xcalloc, not xmalloc+bzero.
12389 * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
12390 * function.c (pop_function_context_from): Use free to free the
12391 fixup_var_refs_queue.
12392 (put_reg_into_stack): Allocate it with xmalloc.
12393 * genattrtab.c: Include ggc.h.
12394 (operate_exp): Don't use obstack_free when GC'ing.
12395 (simplify_cond): Likewise.
12396 (simplify_text_exp): Likewise.
12397 (optimize_attrs): Likewise.
12398 * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
12399 GC'ing.
12400 (gencode): Generate a #include for ggc.h.
12401 * ggc-callbacks.c (ggc_p): Define it to zero.
12402 * ggc-none.c (ggc_p): Likewise.
12403 * ggc-simple.c: Include varray.h.
12404 (ggc_mark_tree_varray): New function.
12405 (ggc_add_tree_varray_root): Likewise.
12406 (ggc_mark_tree_varray_ptr): Likewise.
12407 * ggc.h (ggc_p): Declare.
12408 (varray_head_tag): Likewise.
12409 (ggc_add_tree_varray_root): Declare.
12410 * print-tree.c (print_node): Don't check for TREE_PERMANENT
12411 inconsistencies when GC'ing.
12412 * rtl.c: Include ggc.h.
12413 (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
12414 (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
12415 (rtx_free): Don't call obstack_free when GC'ing.
12416 * toplev.c (rest_of_compilation): Call ggc_collect after every
12417 pass, if GC'ing.
12418 * tree.c (push_obstacks): Do nothing, if GC'ing.
12419 (pop_obstacks_nochange): Likewise.
12420 (pop_obstacks): Likewise.
12421 (make_node): Use ggc_alloc_tree when GC'ing.
12422 (copy_node): Likewise.
12423 (get_identifier): Use ggc_alloc_string when GC'ing.
12424 (build_string): Likewise.
12425 (make_tree_vec): Use ggc_alloc_tree when GC'ing.
12426 (tree_cons): Likewise.
12427 (build1): Likewise.
12428 (type_hash_canon): Don't call obstack_free when GC'ing.
12429
12430 Sat Sep 4 21:52:32 1999 Richard Henderson <rth@cygnus.com>
12431
12432 * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
12433 of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
12434
12435 Sat Sep 4 20:40:19 1999 Richard Henderson <rth@cygnus.com>
12436 Bernd Schmidt <bernds@cygnus.co.uk>
12437 Mark Mitchell <mark@codesourcery.com>
12438
12439 * Makefile.in (stor-layout.o): Depend on ggc.h.
12440 (expr.o): Depend on ggc.h.
12441 (profile.o): Depend on ggc.h.
12442 (stor-layout.o): Depend on ggc.h.
12443 * emit-rtl.c (init_emit_once): Add gc roots.
12444 * expr.c: Include ggc.h.
12445 (emit_block_move): Add gc roots.
12446 (clear_storage): Likewise.
12447 * expr.h (init_stor_layout_once): New function.
12448 * profile.c: Include ggc.h.
12449 (init_arc_profiler): profiler_label is a root.
12450 * scan.c (make_sstring_space): Trust xrealloc to function
12451 correctly with first parameter NULL.
12452 * stor-layout.c: Include ggc.h.
12453 (set_sizetype): Add gc root.
12454 (init_stor_layout_once): New function.
12455 * toplev.c (compile_file): Call it.
12456
12457 Sat Sep 4 19:26:25 1999 Richard Henderson <rth@cygnus.com>
12458 Bernd Schmidt <bernds@cygnus.co.uk>
12459 Mark Mitchell <mark@codesourcery.com>
12460
12461 * Makefile.in (tree.o): Depend on ggc.h.
12462 (varasm.o): Likewise.
12463 (function.o): Likewise.
12464 (stmt.o): Likewise.
12465 (except.o): Likewise.
12466 (optabs.o): Likewise.
12467 (emit-rtl.o): Likewise.
12468 * emit-rtl.c: Include ggc.h.
12469 (sequence_element_free_list): Remove, and all references.
12470 (mark_sequence): New functions.
12471 (mark_emit_state): New function.
12472 * except.c: Include ggc.h.
12473 (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
12474 (mark_tree_label_node): New functions.
12475 (mark_eh_state): New function.
12476 * function.c: Include ggc.h.
12477 (mark_temp_slot, mark_function_chain): New functions.
12478 (mark_function_state): New function.
12479 (init_function_once): New function.
12480 * function.h (init_function_once): New function.
12481 * ggc-callbacks.c (lang_mark_false_label_stack): New function.
12482 * ggc.h (label_node): Declare.
12483 (eh_status, emit_status, stmt_status, varasm_status): Likewise.
12484 (lang_mark_false_label_stack): New function.
12485 (mark_temp_slot): Remove declaration.
12486 (mark_function_chain): Likewise.
12487 (mark_eh_state): Adjust prototype.
12488 (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
12489 Likewise.
12490 * optabs.c: Include ggc.h.
12491 (mark_optab): New function.
12492 (init_optabs): Add gc roots.
12493 * stmt.c: Include ggc.h.
12494 (mark_cond_nesting, mark_loop_nesting): New functions.
12495 (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
12496 (mark_stmt_state): New function.
12497 * toplev.c (compile_file): Call init_function_once.
12498 * tree.c: Include ggc.h.
12499 (type_hash): Move declaration earlier in file.
12500 (TYPE_HASH_SIZE, type_hash_table): Likewise.
12501 (init_obstacks): Add gc roots.
12502 (mark_type_hash): New function.
12503 * varasm.c: Include ggc.h.
12504 (mark_pool_constant): New function.
12505 (mark_varasm_state): New function.
12506
12507 Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12508
12509 * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
12510
12511 Sat Sep 4 18:01:45 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12512
12513 * c-decl.c (struct language_function): Renamed from struct c_function.
12514 Delete elt NEXT.
12515 (c_function_chain): Delete.
12516 (push_c_function_context): New arg F. Don't warn about nested
12517 functions here. Fill LANGUAGE elt of F. Delete code to update
12518 c_function_chain. Don't call push_function_context.
12519 (pop_c_function_context): New arg F. Restore from there instead of
12520 from c_function_chain. Don't call pop_function_context. Clear out
12521 LANGUAGE field of F when done.
12522 * c-lang.c: Include "function.h"
12523 (lang_init): Initialize save_lang_status and restore_lang_status.
12524 * c-parse.in (nested_function, nested_function_notype): Warn about
12525 nested functions. Call push_function_context/pop_function_context
12526 instead of the _c_ variants.
12527 * c-tree.h (push_c_function_context, pop_c_function_context): Update
12528 prototype.
12529 * Makefile.in (c-lang.o): Update dependencies.
12530
12531 * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
12532 regno_pointer_flag, regno_pointer_align.
12533 (gen_reg_rtx): Use xrealloc to enlarge them.
12534 (free_emit_status): New function.
12535 * function.c (mark_machine_status, mark_lang_status): New variables.
12536 (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge
12537 in some bits from assign_stack_local. All callers changed to use new
12538 name.
12539 (assign_stack_local): Just call assign_stack_local_1.
12540 (free_after_compilation): New function.
12541 (put_reg_into_stack): Simplify to always call assign_stack_local_1.
12542 (trampoline_address): Likewise.
12543 (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
12544 (prepare_function_start): Explicitly clear some more variables.
12545 * function.h (struct function): New elt can_garbage_collect.
12546 (mark_machine_status, mark_lang_status): Declare variables.
12547 (free_after_compilation, free_emit_status, free_varasm_status,
12548 init_varasm_status): Declare functions.
12549 * toplev.c (rest_of_compilation): Call free_after_compilation when
12550 done with the current function.
12551 * varasm.c (free_varasm_status): New function.
12552
12553 Sat Sep 4 17:15:13 1999 Richard Henderson <rth@cygnus.com>
12554
12555 * sparc.h (EXPAND_BUILTIN_VA_START): Define.
12556 (EXPAND_BUILTIN_VA_ARG): Define.
12557 * sparc.c (sparc_va_start): New.
12558 (sparc_va_arg): New.
12559
12560 Sun Sep 5 11:11:59 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12561
12562 * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
12563
12564 Sun Sep 5 10:13:19 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12565
12566 * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
12567
12568 Sat Sep 4 13:44:01 1999 Mark Mitchell <mark@codesourcery.com>
12569
12570 * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
12571 (OBJS): Add $(GGC).
12572 (ggc-callbacks.o): New target.
12573 * ggc-callbacks.c: New file.
12574
12575 Sat Sep 4 22:53:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12576
12577 * expr.h: Collapse individual optab and libfunc vars to arrays.
12578 (optab_index, libfunc_index): New enumerations.
12579 (optab_table, libfunc_table): New arrays.
12580 Add accessor macros for both.
12581
12582 * optabs.c (optab_table, libfunc_table): New.
12583 Delete declarations for individual optab and libfunc vars.
12584
12585 Sat Sep 4 12:57:17 1999 Richard Henderson <rth@cygnus.com>
12586
12587 * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
12588
12589 Sat Sep 4 11:19:52 1999 Richard Henderson <rth@cygnus.com>
12590
12591 * Makefile.in (GGC, GGC_LIB): New.
12592 (HOST_RTL): Include ggc-none.o.
12593 (ggc-simple.o): New target.
12594 (ggc-none.o): Likewise.
12595 * tree.h (tree_common): Add gc_mark.
12596 * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
12597 (struct rtvec_def): Add gc_mark.
12598 * emit-rtl.c (global_rtl): Update static initializers to contain
12599 enough initializers.
12600 * ggc.h, ggc-none.c, ggc-simple.c: New files.
12601 * toplev.c (gc_time): New variable.
12602 (all_time): New variable.
12603 (compile_file): Print gc time.
12604 (print_time): Calculate percentage of the whole.
12605
12606 Sat Sep 4 13:11:01 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12607
12608 Change obstack memory management and varasm constant pool handling so
12609 that nested functions are treated like any other functions.
12610 * function.c (init_machine_status): New variable.
12611 (push_function_context_to): Set contains_functions for the outer
12612 function. Don't call save_varasm_status.
12613 (pop_function_context_from): Don't call restore_varasm_status. Don't
12614 set current_function_contains_functions.
12615 (prepare_function_start): Call init_varasm_status rather than
12616 init_const_rtx_hash_table. Call (*init_machine_status) if the pointer
12617 is non-null.
12618 * function.h (struct function) Add field varasm. Delete fields
12619 inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
12620 last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
12621 (init_machine_status): Declare.
12622 (save_varasm_status, restore_varasm_status): Delete declarations.
12623 (save_tree_status, restore_tree_status): Delete last argument.
12624 * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying
12625 code. All callers changed.
12626 (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
12627 save_constants_in_decl_trees, restore_constants, save_constants,
12628 save_for_inline_eh_labelmap, save_for_inline_copying): Delete
12629 functions.
12630 (inlining): New variable.
12631 (reg_map, label_map, insn_map, orig_asm_operands_vector,
12632 copy_asm_operands_vector, copy_asm_constraints_vector): Delete
12633 variables.
12634 (save_for_inline_nocopy): Don't save constants.
12635 Don't set inl_emit field in current_function.
12636 (expand_inline_function): Use emit field, not inl_emit, of the inlined
12637 function. Set new variable inlining before
12638 calling copy_rtx_and_substitute.
12639 (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
12640 constant pool references if inlining is nonzero.
12641 Delete ADDRESS and (most of the) CONST cases.
12642 (output_inline_function): Save and restore current_function/
12643 current_function_decl. Delete restore_constants code. Don't call
12644 init_const_rtx_hash_table.
12645 * output.h (init_const_rtx_hash_table): Don't declare.
12646 * rtl.h (struct function): Declare.
12647 (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
12648 * toplev.c (rest_of_compilation): Don't treat nested functions or
12649 functions containing them specially. Delete all code to deal with
12650 save_for_inline_copying.
12651 * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
12652 inline_obstacks): Delete variables.
12653 (save_tree_status): Lose arg CONTEXT. All callers changed.
12654 Simply allocate a new function_maybepermanent_obstack for the new
12655 function, delete all the special cases.
12656 Don't save inline_obstacks.
12657 (restore_tree_status): Lose arg CONTEXT. All callers changed.
12658 Delete special handling for function_maybepermanent_obstack; simply
12659 free it if empty.
12660 Don't restore inline_obstacks.
12661 (permanent_allocation): Delete code that frees inline_obstacks.
12662 (print_inline_obstack_statistics): Delete function.
12663 (dump_tree_statistics): Don't call it.
12664 * varasm.c (struct varasm_status): New.
12665 (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
12666 last_pool, pool_offset, const_double_chain): Delete global
12667 variables, replace with accessor macros.
12668 (immed_double_const): Don't walk const_double_chain outside a
12669 function, but don't treat nested functions specially anymore.
12670 (immed_real_const_1): Likewise.
12671 (clear_const_double_mem): Don't treat nested functions specially.
12672 (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
12673 (save_varasm_status, restore_varasm_status): Delete functions.
12674 (init_varasm_status): New function.
12675 (force_const_mem): Don't treat nested functions specially.
12676 (find_pool_constant): Accept new arg F, search for constants in
12677 that function's pool rather than the current one. All callers
12678 changed.
12679 (get_pool_constant_for_function, get_pool_mode_for_function): New
12680 functions.
12681
12682 * i386.c (init_386_machine_status): New function, mostly from
12683 clear_386_stack_locals.
12684 (struct machine_functions): Rename element names to avoid name
12685 clashes.
12686 (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
12687 macros, replacing global variables.
12688 (clear_386_stack_locals, save_386_machine_status,
12689 restore_386_machine_status): Delete functions.
12690 (override_options): Initialize init_machine_status.
12691 * i386.h (INIT_EXPANDERS): Delete macro.
12692 (save_386_machine_status, restore_386_machine_status,
12693 clear_386_stack_locals): Delete declarations.
12694
12695 Sat Sep 4 16:56:28 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12696
12697 * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
12698 (doloop_begin): Simplify pattern and use emit_jump_insn.
12699 (doloop_end): Simplify pattern, switch operand order,
12700 and use emit_jump_insn.
12701
12702 Fri Sep 3 19:02:38 1999 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
12703
12704 * function.h (struct function): Add new element LANGUAGE.
12705 (save_lang_status): Declare new variable.
12706 (restore_lang_status): Likewise.
12707 * function.c (save_lang_status): Define.
12708 (restore_lang_status): Likewise.
12709 (push_function_context_to): Call language-specific save function.
12710 (pop_function_context_from): Call language-specific restore function.
12711
12712 Fri Sep 3 01:16:18 1999 Alasdair Baird <alasdair@wildcat.demon.co.uk>
12713
12714 * i386.md (movsf_1): Check REG_P before use of REGNO.
12715 (movdf_1): Likewise.
12716 (movxf_1): Likewise.
12717 (extendsfdf2): Likewise.
12718 (extendsfxf2): Likewise.
12719 (extenddfxf2): Likewise.
12720
12721 Sat Sep 4 11:37:15 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
12722
12723 * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
12724 constants into memory.
12725 (c4x_shiftable_constant): New function.
12726 * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
12727 (c4x_shiftable_constant): Declare.
12728 * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
12729 ashlqi3_noclobber): Add new patterns and associated splitters.
12730
12731 Fri Sep 3 16:22:17 1999 Richard Henderson <rth@cygnus.com>
12732
12733 * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
12734 * dwarf2out.c (dwarf2out_frame_init): Likewise.
12735 * final.c (shorten_branches): Likewise.
12736 * global.c (global_alloc): Likewise.
12737 * haifa-sched.c (build_control_flow): Likewise.
12738 * stmt.c (check_for_full_enumeration_handling): Likewise.
12739 (estimate_case_costs): Likewise.
12740
12741 Fri Sep 3 15:49:56 1999 Mark Mitchell <mark@codesourcery.com>
12742
12743 * rtl.h (RTL_CHECKC2): Fix typo in last change.
12744
12745 Fri Sep 3 15:13:34 1999 Richard Henderson <rth@cygnus.com>
12746
12747 * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
12748 (recompute_reg_usage): Likewise.
12749 * rtlanal.c (find_regno_fusage): Likewise.
12750
12751 * rtl.c (rtl_check_failed_code1): New function.
12752 (rtl_check_failed_code2): New.
12753 * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
12754 (RTL_CHECKC1, RTL_CHECKC2): New.
12755 (XC*): New accessor macros.
12756 (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
12757 (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
12758 (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
12759 (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
12760 (TRAP_*, RANGE_INFO_*): Likewise.
12761
12762 Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12763
12764 * Makefile.in (tlink.o): Don't depend on toplev.h.
12765
12766 * collect2.c (c_file, o_file, export_file, import_file, ldout,
12767 output_file, nm_file_name, ldd_file_name, strip_file_name,
12768 c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
12769 add_prefix, prefix_from_env, prefix_from_string, do_wait,
12770 fork_execute, maybe_unlink, add_to_list,
12771 extract_init_priority, write_list, dump_list,
12772 dump_prefix_list, write_list_with_asm, write_c_file,
12773 write_c_file_stat, write_c_file_glob, scan_prog_file,
12774 scan_libraries, is_in_list, resolve_lib_name, use_import_list,
12775 ignore_library, extract_string, notice, dump_file, target_machine,
12776 collect_wait, collect_execute, libname, locatelib, aix_std_libs,
12777 read_file, print_load_command): Constify a char*.
12778 (fdopen, error, fatal, fatal_perror): Don't prototype.
12779 (my_strerror): Remove. All callers use xstrerror instead.
12780 (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
12781 (main): Add prototype. Constify lots of char* ptrs. Change calls
12782 to xcalloc/strcpy/strcat/... to one call to concat.
12783 (main, scan_prog_file, scan_libraries): Use an intermediate
12784 `const char **' to build an argv array.
12785 (mapfile, libselect, libcompare, locatelib): Add prototypes.
12786
12787 * collect2.h (collect_execute, collect_wait, dump_file,
12788 file_exists): Constify a char*.
12789 (ldout, c_file_name, temporary_obstack, permanent_obstack,
12790 temporary_firstobj, vflag, debug): Add extern declarations.
12791 (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
12792
12793 * tlink.c: Don't include toplev.h.
12794 (vflag, debug, ldout, c_file_name, temporary_obstack,
12795 permanent_obstack, temporary_firstobj): Don't declare.
12796 (tlink_execute, frob_extension, symbol_hash_lookup,
12797 file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
12798 recompile_files, read_repo_files, demangle_new_symbols,
12799 scan_linker_output): Constify a char*.
12800 (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
12801 do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
12802
12803 Fri Sep 3 18:09:24 1999 Andrew Haley <aph@cygnus.com>
12804
12805 * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
12806 (relative) rather than jsr (absolute) subroutine call insns.
12807 * config/m68k/m68k-coff.h: Ditto.
12808
12809 Fri Sep 3 17:24:31 1999 Richard Earnshaw <rearnsha@arm.com>
12810
12811 * arm.c (note_invalid_constants): No need to ignore ASMs, we can
12812 now rework these too.
12813 (arm_reorg): If an insn can't reach the end of the current pool,
12814 ensure that we emit that pool before the insn.
12815
12816 Fri Sep 3 09:14:32 1999 Marc Espie <espie@tetto.liafa.jussieu.fr>
12817
12818 * tlink.c (scan_linker_output): Skip the initial underscore in
12819 a mangled name if appropriate.
12820
12821 Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12822
12823 * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
12824 objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
12825 error_with_ivar, gen_declarator, create_builtin_decl,
12826 my_build_string, generate_descriptor_table, generate_ivars_list,
12827 generate_dispatch_table, check_protocols, TAG_GETCLASS,
12828 TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
12829 dump_base_name, lang_decode_option, build_encode_expr,
12830 start_class, finish_class, encode_pointer, really_start_method,
12831 gen_declaration, dump_interface, handle_class_ref, handle_impent):
12832 Constify.
12833 (objc_demangle, objc_printable_name, generate_struct_by_value_array):
12834 Add static prototypes.
12835 (build_objc_string_decl, build_selector_reference_decl,
12836 encode_bitfield, build_class_reference_decl): Remove unused
12837 parameter, all callers changed.
12838 (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
12839 (objc_printable_name): Likewise. Change second parameter to type int.
12840 (init_objc): Use memcpy, not bcopy, to avoid casts.
12841
12842 Thu Sep 2 21:49:52 1999 Richard Henderson <rth@cygnus.com>
12843
12844 * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
12845 reg notes on a deleted insn.
12846 * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
12847
12848 Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com)
12849
12850 * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
12851
12852 Thu Sep 2 22:00:08 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12853
12854 * stmt.c (expand_asm_operands): Fix index into inout_mode when
12855 reading it.
12856
12857 Thu Sep 2 13:00:48 1999 Richard Henderson <rth@cygnus.com>
12858
12859 * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
12860 * tm.texi (MD_ASM_CLOBBERS): Document it.
12861
12862 Thu Sep 2 10:22:40 1999 Richard Henderson <rth@cygnus.com>
12863
12864 * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
12865 * except.c (expand_rethrow): Remove unused variable.
12866 * expr.c (do_jump_by_parts_greater_rtx): Likewise.
12867 * flow.c (replace_insns): Likewise.
12868 (create_edge_list, verify_edge_list): Likewise.
12869 * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
12870
12871 * genemit.c (gen_expand): Only emit `operands[N]' decl if there
12872 is special code to run.
12873 (main): Don't define operands to emit_operand.
12874 * genrecog.c (main): Don't emit an empty peephole2_insn function.
12875
12876 * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
12877
12878 * alpha/alpha.h (normal_memory_operand): Declare.
12879 (reg_no_subreg_operand): Declare.
12880 * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
12881
12882 Thu Sep 2 10:19:20 1999 Richard Henderson <rth@cygnus.com>
12883
12884 * c-parse.in (compstmt_primary_start): New, broken out of first
12885 part of compstmt handling in primary.
12886 (primary): Use it. Add an error clause.
12887 (compstmt_nostart): Renamed from compstmt; remove all
12888 initial invocations of compstmt_start.
12889 (compstmt): New.
12890
12891 Thu Sep 2 01:35:50 1999 Marc Espie <espie@cvs.openbsd.org>
12892
12893 * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if
12894 needed.
12895
12896 Thu Sep 2 00:43:59 1999 Finn Hakansson <finn@axis.com>
12897
12898 * combine.c (simplify_shift_const): Remove extra semicolon.
12899 * dwarf2out.c (remove_AT): Likewise.
12900 * expmed.c (expand_mult): Likewise.
12901 * gcov.c (create_program_flow_graph): Likewise.
12902 * reorg.c (mostly_true_jump): Likewise.
12903
12904 Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com)
12905
12906 * fold-const.c (fold_range_test): Do not try to fold the range
12907 test if the rhs or lhs has side effects.
12908
12909 * combine.c (simplify_rtx): Recognize another case of a synthesized
12910 sign extension.
12911
12912 * varasm.c (mark_constant_pool): When marking indirect references,
12913 only look at SYMBOL_REFs.
12914
12915 * except.c (expand_fixup_region_end): Do not peek at
12916 INSN_UID (node->entry->outer_context) for flag_new_exceptions.
12917
12918 Thu Sep 2 13:52:53 1999 Geoffrey Keating <geoffk@cygnus.com>
12919
12920 * flags.h: New variables align_loops, align_loops_log,
12921 align_jumps, align_jumps_log, align_labels, align_labels_log,
12922 align_functions, align_functions_log.
12923 * toplev.c: Define them.
12924 (f_options): Handle -falign-* when they have no argument.
12925 (main): Add logic to set variables for -falign-functions,
12926 -falign-jumps, -falign-labels, -falign-loops.
12927 Make it -fsched-verbose=<n> and -finline-limit=<n>.
12928 (display_help): Change help to match options.
12929 * final.c (LABEL_ALIGN): Default to align_labels_log.
12930 (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
12931 (LOOP_ALIGN): Default to align_loops_log.
12932 (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
12933 (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
12934 (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
12935 * varasm.c (assemble_start_function): Handle align_functions.
12936
12937 * config/sparc/sparc.h: Don't declare sparc_align_*.
12938 Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
12939 (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
12940 sparc.c.
12941 (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
12942 it's a promise.
12943 * config/sparc/sparc.c: Delete sparc_align_loops,
12944 sparc_align_jumps, sparc_align_funcs and the corresponding string
12945 variables.
12946 (sparc_override_options): Default align_functions on ultrasparc.
12947 Delete -malign-* handling.
12948
12949 * config/mips/mips.c (override_options): On 64-bit targets,
12950 try to align code to 64-bit boundaries.
12951 (print_operand): New substitution, %~,
12952 which aligns labels to align_labels_log.
12953 * config/mips/mips.md (div_trap_normal): Use %~.
12954 (div_trap_mips16): Likewise.
12955 (abssi): Likewise.
12956 (absdi2): Likewise.
12957 (ffssi2): Likewise.
12958 (ffsdi2): Likewise.
12959 (ashldi3_internal): Likewise.
12960 (ashrdi3_internal): Likewise.
12961 (lshrdi3_internal): Likewise.
12962 (casesi_internal): Likewise.
12963
12964 Wed Sep 1 21:13:48 1999 Richard Henderson <rth@cygnus.com>
12965
12966 Merge new ia32 backend from the branch!
12967
12968 * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
12969 See ChangeLog.P2 on new_ia32_branch for details.
12970
12971 * rtl.h (stack_regs_mentioned_p): Delete prototype.
12972 * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
12973 * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
12974 * i386/gas.h (ASM_FILE_START): Define.
12975 * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
12976 for name change of ix86_valid_decl_attribute_p.
12977 (i386_pe_valid_type_attribute_p): Similarly.
12978
12979 Wed Sep 1 18:21:23 1999 Richard Henderson <rth@cygnus.com>
12980
12981 * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
12982 to step through CC modes.
12983
12984 Wed Sep 1 20:18:06 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
12985
12986 * regmove.c (fixup_match_1): Don't move INSN in front of P if
12987 it would end up in the shadow of a live flags regsiter.
12988
12989 Wed Sep 1 11:32:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
12990
12991 * reload1.c: Fix many indentation problems.
12992 * reload.c: Likewise.
12993
12994 Tue Aug 31 22:08:03 1999 Marc Espie <espie@cvs.openbsd.org>
12995
12996 * alias.c (non_local_reference_p): Constify fmt.
12997
12998 Tue Aug 31 23:19:35 1999 Michael Meissner <meissner@cygnus.com>
12999
13000 * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
13001
13002 Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com)
13003
13004 * cse.c (delete_trivially_dead_insns): Do not delete stores to
13005 the internal_arg_pointer.
13006
13007 Tue Aug 31 13:35:42 1999 Richard Henderson <rth@cygnus.com>
13008
13009 Merge peephole2 from new_ia32_branch:
13010 * Makefile.in (STAGESTUFF): Add *.peephole2.
13011 (mostlyclean): Likewise.
13012 (recog.o): Depend on resource.h.
13013
13014 * final.c (peephole): Conditionalize decl on HAVE_peephole.
13015 (final_scan_insn): Likewise for the invocation of peephole.
13016 * genconfig.c (main): Look for peephole and peephole2 patterns.
13017 Emit HAVE_peephole* accordingly.
13018 * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
13019 * flags.h (flag_peephole2): Declare.
13020 * toplev.c: New pass peephole2. New flag -fpeephole2.
13021
13022 * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
13023 * gencodes.c (main): Likewise.
13024 * genextract.c (main): Likewise.
13025 * genoutput.c (main): Likewise.
13026 * genemit.c (max_operand_1): Look for the max scratch operand.
13027 (gen_rtx_scratch): New.
13028 (gen_exp): Use it, and pass on new arg subroutine_type.
13029 (gen_expand): Take max scratch into account.
13030 (gen_split): Emit peephole2 functions.
13031 (output_peephole2_scratch): New.
13032 (main): Include hard-reg-set.h and resource.h. Handle peephole2.
13033 * genrecog.c (routine_type): Add PEEPHOLE2.
13034 (IS_SPLIT): New.
13035 (make_insn_sequence): Match outer parallel for peep2. Discard
13036 top level scratches and dups.
13037 (add_to_sequence): New args insn_type and top. Update all callers.
13038 Handle toplevel peep2 matching insns.
13039 (write_subroutine): Handle peep2.
13040 (write_tree_1): Likewise.
13041 (write_tree): Likewise.
13042 (main): Likewise.
13043 (change_state): New arg afterward. Update all callers.
13044 Handle matching separate insns.
13045 * recog.c (recog_next_insn): New.
13046 (peephole2_optimize): New.
13047 * rtl.def (DEFINE_PEEPHOLE2): New.
13048 * resource.c (find_free_register): New argument last_insn. Use it
13049 to find a register available through the entire span.
13050 * resource.h (find_free_register): Update prototype.
13051
13052 Tue Aug 31 11:51:06 1999 Jim Kingdon <http://developer.redhat.com>
13053
13054 * i386.c (output_strlen_unroll): Don't write xops[7]
13055 label if it wasn't set.
13056
13057 1999-08-31 12:44 -0700 Zack Weinberg <zack@bitmover.com>
13058
13059 * cpplib.c (struct directive): Const-ify name pointer and
13060 function pointer prototype.
13061 (validate_else, do_define, do_line, do_include, do_undef,
13062 do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
13063 do_elif, do_endif, do_sccs, do_assert, do_unassert,
13064 do_warning): Const-ify second arg.
13065 (directive_table): Mark const. Reorder entries by frequency
13066 of usage, record statistics.
13067
13068 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
13069
13070 * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
13071 bounds- check RTL accesses if --enable-checking.
13072 (RTVEC_ELT): Bounds check if --enable-checking.
13073 (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
13074 XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
13075 (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
13076 GET_NUM_ELEM.
13077 (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
13078 X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes.
13079
13080 (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
13081 (NOTE_SOURCE_FILE): Use X0STR.
13082 (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
13083 MEM_ALIAS_SET): Use X0INT.
13084 (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
13085 JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
13086 Use X0EXP.
13087 * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
13088 * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
13089 (rtl_check_failed_bounds, rtl_check_failed_type1,
13090 rtl_check_failed_type2, rtvec_check_failed_bounds): New
13091 functions.
13092 (fancy_abort): Fix comment.
13093
13094 * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
13095 (cse_insn): Decrement LABEL_NUSES for jump target before
13096 deleting jump insn.
13097 * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
13098 * final.c (alter_subreg): Compute regno before changing x to
13099 REG; set REGNO(x) after changing it.
13100 * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
13101 notes containing CONST_INTs.
13102 (delete_eh_regions): Use NOTE_EH_HANDLER.
13103 * function.c (put_reg_into_stack): Make reg a MEM before
13104 initializing it.
13105 (fixup_var_refs_insns): Save REG_NOTES (insn) in case we
13106 delete insn.
13107 (gen_mem_addressof): Make reg a MEM before initializing it.
13108 * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
13109 X0WINT.
13110 * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
13111 deleting an insn, not after.
13112 (block_alloc): Only look at PATTERN(insn) if we have to, and
13113 only if it's format class 'i'.
13114 * loop.c (check_dbra_loop): Check bl->biv->add_val is a
13115 CONST_INT before using its INTVAL.
13116 * print-rtl.c (print_rtx): Use X0STR.
13117 * regmove.c (fixup_match_1): Don't look at PATTERN of
13118 non-class-'i' insn chain elements.
13119 * reload.c (loc_mentioned_in_p): Take address of
13120 in->fld[1].rtx directly.
13121 * reload1.c (reload): Change reg to a MEM before initializing
13122 it.
13123 * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
13124 have no names.
13125 * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
13126
13127 Fri Aug 20 13:43:41 1999 Andrew Haley <aph@cygnus.com>
13128
13129 * config/mips/mips.c (machine_dependent_reorg): Force a
13130 barrier to output the local constant pool if a barrier hasn't
13131 been found at a natural point in the instruction stream.
13132
13133 Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13134
13135 * c-parse.in (language_string): Constify.
13136
13137 * dwarf2out.c (language_string): Remove declaration.
13138
13139 * dwarfout.c (language_string): Likewise.
13140
13141 * toplev.c (language_string, init_parse, finish_parse): Likewise.
13142
13143 * tree.h (language_string, init_parse, finish_parse): Declare.
13144
13145 * i386/sun386.h (language_string): Remove declaration.
13146
13147 * mips.h (language_string): Likewise.
13148
13149 * nextstep.h (language_string): Likewise.
13150
13151 * nextstep21.h (language_string): Likewise.
13152
13153 * rs6000.c (language_string): Likewise.
13154
13155 Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13156
13157 * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
13158 (getpwd.o): Remove target.
13159
13160 * getpwd.c: Delete file. Its in libiberty now.
13161
13162 * dbxout.c (getpwd): Don't prototype.
13163 * dwarf2out.c (getpwd): Likewise
13164 * dwarfout.c (getpwd): Likewise
13165 * final.c (getpwd): Likewise.
13166 * protoize.c (getpwd): Likewise.
13167
13168 Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13169
13170 * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
13171
13172 Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
13173
13174 * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
13175 mark_set_resources.
13176
13177 Mon Aug 30 12:23:53 1999 Jim Wilson <wilson@cygnus.com>
13178
13179 * fixinc/Makefile.in (subdir): New.
13180 (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
13181 (Makefile): New.
13182
13183 Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com)
13184
13185 * emit-rtl.c (copy_rtx_if_shared): A MEM which references
13186 virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
13187 be shared.
13188
13189 * invoke.texi: Fix typo.
13190
13191 * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers
13192 changed. Handle autoincrement addressing modes.
13193
13194 * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
13195 just like we would the virtual incoming args register when
13196 integrating.
13197
13198 Sun Aug 29 23:17:54 1999 David Edelsohn <edelsohn@gnu.org>
13199
13200 * rs6000.h (ASM_FILE_START): Specify complete filename, including
13201 path, in .file directive.
13202
13203 Sun Aug 29 05:06:43 1999 Russ Allbery <rra@stanford.edu>
13204
13205 * gcc.texi (External Bugs): Remove obsolete note about Perl on
13206 SunOS.
13207
13208 1999-08-29 08:38 -0700 Zack Weinberg <zack@bitmover.com>
13209
13210 * stdbool.h: Make the typedef name _Bool, with bool a #defined
13211 alias.
13212
13213 Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13214
13215 * tree.c (tree_code_name): Constify a char*.
13216
13217 * tree.h (tree_code_name, decl_printable_name): Likewise.
13218
13219 * function.h (struct function): Likewise.
13220
13221 * toplev.c (decl_name, decl_printable_name): Likewise.
13222
13223 * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
13224
13225 * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
13226 (init_objc): Remove function pointer cast.
13227
13228 Sun Aug 29 05:01:17 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
13229
13230 * pa.md (interspace_jump): New pattern.
13231 (builtin_longjmp): New expander.
13232
13233 1999-08-29 Bernd Schmidt <bernds@cygnus.co.uk>
13234
13235 * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
13236 _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
13237 sf_to_df, df_to_sf): Fix potential problem with alias analysis.
13238
13239 Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com)
13240
13241 * jump.c (delete_prior_computation): Also check calls
13242 to constant functions. Don't bother checking for a
13243 REG_UNUSED note before adding it.
13244 (delete_computation): Handle multi-word hard registers
13245 when synthesizing missing REG_DEAD notes for a register
13246 which is both set and used by an insn.
13247
13248 1999-08-29 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
13249
13250 * loop.c (this_loop_info): New variable.
13251 (loop_has_call, loop_has_volatile, loop_has_tablejump,
13252 loop_continue, loops_enclosed): Replace with fields in this_loop_info.
13253 All uses updated.
13254 (prescan_loop, strength_reduce): New argument loop_info. All callers
13255 updated.
13256 (scan_loop): New variable loop_info, initialise to address of
13257 this_loop_info.
13258 (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
13259 Delete variable loop_has_multiple_exit targets and replace with
13260 field in this_loop_info.
13261 (find_and_verify_loops): Rename this_loop to this_loop_num.
13262 (strength_reduce): Delete loop_iteration_info. Replace variable
13263 loop_info with function argument of same name.
13264 (insert_bct): Rework test for loop being completely unrolled.
13265
13266 * loop.h (struct loop_info): New fields num, loops_enclosed,
13267 has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
13268 has_indirect_jump, and cont. Redefine use of unroll_number.
13269 (loop_unroll_number): Delete.
13270
13271 * unroll.c (unroll_loop): Store loop unroll count in unroll_number
13272 field of loop_info.
13273 (loop_iterations): Delete variable vtop and instead use
13274 loop_info->vtop computed in prescan_loop.
13275
13276 Sun Aug 29 03:27:23 1999 Scott Weikart <scott@igc.apc.org>
13277
13278 * fix-header.c (main): Do not pass a null pointer to strcmp.
13279
13280 Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net)
13281
13282 * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
13283 filenames.
13284 * configure: Rebuilt.
13285
13286 Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com)
13287
13288 * jump.c (jump_optimize_1): Do not delete assignments to
13289 internal_arg_pointer.
13290 * cse.c (delete_trivially_dead_insns): Always consider a set of
13291 the internal_arg_pointer live.
13292
13293 Sat Aug 28 16:24:31 1999 Richard Henderson <rth@cygnus.com>
13294
13295 * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
13296 (update_life_info) [REG_WAS_0]: Search the original insns rather
13297 than the new insns for the note. Fix typos finding note_dest.
13298 If no dest found, discard the note rather than abort.
13299 [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
13300 (replace_insns): Remove the old insn list after update_life_info
13301 not before.
13302
13303 Sat Aug 28 16:20:12 1999 Richard Henderson <rth@cygnus.com>
13304
13305 * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
13306 sched_analyze_insn.
13307 (sched_analyze_1): Let add_dependence care for not adding dups.
13308 (sched_analyze_2): Likewise.
13309 (add_branch_dependences): Likewise.
13310
13311 Sat Aug 28 15:58:16 1999 Mumit Khan <khan@xraylith.wisc.edu>
13312
13313 * i386/winnt.c (export_list): New type.
13314 (exports_head): Rename to
13315 (export_head): this.
13316 (i386_pe_record_exported_symbol): Add is_data flag.
13317 (i386_pe_asm_file_end): Emit directive for exported variables.
13318 * i386/cygwin.h (i386_pe_record_exported_symbol): Update
13319 prototype.
13320 * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
13321 (ASM_DECLARE_OBJECT_NAME): Likewise.
13322 (ASM_DECLARE_FUNCTION_NAME): Likewise.
13323 * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
13324
13325 Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com)
13326
13327 * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
13328
13329 * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
13330 operand.
13331
13332 Fri Aug 27 14:01:19 1999 Marc Espie <espie@cvs.openbsd.org>
13333
13334 * config/openbsd.h: Define SET_ASM_OP.
13335 * tm.texi: cross-reference SET_ASM_OP in the index.
13336
13337 1999-08-27 13:27 -0700 Zack Weinberg <zack@bitmover.com>
13338
13339 * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
13340 for a CONST_DOUBLE, at compile time. Initialize rtx_length
13341 and class_narrowest_mode at compile time. Kill init_rtl.
13342 Mark rtx_length, mode_class, mode_size, mode_unit_size,
13343 mode_wider_mode, mode_mask_array, class_narrowest_mode, and
13344 rtx_format as const. Kill all references to EXTRA_CC_MODES or
13345 EXTRA_CC_NAMES.
13346 * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
13347 format.
13348 * rtl.h: Declare rtx_length and rtx_format as const.
13349 * machmode.def: Define CC(). Use CC() to define CCmode. If
13350 EXTRA_CC_MODES is defined, expand it here.
13351 * machmode.h: Declare mode_class, mode_size, mode_unit_size,
13352 mode_wider_mode, mode_mask_array, and class_narrowest_mode as
13353 const. Kill all references to EXTRA_CC_MODES.
13354
13355 * toplev.c: Don't prototype or call init_rtl.
13356 * optabs.c: Don't call init_mov_optab.
13357 * genemit.c: Don't generate init_mov_optab. Don't call
13358 init_rtl.
13359 * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
13360 here.
13361 * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
13362 genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
13363 genrecog.c: Don't call init_rtl.
13364
13365 * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
13366 rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in
13367 definition of EXTRA_CC_MODES.
13368
13369 * md.texi: Kill ref to EXTRA_CC_NAMES.
13370 * tm.texi: Document new way to define EXTRA_CC_MODES.
13371
13372 * genrecog.c: Do not look up the name of a define_split.
13373 (Unrelated bugfix.)
13374
13375 Fri Aug 27 17:03:42 1999 Nick Clifton <nickc@cygnus.com>
13376
13377 * config/v850/v850.md: Fix typo introduced by previous delta.
13378
13379 Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13380
13381 * gcc.c (fatal): Make definition static to match prototype.
13382
13383 Fri Aug 27 10:33:35 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13384
13385 * combine.c (get_last_value): Don't look for earlier sets if the last
13386 known set is somewhere in between the insns being combined.
13387
13388 Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell <nathan@acm.org>
13389
13390 * configure.in: Don't use shell ! to negate exit codes
13391 * configure: Regenerate
13392
13393 Fri Aug 27 09:36:17 1999 Andreas Schwab <schwab@suse.de>
13394
13395 * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
13396 the fact that ALIGN is measured in bits, not bytes.
13397
13398 1999-08-27 00:27 -0700 Zack Weinberg <zack@bitmover.com>
13399
13400 * errors.c: New file; defines functions error, warning, and
13401 fatal, variables have_error and progname.
13402 * errors.h: New file; prototypes and decls for stuff in errors.c.
13403
13404 * Makefile: Add rules to build errors.o and
13405 $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit,
13406 genopinit, genrecog, genextract, genpeep, genattr, and
13407 genoutput with errors.o. Add errors.h to deps of genconfig.o,
13408 gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
13409 genpeep.o, genattr.o, and genoutput.o.
13410
13411 * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
13412 genextract.c, genpeep.c, genattr.c: Include errors.h. Don't
13413 define or prototype fatal. Set progname at beginning of main.
13414 * genoutput.c: Likewise, and don't define or prototype error
13415 either.
13416
13417 * c-typeck.c (c_expand_start_case): Return immediately if exp
13418 is an ERROR_MARK.
13419 * fold-const.c (operand_equal_p): Return immediately if arg1
13420 or arg0 are ERROR_MARKs.
13421 * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
13422 fields of type ERROR_MARK when calculating if the record can
13423 go in a register.
13424
13425 Fri Aug 27 01:03:48 1999 Jim Kingdon <http://developer.redhat.com>
13426 with much help from Jeffrey A Law and Richard Henderson
13427
13428 * i386.md: In the 6 insns which call output_fix_trunc,
13429 earlyclobber operands[0].
13430
13431 Fri Aug 27 01:01:51 1999 Philip Blundell <pb@nexus.co.uk>
13432
13433 * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
13434 creating new registers.
13435
13436 1999-08-26 23:09 -0700 Zack Weinberg <zack@bitmover.com>
13437
13438 * i386.h: Declare ix86_cpu_string, ix86_arch_string,
13439 i386_reg_alloc_order, i386_regparm_string,
13440 i386_align_loops_string, i386_align_jumps_string,
13441 i386_align_funcs_string, i386_preferred_stack_boundary_string,
13442 and i386_branch_cost_string as type "const char *".
13443 * i386.c: Define all above strings as type "const char *".
13444
13445 Thu Aug 26 20:36:30 1999 Jim Wilson <wilson@cygnus.com>
13446
13447 * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
13448 when emitting alignment padding. Emit padding byte of 0 instead of 4.
13449
13450 Thu Aug 26 18:11:20 1999 Mark Mitchell <mark@codesourcery.com>
13451
13452 * tree.c (array_type_nelts): Don't create RTL_EXPRs from
13453 SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
13454
13455 Thu Aug 26 19:33:23 1999 Jim Wilson <wilson@cygnus.com>
13456
13457 * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
13458 (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
13459 (dwarf2out_line, dwarf2out_finish): Likewise.
13460 * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
13461
13462 Thu Aug 26 16:10:56 1999 Gavin Romig-Koch <gavin@cygnus.com>
13463
13464 * tree.c (lang_unsave_expr_now) : Correct return type.
13465 * tree.h (lang_unsave_expr_now) : Same.
13466
13467 Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com)
13468
13469 * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
13470 instead of duplicating code.
13471
13472 Thu Aug 26 18:32:32 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13473
13474 * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
13475
13476 1999-08-26 09:42 -0700 Zack Weinberg <zack@bitmover.com>
13477
13478 * tree.h: fancy_abort always takes three args.
13479 * resource.c: Move include of system.h before toplev.h.
13480
13481 Thu Aug 26 09:46:16 1999 Nick Clifton <nickc@cygnus.com>
13482
13483 * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
13484 as SYMBOL_REFs.
13485
13486 1999-08-25 22:10 -0700 Zack Weinberg <zack@bitmover.com>
13487
13488 * system.h: Don't redefine abort or trim_filename.
13489 * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
13490 or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
13491 whether or not __FUNCTION__ is available.
13492 * tree.h: Duplicate rtl.h's definition of abort, for files
13493 that don't include rtl.h. Delete all code to perform type
13494 checking with a compiler other than GCC.
13495 * varray.h: Delete all code to perform type checking with a
13496 compiler other than GCC. Make VARRAY_CHECK() always evaluate
13497 its arguments exactly once, using a statement expression.
13498 Adjust the VARRAY_<type> accessor macros to match.
13499 * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
13500 (_fatal_insn, _fatal_insn_not_found): New fns, take info on
13501 caller's location. Define fatal_insn and fatal_insn_not_found
13502 as macros that use _fatal_insn and _fatal_insn_not_found.
13503 (fancy_abort, trim_filename): Kill prototypes.
13504
13505 * rtl.c (trim_filename): Move here from toplev.c.
13506 (fancy_abort): New function.
13507 (DIR_SEPARATOR): Provide default definition.
13508 * tree.c (tree_check_failed, tree_class_check_failed): Go
13509 through fancy_abort.
13510 (tree_check, tree_class_check, cst_or_constructor_check,
13511 expr_check): Delete.
13512 * varray.c (varray_check_failed): New function.
13513 * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
13514 _fatal_insn and _fatal_insn_not_found. Go through
13515 fancy_abort.
13516 (trim_filename, fancy_abort): Delete.
13517
13518 * builtins.c (expand_builtin_args_info): Report ICE with abort.
13519 * except.c (start_catch_handler): Report ICE with error/abort
13520 combo.
13521 * final.c (output_operand_lossage): Likewise.
13522 * flow.c (verify_flow_info): Likewise.
13523
13524 * gcc.c: Prototype fatal.
13525 * gengenrtl.c: Undef abort after including rtl.h not system.h.
13526 * genattr.c, genattrtab.c, genemit.c, genextract.c,
13527 genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
13528 Don't define fancy_abort.
13529
13530 Wed Aug 25 17:56:59 1999 Richard Henderson <rth@cygnus.com>
13531
13532 * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
13533 canonization.
13534
13535 Wed Aug 25 15:35:55 1999 Richard Henderson <rth@cygnus.com>
13536
13537 * m88k.h (VERSION_INFO2): Kill.
13538 (VERSION_STRING): Kill.
13539 (TM_RCS_ID): Kill.
13540 (VERSION_INFO1): Tidy.
13541 (TARGET_VERSION): Update.
13542 * m88k/dgux.h (VERSION_INFO2): Kill.
13543 (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
13544 * m88k/luna.h (VERSION_INFO1): Tidy.
13545 * m88k/sysv4.h (VERSION_INFO1): Likewise.
13546 * m88k.c (out_rcs_id, tm_rcs_id): Kill.
13547 (output_file_start): Adjust for death of VERSION_STRING.
13548
13549 1999-08-25 13:51 -0700 Jim Meyering <meyering@ascend.com>
13550
13551 * cpplib.c (detect_if_not_defined): New function.
13552 (do_if): Use it to detect potential once-only headers.
13553
13554 Wed Aug 25 14:00:18 1999 Jason Merrill <jason@yorick.cygnus.com>
13555
13556 * c-common.c (combine_strings): Always set TREE_CONSTANT.
13557
13558 Wed Aug 25 15:27:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
13559
13560 * combine.c (nonzero_bits) : Allow single-ly set registers to be
13561 anywere in the function only if they are pseudos and set before
13562 being used (not live at the start of the function).
13563 (num_sign_bit_copies) : Same.
13564 (get_last_value_validate) : Same.
13565 (get_last_value) : Same.
13566
13567 Wed Aug 25 11:13:29 1999 Richard Henderson <rth@cygnus.com>
13568
13569 * loop.c (express_from): Try harder to unify (* c N) and (* c M)
13570 where N and M are constant and N is an integer multiple of M.
13571
13572 Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
13573
13574 * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
13575 (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
13576 sbitmap_union_of_preds): Add prototypes.
13577 * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
13578 the intersection of successors with the new flow graph structures.
13579 (sbitmap_intersection_of_preds): New function to compute the
13580 intersection of predecessors with the new flow graph structures.
13581 (sbitmap_union_of_succs): New function to compute the union of
13582 successors with the new flow graph structures.
13583 (sbitmap_union_of_preds): New function to compute the union of
13584 predecessors with the new flow graph structures.
13585 * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
13586 (expr_reaches_here_p): Use edge and basic_block structures instead
13587 of s_preds and s_succs.
13588 (compute_cprop_avinout): Use new sbitmap routines.
13589 (pre_expr_reaches_here_p): Use edge and basic_block structures instead
13590 of s_preds and s_succs.
13591 * flow.c (compute_flow_dominators): Compute dominators using
13592 edges and basic blocks instead of s_preds and s_succs.
13593
13594 Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
13595
13596 * lists.c (unused_insn_list, unused_expr_list): New file for
13597 maintaining various types of lists. New statics for maintaining a
13598 cache of available INSN_LIST and EXPR_LIST nodes.
13599 (free_list): Static function for freeing a list of INSN/EXPR nodes.
13600 (alloc_INSN_LIST): Function to get a free INSN_LIST node.
13601 (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
13602 (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
13603 (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
13604 (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
13605 (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
13606 (free_INSN_LIST_node): Free an individual INSN_LIST node.
13607 * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
13608 (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
13609 (remove_dependence, free_pending_lists): Use new global routines.
13610 (flush_pending_lists, sched_analyze_insn): Use new global routines.
13611 (sched_analyze, compute_block_backward_dependences): Use new routines.
13612 (sched_analyze_1, sched_analyze_2): Use new routines.
13613 (schedule_insns): Use new global routines.
13614 * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
13615 prototypes.
13616 (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
13617 (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
13618 prototypes.
13619 * toplev.c (rest_of_compilation): Initialize node cache.
13620 * Makefile.in (OBJS): Add lists.o to list of object files.
13621 (lists.o): Add dependancies.
13622
13623 Wed Aug 25 17:31:56 1999 Nick Clifton <nickc@cygnus.com>
13624
13625 * config/v850/v850.md: Fix compile time warning messages.
13626 * config/v850/v850.c: Fix compile time warning messages.
13627 * config/v850/v850.h: Fix compile time warning messages.
13628
13629 Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13630
13631 * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
13632 Remove unused prototype for `init_lengths'.
13633
13634 Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13635
13636 * calls.c (emit_call_1): Mark parameter `stack_size' with
13637 ATTRIBUTE_UNUSED.
13638 (expand_call): Initialize variable `insn'.
13639 (emit_library_call): Likewise for variable `high_to_save'.
13640 (emit_library_call_value): Likewise.
13641 (store_one_arg): Likewise for variables `lower_bound' and
13642 `upper_bound'.
13643
13644 * combine.c (try_combine): Likewise for variables `i2_code_number'
13645 and `other_code_number'.
13646 (find_split_point): Likewise for variables `pos', `unsignedp' and
13647 `inner'.
13648 (simplify_if_then_else): Likewise for variables `op' and `c1'.
13649 (simplify_and_const_int): Remove unused variable `width'.
13650 (merge_outer_ops): Likewise.
13651
13652 * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
13653 HOST_WIDE_INT' when comparing against one.
13654 (simplify_relational_operation): Likewise.
13655 (cse_insn): Initialize variables `src_eqv_volatile',
13656 `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
13657
13658 * final.c (init_final): Constify parameter `filename'.
13659 (final_start_function): Mark parameter `optimize' with
13660 ATTRIBUTE_UNUSED.
13661 (profile_function): Likewise for parameters `first' and `optimize'.
13662 (output_source_line): Likewise for parameter `file'.
13663
13664 * integrate.c (subst_constants): Cast a value to `size_t' when
13665 comparing against one.
13666 (mark_stores): Initialize variable `mode'. Cast a value to
13667 `size_t' when comparing against one.
13668
13669 * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
13670
13671 * loop.c (move_movables): Initialize variable `first'.
13672 (strength_reduce): Likewise for variable `increment'.
13673 (check_dbra_loop): Likewise for variable `comparison_val'. Cast a
13674 value to `size_t' when comparing against one.
13675 (load_mems): Initialize variable `end_label'.
13676
13677 * output.h (init_final): Constify parameter.
13678
13679 * reload.c (decompose): Initialize variable `base'.
13680
13681 * reload1.c (reload): Likewise for variable `is_scalar'.
13682 (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
13683 (choose_reload_regs): Initialize variable `mode'.
13684 (emit_reload_insns): Likewise for variable `store_insn'.
13685 (reload_cse_noop_set_p): Mark parameter `insn' with
13686 ATTRIBUTE_UNUSED.
13687 (reload_combine): Initialize variable `set'.
13688
13689 * unroll.c (unroll_loop): Likewise for variable `local_label'.
13690 (copy_loop_body): Cast a value to `size_t' when comparing against
13691 one.
13692
13693 * varasm.c (assemble_variable): Initialize variable `size_tree'.
13694 (const_hash): Add an `else abort()' in an if-else-if-else sequence.
13695 (remove_from_pending_weak_list): Mark parameter `name' with
13696 ATTRIBUTE_UNUSED.
13697
13698 Wed Aug 25 11:18:39 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13699
13700 * toplev.c (rest_of_compilation): Use decl_printable_name when opening
13701 gcse dump file.
13702
13703 Wed Aug 25 10:57:12 1999 Nick Clifton <nickc@cygnus.com>
13704
13705 * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
13706 (ASM_DECLARE_FUNCTION_NAME): Define.
13707 (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
13708 ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
13709 ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
13710 not already defined.
13711
13712 Wed Aug 25 01:36:11 1999 John David Anglin <dave@hiauly1.hia.nrc.ca>
13713
13714 * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
13715 of n_popped when call/call_value are not defined.
13716
13717 Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com)
13718
13719 * tm.texi: GNU CC -> GCC conversion.
13720 (CC1_SPEC): Indicate it is used for all language front ends.
13721
13722 Tue Aug 24 23:43:03 1999 Mark Mitchell <mark@codesourcery.com>
13723
13724 * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
13725 NOTE_INSN_EH_REGION_END correctly.
13726
13727 Tue Aug 24 23:26:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
13728 Jeff Law <law@cygnus.com>
13729
13730 * loop.c (strength_reduce): Automatically unroll loops if the
13731 unrolled loop size is smaller than the rolled loop size.
13732
13733 * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
13734 and delete comment that code should be rewritten.
13735
13736 Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com)
13737
13738 * haifa-sched.c (find_rgns): Mark a block found during the DFS search
13739 as reachable.
13740
13741 * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
13742
13743 Tue Aug 24 22:41:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
13744
13745 * fixinc/mkfixinc.sh: Don't fix uwin headers.
13746 * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
13747 (LINK_SPEC): Add -u _main when building executables.
13748 (ASM_DECLARE_FUNCTION): Update from Cygwin.
13749 (ASM_FILE_END): Use the default for ix86-pe.
13750 * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
13751
13752 Tue Aug 24 20:49:47 1999 Art Haas <ahaas@neosoft.com>
13753
13754 * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
13755 and ASM_CLOSE_PAREN are empty strings.
13756
13757 Wed Aug 25 12:46:22 1999 Fred Fish <fnf@cygnus.com>
13758 Geoffrey Keating <geoffk@cygnus.com>
13759
13760 * Makefile.in (PREPROCESSOR_DEFINES): New macro.
13761 (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
13762 (unprotoize.o): Ditto.
13763 (test-protoize-simple): Don't define STD_PROTO_DIR.
13764 * protoize.c: Use PARAMS rather than PROTO. Minor whitespace
13765 changes to make 'test-protoize-simple' pass.
13766 (STD_PROTO_DIR): Remove define.
13767 (STANDARD_EXEC_PREFIX): Supply default define.
13768 (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
13769 (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
13770 (target_version): New variable, init to DEFAULT_TARGET_VERSION.
13771 (GET_ENV_PATH_LIST): New macro.
13772 (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
13773 (do_processing): Initialize default_syscalls_dir using new
13774 macros. Use it to initialize syscalls_absolute_filename.
13775
13776 Tue Aug 24 16:58:15 1999 Richard Henderson <rth@cygnus.com>
13777
13778 * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
13779 B into a register before emit_conditional_move.
13780
13781 Tue Aug 24 15:37:03 1999 Richard Henderson <rth@cygnus.com>
13782
13783 * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
13784 as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two
13785 multiplicand out of (+ (* a b) (* c d)).
13786
13787 Tue Aug 24 11:46:10 1999 Bob Manson <manson@cygnus.com>
13788 Richard Henderson <rth@cygnus.com>
13789
13790 * haifa-sched.c (split_hard_reg_notes): Move to flow.c
13791 (new_insn_dead_notes): Likewise.
13792 (update_n_sets): Likewise.
13793 (update_flow_info): Move to flow.c, renamed to update_life_info;
13794 extend to handle multiple source insns.
13795 * flow.c: Include resource.h
13796 (unlink_insn_chain): New.
13797 (split_hard_reg_notes): New.
13798 (maybe_add_dead_note): New.
13799 (maybe_add_dead_note_use): New.
13800 (find_insn_with_note): New.
13801 (new_insn_dead_notes): New.
13802 (update_n_sets): New.
13803 (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
13804 (maybe_remove_dead_notes): New.
13805 (update_life_info): New.
13806 (prepend_reg_notes): New.
13807 (replace_insns): New.
13808 * output.h (update_life_info): Declare.
13809 * recog.c (split_block_insns): Use update_life_info.
13810 * resource.c (find_free_register): Use reg_alloc_order, don't use
13811 fixed regs, make sure the mode is supported, don't use new regs.
13812 (reg_dead_p): New.
13813 * rtl.h (replace_insns): Declare.
13814
13815 Tue Aug 24 13:48:39 1999 Nathan Sidwell <nathan@acm.org>
13816
13817 * expr.c (expand_expr): Cope with COND_EXPRs with one
13818 non-returning branch.
13819
13820 Mon Aug 23 22:28:16 1999 Mark Mitchell <mark@codesourcery.com>
13821
13822 * expr.c (store_expr): Always pass down the target, even when not
13823 doing CSE.
13824
13825 1999-08-24 Nick Clifton <nickc@cygnus.com>
13826
13827 * configure.in: Define target_cpu_default for v850 targets.
13828 * configure: Regenerate
13829
13830 * config/v850/v850.h (TARGET_CPU_generic): Define.
13831 (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
13832 addresses are 4 byte aligned.
13833
13834 * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
13835 addresses.
13836
13837 Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13838
13839 * genattr.c (function_unit_desc): Constify a char*. Add prototype.
13840 (main): Add prototypes.
13841
13842 * genattrtab.c (substitute_address, write_const_num_delay_slots,
13843 attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
13844 (write_attr_get): Emit prototypes along with function definition.
13845 (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
13846 (write_complex_function): Emit static prototype along with
13847 function definition.
13848
13849 * genemit.c (gen_split): Emit prototypes along with function
13850 definition.
13851
13852 * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
13853 Likewise for predicates and `insn_operand_predicate'.
13854 (process_template): Emit static prototype along with function
13855 definition.
13856
13857 * genrecog.c (make_insn_sequence): Constify a char*. Add
13858 prototypes for get_split_*().
13859 (write_subroutine): Emit prototypes along with function
13860 definition.
13861
13862 Tue Aug 24 12:35:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13863
13864 * gcse.c (find_avail_set): Follow chains of register-register copies.
13865 Use oprs_not_set_p to guarantee that the returned value can be
13866 substituted.
13867 (cprop_insn): Don't verify the return value of find_avail_set with
13868 oprs_not_set_p.
13869
13870 * gcse.c (cprop_jump): New function, broken out of cprop_insn.
13871 (cprop_cc0_jump): New function.
13872 (cprop_insn): Break out new function cprop_jump and use it.
13873 Also use cprop_cc0_jump for machines with CC0.
13874 (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
13875
13876 * tree.h (current_function_calls_setjmp,
13877 current_function_calls_longjmp): Delete declarations.
13878 * dsp16xx.c: Include "function.h".
13879 * elxsi.c: Likewise.
13880 * gmicro.c: Likewise.
13881 * h8300.c: Likewise.
13882 * i370.c: Likewise.
13883 * m32r.c: Likewise.
13884 * mn10200.c: Likewise.
13885 * mn10300.c: Likewise.
13886 * ns32k.c: Likewise.
13887 * spur.c: Likewise.
13888 * v850.c: Likewise.
13889
13890 * rtl.h (rtx_equal_function_value_matters): Declare.
13891 * toplev.c (rtx_equal_function_value_matters): Don't declare.
13892 * cse.c: Likewise.
13893 * function.c: Likewise.
13894 * emit-rtl.c: Likewise.
13895
13896 Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com)
13897
13898 * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
13899 call.
13900
13901 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
13902
13903 * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
13904 exactly.
13905
13906 Mon Aug 23 23:35:52 1999 Matthias Klose <doko@cs.tu-berlin.de>
13907
13908 * cpp.texi: Add a node documenting macro varargs (copied
13909 from extend.texi).
13910
13911 1999-08-23 22:23 -0700 Zack Weinberg <zack@bitmover.com>
13912
13913 * cppspec.c: Put a null pointer at the end of the new argv.
13914
13915 Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com)
13916
13917 * configure.in: Remove code to select/de-select the haifa
13918 scheduler. Every scheduled port gets haifa now.
13919 * configure: Rebuilt.
13920 * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
13921 * sched.c Deleted.
13922 * Makefile.in: Corresponding changes.
13923
13924 Mon Aug 23 16:04:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
13925
13926 * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
13927 All callers changed.
13928 (prepare_float_lib_cmp): Likewise.
13929 Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
13930 * expr.h (emit_float_lib_cmp): Delete declaration.
13931 * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
13932 * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
13933 * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
13934 specially.
13935 (cmptf): Now conditional on TARGET_HARD_QUAD.
13936
13937 Fri Aug 20 17:52:27 1999 Jim Wilson <wilson@cygnus.com>
13938
13939 * resource.c (mark_target_live_regs): Use
13940 PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
13941
13942 Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13943
13944 * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
13945
13946 * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
13947
13948 * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
13949
13950 Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
13951
13952 * rtl.h (rtx_format): Constify a char*.
13953
13954 * rtl.c (rtx_format): Likewise.
13955 (copy_rtx, copy_most_rtx, read_rtx): Likewise.
13956 (init_rtl): Use accessor macro, not `rtx_format'.
13957
13958 * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
13959 char*.
13960
13961 * caller-save.c (mark_referenced_regs): Likewise.
13962
13963 * combine.c (subst, make_compound_operation, known_cond,
13964 gen_rtx_combine, update_table_tick, get_last_value_validate,
13965 use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
13966
13967 * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
13968 refers_to_p, canon_reg, fold_rtx, cse_process_notes,
13969 count_reg_usage): Likewise.
13970
13971 * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
13972 Likewise.
13973
13974 * final.c (leaf_renumber_regs_insn): Likewise.
13975
13976 * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
13977 dump_edge_info, count_reg_references): Likewise.
13978
13979 * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
13980 fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
13981 Likewise.
13982
13983 * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
13984 oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
13985 add_label_notes): Likewise.
13986
13987 * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
13988 clear_struct_flag, count_sub_rtxs, count_alternatives,
13989 compares_alternatives_p, contained_in_p, walk_attr_value,
13990 write_expr_attr_cache): Likewise.
13991
13992 * genconfig.c (walk_insn_part): Likewise.
13993
13994 * genemit.c (max_operand_1, gen_exp): Likewise.
13995
13996 * genextract.c (walk_rtx): Likewise.
13997
13998 * genflags.c (num_operands): Likewise.
13999
14000 * genoutput.c (scan_operands): Likewise.
14001
14002 * genpeep.c (match_rtx): Likewise.
14003
14004 * genrecog.c (add_to_sequence): Likewise.
14005
14006 * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
14007 Likewise.
14008
14009 * integrate.c (save_constants, copy_for_inline,
14010 copy_rtx_and_substitute, subst_constants, restore_constants):
14011 Likewise.
14012
14013 * jump.c (mark_jump_label, invert_exp, redirect_exp,
14014 rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
14015
14016 * local-alloc.c (contains_replace_regs, memref_referenced_p):
14017 Likewise.
14018
14019 * loop.c (record_excess_regs, rtx_equal_for_loop_p,
14020 add_label_notes, replace_call_address, count_nonfixed_reads,
14021 invariant_p, find_single_use_in_loop, find_mem_givs,
14022 find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
14023 Likewise.
14024
14025 * print-rtl.c (reg_names, print_rtx): Likewise.
14026
14027 * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
14028
14029 * reg-stack.c (stack_regs_mentioned_p, record_label_references,
14030 record_reg_life_pat, swap_rtx_condition, goto_block_pat,
14031 print_blocks): Likewise.
14032
14033 * regclass.c (fix_register, record_address_regs,
14034 reg_scan_mark_refs): Likewise.
14035
14036 * regmove.c (stable_but_for_p): Likewise.
14037
14038 * reload.c (loc_mentioned_in_p, operands_match_p,
14039 find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
14040 copy_replacements, refers_to_regno_for_reload_p,
14041 refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
14042 reload_when_needed_name, reg_class_names, debug_reload_to_stream):
14043 Likewise.
14044
14045 * reload1.c (eliminate_regs, scan_paradoxical_subregs,
14046 delete_address_reloads_1, count_occurrences,
14047 reload_cse_mem_conflict_p, reload_combine_note_use,
14048 add_auto_inc_notes): Likewise.
14049
14050 * resource.c (mark_referenced_resources, mark_set_resources):
14051 Likewise.
14052
14053 * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
14054 reg_mentioned_p, regs_set_between_p, modified_between_p,
14055 modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
14056 rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
14057 may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
14058 jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
14059
14060 * sched.c (sched_analyze_2, attach_deaths): Likewise.
14061
14062 * stupid.c (stupid_mark_refs): Likewise.
14063
14064 * unroll.c (remap_split_bivs): Likewise.
14065
14066 * varasm.c (mark_constants): Likewise.
14067
14068 * a29k/a29k.c (uses_local_reg_p): Likewise.
14069
14070 * alpha/alpha.c (summarize_insn): Likewise.
14071
14072 * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
14073 eliminate_lr2ip): Likewise.
14074
14075 * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
14076
14077 * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
14078 reg_mentioned_in_mem): Likewise.
14079
14080 * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
14081 symbolic_reference_mentioned_p): Likewise.
14082
14083 * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
14084
14085 * sh/sh.c (regs_used, mark_use): Likewise.
14086
14087 * vax/vax.c (vax_rtx_cost): Likewise.
14088
14089 Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14090
14091 * machmode.h (mode_name): Constify a char*.
14092
14093 * rtl.c (mode_name): Likewise.
14094
14095 * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
14096
14097 * optabs.c (init_libfuncs): Constify a char*.
14098
14099 * print-tree.c (mode_name): Remove redundant declaration.
14100 (print_node): Use accessor macro, not `mode_name'.
14101
14102 * reload1.c (dump_needs): Constify a char*. Use accessor macro,
14103 not `mode_name'.
14104 (new_spill_reg): Constify a char*.
14105
14106 * tree.c (mode_name): Remove redundant declaration.
14107
14108 Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14109
14110 * rtl.c (rtx_name): Constify a char*.
14111
14112 * rtl.h (rtx_name, fix_sched_param): Likewise.
14113
14114 * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
14115 (mypr): Use accessor macro, not `rtx_name'.
14116
14117 * genemit.c (print_code): Constify a char*.
14118
14119 * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
14120
14121 * genpeep.c (print_code): Constify a char*.
14122
14123 * genrecog.c (print_code): Likewise.
14124
14125 * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
14126 end_bb): Add static prototype.
14127 (draw_edge): Constify a char*.
14128 (end_bb): Remove unused parameter.
14129
14130 * haifa-sched.c (fix_sched_param, safe_concat, print_exp
14131 print_block_visualization): Constify a char*.
14132
14133 Fri Aug 20 15:02:10 1999 Mark Mitchell <mark@codesourcery.com>
14134
14135 * c-common.c (c_get_alias_set): Update comment.
14136
14137 1999-08-20 Andreas Jaeger <aj@arthur.rhein-neckar.de>
14138
14139 * linux.h (LIB_SPEC): Added.
14140
14141 Fri Aug 20 22:32:17 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
14142
14143 * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
14144
14145 1999-08-19 18:43 -0700 Zack Weinberg <zack@bitmover.com>
14146
14147 * tree.c (expr_check): Fix typo in last change.
14148
14149 1999-08-19 14:44 -0700 Zack Weinberg <zack@bitmover.com>
14150
14151 * rtl.def (NOTE): Change format to "iuu0n".
14152 (ADDR_DIFF_VEC): Change format to "eEee0".
14153 (ADDRESSOF): Change format to "eit".
14154
14155 * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
14156 (RTVEC_ELT): Change to match.
14157 (XVECEXP): Use XVEC and RTVEC_ELT.
14158 (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
14159 ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
14160 (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
14161 CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
14162 TRAP_CONDITION, TRAP_CODE): Use XEXP.
14163 (INTVAL): Use XWINT.
14164 (ADDRESSOF_DECL): Use XTREE.
14165 (SET_ADDRESSOF_DECL): Delete.
14166 (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
14167 NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been
14168 ifdefed out since 2.6 at least.
14169 (gen_rtvec_vv): Delete prototype.
14170
14171 * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
14172 not rtunion.
14173 (copy_most_rtx): Handle 't' format letter.
14174 * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
14175 (gen_rtvec_vv): Delete function. All callers changed to use
14176 gen_rtvec_v instead.
14177 * print-rtl.c (print_rtx): Move special casing of NOTEs to
14178 the '0' format letter.
14179
14180 * function.c (gen_mem_addressof): Don't use
14181 SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
14182 instead.
14183 * integrate.c (copy_rtx_and_substitute): Likewise.
14184 Copy 't' slots with XTREE.
14185 (subst_constants): Treat 't' slots like '[swi]' slots.
14186 * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
14187 * jump.c (rtx_equal_for_thread_p): Likewise.
14188 * rtlanal.c (rtx_equal_p): Likewise.
14189 * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
14190 only four arguments.
14191 * gengenrtl.c (type_from_format): Provide correct types for
14192 'b' and 't' slots.
14193
14194
14195 * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
14196 If a recent gcc is in use (always in stage2 and beyond), use
14197 statement expressions, so we don't make a function call unless
14198 the check fails. Evaluate arguments exactly once.
14199 (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
14200 TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
14201 Delete.
14202 (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
14203 they evaluate their arguments exactly once, irrespective of
14204 the compiler in use.
14205
14206 * tree.c [ENABLE_CHECKING]: Define whichever set of functions
14207 is used by the currently-enabled check macros. This is:
14208 (tree_check_failed, tree_class_check_failed): For gcc.
14209 (tree_check, tree_class_check, cst_or_constructor_check,
14210 expr_check): For other compilers.
14211
14212 * gencheck.c: Do not define any *_CHECK1 macros.
14213
14214 Thu Aug 19 14:42:38 1999 Mike Stump <mrs@wrs.com>
14215 Mark Mitchell <mark@codesourcery.com>
14216
14217 * c-common.c (c_get_alias_set): Fix support for poitners and
14218 references.
14219
14220 Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com)
14221
14222 * alias.c: Include tree.h.
14223 (nonlocal_reference_p, mark_constant_function): New functions.
14224 * flow.c (life_analysis): Call mark_constant_function.
14225 * rtl.h (mark_constant_function): Declare it.
14226
14227 Thu Aug 19 15:02:01 1999 Nick Clifton <nickc@cygnus.com>
14228
14229 * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
14230 unrecognisable switches.
14231
14232 Wed Aug 18 23:31:57 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14233
14234 * loop.c (recombine_givs): Set ix field after sorting.
14235 (recombine_givs): Remove bogus index / giv lockstep looping.
14236
14237 Wed Aug 18 18:20:40 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14238
14239 * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
14240 on CODE.
14241 (emit_store_flag_force): Use do_compare_rtx_and_jump.
14242 (do_cmp_and_jump): Formatting fixes.
14243 * expr.c (do_compare_and_jump): Renamed from compare; changed to call
14244 do_compare_rtx_and_jump instead of compare_from_rtx.
14245 (do_compare_rtx_and_jump): New function; mostly copied from
14246 compare_from_rtx.
14247 (do_jump_for_compare): Delete.
14248 (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
14249 MIN_EXPR.
14250 (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
14251 of compare/do_jump_for_compare pairs.
14252 (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
14253 (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
14254 compare_from_rtx/do_jump_for_compare pairs.
14255 (do_jump_by_parts_equality): Likewise.
14256 (do_jump_by_parts_equality_rtx): Likewise.
14257 * expr.h (do_compare_rtx_and_jump): Declare.
14258 * optabs.c (prepare_cmp_insn): New function, contains most of the code
14259 that used to be in emit_cmp_insn.
14260 (cmp_available_p): New function.
14261 (prepare_operand): New function.
14262 (emit_cmp_and_jump_insn_1): New function, contains some code that used
14263 to be in emit_cmp_insn.
14264 (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
14265 parameters to be pointers; don't emit final compare but modify some of
14266 the values pointed to by the args so the caller can perform the
14267 correct comparison.
14268 (expand_binop): Call emit_store_flag_force with signed forms of
14269 comparison code.
14270 (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
14271 emit_jump_insn pair.
14272 (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
14273 emit_cmp_and_jump_insn_1. Call emit_queue.
14274 (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
14275 arg.
14276 * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
14277 jump sets cc0 before deleting it.
14278 * integrate.c (expand_inline_function): Likewise.
14279 * unroll.c (unroll_loop): Similar changes in several places.
14280 (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
14281 before deleting it.
14282
14283 Wed Aug 18 06:37:44 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14284
14285 * Makefile.in (insn-recog.o): Update dependencies.
14286 * genrecog.c (main): Make generated file include "function.h".
14287
14288 Sat Aug 14 00:54:57 1999 Geoffrey Keating <geoffk@cygnus.com>
14289
14290 * cse.c (cse_insn): Call never_reached_warning when a jump is
14291 changed to be unconditional.
14292 * flags.h: Declare warn_notreached.
14293 * flow.c (delete_block): Call never_reached_warning when
14294 a block is deleted.
14295 * jump.c (delete_barrier_successors): Call never_reached_warning
14296 when we delete everything after a BARRIER.
14297 (never_reached_warning): New function.
14298 * rtl.h: Declare never_reached_warning.
14299 * toplev.c (warn_notreached): New variable.
14300 (lang_independent_options): Set warn_notreached
14301 when -Wunreachable-code.
14302 (compile_file): We need line numbers for -Wunreachable-code.
14303
14304 Tue Aug 17 22:06:11 1999 Jan Hubicka <hubicka@freesoft.cz>
14305
14306 * haifa-sched.c (insn_unit): Fix typo on out of range test.
14307 * sched.c (insn_unit): Likewise.
14308
14309 Tue Aug 17 21:57:23 1999 Andreas Schwab <schwab@suse.de>
14310
14311 * combine.c (distribute_notes): Handle REG_EH_RETHROW.
14312
14313 Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
14314
14315 * flow.c (create_edge_list): Use xmalloc, not malloc.
14316
14317 Tue Aug 17 01:40:54 1999 Loren Rittle <ljrittle@acm.org>
14318
14319 * fixinc/inclhack.def (no_double_slash): Do not trash single-line
14320 C-style comments. Do not lose the character before double slash.
14321
14322 Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
14323
14324 * basic-block.h (struct edge_list): Stucture to maintain a vector
14325 of edges.
14326 (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
14327 INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
14328 (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
14329 New function prototypes.
14330 * flow.c (create_edge_list): Function to create an edge list.
14331 (free_edge_list): Discards memory used by an edge list.
14332 (print_edge_list): Debug output showing an edge list.
14333 (verify_edge_list): Internal consistency check for an edge list.
14334 (find_edge_index): Function to find an edge index for a pred and succ.
14335
14336 Mon Aug 16 11:56:36 1999 Mark Mitchell <mark@codesourcery.com>
14337
14338 * tree.c (type_hash_add): Use permalloc to allocate nodes in the
14339 hashtable.
14340
14341 Mon Aug 16 17:04:15 1999 Jorn Rennecke <amylaar@cygnus.co.uk>
14342
14343 * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
14344
14345 Fri Aug 13 15:20:43 1999 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
14346
14347 * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
14348
14349 Fri Aug 13 10:21:28 1999 Nick Clifton <nickc@cygnus.com>
14350
14351 * toplev.c (rest_of_compilation): Allow machine dependent
14352 reorganisation pass to place information into the RTL dump
14353 file if it so wishes.
14354
14355 Sun Aug 15 12:41:21 1999 Jim Wilson <wilson@cygnus.com>
14356
14357 * explow.c (hard_function_value): Use VOIDmode instead of
14358 MAX_MACHINE_MODE.
14359 * stmt.c (expand_return): Likewise.
14360 * stor-layout.c (get_best_mode): Likewise.
14361
14362 * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
14363 emit call instead of emit_insn call.
14364
14365 Sat Aug 14 15:04:06 1999 Mumit Khan <khan@xraylith.wisc.edu>
14366
14367 * configure.in: Handle --disable/enable-win32-registry.
14368 * install.texi: Document --disable/enable-win32-registry.
14369 * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
14370 (WIN32_REGISTRY_KEY): New macro.
14371 * prefix.c: Use to enable/disable win32-specific code.
14372 (lookup_key): Use versioned key.
14373 * configure: Regenerate.
14374 * config.in: Likewise.
14375
14376 Fri Aug 13 17:41:55 1999 Jason Merrill <jason@yorick.cygnus.com>
14377
14378 * cpplib.c (read_line_number): New fn, split out of...
14379 (do_line): Here.
14380
14381 Fri Aug 13 14:18:27 1999 Gavin Romig-Koch <gavin@cygnus.com>
14382
14383 tree.c (lang_unsave_expr_now) : New.
14384 (unsave_expr_now): Call lang_unsave_expr_now.
14385 tree.h (lang_unsave_expr_now) : New.
14386
14387 Fri Aug 13 00:49:46 1999 Jason Merrill <jason@yorick.cygnus.com>
14388
14389 * toplev.c (flag_new_exceptions): On by default.
14390
14391 1999-08-13 Michael Meissner <meissner@cygnus.com>
14392
14393 * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
14394
14395 Fri Aug 13 01:29:57 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
14396
14397 * dwarfout.c (fundamental_type_code): Return FT_boolean for
14398 INTEGER_TYPE with precision==1, it's __java_boolean.
14399
14400 Thu Aug 12 23:51:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
14401
14402 * global.c (prune_preferences): Move some invariants out of the
14403 inner loop.
14404
14405 Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com)
14406
14407 * configure.in (alpha*-dec-osf*): Add osf5.
14408
14409 Sun Aug 1 22:24:03 1999 Philip Blundell <philb@gnu.org>
14410
14411 * configure.in: Rework handling of ARM GNU/Linux slightly.
14412 (arm*-*-linux-gnuoldld): New target.
14413 * configure: Regenerate.
14414 * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
14415 arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete.
14416 * config/arm/linux-oldld.h: New file.
14417 * config/arm/linux-elf26.h: Don't include linux-elf.h.
14418 (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
14419 Don't define.
14420 * config/arm/linux-elf.h (ASM_SPEC): Define.
14421 (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
14422 SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
14423 for 26-bit APCS and old linker.
14424 (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
14425 `arm_elf'.
14426 (FP_DEFAULT): Define to FP_SOFT3 for all machines.
14427 * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
14428 don't define `arm' or `arm_elf'.
14429 * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
14430 MULTILIB_DIRNAMES): Define. Fix typo in comment.
14431
14432 Thu Aug 12 10:14:47 1999 Andreas Schwab <schwab@suse.de>
14433
14434 * rtl.texi: Fix typo.
14435
14436 Wed Aug 11 23:50:57 1999 Jason Merrill <jason@yorick.cygnus.com>
14437
14438 * invoke.texi (C++ Dialect Options): Add -fms-extensions.
14439
14440 Wed Aug 11 12:59:37 1999 Mark Mitchell <mark@codesourcery.com>
14441
14442 * extend.texi (C++ Signatures): Remove node.
14443 * invoke.texi: Remove discussion of -fhandle-signatures,
14444 signature, sigof, __signature__, and __sigof__.
14445
14446 Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com)
14447
14448 * Makefile.in (JAVAGC): Removed.
14449
14450 Wed Aug 11 02:13:26 1999 Mumit Khan <khan@xraylith.wisc.edu>
14451
14452 * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
14453
14454 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
14455
14456 * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
14457
14458 1999-08-11 Richard Earnshaw (rearnsha@arm.com)
14459
14460 * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
14461 a register that is already known to be a pointer.
14462
14463 1999-08-11 Bruce Korb <ddsinc09@ix.netcom.com>
14464
14465 * fixinc/inclhack.tpl: Only install assert.h conditionally.
14466 * fixinc/inclhack.sh: Regenerated.
14467 * fixinc/fixincl.sh: Regenerated.
14468
14469 Wed Aug 11 00:34:22 1999 Joe Buck <jbuck@synopsys.com>
14470
14471 * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
14472 Fix documentation of -ansi flag to describe its C++ behavior.
14473 Remove bogus reference to GCC 2.9.
14474
14475 Tue Aug 10 17:19:02 1999 Jim Wilson <wilson@cygnus.com>
14476
14477 * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
14478 note if it is non-NULL.
14479
14480 Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
14481
14482 * except.h (eh_nesting_info): Add new structure defintion.
14483 (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
14484 (reachable_handlers, update_rethrow_references): Add function
14485 prototypes.
14486 * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes
14487 a rethrow symbol instead of an integer exception region number.
14488 * flow.c (Make_edges): Use new exception nesting routines to determine
14489 which handlers are reachable from a CALL or asynchronous insn.
14490 Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
14491 goto receivers.
14492 (delete_eh_regions): Update rethrow labels, and don't delete
14493 regions which are the target of a rethrow.
14494 * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
14495 avoid overloading the SYMBOL_REF_USED flag.
14496 (rethrow_symbol_map): Use new rethrow_ref field.
14497 (rethrow_used): Use new rethrow_ref field.
14498 (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
14499 of an integer. Fix formatting.
14500 (output_exception_table_entry): Use new rethrow_ref field.
14501 (can_throw): Check for EH_REGION_NOTE before deciding
14502 whether a CALL can throw or not.
14503 (scan_region): Call rethrow_used() instead of accessing data structure.
14504 (update_rethrow_references): New function to make sure only regions
14505 which are still targets of a rethrow are flagged as such.
14506 (process_nestinfo): New static function to initialize a handler
14507 list for a specific region.
14508 (init_eh_nesting_info): New function to allocate and initialize
14509 the list of all EH handlers reachable from all regions.
14510 (reachable_handlers): New function to retrieve the list of handlers
14511 reachable from a specific region and insn.
14512 (free_eh_nesting_info): New function to dispose of a list of
14513 reachable handlers.
14514
14515 Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod <amacleod@cygnus.com>
14516
14517 * flow.c (split_edge): Set JUMP_LABEL field.
14518 (commit_one_edge_insertion): Set head correctly for insert_before.
14519 When inserting insns, update insn block numbers if allocated.
14520
14521 Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14522
14523 * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
14524 retry_incomplete_types): Add static prototype.
14525 (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
14526 dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
14527 dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
14528 dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
14529 dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
14530 Constify a char*.
14531
14532 * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
14533 dwarf2out_start_source_file, dwarf2out_line): Likewise.
14534
14535 Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14536
14537 * output.h (assemble_name): Constify a char*.
14538
14539 * varasm.c (UNIQUE_SECTION, assemble_start_function,
14540 assemble_variable, assemble_name): Likewise.
14541
14542 * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
14543
14544 * arm/pe.c (arm_pe_unique_section): Likewise.
14545
14546 * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
14547
14548 * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
14549
14550 * i386/interix.c (i386_pe_unique_section): Likewise.
14551
14552 * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
14553
14554 * i386/winnt.c (i386_pe_unique_section): Likewise.
14555
14556 * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
14557
14558 * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
14559
14560 * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
14561
14562 * pa/pa.c (output_call): Likewise.
14563
14564 * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
14565
14566 * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
14567
14568 * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
14569 Likewise.
14570
14571 * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
14572 Likewise.
14573
14574 * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
14575
14576 * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
14577 STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
14578
14579 * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
14580
14581 Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14582
14583 * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
14584
14585 Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14586
14587 * tree.h (lang_identify): Constify a char*.
14588 (print_error_function): Add extern prototype. Constify a char*.
14589
14590 * c-lang.c (lang_identify): Constify a char*.
14591
14592 * objc/objc-act.c (lang_identify): Constify a char*.
14593
14594 Mon Aug 9 16:21:53 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14595
14596 * genpeep.c (main): Make generated file include "function.h".
14597 * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
14598
14599 Mon Aug 9 10:08:50 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14600
14601 * Makefile.in: Update dependencies.
14602 * alias.c: Include "function.h"
14603 * c-decl.c: Likewise.
14604 * caller-save.c: Likewise.
14605 * calls.c: Likewise.
14606 * combine.c: Likewise.
14607 * cse.c: Likewise.
14608 * explow.c: Likewise.
14609 * final.c: Likewise.
14610 * global.c: Likewise.
14611 * graph.c: Likewise.
14612 * local-alloc.c: Likewise.
14613 * loop.c: Likewise.
14614 * optabs.c: Likewise.
14615 * profile.c: Likewise.
14616 * recog.c: Likewise.
14617 * regclass.c: Likewise.
14618 * regmove.c: Likewise.
14619 * reload.c: Likewise.
14620 * reorg.c: Likewise.
14621 * resource.c: Likewise.
14622 * sched.c: Likewise.
14623 * stupid.c: Likewise.
14624 * config/1750a/1750a.c: Likewise.
14625 * config/a29k/a29k.c: Likewise.
14626 * config/arc/arc.c: Likewise.
14627 * config/arm/arm.c: Likewise.
14628 * config/arm/thumb.c: Likewise.
14629 * config/c4x/c4x.c: Likewise.
14630 * config/clipper/clipper.c: Likewise.
14631 * config/convex/convex.c: Likewise.
14632 * config/fx80/fx80.c: Likewise.
14633 * config/i860/i860.c: Likewise.
14634 * config/m68k/m68k.c: Likewise.
14635 * config/m88k/m88k.c: Likewise.
14636 * config/mips/mips.c: Likewise.
14637 * config/pdp11/pdp11.c: Likewise.
14638 * config/pyr/pyr.c: Likewise.
14639 * config/romp/romp.c: Likewise.
14640 * config/sh/sh.c: Likewise.
14641 * config/tahoe/tahoe.c: Likewise.
14642 * config/vax/vax.c: Likewise.
14643 * config/we32k/we32k.c: Likewise.
14644 * config/sparc/sparc.c: Include "function.h".
14645 (mem_min_alignment): Test current_function rather than
14646 regno_pointer_align.
14647 * config/pa/pa.c: Likewise.
14648 (compute_frame_size): Delete declaration of
14649 current_function_outgoing_args_size.
14650 * config/arc/arc.h (current_function_varargs): Delete declaration.
14651 * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
14652 declaration.
14653 * config/i370/i370.h (current_function_outgoing_args_size): Delete
14654 declaration.
14655 * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
14656 current_function_uses_pic_offset_table.
14657 * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
14658 of current_function_returns_pointer.
14659 * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14660 * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14661 * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14662 * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14663 * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14664 * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
14665 * config/m88k/m88k.c: Include "function.h"
14666 (call_used_regs, current_function_pretend_args_size,
14667 current_function_outgoing_args_size, frame_pointer_needed): Delete
14668 declarations.
14669 * config/m88k/m88k.h (current_function_pretend_args_size): Delete
14670 declaration.
14671 * config/mips/mips.h (current_function_calls_alloca): Delete
14672 declaration.
14673 * config/mn10200/mn10200.h (current_function_needs_context,
14674 rtx_equal_function_value_matters): Delete declarations.
14675 * config/ns32k/ns32k (current_function_uses_pic_offset_table,
14676 flag_pic): Delete declarations.
14677 * config/pa/pa.h (current_function_pretend_args_size,
14678 current_function_decl): Delete declarations.
14679 * config/pa/som.h (current_function_varargs): Delete declaration.
14680 * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
14681 declaration.
14682 * config/pyr/pyr.h (current_function_pretend_args_size,
14683 current_function_args_size, current_function_calls_alloca): Delete
14684 declarations.
14685 * config/sh/sh.h (current_function_varargs): Delete declaration.
14686 * config/sparc/sparc.h (current_function_outgoing_args_size,
14687 current_function_calls_alloca, current_function_decl): Delete
14688 declarations.
14689 * config/spur/spur.h (current_function_pretend_args_size,
14690 current_function_calls_alloca): Delete declarations.
14691 * config/v850/v850.c (current_function_outgoing_args_size): Delete
14692 declaration.
14693 * config/vax/vms.h (current_function_name): Delete declaration.
14694 * gcse.c: Include "function.h".
14695 (current_function_name, current_function_calls_setjmp): Delete
14696 declarations.
14697 * haifa-sched.c: Include "function.h".
14698 (forced_labels): Delete declaration.
14699 * jump.c: Likewise.
14700 * reg-stack.c: Likewise.
14701 * reload1.c: Likewise.
14702 * genemit.c (main): Make generated file include function.h.
14703 * genoutput.c (output_prologue): Likewise.
14704
14705 * builtins.c (saveregs_value, apply_args_value): Delete variables.
14706 * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
14707 sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
14708 regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
14709 regno_reg_rtx, sequence_stack): Delete variables. Add accessor
14710 macros for some of them.
14711 (emit_filename, emit_lineno): Delete declarations.
14712 (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access
14713 regno_pointer_* variables through current_function.
14714 (gen_inline_header_rtx): Delete function.
14715 (save_emit_status): Delete function.
14716 (set_new_last_label_num): New function.
14717 (clear_emit_caches): New function.
14718 (restore_emit_status): Just clear last_labelnum and call
14719 clear_emit_caches.
14720 (get_last_insn_anywhere): Variable sequence_stack is now accessed
14721 through macro seq_stack.
14722 (add_insn_after): Likewise.
14723 (add_insn_before): Likewise.
14724 (remove_insn): Likewise.
14725 (pop_topmost_sequence): Likewise.
14726 (in_sequence_p): Likewise.
14727 (start_sequence_for_rtl_expr): Likewise.
14728 (start_sequence): Likewise, and likewise for
14729 sequence_rtl_expr/seq_rtl_expr.
14730 (push_topmost_sequence): Likewise.
14731 (end_sequence): Likewise.
14732 (init_virtual_regs): Now takes a "struct emit_status *" argument.
14733 All callers changed. Store into that pointer instead of globals.
14734 (init_emit): Allocate emit elt of current_function.
14735 Changes for sequence_rtl_expr/sequence_stack renaming.
14736 Call clear_emit_caches instead of doing it in-line.
14737 Access regno_pointer_* variables through current_function.
14738 (init_emit_once) Don't clear sequence_stack.
14739
14740 * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
14741 Delete variables.
14742 (arg_pointer_save_area): Delete declaration.
14743 (finish_expr_for_function): Renamed from init_queue; no longer static.
14744 (init_expr): Don't call init_queue.
14745 (save_expr_status, restore_expr_status): Delete functions.
14746 (expand_expr): Changes to reflect new layout of struct function.
14747 Don't access current_function_check_memory_usage when current_function
14748 is 0.
14749 * expr.h (forced_labels, save_expr_regs, saveregs_value,
14750 apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
14751 current_function_outgoing_args_size, current_function_arg_offset_rtx,
14752 current_function_uses_const_pool, function_call_count,
14753 current_function_uses_pic_offset_table, nonlocal_labels,
14754 current_function_internal_arg_pointer, nonlocal_goto_stack_level,
14755 current_function_check_memory_usage, nonlocal_goto_handler_slots,
14756 pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
14757 declarations.
14758 (finish_expr_for_function): Declare.
14759 * flags.h (current_function_has_nonlocal_label,
14760 current_function_has_nonlocal_goto, current_function_is_thunk,
14761 current_function_has_computed_jump): Delete declarations.
14762 * flow.c (forced_labels): Delete declaration.
14763 * function.c (current_function_pops_args,
14764 current_function_returns_struct, current_function_returns_pcc_struct,
14765 current_function_needs_context, current_function_calls_setjmp,
14766 current_function_calls_longjmp, current_function_has_nonlocal_label,
14767 current_function_has_nonlocal_goto, current_function_is_thunk,
14768 current_function_has_computed_jump, current_function_calls_alloca,
14769 current_function_contains_functions, current_function_returns_pointer,
14770 current_function_epilogue_delay_list, current_function_args_size,
14771 current_function_pretend_args_size, current_function_arg_offset_rtx,
14772 current_function_outgoing_args_size, current_function_varargs,
14773 current_function_stdarg, current_function_args_info, cleanup_label,
14774 current_function_name, current_function_uses_const_pool,
14775 current_function_instrument_entry_exit, current_function_return_rtx,
14776 current_function_uses_pic_offset_table, nonlocal_labels,
14777 current_function_internal_arg_pointer, current_function_cannot_inline,
14778 current_function_check_memory_usage, function_call_count,
14779 nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
14780 nonlocal_goto_stack_level, return_label, save_expr_regs,
14781 stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
14782 tail_recursion_reentry, arg_pointer_save_area, frame_offset,
14783 context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
14784 last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
14785 temp_slot_level, var_temp_slot_level, target_temp_slot_level):
14786 Delete variables.
14787 (push_function_context_to): Don't save them. Don't call
14788 save_storage_status, save_emit_status or save_expr_status.
14789 (pop_function_context_from): Don't restore them. Don't call
14790 restore_storage_status or restore_expr_status.
14791 (get_func_frame_size): New function.
14792 (get_frame_size): Use it.
14793 (assign_outer_stack_local): Reflect some member name changes in struct
14794 function.
14795 (put_reg_into_stack): Likewise.
14796 (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
14797 seq_rtl_expr.
14798 (fixup_var_refs): Likewise.
14799 (fix_lexical_addr): Likewise.
14800 (trampoline_address): Likewise.
14801 (prepare_function_start): Clear field inlinable of current_function.
14802 (init_function_for_compilation): New function.
14803 (expand_dummy_function_end): New function.
14804 (expand_function_end): Call finish_expr_for_function.
14805 * function.h (struct emit_status): New; fields moved here from struct
14806 function and from global variables. Add accessor macros for some of
14807 the fields.
14808 (struct expr_status): Likewise.
14809 (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
14810 (struct function): Add fields expr and emit, inlinable, inl_emit,
14811 original_arg_vector, original_decl_initial, inl_last_parm_insn,
14812 inl_max_label_num. Add many comments.
14813 Add accessor macros for all elts of struct function that no longer
14814 have a global variable.
14815 (cleanup_label, return_label, frame_offset, tail_recursion_label,
14816 tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
14817 stack_slot_list): Delete declarations.
14818 (get_func_frame_size): Declare.
14819 (save_expr_status, restore_expr_status, save_emit_status,
14820 save_storage_status, restore_storage_status): Delete declarations.
14821 (init_virtual_regs): Declare.
14822 * output.h (current_function_pops_args,
14823 current_function_returns_struct, current_function_returns_pcc_struct,
14824 current_function_needs_context, current_function_calls_setjmp,
14825 current_function_calls_longjmp, current_function_calls_alloca,
14826 current_function_has_nonlocal_label, current_function_varargs,
14827 current_function_has_computed_jump, current_function_returns_pointer,
14828 current_function_contains_functions, current_function_args_size,
14829 current_function_pretend_args_size, current_function_stdarg,
14830 current_function_outgoing_args_size, current_function_args_info,
14831 current_function_name, current_function_return_rtx,
14832 current_function_epilogue_delay_list,
14833 current_function_uses_const_pool, current_function_cannot_inline):
14834 Delete declarations.
14835 * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
14836 regno_reg_rtx): Delete declaration.
14837 (REGNO_POINTER_FLAG): Delete macro.
14838 * stmt.c (expand_goto): Changes to reflect that some fields in struct
14839 function were renamed.
14840 * stor-layout.c (save_storage_status, restore_storage_status): Delete
14841 functions.
14842 * toplev.c: Include "function.h".
14843 (current_function_decl): Delete declaration.
14844 (compile_file): Call init_dummy_function_start and
14845 expand_dummy_function_end around some initializations that need to
14846 emit rtl.
14847 (rest_of_compilation): Use DECL_SAVED_INSNS properly.
14848 Call init_function_for_compilation.
14849 * unroll.c: Include "function.h"
14850 (unroll_loop): Access regno_pointer_* variables through
14851 current_function.
14852
14853 * tree.h (struct tree_decl): Add elt f to saved_insns member.
14854 (DECL_SAVED_INSNS): use it.
14855 (expand_dummy_function_end): Declare.
14856 (init_function_for_compilation): Declare.
14857 * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
14858 that it's no longer an INLINE_HEADER.
14859 (expand_call): Likewise.
14860 * integrate.c (finish_inline): Delete function.
14861 (max_parm_reg, parm_reg_stack_loc): Delete declarations.
14862 (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
14863 args. Don't generate an INLINE_HEADER rtx, just return the arg
14864 vector. All callers changed.
14865 (save_for_inline_copying): Create a duplicate struct emit_status to
14866 hold the emit state for compiling the current function. Use this and
14867 the other new fields in struct function that are for integration
14868 instead of an INLINE_HEADER.
14869 Use memcpy instead of bcopy.
14870 Store the current struct function in DECL_SAVED_INSNS of fndecl.
14871 (save_for_inline_nocopy): Similar changes, except no new emit_status
14872 is needed here.
14873 (expand_inline_function): Get information from function structure,
14874 not from an inline header rtx.
14875 (output_inline_function): Lose code to extract the necessary
14876 information from an inline header; simply put back the function
14877 structure into current_function. Clear its inlinable elt.
14878 * rtl.def (INLINE_HEADER): Delete.
14879 * rtl.h: Delete all accessors for an INLINE_HEADER.
14880 (gen_inline_header_rtx): Delete declaration.
14881 (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
14882 Delete declarations.
14883 (REGNO_POINTER_ALIGN): Delete.
14884 (clear_emit_caches): Declare.
14885 (set_new_last_label_num): Declare.
14886
14887 Mon Aug 9 01:52:24 1999 Jason Merrill <jason@yorick.cygnus.com>
14888
14889 * print-tree.c (print_node): Print base for OFFSET_TYPEs.
14890
14891 * except.c (expand_eh_region_start_for_decl): Always start a new block.
14892 * stmt.c (is_eh_region): Make sure current_function is present, too.
14893
14894 Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com)
14895
14896 * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
14897 for 64bit PA targets.
14898
14899 * pa.h (SELECT_SECTION): Define.
14900 * som.h (SELECT_SECTION): Delete.
14901
14902 Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
14903
14904 * alias.c (init_alias_analysis): Wrap call to
14905 `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
14906
14907 1999-08-07 Bruce Korb <autogen@linuxbox.com>
14908
14909 * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's
14910 <sys/asm.h> contains an asm comment with an apostrophe
14911 * fixinc/inclhack.sh: regen
14912 * fixinc/fixincl.x: regen
14913
14914 Sat Aug 7 19:37:07 1999 Richard Henderson <rth@cygnus.com>
14915
14916 * function.c (init_function_start): Clear prologue & epilogue.
14917 (prologue_epilogue_contains): New function.
14918 * alias.c (init_alias_analysis): Use it.
14919 * rtl.h (prologue_epilogue_contains): Declare it.
14920
14921 Sat Aug 7 19:32:16 1999 Richard Henderson <rth@cygnus.com>
14922
14923 * jump.c (onlyjump_p): New function.
14924 * rtl.h: Declare it.
14925 * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
14926 of condjump_p in calling tidy_fallthru_edge and merge_blocks.
14927
14928 Sat Aug 7 17:09:36 1999 Richard Henderson <rth@cygnus.com>
14929
14930 * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
14931 to invert loops. Simplify block scanning.
14932
14933 Sat Aug 7 02:11:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
14934
14935 * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
14936 (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
14937
14938 1999-08-07 Jonathan Larmour <jlarmour@cygnus.co.uk>
14939
14940 * config/sparc/liteelf.h: New file to support sparclite-elf target
14941 * config/sparc/t-sp86x: New file to support sparc86x targets
14942 * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
14943 * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
14944 * configure.in: Support above target triplets
14945 * configure: Regenerated
14946
14947 Sat Aug 7 01:39:27 1999 Philippe De Muyter <phdm@macqel.be>
14948
14949 * fixinc/server.c (server_setup): Do not prefix function used as
14950 parameter with `&'.
14951
14952 Sat Aug 7 00:21:20 1999 Richard Henderson <rth@cygnus.com>
14953
14954 * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
14955 Remove fp reg alternatives.
14956
14957 Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com)
14958
14959 * Makefile.in (TAROUTOPTS): Kill.
14960 (install-headers-tar): Use "xpf" for tar headerfile extraction
14961 * i370/x-oe (TAROUTOPTS): Delete.
14962 * m68k/x-apollo68 (TAROUTOPTS): Delete.
14963 * m68k/x-hp320 (TAROUTOPTS): Delete.
14964 * m68k/x-hp320g (TAROUTOPTS): Delete.
14965 * gcc.texi: Update bug reporting text.
14966
14967 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
14968
14969 * reg-stack.c (change_stack) Fixed problem with negative array index.
14970
14971 Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com)
14972
14973 * extend.texi, install.texi: Fix spelling mistakes.
14974
14975 * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
14976 (s-attrtab); No longer try to use pre-made insn-attrtab file.
14977 * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
14978 PREMADE_ATTRTAB_MD.
14979 * mips/t-ecoff: Likewise.
14980 * mips/t-elf: Likewise.
14981 * mips/t-mips: Likewise.
14982 * mips/t-osfrose: Likewise.
14983 * mips/t-r3900: Likewise.
14984 * mips/t-svr3: Likewise.
14985 * mips/t-svr4: Likewise.
14986 * mips/t-ultrix: Likewise.
14987
14988 * gcc.texi: Document recommend means to provide software floating
14989 point libraries in libgcc.a
14990
14991 1999-08-06 Jason Merrill <jason@yorick.cygnus.com>
14992
14993 * c-lex.c (yylex): We can have a number with no digits.
14994
14995 Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com)
14996
14997 * jump.c (delete_prior_computation): New function, broken
14998 out of delete_computation. Check for side effects with
14999 side_effects_p instead of FIND_REG_INC_NOTE. Handle
15000 multi-word hard registers.
15001 (delete_computation): Use it. Check for side effects with
15002 side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a
15003 missing REG_DEAD note for a register which is both set and
15004 used by an insn.
15005
15006 Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com)
15007
15008 * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
15009 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
15010 (ASM_FILE_START): Import _mcount with the right type.
15011 (ASM_DECLARE_FUNCTION_NAME): Define.
15012 (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
15013 * pa.c (output_function_prologue): Always emit the function's label
15014 here.
15015 * pa.h (TEXT_SPACE_P): Define.
15016 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
15017 (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
15018 * som.h (TEXT_SPACE_P): Delete.
15019 (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
15020 (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
15021
15022 Thu Aug 5 19:29:39 1999 Jim Wilson <wilson@cygnus.com>
15023
15024 * expr.c (emit_group_load): Allow src to be a CONCAT.
15025
15026 Thu Aug 5 22:27:15 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15027
15028 * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
15029 (___mulsi3): Use '!' comment character.
15030
15031 Thu Aug 5 13:34:14 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15032
15033 * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
15034
15035 Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com)
15036
15037 * gcc.c: Update URLs and mail addresses.
15038 * gcc.texi: Likewise.
15039
15040 Thu Aug 5 01:14:13 1999 Daniel Jacobowitz <drow@false.org>
15041
15042 * rs6000.c (current_file_function_operand): Return zero for
15043 weak functions.
15044 (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
15045 weak symbols.
15046 * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
15047 for weak symbols.
15048
15049 Thu Aug 5 00:56:30 1999 Geoffrey Keating <geoffk@cygnus.com>
15050
15051 * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
15052 allocate space in the stack frame for the PIC register.
15053
15054 Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com)
15055
15056 * m68k.md (xordi3, anddi3): These patterns are not available on
15057 the coldfire.
15058
15059 Wed Aug 4 23:39:20 1999 Mark Mitchell <mark@codesourcery.com>
15060
15061 * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
15062 (PUT_REAL): Likewise.
15063
15064 Wed Aug 4 20:45:04 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15065
15066 * final.c (shorten_branches): Don't add an alignment for loops
15067 that have no label inside.
15068
15069 Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15070
15071 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
15072 prototypes in macro HAVE_cmpstrsi.
15073
15074 * cpplib.c (cpp_get_token): Remove unused label `op3'.
15075
15076 * emit-rtl.c (operand_subword): Remove unused variable
15077 `bits_per_word'.
15078
15079 * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
15080
15081 * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
15082
15083 Wed Aug 4 13:29:23 1999 Zack Weinberg <zack@bitmover.com>
15084
15085 * cpphash.c (macroexpand): Delete leading whitespace when arg
15086 is concatenated before.
15087 (unsafe_chars): Correct test for whether + and - can extend a
15088 token.
15089
15090 * cppinit.c (cpp_start_read): Do dependencies for
15091 -include/-imacros files also.
15092
15093 * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
15094 tokenizing non-directive lines.
15095 (cpp_expand_to_buffer): Temporarily disable no-output mode.
15096 * cppmain.c: In no-output mode, just call cpp_scan_buffer for
15097 the input file.
15098
15099 Wed Aug 4 12:53:44 1999 Jason Merrill <jason@yorick.cygnus.com>
15100
15101 * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
15102
15103 * c-lex.c: Sync with C++ frontend.
15104 (linemode): New variable.
15105 (parse_float): imag, conversion_errno, and type are output only.
15106 (yylex): Adjust. Move initial '.' case into main switch.
15107 Use linemode.
15108 (handle_generic_pragma): Just deal with tokens.
15109 (readescape): Use ISXDIGIT and ISGRAPH.
15110 * c-parse.in: Add END_OF_LINE token.
15111
15112 * c-lex.c (lang_init): Generalize.
15113 (nextchar): Remove. Replace uses with UNGETC.
15114 (skip_white_space): Handle linemode here. Optimize for cpplib.
15115 (skip_white_space_on_line): Remove.
15116 (extend_token_buffer_to): New fn.
15117 (extend_token_buffer): Use it.
15118 (read_line_number, check_newline): Just deal with tokens.
15119 (token_getch, token_put_back): New fns.
15120 (yylex): Use them. More cpplib optimizations. Simplify.
15121
15122 Wed Aug 4 12:53:44 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
15123 Jason Merrill <jason@yorick.cygnus.com>
15124
15125 * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
15126 (consume_string): Make this smart about USE_CPPLIB.
15127 (check_newline): Rewrite to be intelligent about USE_CPPLIB.
15128 (yylex): Rewrite to be intelligent about USE_CPPLIB.
15129 Also, clean up cases where we redundantly set token_buffer[0].
15130 (read_line_number): New fn.
15131 (ignore_escape_flag): New variable.
15132
15133 Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com)
15134
15135 * a29k/t-a29kbare: Fix some comments.
15136 (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
15137 (FPBIT, DPBIT): Define.
15138 * a29k/t-vx29k: Likewise.
15139 * arc/t-arc: Likewise.
15140 * arm/t-arm-elf: Likewise.
15141 * arm/t-bare: Likewise.
15142 * arm/t-pe: Likewise.
15143 * arm/t-pe-thumb: Likewise.
15144 * arm/t-semi: Likewise.
15145 * arm/t-thumb: Likewise.
15146 * arm/t-thumb-elf: Likewise.
15147 * arm/t-thumb-linux: Likewise.
15148 * h8300/t-h8300: Likewise.
15149 * i960/t-i960: Likewise.
15150 * i960/t-vxworks960: Likewise.
15151 * m32r/t-m32r: Likewise.
15152 * mips/t-ecoff: Likewise.
15153 * mips/t-elf: Likewise.
15154 * mips/t-r3900: Likewise.
15155 * pa/t-pro: Likewise.
15156 * rs6000/t-aix43: Likewise.
15157 * rs6000/t-beos: Likewise.
15158 * rs6000/t-newas: Likewise.
15159 * rs6000/t-ppccomm: Likewise.
15160 * rs6000/t-rs6000: Likewise.
15161 * rs6000/t-winnt: Likewise.
15162 * rs6000/t-xnewas: Likewise.
15163 * rs6000/t-xrs6000: Likewise.
15164 * sh/t-sh: Likewise.
15165 * sparc/t-elf: Likewise.
15166 * sparc/t-sparcbare: Likewise.
15167 * sparc/t-sparclite: Likewise.
15168 * sparc/t-splet: Likewise.
15169 * v850/t-v850: Likewise.
15170 * mn10200/t-mn10200: Fix comments.
15171 * mn10300/t-mn10300: Likewise.
15172
15173 * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
15174 dummy operand. Allocate a new pseudo for the dummy operand.
15175 (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
15176
15177 * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
15178
15179 Wed Aug 4 11:53:55 1999 Tom Tromey <tromey@cygnus.com>
15180
15181 * configure: Rebuilt.
15182 * configure.in: Removed --enable-java-gc option and JAVAGC subst.
15183
15184 Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com)
15185
15186 * recog.c (preproces_constraints): Zero recog_op_alt before
15187 processing the constraints.
15188
15189 * arm.c (typedef minipool_node): Renamed from pool_node.
15190 (minipool_vector, minipool_size, minipool_vector_label): Similarly.
15191 (add_minipool_constant): New function.
15192 (dump_minipool): New function.
15193 (find_barrier): Remove special case for getting the insn size of
15194 an insn that references the constant pool.
15195 (minipool_fixup): New structure.
15196 (push_minipool_barrier): New function.
15197 (push_minipool_fix): New function.
15198 (note_invalid_constants): New function.
15199 (add_pool_constant, dump_table, fixit, broken_move): Delete.
15200 (arm_reorg): Rewrite code to fix up the constant pool into a
15201 series of mini-pools embedded in the insn stream.
15202 (arm_output_epilogue): New function, made mainly from the body
15203 of output_func_epilogue.
15204 (output_func_epilogue): Move insn generation part of epilogue code
15205 to arm_output_epilogue.
15206 * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
15207 * arm.md (pool_range): New attribute.
15208 (zero_extendqidi2): Add attribute pool_range.
15209 (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
15210 extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
15211 pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
15212 movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
15213 movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
15214 (epilogue): New expand.
15215 (epilogue_insn): New insn. Call arm_output_epilogue.
15216
15217 * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up.
15218 * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
15219
15220 Mon Aug 2 19:18:44 1999 Jason Merrill <jason@yorick.cygnus.com>
15221
15222 * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
15223
15224 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
15225
15226 * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define.
15227
15228 Wed Aug 4 02:15:32 1999 Richard Henderson <rth@cygnus.com>
15229
15230 * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
15231
15232 Wed Aug 4 01:48:08 1999 Jim Kingdon <http://developer.redhat.com>
15233
15234 * global.c: Fix comment.
15235
15236 Wed Aug 4 01:43:01 1999 Ian Lance Taylor <ian@zembu.com>
15237
15238 * gcc.c (access_check): New static function.
15239 (find_a_file): Use it when searching a directory list.
15240 * collect2.c (find_a_file): Don't accept directories found when
15241 searching a directory list.
15242
15243 Wed Aug 4 01:40:43 1999 Philippe De Muyter <phdm@macqel.be>
15244
15245 * tlink.c (symbol_hash_lookup): Do not prefix functions used as
15246 function parameters with `&'.
15247 (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
15248
15249 Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com)
15250
15251 * flow.c (delete_unreachable_blocks): Do not call merge_blocks
15252 or tidy_fallthru_edge if the last insn in the block is not
15253 an unconditional jump or a simple conditional jump.
15254
15255 Tue Aug 3 20:21:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15256
15257 * Makefile.in (c-decl.o): Depends on defaults.h.
15258
15259 Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com)
15260
15261 * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
15262 PA1.1 and above.
15263 (CLASS_MAX_NREGS): Likewise.
15264
15265 Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com)
15266
15267 * cse.c (cse_insn): Fix dumb thinko in last change.
15268
15269 Tue Aug 3 10:36:13 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15270
15271 * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
15272 "const char *".
15273
15274 Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson <hp@bitrange.com>
15275
15276 * dwarf2out.c (add_location_or_const_value_attribute): Correct
15277 test for sizes of passed and declared parameter types.
15278
15279 Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
15280
15281 * fixincludes: Fix the return type of bsearch, char* -> void*.
15282
15283 * fixinc/inclhack.def: Likewise.
15284
15285 Mon Aug 2 18:29:32 1999 Mark Mitchell <mark@codesourcery.com>
15286
15287 * invoke.texi (-fdump-translation-unit): New option.
15288
15289 Mon Aug 2 17:54:19 1999 Richard Henderson <rth@cygnus.com>
15290
15291 * expr.h (PROMOTE_PROTOTYPES): Move ...
15292 * defaults.h: ... to here.
15293 * c-decl.c: Include defaults.h instead of expr.h.
15294 * c-typeck.c: Include defaults.h.
15295
15296 Mon Aug 2 17:10:24 1999 Mark Mitchell <mark@codesourcery.com>
15297
15298 * toplev.h (errorcount): Declare.
15299 (warningcount): Likewise.
15300 (sorrycount): Likewise.
15301 * c-lex.c (errorcount): Don't declare.
15302 * dwarf2out.c (errorcount): Don't declare.
15303
15304 Mon Aug 2 17:02:08 1999 Jason Merrill <jason@yorick.cygnus.com>
15305
15306 * config/libgloss.h: Add a note discouraging use with ELF.
15307 * configure.in: Don't use libgloss.h for ELF targets.
15308 Always use_collect2 on a.out targets.
15309
15310 Mon Aug 2 16:27:42 1999 Jim Wilson <wilson@cygnus.com>
15311
15312 * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
15313 (force_to_mode, case ASHIFTRT): Add shiftrt label.
15314
15315 Tue Aug 3 00:45:02 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15316
15317 * loop.c (strength_reduce): When doing biv->giv conversion, update
15318 reg note of NEXT->insn.
15319
15320 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15321
15322 * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
15323
15324 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15325
15326 * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
15327 PROMOTE_PROTOTYPES, so that it tests it as a C expression.
15328 Ensure expr.h is included.
15329 * c-typecheck.c (convert_arguments): Ditto.
15330
15331 * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
15332
15333 * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
15334 * config/convex/convex.h: Ditto.
15335 * config/dsp16xx/dsp16xx.h: Ditto.
15336 * config/fx80/fx80.h: Ditto.
15337 * config/gmicro/gmicro.h: Ditto.
15338 * config/i370/i370.h: Ditto.
15339 * config/i386/i386.h: Ditto.
15340 * config/m32r/m32r.h: Ditto.
15341 * config/m68k/m68k.h: Ditto.
15342 * config/m88k/m88k.h: Ditto.
15343 * config/mips/mips.h: Ditto.
15344 * config/pa/pa.h: Ditto.
15345 * config/pyr/pyr.h: Ditto.
15346 * config/tahoe/tahoe.h: Ditto.
15347 * config/we32k/we32k.h: Ditto.
15348
15349 * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
15350 based on arch size.
15351
15352 * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
15353
15354 * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
15355 from comment.
15356
15357 * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
15358
15359 1999-08-02 Richard Henderson <rth@cygnus.com>
15360
15361 * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
15362 for the register spill block.
15363 (m32r_va_arg): New.
15364 * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
15365 (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
15366
15367 * m32r.h (INT8_P): Don't short-cut test with (unsigned).
15368 (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
15369 (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
15370
15371 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15372
15373 * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
15374 MAX_WCHAR_TYPE defined in sparc.h.
15375 * config/sparc/linuxaout.h: Likewise.
15376 * config/sparc/linux64.h: Likewise.
15377 Also default to -mvis if CPU is UltraSPARC.
15378
15379 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15380
15381 * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
15382 (RTX_OK_FOR_OLO10): Likewise.
15383 (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
15384 %lo(), allow it in addresses...
15385 (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
15386 * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
15387 does not make sense.
15388 * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
15389 (sparc_output_scratch_registers): New function.
15390 (output_function_prologue, sparc_flat_output_function_prologue): Use
15391 it.
15392 * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
15393 defined.
15394 * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
15395 * configure.in: Add check for .register pseudo-op support in as and
15396 check for offsetable %lo().
15397 * acconfig.h: Add templates for the above checks.
15398 * configure: Regenerate.
15399
15400 1999-08-02 Richard Henderson <rth@cygnus.com>
15401
15402 * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
15403 * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
15404 * sparc/sol2.h (TARGET_DEFAULT): Likewise.
15405
15406 Mon Aug 2 23:46:45 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
15407
15408 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
15409 reg_biv_class.
15410
15411 1999-08-02 Jakub Jelinek <jj@ultra.linux.cz>
15412
15413 * config/float-sparc.h: New file.
15414 * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
15415 sparc-*-linux-gnu and sparc64-*-linux*.
15416
15417 1999-08-02 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
15418
15419 * rs6000.c (rs6000_va_list): Type is an array.
15420 (rs6000_va_start): Don't doubly adjust for varargs.
15421 (rs6000_va_arg): Evaluate long long GPR adjustment.
15422
15423 Mon Aug 2 16:15:57 1999 David Edelsohn <edelsohn@gnu.org>
15424
15425 * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
15426 -maix64 and -maix32.
15427 (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
15428 LINK_SPEC): Change appropriately.
15429 * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
15430 (u_short_cint_operand): Likewise.
15431 * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
15432 for 64-bit hosts.
15433 * rs6000/t-aix43 (MULTILIB): Change to -m64.
15434
15435 * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
15436
15437 Mon Aug 2 16:15:57 1999 Geoff Keating <geoffk@cygnus.com>
15438
15439 * rs6000/rs6000.c (num_insns_constant_wide): Correct
15440 for type promotion.
15441 (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
15442 (non_add_cint_operand): Likewise.
15443 (logical_operand): Likewise.
15444 (non_logical_cint_operand): Likewise.
15445 (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
15446 (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
15447 (rs6000_select_rtx_section): Suppress warning.
15448 (small_data_operand): Suppress warning.
15449 (rs6000_got_register): Suppress warning.
15450 * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
15451 type, so `J' is generally the wrong constraint for a SImode value;
15452 use `L' instead.
15453 (andsi3_internal2): Likewise.
15454 (andsi3_internal3): Likewise.
15455 (iorsi3_internal1): Likewise.
15456 (xorsi3_internal1): Likewise.
15457 (movsi): Likewise.
15458 (movsf_softfloat): Likewise.
15459 (scc insns): Likewise.
15460 (movsi+2): Preserve sign bits of SImode constant.
15461 (floatsidf2_internal+1): Sign-extend SImode constant correctly.
15462 (movdf+1): Sign-extend properly.
15463 (movdi_32+1): Sign-extend properly.
15464 (scc insns): Sign-extend properly.
15465
15466 * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
15467 K, L, and T.
15468
15469 1999-08-02 Richard Henderson <rth@cygnus.com>
15470
15471 * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
15472 -mcpu parsing code.
15473 (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
15474 * alpha.md (all fp insns): Likewise.
15475
15476 1999-08-02 Nick Clifton <nickc@cygnus.com>
15477
15478 * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
15479 already defined.
15480
15481 Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com)
15482
15483 * pa.c (legitimize_pic_address): Clarify comments. Do not call the
15484 pic_load_label generator directly.
15485 * pa.md (pic_load_label): Clarify comments. Remove modes on operands.
15486 No longer a named pattern.
15487
15488 Mon Aug 2 09:38:10 1999 Nick Clifton <nickc@cygnus.com>
15489
15490 * explow.c (force_reg): Call force_operand if X does not
15491 satisfy general_operand.
15492
15493 Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com)
15494
15495 * fix-header.c (main): When testing for CONTINUED, use string
15496 equality, not pointer equality.
15497
15498 Mon Aug 2 01:27:24 1999 Dan Nicolaescu <dann@ics.uci.edu>
15499
15500 * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
15501
15502 Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com)
15503
15504 * cse.c (cse_insn): Fix loop which deletes insns after a jump
15505 that has become an unconditional jump.
15506
15507 * m68k.c (output_function_prologue): Fix typo in CPU32 case.
15508 (output_function_epilogue): Similarly.
15509
15510 Sun Aug 1 20:14:00 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15511
15512 * tree.h (init_dummy_function_start): Declare.
15513
15514 Sun Aug 1 12:55:31 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15515
15516 * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
15517 last_expr_type, last_expr_value, block_start_count, block_stack,
15518 stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
15519 nesting_depth, goto_fixup_chain): Delete global vars; now allocated
15520 dynamically in stmt elt of struct function for each function.
15521 (struct nesting): Rename function_call_count elt to n_function_calls,
15522 target_temp_slot_level to block_target_temp_slot_level. All users
15523 changed.
15524 (struct stmt_status): New structure definition.
15525 Add many accessor macros for stmt_status elements which previously
15526 were global variables.
15527 (init_stmt_for_function): Allocate stmt elt for current_function.
15528 Reflect that block_start_count was renamed to
15529 current_block_start_count.
15530 (save_stmt_status, restore_stmt_status): Delete functions.
15531 (preserve_subexpressions_p): Don't access loop_stack when outside
15532 a function.
15533 (expand_start_bindings): Reflect that block_start_count was renamed to
15534 current_block_start_count.
15535 (expand_fixup): Likewise.
15536 (expand_decl): Don't access block_stack when outside a function.
15537 (expand_decl_cleanup): Likewise.
15538 (expand_dcc_cleanup): Likewise.
15539 (expand_dhc_cleanup): Likewise.
15540 (expand_anon_union_decl): Likewise.
15541 (set_file_and_line_for_stmt): New function.
15542 (in_control_zone_p): New function.
15543
15544 * function.h (struct function): Add new elt stmt.
15545 Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
15546 case_stack, nesting_stack, nesting_depth, block_start_count,
15547 last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
15548 emit_lineno, goto_fixup_chain.
15549 (save_eh_status, restore_eh_status, save_stmt_status,
15550 restore_stmt_status): Delete declarations.
15551 * function.c (push_function_context_to): Don't call save_stmt_status.
15552 (pop_function_context_to): Don't call restore_stmt_status.
15553 * tree.h (in_control_zone_p): Declare.
15554 * rtl.h (set_file_and_line_for_stmt): Declare.
15555
15556 * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
15557 call set_file_and_line_for_stmt.
15558
15559 Thu Jul 31 12:34:45 1999 Joe Buck <jbuck@synopsys.com>
15560
15561 * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
15562 Also update copyright.
15563
15564 Sat Jul 31 11:10:07 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15565
15566 * c-pragma.c: Don't include "except.h".
15567 * emit-rtl.c: Likewise.
15568 * stor-layout.c: Likewise.
15569 * tree.c: Likewise.
15570 * varasm.c: Likewise.
15571
15572 * flow.c: Include "function.h".
15573 * tree.h (init_dummy_function_start): Declare new function.
15574
15575 * except.h (struct eh_status): New structure.
15576 (struct label_node, struct eh_entry): Declare even if tree.h hasn't
15577 been included.
15578 (eh_return_stub_label, ehstack, catchstack, ehqueue,
15579 catch_clauses, false_label_stack, caught_return_label_stack,
15580 protect_list, current_function_ehc): Add accessor macros for the
15581 corresponding fields in current_function->eh; delete declarations
15582 for all items that used to be declared here.
15583 * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
15584 catch_clauses, false_label_stack, caught_return_label_stack,
15585 protect_list, current_function_ehc): Delete variables.
15586 (init_eh_for_function): Allocate current_function->eh.
15587 (save_eh_status, restore_eh_status): Delete functions.
15588
15589 * function.h (struct function): Add fields next_global and eh.
15590 Delete all exception handling related fields.
15591 * function.c (current_function): New variable.
15592 (all_functions): New variable.
15593 (push_function_context_to): Don't allocate a struct function,
15594 use current_function instead. Call init_dummy_function_start when
15595 outside a function. Clear current_function before returning.
15596 (pop_function_context_from): Restore current_function.
15597 Don't free the restored struct function.
15598 (prepare_function_start): New function.
15599 (init_dummy_function_start): New function.
15600 (init_function_start): Break out some code into prepare_function_start
15601 and call it here.
15602
15603 * stmt.c (save_stmt_status): Don't call save_eh_status.
15604 (restore_stmt_status): Don't call restore_eh_status.
15605
15606 * Makefile.in: Update dependencies.
15607
15608 Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com)
15609
15610 * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
15611 of depending on a magic constant value. Update comments.
15612 (hppa_expand_prologue): Similarly.
15613
15614 * pa.md (reload_indi, reload_outdi): Allow any register for the
15615 original reload register.
15616
15617 Fri Jul 30 19:41:35 1999 Jim Wilson <wilson@cygnus.com>
15618
15619 * cccp.c (print_help): Change marcos to macros.
15620
15621 1999-07-30 Richard Henderson <rth@cygnus.com>
15622
15623 * c-typeck.c (initializer_constant_valid_p): Move ...
15624 * c-common.c (initializer_constant_valid_p): ... here. Use
15625 FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction
15626 of label addresses.
15627 * c-common.h (initializer_constant_valid_p): Declare.
15628 * c-tree.h (initializer_constant_valid_p): Remove.
15629
15630 Fri Jul 30 16:33:42 1999 Mathias Froehlich <frohlich@na.uni-tuebingen.de>
15631
15632 * config/i386/sol2-c1.asm: Align the stack.
15633 * config/i386/sol2-gc1.asm: Likewise.
15634
15635 1999-07-30 Vladimir Makarov <vmakarov@loony.cygnus.com>
15636
15637 * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
15638 -Asparclite for sparc86x.
15639 (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
15640 sparc86x.
15641 (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
15642
15643 Fri Jul 30 14:53:56 1999 Jakub Jelinek <jj@ultra.linux.cz>
15644
15645 * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
15646 the user if using the non-default arch size in BI_ARCH configuration.
15647 * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
15648
15649 * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
15650 Fix patterns so that they actually match.
15651 (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
15652 (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
15653 (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
15654 TARGET_HARD_MUL32.
15655 (mulsidi3): Reflect this in the expand.
15656 (smulsi3_highpart): Only on TARGET_ARCH32.
15657 (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
15658 (const_umulsidi3_sp32): Renamed from const_umulsidi3.
15659 (umulsidi3): Reflect this in the expand.
15660 (umulsi3_highpart): Only on TARGET_ARCH32.
15661 (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
15662 don't require g0 to be zero.
15663 (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
15664 ({,u}divsi3): New expands.
15665 ({,u}divsi3_sp64): New patterns.
15666 (after lshrdi3_v8plus): Four new patterns to help combiner
15667 optimizing nested mixed mode shifts.
15668
15669 * config/sparc/sparc.c (sparc_override_options): Use deprecated
15670 v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
15671 speed things up. Don't use them by default on plain v9 in 64bit
15672 mode, according to what SPAMv9 sais.
15673
15674 * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
15675 top 32 bits of %[og][0-7] in signal handlers.
15676 Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
15677
15678 Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com)
15679
15680 * pa.md (zvdep_imm32): Renamed from zvdep_imm.
15681 (ashlsi3): Corresponding changes.
15682
15683 * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
15684
15685 Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com)
15686
15687 * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
15688
15689 Thu Jul 29 19:01:58 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15690
15691 * arm.h (Hint): Delete macro.
15692 Substitute HOST_WIDE_INT for Hint in some prototypes.
15693 * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
15694
15695 Thu Jul 29 09:21:42 1999 Nick Clifton <nickc@cygnus.com>
15696
15697 * builtins.c (expand_builtin_setjmp): Use force_operand to
15698 make sure that the buffer address is in a suitable form to be
15699 passed to force_reg.
15700
15701 Wed Jul 28 12:50:48 1999 Geoff Keating <geoffk@cygnus.com>
15702
15703 * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
15704 them here.
15705
15706 Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com)
15707
15708 * pa.md (indirect_jump): Remove mode from match_operand. Verify
15709 proper mode in the condition string.
15710 (icacheflush, dcacheflush): Remove modes from match_operands.
15711
15712 * pa.c (emit_move_sequence): Always convert scratch_reg to the
15713 proper mode before using it.
15714
15715 * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
15716 pair.
15717
15718 * pa.c (store_reg): Do not call add_high_const generator directly.
15719 (load_reg, set_reg_plus_d): Likewise.
15720 * pa.md (add_high_const): No longer a named pattern.
15721
15722 * pa.c (legitimize_address): Consistently use Pmode rather than
15723 SImode. Do not call gen_pic2_highpart directly anymore.
15724 * pa.md (pic2_highpart): No longer a named pattern.
15725 (pic2_lo_sum): Similarly. Reformat to make more readable.
15726
15727 * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
15728 needed.
15729
15730 * README: Update.
15731
15732 Wed Jul 28 11:28:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
15733
15734 * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
15735
15736 Wed Jul 28 11:23:48 1999 Richard Henderson <rth@cygnus.com>
15737
15738 * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set
15739 and tag the spill mems.
15740 (hppa_va_start): New.
15741 (hppa_va_arg): New.
15742 * pa.h (EXPAND_BUILTIN_VA_START): New.
15743 (EXPAND_BUILTIN_VA_ARG): New.
15744
15745 Wed Jul 28 11:22:21 1999 Richard Henderson <rth@cygnus.com>
15746
15747 * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
15748 and tag the spill mems.
15749 (mn10300_va_start): New.
15750 (mn10300_va_arg): New.
15751 * mn10300.h (EXPAND_BUILTIN_VA_START): New.
15752 (EXPAND_BUILTIN_VA_ARG): New.
15753
15754 Wed Jul 28 11:20:19 1999 Richard Henderson <rth@cygnus.com>
15755
15756 * mn10200.c (mn10200_va_arg): New.
15757 * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
15758
15759 Wed Jul 28 11:19:06 1999 Richard Henderson <rth@cygnus.com>
15760
15761 * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
15762 rather than play with TREE_INT_CST_LOW.
15763
15764 1999-07-27 Philip Blundell <pb@nexus.co.uk>
15765
15766 * config/arm/telf.h: Include dbxelf.h.
15767 (CPP_PREDEFINES): Only define if not already defined.
15768 (ASM_IDENTIFY_GCC): Likewise.
15769 (SUBTARGET_EXTRA_SECTIONS): Likewise.
15770 (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
15771 * config/arm/thumb.h (LINK_SPEC): Only define if not already
15772 defined.
15773 (DBX_DEBUGGING_INFO): Don't define.
15774 * config/arm/linux-telf.h: New file.
15775 * config/arm/linux-tgas.h: New file.
15776 * config/arm/t-thumb-linux: New file.
15777 * config/arm/uclinux-elf.h: New file.
15778 * config/arm/uclinux-telf.h: New file.
15779 * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
15780 thumb-*-uclinux): New targets.
15781 * configure: Regenerate.
15782
15783 Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com)
15784
15785 * pa.md (post_store, pre_load): New expanders.
15786 (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
15787 (post_ldwm, pre_stwm): Make these unnamed patterns since we never
15788 need to directly generate RTL for them.
15789 * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
15790 changes.
15791
15792 Tue Jul 27 16:05:52 1999 David Edelsohn <edelsohn@gnu.org>
15793
15794 * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
15795 * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
15796 (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
15797 (secndary_reload_class): Make TARGET_ELF conditional compile.
15798 (print_operand_address): Similar.
15799 (output_toc): Print all values as hex.
15800 (get_issue_rate): Rearrange and add RS64A and PPC630.
15801 * rs6000.h (processor_type): Add RS64A and PPC630.
15802 (PROCESSOR_POWERPC64): New.
15803 (PROMOTE_MODE): Use word_mode.
15804 (RTX_COSTS): Add RS64A and PPC630.
15805 * rs6000.md (scheduling information): Add lmul and ldiv
15806 representing 64-bit integer multiply and divide. Add rs64a and
15807 PPC630 information.
15808 (ashldi3): Add support for "rldic" instruction.
15809 * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
15810
15811 Tue Jul 27 15:31:53 1999 Vladimir Makarov <vmakarov@toad.to.cygnus.com>
15812
15813 * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
15814 instead of V8 for sparclite86x in cpu_table.
15815
15816 Tue Jul 27 17:49:42 1999 Bernd Schmidt <bernds@cygnus.co.uk>
15817
15818 * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
15819 output_file_directive.
15820
15821 Tue Jul 27 03:15:33 1999 Jason Merrill <jason@yorick.cygnus.com>
15822
15823 * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
15824 tree for op1, not the rtl.
15825
15826 Tue Jul 27 00:18:34 1999 Richard Henderson <rth@cygnus.com>
15827
15828 * m88k.c (m88k_builtin_saveregs): Break out the constructor code
15829 to m88k_va_start, leaving only the register spill.
15830 (m88k_build_va_list): New.
15831 (m88k_va_start): New.
15832 (m88k_va_arg): New.
15833 * m88k.h (BUILD_VA_LIST_TYPE): New.
15834 (EXPAND_BUILTIN_VA_START): New.
15835 (EXPAND_BUILTIN_VA_ARG): New.
15836
15837 Mon Jul 26 19:07:11 1999 Geoff Keating <geoffk@cygnus.com>
15838
15839 * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
15840 Rename from expand_builtin_saveregs.
15841 * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
15842
15843 Mon Jul 26 22:52:47 1999 Richard Henderson <rth@cygnus.com>
15844
15845 * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
15846 for the register spill block.
15847 (i960_build_va_list): New.
15848 (i960_va_start): New.
15849 (i960_va_arg): New.
15850 * i960.h (BUILD_VA_LIST_TYPE): New.
15851 (EXPAND_BUILTIN_VA_START): New.
15852 (EXPAND_BUILTIN_VA_ARG): New.
15853 * i960.md (store_multiple): Use change_address on individul mems.
15854
15855 Mon Jul 26 22:43:12 1999 Richard Henderson <rth@cygnus.com>
15856
15857 * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
15858 an ARRAY_TYPE.
15859 (std_expand_builtin_va_start): Back out one word if !stdarg_p.
15860 (expand_builtin_va_end): Evaluate arg for side effects.
15861 * c-common.c (c_common_nodes_and_builtins): Construct a
15862 va_list_arg_type_node to handle array decomposition to pointer.
15863
15864 Mon Jul 26 18:51:34 1999 Richard Henderson <rth@cygnus.com>
15865
15866 * except.c (start_dynamic_cleanup): Use force_operand on the
15867 buffer's address.
15868
15869 Mon Jul 26 16:43:26 1999 Richard Henderson <rth@cygnus.com>
15870
15871 * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
15872 * c4x.c (c4x_va_arg): New.
15873
15874 Mon Jul 26 12:30:09 1999 Jason Merrill <jason@yorick.cygnus.com>
15875
15876 * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
15877 has manual_pop set.
15878
15879 1999-07-26 Nathan Sidwell <nathan@acm.org>
15880
15881 * eh-common.h (__eh_matcher): Prototype correctly.
15882
15883 Mon Jul 26 17:24:51 1999 Philip Blundell <pb@nexus.co.uk>
15884
15885 * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
15886 (TARGET_SINGLE_PIC_BASE): Likewise.
15887 (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
15888 definitions.
15889 (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
15890 (TARGET_SWITCHES): Add -m{no-}single-pic-base.
15891 (TARGET_OPTIONS): Add -mpic-register=N.
15892 (OUTPUT_INT_ADDR_CONST): New macro.
15893 (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
15894 LEGITIMATE_PIC_OPERAND_P): Likewise.
15895 (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
15896 (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
15897 output_addr_const directly.
15898 (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
15899 ARM port.
15900 (thumb_pic_register, thumb_pic_register_string): Declare.
15901
15902 * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
15903 from arm.c.
15904 (label_mentioned_p): New function: Imported from arm.c.
15905 (legitimize_pic_address): New function: Imported from arm.c.
15906 (is_pic):New function: Imported from arm.c.
15907 (thumb_finalize_pic):New function: Imported from arm.c.
15908 (add_constant): Cope with PIC constants.
15909 (fixit): Cope with PIC constants.
15910 (output_return): Do not treat the PIC register as live if
15911 TARGET_SINGLE_PIC_BASE is true.
15912 (thumb_function_prologue): Do not treat the PIC register as live if
15913 TARGET_SINGLE_PIC_BASE is true.
15914 (thumb_expand_prologue): Do not treat the PIC register as live if
15915 TARGET_SINGLE_PIC_BASE is true.
15916 (thumb_unexpand_epilogue): Do not treat the PIC register as live if
15917 TARGET_SINGLE_PIC_BASE is true.
15918 (thumb_print_operand): Accept '|'.
15919 (thumb_override_options): Process PIC options.
15920
15921 * config/arm/thumb.md (movsi): Support PIC.
15922 (call_insn): Change "i" constraint to "X".
15923 (call_value_insn): Likewise.
15924 (consttable_4, consttable_8, consttable_end): Set and clear
15925 "making_const_table" as appropriate.
15926 (pic_load_addr, pic_add_dot_plus_four): New insns.
15927
15928 * invoke.texi (Thumb Options): Fix spelling. Document new
15929 options -msingle-pic-base and -mpic-register=.
15930
15931 1999-07-26 Andrew Haley <aph@cygnus.com>
15932
15933 * config/m32r/initfini.c (__init): Use a full word immediate for
15934 __fini: this allows it to be placed in any memory region.
15935
15936 * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
15937 -mmodel=medium. This is OK for all memory models.
15938
15939 Mon Jul 26 11:58:46 1999 Nick Clifton <nickc@cygnus.com>
15940
15941 * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
15942 * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
15943
15944 Mon Jul 26 10:23:36 1999 Nick Clifton <nickc@cygnus.com>
15945
15946 * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
15947 defined.
15948
15949 * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
15950
15951 Sun Jul 25 23:51:59 1999 Richard Henderson <rth@cygnus.com>
15952
15953 * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
15954 (BUILD_VA_LIST_TYPE): New.
15955 (EXPAND_BUILTIN_VA_START): New.
15956 (EXPAND_BUILTIN_VA_ARG): New.
15957 * i860.c (output_delayed_branch): Disable.
15958 (output_delay_insn): Likewise.
15959 (i860_saveregs): New.
15960 (i860_build_va_list): New.
15961 (i860_va_start): New.
15962 (i860_va_arg): New.
15963 * i860.md: Disable all peepholes using output_delayed_branch.
15964 * i860/sysv4.h (I860_SVR4_VA_LIST): New.
15965
15966 Sun Jul 25 23:44:13 1999 Richard Henderson <rth@cygnus.com>
15967
15968 * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
15969 (BUILD_VA_LIST_TYPE): New.
15970 (EXPAND_BUILTIN_VA_START): New.
15971 (EXPAND_BUILTIN_VA_ARG): New.
15972 * clipper.c (clipper_builtin_saveregs): Only dump registers.
15973 Return the address of the save area.
15974 (clipper_build_va_list): New.
15975 (clipper_va_start): New.
15976 (clipper_va_arg): New.
15977
15978 Sun Jul 25 22:56:47 1999 Richard Henderson <rth@cygnus.com>
15979
15980 * arc.h (EXPAND_BUILTIN_VA_START): New.
15981 (EXPAND_BUILTIN_VA_ARG): New.
15982 * arc.c (arc_setup_incoming_varargs): Set alias set of
15983 varargs save area.
15984 (arc_va_start): New.
15985 (arc_va_arg): New.
15986
15987 Sun Jul 25 22:45:55 1999 Richard Henderson <rth@cygnus.com>
15988
15989 * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
15990 (BUILD_VA_LIST_TYPE): New.
15991 (EXPAND_BUILTIN_VA_START): New.
15992 (EXPAND_BUILTIN_VA_ARG): New.
15993 * alpha.c (alpha_builtin_saveregs): Delete.
15994 (alpha_build_va_list): New.
15995 (alpha_va_start): New.
15996 (alpha_va_arg): New.
15997
15998 Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com)
15999
16000 * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
16001 column zero.
16002 (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
16003 (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
16004
16005 * gcc.texi: More changes related to list conversion.
16006 * invoke.texi: Likewise.
16007
16008 Sun Jul 25 18:15:39 1999 Richard Henderson <rth@cygnus.com>
16009
16010 * builtins.c (expand_builtin_saveregs): Remove static, remove exp
16011 and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
16012 (expand_builtin_next_arg): Accept ARGLIST not EXP.
16013 (stabilize_va_list): New function.
16014 (std_expand_builtin_va_start): New function.
16015 (expand_builtin_va_start): New function.
16016 (get_varargs_alias_set): New function.
16017 (std_expand_builtin_va_arg): New function.
16018 (expand_builtin_va_arg): New function.
16019 (expand_builtin_va_end): New function.
16020 (expand_builtin_va_copy): New function.
16021 (expand_builtin): Call them.
16022 * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
16023 __builtin_{varargs_start,stdarg_start,end,copy}.
16024 (build_va_arg): New function.
16025 * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
16026 (build_va_arg): Declare.
16027 * c-decl.c (ptr_type_node, va_list_type_node): New.
16028 * c-parse.gperf (__builtin_va_arg): New.
16029 * c-parse.in (VA_ARG): New token.
16030 (unary_expr): Recognize it.
16031 * expr.c (expand_expr): Expand VA_ARG_EXPR.
16032 * expr.h (std_expand_builtin_va_start): Declare.
16033 (std_expand_builtin_va_arg): Declare.
16034 (expand_builtin_va_arg): Declare.
16035 (get_varargs_alias_set): Declare.
16036 * tree.def (VA_ARG_EXPR): New.
16037 * tree.h (BUILT_IN_VARARGS_START): New.
16038 (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
16039 (ptr_type_node, va_list_type_node): Declare.
16040 * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
16041 * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
16042 * m88k.h, m88k.c: Likewise.
16043 * mn10300.h, mn10300.c: Likewise.
16044 * pa.h, pa.c: Likewise.
16045 * rs6000.h, rs6000.c: Likewise.
16046 * sh.h, sh.c: Likewise.
16047 * sparc.h, sparc.c: Likewise.
16048
16049 * emit-rtl.c (operand_subword): Copy alias set.
16050 (change_address): Likewise.
16051
16052 Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com)
16053
16054 * pa.c (compute_frame_size): Scan all the used callee saved registers,
16055 not just the first one.
16056
16057 Fri Jul 23 14:09:58 1999 Philip Blundell <pb@nexus.co.uk>
16058
16059 * config/arm/arm.h (TARGET_SWITCHES): Add
16060 -m{no-}single-pic-base. Correct help string for -mshort-load-words.
16061 (TARGET_OPTIONS): Add -mpic-register=.
16062 (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
16063 (arm_pic_register_string): Declare.
16064 (NEED_PLT_GOT): Delete, replace with ...
16065 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros.
16066 (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
16067 (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
16068 * config/arm/arm.c (arm_override_options): Add new option
16069 -mpic-register=N.
16070 (arm_pic_register_string): New variable.
16071 (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
16072 (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
16073 register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT.
16074 (output_return_instruction): Likewise.
16075 * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
16076 (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic.
16077 * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
16078
16079 * invoke.texi (ARM Options): Fix spelling. Remove duplicate
16080 mention of -msched-prolog. Document new options -msingle-pic-base
16081 and -mpic-register=.
16082
16083 Thu Jul 22 18:23:56 1999 Richard Henderson <rth@cygnus.com>
16084
16085 * haifa-sched.c (reemit_notes): Tidy.
16086 * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
16087 haifa's routine.
16088
16089 Thu Jul 22 18:21:04 1999 Richard Henderson <rth@cygnus.com>
16090
16091 * explow.c (trunc_int_for_mode): New function.
16092 (plus_constant_wide): Use it.
16093 * combine.c (simplify_and_const_int): Likewise.
16094 (merge_outer_ops): Likewise.
16095 (simplify_shift_const): Likewise.
16096 * cse.c (simplify_unary_operation): Likewise.
16097 (simplify_binary_operation): Likewise.
16098 * emit-rtl.c (operand_subword): Likewise.
16099 * rtl.h: Declare it.
16100
16101 Thu Jul 22 14:34:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16102
16103 * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
16104 (use NUM_REGS instead of NUM_INTS).
16105
16106 Thu Jul 22 11:25:20 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16107
16108 * builtins.c: New file.
16109 * expr.c (saveregs_value, apply_args_value): Delete definition,
16110 moved into builtins.c.
16111 (string_constant): No longer static.
16112 (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
16113 apply_args_size, apply_result_size, result_vector,
16114 expand_builtin_apply_args, expand_builtin_apply,
16115 expand_builtin_return): Delete functions, moved into builtins.c.
16116 (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
16117 * expr.h (saveregs_value, apply_args_value): Declare variables.
16118 (expand_builtin, string_constant): Declare functions.
16119 * Makefile.in: Update to build builtin.o.
16120
16121 Wed Jul 21 00:46:58 1999 Mark P. Mitchell <mark@codesourcery.com>
16122
16123 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
16124 * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
16125 * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
16126 start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
16127 false.
16128 * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
16129 Define to zero.
16130
16131 1999-07-21 Michael Meissner <meissner@cygnus.com>
16132
16133 * print-rtl.c (print_rtx): Print the names of the virtual
16134 registers.
16135
16136 Wed Jul 21 16:00:32 1999 Nick Clifton <nickc@cygnus.com>
16137
16138 * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
16139 introduced in previous delta.
16140
16141 Wed Jul 21 14:30:51 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16142
16143 * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
16144 to avoid name clash.
16145
16146 Wed Jul 21 08:39:22 1999 Gavin Romig-Koch <gavin@cygnus.com>
16147
16148 * c-lex.c (yylex) : Correct the test for overflow when lexing
16149 integer literals.
16150
16151 Tue Jul 20 18:02:42 1999 Richard Henderson <rth@cygnus.com>
16152
16153 * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
16154 (adjust_priority): Always call ADJUST_PRIORITY.
16155 (schedule_insn): Only put insns into the ready at cost 0.
16156 (schedule_block): Remove redundant initial sort. Give clock_var
16157 and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost
16158 is not 0.
16159 * tm.texi (MD_SCHED_REORDER): Update docs.
16160
16161 * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE.
16162 * sparc.c (ultra_reorder_called_this_block): Delete.
16163 (ultrasparc_sched_init): Don't set it.
16164 (ultrasparc_sched_reorder): Don't check it.
16165
16166 Tue Jul 20 17:07:54 1999 Richard Henderson <rth@cygnus.com>
16167
16168 * rs6000.h (struct rs6000_args): Add sysv_gregno.
16169 * rs6000.c (init_cumulative_args): Init sysv_gregno.
16170 (function_arg_boundary): Align DFmode.
16171 (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
16172 to get fp reg and stack overflow correct.
16173 (function_arg): Likewise.
16174 (function_arg_pass_by_reference): True for TFmode for ABI_V4.
16175 (setup_incoming_varargs): Restructure for ABI_V4; use
16176 function_arg_advance to skip final named argument.
16177 (expand_builtin_saveregs): Properly unskip the last integer arg
16178 when doing varargs. Adjust overflow location calculation.
16179
16180 * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
16181 explicitly unsigned.
16182 (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
16183 (__VA_GP_REGSAVE): Similarly.
16184 (__va_longlong_p): Delete.
16185 (__va_arg_type_violation): New declaration.
16186 (va_arg): Restructure. Flag promotion errors. Align double.
16187 TFmode passed by reference.
16188
16189 * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
16190 in the HOST_BITS_PER_WIDE_INT > 32 case.
16191
16192 Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson <hp@bitrange.com>
16193
16194 * dwarf2out.c (output_abbrev_section): Terminate with a zero.
16195
16196 Tue Jul 20 12:12:27 1999 Jason Merrill <jason@yorick.cygnus.com>
16197
16198 * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
16199 * toplev.c (documented_lang_options): Add -fpreprocessed.
16200 * cpplib.h (struct cpp_buffer): Add preprocessed.
16201 * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
16202 (cpp_start_read): Don't expand macros or emit an initial #line
16203 directive if -fpreprocessed.
16204
16205 Tue Jul 20 12:12:09 1999 Michael Tiemann <tiemann@holodeck.cygnus.com>
16206
16207 * cpplib.h (struct cpp_buffer): Added manual_pop for
16208 better C++ tokenization.
16209 * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
16210 Also, support C++ tokenization for ->*, .*, <?, and >? operators.
16211 * c-common.c (cpp_token): Make non-static.
16212
16213 Tue Jul 20 11:24:19 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16214
16215 * c-common.h: New file.
16216 * c-common.c (permanent_obstack): Delete unused declaration.
16217 (c_global_trees): New array.
16218 (c_common_nodes_and_builtins): New function; split off common code
16219 from init_decl_processing in both c-decl.c and cp/decl.c.
16220 * c-tree.h: Delete lots of declarations of tree nodes; replaced by
16221 c_global_trees and accessor macros defined in c-common.h.
16222 Include c-common.h.
16223 * c-decl.c: Delete definitions for tree nodes that were replaced by
16224 c_global_trees.
16225 (init_decl_processing): Build void_list_node.
16226 Call c_common_nodes_and_builtins; delete code to generate the common
16227 builtins here.
16228 * objc/objc-act.c (build_module_descriptor): Rename variable
16229 void_list_node to avoid clash with c-common.h.
16230
16231 * Makefile.in: Update dependencies.
16232 * objc/Make-lang.in: Likewise.
16233
16234 Mon Jul 19 14:22:18 1999 Mark P. Mitchell <mark@codesourcery.com>
16235
16236 * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
16237 (UNIQUE_SECTION_P): Likewise.
16238 (UNIQUE_SECTION): Likewise.
16239
16240 1999-07-19 Linas Vepstas <linas@linas.org>
16241
16242 * config/i370/README: New file.
16243 * config/i370/linux.h: New file.
16244 * config/i370/mvs.h: New file.
16245 * config/i370/oe.h: New file.
16246 * config/i370/t-linux: New file.
16247 * config/i370/t-mvs: New file.
16248 * config/i370/t-oe: New file.
16249 * config/i370/x-oe: New file.
16250 * config/i370/xm-linux.h: New file.
16251 * config/i370/xm-mvs.h: New file.
16252 * config/i370/xm-oe.h: New file.
16253
16254 * i370.c (label_node_t): Add first_ref_page, label_addr,
16255 label_first_ref, label_last_ref members.
16256 (mvs_need_base_reload): Renamed from mvs_label_emitted.
16257 (MAX_MVS_LABEL_SIZE): Define.
16258 (MAX_LONG_LABEL_SIZE): Define.
16259 (alias_node_t, alias_anchor, alias_number): New.
16260 (mvs_function_table): Reorder for EBCDIC.
16261 (ascebc, ebcasc): Unconditionally define.
16262 (i370_branch_dest, i370_branch_length): New functions.
16263 (i370_short_branch, i370_label_scan): New functions.
16264 (mvs_get_label): Renamed from mvs_add_label. Search for
16265 an existing label before creating a new one.
16266 (mvs_add_label): New function.
16267 (mvs_get_label_page): New function.
16268 (mvs_free_label_list): Renamed from mvs_free_label. Iterate
16269 over the entire list.
16270 (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
16271 (mvs_check_page) [TARGET_ELF_ABI]: New function.
16272 (mvs_add_alias, mvs_need_alias): New functions.
16273 (mvs_get_alias, mvs_check_alias): New functions.
16274 (handle_pragma): New function.
16275 (mvs_function_check): New function.
16276 (unsigned_jump_follows_p): Search harder.
16277 (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels.
16278 (i370_function_prolog) [TARGET_ELF_ABI]: New function.
16279 * i370.h (TARGET_VERSION): Delete.
16280 (CPP_SPEC, CPP_PREDEFINES): Delete.
16281 (mvs_label_emitted): Delete.
16282 (TARGET_EBCDIC): Delete.
16283 (MAP_CHARACTER): Define only if TARGET_EBCDIC.
16284 (HANDLE_PRAGMA): Define.
16285 (HARD_REGNO_NREGS): Handle complex modes.
16286 (HARD_REGNO_MODE_OK): Likewise.
16287 (CLASS_MAX_NREGS): Likewise.
16288 (RET_REG): Likewise.
16289 (EXTRA_CONSTRAINT): Define.
16290 (RETURN_IN_MEMORY): True for DImode.
16291 (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
16292 (FUNCTION_PROFILER): Delete.
16293 (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
16294 (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
16295 (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
16296 (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
16297 (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
16298 (ASM_FILE_START): Add "RMODE ANY".
16299 (ASM_OUTPUT_EXTERNAL): Check for aliases.
16300 (ASM_GLOBALIZE_LABEL): Likewise.
16301 (ASM_OUTPUT_LABELREF): Likewise.
16302 (ASM_OUTPUT_COMMON): Likewise.
16303 (PRINT_OPERAND): Handle 'K', 'W', default.
16304 (PRINT_OPERAND_ADDRESS): New.
16305 (Lots of defines): Add support for TARGET_ELF_ABI.
16306 * i370.md (attr length): New. Define for all patterns.
16307 (*): Lots of tweeks to assembly output and constraints.
16308
16309 Mon Jul 19 15:09:29 1999 David Edelsohn <edelsohn@gnu.org>
16310
16311 * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
16312 Disable patterns performing SImode comparisons with SImode values
16313 if TARGET_POWERPC64 and instruction does not sign-extend or does
16314 not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
16315 differ for signed quantities.
16316 (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
16317 (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
16318 (decrement_and_branch_on_count): Add 64-bit variant.
16319
16320 Mon Jul 19 09:36:27 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16321
16322 * final.c (output_asm_insn): When searching for the matching string
16323 for a given dialect, don't run past the end of the list of
16324 alternatives if there are fewer alternatives in the template than
16325 dialects.
16326
16327 1999-07-17 Alexandre Oliva <oliva@dcc.unicamp.br>
16328
16329 * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
16330 Removed paragraph about compression of files and size limitation,
16331 duplicated in the FAQ. Use gcc-patches for posting patches.
16332 * gcc.c (main): Updated URL with bug reporting instructions to
16333 gcc.gnu.org. Removed e-mail address.
16334 * system.h (abort): Likewise.
16335
16336 1999-07-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
16337
16338 * Makefile.in (stmp-multilib-sub): Make the files extracted
16339 from $(LIBGCC1) writable.
16340
16341 Sat Jul 17 14:25:46 1999 Nick Clifton <nickc@cygnus.com>
16342
16343 * config/arm/aout.h: Reformat for improved readability.
16344
16345 * config/arm/arm.h: Reformat for improved readability.
16346 Replace uses of fprintf with asm_fprintf where appropriate.
16347 (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM
16348 function declaration assembler actions.
16349 (NUM_INTS): New macro: Convert from bytes to words.
16350 (NUM_REGS): New macro: Compute number of registers required to
16351 hold a quanitity of tyep MODE.
16352 (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
16353 types.
16354 (NUM_ARG_REGS): New macro: The number of argument registers
16355 available.
16356 (ARG_REGISTER): New macro: Compute the register number of the Nth
16357 argument register.
16358 (LAST_ARG_REGNUM): New macro: The number of the last argument
16359 register.
16360 (SP_REGNUM): New macro: Register number of the stack pointer.
16361 (FP_REGNUM): New macro: Register number of the frame pointer.
16362 (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
16363 FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
16364 CUMULATIVE_ARGS so that it counts registers not bytes.
16365
16366 * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
16367 TARGET_INTERWORK.
16368 Replace uses of fprintf with asm_fprintf where appropriate.
16369 (output_ascii_pseudo_op): Replace with version from thumb.c
16370
16371 * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
16372
16373 * config/arm/elf.h (CPP_PREDEFINES): Replace with
16374 SUBTARGET_CPP_SPEC.
16375 (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
16376 (ASM_FILE_START): Emit ASM_APP_OFF.
16377
16378 Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com)
16379
16380 * pa.c (compute_frame_size): Round frame according to
16381 STACK_BOUNDARY rather than a hardwired value.
16382
16383 * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
16384
16385 * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
16386 of "1".
16387 * configure: Rebuilt.
16388
16389 * configure.in (hppa*-*-linux*): New configuration.
16390 * configure: Rebuilt.
16391 * pa.h (MAX_OFILE_ALIGNMENT): Delete.
16392 * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
16393 * pa/pa-linux.h: New file.
16394 * pa/t-linux: New file.
16395 * pa/xm-linux.h: New file.
16396
16397 * pa.c (hppa_legitimize_address): Change references from SImode to
16398 either Pmode or word_mode as appropriate.
16399 (emit_move_sequence, store_reg, load_reg): Likewise.
16400 (set_reg_plus_d, hppa_expand_prologue): Likewise.
16401 (output_mul_insn): Likewise.
16402 * pa.h (PROMOTE_MODE): Likewise.
16403 (INITIALZE_TRAMPOLINE): Likewise.
16404 (Pmode): Define to word_mode.
16405
16406 * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
16407 value of 4. Allocate 8 bytes for each FP register save.
16408 (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
16409 value of 4.
16410 (hppa_expand_prologue): Likewise.
16411 * pa.h (PROMOTE_MODE): Likewise.
16412 (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
16413 (FUNCTION_ARG_BOUNDARY): Likewise.
16414
16415 * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
16416
16417 * pa.c (out_of_line_prologue_epilogue): Delete.
16418 (override_options): Remove -mspace related code.
16419 (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
16420 (compute_frame_size): Only allocate space for register that
16421 actually need to be saved.
16422 * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
16423 (TARGET_SWITCHES): Remove -mspace, -mno-space
16424 * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
16425 * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib.
16426 * pa/ee.asm, pa/ee_fp.asm: Delete.
16427
16428 * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
16429
16430 * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
16431 directive in column zero.
16432
16433 Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com)
16434
16435 * m68k.c (output_function_prologue): Fix computation of save mask
16436 when generating PIC code.
16437
16438 Thu Jul 15 15:40:09 1999 Jim Wilson <wilson@cygnus.com>
16439
16440 * tree.c (build_type_attribute_variant): Move current_obstack restore
16441 after build_qualified_type call.
16442
16443 1999-07-15 Mark Mitchell <mark@codesourcery.com>
16444
16445 * configure.in: Use t-iris6, even with GNU LD.
16446 * config/mips/iris6gld.h: Fix typo in linker spec.
16447 * config/mips/t-iris6gld: Remove.
16448
16449 Thu Jul 15 15:15:43 1999 David Edelsohn <edelsohn@gnu.org>
16450
16451 * rs6000.md (insv, extzv): Remove SImode dependence in named
16452 patterns. Explicitly generate DImode RTL if PowerPC64 and
16453 operand is DImode.
16454 (insvdi): Reverse start and size in instruction template.
16455
16456 1999-07-12 Joseph S. Myers <jsm28@cam.ac.uk>
16457
16458 * invoke.texi: Typo fixes.
16459
16460 Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com)
16461
16462 * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
16463 handle at this time instead of silently generating incorrect code.
16464 (gen_imagpart): Likewise.
16465
16466 * reload.c (find_reloads): Emit a USE for a pseudo register without
16467 a hard register if we could not create an optional reload for the
16468 pseudo.
16469
16470 Wed Jul 14 23:45:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16471
16472 * c-typeck.c (output_init_element, process_init_element):
16473 When advancing constructor_unfilled_fields for a RECORD_TYPE,
16474 check for nameless bit fields.
16475
16476 Wed Jul 14 01:57:39 1999 Richard Henderson <rth@cygnus.com>
16477
16478 * regclass.c (scan_one_insn): Notice subregs that change the
16479 size of their operand.
16480 (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
16481
16482 Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com)
16483
16484 * configure.in (alpha*-*-*): Include alpha/t-ieee.
16485 * configure: Rebuilt.
16486 * alpha/t-ieee: New file.
16487
16488 Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com)
16489
16490 * rs6000.c (find_addr_reg): Do not select r0 as an address
16491 register.
16492
16493 Tue Jul 13 00:46:18 1999 Philippe De Muyter <phdm@macqel.be>
16494
16495 * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
16496
16497 Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com)
16498
16499 * rs6000.md (movsf): Do not force easy FP constants into memory.
16500
16501 * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
16502 immed_double_const to ensure they are properly truncated then
16503 sign extended.
16504
16505 Mon Jul 12 10:40:01 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
16506
16507 * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
16508 always unless NO_DEBUG is used. Compile this code
16509 unconditionally.
16510 (replace_symbols_in_block): Compile it unconditionally.
16511
16512 Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com)
16513
16514 * configure.in (i?86-*-elf*): New target.
16515 * configure: Rebuilt.
16516 * i386/i386elf.h, i386/t-i386elf: New files.
16517
16518 Fri Jul 9 22:39:44 1999 Jason Merrill <jason@yorick.cygnus.com>
16519
16520 * toplev.c (main): Don't complain about saying -gdwarf.
16521 (rest_of_compilation): Remove redundant code.
16522
16523 Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
16524
16525 * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
16526
16527 Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
16528
16529 * config/i960/i960.c (ret_label): Change asm label from "LR:" to
16530 "Li960R:", to avoid name clash.
16531
16532 Fri Jul 9 10:48:28 1999 Bernd Schmidt <bernds@cygnus.co.uk>
16533
16534 * loop.c (check_dbra_loop): When reversing a loop, delete all
16535 REG_EQUAL notes referencing the reversed biv except those which are
16536 for a giv based on it.
16537
16538 Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com)
16539
16540 * version.c: Drop "gcc-" prefix from version #.
16541
16542 Thu Jul 8 18:06:30 1999 Jason Merrill <jason@yorick.cygnus.com>
16543
16544 * dwarf2out.c (dwarf2out_line): Emit a line number comment after
16545 the label if we're being verbose.
16546
16547 Thu Jul 8 14:18:46 1999 Richard Henderson <rth@cygnus.com>
16548
16549 * m68k.c (output_function_prologue): Add pic register to mask
16550 if live and flag_pic.
16551 (output_function_epilogue): Likewise.
16552
16553 Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com)
16554
16555 * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
16556 directives in column zero.
16557
16558 * pa/elf.h (ASM_FILE_START): Define.
16559 * pa/som.h (ASM_FILE_START): Include .level directives.
16560 * pa/hpux10.h (ASM_FILE_START): Delete.
16561 * pa/hpux11.h (ASM_FILE_START): Delete.
16562
16563 * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
16564
16565 Thu Jul 8 18:03:19 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16566
16567 * reload1.c (choose_reload_regs): Never call remove_adress_replacements
16568 when reload_out equals reload_in.
16569
16570 Thu Jul 8 16:50:14 1999 Nick Clifton <nickc@cygnus.com>
16571
16572 * invoke.texi (Spec Files): New node: Describe the contents of
16573 spec files.
16574
16575 Thu Jul 8 10:28:25 1999 Craig Burley <craig@jcb-sc.com>
16576
16577 * invoke.texi (DEC Alpha Options): Put @end table at
16578 beginning of line, to avoid confusing texi2html.
16579
16580 Thu Jul 8 09:22:06 1999 Nick Clifton <nickc@cygnus.com>
16581
16582 * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
16583 introduced in previous delta.
16584
16585 Wed Jul 7 02:00:04 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
16586
16587 * reload1.c (gen_reload): When synthesizing a 3 operand add
16588 sequence, improve test for when to reload OP1 into the reload
16589 register instead of OP0.
16590
16591 Wed Jul 7 01:38:03 1999 Jim Wilson <wilson@cygnus.com>
16592
16593 * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
16594
16595 1999-07-07 Manfred Hollstein <mhollstein@cygnus.com>
16596
16597 * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
16598 string literal.
16599
16600 Wed Jul 7 01:16:43 1999 Richard Henderson <rth@cygnus.com>
16601
16602 * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
16603 (va_dcl): Use __builtin_va_alist_t.
16604
16605 Wed Jul 7 01:14:42 1999 Jason Merrill <jason@yorick.cygnus.com>
16606
16607 * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
16608 on the permanent_obstack.
16609 * dwarfout.c (output_type): Likewise.
16610
16611 Tue Jul 6 15:25:32 1999 Gavin Romig-Koch <gavin@cygnus.com>
16612
16613 * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16614 Merged from c-typeck.c and cp/typeck.c.
16615 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16616 Merged into c-common.
16617
16618 Tue Jul 6 13:06:01 1999 Dave Brolley <brolley@cygnus.com>
16619
16620 * c-lex.c (errorcount): Declare it.
16621 (finish_parse): Update errorcount when using CPPLIB.
16622
16623 1999-07-06 Bruce Korb <ddsinc09@ix.netcom.com>
16624
16625 * fixinc/inclhack.def(end_else_label): Double the backslash so
16626 sed gets a chance to see it.
16627 * fixinc/inclhack.sh: regen
16628 * fixinc/fixincl.x: regen
16629
16630 Fri Jul 2 18:49:51 1999 Nick Clifton <nickc@cygnus.com>
16631
16632 Add framework to support armv5 architecture when it becomes
16633 available:
16634
16635 * config/arm/arm.c (FL_ARCH5): New processor capability flag.
16636 (arm_arch5): New variable.
16637 (all_architectures): Add armv5 line.
16638 * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
16639 -march=armv5 is specified on the command line.
16640 (arm_arch5): Export this variable.
16641 * invoke.texi: Document new string accepted by -march= switch for
16642 ARM ports.
16643
16644 * config/arm/arm.h: Replace use of constant 12 as a register
16645 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
16646 * config/arm/arm.c: Replace use of constant 12 as a register
16647 number with IP_REGNUM. Similarly 14 and LR_REGNUM.
16648
16649 * config/arm/elf.h: Tidy up.
16650 * config/arm/coff.h: Tidy up.
16651
16652 Thu Jul 1 19:08:13 1999 Mark P. Mitchell <mark@codesourcery.com>
16653
16654 * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
16655 * gcc/config/mips/t-iris6gld: New file.
16656 * gcc/config/mips/iris6gld.h: Likewise.
16657
16658 Fri Jul 2 13:23:39 1999 Gavin Romig-Koch <gavin@cygnus.com>
16659
16660 * c-decl.c (widest_integer_literal_type_node,
16661 widest_unsigned_literal_type) : New.
16662 (init_decl_processing): Handle/use the two new types.
16663 * c-common.c (type_for_size,type_for_mode) : Same.
16664 * c-lex.c (yylex) : Same.
16665 * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
16666 Same.
16667 * c-tree.h (widest_integer_literal_type_node,
16668 widest_unsigned_literal_type) : New.
16669
16670 Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com)
16671
16672 * dwarfout.c (field_byte_offset): Correctly compute the object's
16673 byte offset for the first bit of a field which crosses an alignment
16674 boundary on a !BYTES_BIG_ENDIAN target.
16675
16676 Fri Jul 2 01:36:36 1999 Robert Lipe <robertlipe@usa.net>
16677
16678 * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
16679 ntohs.
16680
16681 Fri Jul 2 00:46:47 1999 Richard Henderson <rth@cygnus.com>
16682 Jeff Law <law@cygnus.com>
16683
16684 * ginclude/varargs.h (va_dcl): Use word_mode for type of
16685 __builtin_va_list.
16686
16687 * except.c: Include intl.h.
16688 (expand_eh_return): Set current_function_cannot_inline.
16689 (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
16690 * function.h (struct function): Add eh_return_stub_label.
16691 * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
16692 * Makefile.in (except.o): Depend on intl.h.
16693
16694 Fri Jul 2 00:04:23 1999 David Edelsohn <edelsohn@gnu.org>
16695
16696 * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
16697 same as offsettable in cases 1 and 2.
16698
16699 Thu Jul 1 20:54:10 1999 Richard Henderson <rth@cygnus.com>
16700
16701 * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
16702 (extlh, extwh): Likewise.
16703
16704 Thu Jul 1 11:05:25 1999 Gavin Romig-Koch <gavin@cygnus.com>
16705
16706 * c-lex.c (yylex): Improve 'integer constant out of range' messages.
16707
16708 Wed Jun 30 16:51:41 1999 Nick Clifton <nickc@cygnus.com>
16709
16710 * configure.in: Add arm-pe and thumb-pe targets.
16711 * configure: Regenerate.
16712
16713 * thumb.c (arm_naked_function_p): New function: Determines if
16714 a function is naked (has no gcc generated prologue/epilogue).
16715 (is_called_in_ARM_mode): Return true if the func has the
16716 interfacearm attribute.
16717 (output_return): Do not generate a return for naked functions.
16718 (thumb_function_prologue): Do not generate a prologue for
16719 naked functions.
16720 (thumb_expand_prologue): Do not generate a prologue for naked
16721 functions.
16722 (thumb_expand_epilogue): Do not generate an epilogue for naked
16723 functions.
16724 (arm_valid_machine_decl_attribute): New function, copied from
16725 arm.c: Permit naked and interfacearm attributes.
16726
16727 * config/arm/pe.c: New file: Support code for arm-pe target.
16728 * config/arm/pe.h: New file: Header file for arm-pe target.
16729 * config/arm/tpe.h: New file: Header file for thumb-pe target.
16730 * config/arm/t-thumb-pe: New file: Makefile fragment for
16731 thumb-pe target.
16732
16733 1999-07-01 Mark Kettenis <kettenis@gnu.org>
16734
16735 * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
16736 -fPIC or -fpic is specified.
16737
16738 Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com)
16739
16740 * expr.c (emit_block_move): Use copy_to_mode_reg for
16741 !TARGET_MEM_FUNCTIONS case too.
16742
16743 * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
16744 appropriate.
16745 * configure: Rebuilt.
16746 (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
16747 * pa.h: Include dbxelf.h. Delete various dbx/stabs related
16748 definitions made redundant by dbxelf.h inclusion. Delete
16749 lots of definitions related to assembly output that are
16750 specific to the SOM object format.
16751 * pa.c (output_function_prologue): Do not emit the function's
16752 name for OBJ_ELF.
16753 * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
16754 * pa-pro.h: Deleted.
16755 * som.h: New file with SOM specific definitions.
16756 * elf.h: New file with ELF specific definitions.
16757
16758 * elfos.h (const_section): Output a tab before assembler directives.
16759 (ctors_section, dtors_section): Likewise.
16760 (ASM_OUTPUT_SECTION_NAME): Likewise.
16761
16762 * pa/pa1.h: Delete unused file.
16763
16764 Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com)
16765
16766 * configure.in (hppa*-hp-hpux11*): New configuration.
16767 * configure: Rebuilt.
16768 * pa/pa-hpux11.h: New file.
16769 * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
16770 command line.
16771
16772 * mips.md (leasi, leadi): New patterns.
16773
16774 * expr.c (emit_block_move): Properly handle case where one of the
16775 block move arguments has a queued increment or decrement.
16776 (clear_storage): Similarly. Fix formatting goof.
16777
16778 1999-06-28 "David O'Brien" <obrien@NUXI.com>
16779
16780 * fixinc/inclhack.def(stdio_va_list): This patch Removes a
16781 semicolon from the BSD VA_LIST replacement expression.
16782
16783 * fixinc/inclhack.sh: regen
16784 * fixinc/fixincl.x: regen
16785
16786 * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
16787 now use the fixincl program.
16788
16789 Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com)
16790
16791 * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
16792 case. Also make the PIC register call_used.
16793
16794 * m68k.h (FINALIZE_PIC): Delete.
16795 * m68k.c (finalize_pic): Delete.
16796
16797 Mon Jun 28 05:16:35 1999 Richard Henderson <rth@cygnus.com>
16798
16799 * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
16800 to memory.
16801
16802 Mon Jun 28 04:07:27 1999 David Edelsohn <edelsohn@gnu.org>
16803
16804 * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
16805
16806 Sun Jun 27 02:39:08 1999 Richard Henderson <rth@cygnus.com>
16807
16808 * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
16809
16810 Sat Jun 26 17:18:18 1999 David Edelsohn <edelsohn@gnu.org>
16811
16812 * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
16813
16814 Fri Jun 25 11:33:24 1999 Richard Henderson <rth@cygnus.com>
16815
16816 * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
16817
16818 Fri Jun 25 13:41:25 1999 David Edelsohn <edelsohn@gnu.org>
16819
16820 * rs6000.c (output_toc): Always use hex values for floating-point
16821 constants. Store single-precision values in upper-half of TOC
16822 entry in 64-bit mode.
16823 * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
16824 to final constraints.
16825 (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
16826 (fctiwz): Improve accuracy of RTL for pattern.
16827
16828 Fri Jun 25 11:26:38 1999 Gavin Romig-Koch <gavin@cygnus.com>
16829
16830 * expr.c (expand_expr): Allow RTL_EXPR's through the
16831 MAX_INTEGER_COMPUTATION_MODE checks.
16832
16833 Fri Jun 25 06:06:37 1999 Richard Henderson <rth@cygnus.com>
16834
16835 * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
16836 such that MASK_SUPPORT_ARCH is not negative.
16837
16838 Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com)
16839
16840 * loop.c (verify_dominator): Properly handle ADDR_VEC and
16841 ADDR_DIFF_VEC insns that appear inside loops.
16842
16843 Thu Jun 24 22:54:05 1999 David Edelsohn <edelsohn@gnu.org>
16844 Jeff Law <law@cygnus.com>
16845
16846 * rs6000.md (movdf_hardfloat32): Revert previous patch.
16847 Handle LO_SUM the same as offsettable in cases 1 and 2.
16848 * rs6000.c (find_addr_reg): Revert previous patch.
16849
16850 Thu Jun 24 22:43:12 1999 Philippe De Muyter <phdm@macqel.be>
16851
16852 * system.h (strstr): New external function declaration.
16853 * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
16854 * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
16855 * config.in, configure: Rebuilt.
16856
16857 1999-06-24 Tom Tromey <tromey@cygnus.com>
16858
16859 * gcc.c (main): Read user-specified specs files after computing
16860 additional startfile_prefixes.
16861
16862 Thu Jun 24 15:00:47 1999 Mark Mitchell <mark@codesourcery.com>
16863
16864 Revert these two patches:
16865
16866 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16867 * loop.c (strength_reduce): When doing biv->giv conversion, update
16868 reg note of NEXT->insn.
16869
16870 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16871 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
16872 reg_biv_class.
16873 (recombine_givs): Set ix field after sorting.
16874
16875 Wed Jun 23 21:26:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16876
16877 * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
16878 for the parts of an UNSPEC / UNSPEC_VOLATILE.
16879
16880 1999-06-23 Bruce Korb <ddsinc09@ix.netcom.com>
16881
16882 *fixinc/inclhack.def: Add fix development commentary
16883 (read_ret_type): reactivate and add selection clause
16884 (zzz_*): tweak output file name to match what is used in hackshell.tpl
16885 *fixinc/{fixincl.x|inclhack.sh}: regen
16886
16887 Wed Jun 23 00:48:21 1999 Jason Merrill <jason@yorick.cygnus.com>
16888
16889 * expr.c (expand_expr): STRIP_NOPS before checking against
16890 MAX_INTEGER_COMPUTATION_MODE
16891 (check_max_integer_computation_mode): Likewise.
16892
16893 Tue Jun 22 20:23:43 1999 Jim Wilson <wilson@cygnus.com>
16894
16895 * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
16896
16897 1999-06-22 Jim Wilson <wilson@cygnus.com>
16898
16899 * expr.c (store_expr): When target is a promoted subreg, return a
16900 promoted subreg as a result.
16901
16902 Tue Jun 22 17:14:58 1999 Michael Meissner <meissner@cygnus.com>
16903
16904 * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
16905 coding standards.
16906 (dwarf2out_define): Mark unused parameters appropriately.
16907 (gen_unspecified_parameters_die): Ditto.
16908 (gen_subprogram_die): Fix signed/unsigned warnings.
16909 (gen_variable_die): Ditto.
16910
16911 1999-06-22 Bruce Korb <ddsinc09@ix.netcom.com>
16912
16913 * fixinc/inclhack.def(end_else_label): combined else_label
16914 and endif_label and fixed the sed expression.
16915 *fixinc/{fixincl.x|inclhack.sh}: regen
16916
16917 Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com)
16918
16919 * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
16920 'x' when handling non-offsettable addresses
16921
16922 Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com)
16923
16924 * final.c (shorten_branches): Don't try to split an insn that has
16925 been deleted.
16926
16927 Mon Jun 21 12:47:39 1999 Mark Mitchell <mark@codesourcery.com>
16928
16929 * config/mips/mips.c (symbolic_expression_p): New function.
16930 (mips_select_rtx_section): Put symbolic expressions in the
16931 data section, not the read-only data section.
16932
16933 Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com)
16934
16935 * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
16936
16937 Mon Jun 21 20:10:42 1999 Richard Henderson <rth@cygnus.com>
16938
16939 * collect2.c (main): Log frame table count.
16940 (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
16941 (scan_prog_file) [COFF]: Handle frame tables.
16942
16943 * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
16944 (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
16945 * alpha/elf.h: Undef them again.
16946 * alpha/vms.h: Remove their definitions.
16947
16948 Tue Jun 22 03:17:53 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
16949
16950 * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
16951 remove the clobber of r0 and change the REG_UNUSED note to
16952 REG_INC.
16953
16954 1999-06-21 Jakub Jelinek <jj@ultra.linux.cz>
16955
16956 * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
16957 * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
16958 fits in HOST_WIDE_INT and one uses union to access a long constant
16959 as double.
16960
16961 Mon Jun 21 17:18:25 1999 Richard Henderson <rth@cygnus.com>
16962
16963 * sparc.c (sparc_override_options): Don't allow profiling for
16964 code models other than medlow.
16965 (sparc_function_profiler): New function from old FUNCTION_PROFILER
16966 macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
16967 (sparc_function_block_profiler): Likewise. Use user_label_prefix.
16968 (sparc_block_profiler): Likewise.
16969 (sparc_function_block_profiler_exit): Likewise.
16970 * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
16971 (FUNCTION_BLOCK_PROFILER): Likewise.
16972 (BLOCK_PROFILER): Likewise.
16973 (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
16974 (MCOUNT_FUNCTION): New.
16975 * sparc/pbd.h (FUNCTION_PROFILER): Delete.
16976 (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
16977 * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
16978 (MCOUNT_FUNCTION): New.
16979 * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
16980 (BLOCK_PROFILER): Delete.
16981 (MCOUNT_FUNCTION): New.
16982
16983 Mon Jun 21 14:11:29 1999 David Edelsohn <edelsohn@gnu.org>
16984
16985 * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
16986
16987 Mon Jun 21 12:27:17 1999 Vladimir Makarov <vmakarov@tofu.to.cygnus.com>
16988
16989 * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16990 Add the macros.
16991
16992 * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16993 Ditto.
16994
16995 * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16996 Ditto.
16997
16998 * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
16999 Ditto.
17000
17001 Mon Jun 21 14:58:42 1999 Nick Clifton <nickc@cygnus.com>
17002
17003 * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
17004 types.
17005
17006 Mon Jun 21 06:22:21 1999 Mark Elbrecht <snowball3@bigfoot.com>
17007
17008 * i386/djgpp.h (LIB_SPEC): New.
17009 (STARTFILE_SPEC): New.
17010
17011 * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
17012
17013 Mon Jun 21 06:19:33 1999 Philippe De Muyter <phdm@macqel.be>
17014
17015 * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
17016 compiler flags.
17017
17018 * system.h (WSTOPSIG): New macro.
17019
17020 Mon Jun 21 05:33:15 1999 Mumit Khan <khan@xraylith.wisc.edu>
17021
17022 * c-pragma.c (push_alignment): Don't ignore alignments greater than
17023 4 bytes.
17024 (insert_pack_attributes): Take into account member natural
17025 alignment.
17026
17027 * i386/winnt.c (exports_head): New static variable.
17028 (i386_pe_record_exported_symbol): New function.
17029 (i386_pe_asm_file_end): Use.
17030 * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
17031 symbols to be emitted at end of assembly.
17032 (ASM_DECLARE_OBJECT_NAME): Likewise.
17033 (ASM_DECLARE_FUNCTION_NAME): Likewise.
17034
17035 * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
17036 -iwithprefix.
17037
17038 Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com)
17039
17040 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
17041 in last change.
17042
17043 Sun Jun 20 17:27:20 1999 Richard Henderson <rth@cygnus.com>
17044
17045 * haifa-sched.c (sched_analyze_1): Use free_list instead of
17046 zapping reg_last_uses directly.
17047 (sched_analyze_2, sched_analyze_insn): Likewise.
17048 (sched_analyze): Likewise. Don't clear reg_last_uses on calls.
17049
17050 Sun Jun 20 16:57:29 1999 David Edelsohn <edelsohn@gnu.org>
17051
17052 * rs6000.md (movdf_hardfloat32): Use worst case insn length
17053 attributes for cases 1 and 2.
17054
17055 Sat Jun 19 22:52:55 1999 Richard Henderson <rth@cygnus.com>
17056
17057 * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
17058 instead of set.
17059
17060 Sat Jun 19 05:40:07 1999 Philip Blundell <pb@nexus.co.uk>
17061
17062 * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
17063
17064 Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com)
17065
17066 * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
17067 PIC_OFFSET_TABLE_REGNUM for general alloaction.
17068 (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
17069 must be stacked if it is used for PIC accesses.
17070 * arm.c (use_return_insn): Handle PIC register specially.
17071 (output_return_instruction): Likewise.
17072 (output_func_{prologue,epilogue}): Likewise.
17073 (output_expand_prologue): Likewise.
17074
17075 * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
17076 (*strsi_predec): Renamed from *strqi_predec.
17077 (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
17078 (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
17079
17080 * arm.c (arm_override_options): Remove warning about PIC code
17081 not being supported.
17082
17083 Fri Jun 18 23:47:06 1999 David Edelsohn <edelsohn@gnu.org>
17084
17085 * rs6000.c (find_addr_reg): New function.
17086 * rs6000.h (find_addr_reg): Declare.
17087 (offsettable_addr_operand): Delete.
17088 * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
17089 from and stores to GPRs.
17090
17091 Fri Jun 18 15:44:18 1999 Richard Henderson <rth@cygnus.com>
17092
17093 * alpha.c (alpha_expand_block_move): Use get_insns rather than
17094 gen_sequence as argument to emit_no_conflict_block.
17095
17096 Fri Jun 18 07:02 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17097
17098 * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
17099 * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
17100 *fixinc/fixincl.x: regen
17101 *fixinc/inclhack.sh: regen
17102
17103 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay <dlindsay@cygnus.com>
17104
17105 * added support for -mpcrel (PC relative addressing for m68k)
17106 based on code done by Michael Tiemann <tiemann@axon.cygnus.com>.
17107 * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
17108 * m68k.c (print_operand_address): Handle 32-bit PIC case.
17109 (comments for general_src_operand): Add some explanation
17110 about EXTRA_CONSTRAINTS.
17111 (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
17112 * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
17113 (LEGITIMATE_PIC_OPERAND_P): Fix typo.
17114 (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
17115 * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
17116 (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
17117 (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
17118 if not already set.
17119 (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
17120 * m68k.h (TARGET_PCREL): New target flag.
17121 (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
17122 (OVERRIDE_OPTIONS): Add checks for -mpcrel.
17123 (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
17124 contains a SYMBOL_REF. Relax this constraint during reload, since
17125 we want to use the predicates, not reload's built-in concept of a
17126 valid memory address, to control what insns need reloading.
17127 (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
17128 operands (essentially 'g', 'm', and 's' under normal circumstances).
17129 * m68k.c (print_operand): Cause printing of pc-relative addresses
17130 to include pc register.
17131 (print_operand_address): Ditto.
17132 (general_src_operand): Accept operands that are not only
17133 general_operands, but are also valid when used as a pc-relative
17134 source.
17135 (nonimmediate_src_operand): Similar, for nonimmediate_operands.
17136 (memory_src_operand): Similar, for memory_operands.
17137 (pcrel_address): New predicate to accept the special case of a
17138 pc-relative address.
17139 * m68k.md (many patterns): Rewrite common SImode, HImode, and
17140 QImode insns to accept *_src_operand instead of *_operand where
17141 pc-relative operands can fit. For example, a pc-relative operand
17142 can be used as a memory source operand for addsi3, but not as a
17143 memory destination.
17144 * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
17145
17146 Fri Jun 18 09:11:07 1999 Nick Clifton <nickc@cygnus.com>
17147
17148 * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
17149 .thumb_set pseudo op to mark aliases of thumb functions.
17150
17151 Wed Jun 16 18:19:13 1999 Nick Clifton <nickc@cygnus.com>
17152
17153 * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
17154 preference to ASM_OUTPUT_DEF, if it is defined.
17155
17156 * tm.texi: Document new, optional target macro
17157 ASM_OUTPUT_DEF_FROM_DECLS.
17158
17159 Thu Jun 17 15:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17160
17161 * fixincludes: ISCNTL patch
17162 * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
17163 (dgux_int_varargs): new for DG/UX
17164 * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
17165
17166 Thu Jun 17 21:34:24 1999 Jeff Law <law@cygnus.com>
17167
17168 * invoke.texi (ia32 options): Fix typo.
17169
17170 Thu Jun 17 21:34:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17171
17172 * loop.c (strength_reduce): When doing biv->giv conversion, update
17173 reg note of NEXT->insn.
17174
17175 Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com)
17176
17177 * loop.c (move_movables): Note issues with replacing REGs with
17178 SUBREGs.
17179 * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
17180
17181 Thu Jun 17 13:28:30 1999 David O'Brien <obrien@FreeBSD.org>
17182
17183 * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
17184
17185 * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
17186 the reference to `mcount' was not correct for the ELF on FreeBSD.
17187
17188 Thu Jun 17 17:22:07 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17189
17190 * loop.c (strength_reduce): When doing biv->giv conversion, fix up
17191 reg_biv_class.
17192
17193 (recombine_givs): Set ix field after sorting.
17194
17195 Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com)
17196
17197 * emit-rtl.c (operand_subword): Tighten checks for when it is safe
17198 to safe to extract a subword out of a REG.
17199
17200 Thu Jun 17 01:45:24 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17201
17202 * sh.md (mulsi3): Don't add a no-op move at the end.
17203
17204 Wed Jun 16 20:29:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17205
17206 * cse.c (cse_insn): Don't put hard register source into tables for
17207 the last insn of a libcall.
17208
17209 Wed Jun 16 19:44:33 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17210
17211 * loop.c (strength_reduce): Insert sets of derived givs at every
17212 biv increment, even if it's the only one.
17213
17214 Wed Jun 16 10:33:02 1999 Jason Merrill <jason@yorick.cygnus.com>
17215
17216 * dwarfout.c (add_incomplete_type): New fn.
17217 (output_type): Call it.
17218 (retry_incomplete_types): New fn.
17219 (dwarfout_finish): Call it.
17220
17221 From Eric Raskin <ehr@listworks.com>:
17222 (output_type): Output types for bases.
17223
17224 Tue Jun 15 12:51:23 1999 Alexandre Oliva <oliva@dcc.unicamp.br>
17225
17226 * mips.c (mips_output_conditional_branch): Add `break'
17227 between `default' label and `close braces'.
17228
17229 Tue Jun 15 01:55:20 1999 David O'Brien <obrien@FreeBSD.org>
17230
17231 * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
17232 specifications and make it realistic.
17233 (LIB_SPEC): Likewise.
17234
17235 Mon Jun 14 15:38:43 1999 Jim Wilson <wilson@cygnus.com>
17236
17237 * config/mips/mips.c (mips_secondary_reload_class): Check for
17238 (PLUS (SP) (REG)) and return appropriate register class.
17239 * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
17240 Handle (PLUS (SP) (REG)).
17241 (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
17242 (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
17243 of emit_insn for tablejump.
17244
17245 Mon Jun 14 17:26:40 1999 David Edelsohn <edelsohn@gnu.org>
17246
17247 * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
17248 asm_fprintf format string by itself.
17249 (output_function_profiler): Likewise.
17250
17251 Mon Jun 14 12:57:38 1999 David Mosberger <davidm@hpl.hp.com>
17252
17253 * combine.c (simplify_logical, case AND): Only call
17254 simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
17255 or the constant is positive.
17256
17257 Mon Jun 14 11:43:41 1999 Nick Clifton <nickc@cygnus.com>
17258
17259 * configure.in: Fix typo in rs6000-ibm-aix4 case.
17260 * configure: Regenerate.
17261
17262 Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com)
17263
17264 * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
17265 require a sub-version #.
17266 * configure: Rebuilt.
17267
17268 1999-06-14 Robert Lipe (robertlipe@usa.net)
17269
17270 * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
17271
17272 Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell <nathan@acm.org>
17273
17274 * c-typeck.c (process_init_element): Detect excess elements in
17275 char array initializer.
17276
17277 1999-06-14 Andreas Jaeger <aj@arthur.rhein-neckar.de>
17278
17279 * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
17280
17281 Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn <jquinn@nortelnetworks.com>
17282
17283 * invoke.texi (Option Summary): Add -fpermissive flag.
17284
17285 Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com)
17286
17287 * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
17288 that require PIC code sequences.
17289
17290 Wed Jun 9 16:29:01 1999 Nick Clifton <nickc@cygnus.com>
17291
17292 * configure.in: Add new target: thumb-elf.
17293 * configure: Regenerate.
17294 * config/arm/t-thumb-elf: New file: Makefile fragment for
17295 thumb-elf build.
17296 * config/arm/telf.h: New file: Header file for thumb-elf
17297 build.
17298
17299 Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com)
17300
17301 * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
17302 * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
17303 initializers is some circumstances.
17304
17305 * fixinc/inclhack.def (endif_label): Add additional selector for
17306 more bogus stuff after #endif statements.
17307 * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
17308
17309 Thu Jun 10 20:44:36 1999 Mumit Khan <khan@xraylith.wisc.edu>
17310
17311 * i386/cygwin.h (SET_ASM_OP): Define.
17312
17313 Thu Jun 10 20:37:57 1999 Mumit Khan <khan@xraylith.wisc.edu>
17314
17315 * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
17316
17317 Thu Jun 10 19:23:00 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17318
17319 * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
17320 latter.
17321
17322 * sh.md (ic_invalidate_line_i): Remove second alternative.
17323
17324 Thu Jun 10 06:55 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17325
17326 *fixinc/inclhack.def(sun_auth_proto): We do not know how to
17327 test for the presence of valid prototypes. Delete bypass expr.
17328 (ioctl_fix_ctrl): Correct the selection expression.
17329 (no_double_slash): Correct quoting rules
17330 *fixinc/fixincl.x: regen
17331 *fixinc/inclhack.sh: regen
17332
17333 Thu Jun 10 15:08:15 1999 Nick Clifton <nickc@cygnus.com>
17334
17335 * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
17336
17337 Wed Jun 9 15:57:57 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17338
17339 * rs6000.md (movsi_got_internal_mem): Delete.
17340 * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
17341 (GOT_TOC_REGNUM): Delete.
17342 (PIC_OFFSET_TABLE_REGNUM): Define.
17343 (FINALIZE_PIC): Disable.
17344 * rs6000.c (rs6000_got_register): New code for fixed pic register.
17345 (rs6000_replace_regno): Delete.
17346 (rs6000_finalize_pic): Likewise.
17347 (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
17348
17349 Wed Jun 9 19:44:26 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17350
17351 * loop.c (loop_insn_first_p): Don't compare LUIDs when P
17352 is a note; use <= for the compare; advance P while it is
17353 a NOTE.
17354
17355 Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com)
17356
17357 * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
17358 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
17359
17360 * varasm.c (remove_from_pending_weak_list): Verify t->name
17361 is non-NULL before passing it to strcmp.
17362
17363 Wed Jun 9 06:50 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17364
17365 *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
17366 the typed arguments are not part of a comment
17367 (ioctl_fix_ctrl): Added a purpose comment
17368 *fixinc/fixincl.x: regenerate
17369 *fixinc/inclhack.sh: regenerate
17370
17371 Wed Jun 9 22:57:02 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17372
17373 * invoke.texi: Add C4x invocation docs.
17374
17375 Wed Jun 9 22:34:38 1999 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
17376
17377 * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
17378 Define new macros.
17379 * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
17380 TARGET_EXPOSE_LDP.
17381 (c4x_legitimize_reload_address): New function.
17382 * config/c4x/c4x.md: Update docs.
17383
17384 Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com)
17385
17386 * fixincludes: Avoid removing '.'.
17387 * fixinc/fixinc.svr4: Likewise.
17388 * fixinc/fixinc.winnt: Likewise.
17389 * fixinc/inclhack.tpl: Likewise.
17390 * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
17391
17392 1999-06-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17393
17394 * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
17395 pattern.
17396 * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
17397
17398 Wed Jun 9 03:10:34 1999 Mumit Khan <khan@xraylith.wisc.edu>
17399
17400 * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
17401 correctly.
17402
17403 Tue Jun 8 13:06:15 1999 Jim Wilson <wilson@cygnus.com>
17404
17405 * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
17406 * configure: Regenerate.
17407
17408 Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com)
17409
17410 * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
17411 values.
17412
17413 Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com)
17414
17415 * fixinc/inclhack.def (avoid_bool): Also catch
17416 "typedef [unsigned] int bool".
17417 * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
17418
17419 * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
17420 * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
17421 * configure: Rebuilt.
17422
17423 Mon Jun 7 22:05:03 1999 Mark Kettenis <kettenis@gnu.org>
17424
17425 * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
17426 such that we can override its definitions if necessary.
17427 (CPP_SPEC): New define. Support processor specific predefines via
17428 %(cpp_cpu).
17429 (CC1_SPEC): New define. Support processor specific compiler
17430 options via %(cc1_cpu).
17431 (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for
17432 -static.
17433
17434 1999-06-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17435
17436 * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
17437 between sed's -e flag, and the open-quote following it.
17438 * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
17439
17440 Mon Jun 7 20:34:20 1999 Robert Lipe <robertlipe@usa.net>
17441 Jeffrey A Law (law@cygnus.com)
17442
17443 * varasm.c (assemble_start_function): Remove the function
17444 from the pending weak decls list when we define a function.
17445 (assemble_variable): Similarly for variables.
17446 (weak_finish): Ignore items on the list with a NULL name.
17447 (remove_from_ending_weak_list); New function to "remove" an item
17448 from the pending weak declarations list.
17449
17450 Mon Jun 7 19:27:07 1999 Jerry Quinn <jquinn@nortelnetworks.com>
17451
17452 * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
17453
17454 Mon Jun 7 14:07:39 1999 Dave Brolley <brolley@cygnus.com>
17455
17456 * c-lex.c (GETC): Redefine to call getch.
17457 (UNGETC): Redefine to call put_back.
17458 (putback_buffer): New structure type.
17459 (putback): New static structure.
17460 (getch): New function.
17461 (put_back): New function.
17462 (yylex): Replace unused bytes from bad multibyte character.
17463
17464 Mon Jun 7 13:33:39 1999 Dave Brolley <brolley@cygnus.com>
17465
17466 * cpplib.c (do_define): Cast `alloca' return value.
17467 (do_include, do_undef, do_pragma): Likewise.
17468 * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
17469 values.
17470 * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
17471 * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
17472
17473 Sun Jun 6 11:58:34 1999 Jakub Jelinek <jj@ultra.linux.cz>
17474
17475 * sparc.md (abstf2): This should be an expand.
17476 (split after abstf2_notv9): Fix mode.
17477 (abstf2_hq_v9): New pattern.
17478 (abstf2_v9): Only use when no hard quad.
17479 (absdf2_v9): Fix if target is not the same as source.
17480 (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
17481 Add correct output constraints.
17482
17483 Sat Jun 5 17:04:16 1999 Craig Burley <craig@jcb-sc.com>
17484
17485 From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
17486 * invoke.texi: Clarify text vis-a-vis Intel CPUs.
17487
17488 Sat Jun 5 12:11:24 1999 Mark Mitchell <mark@codesourcery.com>
17489
17490 * mips.h (mips_output_conditional_branch): New function.
17491 (mips_adjust_insn_length): Likewise.
17492 (ASSEMBLER_SCRATCH_REGNUM): New macro.
17493 (ADJUST_INSN_LENGTH): Likewise.
17494 * mips.c (print_operand): Add `F' and `W' for floating-point
17495 comparison opcodes.
17496 (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
17497 are now in bytes.
17498 (mips_adjust_insn_length): New function.
17499 (mips_output_conditional_branch): New function.
17500 * mips.md (length): Adjust attribute definition to handle
17501 conditional branches. Change lengths to bytes, rather than
17502 instructions throughout. Remove length attribute from
17503 instructions whose length is four bytes, and rely on the default
17504 instead.
17505 (dslot): Fix typo in comment.
17506 Reword conditional branch patterns to use
17507 mips_output_conditional_branch.
17508
17509 Fri Jun 4 13:30:27 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
17510
17511 * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
17512 (LIB_SPEC): Likewise.
17513 Link with -lprof1_r for -g/-pg.
17514
17515 1999-06-04 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
17516
17517 * loop.c (check_dbra_loop): Fix change of Jan 19.
17518
17519 Fri Jun 4 00:12:40 1999 Marc Espie <espie@cvs.openbsd.org>
17520
17521 * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define.
17522 (STARTFILE_SPEC): Define, override the svr4.h version.
17523 (ENDFILE_SPEC): Likewise.
17524
17525 Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com)
17526
17527 * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
17528 * fixinc/fixincl.x: Regenerated.
17529 * fixinc/inclhack.sh: Regenerated.
17530
17531 Fri Jun 4 05:42:23 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17532
17533 * sh.c (barrier_align): Don't return early for normal branch/barrier
17534 when optimizing for SH2.
17535
17536 Thu Jun 3 22:27:50 1999 Robert Lipe <robertlipe@usa.net>
17537
17538 * i386/udk.h (LINK_SPEC): Correct linker search path for
17539 system libraries.
17540
17541 Fri Jun 4 03:20:40 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17542
17543 * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
17544 (braf_label_ref_operand): Delete.
17545 * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
17546 * sh.md (casesi_jump_2): Operand1 is now the inside of a
17547 label_ref, and has no predicate.
17548 The patten has a predicate to guard against invalid substitutions.
17549 (dummy_jump): Delete.
17550 (casesi): Update use of casesi_jump_2.
17551
17552 Thu Jun 3 07:48 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17553
17554 *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
17555 *fixinc/fixincl.x: regenerate
17556 *fixinc/inclhack.sh: regenerate
17557
17558 Thu Jun 3 02:15:07 1999 Jason Merrill <jason@yorick.cygnus.com>
17559
17560 * dwarf2out.c (add_incomplete_type): New fn.
17561 (gen_struct_or_union_type_die): Call it.
17562 (retry_incomplete_types): New fn.
17563 (dwarf2out_finish): Call it.
17564
17565 Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com)
17566
17567 * gcse.c (insert_insn_end_bb): Correct placement of insns when the
17568 current block starts with a CODE_LABEL and ends with a CALL and
17569 we can not find all the argument setup instructions for the CALL.
17570
17571 Wed Jun 2 15:44:15 1999 Mark Mitchell <mark@codesourcery.com>
17572
17573 Revert this change:
17574 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
17575 something is a candidate for optimize_bit_field_compare.
17576
17577 Wed Jun 2 21:53:05 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17578
17579 * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
17580
17581 Wed Jun 2 12:25:55 1999 Richard Henderson <rth@cygnus.com>
17582
17583 * alpha.c (override_options): Thinko in last patch.
17584
17585 * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
17586 (LIB_SPEC): Recognize -pthread.
17587
17588 Wed Jun 2 08:42:55 1999 Nick Clifton <nickc@cygnus.com>
17589
17590 * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
17591 definition in config/arm/coff.h
17592 * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
17593
17594 Wed Jun 2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17595
17596 * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
17597 fixes that need "file=xxx\n" prepended before invocation
17598 (start_fixer - new): starting the fixer process is complex enough
17599 to warrent its own routine. It prepends the "file=xxx\n" stuff.
17600 (process): uses the new routine; omit usage of putenv()
17601 * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
17602 * fixinc/fixincl.x: regenerate
17603
17604 Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com)
17605
17606 * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
17607 and version #s (1.1 -> 2.96) as needed.
17608 * README.g77: Kill way out of date file in the toplevel directory.
17609
17610 Wed Jun 2 00:52:34 1999 David O'Brien <obrien@FreeBSD.org>
17611
17612 * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
17613 i386/freebsd-elf.h no longer requires it. Instead include svr4.h.
17614 * configure: Rebuilt.
17615 * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
17616 (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
17617 (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
17618 (SWITCH_TAKES_ARG): Likewise.
17619 * i386/freebsd.h: Remove FREEBSD_NATIVE support.
17620 * config/t-freebsd: Moved from config/i386/ so it can used for all
17621 FreeBSD targets.
17622
17623 Mon May 31 02:22:55 1999 Philippe De Muyter <phdm@macqel.be>
17624
17625 * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
17626
17627 Wed Jun 2 00:08:34 1999 Robert Lipe <robertlipe@usa.net>
17628
17629 * configure.in (i[34567]86-*-udk*): Install headers with cpio.
17630 * configure: Rebuilt.
17631
17632 Tue Jun 1 19:06:22 1999 David Edelsohn <edelsohn@gnu.org>
17633
17634 * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
17635 * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
17636 * rs6000/rs6000.c (rs6000_file_start): Use putc.
17637 (rs6000_output_load_toc_table): Same.
17638 (output_prolog, output_mi_thunk): Same.
17639 * rs6000/rs6000.h (SELECT_SECTION): Formatting.
17640 (ASM_GLOBALIZE_LABEL): Use putc.
17641
17642 Mon May 31 15:23:23 1999 Richard Henderson <rth@cygnus.com>
17643
17644 * alpha.md (reload_*_help): New patterns and splitters.
17645 (reload_*): Use them.
17646 (mov[qh]i): Likewise.
17647
17648 Mon May 31 11:48:07 1999 Mark Mitchell <mark@codesourcery.com>
17649
17650 * cccp.c (handle_directive): Handle backslash-newlines in quoted
17651 strings correctly.
17652
17653 Mon May 31 09:36:11 1999 Cort Dougan <cort@cs.nmt.edu>
17654
17655 * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
17656
17657 Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com)
17658
17659 * flow.c (mark_regs_live_at_end, insn_dead_p,
17660 mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
17661 and HARD_FRAME_POINTER_REGNUM special treatment if reload
17662 hasn't run or the frame pointer is needed.
17663 * haifa-sched.c (attach_deaths): Likewise.
17664 * sched.c (attach_deaths): Likewise.
17665
17666 Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com)
17667
17668 * jump.c (jump_optimize_1): Only set CAN_REACH_END if
17669 calculate_can_reach_end returns nonzero.
17670
17671 * configure.in (native gas tests): Search for an assembler in the
17672 same manner that the installed compiler will.
17673 * configure: Rebuilt.
17674 * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
17675
17676 * alias.c (find_base_term): Improve handling of addresses
17677 constructed from binary operations.
17678
17679 Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com)
17680
17681 * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
17682
17683 Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com)
17684
17685 * function.h (cleanup_label, frame_offset): Declare.
17686 (tail_recursion_label, tail_recursion_reentry): Likewise.
17687 (arg_pointer_save_area, rtl_expr_chain): Likewise.
17688 * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
17689 (tail_recursion_label, tail_recursion_reentry): Likewise.
17690 (arg_pointer_save_area, rtl_expr_chain): Likewise.
17691
17692 Sat May 29 19:08:10 1999 Philip Blundell <philb@gnu.org>
17693
17694 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
17695 defined.
17696 * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
17697 (MAX_OFILE_ALIGNMENT): Define.
17698
17699 Fri May 28 21:40 1999 Robert Lipe <robertlipe@usa.net>
17700
17701 * fixincl.c: Replace local include scheme with #includes of
17702 gansidecl.h and system.h.
17703 * procopen.c: Likewise.
17704 * server.c: Likewise.
17705
17706 Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com)
17707
17708 * i386/t-dgux (EXTRA_PARTS): Add crti.o
17709 (crti.o): Add build rule and dependencies.
17710 * fixinc/fixinc.dgux: Use modified _int_varargs.h
17711
17712 Fri May 28 03:41:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17713
17714 * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
17715 (LIB_LINUX_SPEC): Likewise.
17716 (LIB_LINUX_SPEC): Add support for -pthread
17717 (CPP_OS_LINUX_SPEC): Likewise.
17718 (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
17719 specified.
17720
17721 Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org)
17722
17723 * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
17724 conditional move.
17725 (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
17726 (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
17727 for IEEE math and CC_FCOMI.
17728 (put_jump_code): No IEEE if CC_FCOMI is set.
17729
17730 1999-05-27 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
17731
17732 * fold-const.c (fold_truthop): Make the field reference unsigned
17733 when converting a single bit compare.
17734
17735 Thu May 27 02:40:48 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17736
17737 * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
17738
17739 Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com)
17740
17741 * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
17742 * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
17743 version did.
17744
17745 * reload.c (push_reload): Do not call remove_address_replacements
17746 when presented with identical optional reloads.
17747
17748 Wed May 26 14:18:05 1999 Richard Henderson <rth@cygnus.com>
17749
17750 * alpha.h (MASK_FIX, TARGET_FIX): New.
17751 (MASK_*): Reorganize constants.
17752 (CPP_AM_FIX_SPEC): New.
17753 (TARGET_SWITCHES): Add FIX.
17754 (EXTRA_SPECS): Likewise.
17755 (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
17756 (SECONDARY_MEMORY_NEEDED): Likewise.
17757 (REGISTER_MOVE_COST): Likewise.
17758 * alpha.c (override_options): Add FIX support. Always use
17759 ALPHA_TP_PROG for ev6.
17760 * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
17761 * alpha/elf.h (ASM_FILE_START): Look at FIX too.
17762 * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
17763
17764 Wed May 26 09:53:05 1999 Mark Mitchell <mark@codesourcery.com>
17765
17766 * fold-const.c (fold): STRIP_NOPS when deciding whether or not
17767 something is a candidate for optimize_bit_field_compare.
17768
17769 Wed May 26 09:40:02 1999 Mark Mitchell <mark@codesourcery.com>
17770
17771 * gcc.texi (Passes): Document branch-shortening.
17772 * invoke.texi (Debugging Options): Document the fact that `-dp'
17773 outputs length information for instructions.
17774
17775 Wed May 26 08:49:31 1999 Nick Clifton <nickc@cygnus.com>
17776
17777 * flow.c: Revert previous delta.
17778
17779 Wed May 26 06:05:10 1999 Nick Clifton <nickc@cygnus.com>
17780
17781 * flow.c (insn_dead_p): Check against frame_pointer_rtx not
17782 FRAME_POINTER_REGNUM.
17783 (mark_set_1): Ditto.
17784 (mark_used_regs): Ditto.
17785
17786 Wed May 26 02:19:31 1999 Philip Blundell <pb@nexus.co.uk>
17787
17788 * arm.h (NEED_PLT_GOT): Fix mistake in last change.
17789 (GOT_PCREL): New macro. Define to 1 if not already defined.
17790 * arm/elf.h (GOT_PCREL): Define to 0.
17791 * arm.c (arm_finalize_pic): Take into account the setting of
17792 GOT_PCREL.
17793
17794 Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com)
17795
17796 * output.h (STRIP_NAME_ENCODING): Provide default definition.
17797 * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
17798
17799 * flow.c (mark_set_1): Do not record BLKmode stores as dead
17800 store elimination candidates.
17801
17802 Tue May 25 08:55:57 1999 Gavin Romig-Koch <gavin@cygnus.com>
17803
17804 * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
17805 TARGET_GAS.
17806
17807 Mon May 24 20:30:08 1999 Jim Wilson <wilson@cygnus.com>
17808
17809 * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
17810 Add use of x-aix41-gld.
17811
17812 Mon May 24 16:44:09 1999 Jakub Jelinek <jj@ultra.linux.cz>
17813
17814 * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
17815 (ASM_OUTPUT_DESTRUCTOR): Define.
17816
17817 Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com)
17818
17819 * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
17820 last CODE_LABEL in a loop if we have previously passed a jump
17821 to the top of the loop.
17822
17823 Mon May 24 07:56:29 1999 Nick Clifton <nickc@cygnus.com>
17824
17825 * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
17826 applying Philip's patch.
17827
17828 Mon May 24 01:02:12 1999 Mark Mitchell <mark@codesourcery.com>
17829
17830 * stmt.c (expand_end_bindings): Ignore any elements of VARS that
17831 are not VAR_DECLs.
17832
17833 Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com)
17834
17835 * loop.c (strength_reduce): Grow reg_single_usage as needed.
17836
17837 Sun May 23 10:13:20 1999 David O'Brien <obrien@FreeBSD.org>
17838
17839 * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
17840 Also remove a useless comment.
17841
17842 Sun May 23 10:05:23 1999 Jerry Quinn <jquinn@nortelnetworks.com>
17843
17844 * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0.
17845
17846 Sat May 22 21:02:06 1999 David Edelsohn <edelsohn@gnu.org>
17847
17848 * collect2.c (main): Only generate import or export file and add
17849 to link arguments if non-empty. Use xmalloc not alloca.
17850 (write_{export,import}_file): Delete.
17851 (write_aix_file): New function.
17852 (locatelib): Use xmalloc not malloc.
17853 (GCC_OK_SYMBOL): Do not check type if aix64.
17854
17855 Sat May 22 09:35:51 1999 Philip Blundell <pb@nexus.co.uk>
17856
17857 Based on patch by Scott Bambrough and Pat Beirne:
17858 * config/arm/arm.c (making_const_table): New variable.
17859 * config/arm/arm.h (making_const_table): Declare.
17860 (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
17861 appropriate.
17862 * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
17863 Keep track of when we are building the constant table.
17864
17865 Sat May 22 09:34:22 1999 Philip Blundell <pb@nexus.co.uk>
17866
17867 * config/arm/arm.c (arm_override_options): Fix erroneous warning
17868 message.
17869
17870 Sat May 22 09:06:33 1999 Nick Clifton <nickc@cygnus.com>
17871
17872 * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
17873 defined.
17874
17875 Sat May 22 07:17:05 1999 Nick Clifton <nickc@cygnus.com>
17876
17877 * tm.texi (FUNCTION_ARG): Correct description of a stack element
17878 in a PARALLEL.
17879
17880 Sat May 22 01:27:49 1999 Mark Mitchell <mark@codesourcery.com>
17881
17882 * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
17883
17884 Fri May 21 21:19:02 1999 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
17885
17886 * rs6000.c (output_mi_thunk): Enable full support again.
17887
17888 Fri May 21 20:09:52 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
17889
17890 * sh.h (BRANCH_COST): Define.
17891
17892 Thu May 20 10:00:42 1999 Stephen L Moshier <moshier@world.std.com>
17893
17894 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
17895
17896 Thu May 20 09:58:57 1999 Jan Hubicka <hubicka@freesoft.cz>
17897
17898 * function.c (assign_stack_local): Align stack slot propertly.
17899 (assign_outer_stack_local): Likewise.
17900
17901 Thu May 20 10:38:43 1999 Mark Mitchell <mark@codesourcery.com>
17902
17903 * expr.h (lang_expand_constant): Declare.
17904 * toplev.c (lang_expand_constant): Define it.
17905 * varasm.c (output_constant): Use it.
17906
17907 Thu May 20 11:28:53 1999 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17908
17909 * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
17910 Change function definitions to K&R style.
17911
17912 Thu May 20 08:16:39 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17913
17914 * fixinc/fixincl.c: We must not ignore SIGCLD now.
17915
17916 Thu May 20 07:06:39 1999 Alexandre Oliva <aoliva@acm.org>
17917
17918 * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
17919 * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
17920 (several places): omit static initialization
17921 (process): use single fd, since only the read fd is used
17922 * fixinc/gnu-regex.c: define 'const' away, if not supported
17923 * fixinc/procopen.c(several places): omit static initialization
17924 * fixinc/server.c: define 'volitile' away, if not supported
17925
17926 1999-05-20 Andreas Schwab <schwab@issan.cs.uni-dortmund.de>
17927
17928 * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
17929 asm_fprintf and %L to generate the label name.
17930 * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
17931 (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
17932
17933 Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com)
17934
17935 * jump.c (can_reverse_comparison_p): Do not abort if the comparison
17936 insn for a conditional jump can not be found.
17937
17938 Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com)
17939
17940 * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
17941 on variables in specific sections other than .sbss and .sdata.
17942
17943 Wed May 19 03:56:56 1999 Mark Mitchell <mark@codesourcery.com>
17944
17945 * stmt.c (expand_return): Call start_cleanup_deferral and
17946 end_cleanup_deferral around conditional code.
17947
17948 Wed May 19 08:40:08 1999 Bruce Korb <ddsinc09@ix.netcom.com>
17949
17950 * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
17951 filename lists. Utilizes new "krstr" AutoGen function.
17952 * fixinc/fixincl.x: Rebuilt.
17953
17954 Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz)
17955
17956 * i386.c (output_float_compare): Avoid GNU-C extensions.
17957
17958 Wed May 19 00:34:40 1999 Jeffrey A Law (law@cygnus.com)
17959
17960 * version.c: Bump to distinguish mainline tree from the
17961 gcc-2.95 branch.
17962
17963 See ChangeLog.1 for earlier changes.