OSDN Git Service

* ggc.h (ggc_push_context): Fix comment.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
2
3         * ggc.h (ggc_push_context): Fix comment.
4         (ggc_pop_context): Likewise.
5         (mark_string_if_gcable): Likewise.
6         * ggc-common.c (ggc_mark_rtx_children): Use
7         ggc_mark_string_if_gcable.
8         * ggc-page.c (ggc_lookup_page_table): New function.
9         (ggc_allocated_p): Likewise.
10         (mark_obj): Fix formatting.
11         (ggc_mark_string_if_gcable): New function.
12         * ggc-simple.c (ggc_allocated_strings): New variable.
13         (ggc_strings_used): Likewise.
14         (ggc_compare_addresses): New function.
15         (ggc_pop_context): Pop the `any' memory too.
16         (ggc_mark_string_if_gcable): New function.
17         (ggc_collect): Initialize and tear down ggc_allocated_strings.
18         
19 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
20
21         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
22         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
23         * rs6000.c (expand_block_move): Match movstrsi_?reg register
24         changes.
25
26 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
27
28         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
29         (sched_reg_live_length, sched_reg_basic_block): Delete.
30         (current_block_num, bb_live_regs, old_live_regs): Delete.
31         (dead_notes, struct sometimes): Delete.
32         (sched_note_set, birthing_insn_p): Delete.
33         (adjust_priority): Gut useless reg lifetime code.
34         (create_reg_dead_note, attach_deaths): Delete.
35         (attach_deaths_insn, new_sometimes_live): Delete.
36         (finish_sometimes_live): Delete.
37         (find_pre_sched_live, find_post_sched_live): Delete.
38         (update_reg_usage): Delete.
39         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
40         (schedule_insns): Delete reg lifetime code.
41         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
42         (unlink_other_notes): Adjust REG_NOTE commentary.
43         (reemit_notes): Use REG_SAVE_NOTE.
44         (schedule_block): Likewise.
45         (schedule_region): Allocate bitmap of blocks in region.  Use
46         count_or_remove_death_notes.  Use update_life_info.
47
48         * rtl.h (REG_SAVE_NOTE): New.
49         * rtl.c (reg_note_name): Update.
50         
51 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
52
53         * combine.c (refresh_blocks, need_refresh): New.
54         (combine_instructions): Allocate refresh_blocks.  Invoke
55         update_life_info if needed.
56         (distribute_notes): Mark refresh_blocks instead of installing
57         USE insns.
58         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
59         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
60
61         * Makefile.in (recog.o): Depend on basic-block.h.
62
63 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
64
65         * genrecog.c (add_to_sequence): Thinko last change: delete
66         shadowing allow_const_int variable.
67
68 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
69
70         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
71         __GNUC__ and __GNUC_MINOR__.
72
73         * gansidecl.h: Likewise.
74
75         * rtl.c: Likewise.
76         
77         * rtl.h: Likewise.
78
79         * toplev.h: Likewise.
80
81         * tree.c: Likewise.
82
83         * tree.h: Likewise.
84
85         * varray.c: Likewise.
86
87         * varray.h: Likewise.
88
89 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
90
91         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
92         use one before a jump table.
93
94         * rtl.def (ADDRESS): Change documentation to match reality.
95         * md.texi: Don't document it.
96         * gmicro.md (load address pattern): Use 'p' constraint, delete use
97         of ADDRESS rtx.
98
99         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
100
101 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
102
103         * genrecog.c (add_to_sequence): Move allow_const_int test outside
104         known predicate block; default allow_const_int true.
105         (debug_decision_list): New.
106
107 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
108
109         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
110
111 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
112
113         * gcse.c (gcse_main): Avoid global optimizations if we have a
114         large number of basic blocks and the ratio of edges to blocks
115         is high.
116         (delete_null_pointer_checks): Likewise.
117
118 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
119
120         * c-common.c (check_format_info): Warn if format string isn't a
121         string literal.
122
123 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
124
125         * configure.in (arm*-*-*): Don't let autoconf remove brackets
126         * configure: regenerate
127
128 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
129
130         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
131         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
132         (peepholes): Re-enable.
133
134 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
135
136         * Makefile.in (flow.o): Depend on TREE_H.
137         * basic-block.h (REG_SET_EQUAL_P): New.
138         (XOR_REG_SET): New.
139         (n_edges): Declare.
140         (free_regset_vector): Remove declaration.
141         (flow_delete_insn_chain): Declare.
142         (enum update_life_extent): New.
143         (update_life_info, count_or_remove_death_notes): Declare.
144         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
145         Verify register live at bb->global_live_at_start before adding USE.
146         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
147         (CLEAN_ALLOCA): New.
148         (n_edges): New. 
149         (PROP_*): New flags.
150         (find_basic_blocks_1): Use alloc_EXPR_LIST.
151         (clear_edges): Zero n_edges.
152         (make_edge): Increment n_edges.
153         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
154         (flow_delete_insn_chain): Export.
155         (delete_block): Decrement n_edges.
156         (merge_blocks_nomove): Likewise.
157         (life_analysis): Give life_analysis_1 PROP flags.
158         (verify_wide_reg_1, verify_wide_reg): New.
159         (verify_local_live_at_start): New.
160         (update_life_info): Rewrite to call into propogate_block.
161         (mark_reg): New.
162         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
163         always mark stack pointer.  Conditionally mark PIC register.
164         After reload, mark call-saved registers, return regsiters.
165         (life_analysis_1): Accept PROP flags not remove_dead_code.
166         Call mark_regs_live_at_end before zeroing regs_ever_live.
167         Use calculate_global_regs_live.  Copy global_live_at_end before
168         calling final propagate_block.  Zero reg_next_use on exit.
169         (calculate_global_regs_live): New.
170         (allocate_bb_life_data): Don't allocate bb->local_set.
171         (init_regset_vector, free_regset_vector): Remove.
172         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
173         Test flags before every operation.  Warn if prologue/epilogue insn
174         would have been deleted.
175         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
176         Use alloc_EXPR_LIST.
177         (mark_used_regs): Accept and use FLAGS, not FINAL.
178         Remove special handling for RETURN.
179         (try_pre_increment): Use alloc_EXPR_LIST.
180         (dump_flow_info): Dump n_edges.
181         (unlink_insn_chain, split_hard_reg_notes): Remove.
182         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
183         (find_insn_with_note, new_insn_dead_notes): Remove.
184         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
185         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
186         (replace_insns): Remove.
187         (count_or_remove_death_notes): New.
188         (verify_flow_info): Abort on error after all checks.
189         (remove_edge): Decrement n_edges.
190         (remove_fake_edges): Tweek format.
191         * haifa-sched.c (schedule_insns): Use split_all_insns.
192         * output.h (update_life_info): Remove declaration.
193         * recog.c (split_all_insns): From the corpse of split_block_insns,
194         do the whole function block by block.  Use update_life_info.
195         (recog_last_allowed_insn): New.
196         (recog_next_insn): Mind it.
197         (peephole2_optimize): Set it.  Walk backwards through blocks.
198         Use update_life_info.
199         * rtl.h (update_flow_info, replace_insns): Remove declarations.
200         (split_all_insns): Declare.
201         * toplev.c (rest_of_compilation): Thread prologue before flow2.
202         Use split_all_insns.
203
204         * i386.md (or -1 peep2s): Disable.
205
206 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
207
208         * config/mips/mips.md (movstrsi+[123]) : Combine these into
209         a single pattern.  Scrap the 'd' versions as unnecessary. 
210
211         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
212         tablejump_mips162,tablejump_internal4): The operands to a
213         label_ref must be VOIDmode.
214
215 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
216
217         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
218
219 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
220
221         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
222
223 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
224
225         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
226         cache every function if ggc_p.
227
228 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
229
230         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
231         instead of copy_rtx.  Accept sequences that contain asm statements.
232         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
233         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
234         orig_asm_operands_vector, copy_asm_operands_vector,
235         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
236         variables.
237         * rtl.h (copy_insn, copy_insn_1): Declare.
238
239 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
240
241         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
242
243         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
244         arguments to `current_file_function_operand'.
245
246         * genrecog.c: Include hard-reg-set.h and resource.h in the
247         generated output file.
248
249         * real.c: Include tm_p.h.
250
251 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
252
253         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
254         output operand.
255
256 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
257
258         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
259         before the fctiwz insn.
260
261 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
262                           Mark Mitchell  <mark@codesourcery.com>
263
264         * tree.c (make_lang_type_fn): New funtion pointer.
265         (make_lang_type): Call it.
266         * tree.h (make_lang_type): Declare.
267         (make_lang_type_fn): Likewise.
268         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
269
270 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
271
272         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
273         make sure that HIGH instructions are copied into BASE_REGS.
274
275 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
276
277         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
278
279 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
280
281         * c-decl.c (finish_struct): Use simpler method of
282         removing elements of a singly-linked list.
283
284 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
285
286         * alpha.md (peephole2's): Comment out peephole2's that generate
287         buggy code.
288
289 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
290
291         * genrecog.c (add_to_sequence): Disable mode check for
292         wildcard matches.
293
294 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
295
296         * ggc-simple.c (init_ggc): Set empty_string.
297
298 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
299
300         * configure.in: Detect mmap.  Add --with-gc=foo to select
301         garbage collector; default to page if mmap available.
302         * Makefile.in (GGC): Substitute.
303
304 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
305
306         * c-decl.c (ggc_p): Enable.
307
308 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
309
310         * flow.c (verify_flow_info): Make it extern & unconditionally define.
311
312 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
313
314         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
315         string for little-endian-data.
316
317 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
318
319         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
320         case somebody tries to compile --enable-checking code with gcc
321         1.34 or such.
322
323 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
324
325         * genrecog.c (add_to_sequence): Verify operand to label_ref is
326         VOIDmode.
327
328 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
329
330         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
331         * jump.c (jump_optimize_1): Document why.
332
333 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
334
335         * collect2.c (scan_prog_file, scan_libraries): Prototype function
336         pointers and casts for `int_handler' and `quit_handler'.
337
338         * flow.c (verify_flow_info, split_hard_reg_notes,
339         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
340         remove_edge, remove_fake_successors): Add static prototypes.
341         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
342         (mark_set_1): Initialize variable `regno'.
343         (unlink_insn_chain): Likewise for variable `curr'.
344         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
345
346         * loop.c (strength_reduce): Initialize variable
347         `unrolled_insn_copies'.
348         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
349         prototypes.  Change these functions to take const PTR parameters
350         to avoid prototype conflict when used as the comparson argument
351         for qsort.
352         (check_dbra_loop): Initialize variable `comparison_val'.
353
354         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
355         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
356         (find_valid_class): Initialize variable `best_class'.
357         (find_reloads): Call memcpy, not bcopy.
358
359         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
360         (hard_reg_use_compare): Don't needlessly cast away const.
361         (reload_reg_class_lower): Likewise.
362         (choose_reload_regs): Initialize variable `regno'.
363
364 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
365
366         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
367
368 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
369
370         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
371         ({,d}discard): Add forward declarations.  Declare parameter as
372         unused.
373         (main_without_main): Explicitly declare return type to be int.
374         (memcpy): Properly declare.
375
376         * libgcc2.c (toplevel): If inhibit_libc is defined and not
377         building the trampoline support, declare malloc, free, and
378         atexit.
379         (__clear_cache): Mark arguments as potentially unused.
380         
381         * frame.c (toplevel): If inhibit_libc is defined, declare
382         malloc and free.
383
384 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
385
386         * flow.c (make_edge): Accept an optional 2D bitmap in which
387         to cache edge existence.  Update all callers.
388         (make_label_edge, make_eh_edge): Pass through the edge cache.
389         (make_edges): Provide the cache.
390
391 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
392
393         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
394         a char*.
395         (local_mbtowc): Change the type of variable `i' from int to size_t.
396
397         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
398         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
399
400 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
401
402         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
403         after other includes that define the appropriate types.  Include
404         tm_p.h for getting user prototypes.
405         * ggc-callbacks.c (toplevel): Ditto.
406         * ggc-none.c (toplevel): Ditto.
407         * gcc-page.c (toplevel): Ditto.
408         * ggc-simple.c (toplevel): Ditto.
409
410 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
411                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
412
413         * config/mips/mips.c (mips_move_2words): Split doubles if
414         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
415
416 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
417
418         * genrecog.c (struct decision_test): New.
419         (struct decision): Remove test-related members, sort the rest by size.
420         (IS_SPLIT): Simplify.
421         (new_decision, new_decision_test): New.
422         (add_to_sequence): Use them.  No special handling for args of
423         non-MATCH codes.
424         (maybe_both_true): Renamed from not_both_true; return sense changed.
425         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
426         of maybe_both_true and adjusted for decision_test.
427         (position_merit): Remove.
428         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
429         (merge_accept_insn): New, broken out of merge_trees.
430         (merge_trees): Use them.  No special case for c_test; no node
431         splitting; use test type instead of position_merit.
432         (factor_tests): New.
433         (simplify_tests): New.
434         (break_out_subroutines): Don't write code now.
435         (find_afterward): New.
436         (write_afterward, write_switch, write_cond): New.
437         (write_action, is_unconditional): New.
438         (write_node): New.  Use them.
439         (write_tree_1): Rewrite.  Use the new functions above.
440         (write_tree): Remove afterward processing.
441         (write_subroutine): Simplify function variant emission.
442         (write_subroutines): New.
443         (same_codes, clear_codes): Remove.
444         (same_modes, clear_modes): Remove.
445         (write_header): New, broken out of main.
446         (make_insn_sequence): Use new_decision and new_decision_test.
447         (process_tree): New, broken out of main.
448         (main): Adjust for merge_trees interface change. 
449         Don't #define operands in the output file.
450         (record_insn_name): New, broken out of make_insn_sequence.
451         (debug_decision_2, debug_decision_1, debug_decision_0): New.
452         (debug_decision): New.
453
454 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
455
456         * resource.c (find_free_register): Mark class_str argument const.
457         * resource.h: Update prototype to match.
458
459         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
460         * i386.md: Give all anonymous insns names.
461
462 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
463
464         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
465         blocks.
466
467 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
468
469         * toplev.c (dbr_sched_time): Unconditional.
470         (peephole2_time): New.
471         (compile_file): Add pass numbers to all of the dump file suffixes.
472         Dump peephole2_time.  Don't dump times for non-applicable passes.
473         (rest_of_compilation): Add pass numbers to dump file suffixes.
474         Conditionalize calls to the scheduler.
475         * invoke.texi: Update.
476
477 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
478
479         * flow.c (make_edges): Fix insn iteration.
480         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
481         (find_basic_blocks_1): Fix spelling mistake.
482
483 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
484
485         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
486         always have side-effects.  Use memset not bzero.
487         (make_node): Likewise.
488
489 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
490
491         * stmt.c (expand_anon_union_decl): When any of the elements of the
492         union is addressable, so is the entire union.
493
494 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
495
496         * sbitmap.c (sbitmap_ones): Don't set too many bits.
497
498         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
499         * bitmap.c (bitmap_operation): Return true iff TO changed.
500         (bitmap_equal_p): New.
501         (bitmap_bit_p): Tidy arithmetic.
502         (debug_bitmap_file): Likewise.
503
504 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
505
506         * toplev.c (rest_of_compilation): Turn on cse_not_expected
507         before cse2 instead of after.
508
509 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
510
511         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
512         register offsets. 
513
514 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
515
516         * cppinit.c (is_idchar initializer): Loosen tests to accept
517         gcc 2.>6 and >2.
518
519 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
520
521         * mips.md: Define conditional move patterns for floating point
522         operands and DI mode conditions.
523
524 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
525
526         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
527         always have side-effects.
528
529 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
530
531         * mn10200.c (asm_file_start): Fix typo.
532
533         * cppinit.c (is_idchar initializer): Tighten tests for when
534         to put the table into initialized memory.
535
536         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
537         not an array of rtunion.
538         * gcc-page.c (ggc_alloc_rtvec): Similarly.
539         * gcc-simple (ggc_free_rtvec): Similarly.
540
541         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
542         of rtunions.
543
544         * mbchar.h: Add missing #endif.
545
546         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
547         (FPBIT, DPBIT): Define.
548
549 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
550
551         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
552
553         * profile.c (instrument_arcs, output_gcov_string,
554         tablejump_entry_p): Add static prototypes.
555         (output_gcov_string): Constify a char*.
556         
557         * regmove.c (replacement_quality, fixup_match_2): Add static
558         prototypes.
559
560         * resource.h (reg_dead_p): Add extern prototype.
561
562         * rtl.c (trim_filename): Add static prototype.
563
564         * scan-decls.c (skip_to_closing_brace): Likewise.
565
566         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
567         (expand_end_case): Initialize variable `range'.
568         (emit_case_nodes): Remove unused prototype `rtx_fn'.
569
570         * varasm.c (asm_emit_uninitialised): Add static prototype.
571         (asm_emit_uninitialised, assemble_variable): Mark parameter with
572         ATTRIBUTE_UNUSED.
573
574 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
575
576         * cpplib.c (if_directive_nameo): Add static prototype.
577
578         * cse.c (cse_insn): Remove unused variable `p'.
579
580         * except.c (create_rethrow_ref, push_entry,
581         receive_exception_label, new_eh_region_entry, find_func_region,
582         clear_function_eh_region, process_nestinfo): Add static prototypes.
583         (get_reg_for_handler): Hide definition.
584         (process_nestinfo): Initialize variable `extra_handlers'.
585
586         * expr.h (expand_builtin_longjmp): Add extern prototype.
587
588         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
589
590         * function.c (prepare_function_start): Likewise.
591         (pop_function_context_from): Mark parameter `context' with
592         ATTRIBUTE_UNUSED.
593         (push_temp_slots_for_block, flush_addressof): Hide definition.
594         
595         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
596         solve_program_flow_graph, calculate_branch_probs,
597         function_summary, main, fancy_abort): Add prototypes.
598
599         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
600         (add_hash): Constify a char*.
601
602         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
603         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
604         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
605
606         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
607
608         * lists.c (free_list, zap_lists): Likewise.
609
610 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
611
612         * alias.c (nonlocal_reference_p): Add static prototype.
613
614         * bitmap.c (bitmap_element_allocate): Prototype args in function
615         pointer cast.
616
617         * builtins.c (stabilize_va_list): Add static prototype.
618         (expand_builtin_va_arg): Constify a char*.
619         
620         * c-lex.c (getch, put_back, extend_token_buffer_to,
621         read_line_number, token_getch, token_put_back): Add static
622         prototypes.
623
624         * c-parse.gperf (hash, is_reserved_word): Likewise.
625
626         * cccp.c (is_dir_separator): Likewise.
627
628 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
629
630         * graph.h: New file to prototype functions exported by graph.c.
631
632         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
633
634         * graph.c: Include graph.h.
635
636         * toplev.c: Likewise.  Remove redundant prototypes.
637
638 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
639
640         * invoke.texi: Removed duplicated description for -Q.
641
642 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
643
644         * extend.texi: Grammar fix in __extension__ text.
645
646 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
647
648         * md.texi (define_peephole2): New section.
649
650 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
651
652         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
653         (mov $-1 to or peepholer): Enable for pentium when optimizing for
654         speed.
655
656 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
657
658         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
659
660 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
661
662         * i386.md (ffs expander): Emit Pentium friendly code for
663         TARGET_PENTIUM.
664
665 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
666
667         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
668         for non-trees.
669         (build1): Likewise.
670         
671 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
672
673         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
674
675 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
676
677         * config/m68k/m68k.c (use_return_insn): Return false if the pic
678         register is in use.
679
680 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
681
682         * md.texi (No Constraints): Delete section.
683         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
684         * final.c (final_scan_insn): We always have register constraints.
685         * genattrtab.c: Don't include "insn-config.h".
686         (write_attr_case): We always have register constraints.
687         * genconfig.c (register_constraint_flag): Delete.
688         (walk_insn_part): Don't check whether we have register constraints.
689         (main): Don't write out "#define REGISTER_CONSTRAINTS".
690         * genoutput.c (have_constraints): Delete.
691         (main): Don't set it.
692         (output_operand_data): We always have constraints.
693         (scan_operands): Likewise.
694         (compare_operands): Likewise.
695         * local-alloc.c (block_alloc): We always have constraints.
696         (requires_inout): Always compile this function.
697         * recog.c (extract_insn): We always have constraints.
698         (constrain_operands, reg_fits_class_p): Always compile these
699         functions.
700         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
701         fields.
702         (struct insn_operand_data): Likewise.
703         * regclass.c (regclass): We always have constraints.
704         (record_reg_classes, copy_cost, record_address_regs,
705         auto_inc_dec_reg_p): Always compile these functions.
706         * regmove.c (regmove_optimize): We always have constraints.
707         * reload.c (find_reloads): Likewise.
708         * reload1.c (reload): Likewise.
709         (reload_cse_simplify_operands): Likewise.
710         * i860.c (output_delay_insn): Likewise.
711
712 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
713
714         * iris6.h (BUILD_VA_LIST_TYPE): Define.
715
716 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
717
718         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
719         for the va_list record.
720
721 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
722
723         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
724         prologues.
725
726 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
727
728         * alias.c: Include insn-flags.h.
729         * Makefile.in (alias.o): Update.
730
731 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
732
733         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
734         to LTU and GEU.  Handle more cases using sbb.
735
736 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
737
738         * i386.md (truncatexfdf splitters): Do not use subreg.
739         (fop XFmode patterns): Fix mode in operand testing.
740
741 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
742
743         * jump.c (jump_optimize_1): Amend last change to test only the
744         form of the operand, not the insn.
745
746         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
747         not register_operand to determine when B may need preloading.
748
749 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
750
751         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
752         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
753         (call-value patterns): Move to end of file.
754         (*): Remove mode from label_ref in (pc) context.
755         (movstrqi): Use memory not general_operand for BLKmode operands.
756         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
757         to register_operand operands.
758         (peep2 patterns): Convert from commented-out peephole patterns.
759
760 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
761
762         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
763         to BUILT_IN_INIT_DWARF_REG_SIZES.
764         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
765         Renamed from BUILT_IN_DWARF_REG_SIZE; call
766         expand_builtin_init_dwarf_reg_sizes.
767         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
768         with __builtin_init_dwarf_reg_size_table.
769         * dwarf2out.c (struct reg_size_range): Delete.
770         (expand_builtin_init_dwarf_reg_sizes): New function.
771         (expand_builtin_dwarf_reg_size): Delete.
772         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
773         (expand_builtin_dwarf_reg_size): Don't declare.
774         * libgcc2.c (dwarf_reg_size_table_initialized): New.
775         (dwarf_reg_size_table): New.
776         (init_reg_size_table): New function.
777         (copy_reg): Use dwarf_reg_size_table.
778         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
779         before use.
780
781 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
782
783         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
784         Correctly build argument list to constructor and destructor functions.
785
786 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
787
788         * c-tree.h (warn_float_equal): Declare.
789         * c-decl.c (warn_float_equal): Define.
790         (c_decode_option): Recognize -W[no-]float-equal.
791         * c-typeck.c (build_binary_op): Conditionally warn
792         about equality tests of floating point types.
793         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
794         * invoke.texi: Add docs for -Wfloat-equal warning.
795
796 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
797
798         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
799         generating RTL directly.
800         * mips.h (INIT_TARGET_OPTABS): Likewise.
801         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
802
803         * expr.h (init_mov_optab): Delete declaration
804
805         * h8300.c (WORD_REG_USED): Update to avoid useless register
806         saves in interrupt functions and functions which never return.
807
808         * cse.c (struct set): Delete inner_dest_loc field. 
809         (cse_insn): Remove assignments to inner_dest_loc field.
810
811 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
812
813         * ggc-page.c: Don't include <unistd.h> etc taken care of
814         by "system.h".  Include <sys/mman.h> afterward.
815
816 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
817
818         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
819         ggc_alloc_string.
820
821 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
822
823         * xcoffout.c (xcoffout_declare_function): Add documentation.
824         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
825         TARGET_64BIT.  Compare constant to -1, not bit pattern.
826         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
827         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
828         gen_movsi typos.
829
830 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
831
832         * dwarf2out.c (add_abstract_origin_attribute): Abort if
833         origin_die is NULL.
834         (gen_inlined_enumeration_type_die): Do not abort if the type has
835         not been writeen out.
836         (gen_inlined_structure_type_die): Do not abort if the type has
837         not been writeen out.
838         (gen_inlined_union_type_die): Do not abort if the type has
839         not been writeen out.
840         (gen_tagged_type_instantiation_die): Do not abort if the type
841         has not been written out.
842
843 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
844
845         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
846         call it.
847         * reg-stack.c (straighten_stack): Copy hard reg set with
848         COPY_HARD_REG_SET.
849
850 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
851
852         * builtins.c (stabilize_va_list): Stabilize array type va_list
853         to a pointer type, not the base record type.
854         (expand_builtin_va_copy): Dereference the pointers explicitly;
855         use the correct size for the copy.
856
857         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
858         (rs6000_va_arg): Likewise.
859
860 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
861
862         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
863
864 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
865
866         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
867         field.
868         (DECL_BUILT_IN_CLASS): Adjust accordingly.
869
870 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
871
872         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
873         (init_ggc): Use it instead of a constant.
874         (ggc_collect): Bound allocated_last_gc by it.
875
876 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
877
878         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
879         with va_list.
880
881 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
882
883         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
884         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
885         * configure:  Regen.
886         * config/mips/openbsd.h:  New, OpenBSD little endian target.
887         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
888         * config/mips/xm-openbsd.h:  New, OpenBSD host.
889
890 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
891
892         * config/m68k/m68k.c (output_function_prologue,
893         output_function_epilogue): Use
894         current_function_uses_pic_offset_table instead of regs_ever_live
895         to decide whether to save/restore pic register.
896         (legitimize_pic_address): Don't modify regs_ever_live any more.
897
898 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
899
900         * function.h (struct function): Add x_dont_save_pending_sizes_p.
901         * stor-layout.c (variable_size): Don't add sizes to the pending
902         sizes list if x_dont_save_pending_sizes_p is set.
903         
904 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
905
906         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
907         for symbolic_operand().
908         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
909
910 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
911
912         * combine.c (gen_rtx_combine): Add missing call to va_end().
913
914         * final.c (asm_fprintf): Likewise.
915
916         * genattrtab.c (attr_rtx): Likewise.
917
918 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
919
920         * cse.c: Update comments.
921         (cse_insn): When converting a conditional/computed jump into
922         an unconditional jump, always make sure a BARRIER immediately
923         follows the converted jump.  Do not delete unreachable code.
924         (cse_basic_block): Do not delete unreachable code.
925         * toplev.c (rest_of_compilation): Move call to 
926         delete_trivially_dead_insns after the conditional call to
927         jump_optimize.
928
929 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
930
931         * collect2.c (make_temp_file): Don't prototype.
932
933         * gcc.c (make_temp_file): Likewise.
934
935         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
936
937 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
938
939         * varasm.c (asm_emit_uninitialised): New function: Generate
940         the assembler statements necessary to declare an uninitialised 
941         variable.
942         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
943         variable.
944         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
945         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
946         section.
947         (assemble_variable): Use asm_emit_uninitialised to emit an
948         uninitialised variable.
949
950 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
951
952         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
953         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
954         <geoffk@cygnus.com>.
955
956 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
957
958         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
959         * c-common.h (builtin_function): Don't declare.
960
961         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
962         DECL_BUILT_IN.
963         (pushdecl): Likewise.
964         (finish_decl): Likewise.
965         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
966         int.  All callers changed.
967         Set the builtin's DECL_BUILT_IN_CLASS.
968         * tree.h (enum built_in_class): New.
969         (enum built_in_function): Delete NOT_BUILT_IN.
970         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
971         in a union.
972         (DECL_SET_FUNCTION_CODE): Likewise.
973         (DECL_BUILT_IN_CLASS): New macro.
974         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
975         (struct tree_decl): Split builtin function code field into a
976         struct.
977         (builtin_function): Declare.
978
979 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
980
981         * optabs.c (init_traps): Fix typo in last change.
982
983 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
984
985         * toplev.c (rest_of_decl_compilation): Update comment.
986
987 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
988
989         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
990         in .sbss if appropriate.
991         (EXTRA_SECTION_FUNCTIONS): Add sbss.
992         (SBSS_SECTION_ASM_OP): New macro.
993         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
994         (EXTRA_SECTIONS): Add in_sbss.
995         * config/mips/mips.h: Prototype sbss_section.
996
997 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
998
999         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
1000         to disappear.
1001
1002 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
1003
1004         * optabs.c (init_traps): Register trap_rtx as a GC root.
1005
1006 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1007
1008         * config/mips/mips.c (function_arg_pass_by_reference): Define
1009         unconditionally, since it's called unconditionally.
1010
1011 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
1012
1013         * toplev.c (documented_lang_options): Add -fshort-wchar.
1014         * c-decl.c (c_decode_option): Likewise.
1015         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
1016         for wchar_t.
1017         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
1018         * gcc.c (default_compilers): If -fshort-wchar, 
1019         override __WCHAR_TYPE__.
1020         * tm.texi (C Dialect Options): Add -fshort-wchar.
1021
1022         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
1023         symbol for a variable.
1024
1025         * cpplib.h (CPP_PREPROCESSED): New macro.
1026         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
1027         we're seeing this input for a second time.
1028
1029 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
1030
1031         * emit-rtl.c (init_emit_once): Initialize modes first.
1032
1033 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
1034
1035         * config/i386/i386.c (pic_label_name): Change to char pointer.
1036         (global_offset_table): New variable.
1037         (load_pic_register): Fill global_offset_table if it hasn't
1038         already been done.  Allocate pic_label_name dynamically.
1039         * ggc.h (empty_string): New variable.
1040         * ggc-simple.c (empty_string): Likewise.
1041         (init_ggc): Allocate empty_string and add as root.
1042         * stmt.c (digit_strings): New variable.
1043         (init_stmt): Add last_block_end_note as root.  Allocate and
1044         initialize digit_strings. 
1045         (expand_asm_operands): Use empty_string instead of string
1046         constant.  Use digit_strings instead of string constants.
1047         * profile.c (init_arc_profiler): Allocate string with
1048         ggc_alloc_string instead of xmalloc.
1049         (output_func_start_profiler): Likewise.
1050         * c-typeck.c (digest_init): Check if init is error_mark_node.
1051
1052 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
1053                           Richard Henderson  <rth@cygnus.com>
1054
1055         * ggc-page.c: New file.
1056         * Makefile.in (ggc-page.o): New.
1057
1058 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
1059
1060         * invoke.texi: Document -fdelete-null-pointer-checks
1061         * toplev.c (flag_delete_null_pointer_checks): New.
1062         (f_options): Add entry for -fdelete-null-pointer-checks.
1063         (rest_of_compilation): Conditionalize null pointer check
1064         elimination on flag_delete_null_pointer_checks.
1065         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
1066
1067 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
1068
1069         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
1070         copyright notice and special exception to GPL.
1071
1072 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1073
1074         * abi64.h (mips_function_value): Add prototype arguments.
1075
1076         * mips-protos.h: New file with mips prototypes.
1077
1078         * mips.c: Include "tm_p.h".
1079         (mktemp, lookup_name): Add prototype arguments.
1080         (extern_list, string_constant, mips_fill_delay_slot,
1081         mips_output_external, mips_output_external_libcall,
1082         mips_output_filename, mips_declare_object, function_prologue,
1083         mips_expand_prologue, function_epilogue, mips16_constant,
1084         build_mips16_function_stub, mips_output_conditional_branch):
1085         Constify a char*.
1086         (mips_va_start): Remove unused variable `u'.
1087         (mips_va_arg): Cast value to unsigned when comparing against one.
1088         (trace): Delete.
1089         (save_restore_insns, mips_expand_prologue): Add missing arg in
1090         call to `large_int'.
1091
1092         * mips.h: Move prototypes to mips-protos.h.
1093         (data_section, memory_address_p, rdata_section,
1094         readonly_data_section, simple_epilogue_p, text_section): Delete
1095         prototypes delcared elsewhere.
1096         (mips_epilogue_delay_slots, print_options): Delete unused decls.
1097         (trace): Delete.
1098         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
1099
1100         * mips.md: Delete extra args in call to `mips_move_2words'.
1101
1102         * xm-iris6.h (alloca): Add prototype argument.
1103
1104         * genpeep.c: Include "tm_p.h" in generated output file.
1105
1106 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
1107
1108         * basic-block.h (find_edge_index): Change parameters.
1109         * flow.c (verify_edge_list): Pass basic_block parameters to
1110         find_edge_index instead of integers.
1111
1112 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
1113
1114         * combine.c (simplify_comparison): Use an unsigned shift to adjust
1115         the constant.
1116
1117 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
1118
1119         * gcc.1: Fix a formatting error.
1120
1121 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1122
1123         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
1124         i786, mn10200, mn10300, pdp11, v850.
1125
1126 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
1127
1128         * libgcc2.c (num_digits): Add prototype with 
1129         __attribute__((const)).
1130         (__terminate): Add prototype.
1131
1132 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
1133
1134         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
1135
1136         * alpha/alpha.c (print_operand): Fix type of `code'.
1137         (alpha_output_filename): Constify.
1138         * alpha/alpha.h: Move all function declarations ...
1139         * alpha/alpha-protos.h: ... here.  New file.
1140         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
1141         (SECTION_FUNCTION_TEMPLATE): Likewise.
1142
1143 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1144
1145         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
1146         * expr.c (expand_expr): Likewise.
1147         (do_jump): Likewise.
1148         (do_store_flag): Pass ccp_store_flag to can_compare_p.
1149         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
1150         accessor macros.
1151         (enum can_compare_purpose): New.
1152         (can_compare_p): Adjust prototype.
1153         (prepare_cmp_insn, prepare_operand): Declare.
1154         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
1155         * optabs.c (cmp_available_p): Deleted.
1156         (expand_abs): Pass ccp_jump to can_compare_p.
1157         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
1158         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
1159         Call can_compare_p rather than cmp_available_p.
1160         (prepare_operand): No longer static.
1161         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
1162         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
1163         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
1164         sequence to use emit_cmp_and_jump_insns.
1165         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
1166
1167 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
1168
1169         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
1170         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
1171         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
1172         (plus (reg) (const_int 0))
1173         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
1174         
1175 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
1176
1177         * rs6000.c (expand_block_move): DImode loads and stores require
1178         word-aligned displacements.  Increment address registers with
1179         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
1180
1181 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
1182
1183         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
1184         is no name for the base type, rather than segfault.  If we are
1185         writing out a complex integer type, use DW_ATE_lo_user.
1186
1187         * expr.c (emit_move_insn_1): If we are copying a complex that fits
1188         in one word or less (complex char, complex short, or on 64 bit
1189         systems complex float) to/from a hard register, copy it through
1190         memory instead of dying in gen_{real,imag}part.  If we have a
1191         short complex type, prevent inlining since it allocates stack
1192         memory.
1193
1194         * tree.c (build_complex_type): If we are writing dwarf2 output,
1195         generate a name for complex integer types.
1196
1197 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
1198
1199         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
1200         * flow.c (remove_edge): Remove extra whitespace.
1201         (remove_fake_edges): Fix comment.
1202         (add_noreturn_fake_exit_edges): Use the correct name.
1203
1204 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
1205
1206         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
1207         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
1208         (clean): Depend on INTL_CLEAN.
1209         (maintainer-clean): Adjust.
1210
1211 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1212
1213         * configure.in (AC_PREREQ): Bump to 2.13.
1214         (AC_C_STRINGIZE): Call this instead of using a custom macro.
1215
1216         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
1217
1218         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
1219
1220         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
1221
1222         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
1223         (HAVE_STRINGIZE): Define.
1224
1225 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
1226
1227         * c-parse.in: save and restore warn_pointer_arith on __extension__
1228         along with pedantic.
1229         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
1230         Set the type of extension to itype rather than $<itype>1 kludge.
1231         * extend.texi (Alternate Keywords): Adjust documentation.
1232         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
1233
1234 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
1235
1236         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
1237         most assembler templates.
1238
1239         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
1240         FP loads and stores.
1241         (following_call): Always return zero for the PA8000.
1242         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
1243         FP loads and stores.
1244         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
1245
1246         * pa.h (BRANCH_COST): Define.
1247
1248         * pa.md (return, return_internal): Use bve for PA2.0.
1249
1250         * pa.md (fused multiply): Add variants which reduce height for the
1251         fused multiply, but which still generate 2 insns.
1252         (fnegabs): Similarly.
1253
1254         * pa.md (subsi3): Turn into an expander.  Create two anonymous
1255         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
1256         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
1257
1258         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
1259         for TARGET_PA_20.
1260         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
1261         code generation.
1262         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
1263         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
1264
1265         * regclass.c (init_regs): Add "top_of_stack" as a garbage
1266         collection root.
1267
1268         * flow.c (record_active_eh_regions): Terminate loop after finding
1269         the last insn in the last basic block.
1270
1271 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1272
1273         * config/c4x/c4x.md: Delete parallel instruction peepholes.
1274
1275 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1276
1277         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
1278
1279 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1280
1281         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
1282         splitting to not use output template.
1283
1284 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1285
1286         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
1287         * config/c4x/c4x.c (c4x_va_start): New function.
1288
1289 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
1290
1291         * genrecog.c (not_both_true): Handle correctly cases when called for
1292         tests with different positions in the insn.
1293
1294 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1295
1296         * machmode.h (HOST_PTR_PRINTF): Move from here ...
1297
1298         * system.h (HOST_PTR_PRINTF): ... to here.
1299
1300         * mips-tfile.c: Don't include machmode.h.
1301
1302         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
1303         (mips-tfile.o): Don't depend on machmode.h.
1304
1305 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1306
1307         * haifa-sched.c (sched_analyze): Rename local variable `region' to
1308         avoid conflicts with typedef struct `region' at the top level scope.
1309
1310 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
1311
1312         * basic-block.h (basic_block): Add eh_beg, eh_end.
1313         * flow.c (entry_exit_blocks): Update.
1314         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
1315         Call new functions.
1316         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
1317         lists.c functions to allocate insn lists.
1318         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
1319         edge creation ...
1320         (make_eh_edge): ... here.  New.
1321         (move_stray_eh_region_notes): New.
1322         (record_active_eh_regions): New.
1323         (delete_unreachable_blocks): Split out block merging ...
1324         (try_merge_blocks): ... here.  New.
1325         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
1326         Dump debugging data.
1327         (merge_blocks_move_successor_nojumps): Likewise.
1328         (merge_blocks): Use eh_beg+eh_end to validate block movement.
1329
1330 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1331
1332         * extend.texi (Bound member functions): Document unbound pmf
1333         conversion.
1334
1335 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
1336
1337         * flow.c (split_edge): Handle insertion on a fallthrough edge which
1338         has the EXIT_BLOCK as a dest.
1339
1340 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
1341
1342         * flow.c (remove_edge): New function to remove an edge from the 
1343         flow graph.
1344         (remove_fake_successors): New function to remove fake successor edges.
1345         (remove_fake_edges): New function to remove all fake edges from the
1346         flow graph.
1347         (add_fake_exit_edges): New function to add fake edges from all blocks
1348         with no successors to the exit block.
1349         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
1350         prototypes for new functions.
1351
1352 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
1353
1354         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
1355         Use Pmode to determine whether to output .dword or .word.
1356
1357 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
1358
1359         * tree.c (built_in_filename): New variable.
1360         (BUILT_IN_FILENAME): New macro.
1361         (init_tree_codes): Allocate built_in_filename.
1362         (make_node): Use built_in_filename instead of string constant.
1363
1364 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
1365
1366         * configure.in: Add fr30 target.
1367         * configure: Regenerate.
1368         * config/fr30: New directory.
1369         * config/fr30/crti.asm: New file.
1370         * config/fr30/fr30.c: New file.
1371         * config/fr30/crtn.asm: New file.
1372         * config/fr30/fr30.h: New file.
1373         * config/fr30/fr30.md: New file.
1374         * config/fr30/lib1funcs.asm: New file.
1375         * config/fr30/t-fr30: New file.
1376         * config/fr30/xm-fr30.h: New file.
1377
1378 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
1379
1380         * flow.c (merge_blocks_move_successor_nojumps): Delete the
1381         BARRIER at the end of the successor, not the BARRIER before
1382         the successor.
1383
1384         * pa.c (pa_add_gc_roots): Fix thinko in last change.
1385
1386 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
1387
1388         * stmt.c (any_pending_cleanups): Don't crash when 
1389         current_function->stmt is unset.
1390
1391 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1392
1393         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
1394         other initializations that may use it for relative offsets.
1395
1396 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1397
1398         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
1399         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
1400         * config/i386/sol2dbg.h: Removed.
1401         * config/i386/sol2gas.h: New file, to enable gas work-around.
1402         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
1403         Don't use sol2dbg.h.
1404         * configure: Rebuilt.
1405
1406 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
1407
1408         * invoke.texi (-fthis-is-variable): Remove documentation.
1409
1410 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
1411
1412         * basic-block.h (compute_bb_for_insn): Declare.
1413         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
1414         to use; set size of basic_block_for_insn directly.
1415         (find_basic_blocks): Update.
1416
1417 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1418
1419         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
1420
1421 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1422
1423         * crtstuff.c (ON_EXIT): Delete empty macro definition.
1424         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
1425
1426 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
1427
1428         * c-decl.c (c_decode_option): Extend comment.
1429
1430 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
1431
1432         * toplev.c (progname): Make 'const char *'
1433         (flag_print_mem): Move out of main.
1434         (version_flag): Move out of main.
1435         (filename): Move out of main.
1436         (debug_args): Remove g prefix from options.
1437         (documented_lang_options): Remove cpplib specific options.
1438         (display_help): Add g prefix to debug options.
1439         (check_lang_option): Delete this function.
1440         (decode_d_option): New function: Decode -d... option.
1441         (decode_f_option): New function: Decode -f... option.
1442         (decode_W_option): New function: Decode -W... option.
1443         (decode_g_option): New function: Decode -g... option.
1444         (independent_decode_option): New function: Decode a language
1445         independent command line option.
1446         (main): Invoke lang_decode_option and then
1447         independent_decode_option on each command line option in
1448         turn. 
1449
1450 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
1451
1452         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
1453          * fold-const.c (fold_range_test): Do not try to fold the range
1454          test if the rhs or lhs has side effects.
1455
1456         * basic-block.h (compute_flow_dominators): Declare.
1457
1458         * gcse.c (alloc_code_hoist_mem): New function.
1459         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
1460         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
1461         (hoist_code, one_code_hoisting_pass): Likewise.
1462         (gcse_main): If optimizing for size, then hoist expressions
1463         computed in multiple dominated basic blocks.
1464
1465         * gcse.c (invalid_nonnull_info): New function.
1466         (delete_null_pointer_checks): Likewise.
1467         * rtl.h (delete_null_pointer_checks): Declare.
1468         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
1469
1470         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
1471         (merge-blocks_move_successor_nojumps): Likewise.
1472         (merge_blocks): Allow merging of some blocks, even if it requires
1473         physical movement of the blocks, but not if it requires new jumps.
1474
1475         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
1476         Callers and prototype changed.
1477         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
1478
1479 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1480
1481         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
1482         -YP when both -p and -pg are present.  From i386/sol2.h.
1483
1484 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1485
1486         * Makefile.in (distclean): Delete tm_p.h.
1487         * configure.in: Create a new file, "tm_p.h", from a list in
1488         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
1489         "i386/i386-protos.h".
1490
1491         * alias.c: Include "tm_p.h".
1492         * c-typeck.c: Likewise.
1493         * calls.c: Likewise.
1494         * cse.c: Likewise.
1495         * emit-rtl.c: Likewise.
1496         * explow.c: Likewise.
1497         * expmed.c: Likewise.
1498         * expr.c: Likewise.
1499         * final.c: Likewise.
1500         * flow.c: Likewise.
1501         * fold-const.c: Likewise.
1502         * function.c: Likewise.
1503         * gcse.c: Likewise.
1504         * global.c: Likewise.
1505         * haifa-sched.c: Likewise.
1506         * integrate.c: Likewise.
1507         * jump.c: Likewise.
1508         * local-alloc.c: Likewise.
1509         * loop.c: Likewise.
1510         * optabs.c: Likewise.
1511         * recog.c: Likewise.
1512         * reg-stack.c: Likewise.
1513         * regclass.c: Likewise.
1514         * regmove.c: Likewise.
1515         * reload.c: Likewise.
1516         * reload1.c: Likewise.
1517         * reorg.c: Likewise.
1518         * resource.c: Likewise.
1519         * stmt.c: Likewise.
1520         * stor-layout.c: Likewise.
1521         * toplev.c: Likewise.
1522         * tree.c: Likewise.
1523         * unroll.c: Likewise.
1524         * genattrtab.c (main): Make generated file include "tm_p.h".
1525         * genemit.c (main): Likewise.
1526         * genoutput.c (main): Likewise.
1527         * genrecog.c (main): Likewise.
1528
1529         * i386.h: Delete all prototypes.
1530         * i386.c: Include "tm_p.h".
1531         (ix86_attr_length_default): Call constant_call_address_operand
1532         with correct number of arguments.
1533         * i386-protos.h: New file.
1534         * i386.md (unnamed patterns): Call constant_call_address_operand
1535         with correct number of arguments.
1536         (exception_receiver): Call load_pic_register with correct number
1537         of arguments.
1538
1539 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
1540
1541         * c-pragma.c (mark_align_stack): Dereference the void* properly.
1542
1543 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
1544
1545         * rtl.h (insns_safe_to_move_p): New function.
1546         * loop.c (find_and_verify_loops): Use it.
1547         * rtlanal.c (insns_safe_to_move_p): Define it.
1548
1549 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
1550
1551         * c-pragma.c: Include ggc.h.
1552         * Makefile.in (c-pragma.o): Update.
1553
1554 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1555
1556         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
1557         (LIB_SPEC): Likewise.
1558         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
1559         Reindent -YP/-p/-pg.
1560         Copied from config/sparc/sol2.h.
1561
1562 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
1563
1564         * c-pragma.c (mark_align_stack): New.
1565         (init_pragma): New.
1566         * c-pragma.h (init_pragma): Declare it.
1567         * c-lex.c (init_parse): Call it.
1568
1569 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1570
1571         * configure.in: Pick up thread library on Solaris/x86 just
1572         like on Solaris/sparc.
1573         * configure: Rebuilt.
1574
1575 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
1576
1577         * rtl.h (global_rtx_index): New enum.
1578         (global_rtl): Change to array of rtx.
1579         (pc_rtx, cc0_rtx): Redefine accordingly.
1580         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
1581         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
1582         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
1583         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
1584         (const_int_rtx): Change to array of rtx.
1585         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
1586         accordingly. 
1587         * emit-rtl.c (global_rtl): Change to array of rtx.
1588         (const_int_rtx): Change to aray of rtx.
1589         (gen_rtx_CONST_INT): Redefine accordingly.
1590         (init_emit_once): Allocate and initialize global_rtl.  Likewise
1591         for const_int_rtx.  Add both as GC roots.
1592         * genattrtab.c (global_rtl): Update declaration.
1593
1594 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
1595
1596         * Makefile (USER_H): Add iso646.h back.
1597
1598 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
1599
1600         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
1601         zapping the LOG_LINKS of sched_before_next_call.
1602
1603         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
1604         * pa.c (insn_refs_are_delayed): Renamed from
1605         insn_sets_and_refs_are_delayed.
1606
1607 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
1608
1609         * functiion.h (struct function): Add x_whole_function_mode_p.
1610         (retrofit_block): Declare.
1611         * function.c (retrofit_block): New function.
1612         (identify_blocks): Add assertions.  Allow an incomplete set of
1613         block notes if we're still generating code for the function.
1614         * integrate.c: Include loop.h.
1615         (expand_inline_function): Call find_loop_tree_blocks to map block
1616         notes to blocks when in whole-function mode.  Use retrofit_block
1617         to insert new BLOCKs for the inlined function, rather than
1618         insert_block.
1619         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
1620         * Makefile.in (integrate.o): Depend on loop.h.
1621
1622 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
1623
1624         * tree.h (warn_about_unused_variables): Declare.
1625         * stmt.c (warn_about_unused_variables): New function, split out
1626         from ...
1627         (expand_end_bindings): Here.
1628
1629 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
1630
1631         * stmt.c (preserve_subexpressions_p): Don't crash when
1632         current_function->stmt is unset.
1633
1634 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
1635
1636         * stmt.c (expand_start_bindings): Allow callers to pass a flag
1637         indicating that no NOTE_INSN_BLOCK_BEG note is required.
1638         (expand_start_target_temps): Use it.
1639         * except.c (expand_eh_region_start_for_decl): Likewise.
1640         * expr.c (expand_expr): Likewise.
1641
1642 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1643
1644         * fold-const.c (operand_equal_p): Pay attention to side effects.
1645
1646 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
1647
1648         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
1649         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
1650
1651         * tlink.c (scan_linker_output): Look for keywords before accepting
1652         a mangled name in quotes.
1653
1654 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
1655
1656         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
1657         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
1658
1659 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
1660
1661         * alpha.md: Revert Thu Nov 26 change that came in through the
1662         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
1663         Avoid earlyclobber when possible.
1664
1665 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1666
1667         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
1668
1669         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
1670         Define HAVE_ON_EXIT.
1671
1672 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1673
1674         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
1675         CTYPE_CONV in all ctype macros.
1676
1677         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
1678         from system.h.
1679
1680         * cexp.y (initialize_random_junk): Likewise.
1681
1682         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
1683
1684         * i370.c (handle_pragma): Likewise.
1685
1686         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
1687
1688         * v850.c (override_options): Likewise.
1689
1690         * doprint.c (_doprnt): Likewise.
1691
1692         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
1693         Likewise.
1694
1695         * fixinc/server.c (load_data): Likewise.
1696
1697         * fold-const.c (real_hex_to_f): Likewise.
1698
1699         * genattr.c (write_upcase, gen_attr): Likewise.
1700
1701         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
1702         write_upcase): Likewise.
1703
1704         * genemit.c (print_code): Likewise.
1705
1706         * genopinit.c (gen_insn): Likewise.
1707
1708         * genpeep.c (print_code): Likewise.
1709
1710         * genrecog.c (print_code): Likewise.
1711
1712         * optabs.c (init_libfuncs): Likewise.
1713
1714 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
1715
1716         * haifa-sched.c (sched_analyze): Keep the list of notes organized
1717         in pairs.
1718         (reemit_notes): Likewise.
1719
1720 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
1721
1722         * ggc.h (ggc_root): Move to ggc-common.c.
1723         (roots): Remove.
1724         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
1725         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
1726         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
1727         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
1728         * ggc-common.c (ggc_root): Move from ggc.h.
1729         (roots): Declare, static.
1730         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
1731         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
1732         null or check/set mark bit.
1733         (ggc_mark_roots): New.
1734         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
1735
1736 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
1737
1738         * m32r.c: Include toplev.h.
1739         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
1740         (gen_compare): Rename swap_p to must_swap to match uses.
1741         Add default abort case.
1742         (m32r_output_function_epilogue): Remove unused variables.
1743         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
1744         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
1745         define to empty parameter list.  Update all uses.
1746         (predicate decls): Use enum machine_mode not int.
1747         * m32r.md (movsi): Call abort, not fatal_insn.
1748         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
1749
1750 1999-09-14  Andrew Haley  <aph@cygnus.com>
1751
1752         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
1753         use $0 instead of 0.
1754
1755 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1756
1757         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
1758         computation out of loop over hard regs.
1759
1760 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
1761
1762         * function.c (identify_blocks): Don't shadow a variable in an 
1763         outer scope.
1764         * integrate.c (integrate_decl_tree): Don't use pushlevel,
1765         pushdecl, or poplevel to build up the new BLOCK tree.
1766         (expand_inline_function): Likewise.
1767         (integrate_parm_decls): Likewise.
1768
1769 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
1770
1771         * c-typeck.c (qualify_type): Merge qualifiers from both types.
1772
1773 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
1774
1775         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
1776         * invoke.texi: Document this change.
1777
1778 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
1779
1780         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
1781         Free the struct.
1782         (mark_emit_status): Renamed from mark_emit_state.
1783         * except.c (mark_eh_status): Renamed from mark_eh_state.
1784         Check not null before marking.
1785         (free_eh_status): New.
1786         * expr.c (mark_expr_status, free_expr_status): New.
1787         * function.c (free_machine_status): New.
1788         (free_after_parsing): New.
1789         (free_after_compilation): Move bits to free_after_parsing; call
1790         free_eh_status, free_expr_status; zero the marked members of the
1791         function state.
1792         (prepare_function_start): No can_garbage_collect. 
1793         Call init_eh_for_function.
1794         (expand_dummy_function_end): Free up current_function state.
1795         (mark_function_status): Renamed from mark_function_state.
1796         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
1797         * function.h (struct function): No can_garbage_collect.
1798         (free_machine_status, free_after_parsing): Declare.
1799         (free_eh_status, free_expr_status): Declare.
1800         * ggc.h (mark_expr_status): Declare.
1801         * stmt.c (free_stmt_status): Free the struct.
1802         (mark_stmt_status): Renamed from mark_stmt_state.
1803         (init_stmt): Don't call init_eh.
1804         (init_stmt_for_function): Don't call init_eh_for_function.
1805         * toplev.c (compile_file): Call init_eh.
1806         (rest_of_compilation): Free basic block info before ggc_collect.
1807         Call free_after_parsing; conditionally call free_after_compilation.
1808         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
1809         Check not null before marking.
1810         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
1811
1812 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
1813
1814         * c-lex.c (yylex): Initialize warn.
1815
1816 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
1817
1818         * pa.c (emit_move_sequence): Properly set the mode of the scratch
1819         register when performing secondary reloads for the SAR register.
1820
1821 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
1822
1823         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
1824         (NOTE_BLOCK): New macro.
1825         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
1826         * function.h (identify_blocks): Change prototype.
1827         * function.c (identify_blocks): Simplify.
1828         (reorder_blocks): Likewise.
1829         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
1830         NOTE_INSN_BLOCK_{BEG,END}.
1831         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
1832         the list of saved notes if the note isn't a
1833         NOTE_INSN_BLOCK_{BEG,END}.
1834         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
1835         NOTE_BLOCK_NUMBER.
1836         (reemit_notes): Adjust recreation of notes to reflect new saved
1837         note structure.
1838         * print-rtl.c (print_rtx): Print the address of the BLOCK when
1839         printing a block note.
1840         * stmt.c (block_vector): Remove.
1841         (find_loop_tree_blocks): Simplify.
1842         (unroll_block_trees): Likewise.
1843         * tree.h (reorder_block): Change prototype.
1844         
1845 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
1846
1847         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
1848         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
1849         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
1850         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
1851         (atexit, exit): Simplify.
1852         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
1853         * config/lots: Remove defns of HAVE_ATEXIT.
1854
1855 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
1856
1857         * calls.c (precompute_arguments): Fix typo in comment.
1858         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
1859         TARGET_EXPR.
1860
1861 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
1862
1863         * dsp16xx.c (override_options): Fix typos in GC root registration.
1864
1865 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
1866
1867         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
1868         from config/svr4.h.
1869         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
1870         (FUNCTION_PROFILER): Redefine appropriately for Linux.
1871         (CC1_SPEC): Likewise.
1872
1873 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1874
1875         * genattr.c (main): Add extern prototype.  Call return, not exit.
1876         * genattrtab.c (main): Likewise.
1877         * gencheck.c (main): Likewise.
1878         * gencodes.c (main): Likewise.
1879         * genconfig.c (main): Likewise.
1880         * genemit.c (main): Likewise.
1881         * genextract.c (main): Likewise.
1882         * genflags.c (main): Likewise.
1883         * gengenrtl.c (main): Likewise.
1884         * genopinit.c (main): Likewise.
1885         * genoutput.c (main): Likewise.
1886         * genpeep.c (main): Likewise.
1887         * genrecog.c (main): Likewise.
1888         
1889         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
1890         * genattrtab.c (get_insn_name): Likewise.
1891         * gencodes.c (get_insn_name): Likewise.
1892         * genconfig.c (get_insn_name): Likewise.
1893         * genemit.c (get_insn_name): Likewise.
1894         * genextract.c (get_insn_name): Likewise.
1895         * genflags.c (get_insn_name): Likewise.
1896         * genopinit.c (get_insn_name): Likewise.
1897         * genpeep.c (get_insn_name): Likewise.
1898         
1899         * gencheck.c (usage): Add static prototype.
1900         * genextract.c (print_path): Constify a char*.
1901         * genopinit.c (optabs): Likewise.
1902         * genoutput.c (operand_data, data, output_predicate_decls,
1903         compare_operands): Likewise.
1904         * genrecog.c (write_tree): Add default case in switch.
1905
1906 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1907
1908         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
1909
1910         * print-rtl.c (get_insn_name): Remove prototype.
1911
1912         * toplev.h (progname): Declare const.
1913
1914         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
1915         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
1916         dump_sched_info, dump_local_alloc, regset_release_memory,
1917         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
1918         error_with_file_and_line, error_with_decl, error_for_asm, error,
1919         fatal, warning_with_file_and_line, warning_with_decl, warning,
1920         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
1921         Remove redundant prototypes.
1922
1923         (notice, check_lang_option, report_file_and_line, vnotice,
1924         mark_file_stack): Add static prototype.
1925         (set_fatal_function): Add prototype.
1926         (vnotice, report_file_and_line, set_fatal_function,
1927         check_lang_option): Constify a char*.
1928         (main): Prototype.  Call return, not exit.
1929
1930 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1931
1932         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
1933
1934         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
1935
1936         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
1937
1938         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
1939
1940 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1941
1942         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
1943         behave as if it's zero in all cases.
1944         (expand_function_start): Adjust call to assign_parms.
1945         * tree.h (assign_parms): Adjust prototype.
1946         * objc/objc-act.c (hack_method_prototype): Adjust call to
1947         assign_parms.
1948
1949 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
1950
1951         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
1952         arg_pointer_rtx fixed if the argument pointer register is
1953         not fixed.
1954         (NONZERO_BASE_PLUS_P): Likewise.
1955
1956 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
1957
1958         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
1959         match_insn2 to match_insn.
1960         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
1961
1962 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
1963
1964         * Makefile.in (USER_H): Remove va-foo.h.
1965
1966         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
1967         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
1968         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
1969         va-spur.h,va-v850.h}: Remove.
1970
1971 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
1972
1973         * sparc/sparc.md (eligible_for_return_delay): New attribute.
1974         (in_return_delay): Use it instead of match_insn.
1975
1976 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1977
1978         * config/alpha/va_list.h (va-alpha.h): Do not include.
1979         (__gnuc_va_list): Typedef as in varargs.h.
1980
1981 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
1982
1983         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
1984         DECL_LIVE_RANGE_RTL.
1985
1986 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
1987
1988         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
1989         not NOTE_BLOCK_NUMBER.
1990         (expand_eh_region_end): Likewise.
1991         (find_exception_handler_labels): Likewise.
1992         (scan_region): Likewise.
1993         (exception_optimize): Likewise.
1994         (update_rethrow_references): Likewise.
1995         (set_insn_eh_region): Likewise.
1996         * final.c (final_scan_insn): Likewise.
1997         * flow.c (make_edges): Likewise.
1998         * integrate.c (expand_inline_function): Likewise.
1999         * print-rtl.c (print_rtx): Likewise.
2000
2001 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
2002
2003         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
2004         terms of builtin functions and types.
2005
2006         * mips.c (mips_build_va_list): New.
2007         (mips_va_start, mips_va_arg): New.
2008         * mips.h (BUILD_VA_LIST_TYPE): New.
2009         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
2010
2011         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
2012         (sh_build_va_list, sh_va_start, sh_va_arg): New.
2013         * sh.h (BUILD_VA_LIST_TYPE): New.
2014         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
2015
2016 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
2017
2018         * recog.h (struct recog_data): Make dup_num, operand_address_p,
2019         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
2020         (struct insn_data): Likewise with n_operands, n_dups, 
2021         n_alternatives, output_format.
2022         * regclass.c (scan_one_insn): Cast n_operands to int before
2023         arithmetic inside comparison.
2024
2025 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
2026
2027         * toplev.c (compile_function): Unconditionally emit nop.
2028
2029 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2030
2031         * haifa-sched.c (actual_hazard): Move declaration of variable
2032         `this_cost' into the scope where it is used.
2033
2034 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2035
2036         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
2037         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
2038         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
2039
2040         * genrecog.c (make_insn_sequence): Call memset, not bzero.
2041
2042         * jump.c (find_insert_position): Don't declare or define unless
2043         !HAVE_conditional_arithmetic.
2044         (returnjump_p_1, delete_prior_computation): Add static prototypes.
2045
2046         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
2047         
2048         * recog.c (offsettable_address_p): Prototype function pointer.
2049         (preprocess_constraints): Call memset, not bzero.
2050         
2051         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
2052         (gcc_obstack_init): Don't declare.
2053         (fix_sizetype): Add static prototype.
2054         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
2055         (tree_cons): Call memset, not bzero.
2056
2057         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
2058         definition in macro ASM_WEAKEN_LABEL.
2059         (mark_const_hash_entry): Add static prototype.
2060
2061 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2062
2063         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
2064
2065         * unroll.c (find_common_reg_term, subtract_reg_term,
2066         loop_find_equiv_value): Add static prototypes.
2067         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
2068         (copy_loop_body): Remove unreachable break statement.
2069         
2070         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
2071
2072         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
2073         
2074 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2075
2076         Undo some changes from the gcc2 merge:
2077         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
2078         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
2079         pointers.
2080
2081         Undo this change:
2082         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
2083         * emit-rtl.c (gen_lowpart_common): Disable optimization of
2084         initialized float-int union if the value is a NaN.
2085
2086 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2087
2088         * gthr-win32.h: New file.
2089
2090         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
2091         shared as a valid attribute.
2092         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
2093         * extend.texi: Document `shared' variable attribute.
2094
2095 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
2096
2097         * configure.in: Handle --enable-threads on FreeBSD.
2098         * configure: Rebuit.
2099
2100 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
2101
2102         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
2103         thread support.
2104         * configure: Rebuilt.
2105
2106 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
2107                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
2108                           Rosimildo DaSilva <rdasilva@connecttel.com>
2109
2110         * configure.in (m68k-*-rtemscoff*): Added.
2111         * configure.in (mips64orion-*-rtems*): Converted to ELF.
2112         * configure.in (sparc-*-rtemsaout*): Added as alias for old
2113         sparc-rtems configuration.
2114         * configure.in (sparc-*-rtemself*): Added.
2115         * configure.in (sparc-*-rtems*): Now ELF not a.out.
2116         * config/i386/rtems.h: Added comment.
2117         * config/sparc/rtemself.h: New file.
2118
2119         * configure.in (m68k-rtemself): Added.
2120         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
2121         and DWARF_DEBUGGING_INFO.
2122         * config/m68k/crti.s: New file.
2123         * config/m68k/crtn.s: New file.
2124         * config/m68k/t-crtstuff: New file.
2125         * config/m68k/rtemself.h: New file.
2126
2127         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
2128         global ctor/dtor and C++ exception handling.
2129         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
2130         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
2131         ENDFILE_SPEC.
2132         * config/i386/t-rtems-i386: New File.
2133
2134 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
2135
2136         * stmt.c (expand_end_case): Return right away if the case stack is
2137         empty.
2138
2139 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
2140
2141         * Makefile.in (version.c): Remove rule incorrectly brought in from
2142         the gcc2 merge.
2143
2144 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
2145
2146         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
2147         * msdos/top.sed:  Take into account a prepended $(SHELL) to
2148         move-if-change.
2149         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
2150
2151         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
2152
2153 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2154
2155         * regmove.c (fixup_match_1): Don't change an unchanging register.
2156         (stable_but_for_p): Renamed to:
2157         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
2158         Changed all callers.
2159
2160 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
2161
2162         * loop.c (strength_reduce): Don't call reg_used_between_p if the
2163         insn from BL2 is after the insn from BL.
2164
2165 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
2166
2167         * recog.h (INSN_OUTPUT_FORMAT_*): New.
2168         (struct insn_data): Merge `template' and `outfun' into `output'.
2169         Add `output_format'.
2170         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
2171         (struct data): Remove `outfun'; add `output_format'.
2172         (name_for_index): Remove declaration.
2173         (output_insn_data): Handle output formats.
2174         (process_template): Emit the bare array for @.
2175         (gen_expand, gen_split): Set output_format to NONE.
2176         * output.h (get_insn_template): Declare.
2177         * final.c (get_insn_template): New.
2178         (final_scan_insn): Use it.
2179         * toplev.c (compile_file): Likewise.
2180
2181         * c4x/c4x.c (c4x_process_after_reload): Likewise.
2182         * i860/i860.c (output_delayed_branch): Likewise.
2183         (output_delay_insn): Likewise.
2184
2185 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2186
2187         * rtl.c (obstack_alloc_rtx): Removed.
2188
2189 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
2190
2191         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
2192
2193 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
2194
2195         * i386.c (call_insn_operand): Reject const_int.
2196         (expander_call_insn_operand): Use call_insn_operand.
2197
2198 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2199
2200         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
2201
2202 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
2203
2204         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
2205         Use DImode operation.
2206
2207 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
2208
2209         * gcc.c: Include sys/resource.h.
2210         (report_times): New flag.
2211         (execute):  If report_times is set, calculate and report the
2212         CPU time consumed by each subprocess.
2213
2214         (rus, prus): New globals.
2215         (option_map): Add --time.
2216         (display_help): Document -time.
2217         (process_command): Set report_times if -time is given.
2218         Turn off -pipe if -time is given.
2219
2220         * invoke.texi: Document new option -time.
2221
2222         * configure.in: Check for getrusage.  Check if we have to
2223         prototype getrusage.
2224         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
2225         * configure: Regenerate.
2226         * config.in: Regenerate.
2227
2228 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
2229
2230         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
2231         fields.
2232
2233 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
2234
2235         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
2236         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
2237         (nan): Return _thenan_sf or _thenan_df as appropriate.
2238         (L_thenan_sf): Define _thenan_sf.
2239         (L_thenan_df): Define _thenan_df.
2240
2241         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
2242         (DPBIT_FUNCS): Add _thenan_df.
2243
2244 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
2245
2246         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
2247         TYPE_SIZE_UNIT.
2248
2249 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2250
2251         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
2252
2253         * gcc.h: New file.
2254         (lang_specific_driver): Don't take a function pointer parameter.
2255         All callers changed.
2256
2257         * gcc.c: Include gcc.h.
2258         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
2259         lang_specific_extra_outfiles, fatal): Don't declare.
2260         (multilib_defaults_raw): Constify.
2261         (read_specs): Call memset, rather than bzero.
2262         (main): Call return, not exit.
2263         (lookup_compiler): Call memcpy, not bcopy.
2264         (fatal): Make extern.
2265
2266         * cppspec.c: Include gcc.h.
2267         (lang_specific_driver): Initialize variable `quote'.  Constify a
2268         char*.  All calls to the function pointer parameter now
2269         explicitly call `fatal'.
2270
2271         * gccspec.c (lang_specific_driver): Include gcc.h.
2272
2273 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
2274
2275         * arm.c (note_invalid_constants): Use recog_data.operand_type
2276         for recog_op_type.
2277
2278 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2279
2280         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
2281         Declare.
2282
2283         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
2284         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
2285         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
2286         reload_secondary_in_reload, reload_secondary_out_reload,
2287         reload_secondary_in_icode, reload_secondary_out_icode,
2288         reload_reg_rtx, reload_when_needed): Delete declarations.
2289         (struct reload): New structure.
2290         (rld): Declare new array.
2291         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
2292         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
2293         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
2294         reload_secondary_in_reload, reload_secondary_out_reload,
2295         reload_secondary_in_icode, reload_secondary_out_icode,
2296         reload_reg_rtx, reload_when_needed): Delete definitions.
2297         (rld): New array.
2298         (whole file): Replace uses of the deleted arrays with uses of rld.
2299         * reload1.c (whole file): Replace uses of the deleted arrays with
2300         uses of rld.
2301         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
2302         explicit loops, not with bcopy.
2303
2304 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
2305
2306         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
2307         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
2308         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
2309         insn_name): Delete and consolidate into new structures.
2310         (insn_operand_predicate_fn): New.
2311         (insn_output_fn): New.
2312         (insn_gen_fn): New.
2313         (struct insn_operand_data): New.
2314         (struct insn_data): New.
2315         (insn_data): New.
2316         (OUT_FCN): Update for insn_data change.
2317         * builtins.c (expand_builtin_strlen): Likewise.
2318         (expand_builtin_memcmp): Likewise.
2319         * combine.c (make_extraction, simplify_comparison): Likewise.
2320         * cse.c (canon_reg, cse_insn): Likewise.
2321         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
2322         * expmed.c (store_bit_field, extract_bit_field): Likewise.
2323         (emit_store_flag): Likewise.
2324         * expr.c (convert_move, emit_block_move): Likewise.
2325         (clear_storage, emit_push_insn, expand_increment): Likewise.
2326         (do_store_flag): Likewise.
2327         * expr.h (GEN_FCN): Likewise.
2328         (insn_gen_function): Die.
2329         * final.c (final_scan_insn): Update for insn_data change.
2330         (output_asm_name): Likewise.
2331         * function.c (fixup_var_refs_1): Likewise.
2332         * loop.c (check_dbra_loop): Likewise.
2333         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
2334         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
2335         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
2336         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
2337         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
2338         * regmove.c (gen_add3_insn): Likewise.
2339         * reload.c (push_secondary_reload, combine_reloads): Likewise.
2340         (find_reloads, find_reloads_address_1): Likewise.
2341         (debug_reload_to_stream): Likewise.
2342         * reload1.c (emit_reload_insns, gen_reload): Likewise.
2343         * stmt.c (expand_end_case): Likewise.
2344         * toplev.c (compile_file): Likewise.
2345
2346         * c4x/c4x.c (c4x_process_after_reload): Likewise.
2347         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
2348
2349         * print-rtl.c (insn_name_ptr): Remove declaration.
2350         (get_insn_name): Declare.
2351         (print_rtx): Use it.
2352         * genoutput.c (insn_name_ptr): Remove.
2353         (next_operand_number): New.
2354         (struct operand_data): New.
2355         (null_operand, odata, odata_end): New.
2356         (struct data): Use struct operand_data.
2357         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
2358         (get_insn_name): Renamed from name_for_index.
2359         (output_prologue): Define NO_MD_PROTOTYPES.
2360         (output_predicate_decls): Break out from output_epilogue.
2361         Iterate over the operands list.
2362         (output_operand_data): Break out from output_epilogue.  Emit
2363         just the operands list.
2364         (output_insn_data): Break out from output_epilogue.  Emit just
2365         the insn data.
2366         (output_epilogue): Remove.
2367         (output_get_insn_name): New.
2368         (constraints, op_n_alternatives, predicates, address_p): Die.
2369         (modes, strict_low, seen): Die.
2370         (scan_operands): Take new param `d' instead of writing to 
2371         seven global variables.
2372         (compare_operands): New.
2373         (place_operands): New.
2374         (validate_insn_alternatives): Update for struct data change.
2375         (gen_insn): Don't zero or copy 7 global arrays.  Update for
2376         scan_operands; call place_operands.
2377         (gen_peephole, gen_expand, gen_split): Likewise.
2378         (main): Update for new output routines.
2379
2380         * genattr.c (insn_name_ptr): Remove.
2381         (get_insn_name): New function.
2382         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
2383         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
2384         * genrecog.c: Likewise.
2385
2386         * alpha.md (adddi3): Make `pattern' array static.
2387
2388 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2389
2390         * config/c4x/c4x.h (c4x_rpts_cycles_string,
2391         c4x_cpu_version_string): Constify char *.
2392         * config/c4x/c4x.c (c4x_rpts_cycles_string,
2393         c4x_cpu_version_string): Likewise.
2394
2395 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
2396
2397         * tree.c (save_tree_status): Revert 10 Sep change.
2398         (restore_tree_status): Likewise.  Call obstack_free with NULL 
2399         before freeing the obstack proper.
2400
2401 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
2402
2403         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
2404
2405         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
2406         surrounding context.
2407
2408 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
2409
2410         * tree.c (type_hash_canon): Put all types in the hash-table, when
2411         GC'ing.
2412
2413 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
2414
2415         * recog.h (struct recog_data, recog_data): New.
2416         (recog_foo variables): Kill.
2417         * recog.c (recog_operand, recog_operand_loc): Kill.
2418         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
2419         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
2420         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
2421         (recog_data): Define.
2422         (extract_insn): Update all recog_foo references to use recog_data.
2423         (preprocess_constraints, constrain_operands): Likewise.
2424         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
2425         * genattrtab.c (main): Likewise.
2426         * genextract.c (main): Likewise.
2427         * genoutput.c: Likewise.
2428         * genrecog.c (write_subroutine, main): Likewise.
2429         * local-alloc.c (block_alloc): Likewise.
2430         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
2431         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
2432         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
2433         * reload.c (find_reloads, find_reloads_toplev): Likewise.
2434         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
2435         (reload_cse_simplify_operands): Likewise.
2436
2437         * arc/arc.c (arc_final_prescan_insn): Likewise.
2438         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
2439         * h8300/h8300.c (notice_update_cc): Likewise.
2440         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
2441         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
2442         * mn10200/mn10200.c (notice_update_cc): Likewise.
2443         * mn10300/mn10300.c (notice_update_cc): Likewise.
2444         * romp/romp.c (update_cc): Likewise.
2445         * sparc/sparc.c (check_pic): Likewise.
2446         * v850/v850.c (notice_update_cc): Likewise.
2447
2448         * genemit.c (main): Don't declare recog_operand.
2449
2450 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
2451
2452         * ggc.h (rtvec_def): Forward declare.
2453         (tree_node): Likewise.
2454         (ggc_root): Define.
2455         (roots): Declare.
2456         (ggc_set_mark_rtx): Add prototype.
2457         (ggc_set_mark_rtvec): Likewise.
2458         (ggc_set_mark_tree): Likewise.
2459         * ggc-simple.c (ggc_root): Don't define.
2460         (roots): Don't declare.
2461         (ggc_mark_rtx): Remove.
2462         (ggc_mark_rtvec): Likewise.
2463         (ggc_mark_tree): Likewise.
2464         (ggc_mark_varray): Likewise.
2465         (ggc_mark_tree_hash_table_entry): Likewise.
2466         (ggc_mark_tree_hash_table): Likewise.
2467         (ggc_set_mart_rtx): New function.
2468         (ggc_set_mark_rtvec): Likewise.
2469         (ggc_set_mark_tree): Likewise.
2470         (ggc_add_root): Remove.
2471         (ggc_add_rtx_root): Likewise.
2472         (ggc_remove_tree_root): Likewise.
2473         (ggc_add_string_root): Likewise.
2474         (ggc_add_tree_varray_root): Likewise.
2475         (ggc_add_tree_hash_table_root): Likewise.
2476         (ggc_del_root): Likewise.
2477         (ggc_mark_rtx_ptr): Likewise.
2478         (ggc_mark_tree_ptr): Likewise.
2479         (ggc_mark_string_ptr): Likewise.
2480         (ggc_mark_tree_varray_ptr): Likewise.
2481         (ggc_mark_tree_hash_table_ptr): Likewise.
2482         * ggc-common.c: New file.
2483         * Makefile.in (OBJS): Add ggc-common.o.
2484         (ggc-common.o): List dependencies.
2485
2486 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
2487
2488         * cppalloc.c (xstrdup): Use memcpy.
2489         * cpperror.c (cpp_print_containing_files): Don't use
2490         cpp_notice.
2491         * cpplib.c (conditional_skip): Set temp->lineno.
2492         (do_endif): Make error message less obscure.
2493         (if_directive_name): New function.
2494         (cpp_get_token [case EOF]): Unwind the if stack and generate
2495         error messages for each unterminated conditional in this file.
2496         (parse_string):  Do not behave differently if -traditional.
2497
2498 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
2499
2500         * builtins.c (expand_builtin_va_arg): Cope with an array-type
2501         va_list decomposing to pointer-type.
2502         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
2503         (rs6000_va_arg): Likewise.
2504
2505 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
2506
2507         * except.c (start_dynamic_handler): Compute size using
2508         STACK_SAVEAREA_MODE.
2509
2510 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2511
2512         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
2513         include directory headers.  Don't define strrchr.  Don't provide
2514         my_* replacement functions.  Prefer PTR over `pointer_type'.
2515         Don't prototype system functions.  Don't redefine getopt.
2516
2517         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
2518         safe_read, safe_write, save_pointers, restore_pointers,
2519         is_id_char, in_system_include_dir, directory_specified_p,
2520         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
2521         find_corresponding_lparen, referenced_file_is_newer,
2522         save_def_or_dec, munge_compile_params, gen_aux_info_file,
2523         process_aux_info_file, identify_lineno, check_source,
2524         seek_to_line, forward_to_next_token_char, output_bytes,
2525         output_string, output_up_to, other_variable_style_function,
2526         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
2527         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
2528         find_static_definition, connect_defs_and_decs, add_local_decl,
2529         add_global_decls, needs_to_be_converted, visit_each_hash_node,
2530         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
2531         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
2532         scan_for_missed_items, edit_file, string_list_cons): Add static
2533         prototypes.
2534         (standard_exec_prefix, target_machine, target_version,
2535         default_syscalls_dir, string_list, string_list_cons, find_file,
2536         do_cleaning): Constify a char*.
2537         (safe_read, safe_write): Use PTR, not a char*.
2538         (is_id_char): Take an int, not a char.
2539         (main): Add prototype.  Call return, not exit.
2540
2541 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
2542
2543         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
2544         when comparing types.
2545
2546 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
2547
2548         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
2549         (strength_reduce): Release the varrays from the no-bivs early exit.
2550
2551         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
2552         the loop over the registers.
2553
2554         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
2555         for a new obstack.
2556         (restore_tree_status): Check that instead when freeing the obstack.
2557
2558 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
2559
2560         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
2561         as pointers.
2562
2563 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2564
2565         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
2566         operand size modifiers.
2567
2568 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2569
2570         * c-common.c (c_common_nodes_and_builtins): Don't build
2571         va_list_type_node.
2572         * c-common.h (enum c_tree_index and related accesor macros): Remove
2573         everything now declared in tree.h.
2574         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
2575         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
2576         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
2577         (error_mark_node, void_type_node, char_type_node, integer_type_node,
2578         unsigned_type_node, ptr_type_node, va_list_type_node,
2579         integer_zero_node, null_pointer_node, integer_one_node): Delete.
2580         (init_decl_processing): Call build_common_tree_nodes and
2581         build_common_tree_nodes_2 instead of building their nodes here.
2582         Don't add roots for these nodes.
2583         * stor-layout.c (size_zero_node, size_one_node): Delete.
2584         (set_sizetype): Make a new node for bitsizetype each time.
2585         * tree.c (global_trees): New variable.
2586         (init_obstacks): Add a gc root for it.
2587         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
2588         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
2589         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
2590         (build_common_tree_nodes): New function.
2591         (fix_sizetype): New function.
2592         (build_common_tree_nodes_2): New function.
2593         * tree.h (enum tree_index): New.
2594         (global_trees): Declare.
2595         Add accessor macros for all nodes now moved to global_trees.
2596         Delete their declarations.
2597
2598 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
2599
2600         * c-decl.c (finish_function): When processing a nested function,
2601         push and pop GC context around rest_of_compilation.
2602
2603 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
2604
2605         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
2606         Default ix86_arch to PROCESSOR_I386.
2607         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
2608         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
2609         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
2610         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
2611         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
2612         (EXTRA_SPECS): Remove deleted specs.
2613
2614 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
2615
2616         * function.c (assign_stack_local_1): Allocate from
2617         function->x_frame_offset, not frame_offset.
2618
2619 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
2620
2621         * ggc.h (lang_cleanup_tree): Remove.
2622         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
2623         * ggc-callbacks.c (lang_cleanup_tree): Remove.
2624
2625         * c-decl.c (finish_struct): Use ggc_alloc to allocate
2626         TYPE_LANG_SPECIFIC when garbage collecting.
2627         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
2628         (lang_cleanup_tree): Remove.
2629
2630 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
2631
2632         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
2633         * crtstuff.c: Not here.
2634         * dwarf2out.c: Or here.
2635         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
2636         info.
2637
2638 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
2639
2640         * function.h (free_after_compilation): Remove decl parameter.
2641         (free_varasm_status0: Likewise.
2642         (free_emit_status): Likewise.
2643         (free_stmt_status): Likewise.
2644         (free_after_compilation): Likewise.
2645         (init_lang_status): New variable.
2646         (free_lang_status): Likewise.
2647         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
2648         * function.c (init_lang_status): New variable.
2649         (free_lang_status): Likewise.
2650         (push_function_context_to): Don't set function::decl here.
2651         (free_after_copmilation): Make decl parameter implicit.  Call
2652         free_lang_status if defined.
2653         (prepare_function_start): Call init_lang_status if defined.
2654         (init_function_start): Set function::decl here.
2655         * profile.c (output_func_start_profiler): Don't call pushdecl
2656         until we've actually started the function.
2657         * stmt.c (free_stmt_status): Make decl parameter implicit.
2658         * toplev.c (rest_of_compilation): Don't pass decl to
2659         free_after_compilation.
2660         * varasm.c (free_varasm_status): Likewise.
2661
2662 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2663
2664         * except.c (call_get_eh_context): Add root when allocating static
2665         tree variable.
2666
2667 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
2668
2669         * arm.c: Include "ggc.h".
2670         (arm_add_gc_roots): New function.
2671         (arm_override_options): Call it.
2672         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
2673
2674         * arm.md (define_asm_attributes): Add a pool_range attribute.
2675
2676 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
2677
2678         * extend.texi (Volatiles): New node.
2679
2680 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
2681
2682         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
2683         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
2684         (struct ggc_any): Replace `mark' with `magic_mark'.
2685         (ggc_alloc_string): Use memcpy, not bcopy.
2686         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
2687         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
2688         (ggc_free_any): New.
2689         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
2690         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
2691         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
2692         Use IS_MARKED. Use ggc_free_any.
2693
2694 1999-09-09  Scott Bambrough <scottb@netwinder.org>
2695
2696         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
2697
2698 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
2699
2700         * toplev.c (main): Always init_ggc.
2701
2702 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
2703
2704         * except.c (find_all_handler_type_matches): Free the list if
2705         we found no matches.
2706
2707         * combine.c (SUBST): Break out to a real function do_SUBST.
2708         (SUBST_INT): Likewise.
2709         * gcse.c (free_pre_mem): Free `temp_bitmap'.
2710         (pre_insert): Free `inserted'.
2711         * loop.c (basic_induction_var): Always set `location'.
2712
2713         * function.c (expand_function_end): Add initial_trampoline as a root.
2714         * rtl.h (init_varasm_once): Declare.
2715         * toplev.c (compile_file): Call it.
2716         * ggc-simple.c (ggc_mark_string_ptr): New.
2717         (ggc_add_string_root): New.
2718         (ggc_collect): Disable collection avoidance temporarily.
2719         * ggc.h (ggc_add_string_root): Declare.
2720         * except.c (create_rethrow_ref): Use ggc_alloc_string.
2721         * optabs.c (init_libfuncs): Likewise.
2722         * varasm.c (named_section): Use ggc_alloc_string.
2723         (make_function_rtl): Likewise.
2724         (make_decl_rtl): Likewise.
2725         (assemble_static_space): Likewise.
2726         (assemble_trampoline_template): Likewise.
2727         (output_constant_def): Likewise.
2728         (force_const_mem): Likewise.
2729         (mark_const_hash_entry): New.
2730         (mark_pool_sym_hash_table): New.
2731         (mark_varasm_state): Use it.
2732         (init_varasm_once): New.
2733
2734         * expr.h (init_one_libfunc): Declare.
2735         * optabs.c (init_one_libfunc): New.
2736         (init_optabs): Use it.
2737         * config/gofast.h: Likewise.
2738         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
2739         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
2740
2741 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
2742
2743         * Makefile.in (cppexp.o): Depend on cpphash.h.
2744         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
2745         Include cpphash.h.
2746         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
2747         * cpplib.c (do_define): Generalise to handle poisoned definitions,
2748         redefining poisoned identifiers, etc.
2749         (do_undef): Don't allow poisoned identifiers to be undefined.
2750         (do_pragma): Add #pragma poison.
2751         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
2752
2753         * cccp.c: Add T_POISON node type.
2754         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
2755         poisoned xxx.
2756         (do_define): Generalise to handle poisoned definitions,
2757         redefining poisoned identifiers, etc.
2758         (do_undef): Don't allow poisoned identifiers to be undefined.
2759         (do_pragma): Add #pragma poison.
2760         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
2761
2762         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
2763         * c-pragma.h: Add ps_poison state.  We now always have generic
2764         pragmas.
2765
2766 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
2767
2768         * ggc.h (ggc_alloc): New function.
2769         (ggc_mark): Likewise.
2770         * ggc-simple.c (ggc_any): New structure.
2771         (ggc_status): Add anys.
2772         (n_anys_collected): New variable.
2773         (ggc_alloc): Define.
2774         (ggc_mark): Likewise.
2775         (ggc_collect): Collect the anys.
2776
2777 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2778
2779         * c-decl.c (mark_binding_level): Make static to match prototype.
2780
2781 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
2782
2783         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
2784
2785 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
2786
2787         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
2788         will use into account.  Expand the max width to 5.
2789         * rtl.c: Likewise.
2790
2791 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
2792
2793         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
2794         for the rtx length.
2795
2796 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
2797
2798         * alpha.md (call value patterns): Remove the result predicates.
2799
2800 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
2801
2802         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
2803         last change.
2804
2805 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2806
2807         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
2808         changed from extern char *, to extern PTR.  Also fix typo in
2809         NEED_DECLARATION_REALLOC test.
2810
2811         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
2812
2813 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2814
2815         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
2816         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
2817         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
2818         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
2819
2820         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
2821
2822         * cccp.c (pcfinclude): Likewise.
2823
2824         * global.c (allocno_compare): Likewise.
2825
2826         * haifa-sched.c (rank_for_schedule): Likewise.
2827
2828         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
2829
2830         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
2831
2832         * stupid.c (stupid_reg_compare): Likewise.
2833
2834         * tree.c (_obstack_allocated_p): Likewise.
2835
2836         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
2837
2838 1999-09-08  Bruce Korb  autogen@linuxbox.com
2839
2840         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
2841         why "gperf -F" fails.
2842         * gcc/cp/Makefile.in: ditto
2843         * gcc/Makefile.in: ditto
2844         * gcc/java/Makefile.in: ditto
2845
2846 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
2847
2848         * lists.c: Include ggc.h.
2849         (zap_lists): New.
2850         (init_EXPR_INSN_LIST_cache): Install it.
2851
2852         * ggc-simple.c (init_ggc): Absorb the old init.
2853         (ggc_push_context): Use xcalloc.
2854         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
2855         (ggc_collect): Add [rvts] tags to the collection stats.
2856
2857 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
2858
2859         * cccp.c (main): Fix handling of -include and -imacros options.
2860
2861 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
2862
2863         * cpplib.c (cpp_push_buffer): Fix order of arguments.
2864
2865 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
2866
2867         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
2868         genrtl.c.
2869
2870 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
2871
2872         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
2873         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
2874         and SET_DEST. Update comment.
2875
2876 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2877
2878         * config/c4x/c4x.c: Include ggc.h.
2879         (c4x_add_gc_roots): New function.
2880         (c4x_override_options): Call c4x_add_gc_roots.
2881
2882 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
2883
2884         * defaults.h (TARGET_ESC): Move ...
2885         * system.h: ... here, where Linas had it in the first place.  Silly me.
2886
2887 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
2888
2889         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
2890         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
2891         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
2892         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
2893         * defaults.h (TARGET_ESC): Add default.
2894
2895 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
2896
2897         * configure.in: add i370-*-openedition, i370-*-mvs and
2898         i370-*-linux targets
2899
2900 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
2901
2902         * dsp16xxx.c: Include ggc.h
2903         (override_options): Mark GC roots.
2904         * mn10200.c: Include ggc.h.
2905         (asm_file_start): Mark GC roots.
2906         * tahoe.c: Include ggc.h.
2907         (extensible_operand): Mark GC roots.
2908
2909 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
2910
2911         * README: Add section discussing status of ELF ABI.
2912         * i370.c: Fix misc spelling mistakes.
2913         (i370_label_scan): Updated notes, exception handling.
2914         (i370_function_prolog): Simplify ELF stack handling.
2915         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
2916         (STACK_GROWS_DOWNWARD): ELF stack grows down.
2917         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
2918         * i370.md: (movdi): Add notes.
2919         (floatsidf2): Use stack not rtca for scratch float area.
2920         (iorsi3): Correct operand constraints.
2921         * x-oe: Restore TAROUTOPTS which are used by pax.
2922
2923 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
2924
2925         * rs6000.c: Include ggc.h.
2926         (rs6000_add_gc_roots): New function.
2927         (override_options): Call it.
2928
2929 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
2930
2931         * alpha.h (alpha_compare): New.
2932         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
2933         * alpha.c: Likewise for the definitions.
2934         (alpha_emit_conditional_branch): Update for alpha_compare.
2935         (alpha_emit_conditional_move): Likewise.
2936         * alpha.md (cmpdf, cmpdi): Likewise.
2937         (setcc patterns): Likewise.  Zero alpha_compare after use.
2938         (sne): Optimize (x != 0) into (0U < x).
2939
2940 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
2941
2942         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
2943         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
2944         (INIT_EXPANDERS): Remove.
2945         * alpha.c: Include ggc.h.
2946         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
2947         (alpha_init_machine_status, alpha_mark_machine_status): New.
2948         (override_options): Install them.
2949         (struct machine_function): Moved to alpha.h.
2950         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
2951         (alpha_init_expanders): Remove.
2952         (alpha_return_addr): Adjust to use current_function->machine.
2953         (alpha_ra_ever_killed): Likewise.
2954         (alpha_expand_epilogue): Likewise.
2955         * alpha.md (eh_epilogue): Likewise.
2956
2957 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
2958                           Melissa O'Neill  <oneill@cs.sfu.ca>
2959                           Geoffrey Keating  <geoffk@cygnus.com>
2960
2961         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
2962         call-used registers (call-saved registers must still be contiguous
2963         and end with r31, of course).
2964
2965 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
2966
2967         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
2968         (self_promoting_type_p): Delete.
2969         (self_promoting_args_p): Move ...
2970         * c-common.c: ... here.
2971         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
2972         (simple_type_promotes_to): New.
2973         * builtins.c (lang_type_promotes_to): New.
2974         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
2975         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
2976         * c-common.h: ... here.
2977         (self_promoting_args_p, simple_type_promotes_to): Declare.
2978         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
2979         (grokdeclarator): Likewise.
2980         * tree.h (lang_type_promotes_to): Declare.
2981
2982 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
2983
2984         Add some machine-dependent GC roots.
2985         * sparc.c: Include ggc.h.
2986         (sparc_add_gc_roots): New function.
2987         (mark_ultrasparc_pipeline_state): Likewise.
2988         (override_options): Call sparc_add_gc_roots.
2989         * pa.c: Include ggc.h.
2990         (pa_add_gc_roots): New function.
2991         (mark_deferred_plabels): Likewise.
2992         (override_options): Call pa_add_gc_roots.
2993         * mips.c: Include ggc.h.
2994         (mips_add_gc_roots): New function.
2995         (override_options): Use it.
2996
2997 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2998
2999         * cpperror.c (cpp_file_line_for_message): Constify a char*.
3000
3001         * cppexp.c (parse_number, parse_charconst, cpp_lex,
3002         cpp_parse_expr): Add static prototypes.
3003         (parse_charconst): Don't cast away const-ness.
3004         (token): Constify a char*.
3005
3006         * cppfiles.c (file_name_list, include_hash, find_include_file,
3007         finclude, initialize_input_buffer): Constify a char*.
3008         (file_cleanup, find_position): Add static prototypes.
3009
3010         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
3011         collect_expansion): Add static prototypes.
3012         (cpp_install, create_definition, monthnames): Constify a char*.
3013
3014         * cpphash.h (cpp_install): Likewise.
3015
3016         * cppinit.c (known_suffixes, default_include,
3017         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
3018         (base_name, dump_special_to_buffer, initialize_dependency_output):
3019         Add static prototypes.
3020
3021         * cpplib.c (my_strerror): Constify a char*.
3022         (null_underflow, null_cleanup, skip_comment, copy_comment,
3023         copy_rest_of_line, handle_directive, pass_thru_directive,
3024         get_directive_token, read_line_number, cpp_print_file_and_line,
3025         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
3026         v_cpp_warning_with_line, detect_if_not_defined,
3027         consider_directive_while_skipping): Add static prototypes.
3028         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
3029         cpp_pedwarn_with_file_and_line): Constify a char*.
3030
3031         * cpplib.h (cpp_options, include_hash, progname, definition,
3032         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
3033         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
3034         find_include_file, deps_output, include_hash): Constify a char*.
3035
3036         * cppmain.c (progname): Constify.
3037         (main): Add prototype.  Use return, not exit.
3038
3039         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
3040         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
3041         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
3042         check_protection): Add static prototype.
3043         (xfree): Remove.
3044         (progname, recognized_macrom, recognized_extern): Constify a char*.
3045         (main): Add prototype.
3046
3047         * gen-protos.c (progname): Constify a char*.
3048
3049 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
3050
3051         * emit-rtl.c (free_emit_status): Take decl as a parameter.
3052         (init_emit_once): Add more GC roots.
3053         * except.c (mark_func_eh_entry): New function.
3054         (mark_eh_node): Mark false_label and rethrow_label.
3055         (init_eh): Add more GC roots.
3056         * function.c (free_after_compilation): Take decl as a paramter.
3057         Call free_stmt_status.
3058         (mark_function_state): Don't assume x_parm_reg_stack_loc is
3059         non-NULL.
3060         * function.h (free_after_compilation): Change prototype.
3061         (free_varasm_status): Likewise.
3062         (free_emit_status): Likewise.
3063         (free_stmt_status): New function.
3064         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
3065         Remove, replacing with ...
3066         (ggc_status): New structure.
3067         (ggc_chain): New variable.
3068         (init_gcc): Define.
3069         (ggc_push_context): New function.
3070         (ggc_pop_context): Likewise.
3071         (ggc_alloc_rtx): Adjust for use of ggc_chain.
3072         (ggc_alloc_rtvec): Likewise.
3073         (ggc_alloc_tree): Likewise.
3074         (ggc_alloc_string): Likewise.
3075         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
3076         (ggc_mark_tree): Give language-dependent code a chance to mark
3077         `x' nodes.
3078         (ggc_mark_tree_varray): Handle empty arrays.
3079         (ggc_collect): Adjust for use of ggc_chain.  Clear
3080         bytes_alloced_since_last_gc.
3081         * ggc.h (ggc_pop_context): New function.
3082         (ggc_push_context): Likewise.
3083         * print-tree.c (print_node): Don't print obstacks when GC'ing.
3084         * stmt.c (free_stmt_status): New function.
3085         (init_stmt_for_function): Clear last_expr_value.
3086         * toplev.c (rest_of_compilation): Always call free_after_compilation.
3087         Conditionalize call to ggc_collect.
3088         (main): Call init_ggc.
3089         * tree.c (push_obstacks): Do the push, even when GC'ing.
3090         (push_obstacks_nochange): Likewise.
3091         (pop_obstacks): Liekwise.
3092         * varasm.c (free_varasm_status): Take decl as a parameter.
3093
3094 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3095
3096         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
3097         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
3098         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
3099         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
3100
3101 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
3102
3103         * pa/x-pa-mpeix: New file for the MPE port.
3104
3105         * pa/quadlib.asm: New file for long double support.
3106
3107         * configure.in: Add hppa1.0-*-mpeix for MPE port.
3108         * configure: Rebuilt.
3109
3110 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
3111
3112         * final.c (shorten_branches): Fix last change.
3113
3114 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
3115
3116         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
3117
3118 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
3119
3120         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
3121         details.
3122
3123 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3124
3125         * c-aux-info.c (concat): Don't define.
3126
3127         * cccp.c (my_strerror): Likewise.  All callers changed to use
3128         xstrerror instead.
3129         (do_include): Call xstrdup, not xmalloc/strcpy.
3130         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
3131         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
3132
3133         * collect2.c (my_strsignal): Likewise.  All callers changed to use
3134         strsignal instead.
3135         (locatelib): Call xstrdup, not xmalloc/strcpy.
3136
3137         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
3138
3139         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
3140
3141         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
3142
3143         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
3144
3145         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
3146
3147         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
3148
3149         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
3150         malloc/realloc.
3151         (find_all_handler_type_matches): Likewise.  Don't check return
3152         value.
3153         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
3154         xmalloc, not malloc.
3155         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
3156
3157         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
3158         (init_spec): Call xcalloc, not xmalloc/bzero.
3159         (set_spec): Call xstrdup, not save_string.
3160         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
3161         (find_a_file): Call xstrdup, not xmalloc/strcpy.
3162         (process_command): Call xstrdup, not save_string.
3163         (main): Call xcalloc, not xmalloc/bzero.
3164
3165         * gcov.c (xmalloc): Don't define.
3166         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
3167         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
3168         (output_data): Call xcalloc, not xmalloc/bzero.
3169
3170         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
3171
3172         * mips-tdump.c (xmalloc): Don't define.
3173         (print_symbol): Call xmalloc, not malloc.
3174         (read_tfile): Call xcalloc, not calloc.
3175
3176         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
3177         Don't define.  All callers of xfree/my_strsignal changed to use
3178         free/strsignal instead.
3179         (allocate_cluster): Call xcalloc, not calloc.
3180
3181         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
3182         Fix memory leak, free allocated memory.
3183
3184         * prefix.c (translate_name): Call xstrdup, not save_string.
3185         (update_path): Likewise.
3186
3187         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
3188
3189         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
3190         Don't define.  Callers of xfree/savestring2 changed to use
3191         free/concat instead.
3192
3193         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
3194         (init_elim_table): Likewise.
3195
3196         * resource.c (init_resource_info): Likewise.
3197
3198         * stupid.c (stupid_life_analysis): Likewise.
3199
3200         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
3201         (open_dump_file): Call concat, not xmalloc/strcpy/...
3202         (clean_dump_file): Likewise.
3203         (compile_file): Call xstrdup, not xmalloc/strcpy.
3204
3205 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
3206
3207         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
3208         * v850.c (v850_va_arg): New.
3209
3210 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3211
3212         * haifa-sched.c: Tidy comments.
3213
3214 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3215
3216         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
3217         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
3218         $(out_object_file)): Depend on ggc.h.
3219         * c-common.c: Include "ggc.h".
3220         (combine_strings): If doing GC, use ggc_alloc_string.
3221         * c-decl.c: Include "ggc.h".
3222         (ggc_p): Define with value 0.
3223         (mark_binding_level): New function.
3224         (init_decl_processing): Add GC roots.
3225         (mark_c_function_context): New function.
3226         (lang_mark_false_label_stack): New function.
3227         (lang_mark_tree): New function.
3228         (lang_cleanup_tree): New function.
3229         * c-lang.c: Include "ggc.h".
3230         (lang_init): Call c_parse_init.
3231         * c-lex.c: Include "ggc.h".
3232         (check_linenum): If doing GC, don't copy filenames to permanent
3233         obstack.
3234         * c-parse.in: Include "ggc.h".
3235         (c_parse_init): New function.
3236         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
3237         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
3238
3239         * except.c (mark_eh_state): Mark more state.
3240         * function.c (mark_function_state): Likewise.
3241         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
3242         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
3243         * toplev.c (mark_file_stack): New function.
3244         (compile_file): If doing GC, use ggc_alloc_string on input filename.
3245         (main): Add root for input_file_stack.
3246
3247         * i386.c: Include "ggc.h".
3248         (ix86_mark_machine_status): New function.
3249         (override_options): Set mark_machine_status.
3250
3251 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3252
3253         * tree.c (copy_node): Copy node contents also if doing GC.
3254
3255 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
3256
3257         * collect2.c (scan_libraries): Fix double-thinko :-).
3258
3259 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
3260
3261         * collect2.c (scan_libraries): Fix thinko.
3262
3263         * cse.c (delete_trivially_dead_insns): Do not skip the last
3264         insn if it is a real insn.
3265
3266 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
3267
3268         * Makefile.in (ggc-simple.o): Depend on hash.h.
3269         * ggc.h (ggc_add_tree_hash_table_root): Declare.
3270         (ggc_mark_tree_varray): Likewise.
3271         (ggc_mark_tree_hash_table): Likewise.
3272         * ggc-simple.c: Include hash.h.
3273         (ggc_mark_tree_hash_table_ptr): New function.
3274         (ggc_mark_tree_hash_table_entry): Likewise.
3275         (ggc_mark_tree_hash_table): Likewise.
3276         (ggc_add_tree_hash_table_root): Likewise.
3277         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
3278         rtx, when defining fields.
3279
3280 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3281
3282         * profile.c (output_func_start_profiler): Remove apparently
3283         nonsensical call to start_sequence.
3284
3285 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
3286
3287         * clipper/clipper.c (clipper_va_start): Fix typos.
3288
3289         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
3290         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
3291         (spur_va_arg): New stub.
3292
3293         * configure.in: Comment out pyramid.
3294
3295 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
3296
3297         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
3298         don't conflict with the bits that win32, cygwin, and dgux
3299         defines.
3300
3301 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
3302                           Bernd Schmidt <bernds@cygnus.co.uk>
3303
3304         * integrate.c (function_cannot_inline_p): Do not inline
3305         functions with forced labels.
3306
3307 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
3308                           Bernd Schmidt <bernds@cygnus.co.uk>
3309                           Mark Mitchell  <mark@codesourcery.com>
3310
3311         * Makefile.in (ggc-simple.o): Depend on varray.h.
3312         (rtl.o): Depend on ggc.h.
3313         (genattrtab.o): Depend on ggc.h.
3314         (print-tree.o): Likewise.
3315         (fold-const.o): Likewise.
3316         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
3317         (make_insn_raw): Don't cache insns when GC'ing.
3318         (emit_insn_before): Likewise.
3319         (emit_insn_after): Likewise.
3320         (emit_insn): Likewise.
3321         (start_sequence): Use xmalloc to allocate the sequence_stack.
3322         (end_sequence): Add free to free it.
3323         (gen_sequence): Don't cache insns when GC'ing.
3324         (clear_emit_caches): Don't use sequence_element_free_list.
3325         (init_emit): Use xcalloc, not xmalloc+bzero.
3326         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
3327         * function.c (pop_function_context_from): Use free to free the
3328         fixup_var_refs_queue.
3329         (put_reg_into_stack): Allocate it with xmalloc.
3330         * genattrtab.c: Include ggc.h.
3331         (operate_exp): Don't use obstack_free when GC'ing.
3332         (simplify_cond): Likewise.
3333         (simplify_text_exp): Likewise.
3334         (optimize_attrs): Likewise.
3335         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
3336         GC'ing.
3337         (gencode): Generate a #include for ggc.h.
3338         * ggc-callbacks.c (ggc_p): Define it to zero.
3339         * ggc-none.c (ggc_p): Likewise.
3340         * ggc-simple.c: Include varray.h.
3341         (ggc_mark_tree_varray): New function.
3342         (ggc_add_tree_varray_root): Likewise.
3343         (ggc_mark_tree_varray_ptr): Likewise.
3344         * ggc.h (ggc_p): Declare.
3345         (varray_head_tag): Likewise.
3346         (ggc_add_tree_varray_root): Declare.
3347         * print-tree.c (print_node): Don't check for TREE_PERMANENT
3348         inconsistencies when GC'ing.
3349         * rtl.c: Include ggc.h.
3350         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
3351         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
3352         (rtx_free): Don't call obstack_free when GC'ing.
3353         * toplev.c (rest_of_compilation): Call ggc_collect after every
3354         pass, if GC'ing.
3355         * tree.c (push_obstacks): Do nothing, if GC'ing.
3356         (pop_obstacks_nochange): Likewise.
3357         (pop_obstacks): Likewise.
3358         (make_node): Use ggc_alloc_tree when GC'ing.
3359         (copy_node): Likewise.
3360         (get_identifier): Use ggc_alloc_string when GC'ing.
3361         (build_string): Likewise.
3362         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
3363         (tree_cons): Likewise.
3364         (build1): Likewise.
3365         (type_hash_canon): Don't call obstack_free when GC'ing.
3366
3367 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
3368
3369         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
3370         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
3371
3372 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
3373                           Bernd Schmidt <bernds@cygnus.co.uk>
3374                           Mark Mitchell  <mark@codesourcery.com>
3375
3376         * Makefile.in (stor-layout.o): Depend on ggc.h.
3377         (expr.o): Depend on ggc.h.
3378         (profile.o): Depend on ggc.h.
3379         (stor-layout.o): Depend on ggc.h.
3380         * emit-rtl.c (init_emit_once): Add gc roots.
3381         * expr.c: Include ggc.h.
3382         (emit_block_move): Add gc roots.
3383         (clear_storage): Likewise.
3384         * expr.h (init_stor_layout_once): New function.
3385         * profile.c: Include ggc.h.
3386         (init_arc_profiler): profiler_label is a root.
3387         * scan.c (make_sstring_space): Trust xrealloc to function
3388         correctly with first parameter NULL.
3389         * stor-layout.c: Include ggc.h.
3390         (set_sizetype): Add gc root.
3391         (init_stor_layout_once): New function.
3392         * toplev.c (compile_file): Call it.
3393
3394 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
3395                           Bernd Schmidt <bernds@cygnus.co.uk>
3396                           Mark Mitchell  <mark@codesourcery.com>
3397
3398         * Makefile.in (tree.o): Depend on ggc.h.
3399         (varasm.o): Likewise.
3400         (function.o): Likewise.
3401         (stmt.o): Likewise.
3402         (except.o): Likewise.
3403         (optabs.o): Likewise.
3404         (emit-rtl.o): Likewise.
3405         * emit-rtl.c: Include ggc.h.
3406         (sequence_element_free_list): Remove, and all references.
3407         (mark_sequence): New functions.
3408         (mark_emit_state): New function.
3409         * except.c: Include ggc.h.
3410         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
3411         (mark_tree_label_node): New functions.
3412         (mark_eh_state): New function.
3413         * function.c: Include ggc.h.
3414         (mark_temp_slot, mark_function_chain): New functions.
3415         (mark_function_state): New function.
3416         (init_function_once): New function.
3417         * function.h (init_function_once): New function.
3418         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
3419         * ggc.h (label_node): Declare.
3420         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
3421         (lang_mark_false_label_stack): New function.
3422         (mark_temp_slot): Remove declaration.
3423         (mark_function_chain): Likewise.
3424         (mark_eh_state): Adjust prototype.
3425         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
3426         Likewise.
3427         * optabs.c: Include ggc.h.
3428         (mark_optab): New function.
3429         (init_optabs): Add gc roots.
3430         * stmt.c: Include ggc.h.
3431         (mark_cond_nesting, mark_loop_nesting): New functions.
3432         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
3433         (mark_stmt_state): New function.
3434         * toplev.c (compile_file): Call init_function_once.
3435         * tree.c: Include ggc.h.
3436         (type_hash): Move declaration earlier in file.
3437         (TYPE_HASH_SIZE, type_hash_table): Likewise.
3438         (init_obstacks): Add gc roots.
3439         (mark_type_hash): New function.
3440         * varasm.c: Include ggc.h.
3441         (mark_pool_constant): New function.
3442         (mark_varasm_state): New function.
3443
3444 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3445
3446         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
3447
3448 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
3449
3450         * c-decl.c (struct language_function): Renamed from struct c_function.
3451         Delete elt NEXT.
3452         (c_function_chain): Delete.
3453         (push_c_function_context): New arg F.  Don't warn about nested
3454         functions here.  Fill LANGUAGE elt of F.  Delete code to update
3455         c_function_chain.  Don't call push_function_context.
3456         (pop_c_function_context): New arg F.  Restore from there instead of
3457         from c_function_chain.  Don't call pop_function_context.  Clear out
3458         LANGUAGE field of F when done.
3459         * c-lang.c: Include "function.h"
3460         (lang_init): Initialize save_lang_status and restore_lang_status.
3461         * c-parse.in (nested_function, nested_function_notype): Warn about
3462         nested functions.  Call push_function_context/pop_function_context
3463         instead of the _c_ variants.
3464         * c-tree.h (push_c_function_context, pop_c_function_context): Update
3465         prototype.
3466         * Makefile.in (c-lang.o): Update dependencies.
3467
3468         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
3469         regno_pointer_flag, regno_pointer_align.
3470         (gen_reg_rtx): Use xrealloc to enlarge them.
3471         (free_emit_status): New function.
3472         * function.c (mark_machine_status, mark_lang_status): New variables.
3473         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
3474         in some bits from assign_stack_local.  All callers changed to use new
3475         name.
3476         (assign_stack_local): Just call assign_stack_local_1.
3477         (free_after_compilation): New function.
3478         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
3479         (trampoline_address): Likewise.
3480         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
3481         (prepare_function_start): Explicitly clear some more variables.
3482         * function.h (struct function): New elt can_garbage_collect.
3483         (mark_machine_status, mark_lang_status): Declare variables.
3484         (free_after_compilation, free_emit_status, free_varasm_status,
3485         init_varasm_status): Declare functions.
3486         * toplev.c (rest_of_compilation): Call free_after_compilation when
3487         done with the current function.
3488         * varasm.c (free_varasm_status): New function.
3489
3490 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
3491
3492         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
3493         (EXPAND_BUILTIN_VA_ARG): Define.
3494         * sparc.c (sparc_va_start): New.
3495         (sparc_va_arg): New.
3496
3497 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3498
3499         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
3500
3501 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3502
3503         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
3504
3505 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
3506
3507         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
3508         (OBJS): Add $(GGC).
3509         (ggc-callbacks.o): New target.
3510         * ggc-callbacks.c: New file.
3511
3512 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3513
3514         * expr.h: Collapse individual optab and libfunc vars to arrays.
3515         (optab_index, libfunc_index): New enumerations.
3516         (optab_table, libfunc_table): New arrays.
3517         Add accessor macros for both.
3518
3519         * optabs.c (optab_table, libfunc_table): New.
3520         Delete declarations for individual optab and libfunc vars.
3521
3522 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
3523
3524         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
3525
3526 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
3527
3528         * Makefile.in (GGC, GGC_LIB): New.
3529         (HOST_RTL): Include ggc-none.o.
3530         (ggc-simple.o): New target.
3531         (ggc-none.o): Likewise.
3532         * tree.h (tree_common): Add gc_mark.
3533         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
3534         (struct rtvec_def): Add gc_mark.
3535         * emit-rtl.c (global_rtl): Update static initializers to contain
3536         enough initializers.
3537         * ggc.h, ggc-none.c, ggc-simple.c: New files.
3538         * toplev.c (gc_time): New variable.
3539         (all_time): New variable.
3540         (compile_file): Print gc time.
3541         (print_time): Calculate percentage of the whole.
3542
3543 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3544
3545         Change obstack memory management and varasm constant pool handling so
3546         that nested functions are treated like any other functions.
3547         * function.c (init_machine_status): New variable.
3548         (push_function_context_to): Set contains_functions for the outer
3549         function.  Don't call save_varasm_status.
3550         (pop_function_context_from): Don't call restore_varasm_status.  Don't
3551         set current_function_contains_functions.
3552         (prepare_function_start): Call init_varasm_status rather than
3553         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
3554         is non-null.
3555         * function.h (struct function) Add field varasm.  Delete fields
3556         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
3557         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
3558         (init_machine_status): Declare.
3559         (save_varasm_status, restore_varasm_status): Delete declarations.
3560         (save_tree_status, restore_tree_status): Delete last argument.
3561         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
3562         code.  All callers changed.
3563         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
3564         save_constants_in_decl_trees, restore_constants, save_constants,
3565         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
3566         functions.
3567         (inlining): New variable.
3568         (reg_map, label_map, insn_map, orig_asm_operands_vector,
3569         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
3570         variables.
3571         (save_for_inline_nocopy): Don't save constants.
3572         Don't set inl_emit field in current_function.
3573         (expand_inline_function): Use emit field, not inl_emit, of the inlined
3574         function.  Set new variable inlining before
3575         calling copy_rtx_and_substitute.
3576         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
3577         constant pool references if inlining is nonzero.
3578         Delete ADDRESS and (most of the) CONST cases.
3579         (output_inline_function): Save and restore current_function/
3580         current_function_decl.  Delete restore_constants code.  Don't call
3581         init_const_rtx_hash_table.
3582         * output.h (init_const_rtx_hash_table): Don't declare.
3583         * rtl.h (struct function): Declare.
3584         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
3585         * toplev.c (rest_of_compilation): Don't treat nested functions or
3586         functions containing them specially.  Delete all code to deal with
3587         save_for_inline_copying.
3588         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
3589         inline_obstacks): Delete variables.
3590         (save_tree_status): Lose arg CONTEXT.  All callers changed.
3591         Simply allocate a new function_maybepermanent_obstack for the new
3592         function, delete all the special cases.
3593         Don't save inline_obstacks.
3594         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
3595         Delete special handling for function_maybepermanent_obstack; simply
3596         free it if empty.
3597         Don't restore inline_obstacks.
3598         (permanent_allocation):  Delete code that frees inline_obstacks.
3599         (print_inline_obstack_statistics): Delete function.
3600         (dump_tree_statistics): Don't call it.
3601         * varasm.c (struct varasm_status): New.
3602         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
3603         last_pool, pool_offset, const_double_chain): Delete global
3604         variables, replace with accessor macros.
3605         (immed_double_const): Don't walk const_double_chain outside a
3606         function, but don't treat nested functions specially anymore.
3607         (immed_real_const_1): Likewise.
3608         (clear_const_double_mem): Don't treat nested functions specially.
3609         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
3610         (save_varasm_status, restore_varasm_status): Delete functions.
3611         (init_varasm_status): New function.
3612         (force_const_mem): Don't treat nested functions specially.
3613         (find_pool_constant): Accept new arg F, search for constants in
3614         that function's pool rather than the current one.  All callers
3615         changed.
3616         (get_pool_constant_for_function, get_pool_mode_for_function): New
3617         functions.
3618
3619         * i386.c (init_386_machine_status): New function, mostly from
3620         clear_386_stack_locals.
3621         (struct machine_functions): Rename element names to avoid name
3622         clashes.
3623         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
3624         macros, replacing global variables.
3625         (clear_386_stack_locals, save_386_machine_status,
3626         restore_386_machine_status): Delete functions.
3627         (override_options): Initialize init_machine_status.
3628         * i386.h (INIT_EXPANDERS): Delete macro.
3629         (save_386_machine_status, restore_386_machine_status,
3630         clear_386_stack_locals): Delete declarations.
3631
3632 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3633
3634         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
3635         (doloop_begin):  Simplify pattern and use emit_jump_insn.
3636         (doloop_end): Simplify pattern, switch operand order,
3637         and use emit_jump_insn.
3638
3639 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3640
3641         * function.h (struct function): Add new element LANGUAGE.
3642         (save_lang_status): Declare new variable.
3643         (restore_lang_status): Likewise.
3644         * function.c (save_lang_status): Define.
3645         (restore_lang_status): Likewise.
3646         (push_function_context_to): Call language-specific save function.
3647         (pop_function_context_from): Call language-specific restore function.
3648
3649 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
3650
3651         * i386.md (movsf_1): Check REG_P before use of REGNO.
3652         (movdf_1): Likewise.
3653         (movxf_1): Likewise.
3654         (extendsfdf2): Likewise.
3655         (extendsfxf2): Likewise.
3656         (extenddfxf2): Likewise.
3657
3658 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3659
3660         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
3661         constants into memory.
3662         (c4x_shiftable_constant): New function.
3663         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
3664         (c4x_shiftable_constant): Declare.
3665         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
3666         ashlqi3_noclobber): Add new patterns and associated splitters.
3667
3668 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
3669
3670         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
3671         * dwarf2out.c (dwarf2out_frame_init): Likewise.
3672         * final.c (shorten_branches): Likewise.
3673         * global.c (global_alloc): Likewise.
3674         * haifa-sched.c (build_control_flow): Likewise.
3675         * stmt.c (check_for_full_enumeration_handling): Likewise.
3676         (estimate_case_costs): Likewise.
3677
3678 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
3679
3680         * rtl.h (RTL_CHECKC2): Fix typo in last change.
3681
3682 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
3683
3684         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
3685         (recompute_reg_usage): Likewise.
3686         * rtlanal.c (find_regno_fusage): Likewise.
3687
3688         * rtl.c (rtl_check_failed_code1): New function.
3689         (rtl_check_failed_code2): New.
3690         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
3691         (RTL_CHECKC1, RTL_CHECKC2): New.
3692         (XC*): New accessor macros.
3693         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
3694         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
3695         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
3696         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
3697         (TRAP_*, RANGE_INFO_*): Likewise.
3698
3699 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3700
3701         * Makefile.in (tlink.o): Don't depend on toplev.h.
3702
3703         * collect2.c (c_file, o_file, export_file, import_file, ldout,
3704         output_file, nm_file_name, ldd_file_name, strip_file_name,
3705         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
3706         add_prefix, prefix_from_env, prefix_from_string, do_wait,
3707         fork_execute, maybe_unlink, add_to_list,
3708         extract_init_priority, write_list, dump_list,
3709         dump_prefix_list, write_list_with_asm, write_c_file,
3710         write_c_file_stat, write_c_file_glob, scan_prog_file,
3711         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
3712         ignore_library, extract_string, notice, dump_file, target_machine,
3713         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
3714         read_file, print_load_command): Constify a char*.
3715         (fdopen, error, fatal, fatal_perror): Don't prototype.
3716         (my_strerror): Remove.  All callers use xstrerror instead.
3717         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
3718         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
3719         to xcalloc/strcpy/strcat/...  to one call to concat.
3720         (main, scan_prog_file, scan_libraries): Use an intermediate
3721         `const char **' to build an argv array.
3722         (mapfile, libselect, libcompare, locatelib): Add prototypes.
3723
3724         * collect2.h (collect_execute, collect_wait, dump_file,
3725         file_exists): Constify a char*.
3726         (ldout, c_file_name, temporary_obstack, permanent_obstack,
3727         temporary_firstobj, vflag, debug): Add extern declarations.
3728         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
3729
3730         * tlink.c: Don't include toplev.h.
3731         (vflag, debug, ldout, c_file_name, temporary_obstack,
3732         permanent_obstack, temporary_firstobj): Don't declare.
3733         (tlink_execute, frob_extension, symbol_hash_lookup,
3734         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
3735         recompile_files, read_repo_files, demangle_new_symbols,
3736         scan_linker_output): Constify a char*.
3737         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
3738         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
3739
3740 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
3741
3742         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
3743         (relative) rather than jsr (absolute) subroutine call insns.
3744         * config/m68k/m68k-coff.h: Ditto.
3745
3746 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
3747
3748         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
3749         now rework these too.
3750         (arm_reorg): If an insn can't reach the end of the current pool,
3751         ensure that we emit that pool before the insn.
3752
3753 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
3754
3755         * tlink.c (scan_linker_output): Skip the initial underscore in
3756         a mangled name if appropriate.
3757
3758 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3759
3760         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3761         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
3762         error_with_ivar, gen_declarator, create_builtin_decl,
3763         my_build_string, generate_descriptor_table, generate_ivars_list,
3764         generate_dispatch_table, check_protocols, TAG_GETCLASS,
3765         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
3766         dump_base_name, lang_decode_option, build_encode_expr,
3767         start_class, finish_class, encode_pointer, really_start_method,
3768         gen_declaration, dump_interface, handle_class_ref, handle_impent):
3769         Constify.
3770         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
3771         Add static prototypes.
3772         (build_objc_string_decl, build_selector_reference_decl,
3773         encode_bitfield, build_class_reference_decl): Remove unused
3774         parameter, all callers changed.
3775         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
3776         (objc_printable_name): Likewise.  Change second parameter to type int.
3777         (init_objc): Use memcpy, not bcopy, to avoid casts.
3778
3779 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
3780
3781         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
3782         reg notes on a deleted insn.
3783         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
3784
3785 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
3786
3787         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
3788
3789 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3790
3791         * stmt.c (expand_asm_operands): Fix index into inout_mode when
3792         reading it.
3793
3794 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
3795
3796         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
3797         * tm.texi (MD_ASM_CLOBBERS): Document it.
3798
3799 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
3800
3801         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
3802         * except.c (expand_rethrow): Remove unused variable.
3803         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
3804         * flow.c (replace_insns): Likewise.
3805         (create_edge_list, verify_edge_list): Likewise.
3806         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
3807
3808         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
3809         is special code to run.
3810         (main): Don't define operands to emit_operand.
3811         * genrecog.c (main): Don't emit an empty peephole2_insn function.
3812
3813         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
3814
3815         * alpha/alpha.h (normal_memory_operand): Declare.
3816         (reg_no_subreg_operand): Declare.
3817         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
3818
3819 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
3820
3821         * c-parse.in (compstmt_primary_start): New, broken out of first
3822         part of compstmt handling in primary.
3823         (primary): Use it.  Add an error clause.
3824         (compstmt_nostart): Renamed from compstmt; remove all
3825         initial invocations of compstmt_start.
3826         (compstmt): New.
3827
3828 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
3829
3830         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
3831         needed.
3832
3833 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
3834
3835         * combine.c (simplify_shift_const): Remove extra semicolon.
3836         * dwarf2out.c (remove_AT): Likewise.
3837         * expmed.c (expand_mult): Likewise.
3838         * gcov.c (create_program_flow_graph): Likewise.
3839         * reorg.c (mostly_true_jump): Likewise.
3840
3841 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
3842
3843         * fold-const.c (fold_range_test): Do not try to fold the range
3844         test if the rhs or lhs has side effects.
3845
3846         * combine.c (simplify_rtx): Recognize another case of a synthesized
3847         sign extension.
3848
3849         * varasm.c (mark_constant_pool): When marking indirect references,
3850         only look at SYMBOL_REFs.
3851
3852         * except.c (expand_fixup_region_end): Do not peek at
3853         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
3854
3855 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
3856
3857         * flags.h: New variables align_loops, align_loops_log,
3858         align_jumps, align_jumps_log, align_labels, align_labels_log,
3859         align_functions, align_functions_log.
3860         * toplev.c: Define them.
3861         (f_options): Handle -falign-* when they have no argument.
3862         (main): Add logic to set variables for -falign-functions,
3863         -falign-jumps, -falign-labels, -falign-loops.
3864         Make it -fsched-verbose=<n> and -finline-limit=<n>.
3865         (display_help): Change help to match options.
3866         * final.c (LABEL_ALIGN): Default to align_labels_log.
3867         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
3868         (LOOP_ALIGN): Default to align_loops_log.
3869         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
3870         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
3871         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
3872         * varasm.c (assemble_start_function): Handle align_functions.
3873
3874         * config/sparc/sparc.h: Don't declare sparc_align_*.
3875         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
3876         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
3877         sparc.c.
3878         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
3879         it's a promise.
3880         * config/sparc/sparc.c: Delete sparc_align_loops,
3881         sparc_align_jumps, sparc_align_funcs and the corresponding string
3882         variables.
3883         (sparc_override_options): Default align_functions on ultrasparc.
3884         Delete -malign-* handling.
3885
3886         * config/mips/mips.c (override_options):  On 64-bit targets,
3887         try to align code to 64-bit boundaries.
3888         (print_operand): New substitution, %~,
3889         which aligns labels to align_labels_log.
3890         * config/mips/mips.md (div_trap_normal): Use %~.
3891         (div_trap_mips16): Likewise.
3892         (abssi): Likewise.
3893         (absdi2): Likewise.
3894         (ffssi2): Likewise.
3895         (ffsdi2): Likewise.
3896         (ashldi3_internal): Likewise.
3897         (ashrdi3_internal): Likewise.
3898         (lshrdi3_internal): Likewise.
3899         (casesi_internal): Likewise.
3900
3901 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
3902
3903         Merge new ia32 backend from the branch!
3904
3905         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
3906         See ChangeLog.P2 on new_ia32_branch for details.
3907
3908         * rtl.h (stack_regs_mentioned_p): Delete prototype.
3909         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
3910         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
3911         * i386/gas.h (ASM_FILE_START): Define.
3912         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
3913         for name change of ix86_valid_decl_attribute_p.
3914         (i386_pe_valid_type_attribute_p): Similarly.
3915
3916 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
3917
3918         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
3919         to step through CC modes.
3920
3921 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3922
3923         * regmove.c (fixup_match_1): Don't move INSN in front of P if
3924         it would end up in the shadow of a live flags regsiter.
3925
3926 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3927
3928         * reload1.c: Fix many indentation problems.
3929         * reload.c: Likewise.
3930
3931 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
3932
3933         * alias.c (non_local_reference_p): Constify fmt.
3934
3935 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
3936
3937         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
3938
3939 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
3940
3941         * cse.c (delete_trivially_dead_insns): Do not delete stores to
3942         the internal_arg_pointer.
3943
3944 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
3945
3946         Merge peephole2 from new_ia32_branch:
3947         * Makefile.in (STAGESTUFF): Add *.peephole2.
3948         (mostlyclean): Likewise.
3949         (recog.o): Depend on resource.h.
3950
3951         * final.c (peephole): Conditionalize decl on HAVE_peephole.
3952         (final_scan_insn): Likewise for the invocation of peephole.
3953         * genconfig.c (main): Look for peephole and peephole2 patterns.
3954         Emit HAVE_peephole* accordingly.
3955         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
3956         * flags.h (flag_peephole2): Declare.
3957         * toplev.c: New pass peephole2.  New flag -fpeephole2.
3958
3959         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
3960         * gencodes.c (main): Likewise.
3961         * genextract.c (main): Likewise.
3962         * genoutput.c (main): Likewise.
3963         * genemit.c (max_operand_1): Look for the max scratch operand.
3964         (gen_rtx_scratch): New.
3965         (gen_exp): Use it, and pass on new arg subroutine_type.
3966         (gen_expand): Take max scratch into account.
3967         (gen_split): Emit peephole2 functions.
3968         (output_peephole2_scratch): New.
3969         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
3970         * genrecog.c (routine_type): Add PEEPHOLE2.
3971         (IS_SPLIT): New.
3972         (make_insn_sequence): Match outer parallel for peep2.  Discard
3973         top level scratches and dups.
3974         (add_to_sequence): New args insn_type and top.  Update all callers.
3975         Handle toplevel peep2 matching insns.
3976         (write_subroutine): Handle peep2.
3977         (write_tree_1): Likewise.
3978         (write_tree): Likewise.
3979         (main): Likewise.
3980         (change_state): New arg afterward.  Update all callers.
3981         Handle matching separate insns.
3982         * recog.c (recog_next_insn): New.
3983         (peephole2_optimize): New.
3984         * rtl.def (DEFINE_PEEPHOLE2): New.
3985         * resource.c (find_free_register): New argument last_insn.  Use it
3986         to find a register available through the entire span.
3987         * resource.h (find_free_register): Update prototype.
3988
3989 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
3990
3991         * i386.c (output_strlen_unroll): Don't write xops[7]
3992         label if it wasn't set.
3993
3994 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
3995
3996         * cpplib.c (struct directive): Const-ify name pointer and
3997         function pointer prototype.
3998         (validate_else, do_define, do_line, do_include, do_undef,
3999         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
4000         do_elif, do_endif, do_sccs, do_assert, do_unassert,
4001         do_warning): Const-ify second arg.
4002         (directive_table): Mark const.  Reorder entries by frequency
4003         of usage, record statistics.
4004
4005 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
4006
4007         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
4008         bounds- check RTL accesses if --enable-checking.
4009         (RTVEC_ELT): Bounds check if --enable-checking.
4010         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
4011         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
4012         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
4013         GET_NUM_ELEM.
4014         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
4015         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
4016
4017         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
4018         (NOTE_SOURCE_FILE): Use X0STR.
4019         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
4020         MEM_ALIAS_SET): Use X0INT.
4021         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
4022         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
4023         Use X0EXP.
4024         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
4025         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
4026         (rtl_check_failed_bounds, rtl_check_failed_type1,
4027         rtl_check_failed_type2, rtvec_check_failed_bounds): New
4028         functions.
4029         (fancy_abort): Fix comment.
4030
4031         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
4032         (cse_insn): Decrement LABEL_NUSES for jump target before
4033         deleting jump insn.
4034         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
4035         * final.c (alter_subreg): Compute regno before changing x to
4036         REG; set REGNO(x) after changing it.
4037         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
4038         notes containing CONST_INTs.
4039         (delete_eh_regions): Use NOTE_EH_HANDLER.
4040         * function.c (put_reg_into_stack): Make reg a MEM before
4041         initializing it.
4042         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
4043         delete insn.
4044         (gen_mem_addressof): Make reg a MEM before initializing it.
4045         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
4046         X0WINT.
4047         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
4048         deleting an insn, not after.
4049         (block_alloc): Only look at PATTERN(insn) if we have to, and
4050         only if it's format class 'i'.
4051         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
4052         CONST_INT before using its INTVAL.
4053         * print-rtl.c (print_rtx): Use X0STR.
4054         * regmove.c (fixup_match_1): Don't look at PATTERN of
4055         non-class-'i' insn chain elements.
4056         * reload.c (loc_mentioned_in_p): Take address of
4057         in->fld[1].rtx directly.
4058         * reload1.c (reload): Change reg to a MEM before initializing
4059         it.
4060         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
4061         have no names.
4062         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
4063
4064 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
4065
4066         * config/mips/mips.c (machine_dependent_reorg): Force a
4067         barrier to output the local constant pool if a barrier hasn't
4068         been found at a natural point in the instruction stream.
4069
4070 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4071
4072         * c-parse.in (language_string): Constify.
4073
4074         * dwarf2out.c (language_string): Remove declaration.
4075
4076         * dwarfout.c (language_string): Likewise.
4077
4078         * toplev.c (language_string, init_parse, finish_parse): Likewise.
4079
4080         * tree.h (language_string, init_parse, finish_parse): Declare.
4081
4082         * i386/sun386.h (language_string): Remove declaration.
4083
4084         * mips.h (language_string): Likewise.
4085
4086         * nextstep.h (language_string): Likewise.
4087
4088         * nextstep21.h (language_string): Likewise.
4089
4090         * rs6000.c (language_string): Likewise.
4091
4092 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4093
4094         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
4095         (getpwd.o): Remove target.
4096
4097         * getpwd.c: Delete file.  Its in libiberty now.
4098
4099         * dbxout.c (getpwd): Don't prototype.
4100         * dwarf2out.c (getpwd): Likewise
4101         * dwarfout.c (getpwd): Likewise
4102         * final.c (getpwd): Likewise.
4103         * protoize.c (getpwd): Likewise.
4104
4105 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4106
4107         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
4108
4109 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
4110
4111         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
4112         mark_set_resources.
4113
4114 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
4115
4116         * fixinc/Makefile.in (subdir): New.
4117         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
4118         (Makefile): New.
4119
4120 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
4121
4122         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
4123         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
4124         be shared.
4125
4126         * invoke.texi: Fix typo.
4127
4128         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
4129         changed.  Handle autoincrement addressing modes.
4130
4131         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
4132         just like we would the virtual incoming args register when
4133         integrating.
4134
4135 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
4136
4137         * rs6000.h (ASM_FILE_START): Specify complete filename, including
4138         path, in .file directive.
4139
4140 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
4141
4142         * gcc.texi (External Bugs): Remove obsolete note about Perl on
4143         SunOS.
4144
4145 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
4146
4147         * stdbool.h: Make the typedef name _Bool, with bool a #defined
4148         alias.
4149
4150 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4151
4152         * tree.c (tree_code_name): Constify a char*.
4153
4154         * tree.h (tree_code_name, decl_printable_name): Likewise.
4155
4156         * function.h (struct function): Likewise.
4157
4158         * toplev.c (decl_name, decl_printable_name): Likewise.
4159
4160         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
4161
4162         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
4163         (init_objc): Remove function pointer cast.
4164
4165 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
4166
4167         * pa.md (interspace_jump): New pattern.
4168         (builtin_longjmp): New expander.
4169
4170 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
4171
4172         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
4173         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
4174         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
4175
4176 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
4177
4178         * jump.c (delete_prior_computation): Also check calls
4179         to constant functions.  Don't bother checking for a
4180         REG_UNUSED note before adding it.
4181         (delete_computation): Handle multi-word hard registers
4182         when synthesizing missing REG_DEAD notes for a register
4183         which is both set and used by an insn.
4184
4185 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4186
4187         * loop.c (this_loop_info): New variable.
4188         (loop_has_call, loop_has_volatile, loop_has_tablejump,
4189         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
4190         All uses updated.
4191         (prescan_loop, strength_reduce): New argument loop_info.  All callers
4192         updated.
4193         (scan_loop): New variable loop_info, initialise to address of
4194         this_loop_info.
4195         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
4196         Delete variable loop_has_multiple_exit targets and replace with
4197         field in this_loop_info.
4198         (find_and_verify_loops): Rename this_loop to this_loop_num.
4199         (strength_reduce): Delete loop_iteration_info.  Replace variable
4200         loop_info with function argument of same name.
4201         (insert_bct): Rework test for loop being completely unrolled.
4202
4203         * loop.h (struct loop_info): New fields num, loops_enclosed,
4204         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
4205         has_indirect_jump, and cont.  Redefine use of unroll_number.
4206         (loop_unroll_number): Delete.
4207
4208         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
4209         field of loop_info.
4210         (loop_iterations): Delete variable vtop and instead use
4211         loop_info->vtop computed in prescan_loop.
4212
4213 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
4214
4215         * fix-header.c (main): Do not pass a null pointer to strcmp.
4216
4217 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
4218
4219         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
4220         filenames.
4221         * configure: Rebuilt.
4222
4223 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
4224
4225         * jump.c (jump_optimize_1): Do not delete assignments to
4226         internal_arg_pointer.
4227         * cse.c (delete_trivially_dead_insns): Always consider a set of
4228         the internal_arg_pointer live.
4229
4230 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
4231
4232         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
4233         (update_life_info) [REG_WAS_0]: Search the original insns rather
4234         than the new insns for the note.  Fix typos finding note_dest.
4235         If no dest found, discard the note rather than abort.
4236         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
4237         (replace_insns): Remove the old insn list after update_life_info
4238         not before.
4239
4240 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
4241
4242         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
4243         sched_analyze_insn.
4244         (sched_analyze_1): Let add_dependence care for not adding dups.
4245         (sched_analyze_2): Likewise.
4246         (add_branch_dependences): Likewise.
4247
4248 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
4249
4250         * i386/winnt.c (export_list): New type.
4251         (exports_head): Rename to
4252         (export_head):  this.
4253         (i386_pe_record_exported_symbol): Add is_data flag.
4254         (i386_pe_asm_file_end): Emit directive for exported variables.
4255         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
4256         prototype.
4257         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
4258         (ASM_DECLARE_OBJECT_NAME): Likewise.
4259         (ASM_DECLARE_FUNCTION_NAME): Likewise.
4260         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
4261
4262 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
4263
4264         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
4265
4266         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
4267         operand.
4268
4269 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
4270
4271         * config/openbsd.h: Define SET_ASM_OP.
4272         * tm.texi: cross-reference SET_ASM_OP in the index.
4273
4274 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
4275
4276         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
4277         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
4278         and class_narrowest_mode at compile time.  Kill init_rtl.
4279         Mark rtx_length, mode_class, mode_size, mode_unit_size,
4280         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
4281         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
4282         EXTRA_CC_NAMES.
4283         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
4284         format.
4285         * rtl.h: Declare rtx_length and rtx_format as const.
4286         * machmode.def: Define CC().  Use CC() to define CCmode.  If
4287         EXTRA_CC_MODES is defined, expand it here.
4288         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
4289         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
4290         const.  Kill all references to EXTRA_CC_MODES.
4291
4292         * toplev.c: Don't prototype or call init_rtl.
4293         * optabs.c: Don't call init_mov_optab.
4294         * genemit.c: Don't generate init_mov_optab.  Don't call
4295         init_rtl.
4296         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
4297         here.
4298         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
4299         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
4300         genrecog.c: Don't call init_rtl.
4301
4302         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
4303         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
4304         definition of EXTRA_CC_MODES.
4305
4306         * md.texi: Kill ref to EXTRA_CC_NAMES.
4307         * tm.texi: Document new way to define EXTRA_CC_MODES.
4308
4309         * genrecog.c: Do not look up the name of a define_split.
4310         (Unrelated bugfix.)
4311
4312 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
4313
4314         * config/v850/v850.md: Fix typo introduced by previous delta.
4315
4316 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4317
4318         * gcc.c (fatal): Make definition static to match prototype.
4319
4320 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4321
4322         * combine.c (get_last_value): Don't look for earlier sets if the last
4323         known set is somewhere in between the insns being combined.
4324
4325 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
4326
4327         * configure.in: Don't use shell ! to negate exit codes
4328         * configure: Regenerate
4329
4330 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
4331
4332         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
4333         the fact that ALIGN is measured in bits, not bytes.
4334
4335 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
4336
4337         * errors.c: New file; defines functions error, warning, and
4338         fatal, variables have_error and progname.
4339         * errors.h: New file; prototypes and decls for stuff in errors.c.
4340
4341         * Makefile: Add rules to build errors.o and
4342         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
4343         genopinit, genrecog, genextract, genpeep, genattr, and
4344         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
4345         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
4346         genpeep.o, genattr.o, and genoutput.o.
4347
4348         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
4349         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
4350         define or prototype fatal.  Set progname at beginning of main.
4351         * genoutput.c:  Likewise, and don't define or prototype error
4352         either.
4353
4354         * c-typeck.c (c_expand_start_case): Return immediately if exp
4355         is an ERROR_MARK.
4356         * fold-const.c (operand_equal_p): Return immediately if arg1
4357         or arg0 are ERROR_MARKs.
4358         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
4359         fields of type ERROR_MARK when calculating if the record can
4360         go in a register.
4361
4362 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
4363         with much help from Jeffrey A Law and Richard Henderson
4364
4365         * i386.md: In the 6 insns which call output_fix_trunc,
4366         earlyclobber operands[0].
4367
4368 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
4369
4370         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
4371         creating new registers.
4372
4373 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
4374
4375         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
4376         i386_reg_alloc_order, i386_regparm_string,
4377         i386_align_loops_string, i386_align_jumps_string,
4378         i386_align_funcs_string, i386_preferred_stack_boundary_string,
4379         and i386_branch_cost_string as type "const char *".
4380         * i386.c: Define all above strings as type "const char *".
4381
4382 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
4383
4384         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
4385         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
4386
4387 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
4388
4389         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
4390         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
4391
4392 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
4393
4394         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
4395         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
4396         (dwarf2out_line, dwarf2out_finish): Likewise.
4397         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
4398
4399 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4400
4401         * tree.c (lang_unsave_expr_now) : Correct return type.
4402         * tree.h (lang_unsave_expr_now) : Same.
4403
4404 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
4405
4406         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
4407         instead of duplicating code.
4408
4409 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4410
4411         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
4412
4413 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
4414
4415         * tree.h: fancy_abort always takes three args.
4416         * resource.c: Move include of system.h before toplev.h.
4417
4418 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
4419
4420         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
4421         as SYMBOL_REFs.
4422
4423 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
4424
4425         * system.h: Don't redefine abort or trim_filename.
4426         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
4427         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
4428         whether or not __FUNCTION__ is available.
4429         * tree.h: Duplicate rtl.h's definition of abort, for files
4430         that don't include rtl.h.  Delete all code to perform type
4431         checking with a compiler other than GCC.
4432         * varray.h: Delete all code to perform type checking with a
4433         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
4434         its arguments exactly once, using a statement expression.
4435         Adjust the VARRAY_<type> accessor macros to match.
4436         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
4437         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
4438         caller's location.  Define fatal_insn and fatal_insn_not_found
4439         as macros that use _fatal_insn and _fatal_insn_not_found.
4440         (fancy_abort, trim_filename): Kill prototypes.
4441
4442         * rtl.c (trim_filename): Move here from toplev.c.
4443         (fancy_abort): New function.
4444         (DIR_SEPARATOR): Provide default definition.
4445         * tree.c (tree_check_failed, tree_class_check_failed): Go
4446         through fancy_abort.
4447         (tree_check, tree_class_check, cst_or_constructor_check,
4448         expr_check): Delete.
4449         * varray.c (varray_check_failed): New function.
4450         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
4451         _fatal_insn and _fatal_insn_not_found.  Go through
4452         fancy_abort.
4453         (trim_filename, fancy_abort): Delete.
4454
4455         * builtins.c (expand_builtin_args_info): Report ICE with abort.
4456         * except.c (start_catch_handler): Report ICE with error/abort
4457         combo.
4458         * final.c (output_operand_lossage): Likewise.
4459         * flow.c (verify_flow_info): Likewise.
4460
4461         * gcc.c: Prototype fatal.
4462         * gengenrtl.c: Undef abort after including rtl.h not system.h.
4463         * genattr.c, genattrtab.c, genemit.c, genextract.c,
4464         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
4465         Don't define fancy_abort.
4466
4467 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
4468
4469         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
4470         canonization.
4471
4472 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
4473
4474         * m88k.h (VERSION_INFO2): Kill.
4475         (VERSION_STRING): Kill.
4476         (TM_RCS_ID): Kill.
4477         (VERSION_INFO1): Tidy.
4478         (TARGET_VERSION): Update.
4479         * m88k/dgux.h (VERSION_INFO2): Kill.
4480         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
4481         * m88k/luna.h (VERSION_INFO1): Tidy.
4482         * m88k/sysv4.h (VERSION_INFO1): Likewise.
4483         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
4484         (output_file_start): Adjust for death of VERSION_STRING.
4485
4486 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
4487
4488         * cpplib.c (detect_if_not_defined): New function.
4489         (do_if): Use it to detect potential once-only headers.
4490
4491 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
4492
4493         * c-common.c (combine_strings): Always set TREE_CONSTANT.
4494
4495 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4496
4497         * combine.c (nonzero_bits) : Allow single-ly set registers to be
4498         anywere in the function only if they are pseudos and set before
4499         being used (not live at the start of the function).
4500         (num_sign_bit_copies) : Same.
4501         (get_last_value_validate) : Same.
4502         (get_last_value) : Same.
4503
4504 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
4505
4506         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
4507         where N and M are constant and N is an integer multiple of M.
4508
4509 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4510
4511         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
4512         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
4513         sbitmap_union_of_preds): Add prototypes.
4514         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
4515         the intersection of successors with the new flow graph structures.
4516         (sbitmap_intersection_of_preds): New function to compute the
4517         intersection of predecessors with the new flow graph structures.
4518         (sbitmap_union_of_succs): New function to compute the union of
4519         successors with the new flow graph structures.
4520         (sbitmap_union_of_preds): New function to compute the union of
4521         predecessors with the new flow graph structures.
4522         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
4523         (expr_reaches_here_p): Use edge and basic_block structures instead
4524         of s_preds and s_succs.
4525         (compute_cprop_avinout): Use new sbitmap routines.
4526         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
4527         of s_preds and s_succs.
4528         * flow.c (compute_flow_dominators): Compute dominators using
4529         edges and basic blocks instead of s_preds and s_succs.
4530
4531 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4532
4533         * lists.c (unused_insn_list, unused_expr_list): New file for
4534         maintaining various types of lists. New statics for maintaining a
4535         cache of available INSN_LIST and EXPR_LIST nodes.
4536         (free_list): Static function for freeing a list of INSN/EXPR nodes.
4537         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
4538         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
4539         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
4540         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
4541         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
4542         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
4543         (free_INSN_LIST_node): Free an individual INSN_LIST node.
4544         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
4545         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
4546         (remove_dependence, free_pending_lists): Use new global routines.
4547         (flush_pending_lists, sched_analyze_insn): Use new global routines.
4548         (sched_analyze, compute_block_backward_dependences): Use new routines.
4549         (sched_analyze_1, sched_analyze_2): Use new routines.
4550         (schedule_insns): Use new global routines.
4551         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
4552         prototypes.
4553         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
4554         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
4555         prototypes.
4556         * toplev.c (rest_of_compilation): Initialize node cache.
4557         * Makefile.in (OBJS): Add lists.o to list of object files.
4558         (lists.o): Add dependancies.
4559
4560 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
4561
4562         * config/v850/v850.md: Fix compile time warning messages.
4563         * config/v850/v850.c: Fix compile time warning messages.
4564         * config/v850/v850.h: Fix compile time warning messages.
4565
4566 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4567
4568         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
4569         Remove unused prototype for `init_lengths'.
4570
4571 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4572
4573         * calls.c (emit_call_1): Mark parameter `stack_size' with
4574         ATTRIBUTE_UNUSED.
4575         (expand_call): Initialize variable `insn'.
4576         (emit_library_call): Likewise for variable `high_to_save'.
4577         (emit_library_call_value): Likewise.
4578         (store_one_arg): Likewise for variables `lower_bound' and
4579         `upper_bound'.
4580
4581         * combine.c (try_combine): Likewise for variables `i2_code_number'
4582         and `other_code_number'.
4583         (find_split_point): Likewise for variables `pos', `unsignedp' and
4584         `inner'.
4585         (simplify_if_then_else): Likewise for variables `op' and `c1'.
4586         (simplify_and_const_int): Remove unused variable `width'.
4587         (merge_outer_ops): Likewise.
4588
4589         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
4590         HOST_WIDE_INT' when comparing against one.
4591         (simplify_relational_operation): Likewise.
4592         (cse_insn): Initialize variables `src_eqv_volatile',
4593         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
4594
4595         * final.c (init_final): Constify parameter `filename'.
4596         (final_start_function): Mark parameter `optimize' with
4597         ATTRIBUTE_UNUSED.
4598         (profile_function): Likewise for parameters `first' and `optimize'.
4599         (output_source_line): Likewise for parameter `file'.
4600
4601         * integrate.c (subst_constants): Cast a value to `size_t' when
4602         comparing against one.
4603         (mark_stores): Initialize variable `mode'.  Cast a value to
4604         `size_t' when comparing against one.
4605
4606         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
4607
4608         * loop.c (move_movables): Initialize variable `first'.
4609         (strength_reduce): Likewise for variable `increment'.
4610         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
4611         value to `size_t' when comparing against one.
4612         (load_mems): Initialize variable `end_label'.
4613
4614         * output.h (init_final): Constify parameter.
4615
4616         * reload.c (decompose): Initialize variable `base'.
4617
4618         * reload1.c (reload): Likewise for variable `is_scalar'.
4619         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
4620         (choose_reload_regs): Initialize variable `mode'.
4621         (emit_reload_insns): Likewise for variable `store_insn'.
4622         (reload_cse_noop_set_p): Mark parameter `insn' with
4623         ATTRIBUTE_UNUSED.
4624         (reload_combine): Initialize variable `set'.
4625
4626         * unroll.c (unroll_loop): Likewise for variable `local_label'.
4627         (copy_loop_body): Cast a value to `size_t' when comparing against
4628         one.
4629
4630         * varasm.c (assemble_variable): Initialize variable `size_tree'.
4631         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
4632         (remove_from_pending_weak_list): Mark parameter `name' with
4633         ATTRIBUTE_UNUSED.
4634
4635 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4636
4637         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
4638         gcse dump file.
4639
4640 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
4641
4642         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
4643         (ASM_DECLARE_FUNCTION_NAME): Define.
4644         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
4645         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
4646         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
4647         not already defined.
4648
4649 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4650
4651         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
4652         of n_popped when call/call_value are not defined.
4653
4654 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
4655
4656         * tm.texi: GNU CC -> GCC conversion.
4657         (CC1_SPEC): Indicate it is used for all language front ends.
4658
4659 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
4660
4661         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
4662         NOTE_INSN_EH_REGION_END correctly.
4663
4664 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
4665                           Jeff Law <law@cygnus.com>
4666
4667         * loop.c (strength_reduce): Automatically unroll loops if the
4668         unrolled loop size is smaller than the rolled loop size.
4669
4670         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
4671         and delete comment that code should be rewritten.
4672
4673 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
4674
4675         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
4676         as reachable.
4677
4678         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
4679
4680 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
4681
4682         * fixinc/mkfixinc.sh: Don't fix uwin headers.
4683         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
4684         (LINK_SPEC): Add -u _main when building executables.
4685         (ASM_DECLARE_FUNCTION): Update from Cygwin.
4686         (ASM_FILE_END): Use the default for ix86-pe.
4687         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
4688
4689 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
4690
4691         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
4692         and ASM_CLOSE_PAREN are empty strings.
4693
4694 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
4695                           Geoffrey Keating <geoffk@cygnus.com>
4696
4697         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
4698         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
4699         (unprotoize.o): Ditto.
4700         (test-protoize-simple): Don't define STD_PROTO_DIR.
4701         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
4702         changes to make 'test-protoize-simple' pass.
4703         (STD_PROTO_DIR): Remove define.
4704         (STANDARD_EXEC_PREFIX): Supply default define.
4705         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
4706         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
4707         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
4708         (GET_ENV_PATH_LIST): New macro.
4709         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
4710         (do_processing): Initialize default_syscalls_dir using new
4711         macros.  Use it to initialize syscalls_absolute_filename.
4712
4713 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
4714
4715         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
4716         B into a register before emit_conditional_move.
4717
4718 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
4719
4720         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
4721         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
4722         multiplicand out of (+ (* a b) (* c d)).
4723
4724 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
4725                           Richard Henderson  <rth@cygnus.com>
4726
4727         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
4728         (new_insn_dead_notes): Likewise.
4729         (update_n_sets): Likewise.
4730         (update_flow_info): Move to flow.c, renamed to update_life_info;
4731         extend to handle multiple source insns.
4732         * flow.c: Include resource.h
4733         (unlink_insn_chain): New.
4734         (split_hard_reg_notes): New.
4735         (maybe_add_dead_note): New.
4736         (maybe_add_dead_note_use): New.
4737         (find_insn_with_note): New.
4738         (new_insn_dead_notes): New.
4739         (update_n_sets): New.
4740         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
4741         (maybe_remove_dead_notes): New.
4742         (update_life_info): New.
4743         (prepend_reg_notes): New.
4744         (replace_insns): New.
4745         * output.h (update_life_info): Declare.
4746         * recog.c (split_block_insns): Use update_life_info.
4747         * resource.c (find_free_register): Use reg_alloc_order, don't use
4748         fixed regs, make sure the mode is supported, don't use new regs.
4749         (reg_dead_p): New.
4750         * rtl.h (replace_insns): Declare.
4751
4752 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
4753
4754         * expr.c (expand_expr): Cope with COND_EXPRs with one
4755         non-returning branch.
4756
4757 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
4758
4759         * expr.c (store_expr): Always pass down the target, even when not
4760         doing CSE.
4761
4762 1999-08-24  Nick Clifton  <nickc@cygnus.com>
4763
4764         * configure.in: Define target_cpu_default for v850 targets.
4765         * configure: Regenerate
4766
4767         * config/v850/v850.h (TARGET_CPU_generic): Define.
4768         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
4769         addresses are 4 byte aligned.
4770
4771         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
4772         addresses.
4773
4774 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4775
4776         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
4777         (main): Add prototypes.
4778
4779         * genattrtab.c (substitute_address, write_const_num_delay_slots,
4780         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
4781         (write_attr_get): Emit prototypes along with function definition.
4782         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
4783         (write_complex_function): Emit static prototype along with
4784         function definition.
4785
4786         * genemit.c (gen_split): Emit prototypes along with function
4787         definition.
4788
4789         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
4790         Likewise for predicates and `insn_operand_predicate'.
4791         (process_template): Emit static prototype along with function
4792         definition.
4793
4794         * genrecog.c (make_insn_sequence): Constify a char*.  Add
4795         prototypes for get_split_*().
4796         (write_subroutine): Emit prototypes along with function
4797         definition.
4798
4799 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4800
4801         * gcse.c (find_avail_set): Follow chains of register-register copies.
4802         Use oprs_not_set_p to guarantee that the returned value can be
4803         substituted.
4804         (cprop_insn): Don't verify the return value of find_avail_set with
4805         oprs_not_set_p.
4806
4807         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
4808         (cprop_cc0_jump): New function.
4809         (cprop_insn): Break out new function cprop_jump and use it.
4810         Also use cprop_cc0_jump for machines with CC0.
4811         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
4812
4813         * tree.h (current_function_calls_setjmp,
4814         current_function_calls_longjmp): Delete declarations.
4815         * dsp16xx.c: Include "function.h".
4816         * elxsi.c: Likewise.
4817         * gmicro.c: Likewise.
4818         * h8300.c: Likewise.
4819         * i370.c: Likewise.
4820         * m32r.c: Likewise.
4821         * mn10200.c: Likewise.
4822         * mn10300.c: Likewise.
4823         * ns32k.c: Likewise.
4824         * spur.c: Likewise.
4825         * v850.c: Likewise.
4826
4827         * rtl.h (rtx_equal_function_value_matters): Declare.
4828         * toplev.c (rtx_equal_function_value_matters): Don't declare.
4829         * cse.c: Likewise.
4830         * function.c: Likewise.
4831         * emit-rtl.c: Likewise.
4832
4833 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
4834
4835         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
4836         call.
4837
4838 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4839
4840         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
4841         exactly.
4842
4843 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
4844
4845         * cpp.texi: Add a node documenting macro varargs (copied
4846         from extend.texi).
4847
4848 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
4849
4850         * cppspec.c: Put a null pointer at the end of the new argv.
4851
4852 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
4853
4854         * configure.in: Remove code to select/de-select the haifa
4855         scheduler.  Every scheduled port gets haifa now.
4856         * configure: Rebuilt.
4857         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
4858         * sched.c Deleted.
4859         * Makefile.in: Corresponding changes.
4860
4861 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4862
4863         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
4864         All callers changed.
4865         (prepare_float_lib_cmp): Likewise.
4866         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
4867         * expr.h (emit_float_lib_cmp): Delete declaration.
4868         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
4869         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
4870         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
4871         specially.
4872         (cmptf): Now conditional on TARGET_HARD_QUAD.
4873
4874 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
4875
4876         * resource.c (mark_target_live_regs): Use
4877         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
4878
4879 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4880
4881         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
4882
4883         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
4884
4885         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
4886
4887 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4888
4889         * rtl.h (rtx_format): Constify a char*.
4890
4891         * rtl.c (rtx_format): Likewise.
4892         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
4893         (init_rtl): Use accessor macro, not `rtx_format'.
4894
4895         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
4896         char*.
4897
4898         * caller-save.c (mark_referenced_regs): Likewise.
4899
4900         * combine.c (subst, make_compound_operation, known_cond,
4901         gen_rtx_combine, update_table_tick, get_last_value_validate,
4902         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
4903
4904         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
4905         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
4906         count_reg_usage): Likewise.
4907
4908         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
4909         Likewise.
4910
4911         * final.c (leaf_renumber_regs_insn): Likewise.
4912
4913         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
4914         dump_edge_info, count_reg_references): Likewise.
4915
4916         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
4917         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
4918         Likewise.
4919
4920         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
4921         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
4922         add_label_notes): Likewise.
4923
4924         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
4925         clear_struct_flag, count_sub_rtxs, count_alternatives,
4926         compares_alternatives_p, contained_in_p, walk_attr_value,
4927         write_expr_attr_cache): Likewise.
4928
4929         * genconfig.c (walk_insn_part): Likewise.
4930
4931         * genemit.c (max_operand_1, gen_exp): Likewise.
4932
4933         * genextract.c (walk_rtx): Likewise.
4934
4935         * genflags.c (num_operands): Likewise.
4936
4937         * genoutput.c (scan_operands): Likewise.
4938
4939         * genpeep.c (match_rtx): Likewise.
4940
4941         * genrecog.c (add_to_sequence): Likewise.
4942
4943         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
4944         Likewise.
4945
4946         * integrate.c (save_constants, copy_for_inline,
4947         copy_rtx_and_substitute, subst_constants, restore_constants):
4948         Likewise.
4949
4950         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
4951         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
4952
4953         * local-alloc.c (contains_replace_regs, memref_referenced_p):
4954         Likewise.
4955
4956         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
4957         add_label_notes, replace_call_address, count_nonfixed_reads,
4958         invariant_p, find_single_use_in_loop, find_mem_givs,
4959         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
4960         Likewise.
4961
4962         * print-rtl.c (reg_names, print_rtx): Likewise.
4963
4964         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
4965
4966         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
4967         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
4968         print_blocks): Likewise.
4969
4970         * regclass.c (fix_register, record_address_regs,
4971         reg_scan_mark_refs): Likewise.
4972
4973         * regmove.c (stable_but_for_p): Likewise.
4974
4975         * reload.c (loc_mentioned_in_p, operands_match_p,
4976         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
4977         copy_replacements, refers_to_regno_for_reload_p,
4978         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
4979         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
4980         Likewise.
4981
4982         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
4983         delete_address_reloads_1, count_occurrences,
4984         reload_cse_mem_conflict_p, reload_combine_note_use,
4985         add_auto_inc_notes): Likewise.
4986
4987         * resource.c (mark_referenced_resources, mark_set_resources):
4988         Likewise.
4989
4990         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
4991         reg_mentioned_p, regs_set_between_p, modified_between_p,
4992         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
4993         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
4994         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
4995         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
4996
4997         * sched.c (sched_analyze_2, attach_deaths): Likewise.
4998
4999         * stupid.c (stupid_mark_refs): Likewise.
5000
5001         * unroll.c (remap_split_bivs): Likewise.
5002
5003         * varasm.c (mark_constants): Likewise.
5004
5005         * a29k/a29k.c (uses_local_reg_p): Likewise.
5006
5007         * alpha/alpha.c (summarize_insn): Likewise.
5008
5009         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
5010         eliminate_lr2ip): Likewise.
5011
5012         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
5013
5014         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
5015         reg_mentioned_in_mem): Likewise.
5016
5017         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
5018         symbolic_reference_mentioned_p): Likewise.
5019
5020         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
5021
5022         * sh/sh.c (regs_used, mark_use): Likewise.
5023
5024         * vax/vax.c (vax_rtx_cost): Likewise.
5025
5026 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5027
5028         * machmode.h (mode_name): Constify a char*.
5029
5030         * rtl.c (mode_name): Likewise.
5031
5032         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
5033
5034         * optabs.c (init_libfuncs): Constify a char*.
5035
5036         * print-tree.c (mode_name): Remove redundant declaration.
5037         (print_node): Use accessor macro, not `mode_name'.
5038
5039         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
5040         not `mode_name'.
5041         (new_spill_reg): Constify a char*.
5042
5043         * tree.c (mode_name): Remove redundant declaration.
5044
5045 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5046
5047         * rtl.c (rtx_name): Constify a char*.
5048
5049         * rtl.h (rtx_name, fix_sched_param): Likewise.
5050
5051         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
5052         (mypr): Use accessor macro, not `rtx_name'.
5053
5054         * genemit.c (print_code): Constify a char*.
5055
5056         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
5057
5058         * genpeep.c (print_code): Constify a char*.
5059
5060         * genrecog.c (print_code): Likewise.
5061
5062         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
5063         end_bb): Add static prototype.
5064         (draw_edge): Constify a char*.
5065         (end_bb): Remove unused parameter.
5066
5067         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
5068         print_block_visualization): Constify a char*.
5069
5070 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
5071
5072         * c-common.c (c_get_alias_set): Update comment.
5073
5074 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
5075
5076         * linux.h (LIB_SPEC): Added.
5077
5078 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5079
5080         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
5081
5082 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
5083
5084         * tree.c (expr_check): Fix typo in last change.
5085
5086 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
5087
5088         * rtl.def (NOTE): Change format to "iuu0n".
5089         (ADDR_DIFF_VEC): Change format to "eEee0".
5090         (ADDRESSOF): Change format to "eit".
5091
5092         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
5093         (RTVEC_ELT): Change to match.
5094         (XVECEXP): Use XVEC and RTVEC_ELT.
5095         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
5096         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
5097         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
5098         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
5099         TRAP_CONDITION, TRAP_CODE): Use XEXP.
5100         (INTVAL): Use XWINT.
5101         (ADDRESSOF_DECL): Use XTREE.
5102         (SET_ADDRESSOF_DECL): Delete.
5103         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
5104         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
5105         ifdefed out since 2.6 at least.
5106         (gen_rtvec_vv): Delete prototype.
5107
5108         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
5109         not rtunion.
5110         (copy_most_rtx): Handle 't' format letter.
5111         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
5112         (gen_rtvec_vv): Delete function.  All callers changed to use
5113         gen_rtvec_v instead.
5114         * print-rtl.c (print_rtx): Move special casing of NOTEs to
5115         the '0' format letter.
5116
5117         * function.c (gen_mem_addressof): Don't use
5118         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
5119         instead.
5120         * integrate.c (copy_rtx_and_substitute): Likewise.
5121         Copy 't' slots with XTREE.
5122         (subst_constants): Treat 't' slots like '[swi]' slots.
5123         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
5124         * jump.c (rtx_equal_for_thread_p): Likewise.
5125         * rtlanal.c (rtx_equal_p): Likewise.
5126         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
5127         only four arguments.
5128         * gengenrtl.c (type_from_format): Provide correct types for
5129         'b' and 't' slots.
5130
5131
5132         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
5133         If a recent gcc is in use (always in stage2 and beyond), use
5134         statement expressions, so we don't make a function call unless
5135         the check fails.  Evaluate arguments exactly once.
5136         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
5137         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
5138         Delete.
5139         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
5140         they evaluate their arguments exactly once, irrespective of
5141         the compiler in use.
5142
5143         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
5144         is used by the currently-enabled check macros.  This is:
5145         (tree_check_failed, tree_class_check_failed): For gcc.
5146         (tree_check, tree_class_check, cst_or_constructor_check,
5147         expr_check): For other compilers.
5148
5149         * gencheck.c: Do not define any *_CHECK1 macros.
5150
5151 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
5152                           Mark Mitchell <mark@codesourcery.com>
5153
5154         * c-common.c (c_get_alias_set): Fix support for poitners and
5155         references.
5156
5157 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
5158
5159         * alias.c: Include tree.h.
5160         (nonlocal_reference_p, mark_constant_function): New functions.
5161         * flow.c (life_analysis): Call mark_constant_function.
5162         * rtl.h (mark_constant_function): Declare it.
5163
5164 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
5165
5166         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
5167         unrecognisable switches.
5168
5169 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5170
5171         * loop.c (recombine_givs): Set ix field after sorting.
5172         (recombine_givs): Remove bogus index / giv lockstep looping.
5173
5174 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5175
5176         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
5177         on CODE.
5178         (emit_store_flag_force): Use do_compare_rtx_and_jump.
5179         (do_cmp_and_jump): Formatting fixes.
5180         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
5181         do_compare_rtx_and_jump instead of compare_from_rtx.
5182         (do_compare_rtx_and_jump): New function; mostly copied from
5183         compare_from_rtx.
5184         (do_jump_for_compare): Delete.
5185         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
5186         MIN_EXPR.
5187         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
5188         of compare/do_jump_for_compare pairs.
5189         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
5190         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
5191         compare_from_rtx/do_jump_for_compare pairs.
5192         (do_jump_by_parts_equality): Likewise.
5193         (do_jump_by_parts_equality_rtx): Likewise.
5194         * expr.h (do_compare_rtx_and_jump): Declare.
5195         * optabs.c (prepare_cmp_insn): New function, contains most of the code
5196         that used to be in emit_cmp_insn.
5197         (cmp_available_p): New function.
5198         (prepare_operand): New function.
5199         (emit_cmp_and_jump_insn_1): New function, contains some code that used
5200         to be in emit_cmp_insn.
5201         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
5202         parameters to be pointers; don't emit final compare but modify some of
5203         the values pointed to by the args so the caller can perform the
5204         correct comparison.
5205         (expand_binop): Call emit_store_flag_force with signed forms of
5206         comparison code.
5207         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
5208         emit_jump_insn pair.
5209         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
5210         emit_cmp_and_jump_insn_1.  Call emit_queue.
5211         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
5212         arg.
5213         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
5214         jump sets cc0 before deleting it.
5215         * integrate.c (expand_inline_function): Likewise.
5216         * unroll.c (unroll_loop): Similar changes in several places.
5217         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
5218         before deleting it.
5219
5220 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5221
5222         * Makefile.in (insn-recog.o): Update dependencies.
5223         * genrecog.c (main): Make generated file include "function.h".
5224
5225 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
5226
5227         * cse.c (cse_insn): Call never_reached_warning when a jump is
5228         changed to be unconditional.
5229         * flags.h: Declare warn_notreached.
5230         * flow.c (delete_block): Call never_reached_warning when
5231         a block is deleted.
5232         * jump.c (delete_barrier_successors): Call never_reached_warning
5233         when we delete everything after a BARRIER.
5234         (never_reached_warning): New function.
5235         * rtl.h: Declare never_reached_warning.
5236         * toplev.c (warn_notreached): New variable.
5237         (lang_independent_options): Set warn_notreached
5238         when -Wunreachable-code.
5239         (compile_file): We need line numbers for -Wunreachable-code.
5240
5241 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
5242
5243         * haifa-sched.c (insn_unit): Fix typo on out of range test.
5244         * sched.c (insn_unit): Likewise.
5245
5246 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
5247
5248         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
5249
5250 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5251
5252         * flow.c (create_edge_list): Use xmalloc, not malloc.
5253
5254 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
5255
5256         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
5257         C-style comments.  Do not lose the character before double slash.
5258
5259 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5260
5261         * basic-block.h (struct edge_list): Stucture to maintain a vector
5262         of edges.
5263         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
5264          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
5265         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
5266         New function prototypes.
5267         * flow.c (create_edge_list): Function to create an edge list.
5268         (free_edge_list): Discards memory used by an edge list.
5269         (print_edge_list): Debug output showing an edge list.
5270         (verify_edge_list): Internal consistency check for an edge list.
5271         (find_edge_index): Function to find an edge index for a pred and succ.
5272
5273 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
5274
5275         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
5276         hashtable.
5277
5278 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
5279
5280         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
5281
5282 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5283
5284         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
5285
5286 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
5287
5288         * toplev.c (rest_of_compilation): Allow machine dependent
5289         reorganisation pass to place information into the RTL dump
5290         file if it so wishes.
5291
5292 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
5293
5294         * explow.c (hard_function_value): Use VOIDmode instead of
5295         MAX_MACHINE_MODE.
5296         * stmt.c (expand_return): Likewise.
5297         * stor-layout.c (get_best_mode): Likewise.
5298
5299         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
5300         emit call instead of emit_insn call.
5301
5302 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5303
5304         * configure.in: Handle --disable/enable-win32-registry.
5305         * install.texi: Document --disable/enable-win32-registry.
5306         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
5307         (WIN32_REGISTRY_KEY): New macro.
5308         * prefix.c: Use to enable/disable win32-specific code.
5309         (lookup_key): Use versioned key.
5310         * configure: Regenerate.
5311         * config.in: Likewise.
5312
5313 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
5314
5315         * cpplib.c (read_line_number): New fn, split out of...
5316         (do_line): Here.
5317
5318 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
5319
5320         tree.c (lang_unsave_expr_now) : New.
5321         (unsave_expr_now): Call lang_unsave_expr_now.
5322         tree.h (lang_unsave_expr_now) : New.
5323
5324 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
5325
5326         * toplev.c (flag_new_exceptions): On by default.
5327
5328 1999-08-13  Michael Meissner  <meissner@cygnus.com>
5329
5330         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
5331
5332 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
5333
5334         * dwarfout.c (fundamental_type_code): Return FT_boolean for
5335         INTEGER_TYPE with precision==1, it's __java_boolean.
5336
5337 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5338
5339         * global.c (prune_preferences): Move some invariants out of the
5340         inner loop.
5341
5342 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
5343
5344         * configure.in (alpha*-dec-osf*): Add osf5.
5345
5346 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
5347
5348         * configure.in: Rework handling of ARM GNU/Linux slightly.
5349         (arm*-*-linux-gnuoldld): New target.
5350         * configure: Regenerate.
5351         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
5352         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
5353         * config/arm/linux-oldld.h: New file.
5354         * config/arm/linux-elf26.h: Don't include linux-elf.h.
5355         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
5356         Don't define.
5357         * config/arm/linux-elf.h (ASM_SPEC): Define.
5358         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
5359         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
5360         for 26-bit APCS and old linker.
5361         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
5362         `arm_elf'.
5363         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
5364         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
5365         don't define `arm' or `arm_elf'.
5366         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
5367         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
5368
5369 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
5370
5371         * rtl.texi: Fix typo.
5372
5373 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
5374
5375         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
5376
5377 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
5378
5379         * extend.texi (C++ Signatures): Remove node.
5380         * invoke.texi: Remove discussion of -fhandle-signatures,
5381         signature, sigof, __signature__, and __sigof__.
5382
5383 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
5384
5385         * Makefile.in (JAVAGC): Removed.
5386
5387 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5388
5389         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
5390
5391 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
5392
5393         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
5394
5395 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
5396
5397         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
5398         a register that is already known to be a pointer.
5399
5400 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
5401
5402         * fixinc/inclhack.tpl: Only install assert.h conditionally.
5403         * fixinc/inclhack.sh: Regenerated.
5404         * fixinc/fixincl.sh: Regenerated.
5405
5406 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
5407
5408         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
5409         Fix documentation of -ansi flag to describe its C++ behavior.
5410         Remove bogus reference to GCC 2.9.
5411
5412 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
5413
5414         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
5415         note if it is non-NULL.
5416
5417 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5418
5419         * except.h (eh_nesting_info): Add new structure defintion.
5420         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
5421         (reachable_handlers, update_rethrow_references): Add function
5422         prototypes.
5423         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
5424         a rethrow symbol instead of an integer exception region number.
5425         * flow.c (Make_edges): Use new exception nesting routines to determine
5426         which handlers are reachable from a CALL or asynchronous insn.
5427         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
5428         goto receivers.
5429         (delete_eh_regions): Update rethrow labels, and don't delete
5430         regions which are the target of a rethrow.
5431         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
5432         avoid overloading the SYMBOL_REF_USED flag.
5433         (rethrow_symbol_map): Use new rethrow_ref field.
5434         (rethrow_used): Use new rethrow_ref field.
5435         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
5436         of an integer.  Fix formatting.
5437         (output_exception_table_entry): Use new rethrow_ref field.
5438         (can_throw): Check for EH_REGION_NOTE before deciding
5439         whether a CALL can throw or not.
5440         (scan_region): Call rethrow_used() instead of accessing data structure.
5441         (update_rethrow_references): New function to make sure only regions
5442         which are still targets of a rethrow are flagged as such.
5443         (process_nestinfo): New static function to initialize a handler
5444         list for a specific region.
5445         (init_eh_nesting_info): New function to allocate and initialize
5446         the list of all EH handlers reachable from all regions.
5447         (reachable_handlers): New function to retrieve the list of handlers
5448         reachable from a specific region and insn.
5449         (free_eh_nesting_info): New function to dispose of a list of
5450         reachable handlers.
5451
5452 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
5453
5454         * flow.c (split_edge): Set JUMP_LABEL field.
5455         (commit_one_edge_insertion): Set head correctly for insert_before.
5456         When inserting insns, update insn block numbers if allocated.
5457
5458 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5459
5460         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
5461         retry_incomplete_types): Add static prototype.
5462         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
5463         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
5464         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
5465         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
5466         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
5467         Constify a char*.
5468
5469         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
5470         dwarf2out_start_source_file, dwarf2out_line): Likewise.
5471
5472 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5473
5474         * output.h (assemble_name): Constify a char*.
5475
5476         * varasm.c (UNIQUE_SECTION, assemble_start_function,
5477         assemble_variable, assemble_name): Likewise.
5478
5479         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
5480
5481         * arm/pe.c (arm_pe_unique_section): Likewise.
5482
5483         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
5484
5485         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
5486
5487         * i386/interix.c (i386_pe_unique_section): Likewise.
5488
5489         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
5490
5491         * i386/winnt.c (i386_pe_unique_section): Likewise.
5492
5493         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
5494
5495         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
5496
5497         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
5498
5499         * pa/pa.c (output_call): Likewise.
5500
5501         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
5502
5503         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
5504
5505         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
5506         Likewise.
5507
5508         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
5509         Likewise.
5510
5511         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
5512
5513         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
5514         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
5515
5516         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
5517
5518 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5519
5520         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
5521
5522 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5523
5524         * tree.h (lang_identify): Constify a char*.
5525         (print_error_function): Add extern prototype.  Constify a char*.
5526
5527         * c-lang.c (lang_identify): Constify a char*.
5528
5529         * objc/objc-act.c (lang_identify): Constify a char*.
5530
5531 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5532
5533         * genpeep.c (main): Make generated file include "function.h".
5534         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
5535
5536 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5537
5538         * Makefile.in: Update dependencies.
5539         * alias.c: Include "function.h"
5540         * c-decl.c: Likewise.
5541         * caller-save.c: Likewise.
5542         * calls.c: Likewise.
5543         * combine.c: Likewise.
5544         * cse.c: Likewise.
5545         * explow.c: Likewise.
5546         * final.c: Likewise.
5547         * global.c: Likewise.
5548         * graph.c: Likewise.
5549         * local-alloc.c: Likewise.
5550         * loop.c: Likewise.
5551         * optabs.c: Likewise.
5552         * profile.c: Likewise.
5553         * recog.c: Likewise.
5554         * regclass.c: Likewise.
5555         * regmove.c: Likewise.
5556         * reload.c: Likewise.
5557         * reorg.c: Likewise.
5558         * resource.c: Likewise.
5559         * sched.c: Likewise.
5560         * stupid.c: Likewise.
5561         * config/1750a/1750a.c: Likewise.
5562         * config/a29k/a29k.c: Likewise.
5563         * config/arc/arc.c: Likewise.
5564         * config/arm/arm.c: Likewise.
5565         * config/arm/thumb.c: Likewise.
5566         * config/c4x/c4x.c: Likewise.
5567         * config/clipper/clipper.c: Likewise.
5568         * config/convex/convex.c: Likewise.
5569         * config/fx80/fx80.c: Likewise.
5570         * config/i860/i860.c: Likewise.
5571         * config/m68k/m68k.c: Likewise.
5572         * config/m88k/m88k.c: Likewise.
5573         * config/mips/mips.c: Likewise.
5574         * config/pdp11/pdp11.c: Likewise.
5575         * config/pyr/pyr.c: Likewise.
5576         * config/romp/romp.c: Likewise.
5577         * config/sh/sh.c: Likewise.
5578         * config/tahoe/tahoe.c: Likewise.
5579         * config/vax/vax.c: Likewise.
5580         * config/we32k/we32k.c: Likewise.
5581         * config/sparc/sparc.c: Include "function.h".
5582         (mem_min_alignment): Test current_function rather than
5583         regno_pointer_align.
5584         * config/pa/pa.c: Likewise.
5585         (compute_frame_size): Delete declaration of
5586         current_function_outgoing_args_size.
5587         * config/arc/arc.h (current_function_varargs): Delete declaration.
5588         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
5589         declaration.
5590         * config/i370/i370.h (current_function_outgoing_args_size): Delete
5591         declaration.
5592         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
5593         current_function_uses_pic_offset_table.
5594         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
5595         of current_function_returns_pointer.
5596         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5597         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5598         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5599         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5600         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5601         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
5602         * config/m88k/m88k.c: Include "function.h"
5603         (call_used_regs, current_function_pretend_args_size,
5604         current_function_outgoing_args_size, frame_pointer_needed): Delete
5605         declarations.
5606         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
5607         declaration.
5608         * config/mips/mips.h (current_function_calls_alloca): Delete
5609         declaration.
5610         * config/mn10200/mn10200.h (current_function_needs_context,
5611         rtx_equal_function_value_matters): Delete declarations.
5612         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
5613         flag_pic): Delete declarations.
5614         * config/pa/pa.h (current_function_pretend_args_size,
5615         current_function_decl): Delete declarations.
5616         * config/pa/som.h (current_function_varargs): Delete declaration.
5617         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
5618         declaration.
5619         * config/pyr/pyr.h (current_function_pretend_args_size,
5620         current_function_args_size, current_function_calls_alloca): Delete
5621         declarations.
5622         * config/sh/sh.h (current_function_varargs): Delete declaration.
5623         * config/sparc/sparc.h (current_function_outgoing_args_size,
5624         current_function_calls_alloca, current_function_decl): Delete
5625         declarations.
5626         * config/spur/spur.h (current_function_pretend_args_size,
5627         current_function_calls_alloca): Delete declarations.
5628         * config/v850/v850.c (current_function_outgoing_args_size): Delete
5629         declaration.
5630         * config/vax/vms.h (current_function_name): Delete declaration.
5631         * gcse.c: Include "function.h".
5632         (current_function_name, current_function_calls_setjmp): Delete
5633         declarations.
5634         * haifa-sched.c: Include "function.h".
5635         (forced_labels): Delete declaration.
5636         * jump.c: Likewise.
5637         * reg-stack.c: Likewise.
5638         * reload1.c: Likewise.
5639         * genemit.c (main): Make generated file include function.h.
5640         * genoutput.c (output_prologue): Likewise.
5641
5642         * builtins.c (saveregs_value, apply_args_value): Delete variables.
5643         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
5644         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
5645         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
5646         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
5647         macros for some of them.
5648         (emit_filename, emit_lineno): Delete declarations.
5649         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
5650         regno_pointer_* variables through current_function.
5651         (gen_inline_header_rtx): Delete function.
5652         (save_emit_status): Delete function.
5653         (set_new_last_label_num): New function.
5654         (clear_emit_caches): New function.
5655         (restore_emit_status): Just clear last_labelnum and call
5656         clear_emit_caches.
5657         (get_last_insn_anywhere): Variable sequence_stack is now accessed
5658         through macro seq_stack.
5659         (add_insn_after): Likewise.
5660         (add_insn_before): Likewise.
5661         (remove_insn): Likewise.
5662         (pop_topmost_sequence): Likewise.
5663         (in_sequence_p): Likewise.
5664         (start_sequence_for_rtl_expr): Likewise.
5665         (start_sequence): Likewise, and likewise for
5666         sequence_rtl_expr/seq_rtl_expr.
5667         (push_topmost_sequence): Likewise.
5668         (end_sequence): Likewise.
5669         (init_virtual_regs): Now takes a "struct emit_status *" argument.
5670         All callers changed.  Store into that pointer instead of globals.
5671         (init_emit): Allocate emit elt of current_function.
5672         Changes for sequence_rtl_expr/sequence_stack renaming.
5673         Call clear_emit_caches instead of doing it in-line.
5674         Access regno_pointer_* variables through current_function.
5675         (init_emit_once) Don't clear sequence_stack.
5676
5677         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
5678         Delete variables.
5679         (arg_pointer_save_area): Delete declaration.
5680         (finish_expr_for_function): Renamed from init_queue; no longer static.
5681         (init_expr): Don't call init_queue.
5682         (save_expr_status, restore_expr_status): Delete functions.
5683         (expand_expr): Changes to reflect new layout of struct function.
5684         Don't access current_function_check_memory_usage when current_function
5685         is 0.
5686         * expr.h (forced_labels, save_expr_regs, saveregs_value,
5687         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
5688         current_function_outgoing_args_size, current_function_arg_offset_rtx,
5689         current_function_uses_const_pool, function_call_count,
5690         current_function_uses_pic_offset_table, nonlocal_labels,
5691         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
5692         current_function_check_memory_usage, nonlocal_goto_handler_slots,
5693         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
5694         declarations.
5695         (finish_expr_for_function): Declare.
5696         * flags.h (current_function_has_nonlocal_label,
5697         current_function_has_nonlocal_goto, current_function_is_thunk,
5698         current_function_has_computed_jump): Delete declarations.
5699         * flow.c (forced_labels): Delete declaration.
5700         * function.c (current_function_pops_args,
5701         current_function_returns_struct, current_function_returns_pcc_struct,
5702         current_function_needs_context, current_function_calls_setjmp,
5703         current_function_calls_longjmp, current_function_has_nonlocal_label,
5704         current_function_has_nonlocal_goto, current_function_is_thunk,
5705         current_function_has_computed_jump, current_function_calls_alloca,
5706         current_function_contains_functions, current_function_returns_pointer,
5707         current_function_epilogue_delay_list, current_function_args_size,
5708         current_function_pretend_args_size, current_function_arg_offset_rtx,
5709         current_function_outgoing_args_size, current_function_varargs,
5710         current_function_stdarg, current_function_args_info, cleanup_label,
5711         current_function_name, current_function_uses_const_pool,
5712         current_function_instrument_entry_exit, current_function_return_rtx,
5713         current_function_uses_pic_offset_table, nonlocal_labels,
5714         current_function_internal_arg_pointer, current_function_cannot_inline,
5715         current_function_check_memory_usage, function_call_count,
5716         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
5717         nonlocal_goto_stack_level, return_label, save_expr_regs,
5718         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
5719         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
5720         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
5721         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
5722         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
5723         Delete variables.
5724         (push_function_context_to): Don't save them.  Don't call
5725         save_storage_status, save_emit_status or save_expr_status.
5726         (pop_function_context_from): Don't restore them.  Don't call
5727         restore_storage_status or restore_expr_status.
5728         (get_func_frame_size): New function.
5729         (get_frame_size): Use it.
5730         (assign_outer_stack_local): Reflect some member name changes in struct
5731         function.
5732         (put_reg_into_stack): Likewise.
5733         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
5734         seq_rtl_expr.
5735         (fixup_var_refs): Likewise.
5736         (fix_lexical_addr): Likewise.
5737         (trampoline_address): Likewise.
5738         (prepare_function_start): Clear field inlinable of current_function.
5739         (init_function_for_compilation): New function.
5740         (expand_dummy_function_end): New function.
5741         (expand_function_end): Call finish_expr_for_function.
5742         * function.h (struct emit_status): New; fields moved here from struct
5743         function and from global variables.  Add accessor macros for some of
5744         the fields.
5745         (struct expr_status): Likewise.
5746         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
5747         (struct function): Add fields expr and emit, inlinable, inl_emit,
5748         original_arg_vector, original_decl_initial, inl_last_parm_insn,
5749         inl_max_label_num.  Add many comments.
5750         Add accessor macros for all elts of struct function that no longer
5751         have a global variable.
5752         (cleanup_label, return_label, frame_offset, tail_recursion_label,
5753         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
5754         stack_slot_list): Delete declarations.
5755         (get_func_frame_size): Declare.
5756         (save_expr_status, restore_expr_status, save_emit_status,
5757         save_storage_status, restore_storage_status): Delete declarations.
5758         (init_virtual_regs): Declare.
5759         * output.h (current_function_pops_args,
5760         current_function_returns_struct, current_function_returns_pcc_struct,
5761         current_function_needs_context, current_function_calls_setjmp,
5762         current_function_calls_longjmp, current_function_calls_alloca,
5763         current_function_has_nonlocal_label, current_function_varargs,
5764         current_function_has_computed_jump, current_function_returns_pointer,
5765         current_function_contains_functions, current_function_args_size,
5766         current_function_pretend_args_size, current_function_stdarg,
5767         current_function_outgoing_args_size, current_function_args_info,
5768         current_function_name, current_function_return_rtx,
5769         current_function_epilogue_delay_list,
5770         current_function_uses_const_pool, current_function_cannot_inline):
5771         Delete declarations.
5772         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
5773         regno_reg_rtx): Delete declaration.
5774         (REGNO_POINTER_FLAG): Delete macro.
5775         * stmt.c (expand_goto): Changes to reflect that some fields in struct
5776         function were renamed.
5777         * stor-layout.c (save_storage_status, restore_storage_status): Delete
5778         functions.
5779         * toplev.c: Include "function.h".
5780         (current_function_decl): Delete declaration.
5781         (compile_file): Call init_dummy_function_start and
5782         expand_dummy_function_end around some initializations that need to
5783         emit rtl.
5784         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
5785         Call init_function_for_compilation.
5786         * unroll.c: Include "function.h"
5787         (unroll_loop): Access regno_pointer_* variables through
5788         current_function.
5789
5790         * tree.h (struct tree_decl): Add elt f to saved_insns member.
5791         (DECL_SAVED_INSNS): use it.
5792         (expand_dummy_function_end): Declare.
5793         (init_function_for_compilation): Declare.
5794         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
5795         that it's no longer an INLINE_HEADER.
5796         (expand_call): Likewise.
5797         * integrate.c (finish_inline): Delete function.
5798         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
5799         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
5800         args.  Don't generate an INLINE_HEADER rtx, just return the arg
5801         vector.  All callers changed.
5802         (save_for_inline_copying):  Create a duplicate struct emit_status to
5803         hold the emit state for compiling the current function.  Use this and
5804         the other new fields in struct function that are for integration
5805         instead of an INLINE_HEADER.
5806         Use memcpy instead of bcopy.
5807         Store the current struct function in DECL_SAVED_INSNS of fndecl.
5808         (save_for_inline_nocopy): Similar changes, except no new emit_status
5809         is needed here.
5810         (expand_inline_function): Get information from function structure,
5811         not from an inline header rtx.
5812         (output_inline_function): Lose code to extract the necessary
5813         information from an inline header; simply put back the function
5814         structure into current_function.  Clear its inlinable elt.
5815         * rtl.def (INLINE_HEADER): Delete.
5816         * rtl.h: Delete all accessors for an INLINE_HEADER.
5817         (gen_inline_header_rtx): Delete declaration.
5818         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
5819         Delete declarations.
5820         (REGNO_POINTER_ALIGN): Delete.
5821         (clear_emit_caches): Declare.
5822         (set_new_last_label_num): Declare.
5823
5824 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
5825
5826         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
5827
5828         * except.c (expand_eh_region_start_for_decl): Always start a new block.
5829         * stmt.c (is_eh_region): Make sure current_function is present, too.
5830
5831 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
5832
5833         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
5834         for 64bit PA targets.
5835
5836         * pa.h (SELECT_SECTION): Define.
5837         * som.h (SELECT_SECTION): Delete.
5838
5839 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5840
5841         * alias.c (init_alias_analysis): Wrap call to
5842         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
5843
5844 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
5845
5846         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
5847         <sys/asm.h> contains an asm comment with an apostrophe
5848         * fixinc/inclhack.sh:  regen
5849         * fixinc/fixincl.x:  regen
5850
5851 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
5852
5853         * function.c (init_function_start): Clear prologue & epilogue.
5854         (prologue_epilogue_contains): New function.
5855         * alias.c (init_alias_analysis): Use it.
5856         * rtl.h (prologue_epilogue_contains): Declare it.
5857
5858 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
5859
5860         * jump.c (onlyjump_p): New function.
5861         * rtl.h: Declare it.
5862         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
5863         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
5864
5865 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
5866
5867         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
5868         to invert loops.  Simplify block scanning.
5869
5870 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
5871
5872         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
5873         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
5874
5875 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
5876
5877         * config/sparc/liteelf.h: New file to support sparclite-elf target
5878         * config/sparc/t-sp86x: New file to support sparc86x targets
5879         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
5880         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
5881         * configure.in: Support above target triplets
5882         * configure: Regenerated
5883
5884 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
5885
5886         * fixinc/server.c (server_setup): Do not prefix function used as
5887         parameter with `&'.
5888
5889 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
5890
5891         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
5892         Remove fp reg alternatives.
5893
5894 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
5895
5896         * Makefile.in (TAROUTOPTS): Kill.
5897         (install-headers-tar): Use "xpf" for tar headerfile extraction
5898         * i370/x-oe (TAROUTOPTS): Delete.
5899         * m68k/x-apollo68 (TAROUTOPTS): Delete.
5900         * m68k/x-hp320 (TAROUTOPTS): Delete.
5901         * m68k/x-hp320g (TAROUTOPTS): Delete.
5902         * gcc.texi: Update bug reporting text.
5903
5904 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5905
5906         * reg-stack.c (change_stack) Fixed problem with negative array index.
5907
5908 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
5909
5910         * extend.texi, install.texi: Fix spelling mistakes.
5911
5912         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
5913         (s-attrtab); No longer try to use pre-made insn-attrtab file.
5914         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
5915         PREMADE_ATTRTAB_MD.
5916         * mips/t-ecoff: Likewise.
5917         * mips/t-elf: Likewise.
5918         * mips/t-mips: Likewise.
5919         * mips/t-osfrose: Likewise.
5920         * mips/t-r3900: Likewise.
5921         * mips/t-svr3: Likewise.
5922         * mips/t-svr4: Likewise.
5923         * mips/t-ultrix: Likewise.
5924
5925         * gcc.texi: Document recommend means to provide software floating
5926         point libraries in libgcc.a
5927
5928 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
5929
5930         * c-lex.c (yylex): We can have a number with no digits.
5931
5932 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
5933
5934         * jump.c (delete_prior_computation): New function, broken
5935         out of delete_computation.  Check for side effects with
5936         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
5937         multi-word hard registers.
5938         (delete_computation): Use it.  Check for side effects with
5939         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
5940         missing REG_DEAD note for a register which is both set and
5941         used by an insn.
5942
5943 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
5944
5945         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
5946         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
5947         (ASM_FILE_START): Import _mcount with the right type.
5948         (ASM_DECLARE_FUNCTION_NAME): Define.
5949         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
5950         * pa.c (output_function_prologue): Always emit the function's label
5951         here.
5952         * pa.h (TEXT_SPACE_P): Define.
5953         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
5954         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
5955         * som.h (TEXT_SPACE_P): Delete.
5956         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
5957         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
5958
5959 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
5960
5961         * expr.c (emit_group_load): Allow src to be a CONCAT.
5962
5963 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5964
5965         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
5966         (___mulsi3): Use '!' comment character.
5967
5968 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5969
5970         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
5971
5972 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
5973
5974         * gcc.c: Update URLs and mail addresses.
5975         * gcc.texi: Likewise.
5976
5977 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
5978
5979         * rs6000.c (current_file_function_operand): Return zero for
5980         weak functions.
5981         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
5982         weak symbols.
5983         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
5984         for weak symbols.
5985
5986 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
5987
5988         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
5989         allocate space in the stack frame for the PIC register.
5990
5991 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
5992
5993         * m68k.md (xordi3, anddi3): These patterns are not available on
5994         the coldfire.
5995
5996 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
5997
5998         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
5999         (PUT_REAL): Likewise.
6000
6001 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6002
6003         * final.c (shorten_branches): Don't add an alignment for loops
6004         that have no label inside.
6005
6006 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6007
6008         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
6009         prototypes in macro HAVE_cmpstrsi.
6010
6011         * cpplib.c (cpp_get_token): Remove unused label `op3'.
6012
6013         * emit-rtl.c (operand_subword): Remove unused variable
6014         `bits_per_word'.
6015
6016         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
6017
6018         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
6019
6020 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
6021
6022         * cpphash.c (macroexpand): Delete leading whitespace when arg
6023         is concatenated before.
6024         (unsafe_chars): Correct test for whether + and - can extend a
6025         token.
6026
6027         * cppinit.c (cpp_start_read): Do dependencies for
6028         -include/-imacros files also.
6029
6030         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
6031         tokenizing non-directive lines.
6032         (cpp_expand_to_buffer): Temporarily disable no-output mode.
6033         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
6034         the input file.
6035
6036 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
6037
6038         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
6039
6040         * c-lex.c: Sync with C++ frontend.
6041         (linemode): New variable.
6042         (parse_float): imag, conversion_errno, and type are output only.
6043         (yylex): Adjust.  Move initial '.' case into main switch.
6044         Use linemode.
6045         (handle_generic_pragma): Just deal with tokens.
6046         (readescape): Use ISXDIGIT and ISGRAPH.
6047         * c-parse.in: Add END_OF_LINE token.
6048
6049         * c-lex.c (lang_init): Generalize.
6050         (nextchar): Remove.  Replace uses with UNGETC.
6051         (skip_white_space): Handle linemode here.  Optimize for cpplib.
6052         (skip_white_space_on_line): Remove.
6053         (extend_token_buffer_to): New fn.
6054         (extend_token_buffer): Use it.
6055         (read_line_number, check_newline): Just deal with tokens.
6056         (token_getch, token_put_back): New fns.
6057         (yylex): Use them.  More cpplib optimizations.  Simplify.
6058
6059 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
6060                           Jason Merrill  <jason@yorick.cygnus.com>
6061
6062         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
6063         (consume_string): Make this smart about USE_CPPLIB.
6064         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
6065         (yylex): Rewrite to be intelligent about USE_CPPLIB.
6066         Also, clean up cases where we redundantly set token_buffer[0].
6067         (read_line_number): New fn.
6068         (ignore_escape_flag): New variable.
6069
6070 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
6071
6072         * a29k/t-a29kbare: Fix some comments.
6073         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
6074         (FPBIT, DPBIT): Define.
6075         * a29k/t-vx29k: Likewise.
6076         * arc/t-arc: Likewise.
6077         * arm/t-arm-elf: Likewise.
6078         * arm/t-bare: Likewise.
6079         * arm/t-pe: Likewise.
6080         * arm/t-pe-thumb: Likewise.
6081         * arm/t-semi: Likewise.
6082         * arm/t-thumb: Likewise.
6083         * arm/t-thumb-elf: Likewise.
6084         * arm/t-thumb-linux: Likewise.
6085         * h8300/t-h8300: Likewise.
6086         * i960/t-i960: Likewise.
6087         * i960/t-vxworks960: Likewise.
6088         * m32r/t-m32r: Likewise.
6089         * mips/t-ecoff: Likewise.
6090         * mips/t-elf: Likewise.
6091         * mips/t-r3900: Likewise.
6092         * pa/t-pro: Likewise.
6093         * rs6000/t-aix43: Likewise.
6094         * rs6000/t-beos: Likewise.
6095         * rs6000/t-newas: Likewise.
6096         * rs6000/t-ppccomm: Likewise.
6097         * rs6000/t-rs6000: Likewise.
6098         * rs6000/t-winnt: Likewise.
6099         * rs6000/t-xnewas: Likewise.
6100         * rs6000/t-xrs6000: Likewise.
6101         * sh/t-sh: Likewise.
6102         * sparc/t-elf: Likewise.
6103         * sparc/t-sparcbare: Likewise.
6104         * sparc/t-sparclite: Likewise.
6105         * sparc/t-splet: Likewise.
6106         * v850/t-v850: Likewise.
6107         * mn10200/t-mn10200: Fix comments.
6108         * mn10300/t-mn10300: Likewise.
6109
6110         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
6111         dummy operand.  Allocate a new pseudo for the dummy operand.
6112         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
6113
6114         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
6115
6116 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
6117
6118         * configure: Rebuilt.
6119         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
6120
6121 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
6122
6123         * recog.c (preproces_constraints): Zero recog_op_alt before
6124         processing the constraints.
6125
6126         * arm.c (typedef minipool_node): Renamed from pool_node.
6127         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
6128         (add_minipool_constant): New function.
6129         (dump_minipool): New function.
6130         (find_barrier): Remove special case for getting the insn size of
6131         an insn that references the constant pool.
6132         (minipool_fixup): New structure.
6133         (push_minipool_barrier): New function.
6134         (push_minipool_fix): New function.
6135         (note_invalid_constants): New function.
6136         (add_pool_constant, dump_table, fixit, broken_move): Delete.
6137         (arm_reorg): Rewrite code to fix up the constant pool into a
6138         series of mini-pools embedded in the insn stream.
6139         (arm_output_epilogue): New function, made mainly from the body
6140         of output_func_epilogue.
6141         (output_func_epilogue): Move insn generation part of epilogue code
6142         to arm_output_epilogue.
6143         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
6144         * arm.md (pool_range): New attribute.
6145         (zero_extendqidi2): Add attribute pool_range.
6146         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
6147         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
6148         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
6149         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
6150         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
6151         (epilogue): New expand.
6152         (epilogue_insn): New insn.  Call arm_output_epilogue.
6153
6154         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
6155         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
6156
6157 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
6158
6159         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
6160
6161 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
6162
6163         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
6164
6165 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
6166
6167         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
6168
6169 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
6170
6171         * global.c: Fix comment.
6172
6173 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
6174
6175         * gcc.c (access_check): New static function.
6176         (find_a_file): Use it when searching a directory list.
6177         * collect2.c (find_a_file): Don't accept directories found when
6178         searching a directory list.
6179
6180 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
6181
6182         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
6183         function parameters with `&'.
6184         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
6185
6186 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
6187
6188         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
6189         or tidy_fallthru_edge if the last insn in the block is not
6190         an unconditional jump or a simple conditional jump.
6191
6192 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6193
6194         * Makefile.in (c-decl.o): Depends on defaults.h.
6195
6196 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
6197
6198         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
6199         PA1.1 and above.
6200         (CLASS_MAX_NREGS): Likewise.
6201
6202 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
6203
6204         * cse.c (cse_insn): Fix dumb thinko in last change.
6205
6206 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6207
6208         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
6209         "const char *".
6210
6211 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
6212
6213         * dwarf2out.c (add_location_or_const_value_attribute): Correct
6214         test for sizes of passed and declared parameter types.
6215
6216 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6217
6218         * fixincludes: Fix the return type of bsearch, char* -> void*.
6219
6220         * fixinc/inclhack.def: Likewise.
6221
6222 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
6223
6224         * invoke.texi (-fdump-translation-unit): New option.
6225
6226 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
6227
6228         * expr.h (PROMOTE_PROTOTYPES): Move ...
6229         * defaults.h: ... to here.
6230         * c-decl.c: Include defaults.h instead of expr.h.
6231         * c-typeck.c: Include defaults.h.
6232
6233 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
6234
6235         * toplev.h (errorcount): Declare.
6236         (warningcount): Likewise.
6237         (sorrycount): Likewise.
6238         * c-lex.c (errorcount): Don't declare.
6239         * dwarf2out.c (errorcount): Don't declare.
6240
6241 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
6242
6243         * config/libgloss.h: Add a note discouraging use with ELF.
6244         * configure.in: Don't use libgloss.h for ELF targets.
6245         Always use_collect2 on a.out targets.
6246
6247 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
6248
6249         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
6250         (force_to_mode, case ASHIFTRT): Add shiftrt label.
6251
6252 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6253
6254         * loop.c (strength_reduce): When doing biv->giv conversion, update
6255         reg note of NEXT->insn.
6256
6257 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
6258
6259         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
6260
6261 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
6262
6263         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
6264         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
6265         Ensure expr.h is included.
6266         * c-typecheck.c (convert_arguments): Ditto.
6267
6268         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
6269
6270         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
6271         * config/convex/convex.h: Ditto.
6272         * config/dsp16xx/dsp16xx.h: Ditto.
6273         * config/fx80/fx80.h: Ditto.
6274         * config/gmicro/gmicro.h: Ditto.
6275         * config/i370/i370.h: Ditto.
6276         * config/i386/i386.h: Ditto.
6277         * config/m32r/m32r.h: Ditto.
6278         * config/m68k/m68k.h: Ditto.
6279         * config/m88k/m88k.h: Ditto.
6280         * config/mips/mips.h: Ditto.
6281         * config/pa/pa.h: Ditto.
6282         * config/pyr/pyr.h: Ditto.
6283         * config/tahoe/tahoe.h: Ditto.
6284         * config/we32k/we32k.h: Ditto.
6285
6286         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
6287         based on arch size.
6288
6289         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
6290
6291         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
6292         from comment.
6293
6294         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
6295
6296 1999-08-02  Richard Henderson  <rth@cygnus.com>
6297
6298         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
6299         for the register spill block.
6300         (m32r_va_arg): New.
6301         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
6302         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
6303
6304         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
6305         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
6306         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
6307
6308 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
6309
6310         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
6311         MAX_WCHAR_TYPE defined in sparc.h.
6312         * config/sparc/linuxaout.h: Likewise.
6313         * config/sparc/linux64.h: Likewise.
6314         Also default to -mvis if CPU is UltraSPARC.
6315
6316 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
6317
6318         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
6319         (RTX_OK_FOR_OLO10): Likewise.
6320         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
6321         %lo(), allow it in addresses...
6322         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
6323         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
6324         does not make sense.
6325         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
6326         (sparc_output_scratch_registers): New function.
6327         (output_function_prologue, sparc_flat_output_function_prologue): Use
6328         it.
6329         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
6330         defined.
6331         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
6332         * configure.in: Add check for .register pseudo-op support in as and
6333         check for offsetable %lo().
6334         * acconfig.h: Add templates for the above checks.
6335         * configure: Regenerate.
6336
6337 1999-08-02  Richard Henderson  <rth@cygnus.com>
6338
6339         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
6340         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
6341         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
6342
6343 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6344
6345         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
6346         reg_biv_class.
6347
6348 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
6349
6350         * config/float-sparc.h: New file.
6351         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
6352         sparc-*-linux-gnu and sparc64-*-linux*.
6353
6354 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6355
6356         * rs6000.c (rs6000_va_list): Type is an array.
6357         (rs6000_va_start): Don't doubly adjust for varargs.
6358         (rs6000_va_arg): Evaluate long long GPR adjustment.
6359
6360 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
6361
6362         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
6363         -maix64 and -maix32.
6364         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
6365         LINK_SPEC): Change appropriately.
6366         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
6367         (u_short_cint_operand): Likewise.
6368         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
6369         for 64-bit hosts.
6370         * rs6000/t-aix43 (MULTILIB): Change to -m64.
6371
6372         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
6373
6374 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
6375
6376         * rs6000/rs6000.c (num_insns_constant_wide): Correct
6377         for type promotion.
6378         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
6379         (non_add_cint_operand): Likewise.
6380         (logical_operand): Likewise.
6381         (non_logical_cint_operand): Likewise.
6382         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
6383         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
6384         (rs6000_select_rtx_section): Suppress warning.
6385         (small_data_operand): Suppress warning.
6386         (rs6000_got_register): Suppress warning.
6387         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
6388         type, so `J' is generally the wrong constraint for a SImode value;
6389         use `L' instead.
6390         (andsi3_internal2): Likewise.
6391         (andsi3_internal3): Likewise.
6392         (iorsi3_internal1): Likewise.
6393         (xorsi3_internal1): Likewise.
6394         (movsi): Likewise.
6395         (movsf_softfloat): Likewise.
6396         (scc insns): Likewise.
6397         (movsi+2): Preserve sign bits of SImode constant.
6398         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
6399         (movdf+1): Sign-extend properly.
6400         (movdi_32+1): Sign-extend properly.
6401         (scc insns): Sign-extend properly.
6402
6403         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
6404         K, L, and T.
6405
6406 1999-08-02  Richard Henderson  <rth@cygnus.com>
6407
6408         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
6409         -mcpu parsing code.
6410         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
6411         * alpha.md (all fp insns): Likewise.
6412
6413 1999-08-02  Nick Clifton  <nickc@cygnus.com>
6414
6415         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
6416         already defined.
6417
6418 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
6419
6420         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
6421         pic_load_label generator directly.
6422         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
6423         No longer a named pattern.
6424
6425 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
6426
6427         * explow.c (force_reg): Call force_operand if X does not
6428         satisfy general_operand.
6429
6430 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
6431
6432         * fix-header.c (main): When testing for CONTINUED, use string
6433         equality, not pointer equality.
6434
6435 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
6436
6437         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
6438
6439 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
6440
6441         * cse.c (cse_insn): Fix loop which deletes insns after a jump
6442         that has become an unconditional jump.
6443
6444         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
6445         (output_function_epilogue): Similarly.
6446
6447 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6448
6449         * tree.h (init_dummy_function_start): Declare.
6450
6451 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6452
6453         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
6454         last_expr_type, last_expr_value, block_start_count, block_stack,
6455         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
6456         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
6457         dynamically in stmt elt of struct function for each function.
6458         (struct nesting): Rename function_call_count elt to n_function_calls,
6459         target_temp_slot_level to block_target_temp_slot_level.  All users
6460         changed.
6461         (struct stmt_status): New structure definition.
6462         Add many accessor macros for stmt_status elements which previously
6463         were global variables.
6464         (init_stmt_for_function): Allocate stmt elt for current_function.
6465         Reflect that block_start_count was renamed to
6466         current_block_start_count.
6467         (save_stmt_status, restore_stmt_status): Delete functions.
6468         (preserve_subexpressions_p): Don't access loop_stack when outside
6469         a function.
6470         (expand_start_bindings): Reflect that block_start_count was renamed to
6471         current_block_start_count.
6472         (expand_fixup): Likewise.
6473         (expand_decl): Don't access block_stack when outside a function.
6474         (expand_decl_cleanup): Likewise.
6475         (expand_dcc_cleanup): Likewise.
6476         (expand_dhc_cleanup): Likewise.
6477         (expand_anon_union_decl): Likewise.
6478         (set_file_and_line_for_stmt): New function.
6479         (in_control_zone_p): New function.
6480
6481         * function.h (struct function): Add new elt stmt.
6482         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
6483         case_stack, nesting_stack, nesting_depth, block_start_count,
6484         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
6485         emit_lineno, goto_fixup_chain.
6486         (save_eh_status, restore_eh_status, save_stmt_status,
6487         restore_stmt_status): Delete declarations.
6488         * function.c (push_function_context_to): Don't call save_stmt_status.
6489         (pop_function_context_to): Don't call restore_stmt_status.
6490         * tree.h (in_control_zone_p): Declare.
6491         * rtl.h (set_file_and_line_for_stmt): Declare.
6492
6493         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
6494         call set_file_and_line_for_stmt.
6495
6496 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
6497
6498         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
6499         Also update copyright.
6500
6501 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6502
6503         * c-pragma.c: Don't include "except.h".
6504         * emit-rtl.c: Likewise.
6505         * stor-layout.c: Likewise.
6506         * tree.c: Likewise.
6507         * varasm.c: Likewise.
6508
6509         * flow.c: Include "function.h".
6510         * tree.h (init_dummy_function_start): Declare new function.
6511
6512         * except.h (struct eh_status): New structure.
6513         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
6514         been included.
6515         (eh_return_stub_label, ehstack, catchstack, ehqueue,
6516         catch_clauses, false_label_stack, caught_return_label_stack,
6517         protect_list, current_function_ehc): Add accessor macros for the
6518         corresponding fields in current_function->eh; delete declarations
6519         for all items that used to be declared here.
6520         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
6521         catch_clauses, false_label_stack, caught_return_label_stack,
6522         protect_list, current_function_ehc): Delete variables.
6523         (init_eh_for_function): Allocate current_function->eh.
6524         (save_eh_status, restore_eh_status): Delete functions.
6525
6526         * function.h (struct function): Add fields next_global and eh.
6527         Delete all exception handling related fields.
6528         * function.c (current_function): New variable.
6529         (all_functions): New variable.
6530         (push_function_context_to): Don't allocate a struct function,
6531         use current_function instead.  Call init_dummy_function_start when
6532         outside a function.  Clear current_function before returning.
6533         (pop_function_context_from): Restore current_function.
6534         Don't free the restored struct function.
6535         (prepare_function_start): New function.
6536         (init_dummy_function_start): New function.
6537         (init_function_start): Break out some code into prepare_function_start
6538         and call it here.
6539
6540         * stmt.c (save_stmt_status): Don't call save_eh_status.
6541         (restore_stmt_status): Don't call restore_eh_status.
6542
6543         * Makefile.in: Update dependencies.
6544
6545 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
6546
6547         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
6548         of depending on a magic constant value.  Update comments.
6549         (hppa_expand_prologue): Similarly.
6550
6551         * pa.md (reload_indi, reload_outdi): Allow any register for the
6552         original reload register.
6553
6554 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
6555
6556         * cccp.c (print_help): Change marcos to macros.
6557
6558 1999-07-30  Richard Henderson  <rth@cygnus.com>
6559
6560         * c-typeck.c (initializer_constant_valid_p): Move ...
6561         * c-common.c (initializer_constant_valid_p): ... here.  Use
6562         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
6563         of label addresses.
6564         * c-common.h (initializer_constant_valid_p): Declare.
6565         * c-tree.h (initializer_constant_valid_p): Remove.
6566
6567 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
6568
6569         * config/i386/sol2-c1.asm: Align the stack.
6570         * config/i386/sol2-gc1.asm: Likewise.
6571
6572 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
6573
6574         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
6575         -Asparclite for sparc86x.
6576         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
6577         sparc86x.
6578         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
6579
6580 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
6581
6582         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
6583         the user if using the non-default arch size in BI_ARCH configuration.
6584         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
6585
6586         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
6587         Fix patterns so that they actually match.
6588         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
6589         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
6590         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
6591         TARGET_HARD_MUL32.
6592         (mulsidi3): Reflect this in the expand.
6593         (smulsi3_highpart): Only on TARGET_ARCH32.
6594         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
6595         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
6596         (umulsidi3): Reflect this in the expand.
6597         (umulsi3_highpart): Only on TARGET_ARCH32.
6598         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
6599         don't require g0 to be zero.
6600         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
6601         ({,u}divsi3): New expands.
6602         ({,u}divsi3_sp64): New patterns.
6603         (after lshrdi3_v8plus): Four new patterns to help combiner
6604         optimizing nested mixed mode shifts.
6605
6606         * config/sparc/sparc.c (sparc_override_options): Use deprecated
6607         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
6608         speed things up. Don't use them by default on plain v9 in 64bit
6609         mode, according to what SPAMv9 sais.
6610
6611         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
6612         top 32 bits of %[og][0-7] in signal handlers.
6613         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
6614
6615 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
6616
6617         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
6618         (ashlsi3): Corresponding changes.
6619
6620         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
6621
6622 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
6623
6624         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
6625
6626 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6627
6628         * arm.h (Hint): Delete macro.
6629         Substitute HOST_WIDE_INT for Hint in some prototypes.
6630         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
6631
6632 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
6633
6634         * builtins.c (expand_builtin_setjmp): Use force_operand to
6635         make sure that the buffer address is in a suitable form to be
6636         passed to force_reg.
6637
6638 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
6639
6640         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
6641         them here.
6642
6643 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
6644
6645         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
6646         proper mode in the condition string.
6647         (icacheflush, dcacheflush): Remove modes from match_operands.
6648
6649         * pa.c (emit_move_sequence): Always convert scratch_reg to the
6650         proper mode before using it.
6651
6652         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
6653         pair.
6654
6655         * pa.c (store_reg): Do not call add_high_const generator directly.
6656         (load_reg, set_reg_plus_d): Likewise.
6657         * pa.md (add_high_const): No longer a named pattern.
6658
6659         * pa.c (legitimize_address): Consistently use Pmode rather than
6660         SImode.  Do not call gen_pic2_highpart directly anymore.
6661         * pa.md (pic2_highpart): No longer a named pattern.
6662         (pic2_lo_sum): Similarly.  Reformat to make more readable.
6663
6664         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
6665         needed.
6666
6667         * README: Update.
6668
6669 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6670
6671         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
6672
6673 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
6674
6675         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
6676         and tag the spill mems.
6677         (hppa_va_start): New.
6678         (hppa_va_arg): New.
6679         * pa.h (EXPAND_BUILTIN_VA_START): New.
6680         (EXPAND_BUILTIN_VA_ARG): New.
6681
6682 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
6683
6684         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
6685         and tag the spill mems.
6686         (mn10300_va_start): New.
6687         (mn10300_va_arg): New.
6688         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
6689         (EXPAND_BUILTIN_VA_ARG): New.
6690
6691 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
6692
6693         * mn10200.c (mn10200_va_arg): New.
6694         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
6695
6696 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
6697
6698         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
6699         rather than play with TREE_INT_CST_LOW.
6700
6701 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
6702
6703         * config/arm/telf.h: Include dbxelf.h.
6704         (CPP_PREDEFINES): Only define if not already defined.
6705         (ASM_IDENTIFY_GCC): Likewise.
6706         (SUBTARGET_EXTRA_SECTIONS): Likewise.
6707         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
6708         * config/arm/thumb.h (LINK_SPEC): Only define if not already
6709         defined.
6710         (DBX_DEBUGGING_INFO): Don't define.
6711         * config/arm/linux-telf.h: New file.
6712         * config/arm/linux-tgas.h: New file.
6713         * config/arm/t-thumb-linux: New file.
6714         * config/arm/uclinux-elf.h: New file.
6715         * config/arm/uclinux-telf.h: New file.
6716         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
6717         thumb-*-uclinux): New targets.
6718         * configure: Regenerate.
6719
6720 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
6721
6722         * pa.md (post_store, pre_load): New expanders.
6723         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
6724         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
6725         need to directly generate RTL for them.
6726         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
6727         changes.
6728
6729 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
6730
6731         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
6732         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
6733         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
6734         (secndary_reload_class): Make TARGET_ELF conditional compile.
6735         (print_operand_address): Similar.
6736         (output_toc): Print all values as hex.
6737         (get_issue_rate): Rearrange and add RS64A and PPC630.
6738         * rs6000.h (processor_type): Add RS64A and PPC630.
6739         (PROCESSOR_POWERPC64): New.
6740         (PROMOTE_MODE): Use word_mode.
6741         (RTX_COSTS): Add RS64A and PPC630.
6742         * rs6000.md (scheduling information): Add lmul and ldiv
6743         representing 64-bit integer multiply and divide.  Add rs64a and
6744         PPC630 information.
6745         (ashldi3): Add support for "rldic" instruction.
6746         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
6747
6748 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
6749
6750         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
6751         instead of V8 for sparclite86x in cpu_table.
6752
6753 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6754
6755         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
6756         output_file_directive.
6757
6758 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
6759
6760         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
6761         tree for op1, not the rtl.
6762
6763 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
6764
6765         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
6766         to m88k_va_start, leaving only the register spill.
6767         (m88k_build_va_list): New.
6768         (m88k_va_start): New.
6769         (m88k_va_arg): New.
6770         * m88k.h (BUILD_VA_LIST_TYPE): New.
6771         (EXPAND_BUILTIN_VA_START): New.
6772         (EXPAND_BUILTIN_VA_ARG): New.
6773
6774 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
6775
6776         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
6777         Rename from expand_builtin_saveregs.
6778         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
6779
6780 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
6781
6782         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
6783         for the register spill block.
6784         (i960_build_va_list): New.
6785         (i960_va_start): New.
6786         (i960_va_arg): New.
6787         * i960.h (BUILD_VA_LIST_TYPE): New.
6788         (EXPAND_BUILTIN_VA_START): New.
6789         (EXPAND_BUILTIN_VA_ARG): New.
6790         * i960.md (store_multiple): Use change_address on individul mems.
6791
6792 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
6793
6794         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
6795         an ARRAY_TYPE.
6796         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
6797         (expand_builtin_va_end): Evaluate arg for side effects.
6798         * c-common.c (c_common_nodes_and_builtins): Construct a
6799         va_list_arg_type_node to handle array decomposition to pointer.
6800
6801 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
6802
6803         * except.c (start_dynamic_cleanup): Use force_operand on the
6804         buffer's address.
6805
6806 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
6807
6808         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
6809         * c4x.c (c4x_va_arg): New.
6810
6811 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
6812
6813         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
6814         has manual_pop set.
6815
6816 1999-07-26  Nathan Sidwell  <nathan@acm.org>
6817
6818         * eh-common.h (__eh_matcher): Prototype correctly.
6819
6820 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
6821
6822         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
6823         (TARGET_SINGLE_PIC_BASE): Likewise.
6824         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
6825         definitions.
6826         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
6827         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
6828         (TARGET_OPTIONS): Add -mpic-register=N.
6829         (OUTPUT_INT_ADDR_CONST): New macro.
6830         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
6831         LEGITIMATE_PIC_OPERAND_P): Likewise.
6832         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
6833         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
6834         output_addr_const directly.
6835         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
6836         ARM port.
6837         (thumb_pic_register, thumb_pic_register_string): Declare.
6838
6839         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
6840         from arm.c.
6841         (label_mentioned_p): New function: Imported from arm.c.
6842         (legitimize_pic_address): New function: Imported from arm.c.
6843         (is_pic):New function: Imported from arm.c.
6844         (thumb_finalize_pic):New function: Imported from arm.c.
6845         (add_constant): Cope with PIC constants.
6846         (fixit): Cope with PIC constants.
6847         (output_return): Do not treat the PIC register as live if
6848         TARGET_SINGLE_PIC_BASE is true.
6849         (thumb_function_prologue): Do not treat the PIC register as live if
6850         TARGET_SINGLE_PIC_BASE is true.
6851         (thumb_expand_prologue): Do not treat the PIC register as live if
6852         TARGET_SINGLE_PIC_BASE is true.
6853         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
6854         TARGET_SINGLE_PIC_BASE is true.
6855         (thumb_print_operand): Accept '|'.
6856         (thumb_override_options): Process PIC options.
6857
6858         * config/arm/thumb.md (movsi): Support PIC.
6859         (call_insn): Change "i" constraint to "X".
6860         (call_value_insn): Likewise.
6861         (consttable_4, consttable_8, consttable_end): Set and clear
6862         "making_const_table" as appropriate.
6863         (pic_load_addr, pic_add_dot_plus_four): New insns.
6864
6865         * invoke.texi (Thumb Options): Fix spelling.  Document new
6866         options -msingle-pic-base and -mpic-register=.
6867
6868 1999-07-26  Andrew Haley  <aph@cygnus.com>
6869
6870         * config/m32r/initfini.c (__init): Use a full word immediate for
6871         __fini: this allows it to be placed in any memory region.
6872
6873         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
6874         -mmodel=medium.  This is OK for all memory models.
6875
6876 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
6877
6878         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
6879         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
6880
6881 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
6882
6883         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
6884         defined.
6885
6886         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
6887
6888 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
6889
6890         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
6891         (BUILD_VA_LIST_TYPE): New.
6892         (EXPAND_BUILTIN_VA_START): New.
6893         (EXPAND_BUILTIN_VA_ARG): New.
6894         * i860.c (output_delayed_branch): Disable.
6895         (output_delay_insn): Likewise.
6896         (i860_saveregs): New.
6897         (i860_build_va_list): New.
6898         (i860_va_start): New.
6899         (i860_va_arg): New.
6900         * i860.md: Disable all peepholes using output_delayed_branch.
6901         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
6902
6903 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
6904
6905         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
6906         (BUILD_VA_LIST_TYPE): New.
6907         (EXPAND_BUILTIN_VA_START): New.
6908         (EXPAND_BUILTIN_VA_ARG): New.
6909         * clipper.c (clipper_builtin_saveregs): Only dump registers.
6910         Return the address of the save area.
6911         (clipper_build_va_list): New.
6912         (clipper_va_start): New.
6913         (clipper_va_arg): New.
6914
6915 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
6916
6917         * arc.h (EXPAND_BUILTIN_VA_START): New.
6918         (EXPAND_BUILTIN_VA_ARG): New.
6919         * arc.c (arc_setup_incoming_varargs): Set alias set of
6920         varargs save area.
6921         (arc_va_start): New.
6922         (arc_va_arg): New.
6923
6924 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
6925
6926         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
6927         (BUILD_VA_LIST_TYPE): New.
6928         (EXPAND_BUILTIN_VA_START): New.
6929         (EXPAND_BUILTIN_VA_ARG): New.
6930         * alpha.c (alpha_builtin_saveregs): Delete.
6931         (alpha_build_va_list): New.
6932         (alpha_va_start): New.
6933         (alpha_va_arg): New.
6934
6935 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
6936
6937         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
6938         column zero.
6939         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
6940         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
6941
6942         * gcc.texi: More changes related to list conversion.
6943         * invoke.texi: Likewise.
6944
6945 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
6946
6947         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
6948         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
6949         (expand_builtin_next_arg): Accept ARGLIST not EXP.
6950         (stabilize_va_list): New function.
6951         (std_expand_builtin_va_start): New function.
6952         (expand_builtin_va_start): New function.
6953         (get_varargs_alias_set): New function.
6954         (std_expand_builtin_va_arg): New function.
6955         (expand_builtin_va_arg): New function.
6956         (expand_builtin_va_end): New function.
6957         (expand_builtin_va_copy): New function.
6958         (expand_builtin): Call them.
6959         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
6960         __builtin_{varargs_start,stdarg_start,end,copy}.
6961         (build_va_arg): New function.
6962         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
6963         (build_va_arg): Declare.
6964         * c-decl.c (ptr_type_node, va_list_type_node): New.
6965         * c-parse.gperf (__builtin_va_arg): New.
6966         * c-parse.in (VA_ARG): New token.
6967         (unary_expr): Recognize it.
6968         * expr.c (expand_expr): Expand VA_ARG_EXPR.
6969         * expr.h (std_expand_builtin_va_start): Declare.
6970         (std_expand_builtin_va_arg): Declare.
6971         (expand_builtin_va_arg): Declare.
6972         (get_varargs_alias_set): Declare.
6973         * tree.def (VA_ARG_EXPR): New.
6974         * tree.h (BUILT_IN_VARARGS_START): New.
6975         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
6976         (ptr_type_node, va_list_type_node): Declare.
6977         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
6978         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
6979         * m88k.h, m88k.c: Likewise.
6980         * mn10300.h, mn10300.c: Likewise.
6981         * pa.h, pa.c: Likewise.
6982         * rs6000.h, rs6000.c: Likewise.
6983         * sh.h, sh.c: Likewise.
6984         * sparc.h, sparc.c: Likewise.
6985
6986         * emit-rtl.c (operand_subword): Copy alias set.
6987         (change_address): Likewise.
6988
6989 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
6990
6991         * pa.c (compute_frame_size): Scan all the used callee saved registers,
6992         not just the first one.
6993
6994 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
6995
6996         * config/arm/arm.h (TARGET_SWITCHES): Add
6997         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
6998         (TARGET_OPTIONS): Add -mpic-register=.
6999         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
7000         (arm_pic_register_string): Declare.
7001         (NEED_PLT_GOT): Delete, replace with ...
7002         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
7003         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
7004         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
7005         * config/arm/arm.c (arm_override_options): Add new option
7006         -mpic-register=N.
7007         (arm_pic_register_string): New variable.
7008         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
7009         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
7010         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
7011         (output_return_instruction): Likewise.
7012         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
7013         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
7014         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
7015
7016         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
7017         mention of -msched-prolog.  Document new options -msingle-pic-base
7018         and -mpic-register=.
7019
7020 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
7021
7022         * haifa-sched.c (reemit_notes): Tidy.
7023         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
7024         haifa's routine.
7025
7026 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
7027
7028         * explow.c (trunc_int_for_mode): New function.
7029         (plus_constant_wide): Use it.
7030         * combine.c (simplify_and_const_int): Likewise.
7031         (merge_outer_ops): Likewise.
7032         (simplify_shift_const): Likewise.
7033         * cse.c (simplify_unary_operation): Likewise.
7034         (simplify_binary_operation): Likewise.
7035         * emit-rtl.c (operand_subword): Likewise.
7036         * rtl.h: Declare it.
7037
7038 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7039
7040         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
7041         (use NUM_REGS instead of NUM_INTS).
7042
7043 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7044
7045         * builtins.c: New file.
7046         * expr.c (saveregs_value, apply_args_value):  Delete definition,
7047         moved into builtins.c.
7048         (string_constant): No longer static.
7049         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
7050         apply_args_size, apply_result_size, result_vector,
7051         expand_builtin_apply_args, expand_builtin_apply,
7052         expand_builtin_return): Delete functions, moved into builtins.c.
7053         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
7054         * expr.h (saveregs_value, apply_args_value): Declare variables.
7055         (expand_builtin, string_constant): Declare functions.
7056         * Makefile.in: Update to build builtin.o.
7057
7058 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
7059
7060         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
7061         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
7062         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
7063         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
7064         false.
7065         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
7066         Define to zero.
7067
7068 1999-07-21  Michael Meissner  <meissner@cygnus.com>
7069
7070         * print-rtl.c (print_rtx): Print the names of the virtual
7071         registers.
7072
7073 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
7074
7075         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
7076         introduced in previous delta.
7077
7078 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7079
7080         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
7081         to avoid name clash.
7082
7083 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7084
7085         * c-lex.c (yylex) : Correct the test for overflow when lexing
7086         integer literals.
7087
7088 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
7089
7090         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
7091         (adjust_priority): Always call ADJUST_PRIORITY.
7092         (schedule_insn): Only put insns into the ready at cost 0.
7093         (schedule_block): Remove redundant initial sort.  Give clock_var
7094         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
7095         is not 0.
7096         * tm.texi (MD_SCHED_REORDER): Update docs.
7097
7098         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
7099         * sparc.c (ultra_reorder_called_this_block): Delete.
7100         (ultrasparc_sched_init): Don't set it.
7101         (ultrasparc_sched_reorder): Don't check it.
7102
7103 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
7104
7105         * rs6000.h (struct rs6000_args): Add sysv_gregno.
7106         * rs6000.c (init_cumulative_args): Init sysv_gregno.
7107         (function_arg_boundary): Align DFmode.
7108         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
7109         to get fp reg and stack overflow correct.
7110         (function_arg): Likewise.
7111         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
7112         (setup_incoming_varargs): Restructure for ABI_V4; use
7113         function_arg_advance to skip final named argument.
7114         (expand_builtin_saveregs): Properly unskip the last integer arg
7115         when doing varargs.  Adjust overflow location calculation.
7116
7117         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
7118         explicitly unsigned.
7119         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
7120         (__VA_GP_REGSAVE): Similarly.
7121         (__va_longlong_p): Delete.
7122         (__va_arg_type_violation): New declaration.
7123         (va_arg): Restructure.  Flag promotion errors.  Align double.
7124         TFmode passed by reference.
7125
7126         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
7127         in the HOST_BITS_PER_WIDE_INT > 32 case.
7128
7129 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
7130
7131         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
7132
7133 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
7134
7135         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
7136         * toplev.c (documented_lang_options): Add -fpreprocessed.
7137         * cpplib.h (struct cpp_buffer): Add preprocessed.
7138         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
7139         (cpp_start_read): Don't expand macros or emit an initial #line
7140         directive if -fpreprocessed.
7141
7142 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
7143
7144         * cpplib.h (struct cpp_buffer): Added manual_pop for
7145         better C++ tokenization.
7146         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
7147         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
7148         * c-common.c (cpp_token): Make non-static.
7149
7150 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7151
7152         * c-common.h: New file.
7153         * c-common.c (permanent_obstack): Delete unused declaration.
7154         (c_global_trees): New array.
7155         (c_common_nodes_and_builtins): New function; split off common code
7156         from init_decl_processing in both c-decl.c and cp/decl.c.
7157         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
7158         c_global_trees and accessor macros defined in c-common.h.
7159         Include c-common.h.
7160         * c-decl.c: Delete definitions for tree nodes that were replaced by
7161         c_global_trees.
7162         (init_decl_processing): Build void_list_node.
7163         Call c_common_nodes_and_builtins; delete code to generate the common
7164         builtins here.
7165         * objc/objc-act.c (build_module_descriptor): Rename variable
7166         void_list_node to avoid clash with c-common.h.
7167
7168         * Makefile.in: Update dependencies.
7169         * objc/Make-lang.in: Likewise.
7170
7171 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
7172
7173         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
7174         (UNIQUE_SECTION_P): Likewise.
7175         (UNIQUE_SECTION): Likewise.
7176
7177 1999-07-19  Linas Vepstas  <linas@linas.org>
7178
7179         * config/i370/README: New file.
7180         * config/i370/linux.h: New file.
7181         * config/i370/mvs.h: New file.
7182         * config/i370/oe.h: New file.
7183         * config/i370/t-linux: New file.
7184         * config/i370/t-mvs: New file.
7185         * config/i370/t-oe: New file.
7186         * config/i370/x-oe: New file.
7187         * config/i370/xm-linux.h: New file.
7188         * config/i370/xm-mvs.h: New file.
7189         * config/i370/xm-oe.h: New file.
7190
7191         * i370.c (label_node_t): Add first_ref_page, label_addr,
7192         label_first_ref, label_last_ref members.
7193         (mvs_need_base_reload): Renamed from mvs_label_emitted.
7194         (MAX_MVS_LABEL_SIZE): Define.
7195         (MAX_LONG_LABEL_SIZE): Define.
7196         (alias_node_t, alias_anchor, alias_number): New.
7197         (mvs_function_table): Reorder for EBCDIC.
7198         (ascebc, ebcasc): Unconditionally define.
7199         (i370_branch_dest, i370_branch_length): New functions.
7200         (i370_short_branch, i370_label_scan): New functions.
7201         (mvs_get_label): Renamed from mvs_add_label.  Search for
7202         an existing label before creating a new one.
7203         (mvs_add_label): New function.
7204         (mvs_get_label_page): New function.
7205         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
7206         over the entire list.
7207         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
7208         (mvs_check_page) [TARGET_ELF_ABI]: New function.
7209         (mvs_add_alias, mvs_need_alias): New functions.
7210         (mvs_get_alias, mvs_check_alias): New functions.
7211         (handle_pragma): New function.
7212         (mvs_function_check): New function.
7213         (unsigned_jump_follows_p): Search harder.
7214         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
7215         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
7216         * i370.h (TARGET_VERSION): Delete.
7217         (CPP_SPEC, CPP_PREDEFINES): Delete.
7218         (mvs_label_emitted): Delete.
7219         (TARGET_EBCDIC): Delete.
7220         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
7221         (HANDLE_PRAGMA): Define.
7222         (HARD_REGNO_NREGS): Handle complex modes.
7223         (HARD_REGNO_MODE_OK): Likewise.
7224         (CLASS_MAX_NREGS): Likewise.
7225         (RET_REG): Likewise.
7226         (EXTRA_CONSTRAINT): Define.
7227         (RETURN_IN_MEMORY): True for DImode.
7228         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
7229         (FUNCTION_PROFILER): Delete.
7230         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
7231         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
7232         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
7233         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
7234         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
7235         (ASM_FILE_START): Add "RMODE ANY".
7236         (ASM_OUTPUT_EXTERNAL): Check for aliases.
7237         (ASM_GLOBALIZE_LABEL): Likewise.
7238         (ASM_OUTPUT_LABELREF): Likewise.
7239         (ASM_OUTPUT_COMMON): Likewise.
7240         (PRINT_OPERAND): Handle 'K', 'W', default.
7241         (PRINT_OPERAND_ADDRESS): New.
7242         (Lots of defines): Add support for TARGET_ELF_ABI.
7243         * i370.md (attr length): New.  Define for all patterns.
7244         (*): Lots of tweeks to assembly output and constraints.
7245
7246 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
7247
7248         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
7249         Disable patterns performing SImode comparisons with SImode values
7250         if TARGET_POWERPC64 and instruction does not sign-extend or does
7251         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
7252         differ for signed quantities.
7253         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
7254         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
7255         (decrement_and_branch_on_count): Add 64-bit variant.
7256
7257 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7258
7259         * final.c (output_asm_insn): When searching for the matching string
7260         for a given dialect, don't run past the end of the list of
7261         alternatives if there are fewer alternatives in the template than
7262         dialects.
7263
7264 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
7265
7266         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
7267         Removed paragraph about compression of files and size limitation,
7268         duplicated in the FAQ.  Use gcc-patches for posting patches.
7269         * gcc.c (main): Updated URL with bug reporting instructions to
7270         gcc.gnu.org.  Removed e-mail address.
7271         * system.h (abort): Likewise.
7272
7273 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7274
7275         * Makefile.in (stmp-multilib-sub): Make the files extracted
7276         from $(LIBGCC1) writable.
7277
7278 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
7279
7280         * config/arm/aout.h: Reformat for improved readability.
7281
7282         * config/arm/arm.h: Reformat for improved readability.
7283         Replace uses of fprintf with asm_fprintf where appropriate.
7284         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
7285         function declaration assembler actions.
7286         (NUM_INTS): New macro: Convert from bytes to words.
7287         (NUM_REGS): New macro: Compute number of registers required to
7288         hold a quanitity of tyep MODE.
7289         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
7290         types.
7291         (NUM_ARG_REGS): New macro: The number of argument registers
7292         available.
7293         (ARG_REGISTER): New macro: Compute the register number of the Nth
7294         argument register.
7295         (LAST_ARG_REGNUM): New macro: The number of the last argument
7296         register.
7297         (SP_REGNUM): New macro: Register number of the stack pointer.
7298         (FP_REGNUM): New macro: Register number of the frame pointer.
7299         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
7300         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
7301         CUMULATIVE_ARGS so that it counts registers not bytes.
7302
7303         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
7304         TARGET_INTERWORK.
7305         Replace uses of fprintf with asm_fprintf where appropriate.
7306         (output_ascii_pseudo_op): Replace with version from thumb.c
7307
7308         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
7309
7310         * config/arm/elf.h (CPP_PREDEFINES): Replace with
7311         SUBTARGET_CPP_SPEC.
7312         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
7313         (ASM_FILE_START): Emit ASM_APP_OFF.
7314
7315 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
7316
7317         * pa.c (compute_frame_size): Round frame according to
7318         STACK_BOUNDARY rather than a hardwired value.
7319
7320         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
7321
7322         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
7323         of "1".
7324         * configure: Rebuilt.
7325
7326         * configure.in (hppa*-*-linux*): New configuration.
7327         * configure: Rebuilt.
7328         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
7329         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
7330         * pa/pa-linux.h: New file.
7331         * pa/t-linux: New file.
7332         * pa/xm-linux.h: New file.
7333
7334         * pa.c (hppa_legitimize_address): Change references from SImode to
7335         either Pmode or word_mode as appropriate.
7336         (emit_move_sequence, store_reg, load_reg): Likewise.
7337         (set_reg_plus_d, hppa_expand_prologue): Likewise.
7338         (output_mul_insn): Likewise.
7339         * pa.h (PROMOTE_MODE): Likewise.
7340         (INITIALZE_TRAMPOLINE): Likewise.
7341         (Pmode): Define to word_mode.
7342
7343         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
7344         value of 4.  Allocate 8 bytes for each FP register save.
7345         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
7346         value of 4.
7347         (hppa_expand_prologue): Likewise.
7348         * pa.h (PROMOTE_MODE): Likewise.
7349         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
7350         (FUNCTION_ARG_BOUNDARY): Likewise.
7351
7352         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
7353
7354         * pa.c (out_of_line_prologue_epilogue): Delete.
7355         (override_options): Remove -mspace related code.
7356         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
7357         (compute_frame_size): Only allocate space for register that
7358         actually need to be saved.
7359         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
7360         (TARGET_SWITCHES): Remove -mspace, -mno-space
7361         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
7362         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
7363         * pa/ee.asm, pa/ee_fp.asm: Delete.
7364
7365         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
7366
7367         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
7368         directive in column zero.
7369
7370 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
7371
7372         * m68k.c (output_function_prologue): Fix computation of save mask
7373         when generating PIC code.
7374
7375 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
7376
7377         * tree.c (build_type_attribute_variant): Move current_obstack restore
7378         after build_qualified_type call.
7379
7380 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
7381
7382         * configure.in: Use t-iris6, even with GNU LD.
7383         * config/mips/iris6gld.h: Fix typo in linker spec.
7384         * config/mips/t-iris6gld: Remove.
7385
7386 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
7387
7388         * rs6000.md (insv, extzv): Remove SImode dependence in named
7389         patterns.  Explicitly generate DImode RTL if PowerPC64 and
7390         operand is DImode.
7391         (insvdi): Reverse start and size in instruction template.
7392
7393 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
7394
7395         * invoke.texi: Typo fixes.
7396
7397 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
7398
7399         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
7400         handle at this time instead of silently generating incorrect code.
7401         (gen_imagpart): Likewise.
7402
7403         * reload.c (find_reloads): Emit a USE for a pseudo register without
7404         a hard register if we could not create an optional reload for the
7405         pseudo.
7406
7407 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7408
7409         * c-typeck.c (output_init_element, process_init_element):
7410         When advancing constructor_unfilled_fields for a RECORD_TYPE,
7411         check for nameless bit fields.
7412
7413 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
7414
7415         * regclass.c (scan_one_insn): Notice subregs that change the
7416         size of their operand.
7417         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
7418
7419 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
7420
7421         * configure.in (alpha*-*-*): Include alpha/t-ieee.
7422         * configure: Rebuilt.
7423         * alpha/t-ieee: New file.
7424
7425 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
7426
7427         * rs6000.c (find_addr_reg): Do not select r0 as an address
7428         register.
7429
7430 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
7431
7432         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
7433
7434 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
7435
7436         * rs6000.md (movsf): Do not force easy FP constants into memory.
7437
7438         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
7439         immed_double_const to ensure they are properly truncated then
7440         sign extended.
7441
7442 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
7443
7444         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
7445         always unless NO_DEBUG is used.  Compile this code
7446         unconditionally.
7447         (replace_symbols_in_block): Compile it unconditionally.
7448
7449 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
7450
7451         * configure.in (i?86-*-elf*): New target.
7452         * configure: Rebuilt.
7453         * i386/i386elf.h, i386/t-i386elf: New files.
7454
7455 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
7456
7457         * toplev.c (main): Don't complain about saying -gdwarf.
7458         (rest_of_compilation): Remove redundant code.
7459
7460 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
7461
7462         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
7463
7464 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
7465
7466         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
7467         "Li960R:", to avoid name clash.
7468
7469 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7470
7471         * loop.c (check_dbra_loop): When reversing a loop, delete all
7472         REG_EQUAL notes referencing the reversed biv except those which are
7473         for a giv based on it.
7474
7475 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
7476
7477         * version.c: Drop "gcc-" prefix from version #.
7478
7479 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
7480
7481         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
7482         the label if we're being verbose.
7483
7484 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
7485
7486         * m68k.c (output_function_prologue): Add pic register to mask
7487         if live and flag_pic.
7488         (output_function_epilogue): Likewise.
7489
7490 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
7491
7492         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
7493         directives in column zero.
7494
7495         * pa/elf.h (ASM_FILE_START): Define.
7496         * pa/som.h (ASM_FILE_START): Include .level directives.
7497         * pa/hpux10.h (ASM_FILE_START): Delete.
7498         * pa/hpux11.h (ASM_FILE_START): Delete.
7499
7500         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
7501
7502 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7503
7504         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
7505         when reload_out equals reload_in.
7506
7507 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
7508
7509         * invoke.texi (Spec Files): New node: Describe the contents of
7510         spec files.
7511
7512 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
7513
7514         * invoke.texi (DEC Alpha Options): Put @end table at
7515         beginning of line, to avoid confusing texi2html.
7516
7517 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
7518
7519         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
7520         introduced in previous delta.
7521
7522 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7523
7524         * reload1.c (gen_reload): When synthesizing a 3 operand add
7525         sequence, improve test for when to reload OP1 into the reload
7526         register instead of OP0.
7527
7528 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
7529
7530         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
7531
7532 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
7533
7534         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
7535         string literal.
7536
7537 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
7538
7539         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
7540         (va_dcl): Use __builtin_va_alist_t.
7541
7542 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
7543
7544         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
7545         on the permanent_obstack.
7546         * dwarfout.c (output_type): Likewise.
7547
7548 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7549
7550         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
7551         Merged from c-typeck.c and cp/typeck.c.
7552         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
7553         Merged into c-common.
7554
7555 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
7556
7557         * c-lex.c (errorcount): Declare it.
7558         (finish_parse): Update errorcount when using CPPLIB.
7559
7560 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
7561
7562         * fixinc/inclhack.def(end_else_label): Double the backslash so
7563         sed gets a chance to see it.
7564         * fixinc/inclhack.sh: regen
7565         * fixinc/fixincl.x: regen
7566
7567 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
7568
7569         Add framework to support armv5 architecture when it becomes
7570         available:
7571
7572         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
7573         (arm_arch5): New variable.
7574         (all_architectures): Add armv5 line.
7575         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
7576         -march=armv5 is specified on the command line.
7577         (arm_arch5): Export this variable.
7578         * invoke.texi: Document new string accepted by -march= switch for
7579         ARM ports.
7580
7581         * config/arm/arm.h: Replace use of constant 12 as a register
7582         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
7583         * config/arm/arm.c: Replace use of constant 12 as a register
7584         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
7585
7586         * config/arm/elf.h: Tidy up.
7587         * config/arm/coff.h: Tidy up.
7588
7589 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
7590
7591         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
7592         * gcc/config/mips/t-iris6gld: New file.
7593         * gcc/config/mips/iris6gld.h: Likewise.
7594
7595 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7596
7597         * c-decl.c (widest_integer_literal_type_node,
7598         widest_unsigned_literal_type) : New.
7599         (init_decl_processing): Handle/use the two new types.
7600         * c-common.c (type_for_size,type_for_mode) : Same.
7601         * c-lex.c (yylex) : Same.
7602         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
7603         Same.
7604         * c-tree.h (widest_integer_literal_type_node,
7605         widest_unsigned_literal_type) : New.
7606
7607 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
7608
7609         * dwarfout.c (field_byte_offset): Correctly compute the object's
7610         byte offset for the first bit of a field which crosses an alignment
7611         boundary on a !BYTES_BIG_ENDIAN target.
7612
7613 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
7614
7615         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
7616         ntohs.
7617
7618 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
7619                           Jeff Law <law@cygnus.com>
7620
7621         * ginclude/varargs.h (va_dcl): Use word_mode for type of
7622         __builtin_va_list.
7623
7624         * except.c: Include intl.h.
7625         (expand_eh_return): Set current_function_cannot_inline.
7626         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
7627         * function.h (struct function): Add eh_return_stub_label.
7628         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
7629         * Makefile.in (except.o): Depend on intl.h.
7630
7631 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
7632
7633         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
7634         same as offsettable in cases 1 and 2.
7635
7636 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
7637
7638         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
7639         (extlh, extwh): Likewise.
7640
7641 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7642
7643         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
7644
7645 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
7646
7647         * configure.in: Add arm-pe and thumb-pe targets.
7648         * configure: Regenerate.
7649
7650         * thumb.c (arm_naked_function_p): New function: Determines if
7651         a function is naked (has no gcc generated prologue/epilogue).
7652         (is_called_in_ARM_mode): Return true if the func has the
7653         interfacearm attribute.
7654         (output_return): Do not generate a return for naked functions.
7655         (thumb_function_prologue): Do not generate a prologue for
7656         naked functions.
7657         (thumb_expand_prologue): Do not generate a prologue for naked
7658         functions.
7659         (thumb_expand_epilogue): Do not generate an epilogue for naked
7660         functions.
7661         (arm_valid_machine_decl_attribute): New function, copied from
7662         arm.c:  Permit naked and interfacearm attributes.
7663
7664         * config/arm/pe.c: New file: Support code for arm-pe target.
7665         * config/arm/pe.h: New file: Header file for arm-pe target.
7666         * config/arm/tpe.h: New file: Header file for thumb-pe target.
7667         * config/arm/t-thumb-pe: New file: Makefile fragment for
7668         thumb-pe target.
7669
7670 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
7671
7672         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
7673         -fPIC or -fpic is specified.
7674
7675 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
7676
7677         * expr.c (emit_block_move): Use copy_to_mode_reg for
7678         !TARGET_MEM_FUNCTIONS case too.
7679
7680         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
7681         appropriate.
7682         * configure: Rebuilt.
7683         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
7684         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
7685         definitions made redundant by dbxelf.h inclusion.  Delete
7686         lots of definitions related to assembly output that are
7687         specific to the SOM object format.
7688         * pa.c (output_function_prologue): Do not emit the function's
7689         name for OBJ_ELF.
7690         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
7691         * pa-pro.h: Deleted.
7692         * som.h: New file with SOM specific definitions.
7693         * elf.h: New file with ELF specific definitions.
7694
7695         * elfos.h (const_section): Output a tab before assembler directives.
7696         (ctors_section, dtors_section): Likewise.
7697         (ASM_OUTPUT_SECTION_NAME): Likewise.
7698
7699         * pa/pa1.h: Delete unused file.
7700
7701 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
7702
7703         * configure.in (hppa*-hp-hpux11*): New configuration.
7704         * configure: Rebuilt.
7705         * pa/pa-hpux11.h: New file.
7706         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
7707         command line.
7708
7709         * mips.md (leasi, leadi): New patterns.
7710
7711         * expr.c (emit_block_move): Properly handle case where one of the
7712         block move arguments has a queued increment or decrement.
7713         (clear_storage): Similarly.  Fix formatting goof.
7714
7715 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
7716
7717         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
7718         semicolon from the BSD VA_LIST replacement expression.
7719
7720         * fixinc/inclhack.sh: regen
7721         * fixinc/fixincl.x: regen
7722
7723         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
7724         now use the fixincl program.
7725
7726 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
7727
7728         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
7729         case.  Also make the PIC register call_used.
7730
7731         * m68k.h (FINALIZE_PIC): Delete.
7732         * m68k.c (finalize_pic): Delete.
7733
7734 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
7735
7736         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
7737         to memory.
7738
7739 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
7740
7741         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
7742
7743 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
7744
7745         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
7746
7747 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
7748
7749         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
7750
7751 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
7752
7753         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
7754
7755 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
7756
7757         * rs6000.c (output_toc): Always use hex values for floating-point
7758         constants.  Store single-precision values in upper-half of TOC
7759         entry in 64-bit mode.
7760         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
7761         to final constraints.
7762         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
7763         (fctiwz): Improve accuracy of RTL for pattern.
7764
7765 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7766
7767         * expr.c (expand_expr): Allow RTL_EXPR's through the
7768         MAX_INTEGER_COMPUTATION_MODE checks.
7769
7770 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
7771
7772         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
7773         such that MASK_SUPPORT_ARCH is not negative.
7774
7775 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
7776
7777         * loop.c (verify_dominator): Properly handle ADDR_VEC and
7778         ADDR_DIFF_VEC insns that appear inside loops.
7779
7780 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
7781                           Jeff Law <law@cygnus.com>
7782
7783         * rs6000.md (movdf_hardfloat32): Revert previous patch.
7784         Handle LO_SUM the same as offsettable in cases 1 and 2.
7785         * rs6000.c (find_addr_reg): Revert previous patch.
7786
7787 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
7788
7789         * system.h (strstr): New external function declaration.
7790         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
7791         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
7792         * config.in, configure: Rebuilt.
7793
7794 1999-06-24  Tom Tromey  <tromey@cygnus.com>
7795
7796         * gcc.c (main): Read user-specified specs files after computing
7797         additional startfile_prefixes.
7798
7799 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
7800
7801         Revert these two patches:
7802
7803         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7804         * loop.c (strength_reduce): When doing biv->giv conversion, update
7805         reg note of NEXT->insn.
7806
7807         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7808         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
7809         reg_biv_class.
7810         (recombine_givs): Set ix field after sorting.
7811
7812 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7813
7814         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
7815         for the parts of an UNSPEC / UNSPEC_VOLATILE.
7816
7817 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
7818
7819         *fixinc/inclhack.def:  Add fix development commentary
7820         (read_ret_type): reactivate and add selection clause
7821         (zzz_*): tweak output file name to match what is used in hackshell.tpl
7822         *fixinc/{fixincl.x|inclhack.sh}: regen
7823
7824 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
7825
7826         * expr.c (expand_expr): STRIP_NOPS before checking against
7827         MAX_INTEGER_COMPUTATION_MODE
7828         (check_max_integer_computation_mode): Likewise.
7829
7830 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
7831
7832         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
7833
7834 1999-06-22  Jim Wilson  <wilson@cygnus.com>
7835
7836         * expr.c (store_expr): When target is a promoted subreg, return a
7837         promoted subreg as a result.
7838
7839 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
7840
7841         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
7842         coding standards.
7843         (dwarf2out_define): Mark unused parameters appropriately.
7844         (gen_unspecified_parameters_die): Ditto.
7845         (gen_subprogram_die): Fix signed/unsigned warnings.
7846         (gen_variable_die): Ditto.
7847
7848 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
7849
7850         * fixinc/inclhack.def(end_else_label): combined else_label
7851         and endif_label and fixed the sed expression.
7852         *fixinc/{fixincl.x|inclhack.sh}: regen
7853
7854 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
7855
7856         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
7857         'x' when handling non-offsettable addresses
7858
7859 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
7860
7861         * final.c (shorten_branches): Don't try to split an insn that has
7862         been deleted.
7863
7864 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
7865
7866         * config/mips/mips.c (symbolic_expression_p): New function.
7867         (mips_select_rtx_section): Put symbolic expressions in the
7868         data section, not the read-only data section.
7869
7870 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
7871
7872         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
7873
7874 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
7875
7876         * collect2.c (main): Log frame table count.
7877         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
7878         (scan_prog_file) [COFF]: Handle frame tables.
7879
7880         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
7881         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
7882         * alpha/elf.h: Undef them again.
7883         * alpha/vms.h: Remove their definitions.
7884
7885 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7886
7887         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
7888         remove the clobber of r0 and change the REG_UNUSED note to
7889         REG_INC.
7890
7891 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
7892
7893         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
7894         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
7895         fits in HOST_WIDE_INT and one uses union to access a long constant
7896         as double.
7897
7898 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
7899
7900         * sparc.c (sparc_override_options): Don't allow profiling for
7901         code models other than medlow.
7902         (sparc_function_profiler): New function from old FUNCTION_PROFILER
7903         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
7904         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
7905         (sparc_block_profiler): Likewise.
7906         (sparc_function_block_profiler_exit): Likewise.
7907         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
7908         (FUNCTION_BLOCK_PROFILER): Likewise.
7909         (BLOCK_PROFILER): Likewise.
7910         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
7911         (MCOUNT_FUNCTION): New.
7912         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
7913         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
7914         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
7915         (MCOUNT_FUNCTION): New.
7916         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
7917         (BLOCK_PROFILER): Delete.
7918         (MCOUNT_FUNCTION): New.
7919
7920 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
7921
7922         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
7923
7924 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
7925
7926         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7927         Add the macros.
7928
7929         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7930         Ditto.
7931
7932         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7933         Ditto.
7934
7935         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
7936         Ditto.
7937
7938 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
7939
7940         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
7941         types.
7942
7943 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
7944
7945         * i386/djgpp.h (LIB_SPEC): New.
7946         (STARTFILE_SPEC): New.
7947
7948         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
7949
7950 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
7951
7952         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
7953         compiler flags.
7954
7955         * system.h (WSTOPSIG): New macro.
7956
7957 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
7958
7959         * c-pragma.c (push_alignment): Don't ignore alignments greater than
7960         4 bytes.
7961         (insert_pack_attributes): Take into account member natural
7962         alignment.
7963
7964         * i386/winnt.c (exports_head): New static variable.
7965         (i386_pe_record_exported_symbol): New function.
7966         (i386_pe_asm_file_end): Use.
7967         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
7968         symbols to be emitted at end of assembly.
7969         (ASM_DECLARE_OBJECT_NAME): Likewise.
7970         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7971
7972         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
7973         -iwithprefix.
7974
7975 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
7976
7977         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
7978         in last change.
7979
7980 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
7981
7982         * haifa-sched.c (sched_analyze_1): Use free_list instead of
7983         zapping reg_last_uses directly.
7984         (sched_analyze_2, sched_analyze_insn): Likewise.
7985         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
7986
7987 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
7988
7989         * rs6000.md (movdf_hardfloat32): Use worst case insn length
7990         attributes for cases 1 and 2.
7991
7992 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
7993
7994         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
7995         instead of set.
7996
7997 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
7998
7999         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
8000
8001 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
8002
8003         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
8004         PIC_OFFSET_TABLE_REGNUM for general alloaction.
8005         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
8006         must be stacked if it is used for PIC accesses.
8007         * arm.c (use_return_insn): Handle PIC register specially.
8008         (output_return_instruction): Likewise.
8009         (output_func_{prologue,epilogue}): Likewise.
8010         (output_expand_prologue): Likewise.
8011
8012         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
8013         (*strsi_predec): Renamed from *strqi_predec.
8014         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
8015         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
8016
8017         * arm.c (arm_override_options): Remove warning about PIC code
8018         not being supported.
8019
8020 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
8021
8022         * rs6000.c (find_addr_reg): New function.
8023         * rs6000.h (find_addr_reg): Declare.
8024         (offsettable_addr_operand): Delete.
8025         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
8026         from and stores to GPRs.
8027
8028 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
8029
8030         * alpha.c (alpha_expand_block_move): Use get_insns rather than
8031         gen_sequence as argument to emit_no_conflict_block.
8032
8033 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8034
8035         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
8036         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
8037         *fixinc/fixincl.x: regen
8038         *fixinc/inclhack.sh: regen
8039
8040 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
8041
8042         * added support for -mpcrel (PC relative addressing for m68k)
8043         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
8044         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
8045         * m68k.c (print_operand_address): Handle 32-bit PIC case.
8046         (comments for general_src_operand): Add some explanation
8047         about EXTRA_CONSTRAINTS.
8048         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
8049         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
8050         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
8051         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
8052         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
8053         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
8054         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
8055         if not already set.
8056         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
8057         * m68k.h (TARGET_PCREL): New target flag.
8058         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
8059         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
8060         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
8061         contains a SYMBOL_REF.  Relax this constraint during reload, since
8062         we want to use the predicates, not reload's built-in concept of a
8063         valid memory address, to control what insns need reloading.
8064         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
8065         operands (essentially 'g', 'm', and 's' under normal circumstances).
8066         * m68k.c (print_operand): Cause printing of pc-relative addresses
8067         to include pc register.
8068         (print_operand_address): Ditto.
8069         (general_src_operand): Accept operands that are not only
8070         general_operands, but are also valid when used as a pc-relative
8071         source.
8072         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
8073         (memory_src_operand): Similar, for memory_operands.
8074         (pcrel_address): New predicate to accept the special case of a
8075         pc-relative address.
8076         * m68k.md (many patterns): Rewrite common SImode, HImode, and
8077         QImode insns to accept *_src_operand instead of *_operand where
8078         pc-relative operands can fit.  For example, a pc-relative operand
8079         can be used as a memory source operand for addsi3, but not as a
8080         memory destination.
8081         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
8082
8083 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
8084
8085         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
8086         .thumb_set pseudo op to mark aliases of thumb functions.
8087
8088 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
8089
8090         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
8091         preference to ASM_OUTPUT_DEF, if it is defined.
8092
8093         * tm.texi: Document new, optional target macro
8094         ASM_OUTPUT_DEF_FROM_DECLS.
8095
8096 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8097
8098         * fixincludes: ISCNTL patch
8099         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
8100         (dgux_int_varargs): new for DG/UX
8101         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
8102
8103 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
8104
8105         * invoke.texi (ia32 options): Fix typo.
8106
8107 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8108
8109         * loop.c (strength_reduce): When doing biv->giv conversion, update
8110         reg note of NEXT->insn.
8111
8112 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
8113
8114         * loop.c (move_movables): Note issues with replacing REGs with
8115         SUBREGs.
8116         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
8117
8118 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
8119
8120         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
8121
8122         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
8123         the reference to `mcount' was not correct for the ELF on FreeBSD.
8124
8125 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8126
8127         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
8128         reg_biv_class.
8129
8130         (recombine_givs): Set ix field after sorting.
8131
8132 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
8133
8134         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
8135         to safe to extract a subword out of a REG.
8136
8137 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8138
8139         * sh.md (mulsi3): Don't add a no-op move at the end.
8140
8141 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8142
8143         * cse.c (cse_insn): Don't put hard register source into tables for
8144         the last insn of a libcall.
8145
8146 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8147
8148         * loop.c (strength_reduce): Insert sets of derived givs at every
8149         biv increment, even if it's the only one.
8150
8151 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
8152
8153         * dwarfout.c (add_incomplete_type): New fn.
8154         (output_type): Call it.
8155         (retry_incomplete_types): New fn.
8156         (dwarfout_finish): Call it.
8157
8158         From Eric Raskin <ehr@listworks.com>:
8159         (output_type): Output types for bases.
8160
8161 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
8162
8163         * mips.c (mips_output_conditional_branch): Add `break'
8164         between `default' label and `close braces'.
8165
8166 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
8167
8168         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
8169         specifications and make it realistic.
8170         (LIB_SPEC): Likewise.
8171
8172 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
8173
8174         * config/mips/mips.c (mips_secondary_reload_class): Check for
8175         (PLUS (SP) (REG)) and return appropriate register class.
8176         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
8177         Handle (PLUS (SP) (REG)).
8178         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
8179         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
8180         of emit_insn for tablejump.
8181
8182 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
8183
8184         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
8185         asm_fprintf format string by itself.
8186         (output_function_profiler): Likewise.
8187
8188 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
8189
8190         * combine.c (simplify_logical, case AND): Only call
8191         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
8192         or the constant is positive.
8193
8194 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
8195
8196         * configure.in: Fix typo in rs6000-ibm-aix4 case.
8197         * configure: Regenerate.
8198
8199 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
8200
8201         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
8202         require a sub-version #.
8203         * configure: Rebuilt.
8204
8205 1999-06-14  Robert Lipe  (robertlipe@usa.net)
8206
8207         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
8208
8209 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
8210
8211         * c-typeck.c (process_init_element): Detect excess elements in
8212         char array initializer.
8213
8214 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
8215
8216         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
8217
8218 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
8219
8220         * invoke.texi (Option Summary): Add -fpermissive flag.
8221
8222 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
8223
8224         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
8225         that require PIC code sequences.
8226
8227 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
8228
8229         * configure.in: Add new target: thumb-elf.
8230         * configure: Regenerate.
8231         * config/arm/t-thumb-elf: New file: Makefile fragment for
8232         thumb-elf build.
8233         * config/arm/telf.h: New file: Header file for thumb-elf
8234         build.
8235
8236 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
8237
8238         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
8239         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
8240         initializers is some circumstances.
8241
8242         * fixinc/inclhack.def (endif_label): Add additional selector for
8243         more bogus stuff after #endif statements.
8244         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
8245
8246 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8247
8248         * i386/cygwin.h (SET_ASM_OP): Define.
8249
8250 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8251
8252         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
8253
8254 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8255
8256         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
8257         latter.
8258
8259         * sh.md (ic_invalidate_line_i): Remove second alternative.
8260
8261 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8262
8263         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
8264         test for the presence of valid prototypes.  Delete bypass expr.
8265         (ioctl_fix_ctrl): Correct the selection expression.
8266         (no_double_slash): Correct quoting rules
8267         *fixinc/fixincl.x: regen
8268         *fixinc/inclhack.sh: regen
8269
8270 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
8271
8272         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
8273
8274 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8275
8276         * rs6000.md (movsi_got_internal_mem): Delete.
8277         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
8278         (GOT_TOC_REGNUM): Delete.
8279         (PIC_OFFSET_TABLE_REGNUM): Define.
8280         (FINALIZE_PIC): Disable.
8281         * rs6000.c (rs6000_got_register): New code for fixed pic register.
8282         (rs6000_replace_regno): Delete.
8283         (rs6000_finalize_pic): Likewise.
8284         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
8285
8286 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8287
8288         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
8289         is a note; use <= for the compare; advance P while it is
8290         a NOTE.
8291
8292 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
8293
8294         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
8295         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
8296
8297         * varasm.c (remove_from_pending_weak_list): Verify t->name
8298         is non-NULL before passing it to strcmp.
8299
8300 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8301
8302         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
8303         the typed arguments are not part of a comment
8304         (ioctl_fix_ctrl): Added a purpose comment
8305         *fixinc/fixincl.x: regenerate
8306         *fixinc/inclhack.sh: regenerate
8307
8308 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8309
8310         * invoke.texi: Add C4x invocation docs.
8311
8312 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8313
8314         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
8315         Define new macros.
8316         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
8317         TARGET_EXPOSE_LDP.
8318         (c4x_legitimize_reload_address): New function.
8319         * config/c4x/c4x.md: Update docs.
8320
8321 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
8322
8323         * fixincludes: Avoid removing '.'.
8324         * fixinc/fixinc.svr4: Likewise.
8325         * fixinc/fixinc.winnt: Likewise.
8326         * fixinc/inclhack.tpl: Likewise.
8327         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
8328
8329 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8330
8331         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
8332         pattern.
8333         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
8334
8335 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8336
8337         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
8338         correctly.
8339
8340 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
8341
8342         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
8343         * configure: Regenerate.
8344
8345 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
8346
8347         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
8348         values.
8349
8350 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
8351
8352         * fixinc/inclhack.def (avoid_bool): Also catch
8353         "typedef [unsigned] int bool".
8354         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
8355
8356         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
8357         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
8358         * configure: Rebuilt.
8359
8360 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
8361
8362         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
8363         such that we can override its definitions if necessary.
8364         (CPP_SPEC): New define.  Support processor specific predefines via
8365         %(cpp_cpu).
8366         (CC1_SPEC): New define.  Support processor specific compiler
8367         options via %(cc1_cpu).
8368         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
8369         -static.
8370
8371 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8372
8373         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
8374         between sed's -e flag, and the open-quote following it.
8375         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
8376
8377 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
8378                           Jeffrey A Law  (law@cygnus.com)
8379
8380         * varasm.c (assemble_start_function): Remove the function
8381         from the pending weak decls list when we define a function.
8382         (assemble_variable): Similarly for variables.
8383         (weak_finish): Ignore items on the list with a NULL name.
8384         (remove_from_ending_weak_list); New function to "remove" an item
8385         from the pending weak declarations list.
8386
8387 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
8388
8389         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
8390
8391 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
8392
8393         * c-lex.c (GETC): Redefine to call getch.
8394         (UNGETC): Redefine to call put_back.
8395         (putback_buffer): New structure type.
8396         (putback): New static structure.
8397         (getch): New function.
8398         (put_back): New function.
8399         (yylex): Replace unused bytes from bad multibyte character.
8400
8401 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
8402
8403         * cpplib.c (do_define): Cast `alloca' return value.
8404         (do_include, do_undef, do_pragma): Likewise.
8405         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
8406         values.
8407         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
8408         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
8409
8410 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
8411
8412         * sparc.md (abstf2): This should be an expand.
8413         (split after abstf2_notv9): Fix mode.
8414         (abstf2_hq_v9): New pattern.
8415         (abstf2_v9): Only use when no hard quad.
8416         (absdf2_v9): Fix if target is not the same as source.
8417         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
8418         Add correct output constraints.
8419
8420 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
8421
8422         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
8423         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
8424
8425 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
8426
8427         * mips.h (mips_output_conditional_branch): New function.
8428         (mips_adjust_insn_length): Likewise.
8429         (ASSEMBLER_SCRATCH_REGNUM): New macro.
8430         (ADJUST_INSN_LENGTH): Likewise.
8431         * mips.c (print_operand): Add `F' and `W' for floating-point
8432         comparison opcodes.
8433         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
8434         are now in bytes.
8435         (mips_adjust_insn_length): New function.
8436         (mips_output_conditional_branch): New function.
8437         * mips.md (length): Adjust attribute definition to handle
8438         conditional branches.   Change lengths to bytes, rather than
8439         instructions throughout.  Remove length attribute from
8440         instructions whose length is four bytes, and rely on the default
8441         instead.
8442         (dslot): Fix typo in comment.
8443         Reword conditional branch patterns to use
8444         mips_output_conditional_branch.
8445
8446 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8447
8448         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
8449         (LIB_SPEC): Likewise.
8450         Link with -lprof1_r for -g/-pg.
8451
8452 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8453
8454         * loop.c (check_dbra_loop): Fix change of Jan 19.
8455
8456 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
8457
8458         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
8459         (STARTFILE_SPEC):  Define, override the svr4.h version.
8460         (ENDFILE_SPEC):  Likewise.
8461
8462 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
8463
8464         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
8465         * fixinc/fixincl.x: Regenerated.
8466         * fixinc/inclhack.sh: Regenerated.
8467
8468 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8469
8470         * sh.c (barrier_align): Don't return early for normal branch/barrier
8471         when optimizing for SH2.
8472
8473 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
8474
8475         * i386/udk.h (LINK_SPEC): Correct linker search path for
8476         system libraries.
8477
8478 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8479
8480         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
8481         (braf_label_ref_operand): Delete.
8482         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
8483         * sh.md (casesi_jump_2): Operand1 is now the inside of a
8484         label_ref, and has no predicate.
8485         The patten has a predicate to guard against invalid substitutions.
8486         (dummy_jump): Delete.
8487         (casesi): Update use of casesi_jump_2.
8488
8489 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8490
8491         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
8492         *fixinc/fixincl.x: regenerate
8493         *fixinc/inclhack.sh: regenerate
8494
8495 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
8496
8497         * dwarf2out.c (add_incomplete_type): New fn.
8498         (gen_struct_or_union_type_die): Call it.
8499         (retry_incomplete_types): New fn.
8500         (dwarf2out_finish): Call it.
8501
8502 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
8503
8504         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
8505         current block starts with a CODE_LABEL and ends with a CALL and
8506         we can not find all the argument setup instructions for the CALL.
8507
8508 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
8509
8510         Revert this change:
8511         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
8512         something is a candidate for optimize_bit_field_compare.
8513
8514 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8515
8516         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
8517
8518 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
8519
8520         * alpha.c (override_options): Thinko in last patch.
8521
8522         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
8523         (LIB_SPEC): Recognize -pthread.
8524
8525 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
8526
8527         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
8528         definition in config/arm/coff.h
8529         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
8530
8531 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
8532
8533         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
8534         fixes that need "file=xxx\n" prepended before invocation
8535         (start_fixer - new): starting the fixer process is complex enough
8536         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
8537         (process): uses the new routine; omit usage of putenv()
8538         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
8539         * fixinc/fixincl.x: regenerate
8540
8541 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
8542
8543         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
8544         and version #s (1.1 -> 2.96) as needed.
8545         * README.g77: Kill way out of date file in the toplevel directory.
8546
8547 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
8548
8549         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
8550         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
8551         * configure: Rebuilt.
8552         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
8553         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
8554         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
8555         (SWITCH_TAKES_ARG): Likewise.
8556         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
8557         * config/t-freebsd: Moved from config/i386/ so it can used for all
8558         FreeBSD targets.
8559
8560 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
8561
8562         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
8563
8564 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
8565
8566         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
8567         * configure: Rebuilt.
8568
8569 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
8570
8571         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
8572         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
8573         * rs6000/rs6000.c (rs6000_file_start): Use putc.
8574         (rs6000_output_load_toc_table): Same.
8575         (output_prolog, output_mi_thunk): Same.
8576         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
8577         (ASM_GLOBALIZE_LABEL): Use putc.
8578
8579 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
8580
8581         * alpha.md (reload_*_help): New patterns and splitters.
8582         (reload_*): Use them.
8583         (mov[qh]i): Likewise.
8584
8585 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
8586
8587         * cccp.c (handle_directive): Handle backslash-newlines in quoted
8588         strings correctly.
8589
8590 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
8591
8592         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
8593
8594 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
8595
8596         * flow.c (mark_regs_live_at_end, insn_dead_p,
8597         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
8598         and HARD_FRAME_POINTER_REGNUM special treatment if reload
8599         hasn't run or the frame pointer is needed.
8600         * haifa-sched.c (attach_deaths): Likewise.
8601         * sched.c (attach_deaths): Likewise.
8602
8603 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
8604
8605         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
8606         calculate_can_reach_end returns nonzero.
8607
8608         * configure.in (native gas tests): Search for an assembler in the
8609         same manner that the installed compiler will.
8610         * configure: Rebuilt.
8611         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
8612
8613         * alias.c (find_base_term): Improve handling of addresses
8614         constructed from binary operations.
8615
8616 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
8617
8618         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
8619
8620 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
8621
8622         * function.h (cleanup_label, frame_offset): Declare.
8623         (tail_recursion_label, tail_recursion_reentry): Likewise.
8624         (arg_pointer_save_area, rtl_expr_chain): Likewise.
8625         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
8626         (tail_recursion_label, tail_recursion_reentry): Likewise.
8627         (arg_pointer_save_area, rtl_expr_chain): Likewise.
8628
8629 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
8630
8631         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
8632         defined.
8633         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
8634         (MAX_OFILE_ALIGNMENT): Define.
8635
8636 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
8637
8638         * fixincl.c: Replace local include scheme with #includes of
8639         gansidecl.h and system.h.
8640         * procopen.c:  Likewise.
8641         * server.c:  Likewise.
8642
8643 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
8644
8645         * i386/t-dgux (EXTRA_PARTS): Add crti.o
8646         (crti.o): Add build rule and dependencies.
8647         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
8648
8649 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8650
8651         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
8652         (LIB_LINUX_SPEC): Likewise.
8653         (LIB_LINUX_SPEC): Add support for -pthread
8654         (CPP_OS_LINUX_SPEC): Likewise.
8655         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
8656         specified.
8657
8658 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
8659
8660         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
8661         conditional move.
8662         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
8663         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
8664         for IEEE math and CC_FCOMI.
8665         (put_jump_code): No IEEE if CC_FCOMI is set.
8666
8667 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8668
8669         * fold-const.c (fold_truthop): Make the field reference unsigned
8670         when converting a single bit compare.
8671
8672 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8673
8674         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
8675
8676 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
8677
8678         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
8679         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
8680         version did.
8681
8682         * reload.c (push_reload): Do not call remove_address_replacements
8683         when presented with identical optional reloads.
8684
8685 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
8686
8687         * alpha.h (MASK_FIX, TARGET_FIX): New.
8688         (MASK_*): Reorganize constants.
8689         (CPP_AM_FIX_SPEC): New.
8690         (TARGET_SWITCHES): Add FIX.
8691         (EXTRA_SPECS): Likewise.
8692         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
8693         (SECONDARY_MEMORY_NEEDED): Likewise.
8694         (REGISTER_MOVE_COST): Likewise.
8695         * alpha.c (override_options): Add FIX support.  Always use
8696         ALPHA_TP_PROG for ev6.
8697         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
8698         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
8699         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
8700
8701 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
8702
8703         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
8704         something is a candidate for optimize_bit_field_compare.
8705
8706 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
8707
8708         * gcc.texi (Passes): Document branch-shortening.
8709         * invoke.texi (Debugging Options): Document the fact that `-dp'
8710         outputs length information for instructions.
8711
8712 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
8713
8714         * flow.c: Revert previous delta.
8715
8716 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
8717
8718         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
8719         FRAME_POINTER_REGNUM.
8720         (mark_set_1): Ditto.
8721         (mark_used_regs): Ditto.
8722
8723 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
8724
8725         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
8726         (GOT_PCREL): New macro.  Define to 1 if not already defined.
8727         * arm/elf.h (GOT_PCREL): Define to 0.
8728         * arm.c (arm_finalize_pic): Take into account the setting of
8729         GOT_PCREL.
8730
8731 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
8732
8733         * output.h (STRIP_NAME_ENCODING): Provide default definition.
8734         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
8735
8736         * flow.c (mark_set_1): Do not record BLKmode stores as dead
8737         store elimination candidates.
8738
8739 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8740
8741         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
8742         TARGET_GAS.
8743
8744 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
8745
8746         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
8747         Add use of x-aix41-gld.
8748
8749 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
8750
8751         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
8752         (ASM_OUTPUT_DESTRUCTOR): Define.
8753
8754 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
8755
8756         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
8757         last CODE_LABEL in a loop if we have previously passed a jump
8758         to the top of the loop.
8759
8760 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
8761
8762         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
8763         applying Philip's patch.
8764
8765 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
8766
8767         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
8768         are not VAR_DECLs.
8769
8770 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
8771
8772         * loop.c (strength_reduce): Grow reg_single_usage as needed.
8773
8774 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
8775
8776         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
8777         Also remove a useless comment.
8778
8779 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
8780
8781         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
8782
8783 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
8784
8785         * collect2.c (main): Only generate import or export file and add
8786         to link arguments if non-empty.  Use xmalloc not alloca.
8787         (write_{export,import}_file): Delete.
8788         (write_aix_file): New function.
8789         (locatelib): Use xmalloc not malloc.
8790         (GCC_OK_SYMBOL): Do not check type if aix64.
8791
8792 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
8793
8794         Based on patch by Scott Bambrough and Pat Beirne:
8795         * config/arm/arm.c (making_const_table): New variable.
8796         * config/arm/arm.h (making_const_table): Declare.
8797         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
8798         appropriate.
8799         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
8800         Keep track of when we are building the constant table.
8801
8802 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
8803
8804         * config/arm/arm.c (arm_override_options): Fix erroneous warning
8805         message.
8806
8807 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
8808
8809         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
8810         defined.
8811
8812 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
8813
8814         * tm.texi (FUNCTION_ARG): Correct description of a stack element
8815         in a PARALLEL.
8816
8817 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
8818
8819         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
8820
8821 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8822
8823         * rs6000.c (output_mi_thunk): Enable full support again.
8824
8825 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8826
8827         * sh.h (BRANCH_COST): Define.
8828
8829 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
8830
8831         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
8832
8833 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
8834
8835         * function.c (assign_stack_local): Align stack slot propertly.
8836         (assign_outer_stack_local): Likewise.
8837
8838 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
8839
8840         * expr.h (lang_expand_constant): Declare.
8841         * toplev.c (lang_expand_constant): Define it.
8842         * varasm.c (output_constant): Use it.
8843
8844 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8845
8846         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
8847         Change function definitions to K&R style.
8848
8849 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8850
8851         * fixinc/fixincl.c: We must not ignore SIGCLD now.
8852
8853 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
8854
8855         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
8856         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
8857         (several places): omit static initialization
8858         (process): use single fd, since only the read fd is used
8859         * fixinc/gnu-regex.c: define 'const' away, if not supported
8860         * fixinc/procopen.c(several places): omit static initialization
8861         * fixinc/server.c: define 'volitile' away, if not supported
8862
8863 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8864
8865         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
8866         asm_fprintf and %L to generate the label name.
8867         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
8868         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
8869
8870 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
8871
8872         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
8873         insn for a conditional jump can not be found.
8874
8875 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
8876
8877         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
8878         on variables in specific sections other than .sbss and .sdata.
8879
8880 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
8881
8882         * stmt.c (expand_return): Call start_cleanup_deferral and
8883         end_cleanup_deferral around conditional code.
8884
8885 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
8886
8887         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
8888         filename lists.  Utilizes new "krstr" AutoGen function.
8889         * fixinc/fixincl.x: Rebuilt.
8890
8891 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
8892
8893         * i386.c (output_float_compare): Avoid GNU-C extensions.
8894
8895 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
8896
8897         * version.c: Bump to distinguish mainline tree from the
8898         gcc-2.95 branch.
8899
8900 See ChangeLog.1 for earlier changes.
8901
8902 Local Variables:
8903 add-log-time-format: current-time-string
8904 End: