OSDN Git Service

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