m68kelf.h: Suppress '/* within comment' warning.
[platform/upstream/gcc.git] / gcc / ChangeLog
1 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
2                           Geoffrey Keating  <geoffk@cygnus.com>
3
4         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
5
6         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
7         MASK_ALIGN_INT.
8         
9         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
10         (TARGET_STRICT_ALIGNMENT): New macro.
11         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
12         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
13         * invoke.texi (M680x0 Options): Document -mstrict-align.
14
15 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
16                           Richard Henderson  <rth@cygnus.com>
17
18         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
19         (ix86_split_long_move): Declare.
20         * i386.c (split_xf, ix86_split_movdi): Remove.
21         (ix86_split_to_parts, ix86_split_long_move): New.
22         * i386.md (dimode move splitters): Use ix86_split_long_move.
23         (dfmode move splitters): Likewise.
24         (xfmode move splitters): Likewise.
25         (movsf_1): Allow F->r.
26         (movdf_1, movxf_1): Allow F->ro.
27
28 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
29
30         * except.h (struct eh_entry): Add goto_entry_p.
31         (eh_region_from_symbol): Remove prototype.
32         * except.c (find_func_region_from_symbol): New function.
33         (emit_cleanup_handler): Likewise.
34         (eh_region_from_symbol): Make it static.
35         (add_new_handler): Verify the argument.
36         (find_func_region): Update comment.
37         (expand_eh_region_end): Expand handlers here, rater than waiting
38         until expand_leftover_cleanups or start_all_catch.
39         (expand_leftover_cleanups): Don't expand here.
40         (expand_start_all_catch): Or here.
41         (expand_rethrow): Check the return value from find_func_region.
42         * function.c (expand_function_end): Emit the catch_clauses.
43         
44 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
45
46         * integrate.c (expand_inline_function): Add necessary check for NULL.
47
48 1999-11-18  Nick Clifton  <nickc@cygnus.com>
49
50         * toplev.c (main): Correctly detect an unrecognised option.
51
52         * cppinit.c (cpp_handle_option): Do not claim to have consumed
53         a -f option if it has not been recognised.
54
55 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
56
57         * basic-block.h (update_life_extent): Remove trailing comma on
58         enumeration type list.
59
60 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
61
62         * varasm.c (output_constructor) Solved problem with long long
63         bitfields. Corrected calculating this_time and shift. Also
64         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
65
66 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
67
68         * flow.c (split_edge): Take looping structure into account when
69         determining where to put the new block note.
70
71 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
72
73         * Makefile.in (ggc-none.o): Provide host specific version if
74         needed.
75
76 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
77
78         * cse.c (delete_trivially_dead_insns): Identify no-op insns
79         containing subregs too.
80
81 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
82
83         * invoke.texi: Add documentation for -muninit-const-in-rodata.
84         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
85         (TARGET_UNINIT_CONST_IN_RODATA): Define.
86         (text_section): Add switches -munint-const-in-rodata and
87         -mno-uninit-const-in-rodata.
88         (ASM_OUTPUT_COMMON): Remove.
89         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
90         const objects should be placed in read-only data. Otherwise declare
91         them in common.
92
93 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
94
95         * jump.c (jump_optimize_1): Revert last change.
96
97 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
98
99         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
100         test if optimizing for size.
101
102 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
103
104         * Makefile.in (toplev.o): Depend on except.h.
105         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
106
107 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
108
109         * i386.md (divmodsi4): Rewrite to expander.
110         (*divmodsi4_nocltd): New.
111         (*divmodsi4_cltd): New.
112         (divmodsi4 splitter): Handle the case when input comes in edx.
113         (udivmodhi4): Do not use constraints in exander.
114         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
115
116 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
117
118         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
119         for the common case.
120
121 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
122
123         * explow.c (hard_function_value): Add outgoing argument.
124         * expr.h (hard_function_value): Declare it.
125         * calls.c (expand_call, emit_library_call_value): Update callers.
126         * function.c (aggregate_value_p): Ditto.
127         (diddle_return_value): Must look at the outgoing registers
128         on archs with register windows.
129
130 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
131
132         * alpha.c (alpha_build_va_list): Use make_lang_type and
133         initialize TYPE_NAME for the va_list record.
134
135         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
136
137         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
138         for printing.
139         * ggc.h (struct ggc_statistics): Rearrange elements for better
140         packing on 64-bit hosts.
141         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
142         (compute_nearerout): Likewise.
143
144 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
145
146         * config/rs6000/rs6000.c (first_reg_to_save): Save
147         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
148
149 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
150
151         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
152         notion of nesting to find the DIE for a type or function.
153         DIEs can go in limbo even if we got a context_die.
154         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
155         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
156         for local type.
157         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
158         (gen_type_die): Writing out the context doesn't cause member class
159         template instantiations to be written out as well.
160
161 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
162
163         * rs6000.h (ASM_OUTPUT_DEF): New.
164         Based on proposed addition from David Edelsohn.
165
166 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
167             Bruce Korb  <autogen@linuxbox.com>
168
169         * fixinc/inclhack.def
170         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
171         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
172                 in net/inet.h.
173         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
174         (svr4_endian): enabled with SVR5
175         (svr4_mkdev): simplified syntax and enabled with SVR5
176
177 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
178
179         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
180         * configure: Rebuilt.
181         * config/t-freebsd-thread: New file.
182
183 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
184
185         * i386.c (ix86_decompose_address): Verify the base is a REG
186         before trying to examine its register number.
187
188         * basic-block.h: Remove all #defines and prototypes related to
189         integer lists.
190         (free_bb_mem, compute_preds_succs): Remove prototype.
191         * rtl.h (free_bb_mem): Remove prototype.
192         * flow.c (alloc_int_list_node); Remove function.
193         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
194         (compute_preds_succs, free_bb_mem): Likewise.
195         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
196         * toplev.c (rest_of_compilation): Likewise.
197         * haifa-sched.c (build_control_flow): Use flow generated edge
198         list to build the haifa specific edge list.
199         (find_rgns): Use new CFG data structures instead of pred/succ lists.
200         (schedule_insns): Do not build pred/succ lists anymore.  Instead
201         build the edge table.
202
203         * basic-block.h (dump_bb_data): Remove declaration.
204         * flow.c (dump_bb_data): Remove function.
205         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
206         (sbitmap_union_of_predsucc): Likewise.
207
208         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
209         argument.  All callers changed.
210         (delete_null_pointer_checks_1): No longer need to compute the
211         pred/succ lists.
212
213         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
214         All callers changed.
215         (pre_expr_reaches_here_p_work): Likewise.
216         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
217         * lcm.c (compute_laterin): Fix initialization of LATER.
218         (compute_nearerout): Similarly for NEARER.
219
220 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
221
222         * cse.c (set_nonvarying_address_components): Delete unused function.
223         (refers_to_p): Likewise.
224
225 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
226
227         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
228         needed.
229
230 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
231
232         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
233         definition in do while (0).
234
235 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
236
237         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
238
239 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
240
241         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
242
243 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
244
245         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
246         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
247         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
248         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
249
250         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
251         saved on the stack.  Output more accurate stack frame statistics
252         into assembler file.
253
254 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
255
256         * genextract.c (record_insn_name): New function.
257         (get_insn_name): No longer a stub.
258         (main): Call record_insn_name for each insn.  After each label
259         written, print the insn name in a comment.
260
261 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
262
263         * output.h (const_section, init_section, fini_section): Add
264         prototypes.
265
266         * alpha/elf.h (const_section): Delete declaration.
267
268         * svr4.h (const_section): Likewise.
269
270 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
271
272         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
273         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
274         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
275         expressions.
276         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
277         variable-sized array bounds.
278         
279 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
280
281         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
282         ASM_OUTPUT_LABEL.
283
284 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
285
286         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
287         addresses the same way GO_IF_LEGITIMATE_INDEX does. 
288
289 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
290
291         * cse.c (hash_arg_in_struct): Delete.
292         (struct table_elt): Delete elt in_struct.
293         (struct set): Delete elt src_in_struct.
294         (merge_equiv_classes): Don't set either hash_arg_in_struct or
295         the corresponding in_struct elts.
296         (canon_hash): Likewise.
297         (safe_hash): Likewise.
298         (find_best_addr): Likewise.
299         (record_jump_cond): Likewise.
300         (cse_insn): Likewise.
301
302 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
303
304         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
305
306         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
307         unsigned types.
308
309 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
310
311         * function.c (diddle_return_value): Put back check that the DECL_RTL
312         for the function is a register.
313
314         * function.c (diddle_return_value): Use hard_function_value to
315         get an rtx suitable for use in the USE/CLOBBER insn.
316
317         * global.c (global_conflicts): Update comments.
318         (record_conflicts): No need to record conflicts between pseudos here.
319
320 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
321
322         * fixinc/fixincl.c: Added verbose levels for status messages
323
324 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
325
326         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
327         operand as argument to expand_and or expand_binop.
328
329 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
330
331         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
332         gcc_add_string_root.
333
334 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
335
336         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
337
338 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
339
340         * flow.c (compute_flow_dominators): Initially put all blocks on
341         the worklist.
342         * lcm.c (compute_antinout_edge, compute_available): Similarly.
343         * gcse.c (compute_cprop_avinout): Remove.
344         (compute_cprop_data): Use compute_available.
345         (delete_null_pointer_checks_1): Use compute_available.
346
347         * basic-block.h (compute_available): Returns a void now.
348         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
349         to return a value anymore.
350         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
351         worklists.  Fix boundary cases. Compute maximal solutions.
352         (compute_laterin, compute_nearerout): Similarly.
353
354         * dwarf2out.c (add_AT_location_description): Allow
355         (mem (plus (pseudo) (...)) too.
356
357 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
358
359         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
360
361 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
362                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
363
364         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
365
366         * gansidecl.h: Likewise.
367
368         * rtl.c: Likewise.
369
370         * rtl.h: Likewise.
371
372         * toplev.h: Likewise.
373
374         * tree.c: Likewise.
375
376         * tree.h: Likewise.
377
378         * varray.c: Likewise.
379
380         * varray.h: Likewise.
381
382 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
383
384         * gcov.c (struct arcdata): Add hits and total, remove prob.
385         (output_branch_counts): New.
386         (process_args): Set output_branch_counts if -c.
387         (calculate_branch_probs): Store hits and total instead of
388         percentage.
389         (output_data): Emit counts if output_branch_counts is true.
390         * gcov.texi (Invoking Gcov): Document -c switch..
391
392 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
393
394         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
395         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
396
397 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
398
399         * invoke.texi (C Dialect Options): Add missing builtins from
400         c-common.c to list.
401         * extend.texi (Other Builtins): Copy to this list.
402
403 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
404
405         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
406         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
407         redundant bitmap.h.
408
409 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
410
411         * flow.c (compute_flow_dominators): No longer treat basic block 0
412         or (n_basic_blocks - 1) specially.  Clear the AUX field before
413         starting computation of doms/pdoms.  Fix initial state for pdoms.
414
415 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
416
417         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
418         match rtl.o's: added ggc.h and toplev.h
419         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
420         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
421         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
422
423 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
424
425         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
426         from HAVE_DOS_BASED_FILESYSTEM.
427         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
428         HAVE_DOS_BASED_FILESYSTEM.
429         (main): Likewise.
430         (split_directories): Only special-case DOS file names if
431         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
432         instead of explicit tests.  Conditionalize on !VMS.
433         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
434         tests.  Conditionalize on !VMS.
435         (process_command): Only use make_relative_prefix if !VMS.
436         (free_split_directories): Conditionalize on !VMS.
437         (DIR_UP): Conditionalize on !VMS.
438
439 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
440
441         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
442
443 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
444
445         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
446         case.
447
448 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
449
450         * invoke.texi (Environment Variables): Document relative path
451         lookup.
452         * gcc.c (DIR_UP): If not defined, define as "..".
453         (standard_bindir_prefix): New static, holds target location to
454         install binaries.
455         (split_directories): New function to split a filename into
456         component directories.
457         (free_split_directories): New function, release memory allocated
458         by split_directories.
459         (make_relative_prefix): New function, make a relative pathname if
460         the compiler is not in the expected location.
461         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
462         can figure out an appropriate prefix from argv[0].
463         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
464         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
465         STANDARD_BINDIR_PREFIX.
466
467 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
468
469         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
470         in c4x.c.
471         * config/c4x/c4x.h: Moved prototypes to c4x.h.
472         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
473         c4x_secondary_memory_needed) Delete.
474         (fp_zero_operand): Add mode argument.
475
476 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
477
478         * reload1.c (reload_reg_free_for_value_p): Don't use a register
479         that is in reload_reg_used.
480
481 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
482
483         * config/arm/arm-protos.h: New file: Prototypes for functions
484         defined in arm.c and pe.c.
485         * config/arm/arm.h: Fix compile time warnings.
486         * config/arm/arm.c: Fix compile time warnings.
487         * config/arm/pe.h: Fix compile time warnings.
488         * config/arm/aout.h: Fix compile time warnings.
489
490 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
491
492         * config/m32r/m32r-protos.h: New file: Prototypes for functions
493         defined in m32r.c
494         
495         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
496         Add support for subtargets.
497         Add prototypes for new predicates.
498         Add scheduling macros.
499         
500         * config/m32r/m32r.c: Fix compile time warnings.
501         (int8_operand): New predicate function.
502         (reg_or_cmp_int16_operand): New predicate function.
503         (extend_operand): New predicate function.
504         (m32r_adjust_code): New scheduling function.
505         (m32r_adjust_priorty): New scheduling function.
506         (m32r_sched_init): New scheduling function.
507         (m32r_sched_reorder): New scheduling function.
508         (m32r_sched_variable_issue): New scheduling function.
509         (direct_return): New codegen function.
510         (m32r_not_same_reg): New rtl testsing function.
511         
512         * config/m32r/m32r.md: Fix compile time warnings.
513         Add support for pre decrement and post increment memory
514         references.
515         Add S<cc> patterns.
516         Add fabs patterns.
517         
518 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
519
520         * global.c (EXECUTE_IF_CONFLICT): Don't define.
521         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
522         (find_reg): Likewise.
523
524 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
525
526         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
527         to avoid assembler errors.
528
529 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
530
531         * config/v850/v850-protos.h: New file: Prototypes for functions
532         defined in v850.c
533         * config/v850/v850.h: Move prototypes to v850-protos.h
534         * config/v850/v850.c: Move prototypes to v850-protos.h
535         * config/v850/v850.md: Fix compile time warnings.
536
537         * config/fr30/fr30-protos.h: New file: Prototypes for functions
538         defined in fr30.c
539         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
540         * config/fr30/fr30.c: Fix compile time warnings.
541         * config/fr30/fr30.md: Fix compile time warnings.
542
543 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
544
545         * tree.h (get_containing_scope): Declare it.
546         * tree.c (get_containing_scope): New fucntion.
547         (decl_function_context): Use it.
548         * toplev.c (rest_of_compilation): Use get_containing_scope.
549
550 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
551
552         * Makefile.in (rtl.o): Depend on toplev.h.
553
554 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
555
556         * cse.c (delete_trivially_dead_insns): Replace alloca with
557         xmalloc/xcalloc.
558         * except.c (update_rethrow_references): Likewise.
559         (init_eh_nesting_info): Likewise.
560         * function.c (identify_blocks): Likewise.
561         * gcse.c (dump_hash_table): Likewise.
562         * graph.c (print_rtl_graph_with_bb): Likewise.
563         * loop.c (combine_movables): Likewise.
564         (move_movables): Likewise.
565         (count_loop_regs_set): Likewise.
566         (strength_reduce): Likewise.
567         * profile.c (compute_branch_probabilities): New function, split
568         out from ...
569         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
570         * regclass.c (regclass): Likewise.
571         * regmove.c (regmove_optimize): Likewise.
572         * toplev.c (compile_file): Likewise.
573         (main): Don't mess with the stack rlimit.
574         
575 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
576
577         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
578         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
579
580 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
581
582         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
583
584 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
585
586         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
587         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
588         macro expansion.
589
590 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
591
592         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
593
594 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
595
596         * gcse.c (post_dominators): Kill.
597         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
598         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
599         pass in a pdom array since we do not need pdoms.
600         * haifa-sched.c (schedule_insns): Similarly.
601         * flow.c (compute_dominators): Remove dead function.
602         (compute_flow_dominators): Do not compute doms or pdoms if the
603         caller does not request them.  Split up loop to build doms and
604         pdoms.  Use a worklist to compute doms and pdoms.
605         * basic-block.h (compute_dominators): Remove prototype.
606
607 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
608
609         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
610         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
611         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
612         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
613         (cant_move, fed_by_spec_load, is_load_insn): Remove.
614         (schedule_region): Remove unused variable.
615         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
616
617 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
618
619         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
620         (update_equiv_regs): Likewise.
621         (block_alloc): Likewise.
622         * reg-stack.c (reg_to_stack): Likewise.
623         (convert_regs_2): Likewise.
624         * reload1.c (reload_as_needed): Likewise.
625         
626 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
627
628         * Makefile.in (dbxout.o): Depend on ggc.h.
629         (dwarf2out.o): Likewise.
630         (xcoffout.o): Likewise.
631         * dbxout.c: Include ggc.h.
632         (dbxout_init): Register lastfile as a root.
633         * dwarf2out.c: Include ggc.h.
634         (dwarf2out_line): Register lastfile as a root.
635         * xcoffout.c: Include ggc.h.
636         (xcoffout_source_line): Register xcoff_lastfile as a root.
637
638 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
639
640         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
641
642 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
643
644         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
645         defined.
646         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
647
648 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
649
650         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
651         (EXECUTE_IF_CONFLICT): Likewise.
652         (ALLOCNO_LIVE_P): Avoid signed division.
653         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
654         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
655         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
656
657 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
658
659         * haifa-sched.c (schedule_block): Don't crash if there's no
660         next insn for an interblock movement.
661         (add_branch_dependences): Don't allow clobber insns to move either.
662
663 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
664
665         * i386.c (split_xf): New.
666         * i386-protos.h: Declare it.
667         * i386.md (movxf_1): Add general regs alternatives.
668         (movxf_1+1): New splitter for same.
669
670 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
671
672         * function.c (purge_addressof_1): Add missing return values.
673
674 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
675
676         * function.c (is_addressof): New function.  Returns true if
677         the given piece of RTL is an ADDRESSOF.
678         (purge_addressof_1): Make boolean.  Return false if the
679         ADDRESSOFs could not be purged.
680         (purge_addressof): If ADDRESSOFs could not be purged from the
681         notes attached to an insn, remove the offending note(s),
682         unless they are attached to a libcall.
683
684 1999-11-05  Andreas Jaeger  <aj@suse.de>
685
686         * genoutput.c (null_operand =): Initialize all fields.
687
688         * errors.h: Add extern to prototypes.
689
690 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
691
692         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
693         * configure: Rebuilt.
694
695 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
696
697         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
698         (mirror_conflicts): New function.
699         (global_alloc): Call it.
700         (expand_preferences): Remove redundant CONFLICTP test.
701         (find_reg, dump_conflicts): Likewise.
702         (prune_preferences): Process conflicts one word at a time.
703
704 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
705
706         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
707         instead of an explicit loop.
708
709 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
710
711         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
712         if REG_RETVAL check succeeds, then put classp in src_elt.
713
714 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
715
716         * function.c (pad_to_arg_alignment): Only update argument_pad
717         if the argument's alignment is greater than STACK_BOUNDARY.
718
719 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
720
721         * bitmap.h (BITMAP_XFREE): New.
722         * flow.c (life_analysis): Use it.
723         (life_analysis_1): Free blocks.
724
725         * combine.c (undo_commit): New.
726         (try_combine): Use it.  Don't zap undobuf.undos.
727         (combine_instructions): Don't zap undobuf.undos; free the
728         undobuf.frees list.
729
730         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
731
732         * stmt.c (cost_table_): New.
733         (estimate_case_costs): Use it instead of xmalloc.
734
735         * toplev.c (compile_file): Reuse dumpname memory instead
736         of strdup'ing it.
737
738 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
739
740         * reg-stack.c (convert_regs_1): Initialize target_stack->top
741         after verifying an EH edge.
742
743         * haifa-sched.c (init_rgn_data_dependences): Correctly
744         size bb_pending_lists_length when zeroing.
745
746 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
747
748         * function.c (diddle_return_value): New.
749         (expand_function_end): Use it.
750         * stmt.c (expand_null_return): Likewise.
751         (expand_value_return): Likewise.
752
753         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
754
755         * reload1.c (reload): Don't remove return value clobbers.
756
757 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
758
759         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
760
761 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
762
763         * cse.c (cse_main): Use xmalloc, not alloca.
764         (cse_basic_block): Likewise.
765         * local-alloc.c (local_alloc): Likewise.
766
767 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
768                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
769
770         * rtl.c: Include toplev.h.
771         (fatal): Remove declaration.
772
773 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
774
775         * haifa-sched.c (schedule_block): Fix thinko.
776
777 1999-11-03  James McKelvey <mckelvey@fafnir.com>
778
779         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
780         S_IR* defined values
781
782 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
783
784         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
785         call `malloc' instead.
786
787 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
788
789         * flags.h (flag_renumber_insns): Declare.
790         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
791         renumbering table.
792         * rtl.h (renumber_insns): Change prototype.
793         * toplev.c (flag_renumber_insns): Define.
794         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
795         
796 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
797
798         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
799         and fpsqrtd.  Use them and create fdiv function unit to more
800         accurately represent fpu sqrt pipeline semantics on UltraSparc.
801         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
802
803 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
804
805         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
806         3 on UltraSparc.
807         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
808         insn into ready list, do not use just a raw swap.
809
810 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
811
812         * rtl.h (renumber_insns): New function.
813         (remove_unnecessary_notes): Likewise.
814         * emit-rtl.c (renumber_insns): Define.
815         (remove_unncessary_notes): Likewise.
816         * toplev.c (rest_of_compilation): Remove dead code.
817         Use renumber_insns and remove_unncessary_notes.
818
819         * gcse.c (struct null_pointer_info): New type.
820         (get_bitmap_width): New function.
821         (current_block): Remove.
822         (nonnull_local): Likewise.
823         (nonnull_killed): Likewise.
824         (invalidate_nonnull_info): Take a null_pointer_info as input.
825         (delete_null_pointer_checks_1): New function.
826         (delete_null_pointer_checks): Use it.
827
828         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
829         (split_edges): Likewise.
830         (schedule_block): Likewise.
831         (compute_block_backward_dependencies): Likewise.
832         (schedule_region): Likewise.
833         (schedule_insns): Likewise.
834         
835 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
836
837         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
838         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
839         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
840         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
841         * jump.c (delete_unreferenced_labels): Don't delete if
842         LABEL_ALTERNATE_NAME is set.
843         * print-rtl.c (print_rtx): Dump alternate name.
844         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
845         * rtl.h (LABEL_ALTERNATE_NAME): Define.
846         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
847         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
848
849 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
850
851         * fix-header.c (recognized_extern, recognized_function): Constify
852         a char*.
853
854         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
855         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
856         (compute_available): Remove unused variable `last'.
857         (compute_nearerout): Remove unused variable `temp_bitmap'.
858         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
859         Remove unused variable `x'.
860
861         * scan.h (recognized_function, recognized_extern): Constify a
862         char*.
863
864         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
865
866 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
867
868          * varasm.c (decode_rtx_const): Use XSTR to access the string
869          of a SYMBOL_REF.
870
871 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
872
873         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
874
875 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
876
877         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
878
879 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
880
881         * pa.c (ireg_operand): New function.
882         * pa.h (PREDICATE_CODES): Handle ireg_operand.
883         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
884         Fix out of date comment.
885
886         * pa.md (negdi2): Turn into expander + anonymous pattern.
887
888         * reload.c (find_reloads): Fix typos in recent change.
889
890         * dwarf2out.c: Do not include ctype.h.
891
892 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
893
894         * regclass.c (record_reg_classes): Always use may_move_cost when
895         seeing how operand fits with various register classes.
896
897 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
898
899         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
900         * toplev.c: Revert Nov 1 13:22 change.
901
902 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
903
904         * config/pa/pa.md (height reduction patterns): Add checks for
905         overlapping operands to avoid semantic-destroying splits for 
906         height reduction patterns.
907
908 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
909
910         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
911         have been an hyphen, fixed.
912         * configure: Rebuilt.
913
914 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
915
916         * config/arm/tpe.h: Add prototypes for exported functions.
917         * config/arm/pe.c: Fix compile time warnings.
918         * config/arm/semi.h: Fix compile time warnings.
919         * config/arm/arm.c: Fix compile time warnings.
920         * config/arm/arm.h: Fix compile time warnings.
921         * config/arm/arm.md: Fix compile time warnings.
922         * config/arm/thumb.c: Fix compile time warnings.
923         * config/arm/thumb.h: Fix compile time warnings.
924         * config/arm/thumb.md: Fix compile time warnings.
925
926 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
927
928         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
929         detection code
930
931         * unroll.c (unroll_loop): Remove LOOP notes when loop is
932         completely unrolled.
933
934 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
935
936         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
937
938 Tue Nov  2 09:43:00 1999   Catherine Moore  <clm@cygnus.com>
939
940         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
941         * rtl.h (rtx_equal_p): Move prototype.
942         * rtl.c (rtx_equal_function_value_matters): Move from 
943         rtlanal.c
944         (rtx_equal_p): Likewise.
945         * rtlanal.c (rtx_equal_function_value_matters): Delete.
946         (rtx_equal_p): Likewise.
947
948 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
949
950         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
951         ! HAS_INIT_SECTION.
952
953 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
954
955         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
956
957         * pa.h (ADDR_VEC_ALIGN): Define.
958
959         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
960         notes when presented with "if (foo) break; end_of_loop" and
961         the break sequence gets moved out of the loop.
962
963         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
964         Remove explicit zero initializations of entries within MAP.
965
966 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
967
968         * reg-stack.c (convert_regs_1): Handle EH edges specially.
969
970 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
971
972         * bitmap.h (BITMAP_XMALLOC): New macro.
973         * flow.c (CLEAN_ALLOCA): Remove.
974         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
975         (life_analysis): Likewise.
976         (update_life_info): Don't use CLEAN_ALLOCA.
977         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
978         (calculate_global_regs_live): Likewise.
979         (print_rtl_with_bb): Likewise.
980         (verify_flow_info): Likewise.
981         * global.c (global_alloc): Likewise.
982         (global_conflicts): Likewise.
983         * integrate.c (save_for_inline_nocopy): Likewise.
984         (expand_inline_function): Likewise.
985         * jump.c (jump_optimize_1): Likewise.
986         (duplicate_loop_exit_test): Likewise.
987         (thread_jumps): Likewise.
988         * loop.c (loop_optimize): Likewise.
989         (combine_givs): Likewise.
990         (recombine_givs): Likewise.
991         * reorg.c (dbr_schedule): Likewise.
992         * unroll.c (unroll_loop): Likewise.
993         
994         * combine.c (combine_instructions): Use xmalloc instead of alloca.
995
996 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
997
998         * toplev.c (rest_of_compilation): Don't optimize the CFG
999         when rebuilding, just before dbr.
1000
1001 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1002
1003         * output.h (assemble_end_function, assemble_destructor,
1004         assemble_constructor, assemble_gc_entry, assemble_global,
1005         assemble_label, output_constant_pool) Constify a char*.
1006
1007         * varasm.c (assemble_destructor, assemble_constructor,
1008         assemble_gc_entry, assemble_end_function, assemble_global,
1009         assemble_label, output_constant_pool): Likewise.
1010
1011 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
1012
1013         * config/arm/thumb.c (thumb_expand_prologue): Add comments
1014         explaining what is goin on in this function.
1015
1016 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1017
1018         * regclass.c (record_reg_classes): In matching case, recompute
1019         costs since the direction of movement is different.
1020
1021 Sun Oct 31 21:59:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
1022
1023         * resource.c (mark_target_live_regs): For unconditional branches,
1024         the resources found at the branch target should be added to the
1025         resources found so far, not intersected.
1026
1027 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
1028
1029         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
1030         old cpp's.
1031         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
1032         (sys/mman.h): Include this file only if #HAVE_MMAP.
1033         (run_compiles): Initialize `esac_fmt' with one old KR string, not
1034         with automatically concatenated ANSI strings.
1035
1036 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
1037
1038         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
1039         (DIV_ROUND_UP): Robustify.
1040         (ggc_recalculate_in_use_p): New function.
1041         (release_pages): Don't inline it.
1042         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
1043         outer contexts.
1044         (ggc_pop_context): Use ggc_recalculate_in_use_p.
1045         (clear_marks): Always save in_use_p.
1046         (sweep_pages): Use ggc_recalculate_in_use_p.
1047         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
1048         Release pages before counting statistics.
1049         
1050 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
1051
1052         * toplev.c (rest_of_compilation): Fix thinko in this change:
1053         
1054         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
1055
1056         (rest_of_compilation): If inside an inlined external function,
1057         pretend we are just being declared.
1058
1059 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
1060
1061         * flow.c (calculate_global_regs_live): Fix thinko.
1062
1063         * integrate.c (expand_inline_function): Fix bugs in previous
1064         change from Oct 28, 1999.
1065
1066 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
1067
1068         * stmt.c (expand_value_return): Fix typo in this change:
1069
1070         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1071         (expand_value_return): Correctly convert VAL when promoting function
1072         return; support RETURN_REG being a PARALLEL.
1073         
1074 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
1075
1076         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
1077
1078 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1079
1080         * hard-reg-set.h (reg_names): Constify a char*.
1081
1082         * regclass.c  (reg_names): Likewise.
1083
1084         * regs.h (reg_names): Likewise
1085
1086         * a29k/a29k.c (reg_names): Delete declaration.
1087
1088         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
1089
1090         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
1091         arc_output_function_epilogue): Likewise.
1092
1093         * elxsi/elxsi.c (reg_names): Likewise.
1094
1095         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
1096         
1097         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
1098         Likewise.
1099
1100         * m88k/m88k.c (output_function_profiler): Likewise.
1101
1102         * sparc/sparc.c (sparc_flat_output_function_prologue,
1103         sparc_flat_output_function_epilogue): Likewise.
1104
1105 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
1106
1107         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
1108         warning from -Wuninitialized and put it under -W.
1109         * function.c (uninitialized_vars_warning): Warn only when the
1110         corresponding flag is set.
1111
1112 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
1113
1114         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
1115         is nonzero and the single set does not have an elt, then assign
1116         it an elt.
1117
1118         * simplify-rtx.c: New file.
1119         * Makefile.in (OBJS): Add simplify-rtx.o
1120         (simplify-rtx.o): Add dependencies.
1121         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
1122         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
1123         (cse_gen_binary, simplify_unary_operation): Delete.
1124         (simplify_binary_operation, simplify_plus_minus): Likewise.
1125         (check_fold_consts, simplify_relation_operation): Likewise.
1126         (simplify_ternary_operation): Likewise.
1127         (delete_trivially_dead_insns): Simplify the contents of the
1128         REG_EQUAL note before trying to substitute it into the source
1129         of the reg-reg copy at the end of a libcall sequence.
1130
1131         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
1132         references/callers changed.
1133
1134         * mn10200.c (mn10200_va_arg): Force the return value into a
1135         register.
1136
1137         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
1138
1139         * cccp.c (macroexpand): Avoid out of range accesses for omitted
1140         arguments.
1141
1142 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
1143
1144         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
1145
1146 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
1147
1148         * fold-const.c (fold): Fix thinko when optimizing comparisons
1149         against -0.0.
1150
1151 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
1152
1153         * gcc.texi (Passes): Update front-end files to their current 
1154         location.
1155
1156 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
1157
1158         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
1159         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
1160         (PREDICATE_CODES): Add addition_operation.
1161         * alpha-protos.h (addition_operation): Declare.
1162         (secondary_reload_class): Likewise.
1163         * alpha.c (addition_operation): New.
1164         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
1165         * alpha.md (adddi3): Turn into expander.
1166         (*lda, *adddi_2): New.
1167         (movsf, movdf patterns): Don't preference integer regs.
1168         (movsi, movdi patterns): Don't preference fp regs.
1169
1170 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
1171
1172         * genrecog.c (write_switch): Check for duplicate CODE cases.
1173
1174 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
1175
1176         * ggc-common.c: Update pre-function commentary.
1177         * ggc-page.c: Likewise.
1178         (poison): Remove.
1179         (poison_pages): Use memset directly.
1180         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
1181         (ggc_collect): Poison before sweeping.
1182         * ggc-simple.c: Update pre-function commentary.
1183         (ggc_alloc_obj): Poison non-zeroed memory.
1184
1185 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
1186
1187         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
1188         match format string, even on 64-bit hosts.
1189         * gcc-page.c (ggc_page_print_statistics): Likewise.
1190
1191 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
1192
1193         * config/i386/i386.c (ix86_cpu): Revert last patch.
1194         * config/i386/i386.h (ix86_cpu): Ditto.
1195
1196 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
1197
1198         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
1199         TYPE_SIZE, convert type of result to sizetype.
1200
1201 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
1202
1203         * flow.c (count_or_remove_death_notes): Equate NULL with the
1204         universal set.
1205
1206         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
1207         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
1208         dbr_schedule.
1209
1210         * i386.c (pic_label_no): Delete.
1211         (ix86_attr_length_default): Don't use single_set to peek
1212         inside a parallel.
1213
1214         * recog.c (peephole2_optimize): Allow recog_next_insn to index
1215         the first insn after bb->end.
1216         * i386.md (push mem peeps): Scratch is live after evaluation
1217         of the memory.
1218         (cmp mem peep): Similarly.
1219
1220 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
1221
1222         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
1223         * function.c (pad_to_arg_alignment): Add missing braces.
1224
1225 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1226
1227         * alpha/alpha-protos.h (literal_section): Add prototype.
1228         (alpha_need_linkage, alpha_start_function,alpha_end_function):
1229         Constify a char*.
1230
1231         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
1232         prototype.
1233         (alpha_start_function, alpha_end_function, float_strings,
1234         alpha_need_linkage): Constify a char*
1235
1236         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
1237
1238         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
1239
1240         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
1241
1242         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
1243
1244 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1245
1246         * flow.c (debug_flow_info): Add prototype.
1247
1248         * gcc.c (main): Likewise.
1249
1250         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
1251         Likewise.
1252
1253         * reload1.c (failed_reload, set_reload_reg): Likewise.
1254         
1255         * mips-tfile.c (main): Likewise.
1256         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
1257         with ATTRIBUTE_NORETURN.
1258
1259 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
1260
1261        * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
1262        DECL is not a memory ref.
1263  
1264 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
1265
1266         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
1267         * config/i386/i386.c (ix86_cpu): Add extern attribute.
1268
1269 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
1270
1271         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
1272         * config/mips/elf64.h: ditto.
1273
1274 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
1275
1276         * expr.c (emit_push_insn): New argument alignment_pad.
1277         Update all callers.  Adjust stack pointer based on alignment pad.
1278         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
1279         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
1280         (locate_and_pad_parm): New argument alignment_pad.  Update all
1281         callers.
1282         * expr.h (emit_push_insn): Update prototype.
1283         (locate_and_pad_parm): Update prototype.
1284         * calls.c (arg_data):  Add new field alignment_pad.
1285         (initialize_argument_information): Initialize alignment_pad.
1286
1287 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
1288
1289         * except.c (free_eh_nesting_info): Free the info itself.
1290         * function.c (free_after_compilation): Don't free NULL.
1291         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
1292         (pre_edge_insert): Free inserted.
1293         * stmt.c (free_stmt_status): Don't free NULL.
1294
1295 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
1296
1297         * gcov.c (DIR_SEPARATOR): Provide default.
1298         (output_data): Add test for MS-DOS format absolute filename.
1299         (fancy_abort): Correct program name.
1300         (open_files): Open all files in binary mode.
1301         * libgcc2.c (__bb_exit_func): Likewise.
1302
1303         * profile.c (init_branch_prob): Specify binary when opening files.
1304
1305         * flags.h (flag_unwind_tables): New decl.
1306         * toplev.c (flag_unwind_table): New definition.
1307         (f_options): Add -funwind-tables.
1308         (decode_g_option): Clarify warning when unknown -g option is given.
1309         (rest_of_compilation): If inside an inlined external function,
1310         pretend we are just being declared.
1311
1312         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
1313         (dwarf2out_frame_finish): Likewise.
1314
1315 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
1316
1317         * fold-const.c (merge_ranges): In not in0, but in1, handle
1318         upper bounds equal like subset case.
1319
1320 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
1321
1322         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
1323         passed in a register but moved to the stack.
1324
1325 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
1326
1327         * gcc.c (pass_exit_codes, greatest_status): New variables.
1328         (struct option_map): Add entry for "--pass-exit-codes".
1329         (execute): Update greatest_status if error.
1330         (display_help): Add documentation for -pass-exit-codes.
1331         (process_command): Handle -pass-exit-codes.
1332         (main): Look at pass_exit_codes and greatest_status on call to exit.
1333
1334 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1335
1336         * reload.c (find_reloads): Refine test for no input reload
1337         case to not includes reloads emitted after insn.
1338
1339         * function.c (find_temp_slots_from_address): Handle sum involving
1340         a register that points to a temp slot.
1341         (update_temp_slot_address): Make recursive call if both old and
1342         new are PLUS with a common operand.
1343         * calls.c (expand_call): Mark temp slot for result as having
1344         address taken.
1345         
1346         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
1347
1348         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
1349         component as well as "BINUTILS".
1350
1351         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
1352         * integrate.c (copy_rtx_and_substitute): Likewise.
1353         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
1354         All callers changed.
1355         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
1356         
1357         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
1358         gdb extensions, write size of type; also be more consistent
1359         in using references when this is a subtype.
1360
1361         * pa.md (extv, extzv, insv): Use define_expand to reject constant
1362         that is out of range.
1363
1364         * loop.c (unknown_constant_address_altered): New variable.
1365         (prescan_loop): Initialize it.
1366         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
1367         (invariant_p, case MEM): Remove handling for volatile and readony;
1368         check new variable if readonly.
1369         (check_dbra_loop): Chdeck unknown_constant_address_altered.
1370
1371         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
1372         (addr_affects_sp_p): Removed from note_mem_written and only
1373         define #ifdef AUTO_INC_DEC.
1374
1375         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
1376
1377         * regclass.c (record_reg_classes): Properly handle register move
1378         directions.
1379
1380         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
1381         Don't think valid if both operands are invalid.
1382         (struct constant_descriptor): New field RTL.
1383         (mark_const_hash_entry): Mark it.
1384         (record_constant{,_rtx}): Initialize it.
1385         (output_constant_def): Allocate RTL in permanent obstack and
1386         save in table.
1387         ({record,compare}_constant_1): Modes must match for
1388         CONSTRUCTOR of ARRAY_TYPE.
1389
1390         * c-common.h (initializer_constant_valid_p): Delete decl from here.
1391         * output.h (initializer_constant_valid_p): Move decl to here.
1392         * c-common.c (initializer_constant_valid_p): Delete function from here.
1393         * varasm.c (initializer_constant_valid_p): Move function to here.
1394
1395         * tree.h (STRIP_SIGN_NOPS): New macro.
1396         * fold-const.c (optimize_minmax_comparison): New function.
1397         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
1398         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
1399         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
1400         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
1401         widening conversions.
1402         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
1403         to look at size of mode, not precision of type; also add missing cases.
1404         (optimize_bit_field_compare, decode_field_reference): Don't try to
1405         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
1406
1407         * dwarf2out.c (ctype.h): Include.
1408         (dwarf2out_set_demangle_name_func): New function.
1409         (size_of_line_info): Deleted.
1410         (output_line_info): Compute size of line info table from difference
1411         of labels.
1412         (base_type_die, add_name_attribute): Call demangle function, if any.
1413         (field_byte_offset): Use bits per word for variable length fields.
1414         (gen_array_type_die): Add array name.
1415         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
1416         (dwarf2out_add_library_unit_info): New function.
1417
1418         * explow.c (set_stack_check_libfunc): New function.
1419         (stack_check_libfunc): New static variable.
1420         (probe_stack_range): Allow front-end to set up a libfunc to call.
1421
1422         * combine.c (simplify_comparison): When making comparison in wider
1423         mode, check for having commuted an AND and a SUBREG.
1424         (contains_muldiv): New function.
1425         (try_combine): Call it when dividing a PARALLEL.
1426         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
1427         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
1428         a PLUS.
1429         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
1430         use one of the CLOBBERs instead.
1431         (if_then_else_cond): If comparing against zero, just return thing
1432         being compared.
1433
1434         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
1435         Don't generate shifts and subtract if have conditional arithmetic.
1436
1437         * rtl.h (delete_barrier): New declaration.
1438         * jump.c (jump_optimize): Set up to handle conditional call.
1439         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
1440         (delete_barrier): New function.
1441
1442         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
1443
1444         * recog.c (nonmemory_operand): Accept ADDRESSOF.
1445
1446         * tree.c (build_type_attribute_variant): Push to obstack of
1447         ttype around type_hash_canon call.
1448
1449         * expr.c (placeholder_list): Move decl to file scope.
1450         (expand_expr): Don't force access to volatile just because its
1451         address is taken.
1452         If ignoring reference operations, just expand the operands.
1453         (expand_expr, case COMPONENT_REF): Propagate
1454         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
1455         Refine test for using bitfield operations vs pointer punning.
1456         (expand_expr, case CONVERT_EXPR): If converting to
1457         BLKmode UNION_TYPE from BLKmode, just return inner object.
1458         Use proper mode in store_field call.
1459         Properly set sizes of object to store and total size in store_field
1460         call for convert to union.
1461         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
1462         memory (like for ADDR_EXPR).  Also, don't put constant in register if
1463         we'll want it in memory.
1464         (readonly_fields_p): New function.
1465         (expand_expr, case INDIRECT_REF): Call it if LHS.
1466         (expand_assignment): Handle a RESULT_DECL where
1467         DECL_RTL is a PARALLEL.
1468         (do_jump, case WITH_RECORD_EXPR): New case.
1469         (get_inner_reference): Always go inside a CONVERT_EXPR
1470         and NOP_EXPR if both modes are the same.
1471         (store_field): Use bitfield operations if size of bitsize is not same
1472         as size of RHS's type.
1473         Check for bitpos not a multiple of alignment in BLKmode case.
1474         Do block move in largest possible alignment.
1475         (store_constructor): Set BITSIZE to -1 for variable size and properly
1476         in case of array of BLKmode.
1477         (expand_expr_unaligned): New function.
1478         (do_compare_and_jump): Call it.
1479
1480         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
1481         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
1482         does not include 'o'.
1483
1484         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
1485         both SET_DEST and SET_SRC reference a virtual register.
1486         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
1487
1488         * integrate.c (expand_inline_function): Handle case of setting
1489         virtual stack vars register (from built in setjmp); when parameter
1490         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
1491         (subst_constant): Add new parm, MEMONLY.
1492         (expand_inline_function, integrate_parm_decls): Pass new parm.
1493         (integrate_decl_tree): Likewise.
1494         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
1495         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
1496         (copy_rtx_and_substitute, case SET): Add explicit calls to
1497         copy_rtx_and_substitute for both sides.
1498
1499         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
1500         constraints.
1501         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
1502         within INDEX_TYPE, instead of before.
1503         (fixup_gotos): Use f->target_rtl, not the next insn,
1504         since latter may be from a later fixup.
1505         (expand_value_return): Correctly convert VAL when promoting function
1506         return; support RETURN_REG being a PARALLEL.
1507         (expand_return): When checking for result in regs and having
1508         cleanup, consider PARALLEL in DECL_RTL as being in regs.
1509
1510 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
1511
1512         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
1513         last_nominal_fname): Mark const.
1514         (struct include_hash: name, nshort, control_macro): Mark
1515         const.
1516         (struct macrodef: symnam): Mark const.
1517         (struct if_stack: fname): Mark const.
1518         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
1519         (IStable): New character-syntax array which encompasses all
1520         the old is_foo arrays.
1521         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
1522         is_space): New macros for interrogating IStable.
1523         (check_macro_name): Kill last argument.  All callers changed.
1524
1525         * cppinit.c (initialize_char_syntax): Delete.
1526         (is_idchar, is_idstart, is_hor_space, is_space,
1527         trigraph_table): Delete.
1528         (IStable): New.  Initialize with clever macros to avoid
1529         information duplication.
1530         (builtin_array): Table of builtins to get rid of explicit list
1531         in initialize_builtins.
1532         (initialize_builtins): Use builtins_array.
1533         (cpp_start_read): Call init_IStable, and set IStable['$'] if
1534         opts->dollars_in_ident.
1535
1536         * cppexp.c: Change all refs to is_xyz[] arrays to use new
1537         is_xyz() macros.
1538         (cpp_parse_expr): Avoid 'format string is not constant'
1539         warning. Use ISGRAPH to identify printable chars.
1540         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
1541         is_xyz() macros.
1542         (read_and_prescan): Map trigraphs to chars with open-coded
1543         if-else-if-... sequence, not a lookup table.
1544         * cpphash.c: Change all refs to is_xyz[] arrays to use new
1545         is_xyz() macros.
1546         * cpplib.c: Change all refs to is_xyz[] arrays to use new
1547         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
1548         (check_macro_name): Remove ability to report an invalid
1549         assertion name, which is never used.
1550         (do_line): Constify a couple of char *'s.
1551         * cppmain.c (main): Call cpp_cleanup before returning.
1552
1553 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
1554
1555         * ggc.h (struct ggc_statistics): New type.
1556         (ggc_get_size): New function.
1557         (ggc_print_statistics): Likewise.
1558         * ggc-common.c (ggc_stats): New variable.
1559         (ggc_mark_rtx_children): Keep statistics.
1560         (ggc_mark_tree_children): Likewise.
1561         (ggc_print_statistics): New function.
1562         * ggc-page.c (struct globals): Add bytes_mapped field.
1563         (alloc_anon): Update it.
1564         (release_pages): Likewise.
1565         (ggc_get_size): New function.
1566         (ggc_page_print_statistics): New function.
1567         * ggc-simple.c (ggc_get_size): New function.
1568         
1569 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
1570
1571         * flow.c (propagate_block): When the last reference to a label
1572         before an ADDR_VEC is deleted because the reference is a dead
1573         store, delete the ADDR_VEC.
1574
1575 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
1576
1577         * resource.c (find_free_register): Don't use the frame pointer
1578         if frame_pointer_needed.
1579
1580 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
1581
1582         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
1583         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
1584
1585         * config/i960/i960.c (i960_va_start): New locals base, num.
1586         Use INDIRECT_REF instead of ARRAY_REF on valist.
1587         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
1588
1589 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
1590
1591         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
1592
1593 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
1594
1595         * tree.def (PLACEHOLDER_EXPR): Update comments.
1596
1597 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1598
1599         * c-common.c (check_format_info): Avoid non-literal format string
1600         warnings when `first_arg_num' is zero.
1601
1602 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1603
1604         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
1605
1606 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
1607
1608         * arm.md (casesi_insn): Add a clobber of the condition code
1609         register.
1610
1611 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
1612
1613         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
1614         used by both cc1 and cc1plus.
1615         
1616 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
1617
1618         * config/arm/arm.c: Initialise arm_structure_size_boundary to
1619         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
1620         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
1621         to the value 32 if it has not already been defined.
1622         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
1623         Override definition in arm.h with a value of 8.
1624
1625 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
1626
1627         * c-pragma.c (push_alignment): Don't check the return value
1628         of xmalloc.
1629
1630 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
1631
1632         * sparc.h (ADJUST_COST): Fix thinko.
1633
1634 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
1635
1636         * cccp.c (rescan): Fixed obp pointer handling around call to
1637         check_expand subroutine.
1638
1639 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
1640
1641         * gcse.c (delete_null_pointer_checks): Only record non-null info
1642         for pseudos when examining stores.
1643
1644         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
1645         splitters for these patterns.  Use "#" for output templates.
1646         (addsi3_carryin_shift): New pattern.
1647
1648 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
1649
1650         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
1651         of the function return register into a plain REG until
1652         after function inlining is done.
1653
1654 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
1655
1656         * jump.c (jump_optimize_1): If we did cross-jumping, and
1657         the data will matter, rebuild the CFG.
1658         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
1659         not optimizing.  Don't run shorten_branches.
1660         * toplev.c (rest_of_compilation): Run shorten_branches after
1661         reg_to_stack.
1662
1663 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
1664
1665         * rtl.h (note_stores): Add additional paramter.
1666         * rtlanal.c (reg_set_p_1): Take additional paramter.
1667         (reg_set_last_1): Likewise.
1668         (reg_set_p): Adjust call to note_stores.
1669         (reg_set_last): Likewise.
1670         (note_stores): Pass data parameter to worker function.
1671         * alias.c (record_set): Take additional parameter.
1672         (init_alias_analysis): Pass it.
1673         * caller-save.c (mark_set_regs): Take additional parameter.
1674         (save_call_clobbered_regs): Pass NULL to note_stores.
1675         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
1676         parameter.
1677         (record_dead_and_set_regs_1): Likewise.
1678         (reg_dead_at_p_1): Likewise.
1679         (combine_instructions): Adjust calls to note_stores.
1680         (try_combine): Likewise.
1681         (record_dead_insn): Remove.
1682         (record_dead_and_set_regs): Adjust calls to note_stores.
1683         (reg_dead_at_p): Likewise.
1684         * cse.c (invalidate_skipped_set): Take additional parameter.
1685         (cse_check_loop_start): Likewise.
1686         (cse_check_loop_start_value): Remove.
1687         (cse_set_around_loop): Adjust calls to note_stores.
1688         * flow.c (notice_stack_pointer_modification): Take additional
1689         parameter.  Remove duplicate declaration.
1690         (record_volatile_insns): Adjust calls to note_stores.
1691         * gcse.c (record_set_info): Take additional parameter.
1692         (record_last_set_info): Likewise.
1693         (invalidate_nonnull_info): Likewise.
1694         (record_set_insn): Remove.
1695         (compute_sets): Adjust calls to note_stores.
1696         (last_set_insn): Remove.
1697         (compute_hash_table): Adjust calls to note_stores.
1698         (insert_insn_end_bb): Likewise.
1699         (delete_null_pointer_checks): Likewise.
1700         * global.c (mark_reg_store): Take additional parameter.
1701         (mark_reg_clobber): Likewise.
1702         (reg_becomes_live): Likewise.
1703         (global_conflicts): Adjust calls to note_stores.
1704         (build_insn_chain): Likewise.
1705         * integrate.c (note_modified_parmregs): Take additional parameter.
1706         (mark_stores): Likewise.  Make it static.
1707         (save_for_inline_nocopy): Adjust calls to note_stores.
1708         (try_constants): Likewise.
1709         * integrate.h (mark_stores): Remove declaration.
1710         * jump.c (mark_modified_reg): Take additional parameter.
1711         (thread_jumps): Adjust calls to note_stores.
1712         * local-alloc.c (validate_equiv_mem_from_store): Take additional
1713         parameter.
1714         (no_equiv): Likewise.
1715         (reg_is_set): Likewise.
1716         (validate_equiv_mem): Adjust calls to note_stores.
1717         (update_equiv_regs): Likewise.
1718         (block_alloc): Likewise.
1719         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
1720         (note_addr_stored): Take additional parameter.
1721         (note_set_pseudo_multiple_uses): Likewise.
1722         (record_initial): Likewise.
1723         (prescan_loop): Adjust calls to note_stores.
1724         (strength_reduce): Likewise.
1725         (check_dbra_loop): Likewise.
1726         * regmove.c (flags_set_1): Take additional paramter.
1727         (mark_flags_life_zones): Adjust calls to note_stores.
1728         * reload1.c (mark_not_eliminable): Take additional parameter.
1729         (forget_old_reloads_1): Likewise.
1730         (reload_cse_invalidate_rtx): Likewise.
1731         (reload_cse_check_clobber): Likewise.
1732         (reload_combine_note_store): Likewise.
1733         (move2add_note_store): Likewise.
1734         (reload): Adjust calls to note_stores.
1735         (reload_as_needed): Likewise.
1736         (emit_reload_insns): Likewise.
1737         (reload_cse_regs_1): Likewise.
1738         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
1739         (reload_combine): Adjust calls to note_stores.
1740         * resource.c (update_live_status): Take additional paramter.
1741         (mark_target_live_regs): Adjust calls to note_stores.
1742         * stupid.c (find_clobbered_regs): Take additional parameter.
1743         (stupid_life_analysis): Adjust calls to note_stores.
1744         
1745 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
1746
1747         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
1748         definition. 
1749
1750         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
1751         definition.
1752
1753         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
1754         of the variable arm_structure_size_boundary.
1755
1756 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
1757
1758         * alias.c (init_alias_analysis): Allocate reg_known_value and
1759         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
1760         and reg_seen.
1761         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
1762         * cse.c (cse_main): Call end_alias_analysis.
1763         * haifa-sched.c (schedule_insns): Likewise.
1764         * local-alloc. (update_equiv_regs): Likewise.
1765         * reload1.c (reload_cse_regs): Likewise.
1766         
1767 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1768
1769         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
1770         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
1771         mapping from MASK_FPU.
1772
1773 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
1774
1775         * sparc.md (call): Don't bound structure return size to 0xfff.
1776
1777 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
1778
1779         * resource.c (mark_target_live_regs): Check that the target
1780         insn wasn't created after compute_bb_for_insn.
1781
1782 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
1783
1784         * ggc-page.c (poison_pages): Don't be overzealous.
1785
1786 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
1787
1788         * alias.c: Update comments for ADDRESS.
1789         (nonlocal_reference_p): Look inside the ADDRESS to determine if
1790         it is a local memory reference.
1791
1792         * c-typeck.c (build_function_call): Check that the built-in
1793         function is of class BUILT_IN_NORMAL before trying to recongize
1794         it as BUILT_IN_ABS.
1795         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
1796         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
1797
1798 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
1799
1800         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
1801         of alloca.
1802         (pre_gcse): Likewise.
1803         (hoist_expr_reaches_here_p): Likewise.
1804         (hoist_code): Likewise.
1805         (pre_expr_reaches_here_p): Replace alloca with xcalloc.   Move core
1806         code to ...
1807         (pre_expr_reaches_here_p_work): ... here.
1808         (expr_reaches_here_p): Replace alloca with xcalloc.   Move core 
1809         code to ...
1810         (expr_reaches_here_p_work): ... here.
1811
1812 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
1813
1814         * resource.c (find_basic_block): Delete.
1815         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
1816         (init_resource_info): Call compute_bb_for_insn.
1817
1818 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
1819
1820         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
1821         with already adjacent blocks, but no fallthru.
1822         (merge_blocks_move_successor_nojumps): Simplify.
1823         (debug_flow_info): New.
1824
1825         * toplev.c (rest_of_compilation): Open jump1 dump file before
1826         jump and close after, as opposed to just using dump_rtl.
1827
1828 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1829
1830         * reload.h (earlyclobber_operand_p): Declare.
1831         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
1832         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
1833         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
1834         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
1835
1836 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
1837                           Richard Henderson  <rth@cygnus.com>
1838
1839         * emit-rtl.c (emit_block_insn_before): New.
1840         (emit_block_insn_after): New.
1841         * basic-block.h: Declare them.
1842
1843         * bitmap.h: Protect from multiple inclusion.
1844
1845         * recog.c (scratch_operand): Handle VOIDmode correctly.
1846
1847         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
1848
1849         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
1850         * function.c (assign_parms): Likewise.
1851         * global.c (global_conflicts): Clarify STACK_REGS commentary.
1852
1853         * reg-stack.c (max_uid): Remove.
1854         (blocks, block_begin, block_end, block_drops_in): Remove.
1855         (block_stack_in, block_out_reg_set, block_number): Remove.
1856         (struct block_info_def, BLOCK_INFO): New.
1857         (enum emit_where): New.
1858         (current_block): New.
1859         (BLOCK_NUM): Remove.
1860         (mark_regs_pat, record_label_references): Remove.
1861         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
1862         (nan): New.
1863         (goto_block_pat, print_blocks, dump_stack_info): Remove.
1864         (reg_to_stack): Simplified test for existance of fp code.  Use
1865         flow.c code.  Call shorten_branches after cross-jump opt.
1866         (check_asm_stack_operands): Renamed from record_asm_reg_life.
1867         Return false if the asm doesn't use stack regs.  Don't do life
1868         analysis on the asm.
1869         (emit_pop_insn): Replace function pointer arg `when' with
1870         enum `where'.  Update all callers.
1871         (change_stack): Likewise.  Update basic block end.
1872         (emit_swap_insn): Use current_block->head to limit reverse search
1873         for start of block.  Use emit_block_insn_after.
1874         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
1875         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
1876         structure assignment instead of bcopy.
1877         (print_stack): New.
1878         (convert_regs_entry, convert_regs_exit): New.
1879         (convert_regs_1, convert_regs_2): Split out from convert_regs.
1880         Work on basic blocks and the CFG.
1881         (convert_regs): Use them.
1882
1883         * i386.c (output_fix_trunc): Remove code for DImode input operand
1884         not at top-of-stack.
1885         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
1886         appropriate mode.
1887         (fix_truncdi_1): Allow any mode scratch.
1888
1889 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
1890
1891         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
1892         * linux.h, netbsd.h, vms.h: Not here.
1893
1894 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
1895
1896         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
1897         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
1898         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
1899         CONDITIONAL_REGISTER_USEAGE): Use them. 
1900         * config/mips/mips.c (mips_move_1word,mips_move_2words,
1901         gen_conditional_branch,override_options) : Use them.
1902         * config/mips/mips.md : Use them.
1903
1904 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
1905
1906         * i386.md (zero_extendqihi2): Use SImode register name with andl.
1907
1908 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
1909
1910         * integrate.c (function_cannot_inline_p): Don't allow inlining
1911         if setjmp is used.
1912
1913 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1914
1915         * c-parse.in (cast_expr): Constify.
1916
1917         * cccp.c (special_symbol): Likewise.
1918
1919         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
1920
1921         * dwarf2out.c (base_type_die): Likewise.
1922
1923         * global.c (allocno_compare): Likewise.
1924
1925         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
1926
1927         * regclass.c (fix_register): Likewise.
1928
1929         * rtl.h (fix_register): Likewise.
1930
1931         * stupid.c (stupid_reg_compare): Likewise.
1932
1933         * toplev.c (decode_f_option): Likewise.
1934
1935         * tree.c (build_complex_type): Likewise.
1936
1937 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
1938
1939         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
1940
1941 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1942
1943         * reload.c (find_reloads): Compute mode and nregs fields of all
1944         reloads.
1945         * reload1.c (calculate_needs_all_insns): Simplify a bit.
1946         (calculate_needs): Use precomputed mode/nregs values.
1947         (allocate_reload_reg): Likewise.
1948         Break out two...
1949         (failed_reload, set_reload_reg): ... new functions.
1950         (choose_reload_regs_init): New function, mostly broken out from...
1951         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
1952         Also lose one #if 0 block.
1953
1954 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
1955
1956         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name 
1957         substitution.
1958
1959 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
1960
1961         * tree.h (BLOCK_TYPE_TAGS): Remove.
1962         (BLOCK_END_NOTE): Likewise.
1963         (BLOCK_LIVE_RANGE_FLAG): Likewise.
1964         (BLOCK_LIVE_RANGE_START): Likewise.
1965         (BLOCK_LIVE_RANGE_END): Likewise.
1966         (tree_block): Remove live_range_flag, live_range_var_flag, and
1967         type_tags.  Remove end_note, live_range_start, and live_range_end.
1968         (remember_end_note): Remove prototype.
1969         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
1970         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
1971         remember_end_note.
1972         * ggc-common.c (ggc_mark_tree_children): Don't mark
1973         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
1974         * integrate.c (adjust_copied_decl_tree): Remove.
1975         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
1976         * stmt.c (last_block_end_note): Remove.
1977         (init_stmt): Don't add a GC root for it.
1978         (expand_fixup): Don't set it.
1979         (remember_end_note): Remove.
1980         (expand_end_bindings): Don't set last_block_end_note.
1981
1982 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
1983
1984         * reload1.c (reload_reg_free_for_value_p): Show
1985         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
1986         reloads.
1987
1988 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
1989
1990         * expmed.c (extract_bit_field): Allow for the case of non-integer
1991         objects that are smaller than a word (like SFmode on a 64-bit
1992         machine).
1993
1994         * loop.c (basic_induction_var): A non-integer variable which is
1995         being set by a paradoxical subreg is probably not a biv.
1996
1997 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1998
1999         * prefix.c (translate_name) Check for empty prefix string.
2000
2001 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
2002
2003         * Makefile.in (CPP_CROSS_NAME): New variable.
2004         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
2005         xcpp.
2006         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
2007         names of the files to be uninstalled.
2008
2009 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
2010
2011         * collect2.c (IS_DIR_SEPARATOR): Define.
2012         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
2013
2014         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
2015         functions too.
2016
2017         * haifa-sched.c (add_dependence): Update the true dependency
2018         cache the first time we add a true dependence to the LOG_LINKS chain.
2019
2020 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
2021
2022         * fold-const.c (fold): Fix comment.
2023
2024 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2025
2026         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
2027         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
2028         dbxout_start_new_source_file, dbxout_source_file,
2029         dbxout_source_line, dbxout_finish, dbxout_type_fields,
2030         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
2031         Constify a char*.
2032         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
2033         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
2034         (dbxout_block): Initialize variable `blocknum'. 
2035
2036         * dbxout.h (dbxout_init, dbxout_finish,
2037         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
2038         dbxout_args, dbxout_source_line): Constify a char*.
2039
2040         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
2041         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
2042         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
2043         low_pc_attribute, high_pc_attribute, body_begin_attribute,
2044         body_end_attribute, comp_dir_attribute, sf_names_attribute,
2045         src_info_attribute, mac_info_attribute, producer_attribute,
2046         lookup_filename, generate_macinfo_entry, fundamental_type_code,
2047         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
2048         dwarfout_undef): Constify a char*.
2049         (add_incomplete_type, retry_incomplete_types): Add prototypes.
2050
2051         * dwarfout.h (dwarfout_define, dwarfout_undef,
2052         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
2053
2054 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
2055
2056         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
2057         (MULTILIB_ISA_DEFAULT): New.
2058         (MULTILIB_DEFAULTS): Use it.
2059         * config/mips/mips.c (): Remove the now unnecessary definition
2060         of MIPS_ISA_DEFAULT.
2061         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
2062         unnecessary definition.
2063
2064 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
2065
2066         * arm.md (pic_load_addr): Add constraints to operand 1.
2067
2068 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
2069
2070         * fixinc/genfixes:  Provide a means for specifying -D options to
2071         AutoGen
2072
2073 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
2074
2075         * arm.c (arm_override_options): Correct initialization of
2076         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
2077         arm_is_strong, and arm_is_6_or_7.
2078
2079         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
2080         (note_set_pseudo_multiple_uses): New function.
2081         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
2082         if a pseudo set in the loop exit is used elsewhere.
2083
2084 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
2085
2086         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
2087
2088 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
2089
2090         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
2091         a single load-address pattern.
2092
2093 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
2094
2095         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
2096         depending on whether or not line-number notes are present.
2097
2098 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2099
2100         * cccp.c (progname, file_buf, default_include, include_file,
2101         macrodef, definition, hashval, wchar_type, user_label_prefix,
2102         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
2103         expand_to_temp_buffer, is_system_include, base_name,
2104         absolute_filename, read_name_map, open_include_file,
2105         record_control_macro, check_precompiled, check_preconditions,
2106         pcfinclude, pass_thru_directive, create_definition,
2107         check_macro_name, comp_def_part, collect_expansion,
2108         check_assertion, read_token_list, assertion_install,
2109         assertion_lookup, eval_if_expression, conditional_skip,
2110         validate_else, skip_quoted_string, quote_string, macarg1,
2111         error_from_errno, install, lookup, hashf, dump_defn_1,
2112         perror_with_name, pfatal_with_name, main, trigraph_pcp,
2113         check_white_space, rescan, handle_directive, monthnames,
2114         special_symbol, do_include, remap_include_file, write_output,
2115         arglist, do_assert, do_unassert, do_line, do_error, do_once,
2116         do_ident, do_sccs, do_xifdef, skip_if_group,
2117         output_line_directive, macroexpand, macarg, change_newlines,
2118         initialize_builtins, make_definition): Constify a char*.
2119
2120         * pcp.h (stringdef): Likewise.
2121
2122 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
2123
2124         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
2125         not of pattern.
2126
2127 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
2128                           Richard Henderson  <rth@cygnus.com>
2129
2130         * alias.c: Include ggc.h.
2131         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
2132         (record_set): Verify enough room in reg_base_value.
2133         (init_alias_analysis): Allocate reg_base_value with xcalloc.
2134         Register it as a GC root.
2135         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
2136         * Makefile.in (alias.o): Depend on ggc.h.
2137
2138         * unroll.c (unroll_loop): Verify the insn before a barrier
2139         is a JUMP_INSN before checking JUMP_LABEL.
2140
2141 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2142
2143         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
2144         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
2145         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
2146         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
2147         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
2148         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
2149
2150 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2151
2152         * output.h (ctors_section, dtors_section, bss_section): Prototype.
2153
2154         * alpha/alpha-interix.h (text_section): Delete prototype.
2155         * alpha/elf.h (text_section): Likewise.
2156         * arm/linux-elf.h (text_section): Likewise.
2157         * arm/linux-telf.h (text_section): Likewise.
2158         * c4x/c4x.h (text_section): Likewise.
2159         * dsp16xx/dsp16xx.h (bss_section): Likewise.
2160         * elfos.h (text_section): Likewise.
2161         * i386/aix386ng.h (text_section): Likewise.
2162         * i386/i386-interix.h (text_section): Likewise.
2163         * i386/sco5.h (text_section): Likewise.
2164         * i386/svr3gas.h (text_section): Likewise.
2165         * nextstep.h (text_section): Likewise.
2166         * psos.h (text_section): Likewise.
2167         * ptx4.h (text_section): Likewise.
2168         * svr3.h (text_section): Likewise.
2169         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
2170
2171 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2172
2173         * final.c (peephole): Delete prototype.
2174
2175         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
2176         (pre_insert_copies): Remove unused variable `bb'.
2177
2178         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
2179         prototypes.
2180
2181         * output.h (peephole): Add prototype.
2182
2183 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
2184
2185         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
2186         -O0.
2187
2188 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
2189
2190         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
2191         for inlined declarations.
2192
2193 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
2194
2195         * arm.c (logical_binary_operator): New fucntion.
2196         * arm.h (logical_binary_operator): Declare it.
2197         (PREDICATE_CODES): Handle logical_binary_operator.
2198         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
2199         output constraints.  Add appropriate splitters.
2200         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
2201         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
2202         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
2203
2204 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2205
2206         * genoutput.c (struct operand_data): New elt eliminable.
2207         (output_operand_data): Write it.
2208         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
2209         (compare_operands): Take it into account.
2210         * recog.h (struct insn_operand_data): New elt eliminable.
2211         * reload1.c (check_eliminable_occurrences, elimination_effects): New
2212         functions.
2213         (old_asm_operands_vec, new_asm_operands_vec): Delete.
2214         (eliminate_regs): Move code that detects changes to elimination
2215         target regs into new function elimination_effects.
2216         Delete one #if 0 block.
2217         Abort for USE, CLOBBER, ASM_OPERANDS and SET. 
2218         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
2219         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
2220         Only call eliminate_regs for real operands of the insn, not for parts
2221         of its structure or parts matched by things like match_operator.
2222         Use elimination_effects and check_eliminable_occurrences.  Use
2223         copy_insn to duplicate the pattern when not in the final pass.
2224
2225 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
2226
2227         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
2228         and fld.
2229
2230 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
2231
2232         * fixinc/README: document the "mach" machine matching test
2233         * fixinc/fixfixes.c: Implement the #else/#endif label fix
2234         * fixinc/fixtests.c: Implement the #else/#endif label test
2235         * fixinc/inclhack.def: utilize these tests and fixes
2236         * fixinc/inclhack.sh:  regen
2237         * fixinc/fixincl.x:  regen
2238         * fixinc/fixincl.sh:  regen
2239
2240 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
2241
2242         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
2243         depend on ggc.h.
2244
2245 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
2246
2247         * gcc.1: Document exit codes.
2248
2249 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2250
2251         * calls.c: Include tm_p.h later, so everything we need is defined.
2252         * expr.c: Likewise.
2253         * function.c: Likewise.
2254
2255         * except.c: Include tm_p.h.
2256
2257         * sparc.c: Likewise.
2258         (dwarf2out_cfi_label): Don't prototype.
2259         (check_return_regs, epilogue_renumber,
2260         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
2261         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
2262         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
2263         ultra_schedule_insn): Add static prototype.
2264         (data_segment_operand, text_segment_operand): Call itself with the
2265         proper number of arguments.
2266         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
2267
2268         * sparc.h: Move all declarations to sparc-protos.h.
2269         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
2270         symbolic_operand.
2271
2272         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
2273
2274         * config/svr4.h (text_section, ctors_section, dtors_section): Add
2275         Prototypes.
2276         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
2277         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
2278         ASM_OUTPUT_ASCII): Constify a char*.
2279         
2280         * sparc-protos.h: New file for sparc prototypes.
2281         
2282 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2283
2284         * function.c (record_insns, contains): Always declare and define.
2285         (record_insns): Mark with ATTRIBUTE_UNUSED.
2286
2287 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
2288
2289         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
2290         to .section when outputting a .bss section to deal with multiple
2291         .bss input sections (as happens with -fdata-sections)
2292         Also output %progbits, not @progbits so the assembler doesn't treat as
2293         a comment.
2294         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
2295
2296         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
2297         thumb parts even when building with non-thumb CPUs, by forcing
2298         thumb mode.     
2299
2300 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
2301
2302         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
2303         (movdf_const_intreg_sp64): Similarly.
2304
2305         * local-alloc.c (update_equiv_regs): Check the correct insn
2306         for pre-existing REG_EQUIV notes.
2307
2308 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
2309
2310         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
2311         block reached by a branch if we're not going to actually process
2312         this block.
2313
2314 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
2315
2316         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
2317         a local extern function declaration.
2318
2319 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
2320
2321         * i386.c (ix86_expand_prologue): Properly wrap USE around
2322         reg for CALL_INSN_FUNCTION_USAGE.
2323
2324 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
2325
2326         * config/mips/mips.md (movdf_internal1a): Allow floating-point
2327         move between GP_REGs.
2328
2329 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
2330
2331         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
2332         the mode size when finding out if an offset is legal.
2333
2334 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
2335
2336         * basic-block.h (PROP_*): Move constants from ...
2337         * flow.c: ... here.
2338         (compute_bb_for_insn): Free the array before reallocating.
2339         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
2340         (allocate_reg_life_data): Reset all reg variables collected by
2341         propagate_block.
2342         (get_block_head_tail): Don't convert from bb to block.
2343         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
2344         (find_insn_reg_weight): Take block not bb.
2345         (schedule_block): Don't set block num for moved insns.
2346         (schedule_region): Don't update_life_info or find_insn_reg_weight.
2347         (schedule_insns): Do it here instead.
2348         * combine.c (combine_instructions): Invoke compute_bb_for_insn
2349         before update_life_info.
2350         * recog.c (split_all_insns, peephole2_optimize): Update for
2351         new arg to update_life_info.
2352         * rtlanal.c (remove_note): Cope with NULL note.
2353         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
2354         if we did sched1.
2355
2356 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
2357
2358         * jump.c (jump_optimize_1): More accurately detect casesi insns.
2359
2360         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
2361         block records so that merge_blocks_nomove will clean up correctly.
2362         (split_edge): Handle casesi insns.
2363
2364         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
2365
2366 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
2367
2368         * pa.md (call, call_value): Do not emit a blockage after restoring
2369         the PIC register.
2370
2371 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
2372
2373         * c-typeck.c (c_expand_asm_operands): Fix typo.
2374
2375 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2376
2377         * arm.c (fpu_rhs_operand): Verify modes.
2378         (fpu_add_operand): Likewise.
2379         (di_operand): Likewise.
2380         (soft_df_operand): Likewise.
2381
2382 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
2383
2384         * arm.c (arm_return_in_memory): APCS rules state that the elements
2385         of a structure returned in a register must be 'integer-like'.
2386
2387 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
2388
2389         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
2390         in the source tree when the generated targets are out of date
2391         * fixinc/genfixes: Alter it to run individual fixes for make.
2392         * fixinc/README: rewrite
2393         * fixinc/inclhack.def: moved initial comments to README
2394
2395 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
2396
2397         * toplev.c (main): Do not generate an error message if an
2398         unrecognised command line switch is recognisable by another
2399         language.  If extra_warnings are enabled, then generate a
2400         warning message instead.
2401
2402 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2403
2404         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
2405         (insert_pack_attributes): Delete prototype.
2406
2407         * c-pragma.c (default_alignment): New static variable.
2408         (push_alignment): Initialize to current effective alignment.
2409         (pop_alignment): Use to set new alignment.
2410         (insert_pack_attributes): Delete function.
2411         (handle_pragma_token): Set default_alignment as well each time 
2412         a #pragma pack(<n>) is encountered.
2413
2414 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
2415
2416         * reg-stack.c (stack_result): Aggregates are not returned in
2417         stack registers.
2418
2419 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
2420
2421         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
2422
2423 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
2424
2425         * basic-block.h (set_block_num): Declare.
2426         * flow.c (update_life_info): Don't call compute_bb_for_insn
2427         or free_basic_block_vars.
2428         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
2429         (insn_orig_block): Remove.
2430         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
2431         (schedule_block): Keep BLOCK_NUM up-to-date.
2432         (schedule_insns): Use compute_bb_for_insn.
2433         * recog.c (split_all_insns): Likewise.
2434         (peephole2_optimize): Likewise.
2435
2436 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
2437
2438         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
2439         if the pic register is used.
2440
2441 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2442
2443         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
2444         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
2445         if that tests TREE_PERMANENT.
2446
2447 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
2448
2449         * cse.c (invalidate_for_call): Do not remove memory references from
2450         the table here.  It's handled elsewhere.
2451
2452         * haifa-sched.c (add_dependence): Protect references to the
2453         true dependency cache with #ifdef INSN_SCHEDULING.
2454         (remove_dependence): Similarly.
2455
2456         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
2457         to the cfg code that this is a return instruction.
2458         * mn10300.md (return_internal): Similarly.
2459
2460         * combine.c (get_last_value): If the last set of a register
2461         is after subst_low_cuid, then we can not use it to determine
2462         the register's last value.
2463
2464 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
2465
2466         * Makefile.in: Back out previous change.
2467         
2468 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
2469
2470         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
2471
2472         * haifa-sched.c (add_dependence): Only check/update the cache
2473         if it exists.
2474         (remove_dependence): Likewise.
2475         (schedule_insns): Only create the true_dependency_cache if the
2476         average number of instructions in a basic block is very large.
2477
2478 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
2479
2480         * Makefile.in (ggc-common.o): Depend on genrtl.h.
2481         (ggc-simple.o): Likewise.
2482         (ggc-page.o): Likewise.
2483
2484 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
2485
2486         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
2487         Prototype for exported functions.
2488         (pre_lcm, pre_rev_lcm): Remove prototypes.
2489         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
2490         (compute_available): Move to lcm.c, and change parameter order.
2491         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
2492         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
2493         (gcse_main): No longer call compute_preds_succs.  Rebuild the
2494         set table after reach pre pass.
2495         (pre_insert_map, pre_delete_map, edge_list): New.
2496         (alloc_pre_mem): Allocate edge vectors.
2497         (free_pre_mem): Delete edge vectors.
2498         (compute_pre_data): Call new edge based lcm routines.
2499         (process_insert_insn): New function.
2500         (insert_insn_end_bb): Use it.
2501         (pre_edge_insert): New function.
2502         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
2503         needed.
2504         (pre_insert_copies): Revamp using new edge based lcm outputs.
2505         (pre_delete): Likewise.
2506         (one_pre_gcse_pass): Insert & remove fake edges to the exit
2507         block.
2508         (compute_code_hoist_vbeinout): New new edge based routines.
2509         * lcm.c: Remove all the old LCM functions.  Replace with new ones
2510         that work with the new cfg datastructures and work with edges
2511         instead of blocks.
2512
2513 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
2514
2515         * reload.h (struct reload): Add new fields "mode" and "nregs".
2516         * reload1.c: Change all occurrences of reload_mode and reload_nregs
2517         to reference the "mode" and "nregs" field within struct reload.
2518
2519 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
2520
2521         * haifa-sched.c (true_dependency_cache): New.
2522         (add_dependence): Use the true dependency cache to avoid expensive
2523         walks down the LOG_LINKS dependency list.  Add entries to the
2524         cache as necessary.
2525         (remove_dependence): Remove entries from the true dependency cache
2526         as needed.
2527         (schedule_insns): Allocate and initialize and free the true
2528         dependency cache.
2529
2530         * haifa-sched.c (schedule_insns): Do not remove inter-block
2531         dependencies anymore.
2532
2533 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
2534
2535         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
2536         * i386/t-winnt: Likewise.
2537
2538 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
2539
2540         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
2541
2542 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
2543
2544         * Makefile.in (LANGUAGES): Omit "proto".
2545         (clean): Remove stale comment about removing unprotoize.c.
2546
2547 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2548
2549         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
2550         using arithmetic on void pointers.
2551
2552 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
2553
2554         * haifa-sched.c (compute_block_forward_dependencies): Only check
2555         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
2556
2557 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
2558
2559         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
2560         (expr_equiv_p): Reject memories with different alias sets.
2561
2562 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
2563
2564         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
2565         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
2566         (f_options): Add "bounded-pointers" and "bounds-check" entries.
2567         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
2568         (lang_init): Set default for flag_bounds_check if still "unspecified".
2569
2570 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2571
2572         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
2573
2574 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2575
2576         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
2577         instructions.
2578
2579 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2580
2581         * config/c4x/c4x.md (*db_noclobber, 
2582         *decrement_and_branch_until_zero_noclobber): New patterns and 
2583         associated splitters.
2584
2585 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2586
2587         * config/c4x/c4x.md (parallel instruction patterns): Rework
2588         constraints to keep reload happy.
2589
2590 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2591
2592         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
2593         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
2594         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
2595         Add new patterns and associated post-reload splitters.
2596
2597 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2598
2599         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
2600
2601 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2602
2603         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
2604         if appropriate.
2605         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
2606
2607 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2608
2609         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
2610         memory mode.
2611
2612 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
2613
2614         * pa.c (move_operand): Rely on memory_address_p to determine the
2615         validity of non-indexed memory addresses.
2616         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
2617         operand in DFmode and SFmode when generating PA2.0 code.
2618
2619 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
2620
2621         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
2622
2623 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
2624
2625         * mips.c (function_prologue): Fix argument types.
2626         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
2627         (casesi_internal): Write to the scratch register.
2628
2629 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
2630
2631         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
2632         to U_CHAR **.
2633         (parse_charconst): Delete unnecessary cast when calling
2634         cpp_parse_escape.
2635         (cpplib.h): Kill prototype of cpp_parse_escape.
2636
2637 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
2638
2639         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
2640         * unroll.c (unroll_loop): Cast return value of alloca.
2641         * i370/i370.c: Include function.h and toplev.h.
2642         (i370_label_scan): Remove c++ commented abort.
2643         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
2644         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
2645         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
2646         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
2647
2648 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
2649
2650         * config/t-freebsd: Do not override USER_H.
2651         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
2652
2653 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
2654                           Mumit Khan  <khan@xraylith.wisc.edu>
2655
2656         * c-parse.in (component_decl): Support anonymous struct/union.
2657         (%expect): Update.
2658         * c-parse.y: Regenerate.
2659         * c-parse.c: Likewise.
2660         * objc/objc-parse.y: Likewise.
2661         * objc/objc-parse.c: Likewise.
2662         * c-decl.c (finish_struct): Don't sort the fields.
2663         (field_decl_cmp): Delete unused function.
2664
2665 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
2666
2667         * sparc.md (movsf_const_intreg): Revert last constraint change.
2668         (movdf_const_intreg_sp32): Likewise.
2669
2670 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
2671
2672         * cse.c: Include hashtab.h instead of splay-tree.h
2673         (struct cse_reg_info): No longer use variant union.  Add new
2674         field "regno".  All references changed to avoid union.
2675         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
2676         (free_cse_reg_info): Remove.
2677         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
2678         (get_cse_reg_info): Revamp to use expandable hash tables instead
2679         of splay trees.  Initialize new fields in cse_reg_info structure.
2680         (new_basic_block): Similarly.
2681
2682 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
2683
2684         * genrecog.c (message_with_line): Prototype.
2685         (validate_pattern): Pass along the set for the dest, not a flag.
2686         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
2687         Check for PC/CC0 as sources.
2688         (nodes_identical): Check for children position match before 
2689         allowing the combination.
2690
2691         * rtl.c (read_rtx): Track line number across \\\n.
2692
2693 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
2694
2695         * mips.h (SPECIAL_MODE_PREDICATES): New.
2696         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
2697         (movdi+1, movsi+1): Add output reload constraint.
2698         (casesi_internal): Likewise.  Fix commentary.
2699         (return_internal): Use pmode_register_operand.
2700
2701 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
2702
2703         * 1750a.md (movstrqi): Add missing output reload constraint.
2704         (call_value): Likewise.
2705         * a29k.md (cpxxx patterns): Add missing match_operator mode.
2706         (jmpfdec): Add missing inout reload constraint.
2707         * elxsi.md (addsi patterns): Add missing output reload constraint.
2708         (move from sp): Use @ alternates.
2709         (call_value): No constraint on output.
2710         * fr30.md (movsi_pop): Add missing output reload constraint.
2711         (movsf_constant_store): Likewise.
2712         (splits): Remove constraints.
2713         (subsi3): Add missing mode.
2714         * i370.md (cmpstrsi+1): Add missing output reload constraint.
2715         (call_value): Likewise.
2716         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
2717         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
2718         * m32r.md (movsicc_internal): Add output reload constraint.
2719         (movstrsi_internal): Add inout reload constraints.
2720         * m88k.h (reg_names): Don't declare.
2721         (SPECIAL_MODE_PREDICATES): New.
2722         * m88k.md (*): Use register_operand not reg_or_0_operand
2723         on destinations.
2724         * mn10200.h (PREDICATE_CODES): New.
2725         * ns32k.md (ffs pattern): Add output reload constraint.
2726         * pdp11.md (sob pattern): Add inout reload constraint.
2727         * sh.md (splits): Remove constraints.
2728         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
2729         * v850.md (pattern_is_ok_for_epilogue): Likewise.
2730         * vax.md (jgequ pattern): Add inout reload constraint.
2731
2732 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
2733
2734         * configure.in (djgpp): Revert previous patch.
2735         * configure: Rebuit.
2736         * config/i386/djgpp.h: Revert previous patch.
2737
2738 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
2739
2740         * fixinc/inclhack.def: Restore patch lost during last merge of
2741         "no_bogosity" branch.
2742         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
2743
2744 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2745
2746         * fixincludes: Add a HPUX 11 fix for inttypes.h.
2747         * fixinc/inclhack.def: Same.
2748         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
2749
2750 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
2751
2752         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
2753         as the base of a PLUS.
2754
2755 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2756
2757         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
2758         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
2759         
2760 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
2761
2762         * pa.md (post_stw+1): Use pmode_register_operand.
2763         (dcacheflush, icacheflush): Likewise.
2764
2765         * i386.md (movstricthi_1): Allow r/r.
2766
2767 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
2768
2769         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
2770         to (not (and (arg0) (arg1))). Similary for and.
2771
2772         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
2773         falltrought to assocate code.
2774         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
2775         bits in common.
2776
2777         * combine.c (simplify_logical): Convert XOR to IOR if operands have
2778         no bits in common; remove XOR to ROTATE conversion.
2779
2780 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2781
2782         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
2783
2784 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2785
2786         * config/c4x/c4x.c (dst_operand): New.
2787         (PREDICATE_CODES): Update.
2788         * config/c4x/c4x.h (dst_operand): Declare it.
2789         * config/c4x/c4x.md:  Define mode for each unspec usage.
2790         (move patterns):  Use dst_operand predicate instead of src_operand.
2791         (movqi_update, movqf_update): Delete.
2792
2793 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
2794
2795         * recog.c (pmode_register_operand): New.
2796         * recog.h: Declare it.
2797         * genrecog.c (pred_codes): Likewise.
2798         (special_mode_pred_table): Likewise.
2799         (validate_pattern): Don't warn no mode for address_operand.
2800
2801         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
2802         if the operand is not insn-like.
2803
2804 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
2805                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
2806
2807         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
2808
2809 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
2810
2811         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
2812         instead of general_operand in a SET_DEST.  Use const_double_operand
2813         instead of an explicit test against CONST_DOUBLE.
2814         (movsf_const_lo): Add missing register mode.
2815         (goto_handler_and_restore): Add auxiliary test for Pmode.
2816         (flush): Adjust to use address_operand.
2817         (return_sf_no_fpu): Add missing output constraint.
2818
2819 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
2820
2821         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
2822         for call return value.
2823         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
2824
2825 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
2826
2827         * toplev.c (main): Only warn about options for other languages.
2828         * collect2.c (main): Pass -w to sub-gcc.
2829
2830 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
2831
2832         * flow.c (propagate_block): Add call-clobbered registers to
2833         significant too.
2834
2835         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
2836         zapping mem_set_list.
2837         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
2838         (mark_set_1, mark_used_regs): Likewise.
2839
2840 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
2841
2842         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
2843
2844 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2845
2846         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
2847         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
2848         options. Also add a new item "C-only Warning Options" to the
2849         option summary.
2850
2851 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
2852
2853         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
2854         from multiple calls.
2855
2856 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
2857
2858         * i386.md (call value patterns): Move to the end of the file.
2859         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
2860
2861 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
2862
2863         * configure.in (djgpp configuration): Define extra_objects..
2864         * configure: Rebuilt.
2865         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
2866         (DTORS_SECTION_ASM_OP): Define.
2867         (INIT_SECTION_ASM_OP): Define.
2868         (FINI_SECTION_ASM_OP): Define.
2869         (DATA_SECTION_ASM_OP): Define.
2870         (TEXT_SECTION_ASM_OP): Define.
2871         (EH_FRAME_SECTION_ASM_OP): Define.
2872         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
2873         (STARTFILE_SPEC): Add crtbegin.o.
2874         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
2875         to here from LINK_COMMAND_SPEC.
2876         (DO_GLOBAL_CTORS_BODY): Define.
2877         (CRTSTUFF_USE_FINI_SECTION): Define
2878         (HAS_INIT_SECTION): Delete.
2879
2880 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
2881
2882         * Makefile.in (all.cross): Depend on xcpp$(exeext).
2883
2884 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
2885
2886         * pa.h (PREDICATE_CODES): New.
2887
2888         * genrecog.c (validate_pattern): Condense the destination
2889         non-lvalue message.
2890
2891 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
2892
2893         * alpha.md (call-1): Supply missing mode for operator.
2894         (*): Add missing output reload constraints.  Remove constraints
2895         from define_splits.
2896
2897         * i386.h (SPECIAL_MODE_PREDICATES): New.
2898         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
2899         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
2900         (addsi_lea_3): Add missing mode for op 3.
2901         (prologue_set_got, prologue_get_pc): Add missing modes.
2902         (*) Add missing output reload constraints.
2903
2904 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
2905
2906         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
2907         check for member bit-size overflow and use var_size if it occurs.
2908         (layout_record): Use bitsize_int() to define the type size in bits.
2909         Likewise for computation and assignment to DECL_FIELD_BITPOS.
2910         (layout_decl): Likewise when assigning to DECL_SIZE.
2911
2912 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
2913
2914         * genrecog.c (validate_pattern): Typo last change.  Verify
2915         that output operands have output reloads.
2916
2917 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
2918
2919         * genrecog.c (special_mode_pred_table): New.
2920         (NUM_SPECIAL_MODE_PREDS): New.
2921         (find_operand): New.
2922         (validate_pattern): New argument `insn'.  Warn for assignment to
2923         any predicate accepting non-lvalues.  Conditionaly warn for
2924         match_operand without a mode.  Try much harder to match source
2925         and destination modes on a set.
2926         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
2927
2928 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
2929
2930         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
2931
2932 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
2933
2934         * combine.c (simplify_logical): Recognize xor pattern that encodes
2935         rotation.
2936
2937 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2938
2939         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
2940         alignment.
2941
2942 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
2943
2944         * ggc-page.c (MAP_FAILED): Provide default.
2945
2946 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
2947
2948         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
2949         * sparc.h (PREDICATE_CODES): Update.
2950
2951 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
2952
2953         * alpha.c (some_ni_operand): New.
2954         * alpha-protos.h: Declare it.
2955         * alpha.h (PREDICATE_CODES): Update.
2956         * alpha.md (sXaddq reload insns): Use some_ni_operand 
2957         for SET_DEST instead of some_operand.
2958
2959 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
2960                           Jim Wilson  <wilson@cygnus.com>
2961
2962         * genrecog.c (maybe_both_true_2): Don't compare modes of
2963         two DT_pred tests.
2964         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
2965         after find_afterward.
2966         (debug_decision_1): Dump next and afterward codes.
2967
2968 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
2969
2970         * rtl.c (dump_and_abort): Remove.
2971         (fatal_with_file_and_line): New.
2972         (fatal_expected_char): New.
2973         (read_rtx_lineno, read_rtx_filename): New.
2974         (read_skip_spaces): Track line number.
2975         (read_name): Use fatal_with_file_and_line.
2976         (read_rtx): Use fatal_expected_char.  Track line number.
2977         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
2978
2979         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
2980         if it isn't a CODE_LABEL.
2981
2982         * genattr.c (main): Set read_rtx_filename.
2983         * genattrtab.c (main): Likewise.
2984         * gencodes.c (main): Likewise.
2985         * genconfig.c (main): Likewise.
2986         * genemit.c (main): Likewise.
2987         * genextract.c (main): Likewise.
2988         * genflags.c (main): Likewise.
2989         * genopinit.c (main): Likewise.
2990         * genoutput.c (main): Likewise.
2991         * genpeep.c (main): Likewise.
2992
2993         * genrecog.c (decision_test.u.insn): Add `lineno'.
2994         (pattern_lineno, error_count): New variables.
2995         (message_with_line): New.
2996         (add_to_sequence): Break out checking code to ...
2997         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
2998         (merge_insn): Use message_with_line.
2999         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
3000         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
3001
3002 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3003
3004         * expr.c (store_constructor): Clear union if constructor is empty.
3005
3006 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
3007
3008         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
3009         Add !endian checks.  Change %{...} to %(...).
3010
3011 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
3012
3013         * i386.md (*addsi3_cc): Renamed from addcsi3.
3014         (*addsi3_carry): Renamed from addxsi3.
3015         (*subsi3_cc): Renamed from subcsi3.
3016         (*subsi3_carry): Renamed from subxsi3.
3017         (*xorqi_cc_1): Renamed from xorcqi_1.
3018         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
3019         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
3020
3021 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
3022
3023         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
3024         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
3025
3026 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
3027
3028         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
3029         climb up the chain of insns.
3030
3031 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
3032
3033         * genrecog.c (write_subroutine): Careful for null trees.
3034         (process_tree): Don't elide empty functions.
3035
3036 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
3037
3038         * Makefile.in (genrtl.o): Depend on ggc.h.
3039         * configure.in (valloc): Probe for it.
3040         (with-gc): Use ggc-page if valloc present.
3041         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
3042         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
3043         (ggc_alloc_string): Moved from ggc-page.c.
3044         * ggc-none.c (ggc_alloc_obj): New.
3045         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
3046         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
3047         (struct globals): Likewise for dev_zero_fd.
3048         (init_ggc): Likewise for it's initialization.
3049         (ggc_allocated_p): Move careful dereference from ...
3050         (ggc_lookup_page_table): ... here.  Delete.
3051         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
3052         (alloc_anon): Use valloc if no mmap.
3053         (release_pages): Use free if using valloc.
3054         (ggc_alloc_obj): Renamed from alloc_obj.
3055         (ggc_set_mark): Renamed from mark_obj.
3056         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
3057         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
3058         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
3059         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. 
3060         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
3061         (ggc_collect): Use fp printing instead of our own rounding.
3062         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
3063         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
3064         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
3065         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
3066         (struct ggc_string, struct ggc_any): Delete.
3067         (offsetof): Provide default definition.
3068         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
3069         (PTR_KEY): New.
3070         (struct ggc_mem): New, from corpse of ggc_any.
3071         (struct ggc_status): Delete.
3072         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
3073         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
3074         (n_strings_collected, n_anys_collected): Delete.
3075         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
3076         (ggc_alloc_string, ggc_alloc): Delete.
3077         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
3078         (ggc_free_string, ggc_free_any): Delete.
3079         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
3080         (ggc_compare_addresses, ggc_mark_string): Delete.
3081         (ggc_mark_string_if_gcable, ggc_mark): Delete.
3082         (search_data): Delete.
3083         (struct globals): New.
3084         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.   
3085         (tree_insert, tree_lookup): New.
3086         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
3087         (clear_marks, sweep_objs): New.
3088         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
3089         (init_ggc): Set allocated_last_gc.
3090         (ggc_push_context): Gut.  Use G.context.
3091         (ggc_pop_context): Likewise.
3092         (ggc_pop_context_1): New.
3093         (debug_ggc_tree): New.
3094         (debug_ggc_balance, tally_leaves): New.
3095         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
3096         (ggc_mark_string_if_gcable): Remove decl.
3097         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
3098         (ggc_mark_rtvec_children): New.
3099         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
3100         (ggc_mark_if_gcable): New decl.
3101         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
3102         (ggc_alloc_tree, ggc_alloc): Likewise.
3103         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
3104         (ggc_alloc_obj): New decl.
3105         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
3106         (ggc_alloc_tree, ggc_alloc): Likewise.
3107         (ggc_set_mark): New decl.
3108         * rtl.h (struct rtx_def): Remove gc_mark.
3109         (struct rtvec_def): Likewise.
3110         * tree.h (struct tree_common): Likewise.
3111
3112 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
3113
3114         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
3115         float_format and thread_file definitions.
3116         * configure: Rebuilt.
3117
3118 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
3119
3120         * extend.texi (Function Names): Document types of function names.
3121
3122 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3123
3124         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
3125         an earlyclobbered output conflict with RELOAD_INPUT reloads.
3126
3127 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3128
3129         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
3130
3131 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3132
3133         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
3134
3135 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
3136
3137         * collect2.c (main): Do prelimnary link on AIX if rflag.
3138
3139 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3140
3141         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
3142         __CTOR_LIST__ in opposite order, which is the correct order for sorted
3143         constructors.
3144         (__do_global_dtors): similarly for __DTOR_LIST__.
3145
3146 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3147                                 Diego Novillo <dnovillo@cygnus.com>
3148
3149         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
3150         FPUL_REGS.
3151
3152 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
3153
3154         * fixincl/*: Merged "no_bogosity" branch
3155         * fixincl/fixlib.h: protect against doubly defining t_bool
3156         * fixincl/server.h: protect against doubly defining t_bool
3157
3158 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
3159
3160         * genoutput.c: Include toplev.h.
3161
3162 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
3163
3164         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3165         Undef.
3166         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
3167         * configure: Regenerate.
3168
3169 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
3170
3171         * gcse.c (delete_null_pointer_checks): Returns void.
3172
3173 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3174
3175         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
3176         * emit-rtl.c (copy_insn_1): Likewise.
3177
3178 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
3179
3180         * config/mips/mips.c (mips_build_va_list): Correct
3181         TREE_CHAIN setting when hard-float.
3182         (mips_va_start): Use corrected setting.
3183         (mips_va_arg): Likewise.  Also pass a tree to build of
3184         POSTINCREMENT_EXPR rather than a naked 'int'.
3185
3186 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
3187
3188         * ggc.h (ggc_push_context): Fix comment.
3189         (ggc_pop_context): Likewise.
3190         (mark_string_if_gcable): Likewise.
3191         * ggc-common.c (ggc_mark_rtx_children): Use
3192         ggc_mark_string_if_gcable.
3193         * ggc-page.c (ggc_lookup_page_table): New function.
3194         (ggc_allocated_p): Likewise.
3195         (mark_obj): Fix formatting.
3196         (ggc_mark_string_if_gcable): New function.
3197         * ggc-simple.c (ggc_allocated_strings): New variable.
3198         (ggc_strings_used): Likewise.
3199         (ggc_compare_addresses): New function.
3200         (ggc_pop_context): Pop the `any' memory too.
3201         (ggc_mark_string_if_gcable): New function.
3202         (ggc_collect): Initialize and tear down ggc_allocated_strings.
3203         
3204 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
3205
3206         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
3207         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
3208         * rs6000.c (expand_block_move): Match movstrsi_?reg register
3209         changes.
3210
3211 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
3212
3213         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
3214         (sched_reg_live_length, sched_reg_basic_block): Delete.
3215         (current_block_num, bb_live_regs, old_live_regs): Delete.
3216         (dead_notes, struct sometimes): Delete.
3217         (sched_note_set, birthing_insn_p): Delete.
3218         (adjust_priority): Gut useless reg lifetime code.
3219         (create_reg_dead_note, attach_deaths): Delete.
3220         (attach_deaths_insn, new_sometimes_live): Delete.
3221         (finish_sometimes_live): Delete.
3222         (find_pre_sched_live, find_post_sched_live): Delete.
3223         (update_reg_usage): Delete.
3224         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
3225         (schedule_insns): Delete reg lifetime code.
3226         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
3227         (unlink_other_notes): Adjust REG_NOTE commentary.
3228         (reemit_notes): Use REG_SAVE_NOTE.
3229         (schedule_block): Likewise.
3230         (schedule_region): Allocate bitmap of blocks in region.  Use
3231         count_or_remove_death_notes.  Use update_life_info.
3232
3233         * rtl.h (REG_SAVE_NOTE): New.
3234         * rtl.c (reg_note_name): Update.
3235         
3236 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
3237
3238         * combine.c (refresh_blocks, need_refresh): New.
3239         (combine_instructions): Allocate refresh_blocks.  Invoke
3240         update_life_info if needed.
3241         (distribute_notes): Mark refresh_blocks instead of installing
3242         USE insns.
3243         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
3244         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
3245
3246         * Makefile.in (recog.o): Depend on basic-block.h.
3247
3248 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
3249
3250         * genrecog.c (add_to_sequence): Thinko last change: delete
3251         shadowing allow_const_int variable.
3252
3253 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3254
3255         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
3256         __GNUC__ and __GNUC_MINOR__.
3257
3258         * gansidecl.h: Likewise.
3259
3260         * rtl.c: Likewise.
3261         
3262         * rtl.h: Likewise.
3263
3264         * toplev.h: Likewise.
3265
3266         * tree.c: Likewise.
3267
3268         * tree.h: Likewise.
3269
3270         * varray.c: Likewise.
3271
3272         * varray.h: Likewise.
3273
3274 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3275
3276         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
3277         use one before a jump table.
3278
3279         * rtl.def (ADDRESS): Change documentation to match reality.
3280         * md.texi: Don't document it.
3281         * gmicro.md (load address pattern): Use 'p' constraint, delete use
3282         of ADDRESS rtx.
3283
3284         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
3285
3286 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
3287
3288         * genrecog.c (add_to_sequence): Move allow_const_int test outside
3289         known predicate block; default allow_const_int true.
3290         (debug_decision_list): New.
3291
3292 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
3293
3294         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
3295
3296 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
3297
3298         * gcse.c (gcse_main): Avoid global optimizations if we have a
3299         large number of basic blocks and the ratio of edges to blocks
3300         is high.
3301         (delete_null_pointer_checks): Likewise.
3302
3303 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
3304
3305         * c-common.c (check_format_info): Warn if format string isn't a
3306         string literal.
3307
3308 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
3309
3310         * configure.in (arm*-*-*): Don't let autoconf remove brackets
3311         * configure: regenerate
3312
3313 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
3314
3315         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
3316         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
3317         (peepholes): Re-enable.
3318
3319 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
3320
3321         * Makefile.in (flow.o): Depend on TREE_H.
3322         * basic-block.h (REG_SET_EQUAL_P): New.
3323         (XOR_REG_SET): New.
3324         (n_edges): Declare.
3325         (free_regset_vector): Remove declaration.
3326         (flow_delete_insn_chain): Declare.
3327         (enum update_life_extent): New.
3328         (update_life_info, count_or_remove_death_notes): Declare.
3329         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
3330         Verify register live at bb->global_live_at_start before adding USE.
3331         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
3332         (CLEAN_ALLOCA): New.
3333         (n_edges): New. 
3334         (PROP_*): New flags.
3335         (find_basic_blocks_1): Use alloc_EXPR_LIST.
3336         (clear_edges): Zero n_edges.
3337         (make_edge): Increment n_edges.
3338         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
3339         (flow_delete_insn_chain): Export.
3340         (delete_block): Decrement n_edges.
3341         (merge_blocks_nomove): Likewise.
3342         (life_analysis): Give life_analysis_1 PROP flags.
3343         (verify_wide_reg_1, verify_wide_reg): New.
3344         (verify_local_live_at_start): New.
3345         (update_life_info): Rewrite to call into propogate_block.
3346         (mark_reg): New.
3347         (mark_regs_live_at_end): After reload, if epilogue as rtl, 
3348         always mark stack pointer.  Conditionally mark PIC register.
3349         After reload, mark call-saved registers, return regsiters.
3350         (life_analysis_1): Accept PROP flags not remove_dead_code.
3351         Call mark_regs_live_at_end before zeroing regs_ever_live.
3352         Use calculate_global_regs_live.  Copy global_live_at_end before
3353         calling final propagate_block.  Zero reg_next_use on exit.
3354         (calculate_global_regs_live): New.
3355         (allocate_bb_life_data): Don't allocate bb->local_set.
3356         (init_regset_vector, free_regset_vector): Remove.
3357         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
3358         Test flags before every operation.  Warn if prologue/epilogue insn
3359         would have been deleted.
3360         (mark_set_regs, mark_set_1): Accept and use FLAGS. 
3361         Use alloc_EXPR_LIST.
3362         (mark_used_regs): Accept and use FLAGS, not FINAL.
3363         Remove special handling for RETURN.
3364         (try_pre_increment): Use alloc_EXPR_LIST.
3365         (dump_flow_info): Dump n_edges.
3366         (unlink_insn_chain, split_hard_reg_notes): Remove.
3367         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
3368         (find_insn_with_note, new_insn_dead_notes): Remove.
3369         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
3370         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
3371         (replace_insns): Remove.
3372         (count_or_remove_death_notes): New.
3373         (verify_flow_info): Abort on error after all checks.
3374         (remove_edge): Decrement n_edges.
3375         (remove_fake_edges): Tweek format.
3376         * haifa-sched.c (schedule_insns): Use split_all_insns.
3377         * output.h (update_life_info): Remove declaration.
3378         * recog.c (split_all_insns): From the corpse of split_block_insns,
3379         do the whole function block by block.  Use update_life_info.
3380         (recog_last_allowed_insn): New.
3381         (recog_next_insn): Mind it.
3382         (peephole2_optimize): Set it.  Walk backwards through blocks.
3383         Use update_life_info.
3384         * rtl.h (update_flow_info, replace_insns): Remove declarations.
3385         (split_all_insns): Declare.
3386         * toplev.c (rest_of_compilation): Thread prologue before flow2.
3387         Use split_all_insns.
3388
3389         * i386.md (or -1 peep2s): Disable.
3390
3391 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
3392
3393         * config/mips/mips.md (movstrsi+[123]) : Combine these into
3394         a single pattern.  Scrap the 'd' versions as unnecessary. 
3395
3396         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
3397         tablejump_mips162,tablejump_internal4): The operands to a
3398         label_ref must be VOIDmode.
3399
3400 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3401
3402         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
3403
3404 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
3405
3406         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
3407
3408 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
3409
3410         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
3411         cache every function if ggc_p.
3412
3413 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3414
3415         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
3416         instead of copy_rtx.  Accept sequences that contain asm statements.
3417         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
3418         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
3419         orig_asm_operands_vector, copy_asm_operands_vector,
3420         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
3421         variables.
3422         * rtl.h (copy_insn, copy_insn_1): Declare.
3423
3424 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3425
3426         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
3427
3428         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
3429         arguments to `current_file_function_operand'.
3430
3431         * genrecog.c: Include hard-reg-set.h and resource.h in the
3432         generated output file.
3433
3434         * real.c: Include tm_p.h.
3435
3436 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3437
3438         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
3439         output operand.
3440
3441 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
3442
3443         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
3444         before the fctiwz insn.
3445
3446 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3447                           Mark Mitchell  <mark@codesourcery.com>
3448
3449         * tree.c (make_lang_type_fn): New funtion pointer.
3450         (make_lang_type): Call it.
3451         * tree.h (make_lang_type): Declare.
3452         (make_lang_type_fn): Likewise.
3453         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
3454
3455 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
3456
3457         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
3458         make sure that HIGH instructions are copied into BASE_REGS.
3459
3460 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
3461
3462         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
3463
3464 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
3465
3466         * c-decl.c (finish_struct): Use simpler method of
3467         removing elements of a singly-linked list.
3468
3469 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
3470
3471         * alpha.md (peephole2's): Comment out peephole2's that generate
3472         buggy code.
3473
3474 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
3475
3476         * genrecog.c (add_to_sequence): Disable mode check for
3477         wildcard matches.
3478
3479 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3480
3481         * ggc-simple.c (init_ggc): Set empty_string.
3482
3483 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
3484
3485         * configure.in: Detect mmap.  Add --with-gc=foo to select
3486         garbage collector; default to page if mmap available.
3487         * Makefile.in (GGC): Substitute.
3488
3489 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
3490
3491         * c-decl.c (ggc_p): Enable.
3492
3493 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3494
3495         * flow.c (verify_flow_info): Make it extern & unconditionally define.
3496
3497 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
3498
3499         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
3500         string for little-endian-data.
3501
3502 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
3503
3504         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
3505         case somebody tries to compile --enable-checking code with gcc
3506         1.34 or such.
3507
3508 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
3509
3510         * genrecog.c (add_to_sequence): Verify operand to label_ref is
3511         VOIDmode.
3512
3513 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
3514
3515         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
3516         * jump.c (jump_optimize_1): Document why.
3517
3518 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3519
3520         * collect2.c (scan_prog_file, scan_libraries): Prototype function
3521         pointers and casts for `int_handler' and `quit_handler'.
3522
3523         * flow.c (verify_flow_info, split_hard_reg_notes,
3524         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
3525         remove_edge, remove_fake_successors): Add static prototypes.
3526         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
3527         (mark_set_1): Initialize variable `regno'.
3528         (unlink_insn_chain): Likewise for variable `curr'.
3529         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
3530
3531         * loop.c (strength_reduce): Initialize variable
3532         `unrolled_insn_copies'.
3533         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
3534         prototypes.  Change these functions to take const PTR parameters
3535         to avoid prototype conflict when used as the comparson argument
3536         for qsort.
3537         (check_dbra_loop): Initialize variable `comparison_val'.
3538
3539         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
3540         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
3541         (find_valid_class): Initialize variable `best_class'.
3542         (find_reloads): Call memcpy, not bcopy.
3543
3544         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
3545         (hard_reg_use_compare): Don't needlessly cast away const.
3546         (reload_reg_class_lower): Likewise.
3547         (choose_reload_regs): Initialize variable `regno'.
3548
3549 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
3550
3551         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
3552
3553 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
3554
3555         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
3556         ({,d}discard): Add forward declarations.  Declare parameter as
3557         unused.
3558         (main_without_main): Explicitly declare return type to be int.
3559         (memcpy): Properly declare.
3560
3561         * libgcc2.c (toplevel): If inhibit_libc is defined and not
3562         building the trampoline support, declare malloc, free, and
3563         atexit.
3564         (__clear_cache): Mark arguments as potentially unused.
3565         
3566         * frame.c (toplevel): If inhibit_libc is defined, declare
3567         malloc and free.
3568
3569 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
3570
3571         * flow.c (make_edge): Accept an optional 2D bitmap in which
3572         to cache edge existence.  Update all callers.
3573         (make_label_edge, make_eh_edge): Pass through the edge cache.
3574         (make_edges): Provide the cache.
3575
3576 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3577
3578         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
3579         a char*.
3580         (local_mbtowc): Change the type of variable `i' from int to size_t.
3581
3582         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
3583         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
3584
3585 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
3586
3587         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
3588         after other includes that define the appropriate types.  Include
3589         tm_p.h for getting user prototypes.
3590         * ggc-callbacks.c (toplevel): Ditto.
3591         * ggc-none.c (toplevel): Ditto.
3592         * gcc-page.c (toplevel): Ditto.
3593         * ggc-simple.c (toplevel): Ditto.
3594
3595 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
3596                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
3597
3598         * config/mips/mips.c (mips_move_2words): Split doubles if
3599         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
3600
3601 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
3602
3603         * genrecog.c (struct decision_test): New.
3604         (struct decision): Remove test-related members, sort the rest by size.
3605         (IS_SPLIT): Simplify.
3606         (new_decision, new_decision_test): New.
3607         (add_to_sequence): Use them.  No special handling for args of
3608         non-MATCH codes.
3609         (maybe_both_true): Renamed from not_both_true; return sense changed.
3610         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
3611         of maybe_both_true and adjusted for decision_test.
3612         (position_merit): Remove.
3613         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
3614         (merge_accept_insn): New, broken out of merge_trees.
3615         (merge_trees): Use them.  No special case for c_test; no node
3616         splitting; use test type instead of position_merit.
3617         (factor_tests): New.
3618         (simplify_tests): New.
3619         (break_out_subroutines): Don't write code now.
3620         (find_afterward): New.
3621         (write_afterward, write_switch, write_cond): New.
3622         (write_action, is_unconditional): New.
3623         (write_node): New.  Use them.
3624         (write_tree_1): Rewrite.  Use the new functions above.
3625         (write_tree): Remove afterward processing.
3626         (write_subroutine): Simplify function variant emission.
3627         (write_subroutines): New.
3628         (same_codes, clear_codes): Remove.
3629         (same_modes, clear_modes): Remove.
3630         (write_header): New, broken out of main.
3631         (make_insn_sequence): Use new_decision and new_decision_test.
3632         (process_tree): New, broken out of main.
3633         (main): Adjust for merge_trees interface change. 
3634         Don't #define operands in the output file.
3635         (record_insn_name): New, broken out of make_insn_sequence.
3636         (debug_decision_2, debug_decision_1, debug_decision_0): New.
3637         (debug_decision): New.
3638
3639 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
3640
3641         * resource.c (find_free_register): Mark class_str argument const.
3642         * resource.h: Update prototype to match.
3643
3644         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
3645         * i386.md: Give all anonymous insns names.
3646
3647 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
3648
3649         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
3650         blocks.
3651
3652 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
3653
3654         * toplev.c (dbr_sched_time): Unconditional.
3655         (peephole2_time): New.
3656         (compile_file): Add pass numbers to all of the dump file suffixes.
3657         Dump peephole2_time.  Don't dump times for non-applicable passes.
3658         (rest_of_compilation): Add pass numbers to dump file suffixes.
3659         Conditionalize calls to the scheduler.
3660         * invoke.texi: Update.
3661
3662 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
3663
3664         * flow.c (make_edges): Fix insn iteration.
3665         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
3666         (find_basic_blocks_1): Fix spelling mistake.
3667
3668 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
3669
3670         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
3671         always have side-effects.  Use memset not bzero.
3672         (make_node): Likewise.
3673
3674 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
3675
3676         * stmt.c (expand_anon_union_decl): When any of the elements of the
3677         union is addressable, so is the entire union.
3678
3679 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
3680
3681         * sbitmap.c (sbitmap_ones): Don't set too many bits.
3682
3683         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
3684         * bitmap.c (bitmap_operation): Return true iff TO changed.
3685         (bitmap_equal_p): New.
3686         (bitmap_bit_p): Tidy arithmetic.
3687         (debug_bitmap_file): Likewise.
3688
3689 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
3690
3691         * toplev.c (rest_of_compilation): Turn on cse_not_expected
3692         before cse2 instead of after.
3693
3694 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
3695
3696         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
3697         register offsets. 
3698
3699 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3700
3701         * cppinit.c (is_idchar initializer): Loosen tests to accept
3702         gcc 2.>6 and >2.
3703
3704 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
3705
3706         * mips.md: Define conditional move patterns for floating point
3707         operands and DI mode conditions.
3708
3709 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
3710
3711         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
3712         always have side-effects.
3713
3714 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
3715
3716         * mn10200.c (asm_file_start): Fix typo.
3717
3718         * cppinit.c (is_idchar initializer): Tighten tests for when
3719         to put the table into initialized memory.
3720
3721         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
3722         not an array of rtunion.
3723         * gcc-page.c (ggc_alloc_rtvec): Similarly.
3724         * gcc-simple (ggc_free_rtvec): Similarly.
3725
3726         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
3727         of rtunions.
3728
3729         * mbchar.h: Add missing #endif.
3730
3731         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
3732         (FPBIT, DPBIT): Define.
3733
3734 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3735
3736         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
3737
3738         * profile.c (instrument_arcs, output_gcov_string,
3739         tablejump_entry_p): Add static prototypes.
3740         (output_gcov_string): Constify a char*.
3741         
3742         * regmove.c (replacement_quality, fixup_match_2): Add static
3743         prototypes.
3744
3745         * resource.h (reg_dead_p): Add extern prototype.
3746
3747         * rtl.c (trim_filename): Add static prototype.
3748
3749         * scan-decls.c (skip_to_closing_brace): Likewise.
3750
3751         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
3752         (expand_end_case): Initialize variable `range'.
3753         (emit_case_nodes): Remove unused prototype `rtx_fn'.
3754
3755         * varasm.c (asm_emit_uninitialised): Add static prototype.
3756         (asm_emit_uninitialised, assemble_variable): Mark parameter with
3757         ATTRIBUTE_UNUSED.
3758
3759 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3760
3761         * cpplib.c (if_directive_nameo): Add static prototype.
3762
3763         * cse.c (cse_insn): Remove unused variable `p'.
3764
3765         * except.c (create_rethrow_ref, push_entry,
3766         receive_exception_label, new_eh_region_entry, find_func_region,
3767         clear_function_eh_region, process_nestinfo): Add static prototypes.
3768         (get_reg_for_handler): Hide definition.
3769         (process_nestinfo): Initialize variable `extra_handlers'.
3770
3771         * expr.h (expand_builtin_longjmp): Add extern prototype.
3772
3773         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
3774
3775         * function.c (prepare_function_start): Likewise.
3776         (pop_function_context_from): Mark parameter `context' with
3777         ATTRIBUTE_UNUSED.
3778         (push_temp_slots_for_block, flush_addressof): Hide definition.
3779         
3780         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
3781         solve_program_flow_graph, calculate_branch_probs,
3782         function_summary, main, fancy_abort): Add prototypes.
3783
3784         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
3785         (add_hash): Constify a char*.
3786
3787         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
3788         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
3789         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
3790
3791         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
3792
3793         * lists.c (free_list, zap_lists): Likewise.
3794
3795 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3796
3797         * alias.c (nonlocal_reference_p): Add static prototype.
3798
3799         * bitmap.c (bitmap_element_allocate): Prototype args in function
3800         pointer cast.
3801
3802         * builtins.c (stabilize_va_list): Add static prototype.
3803         (expand_builtin_va_arg): Constify a char*.
3804         
3805         * c-lex.c (getch, put_back, extend_token_buffer_to,
3806         read_line_number, token_getch, token_put_back): Add static
3807         prototypes.
3808
3809         * c-parse.gperf (hash, is_reserved_word): Likewise.
3810
3811         * cccp.c (is_dir_separator): Likewise.
3812
3813 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3814
3815         * graph.h: New file to prototype functions exported by graph.c.
3816
3817         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
3818
3819         * graph.c: Include graph.h.
3820
3821         * toplev.c: Likewise.  Remove redundant prototypes.
3822
3823 Sat Oct  2 11:28:33 1999   Krister Walfridsson <cato@df.lth.se>
3824
3825         * invoke.texi: Removed duplicated description for -Q.
3826
3827 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
3828
3829         * extend.texi: Grammar fix in __extension__ text.
3830
3831 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
3832
3833         * md.texi (define_peephole2): New section.
3834
3835 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
3836
3837         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
3838         (mov $-1 to or peepholer): Enable for pentium when optimizing for
3839         speed.
3840
3841 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
3842
3843         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
3844
3845 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
3846
3847         * i386.md (ffs expander): Emit Pentium friendly code for
3848         TARGET_PENTIUM.
3849
3850 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
3851
3852         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES 
3853         for non-trees.
3854         (build1): Likewise.
3855         
3856 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3857
3858         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
3859
3860 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
3861
3862         * config/m68k/m68k.c (use_return_insn): Return false if the pic
3863         register is in use.
3864
3865 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3866
3867         * md.texi (No Constraints): Delete section.
3868         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
3869         * final.c (final_scan_insn): We always have register constraints.
3870         * genattrtab.c: Don't include "insn-config.h".
3871         (write_attr_case): We always have register constraints.
3872         * genconfig.c (register_constraint_flag): Delete.
3873         (walk_insn_part): Don't check whether we have register constraints.
3874         (main): Don't write out "#define REGISTER_CONSTRAINTS".
3875         * genoutput.c (have_constraints): Delete.
3876         (main): Don't set it.
3877         (output_operand_data): We always have constraints.
3878         (scan_operands): Likewise.
3879         (compare_operands): Likewise.
3880         * local-alloc.c (block_alloc): We always have constraints.
3881         (requires_inout): Always compile this function.
3882         * recog.c (extract_insn): We always have constraints.
3883         (constrain_operands, reg_fits_class_p): Always compile these
3884         functions.
3885         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
3886         fields.
3887         (struct insn_operand_data): Likewise.
3888         * regclass.c (regclass): We always have constraints.
3889         (record_reg_classes, copy_cost, record_address_regs,
3890         auto_inc_dec_reg_p): Always compile these functions.
3891         * regmove.c (regmove_optimize): We always have constraints.
3892         * reload.c (find_reloads): Likewise.
3893         * reload1.c (reload): Likewise.
3894         (reload_cse_simplify_operands): Likewise.
3895         * i860.c (output_delay_insn): Likewise.
3896
3897 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
3898
3899         * iris6.h (BUILD_VA_LIST_TYPE): Define.
3900
3901 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3902
3903         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
3904         for the va_list record.
3905
3906 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
3907
3908         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
3909         prologues.
3910
3911 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
3912
3913         * alias.c: Include insn-flags.h.
3914         * Makefile.in (alias.o): Update.
3915
3916 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
3917
3918         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
3919         to LTU and GEU.  Handle more cases using sbb.
3920
3921 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
3922
3923         * i386.md (truncatexfdf splitters): Do not use subreg.
3924         (fop XFmode patterns): Fix mode in operand testing.
3925
3926 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
3927
3928         * jump.c (jump_optimize_1): Amend last change to test only the
3929         form of the operand, not the insn.
3930
3931         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
3932         not register_operand to determine when B may need preloading.
3933
3934 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
3935
3936         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
3937         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
3938         (call-value patterns): Move to end of file.
3939         (*): Remove mode from label_ref in (pc) context.
3940         (movstrqi): Use memory not general_operand for BLKmode operands.
3941         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode 
3942         to register_operand operands.
3943         (peep2 patterns): Convert from commented-out peephole patterns.
3944
3945 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
3946
3947         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
3948         to BUILT_IN_INIT_DWARF_REG_SIZES.
3949         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
3950         Renamed from BUILT_IN_DWARF_REG_SIZE; call
3951         expand_builtin_init_dwarf_reg_sizes.
3952         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
3953         with __builtin_init_dwarf_reg_size_table.
3954         * dwarf2out.c (struct reg_size_range): Delete.
3955         (expand_builtin_init_dwarf_reg_sizes): New function.
3956         (expand_builtin_dwarf_reg_size): Delete.
3957         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
3958         (expand_builtin_dwarf_reg_size): Don't declare.
3959         * libgcc2.c (dwarf_reg_size_table_initialized): New.
3960         (dwarf_reg_size_table): New.
3961         (init_reg_size_table): New function.
3962         (copy_reg): Use dwarf_reg_size_table.
3963         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
3964         before use.
3965
3966 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
3967
3968         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): 
3969         Correctly build argument list to constructor and destructor functions.
3970
3971 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
3972
3973         * c-tree.h (warn_float_equal): Declare.
3974         * c-decl.c (warn_float_equal): Define.
3975         (c_decode_option): Recognize -W[no-]float-equal.
3976         * c-typeck.c (build_binary_op): Conditionally warn
3977         about equality tests of floating point types.
3978         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
3979         * invoke.texi: Add docs for -Wfloat-equal warning.
3980
3981 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
3982
3983         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
3984         generating RTL directly.
3985         * mips.h (INIT_TARGET_OPTABS): Likewise.
3986         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
3987
3988         * expr.h (init_mov_optab): Delete declaration
3989
3990         * h8300.c (WORD_REG_USED): Update to avoid useless register
3991         saves in interrupt functions and functions which never return.
3992
3993         * cse.c (struct set): Delete inner_dest_loc field. 
3994         (cse_insn): Remove assignments to inner_dest_loc field.
3995
3996 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
3997
3998         * ggc-page.c: Don't include <unistd.h> etc taken care of
3999         by "system.h".  Include <sys/mman.h> afterward.
4000
4001 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
4002
4003         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
4004         ggc_alloc_string.
4005
4006 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
4007
4008         * xcoffout.c (xcoffout_declare_function): Add documentation.
4009         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
4010         TARGET_64BIT.  Compare constant to -1, not bit pattern.
4011         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
4012         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
4013         gen_movsi typos.
4014
4015 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
4016
4017         * dwarf2out.c (add_abstract_origin_attribute): Abort if
4018         origin_die is NULL.
4019         (gen_inlined_enumeration_type_die): Do not abort if the type has
4020         not been writeen out.
4021         (gen_inlined_structure_type_die): Do not abort if the type has
4022         not been writeen out.
4023         (gen_inlined_union_type_die): Do not abort if the type has
4024         not been writeen out.
4025         (gen_tagged_type_instantiation_die): Do not abort if the type
4026         has not been written out.
4027
4028 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4029
4030         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
4031         call it.
4032         * reg-stack.c (straighten_stack): Copy hard reg set with
4033         COPY_HARD_REG_SET.
4034
4035 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
4036
4037         * builtins.c (stabilize_va_list): Stabilize array type va_list
4038         to a pointer type, not the base record type.
4039         (expand_builtin_va_copy): Dereference the pointers explicitly;
4040         use the correct size for the copy.
4041
4042         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
4043         (rs6000_va_arg): Likewise.
4044
4045 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
4046
4047         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
4048
4049 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
4050
4051         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
4052         field.
4053         (DECL_BUILT_IN_CLASS): Adjust accordingly.
4054
4055 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
4056
4057         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
4058         (init_ggc): Use it instead of a constant.
4059         (ggc_collect): Bound allocated_last_gc by it.
4060
4061 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
4062
4063         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
4064         with va_list.
4065
4066 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
4067
4068         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
4069         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
4070         * configure:  Regen.
4071         * config/mips/openbsd.h:  New, OpenBSD little endian target.
4072         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
4073         * config/mips/xm-openbsd.h:  New, OpenBSD host.
4074
4075 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
4076
4077         * config/m68k/m68k.c (output_function_prologue,
4078         output_function_epilogue): Use
4079         current_function_uses_pic_offset_table instead of regs_ever_live
4080         to decide whether to save/restore pic register.
4081         (legitimize_pic_address): Don't modify regs_ever_live any more.
4082
4083 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
4084
4085         * function.h (struct function): Add x_dont_save_pending_sizes_p.
4086         * stor-layout.c (variable_size): Don't add sizes to the pending
4087         sizes list if x_dont_save_pending_sizes_p is set.
4088         
4089 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
4090
4091         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
4092         for symbolic_operand().
4093         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
4094
4095 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4096
4097         * combine.c (gen_rtx_combine): Add missing call to va_end().
4098
4099         * final.c (asm_fprintf): Likewise.
4100
4101         * genattrtab.c (attr_rtx): Likewise.
4102
4103 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
4104
4105         * cse.c: Update comments.
4106         (cse_insn): When converting a conditional/computed jump into
4107         an unconditional jump, always make sure a BARRIER immediately
4108         follows the converted jump.  Do not delete unreachable code.
4109         (cse_basic_block): Do not delete unreachable code.
4110         * toplev.c (rest_of_compilation): Move call to 
4111         delete_trivially_dead_insns after the conditional call to
4112         jump_optimize.
4113
4114 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4115
4116         * collect2.c (make_temp_file): Don't prototype.
4117
4118         * gcc.c (make_temp_file): Likewise.
4119
4120         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
4121
4122 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
4123
4124         * varasm.c (asm_emit_uninitialised): New function: Generate
4125         the assembler statements necessary to declare an uninitialised 
4126         variable.
4127         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
4128         variable.
4129         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
4130         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
4131         section.
4132         (assemble_variable): Use asm_emit_uninitialised to emit an
4133         uninitialised variable.
4134
4135 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
4136
4137         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
4138         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
4139         <geoffk@cygnus.com>.
4140
4141 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4142
4143         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
4144         * c-common.h (builtin_function): Don't declare.
4145
4146         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
4147         DECL_BUILT_IN.
4148         (pushdecl): Likewise.
4149         (finish_decl): Likewise.
4150         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
4151         int.  All callers changed.
4152         Set the builtin's DECL_BUILT_IN_CLASS.
4153         * tree.h (enum built_in_class): New.
4154         (enum built_in_function): Delete NOT_BUILT_IN.
4155         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
4156         in a union.
4157         (DECL_SET_FUNCTION_CODE): Likewise.
4158         (DECL_BUILT_IN_CLASS): New macro.
4159         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
4160         (struct tree_decl): Split builtin function code field into a
4161         struct.
4162         (builtin_function): Declare.
4163
4164 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
4165
4166         * optabs.c (init_traps): Fix typo in last change.
4167
4168 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
4169
4170         * toplev.c (rest_of_decl_compilation): Update comment.
4171
4172 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
4173
4174         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
4175         in .sbss if appropriate.
4176         (EXTRA_SECTION_FUNCTIONS): Add sbss.
4177         (SBSS_SECTION_ASM_OP): New macro.
4178         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
4179         (EXTRA_SECTIONS): Add in_sbss.
4180         * config/mips/mips.h: Prototype sbss_section.
4181
4182 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
4183
4184         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
4185         to disappear.
4186
4187 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
4188
4189         * optabs.c (init_traps): Register trap_rtx as a GC root.
4190
4191 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4192
4193         * config/mips/mips.c (function_arg_pass_by_reference): Define
4194         unconditionally, since it's called unconditionally.
4195
4196 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
4197
4198         * toplev.c (documented_lang_options): Add -fshort-wchar.
4199         * c-decl.c (c_decode_option): Likewise.
4200         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
4201         for wchar_t.
4202         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
4203         * gcc.c (default_compilers): If -fshort-wchar, 
4204         override __WCHAR_TYPE__.
4205         * tm.texi (C Dialect Options): Add -fshort-wchar.
4206
4207         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
4208         symbol for a variable.
4209
4210         * cpplib.h (CPP_PREPROCESSED): New macro.
4211         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
4212         we're seeing this input for a second time.
4213
4214 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
4215
4216         * emit-rtl.c (init_emit_once): Initialize modes first.
4217
4218 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
4219
4220         * config/i386/i386.c (pic_label_name): Change to char pointer.
4221         (global_offset_table): New variable.
4222         (load_pic_register): Fill global_offset_table if it hasn't
4223         already been done.  Allocate pic_label_name dynamically.
4224         * ggc.h (empty_string): New variable.
4225         * ggc-simple.c (empty_string): Likewise.
4226         (init_ggc): Allocate empty_string and add as root.
4227         * stmt.c (digit_strings): New variable.
4228         (init_stmt): Add last_block_end_note as root.  Allocate and
4229         initialize digit_strings. 
4230         (expand_asm_operands): Use empty_string instead of string
4231         constant.  Use digit_strings instead of string constants.
4232         * profile.c (init_arc_profiler): Allocate string with
4233         ggc_alloc_string instead of xmalloc.
4234         (output_func_start_profiler): Likewise.
4235         * c-typeck.c (digest_init): Check if init is error_mark_node.
4236
4237 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
4238                           Richard Henderson  <rth@cygnus.com>
4239
4240         * ggc-page.c: New file.
4241         * Makefile.in (ggc-page.o): New.
4242
4243 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
4244
4245         * invoke.texi: Document -fdelete-null-pointer-checks
4246         * toplev.c (flag_delete_null_pointer_checks): New.
4247         (f_options): Add entry for -fdelete-null-pointer-checks.
4248         (rest_of_compilation): Conditionalize null pointer check
4249         elimination on flag_delete_null_pointer_checks.
4250         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
4251
4252 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
4253
4254         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
4255         copyright notice and special exception to GPL.
4256
4257 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4258
4259         * abi64.h (mips_function_value): Add prototype arguments.
4260
4261         * mips-protos.h: New file with mips prototypes.
4262
4263         * mips.c: Include "tm_p.h".
4264         (mktemp, lookup_name): Add prototype arguments.
4265         (extern_list, string_constant, mips_fill_delay_slot,
4266         mips_output_external, mips_output_external_libcall,
4267         mips_output_filename, mips_declare_object, function_prologue,
4268         mips_expand_prologue, function_epilogue, mips16_constant,
4269         build_mips16_function_stub, mips_output_conditional_branch):
4270         Constify a char*.
4271         (mips_va_start): Remove unused variable `u'.
4272         (mips_va_arg): Cast value to unsigned when comparing against one.
4273         (trace): Delete.
4274         (save_restore_insns, mips_expand_prologue): Add missing arg in
4275         call to `large_int'.
4276
4277         * mips.h: Move prototypes to mips-protos.h.
4278         (data_section, memory_address_p, rdata_section,
4279         readonly_data_section, simple_epilogue_p, text_section): Delete
4280         prototypes delcared elsewhere.
4281         (mips_epilogue_delay_slots, print_options): Delete unused decls.
4282         (trace): Delete.
4283         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
4284
4285         * mips.md: Delete extra args in call to `mips_move_2words'.
4286
4287         * xm-iris6.h (alloca): Add prototype argument.
4288
4289         * genpeep.c: Include "tm_p.h" in generated output file.
4290
4291 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4292
4293         * basic-block.h (find_edge_index): Change parameters.
4294         * flow.c (verify_edge_list): Pass basic_block parameters to
4295         find_edge_index instead of integers.
4296
4297 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
4298
4299         * combine.c (simplify_comparison): Use an unsigned shift to adjust
4300         the constant.
4301
4302 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
4303
4304         * gcc.1: Fix a formatting error.
4305
4306 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4307
4308         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
4309         i786, mn10200, mn10300, pdp11, v850.
4310
4311 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
4312
4313         * libgcc2.c (num_digits): Add prototype with 
4314         __attribute__((const)).
4315         (__terminate): Add prototype.
4316
4317 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
4318
4319         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
4320
4321         * alpha/alpha.c (print_operand): Fix type of `code'.
4322         (alpha_output_filename): Constify.
4323         * alpha/alpha.h: Move all function declarations ...
4324         * alpha/alpha-protos.h: ... here.  New file.
4325         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
4326         (SECTION_FUNCTION_TEMPLATE): Likewise.
4327
4328 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4329
4330         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
4331         * expr.c (expand_expr): Likewise.
4332         (do_jump): Likewise.
4333         (do_store_flag): Pass ccp_store_flag to can_compare_p.
4334         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
4335         accessor macros.
4336         (enum can_compare_purpose): New.
4337         (can_compare_p): Adjust prototype.
4338         (prepare_cmp_insn, prepare_operand): Declare.
4339         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
4340         * optabs.c (cmp_available_p): Deleted.
4341         (expand_abs): Pass ccp_jump to can_compare_p.
4342         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
4343         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
4344         Call can_compare_p rather than cmp_available_p.
4345         (prepare_operand): No longer static.
4346         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
4347         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
4348         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
4349         sequence to use emit_cmp_and_jump_insns.
4350         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
4351
4352 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
4353
4354         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
4355         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
4356         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
4357         (plus (reg) (const_int 0))
4358         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
4359         
4360 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
4361
4362         * rs6000.c (expand_block_move): DImode loads and stores require
4363         word-aligned displacements.  Increment address registers with
4364         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
4365
4366 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
4367
4368         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
4369         is no name for the base type, rather than segfault.  If we are
4370         writing out a complex integer type, use DW_ATE_lo_user.
4371
4372         * expr.c (emit_move_insn_1): If we are copying a complex that fits
4373         in one word or less (complex char, complex short, or on 64 bit
4374         systems complex float) to/from a hard register, copy it through
4375         memory instead of dying in gen_{real,imag}part.  If we have a
4376         short complex type, prevent inlining since it allocates stack
4377         memory.
4378
4379         * tree.c (build_complex_type): If we are writing dwarf2 output,
4380         generate a name for complex integer types.
4381
4382 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4383
4384         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
4385         * flow.c (remove_edge): Remove extra whitespace.
4386         (remove_fake_edges): Fix comment.
4387         (add_noreturn_fake_exit_edges): Use the correct name.
4388
4389 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
4390
4391         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
4392         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
4393         (clean): Depend on INTL_CLEAN.
4394         (maintainer-clean): Adjust.
4395
4396 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4397
4398         * configure.in (AC_PREREQ): Bump to 2.13.
4399         (AC_C_STRINGIZE): Call this instead of using a custom macro.
4400
4401         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
4402
4403         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
4404
4405         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
4406
4407         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
4408         (HAVE_STRINGIZE): Define.
4409
4410 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
4411
4412         * c-parse.in: save and restore warn_pointer_arith on __extension__
4413         along with pedantic.
4414         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
4415         Set the type of extension to itype rather than $<itype>1 kludge.
4416         * extend.texi (Alternate Keywords): Adjust documentation.
4417         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
4418
4419 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
4420
4421         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
4422         most assembler templates.
4423
4424         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
4425         FP loads and stores.
4426         (following_call): Always return zero for the PA8000.
4427         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
4428         FP loads and stores.
4429         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
4430
4431         * pa.h (BRANCH_COST): Define.
4432
4433         * pa.md (return, return_internal): Use bve for PA2.0.
4434
4435         * pa.md (fused multiply): Add variants which reduce height for the
4436         fused multiply, but which still generate 2 insns.
4437         (fnegabs): Similarly.
4438
4439         * pa.md (subsi3): Turn into an expander.  Create two anonymous
4440         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
4441         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
4442
4443         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
4444         for TARGET_PA_20.
4445         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
4446         code generation.
4447         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
4448         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
4449
4450         * regclass.c (init_regs): Add "top_of_stack" as a garbage
4451         collection root.
4452
4453         * flow.c (record_active_eh_regions): Terminate loop after finding
4454         the last insn in the last basic block.
4455
4456 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4457
4458         * config/c4x/c4x.md: Delete parallel instruction peepholes.
4459
4460 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4461
4462         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
4463
4464 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4465
4466         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
4467         splitting to not use output template.
4468
4469 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4470
4471         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
4472         * config/c4x/c4x.c (c4x_va_start): New function.
4473
4474 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
4475
4476         * genrecog.c (not_both_true): Handle correctly cases when called for
4477         tests with different positions in the insn.
4478
4479 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4480
4481         * machmode.h (HOST_PTR_PRINTF): Move from here ...
4482
4483         * system.h (HOST_PTR_PRINTF): ... to here.
4484
4485         * mips-tfile.c: Don't include machmode.h.
4486
4487         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
4488         (mips-tfile.o): Don't depend on machmode.h.
4489
4490 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4491
4492         * haifa-sched.c (sched_analyze): Rename local variable `region' to
4493         avoid conflicts with typedef struct `region' at the top level scope.
4494
4495 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
4496
4497         * basic-block.h (basic_block): Add eh_beg, eh_end.
4498         * flow.c (entry_exit_blocks): Update.
4499         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
4500         Call new functions.
4501         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
4502         lists.c functions to allocate insn lists.
4503         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
4504         edge creation ...
4505         (make_eh_edge): ... here.  New.
4506         (move_stray_eh_region_notes): New.
4507         (record_active_eh_regions): New.
4508         (delete_unreachable_blocks): Split out block merging ...
4509         (try_merge_blocks): ... here.  New.
4510         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
4511         Dump debugging data.
4512         (merge_blocks_move_successor_nojumps): Likewise.
4513         (merge_blocks): Use eh_beg+eh_end to validate block movement.
4514
4515 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4516
4517         * extend.texi (Bound member functions): Document unbound pmf
4518         conversion.
4519
4520 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4521
4522         * flow.c (split_edge): Handle insertion on a fallthrough edge which
4523         has the EXIT_BLOCK as a dest.
4524
4525 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4526
4527         * flow.c (remove_edge): New function to remove an edge from the 
4528         flow graph.
4529         (remove_fake_successors): New function to remove fake successor edges.
4530         (remove_fake_edges): New function to remove all fake edges from the
4531         flow graph.
4532         (add_fake_exit_edges): New function to add fake edges from all blocks
4533         with no successors to the exit block.
4534         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add 
4535         prototypes for new functions.
4536
4537 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
4538
4539         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
4540         Use Pmode to determine whether to output .dword or .word.
4541
4542 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
4543
4544         * tree.c (built_in_filename): New variable.
4545         (BUILT_IN_FILENAME): New macro.
4546         (init_tree_codes): Allocate built_in_filename.
4547         (make_node): Use built_in_filename instead of string constant.
4548
4549 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
4550
4551         * configure.in: Add fr30 target.
4552         * configure: Regenerate.
4553         * config/fr30: New directory.
4554         * config/fr30/crti.asm: New file.
4555         * config/fr30/fr30.c: New file.
4556         * config/fr30/crtn.asm: New file.
4557         * config/fr30/fr30.h: New file.
4558         * config/fr30/fr30.md: New file.
4559         * config/fr30/lib1funcs.asm: New file.
4560         * config/fr30/t-fr30: New file.
4561         * config/fr30/xm-fr30.h: New file.
4562
4563 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
4564
4565         * flow.c (merge_blocks_move_successor_nojumps): Delete the
4566         BARRIER at the end of the successor, not the BARRIER before
4567         the successor.
4568
4569         * pa.c (pa_add_gc_roots): Fix thinko in last change.
4570
4571 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
4572
4573         * stmt.c (any_pending_cleanups): Don't crash when 
4574         current_function->stmt is unset.
4575
4576 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4577
4578         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
4579         other initializations that may use it for relative offsets.
4580
4581 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4582
4583         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
4584         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
4585         * config/i386/sol2dbg.h: Removed.
4586         * config/i386/sol2gas.h: New file, to enable gas work-around.
4587         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
4588         Don't use sol2dbg.h.
4589         * configure: Rebuilt.
4590
4591 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
4592
4593         * invoke.texi (-fthis-is-variable): Remove documentation.
4594
4595 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
4596
4597         * basic-block.h (compute_bb_for_insn): Declare.
4598         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
4599         to use; set size of basic_block_for_insn directly.
4600         (find_basic_blocks): Update.
4601
4602 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4603
4604         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
4605
4606 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4607
4608         * crtstuff.c (ON_EXIT): Delete empty macro definition.
4609         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
4610
4611 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
4612
4613         * c-decl.c (c_decode_option): Extend comment.
4614
4615 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
4616
4617         * toplev.c (progname): Make 'const char *'
4618         (flag_print_mem): Move out of main.
4619         (version_flag): Move out of main.
4620         (filename): Move out of main.
4621         (debug_args): Remove g prefix from options.
4622         (documented_lang_options): Remove cpplib specific options.
4623         (display_help): Add g prefix to debug options.
4624         (check_lang_option): Delete this function.
4625         (decode_d_option): New function: Decode -d... option.
4626         (decode_f_option): New function: Decode -f... option.
4627         (decode_W_option): New function: Decode -W... option.
4628         (decode_g_option): New function: Decode -g... option.
4629         (independent_decode_option): New function: Decode a language
4630         independent command line option.
4631         (main): Invoke lang_decode_option and then
4632         independent_decode_option on each command line option in
4633         turn. 
4634
4635 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
4636
4637         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
4638          * fold-const.c (fold_range_test): Do not try to fold the range
4639          test if the rhs or lhs has side effects.
4640
4641         * basic-block.h (compute_flow_dominators): Declare.
4642
4643         * gcse.c (alloc_code_hoist_mem): New function.
4644         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
4645         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
4646         (hoist_code, one_code_hoisting_pass): Likewise.
4647         (gcse_main): If optimizing for size, then hoist expressions
4648         computed in multiple dominated basic blocks.
4649
4650         * gcse.c (invalid_nonnull_info): New function.
4651         (delete_null_pointer_checks): Likewise.
4652         * rtl.h (delete_null_pointer_checks): Declare.
4653         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
4654
4655         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
4656         (merge-blocks_move_successor_nojumps): Likewise.
4657         (merge_blocks): Allow merging of some blocks, even if it requires
4658         physical movement of the blocks, but not if it requires new jumps.
4659
4660         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
4661         Callers and prototype changed.
4662         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
4663
4664 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4665
4666         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
4667         -YP when both -p and -pg are present.  From i386/sol2.h.
4668
4669 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4670
4671         * Makefile.in (distclean): Delete tm_p.h.
4672         * configure.in: Create a new file, "tm_p.h", from a list in
4673         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
4674         "i386/i386-protos.h".
4675
4676         * alias.c: Include "tm_p.h".
4677         * c-typeck.c: Likewise.
4678         * calls.c: Likewise.
4679         * cse.c: Likewise.
4680         * emit-rtl.c: Likewise.
4681         * explow.c: Likewise.
4682         * expmed.c: Likewise.
4683         * expr.c: Likewise.
4684         * final.c: Likewise.
4685         * flow.c: Likewise.
4686         * fold-const.c: Likewise.
4687         * function.c: Likewise.
4688         * gcse.c: Likewise.
4689         * global.c: Likewise.
4690         * haifa-sched.c: Likewise.
4691         * integrate.c: Likewise.
4692         * jump.c: Likewise.
4693         * local-alloc.c: Likewise.
4694         * loop.c: Likewise.
4695         * optabs.c: Likewise.
4696         * recog.c: Likewise.
4697         * reg-stack.c: Likewise.
4698         * regclass.c: Likewise.
4699         * regmove.c: Likewise.
4700         * reload.c: Likewise.
4701         * reload1.c: Likewise.
4702         * reorg.c: Likewise.
4703         * resource.c: Likewise.
4704         * stmt.c: Likewise.
4705         * stor-layout.c: Likewise.
4706         * toplev.c: Likewise.
4707         * tree.c: Likewise.
4708         * unroll.c: Likewise.
4709         * genattrtab.c (main): Make generated file include "tm_p.h".
4710         * genemit.c (main): Likewise.
4711         * genoutput.c (main): Likewise.
4712         * genrecog.c (main): Likewise.
4713
4714         * i386.h: Delete all prototypes.
4715         * i386.c: Include "tm_p.h".
4716         (ix86_attr_length_default): Call constant_call_address_operand
4717         with correct number of arguments.
4718         * i386-protos.h: New file.
4719         * i386.md (unnamed patterns): Call constant_call_address_operand
4720         with correct number of arguments.
4721         (exception_receiver): Call load_pic_register with correct number
4722         of arguments.
4723
4724 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
4725
4726         * c-pragma.c (mark_align_stack): Dereference the void* properly.
4727
4728 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
4729
4730         * rtl.h (insns_safe_to_move_p): New function.
4731         * loop.c (find_and_verify_loops): Use it.
4732         * rtlanal.c (insns_safe_to_move_p): Define it.
4733
4734 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
4735
4736         * c-pragma.c: Include ggc.h.
4737         * Makefile.in (c-pragma.o): Update.
4738
4739 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4740
4741         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
4742         (LIB_SPEC): Likewise.
4743         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
4744         Reindent -YP/-p/-pg.
4745         Copied from config/sparc/sol2.h.
4746
4747 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
4748
4749         * c-pragma.c (mark_align_stack): New.
4750         (init_pragma): New.
4751         * c-pragma.h (init_pragma): Declare it.
4752         * c-lex.c (init_parse): Call it.
4753
4754 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
4755
4756         * configure.in: Pick up thread library on Solaris/x86 just
4757         like on Solaris/sparc.
4758         * configure: Rebuilt.
4759
4760 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
4761
4762         * rtl.h (global_rtx_index): New enum.
4763         (global_rtl): Change to array of rtx.
4764         (pc_rtx, cc0_rtx): Redefine accordingly.
4765         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
4766         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
4767         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
4768         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
4769         (const_int_rtx): Change to array of rtx.
4770         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
4771         accordingly. 
4772         * emit-rtl.c (global_rtl): Change to array of rtx.
4773         (const_int_rtx): Change to aray of rtx.
4774         (gen_rtx_CONST_INT): Redefine accordingly.
4775         (init_emit_once): Allocate and initialize global_rtl.  Likewise
4776         for const_int_rtx.  Add both as GC roots.
4777         * genattrtab.c (global_rtl): Update declaration.
4778
4779 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
4780
4781         * Makefile (USER_H): Add iso646.h back.
4782
4783 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
4784
4785         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
4786         zapping the LOG_LINKS of sched_before_next_call.
4787
4788         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
4789         * pa.c (insn_refs_are_delayed): Renamed from
4790         insn_sets_and_refs_are_delayed.
4791
4792 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
4793
4794         * functiion.h (struct function): Add x_whole_function_mode_p.
4795         (retrofit_block): Declare.
4796         * function.c (retrofit_block): New function.
4797         (identify_blocks): Add assertions.  Allow an incomplete set of
4798         block notes if we're still generating code for the function.
4799         * integrate.c: Include loop.h.
4800         (expand_inline_function): Call find_loop_tree_blocks to map block
4801         notes to blocks when in whole-function mode.  Use retrofit_block
4802         to insert new BLOCKs for the inlined function, rather than
4803         insert_block.
4804         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
4805         * Makefile.in (integrate.o): Depend on loop.h.
4806
4807 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
4808
4809         * tree.h (warn_about_unused_variables): Declare.
4810         * stmt.c (warn_about_unused_variables): New function, split out
4811         from ...
4812         (expand_end_bindings): Here.
4813
4814 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
4815
4816         * stmt.c (preserve_subexpressions_p): Don't crash when
4817         current_function->stmt is unset.
4818
4819 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
4820
4821         * stmt.c (expand_start_bindings): Allow callers to pass a flag
4822         indicating that no NOTE_INSN_BLOCK_BEG note is required.
4823         (expand_start_target_temps): Use it.
4824         * except.c (expand_eh_region_start_for_decl): Likewise.
4825         * expr.c (expand_expr): Likewise.
4826
4827 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4828
4829         * fold-const.c (operand_equal_p): Pay attention to side effects.
4830
4831 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
4832
4833         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
4834         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
4835
4836         * tlink.c (scan_linker_output): Look for keywords before accepting
4837         a mangled name in quotes.
4838
4839 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
4840
4841         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
4842         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
4843
4844 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
4845
4846         * alpha.md: Revert Thu Nov 26 change that came in through the
4847         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
4848         Avoid earlyclobber when possible.
4849
4850 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4851
4852         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
4853
4854         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
4855         Define HAVE_ON_EXIT.
4856
4857 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4858
4859         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
4860         CTYPE_CONV in all ctype macros.
4861
4862         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
4863         from system.h.
4864
4865         * cexp.y (initialize_random_junk): Likewise.
4866
4867         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
4868
4869         * i370.c (handle_pragma): Likewise.
4870
4871         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
4872
4873         * v850.c (override_options): Likewise.
4874
4875         * doprint.c (_doprnt): Likewise.
4876
4877         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
4878         Likewise.
4879
4880         * fixinc/server.c (load_data): Likewise.
4881
4882         * fold-const.c (real_hex_to_f): Likewise.
4883
4884         * genattr.c (write_upcase, gen_attr): Likewise.
4885
4886         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
4887         write_upcase): Likewise.
4888
4889         * genemit.c (print_code): Likewise.
4890
4891         * genopinit.c (gen_insn): Likewise.
4892
4893         * genpeep.c (print_code): Likewise.
4894
4895         * genrecog.c (print_code): Likewise.
4896
4897         * optabs.c (init_libfuncs): Likewise.
4898
4899 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
4900
4901         * haifa-sched.c (sched_analyze): Keep the list of notes organized
4902         in pairs.
4903         (reemit_notes): Likewise.
4904
4905 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
4906
4907         * ggc.h (ggc_root): Move to ggc-common.c.
4908         (roots): Remove.
4909         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
4910         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
4911         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
4912         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
4913         * ggc-common.c (ggc_root): Move from ggc.h.
4914         (roots): Declare, static.
4915         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
4916         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
4917         null or check/set mark bit.
4918         (ggc_mark_roots): New.
4919         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
4920
4921 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
4922
4923         * m32r.c: Include toplev.h.
4924         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
4925         (gen_compare): Rename swap_p to must_swap to match uses.
4926         Add default abort case.
4927         (m32r_output_function_epilogue): Remove unused variables.
4928         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
4929         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
4930         define to empty parameter list.  Update all uses.
4931         (predicate decls): Use enum machine_mode not int.
4932         * m32r.md (movsi): Call abort, not fatal_insn.
4933         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
4934
4935 1999-09-14  Andrew Haley  <aph@cygnus.com>
4936
4937         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
4938         use $0 instead of 0.
4939
4940 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
4941
4942         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
4943         computation out of loop over hard regs.
4944
4945 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
4946
4947         * function.c (identify_blocks): Don't shadow a variable in an 
4948         outer scope.
4949         * integrate.c (integrate_decl_tree): Don't use pushlevel,
4950         pushdecl, or poplevel to build up the new BLOCK tree.
4951         (expand_inline_function): Likewise.
4952         (integrate_parm_decls): Likewise.
4953
4954 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
4955
4956         * c-typeck.c (qualify_type): Merge qualifiers from both types.
4957
4958 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
4959
4960         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
4961         * invoke.texi: Document this change.
4962
4963 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
4964
4965         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
4966         Free the struct.
4967         (mark_emit_status): Renamed from mark_emit_state.
4968         * except.c (mark_eh_status): Renamed from mark_eh_state.
4969         Check not null before marking.
4970         (free_eh_status): New.
4971         * expr.c (mark_expr_status, free_expr_status): New.
4972         * function.c (free_machine_status): New.
4973         (free_after_parsing): New.
4974         (free_after_compilation): Move bits to free_after_parsing; call
4975         free_eh_status, free_expr_status; zero the marked members of the
4976         function state.
4977         (prepare_function_start): No can_garbage_collect. 
4978         Call init_eh_for_function.
4979         (expand_dummy_function_end): Free up current_function state.
4980         (mark_function_status): Renamed from mark_function_state.
4981         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
4982         * function.h (struct function): No can_garbage_collect.
4983         (free_machine_status, free_after_parsing): Declare.
4984         (free_eh_status, free_expr_status): Declare.
4985         * ggc.h (mark_expr_status): Declare.
4986         * stmt.c (free_stmt_status): Free the struct.
4987         (mark_stmt_status): Renamed from mark_stmt_state.
4988         (init_stmt): Don't call init_eh.
4989         (init_stmt_for_function): Don't call init_eh_for_function.
4990         * toplev.c (compile_file): Call init_eh.
4991         (rest_of_compilation): Free basic block info before ggc_collect.
4992         Call free_after_parsing; conditionally call free_after_compilation.
4993         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
4994         Check not null before marking.
4995         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
4996
4997 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
4998
4999         * c-lex.c (yylex): Initialize warn.
5000
5001 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
5002
5003         * pa.c (emit_move_sequence): Properly set the mode of the scratch
5004         register when performing secondary reloads for the SAR register.
5005
5006 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
5007
5008         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
5009         (NOTE_BLOCK): New macro.
5010         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
5011         * function.h (identify_blocks): Change prototype.
5012         * function.c (identify_blocks): Simplify.
5013         (reorder_blocks): Likewise.
5014         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a 
5015         NOTE_INSN_BLOCK_{BEG,END}.
5016         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
5017         the list of saved notes if the note isn't a
5018         NOTE_INSN_BLOCK_{BEG,END}.
5019         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
5020         NOTE_BLOCK_NUMBER.
5021         (reemit_notes): Adjust recreation of notes to reflect new saved
5022         note structure.
5023         * print-rtl.c (print_rtx): Print the address of the BLOCK when
5024         printing a block note.
5025         * stmt.c (block_vector): Remove.
5026         (find_loop_tree_blocks): Simplify.
5027         (unroll_block_trees): Likewise.
5028         * tree.h (reorder_block): Change prototype.
5029         
5030 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
5031
5032         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
5033         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
5034         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
5035         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
5036         (atexit, exit): Simplify.
5037         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
5038         * config/lots: Remove defns of HAVE_ATEXIT.
5039
5040 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
5041
5042         * calls.c (precompute_arguments): Fix typo in comment.
5043         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
5044         TARGET_EXPR.
5045
5046 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
5047
5048         * dsp16xx.c (override_options): Fix typos in GC root registration.
5049
5050 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
5051
5052         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
5053         from config/svr4.h.
5054         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
5055         (FUNCTION_PROFILER): Redefine appropriately for Linux.
5056         (CC1_SPEC): Likewise.
5057
5058 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5059
5060         * genattr.c (main): Add extern prototype.  Call return, not exit.
5061         * genattrtab.c (main): Likewise.
5062         * gencheck.c (main): Likewise.
5063         * gencodes.c (main): Likewise.
5064         * genconfig.c (main): Likewise.
5065         * genemit.c (main): Likewise.
5066         * genextract.c (main): Likewise.
5067         * genflags.c (main): Likewise.
5068         * gengenrtl.c (main): Likewise.
5069         * genopinit.c (main): Likewise.
5070         * genoutput.c (main): Likewise.
5071         * genpeep.c (main): Likewise.
5072         * genrecog.c (main): Likewise.
5073         
5074         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
5075         * genattrtab.c (get_insn_name): Likewise.
5076         * gencodes.c (get_insn_name): Likewise.
5077         * genconfig.c (get_insn_name): Likewise.
5078         * genemit.c (get_insn_name): Likewise.
5079         * genextract.c (get_insn_name): Likewise.
5080         * genflags.c (get_insn_name): Likewise.
5081         * genopinit.c (get_insn_name): Likewise.
5082         * genpeep.c (get_insn_name): Likewise.
5083         
5084         * gencheck.c (usage): Add static prototype.
5085         * genextract.c (print_path): Constify a char*.
5086         * genopinit.c (optabs): Likewise.
5087         * genoutput.c (operand_data, data, output_predicate_decls,
5088         compare_operands): Likewise.
5089         * genrecog.c (write_tree): Add default case in switch.
5090
5091 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5092
5093         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
5094
5095         * print-rtl.c (get_insn_name): Remove prototype.
5096
5097         * toplev.h (progname): Declare const.
5098
5099         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
5100         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
5101         dump_sched_info, dump_local_alloc, regset_release_memory,
5102         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
5103         error_with_file_and_line, error_with_decl, error_for_asm, error,
5104         fatal, warning_with_file_and_line, warning_with_decl, warning,
5105         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
5106         Remove redundant prototypes.
5107
5108         (notice, check_lang_option, report_file_and_line, vnotice,
5109         mark_file_stack): Add static prototype.
5110         (set_fatal_function): Add prototype.
5111         (vnotice, report_file_and_line, set_fatal_function,
5112         check_lang_option): Constify a char*.
5113         (main): Prototype.  Call return, not exit.
5114
5115 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5116
5117         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
5118
5119         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
5120
5121         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
5122
5123         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
5124
5125 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5126
5127         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
5128         behave as if it's zero in all cases.
5129         (expand_function_start): Adjust call to assign_parms.
5130         * tree.h (assign_parms): Adjust prototype.
5131         * objc/objc-act.c (hack_method_prototype): Adjust call to
5132         assign_parms.
5133
5134 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
5135
5136         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
5137         arg_pointer_rtx fixed if the argument pointer register is
5138         not fixed.
5139         (NONZERO_BASE_PLUS_P): Likewise.
5140
5141 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
5142
5143         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
5144         match_insn2 to match_insn.
5145         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
5146
5147 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
5148
5149         * Makefile.in (USER_H): Remove va-foo.h.
5150
5151         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
5152         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
5153         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
5154         va-spur.h,va-v850.h}: Remove.
5155
5156 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
5157
5158         * sparc/sparc.md (eligible_for_return_delay): New attribute.
5159         (in_return_delay): Use it instead of match_insn.
5160
5161 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5162
5163         * config/alpha/va_list.h (va-alpha.h): Do not include.
5164         (__gnuc_va_list): Typedef as in varargs.h.
5165
5166 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
5167
5168         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
5169         DECL_LIVE_RANGE_RTL.
5170
5171 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
5172
5173         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
5174         not NOTE_BLOCK_NUMBER.
5175         (expand_eh_region_end): Likewise.
5176         (find_exception_handler_labels): Likewise.
5177         (scan_region): Likewise.
5178         (exception_optimize): Likewise.
5179         (update_rethrow_references): Likewise.
5180         (set_insn_eh_region): Likewise.
5181         * final.c (final_scan_insn): Likewise.
5182         * flow.c (make_edges): Likewise.
5183         * integrate.c (expand_inline_function): Likewise.
5184         * print-rtl.c (print_rtx): Likewise.
5185
5186 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
5187
5188         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
5189         terms of builtin functions and types.
5190
5191         * mips.c (mips_build_va_list): New.
5192         (mips_va_start, mips_va_arg): New.
5193         * mips.h (BUILD_VA_LIST_TYPE): New.
5194         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
5195
5196         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
5197         (sh_build_va_list, sh_va_start, sh_va_arg): New.
5198         * sh.h (BUILD_VA_LIST_TYPE): New.
5199         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
5200
5201 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
5202
5203         * recog.h (struct recog_data): Make dup_num, operand_address_p,
5204         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
5205         (struct insn_data): Likewise with n_operands, n_dups, 
5206         n_alternatives, output_format.
5207         * regclass.c (scan_one_insn): Cast n_operands to int before
5208         arithmetic inside comparison.
5209
5210 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
5211
5212         * toplev.c (compile_function): Unconditionally emit nop.
5213
5214 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5215
5216         * haifa-sched.c (actual_hazard): Move declaration of variable
5217         `this_cost' into the scope where it is used.
5218
5219 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5220
5221         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
5222         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
5223         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
5224
5225         * genrecog.c (make_insn_sequence): Call memset, not bzero.
5226
5227         * jump.c (find_insert_position): Don't declare or define unless
5228         !HAVE_conditional_arithmetic.
5229         (returnjump_p_1, delete_prior_computation): Add static prototypes.
5230
5231         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
5232         
5233         * recog.c (offsettable_address_p): Prototype function pointer.
5234         (preprocess_constraints): Call memset, not bzero.
5235         
5236         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
5237         (gcc_obstack_init): Don't declare.
5238         (fix_sizetype): Add static prototype.
5239         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
5240         (tree_cons): Call memset, not bzero.
5241
5242         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
5243         definition in macro ASM_WEAKEN_LABEL.
5244         (mark_const_hash_entry): Add static prototype.
5245
5246 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5247
5248         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
5249
5250         * unroll.c (find_common_reg_term, subtract_reg_term,
5251         loop_find_equiv_value): Add static prototypes.
5252         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
5253         (copy_loop_body): Remove unreachable break statement.
5254         
5255         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
5256
5257         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
5258         
5259 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5260
5261         Undo some changes from the gcc2 merge:
5262         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
5263         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
5264         pointers.
5265
5266         Undo this change:
5267         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
5268         * emit-rtl.c (gen_lowpart_common): Disable optimization of
5269         initialized float-int union if the value is a NaN.
5270
5271 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
5272
5273         * gthr-win32.h: New file.
5274
5275         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
5276         shared as a valid attribute.
5277         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
5278         * extend.texi: Document `shared' variable attribute.
5279
5280 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
5281
5282         * configure.in: Handle --enable-threads on FreeBSD.
5283         * configure: Rebuit.
5284
5285 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
5286
5287         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add 
5288         thread support.
5289         * configure: Rebuilt.
5290
5291 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
5292                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
5293                           Rosimildo DaSilva <rdasilva@connecttel.com>
5294
5295         * configure.in (m68k-*-rtemscoff*): Added.
5296         * configure.in (mips64orion-*-rtems*): Converted to ELF.
5297         * configure.in (sparc-*-rtemsaout*): Added as alias for old
5298         sparc-rtems configuration.
5299         * configure.in (sparc-*-rtemself*): Added.
5300         * configure.in (sparc-*-rtems*): Now ELF not a.out.
5301         * config/i386/rtems.h: Added comment.
5302         * config/sparc/rtemself.h: New file.
5303
5304         * configure.in (m68k-rtemself): Added.
5305         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
5306         and DWARF_DEBUGGING_INFO.
5307         * config/m68k/crti.s: New file.
5308         * config/m68k/crtn.s: New file.
5309         * config/m68k/t-crtstuff: New file.
5310         * config/m68k/rtemself.h: New file.
5311
5312         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
5313         global ctor/dtor and C++ exception handling.
5314         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
5315         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
5316         ENDFILE_SPEC.
5317         * config/i386/t-rtems-i386: New File.
5318
5319 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
5320
5321         * stmt.c (expand_end_case): Return right away if the case stack is
5322         empty.
5323
5324 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
5325
5326         * Makefile.in (version.c): Remove rule incorrectly brought in from
5327         the gcc2 merge.
5328
5329 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
5330
5331         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
5332         * msdos/top.sed:  Take into account a prepended $(SHELL) to
5333         move-if-change.
5334         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
5335
5336         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
5337
5338 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
5339
5340         * regmove.c (fixup_match_1): Don't change an unchanging register.
5341         (stable_but_for_p): Renamed to:
5342         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
5343         Changed all callers.
5344
5345 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
5346
5347         * loop.c (strength_reduce): Don't call reg_used_between_p if the
5348         insn from BL2 is after the insn from BL.
5349
5350 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
5351
5352         * recog.h (INSN_OUTPUT_FORMAT_*): New.
5353         (struct insn_data): Merge `template' and `outfun' into `output'.
5354         Add `output_format'.
5355         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
5356         (struct data): Remove `outfun'; add `output_format'.
5357         (name_for_index): Remove declaration.
5358         (output_insn_data): Handle output formats.
5359         (process_template): Emit the bare array for @.
5360         (gen_expand, gen_split): Set output_format to NONE.
5361         * output.h (get_insn_template): Declare.
5362         * final.c (get_insn_template): New.
5363         (final_scan_insn): Use it.
5364         * toplev.c (compile_file): Likewise.
5365
5366         * c4x/c4x.c (c4x_process_after_reload): Likewise.
5367         * i860/i860.c (output_delayed_branch): Likewise.
5368         (output_delay_insn): Likewise.
5369
5370 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5371
5372         * rtl.c (obstack_alloc_rtx): Removed.
5373
5374 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
5375
5376         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
5377
5378 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
5379
5380         * i386.c (call_insn_operand): Reject const_int.
5381         (expander_call_insn_operand): Use call_insn_operand.
5382
5383 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5384
5385         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
5386
5387 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
5388
5389         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
5390         Use DImode operation.
5391
5392 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
5393
5394         * gcc.c: Include sys/resource.h.
5395         (report_times): New flag.
5396         (execute):  If report_times is set, calculate and report the
5397         CPU time consumed by each subprocess.
5398
5399         (rus, prus): New globals.
5400         (option_map): Add --time.
5401         (display_help): Document -time.
5402         (process_command): Set report_times if -time is given.
5403         Turn off -pipe if -time is given.
5404
5405         * invoke.texi: Document new option -time.
5406
5407         * configure.in: Check for getrusage.  Check if we have to
5408         prototype getrusage.
5409         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
5410         * configure: Regenerate.
5411         * config.in: Regenerate.
5412
5413 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
5414
5415         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
5416         fields.
5417
5418 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
5419
5420         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
5421         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
5422         (nan): Return _thenan_sf or _thenan_df as appropriate.
5423         (L_thenan_sf): Define _thenan_sf.
5424         (L_thenan_df): Define _thenan_df.
5425
5426         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
5427         (DPBIT_FUNCS): Add _thenan_df.
5428
5429 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
5430
5431         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
5432         TYPE_SIZE_UNIT.
5433
5434 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5435
5436         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
5437
5438         * gcc.h: New file.
5439         (lang_specific_driver): Don't take a function pointer parameter.
5440         All callers changed.
5441
5442         * gcc.c: Include gcc.h.
5443         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
5444         lang_specific_extra_outfiles, fatal): Don't declare.
5445         (multilib_defaults_raw): Constify.
5446         (read_specs): Call memset, rather than bzero.
5447         (main): Call return, not exit.
5448         (lookup_compiler): Call memcpy, not bcopy.
5449         (fatal): Make extern.
5450
5451         * cppspec.c: Include gcc.h.
5452         (lang_specific_driver): Initialize variable `quote'.  Constify a
5453         char*.  All calls to the function pointer parameter now
5454         explicitly call `fatal'.
5455
5456         * gccspec.c (lang_specific_driver): Include gcc.h.
5457
5458 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
5459
5460         * arm.c (note_invalid_constants): Use recog_data.operand_type
5461         for recog_op_type.
5462
5463 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5464
5465         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
5466         Declare.
5467
5468         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
5469         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
5470         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
5471         reload_secondary_in_reload, reload_secondary_out_reload,
5472         reload_secondary_in_icode, reload_secondary_out_icode,
5473         reload_reg_rtx, reload_when_needed): Delete declarations.
5474         (struct reload): New structure.
5475         (rld): Declare new array.
5476         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
5477         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
5478         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
5479         reload_secondary_in_reload, reload_secondary_out_reload,
5480         reload_secondary_in_icode, reload_secondary_out_icode,
5481         reload_reg_rtx, reload_when_needed): Delete definitions.
5482         (rld): New array.
5483         (whole file): Replace uses of the deleted arrays with uses of rld.
5484         * reload1.c (whole file): Replace uses of the deleted arrays with
5485         uses of rld.
5486         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
5487         explicit loops, not with bcopy.
5488
5489 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
5490
5491         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
5492         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
5493         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
5494         insn_name): Delete and consolidate into new structures.
5495         (insn_operand_predicate_fn): New.
5496         (insn_output_fn): New.
5497         (insn_gen_fn): New.
5498         (struct insn_operand_data): New.
5499         (struct insn_data): New.
5500         (insn_data): New.
5501         (OUT_FCN): Update for insn_data change.
5502         * builtins.c (expand_builtin_strlen): Likewise.
5503         (expand_builtin_memcmp): Likewise.
5504         * combine.c (make_extraction, simplify_comparison): Likewise.
5505         * cse.c (canon_reg, cse_insn): Likewise.
5506         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
5507         * expmed.c (store_bit_field, extract_bit_field): Likewise.
5508         (emit_store_flag): Likewise.
5509         * expr.c (convert_move, emit_block_move): Likewise.
5510         (clear_storage, emit_push_insn, expand_increment): Likewise.
5511         (do_store_flag): Likewise.
5512         * expr.h (GEN_FCN): Likewise.
5513         (insn_gen_function): Die.
5514         * final.c (final_scan_insn): Update for insn_data change.
5515         (output_asm_name): Likewise.
5516         * function.c (fixup_var_refs_1): Likewise.
5517         * loop.c (check_dbra_loop): Likewise.
5518         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
5519         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
5520         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
5521         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
5522         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
5523         * regmove.c (gen_add3_insn): Likewise.
5524         * reload.c (push_secondary_reload, combine_reloads): Likewise.
5525         (find_reloads, find_reloads_address_1): Likewise.
5526         (debug_reload_to_stream): Likewise.
5527         * reload1.c (emit_reload_insns, gen_reload): Likewise.
5528         * stmt.c (expand_end_case): Likewise.
5529         * toplev.c (compile_file): Likewise.
5530
5531         * c4x/c4x.c (c4x_process_after_reload): Likewise.
5532         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
5533
5534         * print-rtl.c (insn_name_ptr): Remove declaration.
5535         (get_insn_name): Declare.
5536         (print_rtx): Use it.
5537         * genoutput.c (insn_name_ptr): Remove.
5538         (next_operand_number): New.
5539         (struct operand_data): New.
5540         (null_operand, odata, odata_end): New.
5541         (struct data): Use struct operand_data.
5542         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
5543         (get_insn_name): Renamed from name_for_index.
5544         (output_prologue): Define NO_MD_PROTOTYPES.
5545         (output_predicate_decls): Break out from output_epilogue.
5546         Iterate over the operands list.
5547         (output_operand_data): Break out from output_epilogue.  Emit
5548         just the operands list.
5549         (output_insn_data): Break out from output_epilogue.  Emit just
5550         the insn data.
5551         (output_epilogue): Remove.
5552         (output_get_insn_name): New.
5553         (constraints, op_n_alternatives, predicates, address_p): Die.
5554         (modes, strict_low, seen): Die.
5555         (scan_operands): Take new param `d' instead of writing to 
5556         seven global variables.
5557         (compare_operands): New.
5558         (place_operands): New.
5559         (validate_insn_alternatives): Update for struct data change.
5560         (gen_insn): Don't zero or copy 7 global arrays.  Update for
5561         scan_operands; call place_operands.
5562         (gen_peephole, gen_expand, gen_split): Likewise.
5563         (main): Update for new output routines.
5564
5565         * genattr.c (insn_name_ptr): Remove.
5566         (get_insn_name): New function.
5567         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
5568         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
5569         * genrecog.c: Likewise.
5570
5571         * alpha.md (adddi3): Make `pattern' array static.
5572
5573 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5574
5575         * config/c4x/c4x.h (c4x_rpts_cycles_string,
5576         c4x_cpu_version_string): Constify char *.
5577         * config/c4x/c4x.c (c4x_rpts_cycles_string,
5578         c4x_cpu_version_string): Likewise.
5579
5580 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
5581
5582         * tree.c (save_tree_status): Revert 10 Sep change.
5583         (restore_tree_status): Likewise.  Call obstack_free with NULL 
5584         before freeing the obstack proper.
5585
5586 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
5587
5588         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
5589
5590         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
5591         surrounding context.
5592
5593 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
5594
5595         * tree.c (type_hash_canon): Put all types in the hash-table, when
5596         GC'ing.
5597
5598 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
5599
5600         * recog.h (struct recog_data, recog_data): New.
5601         (recog_foo variables): Kill.
5602         * recog.c (recog_operand, recog_operand_loc): Kill.
5603         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
5604         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
5605         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
5606         (recog_data): Define.
5607         (extract_insn): Update all recog_foo references to use recog_data.
5608         (preprocess_constraints, constrain_operands): Likewise.
5609         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
5610         * genattrtab.c (main): Likewise.
5611         * genextract.c (main): Likewise.
5612         * genoutput.c: Likewise.
5613         * genrecog.c (write_subroutine, main): Likewise.
5614         * local-alloc.c (block_alloc): Likewise.
5615         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
5616         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
5617         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
5618         * reload.c (find_reloads, find_reloads_toplev): Likewise.
5619         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
5620         (reload_cse_simplify_operands): Likewise.
5621
5622         * arc/arc.c (arc_final_prescan_insn): Likewise.
5623         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
5624         * h8300/h8300.c (notice_update_cc): Likewise.
5625         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
5626         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
5627         * mn10200/mn10200.c (notice_update_cc): Likewise.
5628         * mn10300/mn10300.c (notice_update_cc): Likewise.
5629         * romp/romp.c (update_cc): Likewise.
5630         * sparc/sparc.c (check_pic): Likewise.
5631         * v850/v850.c (notice_update_cc): Likewise.
5632
5633         * genemit.c (main): Don't declare recog_operand.
5634
5635 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
5636
5637         * ggc.h (rtvec_def): Forward declare.
5638         (tree_node): Likewise.
5639         (ggc_root): Define.
5640         (roots): Declare.
5641         (ggc_set_mark_rtx): Add prototype.
5642         (ggc_set_mark_rtvec): Likewise.
5643         (ggc_set_mark_tree): Likewise.
5644         * ggc-simple.c (ggc_root): Don't define.
5645         (roots): Don't declare.
5646         (ggc_mark_rtx): Remove.
5647         (ggc_mark_rtvec): Likewise.
5648         (ggc_mark_tree): Likewise.
5649         (ggc_mark_varray): Likewise.
5650         (ggc_mark_tree_hash_table_entry): Likewise.
5651         (ggc_mark_tree_hash_table): Likewise.
5652         (ggc_set_mart_rtx): New function.
5653         (ggc_set_mark_rtvec): Likewise.
5654         (ggc_set_mark_tree): Likewise.
5655         (ggc_add_root): Remove.
5656         (ggc_add_rtx_root): Likewise.
5657         (ggc_remove_tree_root): Likewise.
5658         (ggc_add_string_root): Likewise.
5659         (ggc_add_tree_varray_root): Likewise.
5660         (ggc_add_tree_hash_table_root): Likewise.
5661         (ggc_del_root): Likewise.
5662         (ggc_mark_rtx_ptr): Likewise.
5663         (ggc_mark_tree_ptr): Likewise.
5664         (ggc_mark_string_ptr): Likewise.
5665         (ggc_mark_tree_varray_ptr): Likewise.
5666         (ggc_mark_tree_hash_table_ptr): Likewise.
5667         * ggc-common.c: New file.
5668         * Makefile.in (OBJS): Add ggc-common.o.
5669         (ggc-common.o): List dependencies.
5670
5671 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
5672
5673         * cppalloc.c (xstrdup): Use memcpy.
5674         * cpperror.c (cpp_print_containing_files): Don't use
5675         cpp_notice.
5676         * cpplib.c (conditional_skip): Set temp->lineno.
5677         (do_endif): Make error message less obscure.
5678         (if_directive_name): New function.
5679         (cpp_get_token [case EOF]): Unwind the if stack and generate
5680         error messages for each unterminated conditional in this file.
5681         (parse_string):  Do not behave differently if -traditional.
5682
5683 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
5684
5685         * builtins.c (expand_builtin_va_arg): Cope with an array-type
5686         va_list decomposing to pointer-type.
5687         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
5688         (rs6000_va_arg): Likewise.
5689
5690 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
5691
5692         * except.c (start_dynamic_handler): Compute size using
5693         STACK_SAVEAREA_MODE.
5694
5695 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5696
5697         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
5698         include directory headers.  Don't define strrchr.  Don't provide
5699         my_* replacement functions.  Prefer PTR over `pointer_type'.
5700         Don't prototype system functions.  Don't redefine getopt.
5701
5702         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
5703         safe_read, safe_write, save_pointers, restore_pointers,
5704         is_id_char, in_system_include_dir, directory_specified_p,
5705         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
5706         find_corresponding_lparen, referenced_file_is_newer,
5707         save_def_or_dec, munge_compile_params, gen_aux_info_file,
5708         process_aux_info_file, identify_lineno, check_source,
5709         seek_to_line, forward_to_next_token_char, output_bytes,
5710         output_string, output_up_to, other_variable_style_function,
5711         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
5712         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
5713         find_static_definition, connect_defs_and_decs, add_local_decl,
5714         add_global_decls, needs_to_be_converted, visit_each_hash_node,
5715         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
5716         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
5717         scan_for_missed_items, edit_file, string_list_cons): Add static
5718         prototypes.
5719         (standard_exec_prefix, target_machine, target_version,
5720         default_syscalls_dir, string_list, string_list_cons, find_file,
5721         do_cleaning): Constify a char*.
5722         (safe_read, safe_write): Use PTR, not a char*.
5723         (is_id_char): Take an int, not a char.
5724         (main): Add prototype.  Call return, not exit.
5725
5726 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
5727
5728         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
5729         when comparing types.
5730
5731 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
5732
5733         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
5734         (strength_reduce): Release the varrays from the no-bivs early exit.
5735
5736         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
5737         the loop over the registers.
5738
5739         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
5740         for a new obstack.
5741         (restore_tree_status): Check that instead when freeing the obstack.
5742
5743 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
5744
5745         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
5746         as pointers.
5747
5748 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5749
5750         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
5751         operand size modifiers.
5752
5753 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5754
5755         * c-common.c (c_common_nodes_and_builtins): Don't build
5756         va_list_type_node.
5757         * c-common.h (enum c_tree_index and related accesor macros): Remove
5758         everything now declared in tree.h.
5759         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
5760         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
5761         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
5762         (error_mark_node, void_type_node, char_type_node, integer_type_node,
5763         unsigned_type_node, ptr_type_node, va_list_type_node,
5764         integer_zero_node, null_pointer_node, integer_one_node): Delete.
5765         (init_decl_processing): Call build_common_tree_nodes and
5766         build_common_tree_nodes_2 instead of building their nodes here.
5767         Don't add roots for these nodes.
5768         * stor-layout.c (size_zero_node, size_one_node): Delete.
5769         (set_sizetype): Make a new node for bitsizetype each time.
5770         * tree.c (global_trees): New variable.
5771         (init_obstacks): Add a gc root for it.
5772         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
5773         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
5774         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
5775         (build_common_tree_nodes): New function.
5776         (fix_sizetype): New function.
5777         (build_common_tree_nodes_2): New function.
5778         * tree.h (enum tree_index): New.
5779         (global_trees): Declare.
5780         Add accessor macros for all nodes now moved to global_trees.
5781         Delete their declarations.
5782
5783 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
5784
5785         * c-decl.c (finish_function): When processing a nested function,
5786         push and pop GC context around rest_of_compilation.
5787
5788 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
5789
5790         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
5791         Default ix86_arch to PROCESSOR_I386.
5792         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
5793         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
5794         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
5795         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
5796         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
5797         (EXTRA_SPECS): Remove deleted specs.
5798
5799 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
5800
5801         * function.c (assign_stack_local_1): Allocate from
5802         function->x_frame_offset, not frame_offset.
5803
5804 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
5805
5806         * ggc.h (lang_cleanup_tree): Remove.
5807         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
5808         * ggc-callbacks.c (lang_cleanup_tree): Remove.
5809
5810         * c-decl.c (finish_struct): Use ggc_alloc to allocate
5811         TYPE_LANG_SPECIFIC when garbage collecting.
5812         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
5813         (lang_cleanup_tree): Remove.
5814
5815 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
5816
5817         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
5818         * crtstuff.c: Not here.
5819         * dwarf2out.c: Or here.
5820         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
5821         info.
5822
5823 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
5824
5825         * function.h (free_after_compilation): Remove decl parameter.
5826         (free_varasm_status0: Likewise.
5827         (free_emit_status): Likewise.
5828         (free_stmt_status): Likewise.
5829         (free_after_compilation): Likewise.
5830         (init_lang_status): New variable.
5831         (free_lang_status): Likewise.
5832         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
5833         * function.c (init_lang_status): New variable.
5834         (free_lang_status): Likewise.
5835         (push_function_context_to): Don't set function::decl here.
5836         (free_after_copmilation): Make decl parameter implicit.  Call
5837         free_lang_status if defined.
5838         (prepare_function_start): Call init_lang_status if defined.
5839         (init_function_start): Set function::decl here.
5840         * profile.c (output_func_start_profiler): Don't call pushdecl
5841         until we've actually started the function.
5842         * stmt.c (free_stmt_status): Make decl parameter implicit.
5843         * toplev.c (rest_of_compilation): Don't pass decl to
5844         free_after_compilation.
5845         * varasm.c (free_varasm_status): Likewise.
5846
5847 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
5848
5849         * except.c (call_get_eh_context): Add root when allocating static
5850         tree variable.
5851
5852 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
5853
5854         * arm.c: Include "ggc.h".
5855         (arm_add_gc_roots): New function.
5856         (arm_override_options): Call it.
5857         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
5858
5859         * arm.md (define_asm_attributes): Add a pool_range attribute.
5860
5861 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
5862
5863         * extend.texi (Volatiles): New node.
5864
5865 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
5866
5867         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
5868         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
5869         (struct ggc_any): Replace `mark' with `magic_mark'.
5870         (ggc_alloc_string): Use memcpy, not bcopy.
5871         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
5872         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
5873         (ggc_free_any): New.
5874         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
5875         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
5876         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
5877         Use IS_MARKED. Use ggc_free_any.
5878
5879 1999-09-09  Scott Bambrough <scottb@netwinder.org>
5880
5881         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
5882
5883 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
5884
5885         * toplev.c (main): Always init_ggc.
5886
5887 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
5888
5889         * except.c (find_all_handler_type_matches): Free the list if
5890         we found no matches.
5891
5892         * combine.c (SUBST): Break out to a real function do_SUBST.
5893         (SUBST_INT): Likewise.
5894         * gcse.c (free_pre_mem): Free `temp_bitmap'.
5895         (pre_insert): Free `inserted'.
5896         * loop.c (basic_induction_var): Always set `location'.
5897
5898         * function.c (expand_function_end): Add initial_trampoline as a root.
5899         * rtl.h (init_varasm_once): Declare.
5900         * toplev.c (compile_file): Call it.
5901         * ggc-simple.c (ggc_mark_string_ptr): New.
5902         (ggc_add_string_root): New.
5903         (ggc_collect): Disable collection avoidance temporarily.
5904         * ggc.h (ggc_add_string_root): Declare.
5905         * except.c (create_rethrow_ref): Use ggc_alloc_string.
5906         * optabs.c (init_libfuncs): Likewise.
5907         * varasm.c (named_section): Use ggc_alloc_string.
5908         (make_function_rtl): Likewise.
5909         (make_decl_rtl): Likewise.
5910         (assemble_static_space): Likewise.
5911         (assemble_trampoline_template): Likewise.
5912         (output_constant_def): Likewise.
5913         (force_const_mem): Likewise.
5914         (mark_const_hash_entry): New.
5915         (mark_pool_sym_hash_table): New.
5916         (mark_varasm_state): Use it.
5917         (init_varasm_once): New.
5918
5919         * expr.h (init_one_libfunc): Declare.
5920         * optabs.c (init_one_libfunc): New.
5921         (init_optabs): Use it.
5922         * config/gofast.h: Likewise.
5923         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
5924         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
5925
5926 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
5927
5928         * Makefile.in (cppexp.o): Depend on cpphash.h.
5929         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
5930         Include cpphash.h.
5931         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
5932         * cpplib.c (do_define): Generalise to handle poisoned definitions,
5933         redefining poisoned identifiers, etc.
5934         (do_undef): Don't allow poisoned identifiers to be undefined.
5935         (do_pragma): Add #pragma poison.
5936         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
5937
5938         * cccp.c: Add T_POISON node type.
5939         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
5940         poisoned xxx.
5941         (do_define): Generalise to handle poisoned definitions,
5942         redefining poisoned identifiers, etc.
5943         (do_undef): Don't allow poisoned identifiers to be undefined.
5944         (do_pragma): Add #pragma poison.
5945         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
5946
5947         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
5948         * c-pragma.h: Add ps_poison state.  We now always have generic
5949         pragmas.
5950
5951 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
5952
5953         * ggc.h (ggc_alloc): New function.
5954         (ggc_mark): Likewise.
5955         * ggc-simple.c (ggc_any): New structure.
5956         (ggc_status): Add anys.
5957         (n_anys_collected): New variable.
5958         (ggc_alloc): Define.
5959         (ggc_mark): Likewise.
5960         (ggc_collect): Collect the anys.
5961
5962 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5963
5964         * c-decl.c (mark_binding_level): Make static to match prototype.
5965
5966 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
5967
5968         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
5969
5970 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
5971
5972         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
5973         will use into account.  Expand the max width to 5.
5974         * rtl.c: Likewise.
5975
5976 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
5977
5978         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
5979         for the rtx length.
5980
5981 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
5982
5983         * alpha.md (call value patterns): Remove the result predicates.
5984
5985 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
5986
5987         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
5988         last change.
5989
5990 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5991
5992         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
5993         changed from extern char *, to extern PTR.  Also fix typo in
5994         NEED_DECLARATION_REALLOC test.
5995
5996         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
5997
5998 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5999
6000         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
6001         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
6002         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
6003         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
6004
6005         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
6006
6007         * cccp.c (pcfinclude): Likewise.
6008
6009         * global.c (allocno_compare): Likewise.
6010
6011         * haifa-sched.c (rank_for_schedule): Likewise.
6012
6013         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
6014
6015         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
6016
6017         * stupid.c (stupid_reg_compare): Likewise.
6018
6019         * tree.c (_obstack_allocated_p): Likewise.
6020
6021         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
6022
6023 1999-09-08  Bruce Korb  autogen@linuxbox.com
6024
6025         * gcc/ch/Makefile.in: Give the hapless gperf user a hint about
6026         why "gperf -F" fails.
6027         * gcc/cp/Makefile.in: ditto
6028         * gcc/Makefile.in: ditto
6029         * gcc/java/Makefile.in: ditto
6030
6031 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
6032
6033         * lists.c: Include ggc.h.
6034         (zap_lists): New.
6035         (init_EXPR_INSN_LIST_cache): Install it.
6036
6037         * ggc-simple.c (init_ggc): Absorb the old init.
6038         (ggc_push_context): Use xcalloc.
6039         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
6040         (ggc_collect): Add [rvts] tags to the collection stats.
6041
6042 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
6043
6044         * cccp.c (main): Fix handling of -include and -imacros options.
6045
6046 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
6047
6048         * cpplib.c (cpp_push_buffer): Fix order of arguments.
6049
6050 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
6051
6052         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
6053         genrtl.c.
6054
6055 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
6056
6057         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
6058         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
6059         and SET_DEST. Update comment.
6060
6061 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6062
6063         * config/c4x/c4x.c: Include ggc.h.
6064         (c4x_add_gc_roots): New function.
6065         (c4x_override_options): Call c4x_add_gc_roots.
6066
6067 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
6068
6069         * defaults.h (TARGET_ESC): Move ...
6070         * system.h: ... here, where Linas had it in the first place.  Silly me.
6071
6072 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
6073
6074         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
6075         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
6076         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
6077         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
6078         * defaults.h (TARGET_ESC): Add default.
6079
6080 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
6081
6082         * configure.in: add i370-*-openedition, i370-*-mvs and
6083         i370-*-linux targets
6084
6085 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
6086
6087         * dsp16xxx.c: Include ggc.h
6088         (override_options): Mark GC roots.
6089         * mn10200.c: Include ggc.h.
6090         (asm_file_start): Mark GC roots.
6091         * tahoe.c: Include ggc.h.
6092         (extensible_operand): Mark GC roots.
6093
6094 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
6095
6096         * README: Add section discussing status of ELF ABI.
6097         * i370.c: Fix misc spelling mistakes.
6098         (i370_label_scan): Updated notes, exception handling.
6099         (i370_function_prolog): Simplify ELF stack handling.
6100         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
6101         (STACK_GROWS_DOWNWARD): ELF stack grows down.
6102         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
6103         * i370.md: (movdi): Add notes.
6104         (floatsidf2): Use stack not rtca for scratch float area.
6105         (iorsi3): Correct operand constraints.
6106         * x-oe: Restore TAROUTOPTS which are used by pax.
6107
6108 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
6109
6110         * rs6000.c: Include ggc.h.
6111         (rs6000_add_gc_roots): New function.
6112         (override_options): Call it.
6113
6114 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
6115
6116         * alpha.h (alpha_compare): New.
6117         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
6118         * alpha.c: Likewise for the definitions.
6119         (alpha_emit_conditional_branch): Update for alpha_compare.
6120         (alpha_emit_conditional_move): Likewise.
6121         * alpha.md (cmpdf, cmpdi): Likewise.
6122         (setcc patterns): Likewise.  Zero alpha_compare after use.
6123         (sne): Optimize (x != 0) into (0U < x).
6124
6125 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
6126
6127         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
6128         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
6129         (INIT_EXPANDERS): Remove.
6130         * alpha.c: Include ggc.h.
6131         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
6132         (alpha_init_machine_status, alpha_mark_machine_status): New.
6133         (override_options): Install them.
6134         (struct machine_function): Moved to alpha.h.
6135         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
6136         (alpha_init_expanders): Remove.
6137         (alpha_return_addr): Adjust to use current_function->machine.
6138         (alpha_ra_ever_killed): Likewise.
6139         (alpha_expand_epilogue): Likewise.
6140         * alpha.md (eh_epilogue): Likewise.
6141
6142 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
6143                           Melissa O'Neill  <oneill@cs.sfu.ca>
6144                           Geoffrey Keating  <geoffk@cygnus.com>
6145
6146         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
6147         call-used registers (call-saved registers must still be contiguous
6148         and end with r31, of course).
6149
6150 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
6151
6152         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
6153         (self_promoting_type_p): Delete.
6154         (self_promoting_args_p): Move ...
6155         * c-common.c: ... here.
6156         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
6157         (simple_type_promotes_to): New.
6158         * builtins.c (lang_type_promotes_to): New.
6159         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
6160         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
6161         * c-common.h: ... here.
6162         (self_promoting_args_p, simple_type_promotes_to): Declare.
6163         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
6164         (grokdeclarator): Likewise.
6165         * tree.h (lang_type_promotes_to): Declare.
6166
6167 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
6168
6169         Add some machine-dependent GC roots.
6170         * sparc.c: Include ggc.h.
6171         (sparc_add_gc_roots): New function.
6172         (mark_ultrasparc_pipeline_state): Likewise.
6173         (override_options): Call sparc_add_gc_roots.
6174         * pa.c: Include ggc.h.
6175         (pa_add_gc_roots): New function.
6176         (mark_deferred_plabels): Likewise.
6177         (override_options): Call pa_add_gc_roots.
6178         * mips.c: Include ggc.h.
6179         (mips_add_gc_roots): New function.
6180         (override_options): Use it.
6181
6182 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6183
6184         * cpperror.c (cpp_file_line_for_message): Constify a char*.
6185
6186         * cppexp.c (parse_number, parse_charconst, cpp_lex,
6187         cpp_parse_expr): Add static prototypes.
6188         (parse_charconst): Don't cast away const-ness.
6189         (token): Constify a char*.
6190
6191         * cppfiles.c (file_name_list, include_hash, find_include_file,
6192         finclude, initialize_input_buffer): Constify a char*.
6193         (file_cleanup, find_position): Add static prototypes.
6194
6195         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
6196         collect_expansion): Add static prototypes.
6197         (cpp_install, create_definition, monthnames): Constify a char*.
6198
6199         * cpphash.h (cpp_install): Likewise.
6200
6201         * cppinit.c (known_suffixes, default_include,
6202         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
6203         (base_name, dump_special_to_buffer, initialize_dependency_output):
6204         Add static prototypes.
6205
6206         * cpplib.c (my_strerror): Constify a char*.
6207         (null_underflow, null_cleanup, skip_comment, copy_comment,
6208         copy_rest_of_line, handle_directive, pass_thru_directive,
6209         get_directive_token, read_line_number, cpp_print_file_and_line,
6210         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
6211         v_cpp_warning_with_line, detect_if_not_defined,
6212         consider_directive_while_skipping): Add static prototypes.
6213         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
6214         cpp_pedwarn_with_file_and_line): Constify a char*.
6215
6216         * cpplib.h (cpp_options, include_hash, progname, definition,
6217         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
6218         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
6219         find_include_file, deps_output, include_hash): Constify a char*.
6220
6221         * cppmain.c (progname): Constify.
6222         (main): Add prototype.  Use return, not exit.
6223
6224         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
6225         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
6226         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
6227         check_protection): Add static prototype.
6228         (xfree): Remove.
6229         (progname, recognized_macrom, recognized_extern): Constify a char*.
6230         (main): Add prototype.
6231
6232         * gen-protos.c (progname): Constify a char*.
6233
6234 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
6235
6236         * emit-rtl.c (free_emit_status): Take decl as a parameter.
6237         (init_emit_once): Add more GC roots.
6238         * except.c (mark_func_eh_entry): New function.
6239         (mark_eh_node): Mark false_label and rethrow_label.
6240         (init_eh): Add more GC roots.
6241         * function.c (free_after_compilation): Take decl as a paramter.
6242         Call free_stmt_status.
6243         (mark_function_state): Don't assume x_parm_reg_stack_loc is
6244         non-NULL.
6245         * function.h (free_after_compilation): Change prototype.
6246         (free_varasm_status): Likewise.
6247         (free_emit_status): Likewise.
6248         (free_stmt_status): New function.
6249         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
6250         Remove, replacing with ...
6251         (ggc_status): New structure.
6252         (ggc_chain): New variable.
6253         (init_gcc): Define.
6254         (ggc_push_context): New function.
6255         (ggc_pop_context): Likewise.
6256         (ggc_alloc_rtx): Adjust for use of ggc_chain.
6257         (ggc_alloc_rtvec): Likewise.
6258         (ggc_alloc_tree): Likewise.
6259         (ggc_alloc_string): Likewise.
6260         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
6261         (ggc_mark_tree): Give language-dependent code a chance to mark
6262         `x' nodes.
6263         (ggc_mark_tree_varray): Handle empty arrays.
6264         (ggc_collect): Adjust for use of ggc_chain.  Clear
6265         bytes_alloced_since_last_gc.
6266         * ggc.h (ggc_pop_context): New function.
6267         (ggc_push_context): Likewise.
6268         * print-tree.c (print_node): Don't print obstacks when GC'ing.
6269         * stmt.c (free_stmt_status): New function.
6270         (init_stmt_for_function): Clear last_expr_value.
6271         * toplev.c (rest_of_compilation): Always call free_after_compilation.
6272         Conditionalize call to ggc_collect.
6273         (main): Call init_ggc.
6274         * tree.c (push_obstacks): Do the push, even when GC'ing.
6275         (push_obstacks_nochange): Likewise.
6276         (pop_obstacks): Liekwise.
6277         * varasm.c (free_varasm_status): Take decl as a parameter.
6278
6279 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
6280
6281         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
6282         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
6283         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
6284         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
6285
6286 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
6287
6288         * pa/x-pa-mpeix: New file for the MPE port.
6289
6290         * pa/quadlib.asm: New file for long double support.
6291
6292         * configure.in: Add hppa1.0-*-mpeix for MPE port.
6293         * configure: Rebuilt.
6294
6295 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
6296
6297         * final.c (shorten_branches): Fix last change.
6298
6299 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
6300
6301         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
6302
6303 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
6304
6305         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
6306         details.
6307
6308 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6309
6310         * c-aux-info.c (concat): Don't define.
6311
6312         * cccp.c (my_strerror): Likewise.  All callers changed to use
6313         xstrerror instead.
6314         (do_include): Call xstrdup, not xmalloc/strcpy.
6315         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
6316         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
6317
6318         * collect2.c (my_strsignal): Likewise.  All callers changed to use
6319         strsignal instead.
6320         (locatelib): Call xstrdup, not xmalloc/strcpy.
6321
6322         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
6323
6324         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
6325
6326         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
6327
6328         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
6329
6330         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
6331
6332         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
6333
6334         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
6335         malloc/realloc.
6336         (find_all_handler_type_matches): Likewise.  Don't check return
6337         value.
6338         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
6339         xmalloc, not malloc.
6340         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
6341
6342         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
6343         (init_spec): Call xcalloc, not xmalloc/bzero.
6344         (set_spec): Call xstrdup, not save_string.
6345         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
6346         (find_a_file): Call xstrdup, not xmalloc/strcpy.
6347         (process_command): Call xstrdup, not save_string.
6348         (main): Call xcalloc, not xmalloc/bzero.
6349
6350         * gcov.c (xmalloc): Don't define.
6351         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
6352         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
6353         (output_data): Call xcalloc, not xmalloc/bzero.
6354
6355         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
6356
6357         * mips-tdump.c (xmalloc): Don't define.
6358         (print_symbol): Call xmalloc, not malloc.
6359         (read_tfile): Call xcalloc, not calloc.
6360
6361         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
6362         Don't define.  All callers of xfree/my_strsignal changed to use
6363         free/strsignal instead.
6364         (allocate_cluster): Call xcalloc, not calloc.
6365
6366         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
6367         Fix memory leak, free allocated memory.
6368
6369         * prefix.c (translate_name): Call xstrdup, not save_string.
6370         (update_path): Likewise.
6371
6372         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
6373
6374         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
6375         Don't define.  Callers of xfree/savestring2 changed to use
6376         free/concat instead.
6377
6378         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
6379         (init_elim_table): Likewise.
6380
6381         * resource.c (init_resource_info): Likewise.
6382
6383         * stupid.c (stupid_life_analysis): Likewise.
6384
6385         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
6386         (open_dump_file): Call concat, not xmalloc/strcpy/...
6387         (clean_dump_file): Likewise.
6388         (compile_file): Call xstrdup, not xmalloc/strcpy.
6389
6390 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
6391
6392         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
6393         * v850.c (v850_va_arg): New.
6394
6395 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6396
6397         * haifa-sched.c: Tidy comments.
6398
6399 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6400
6401         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
6402         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
6403         $(out_object_file)): Depend on ggc.h.
6404         * c-common.c: Include "ggc.h".
6405         (combine_strings): If doing GC, use ggc_alloc_string.
6406         * c-decl.c: Include "ggc.h".
6407         (ggc_p): Define with value 0.
6408         (mark_binding_level): New function.
6409         (init_decl_processing): Add GC roots.
6410         (mark_c_function_context): New function.
6411         (lang_mark_false_label_stack): New function.
6412         (lang_mark_tree): New function.
6413         (lang_cleanup_tree): New function.
6414         * c-lang.c: Include "ggc.h".
6415         (lang_init): Call c_parse_init.
6416         * c-lex.c: Include "ggc.h".
6417         (check_linenum): If doing GC, don't copy filenames to permanent
6418         obstack.
6419         * c-parse.in: Include "ggc.h".
6420         (c_parse_init): New function.
6421         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
6422         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
6423
6424         * except.c (mark_eh_state): Mark more state.
6425         * function.c (mark_function_state): Likewise.
6426         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
6427         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
6428         * toplev.c (mark_file_stack): New function.
6429         (compile_file): If doing GC, use ggc_alloc_string on input filename.
6430         (main): Add root for input_file_stack.
6431
6432         * i386.c: Include "ggc.h".
6433         (ix86_mark_machine_status): New function.
6434         (override_options): Set mark_machine_status.
6435
6436 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6437
6438         * tree.c (copy_node): Copy node contents also if doing GC.
6439
6440 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
6441
6442         * collect2.c (scan_libraries): Fix double-thinko :-).
6443
6444 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
6445
6446         * collect2.c (scan_libraries): Fix thinko.
6447
6448         * cse.c (delete_trivially_dead_insns): Do not skip the last
6449         insn if it is a real insn.
6450
6451 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
6452
6453         * Makefile.in (ggc-simple.o): Depend on hash.h.
6454         * ggc.h (ggc_add_tree_hash_table_root): Declare.
6455         (ggc_mark_tree_varray): Likewise.
6456         (ggc_mark_tree_hash_table): Likewise.
6457         * ggc-simple.c: Include hash.h.
6458         (ggc_mark_tree_hash_table_ptr): New function.
6459         (ggc_mark_tree_hash_table_entry): Likewise.
6460         (ggc_mark_tree_hash_table): Likewise.
6461         (ggc_add_tree_hash_table_root): Likewise.
6462         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
6463         rtx, when defining fields.
6464
6465 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6466
6467         * profile.c (output_func_start_profiler): Remove apparently
6468         nonsensical call to start_sequence.
6469
6470 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
6471
6472         * clipper/clipper.c (clipper_va_start): Fix typos.
6473
6474         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
6475         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
6476         (spur_va_arg): New stub.
6477
6478         * configure.in: Comment out pyramid.
6479
6480 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
6481
6482         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
6483         don't conflict with the bits that win32, cygwin, and dgux
6484         defines.
6485
6486 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
6487                           Bernd Schmidt <bernds@cygnus.co.uk>
6488
6489         * integrate.c (function_cannot_inline_p): Do not inline
6490         functions with forced labels.
6491
6492 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
6493                           Bernd Schmidt <bernds@cygnus.co.uk>
6494                           Mark Mitchell  <mark@codesourcery.com>
6495
6496         * Makefile.in (ggc-simple.o): Depend on varray.h.
6497         (rtl.o): Depend on ggc.h.
6498         (genattrtab.o): Depend on ggc.h.
6499         (print-tree.o): Likewise.
6500         (fold-const.o): Likewise.
6501         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
6502         (make_insn_raw): Don't cache insns when GC'ing.
6503         (emit_insn_before): Likewise.
6504         (emit_insn_after): Likewise.
6505         (emit_insn): Likewise.
6506         (start_sequence): Use xmalloc to allocate the sequence_stack.
6507         (end_sequence): Add free to free it.
6508         (gen_sequence): Don't cache insns when GC'ing.
6509         (clear_emit_caches): Don't use sequence_element_free_list.
6510         (init_emit): Use xcalloc, not xmalloc+bzero.
6511         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
6512         * function.c (pop_function_context_from): Use free to free the
6513         fixup_var_refs_queue.
6514         (put_reg_into_stack): Allocate it with xmalloc.
6515         * genattrtab.c: Include ggc.h.
6516         (operate_exp): Don't use obstack_free when GC'ing.
6517         (simplify_cond): Likewise.
6518         (simplify_text_exp): Likewise.
6519         (optimize_attrs): Likewise.
6520         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
6521         GC'ing.
6522         (gencode): Generate a #include for ggc.h.
6523         * ggc-callbacks.c (ggc_p): Define it to zero.
6524         * ggc-none.c (ggc_p): Likewise.
6525         * ggc-simple.c: Include varray.h.
6526         (ggc_mark_tree_varray): New function.
6527         (ggc_add_tree_varray_root): Likewise.
6528         (ggc_mark_tree_varray_ptr): Likewise.
6529         * ggc.h (ggc_p): Declare.
6530         (varray_head_tag): Likewise.
6531         (ggc_add_tree_varray_root): Declare.
6532         * print-tree.c (print_node): Don't check for TREE_PERMANENT
6533         inconsistencies when GC'ing.
6534         * rtl.c: Include ggc.h.
6535         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
6536         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
6537         (rtx_free): Don't call obstack_free when GC'ing.
6538         * toplev.c (rest_of_compilation): Call ggc_collect after every
6539         pass, if GC'ing.
6540         * tree.c (push_obstacks): Do nothing, if GC'ing.
6541         (pop_obstacks_nochange): Likewise.
6542         (pop_obstacks): Likewise.
6543         (make_node): Use ggc_alloc_tree when GC'ing.
6544         (copy_node): Likewise.
6545         (get_identifier): Use ggc_alloc_string when GC'ing.
6546         (build_string): Likewise.
6547         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
6548         (tree_cons): Likewise.
6549         (build1): Likewise.
6550         (type_hash_canon): Don't call obstack_free when GC'ing.
6551
6552 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
6553
6554         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
6555         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
6556
6557 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
6558                           Bernd Schmidt <bernds@cygnus.co.uk>
6559                           Mark Mitchell  <mark@codesourcery.com>
6560
6561         * Makefile.in (stor-layout.o): Depend on ggc.h.
6562         (expr.o): Depend on ggc.h.
6563         (profile.o): Depend on ggc.h.
6564         (stor-layout.o): Depend on ggc.h.
6565         * emit-rtl.c (init_emit_once): Add gc roots.
6566         * expr.c: Include ggc.h.
6567         (emit_block_move): Add gc roots.
6568         (clear_storage): Likewise.
6569         * expr.h (init_stor_layout_once): New function.
6570         * profile.c: Include ggc.h.
6571         (init_arc_profiler): profiler_label is a root.
6572         * scan.c (make_sstring_space): Trust xrealloc to function
6573         correctly with first parameter NULL.
6574         * stor-layout.c: Include ggc.h.
6575         (set_sizetype): Add gc root.
6576         (init_stor_layout_once): New function.
6577         * toplev.c (compile_file): Call it.
6578
6579 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
6580                           Bernd Schmidt <bernds@cygnus.co.uk>
6581                           Mark Mitchell  <mark@codesourcery.com>
6582
6583         * Makefile.in (tree.o): Depend on ggc.h.
6584         (varasm.o): Likewise.
6585         (function.o): Likewise.
6586         (stmt.o): Likewise.
6587         (except.o): Likewise.
6588         (optabs.o): Likewise.
6589         (emit-rtl.o): Likewise.
6590         * emit-rtl.c: Include ggc.h.
6591         (sequence_element_free_list): Remove, and all references.
6592         (mark_sequence): New functions.
6593         (mark_emit_state): New function.
6594         * except.c: Include ggc.h.
6595         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
6596         (mark_tree_label_node): New functions.
6597         (mark_eh_state): New function.
6598         * function.c: Include ggc.h.
6599         (mark_temp_slot, mark_function_chain): New functions.
6600         (mark_function_state): New function.
6601         (init_function_once): New function.
6602         * function.h (init_function_once): New function.
6603         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
6604         * ggc.h (label_node): Declare.
6605         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
6606         (lang_mark_false_label_stack): New function.
6607         (mark_temp_slot): Remove declaration.
6608         (mark_function_chain): Likewise.
6609         (mark_eh_state): Adjust prototype.
6610         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
6611         Likewise.
6612         * optabs.c: Include ggc.h.
6613         (mark_optab): New function.
6614         (init_optabs): Add gc roots.
6615         * stmt.c: Include ggc.h.
6616         (mark_cond_nesting, mark_loop_nesting): New functions.
6617         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
6618         (mark_stmt_state): New function.
6619         * toplev.c (compile_file): Call init_function_once.
6620         * tree.c: Include ggc.h.
6621         (type_hash): Move declaration earlier in file.
6622         (TYPE_HASH_SIZE, type_hash_table): Likewise.
6623         (init_obstacks): Add gc roots.
6624         (mark_type_hash): New function.
6625         * varasm.c: Include ggc.h.
6626         (mark_pool_constant): New function.
6627         (mark_varasm_state): New function.
6628
6629 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6630
6631         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
6632
6633 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
6634
6635         * c-decl.c (struct language_function): Renamed from struct c_function.
6636         Delete elt NEXT.
6637         (c_function_chain): Delete.
6638         (push_c_function_context): New arg F.  Don't warn about nested
6639         functions here.  Fill LANGUAGE elt of F.  Delete code to update
6640         c_function_chain.  Don't call push_function_context.
6641         (pop_c_function_context): New arg F.  Restore from there instead of
6642         from c_function_chain.  Don't call pop_function_context.  Clear out
6643         LANGUAGE field of F when done.
6644         * c-lang.c: Include "function.h"
6645         (lang_init): Initialize save_lang_status and restore_lang_status.
6646         * c-parse.in (nested_function, nested_function_notype): Warn about
6647         nested functions.  Call push_function_context/pop_function_context
6648         instead of the _c_ variants.
6649         * c-tree.h (push_c_function_context, pop_c_function_context): Update
6650         prototype.
6651         * Makefile.in (c-lang.o): Update dependencies.
6652
6653         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
6654         regno_pointer_flag, regno_pointer_align.
6655         (gen_reg_rtx): Use xrealloc to enlarge them.
6656         (free_emit_status): New function.
6657         * function.c (mark_machine_status, mark_lang_status): New variables.
6658         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
6659         in some bits from assign_stack_local.  All callers changed to use new
6660         name.
6661         (assign_stack_local): Just call assign_stack_local_1.
6662         (free_after_compilation): New function.
6663         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
6664         (trampoline_address): Likewise.
6665         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
6666         (prepare_function_start): Explicitly clear some more variables.
6667         * function.h (struct function): New elt can_garbage_collect.
6668         (mark_machine_status, mark_lang_status): Declare variables.
6669         (free_after_compilation, free_emit_status, free_varasm_status,
6670         init_varasm_status): Declare functions.
6671         * toplev.c (rest_of_compilation): Call free_after_compilation when
6672         done with the current function.
6673         * varasm.c (free_varasm_status): New function.
6674
6675 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
6676
6677         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
6678         (EXPAND_BUILTIN_VA_ARG): Define.
6679         * sparc.c (sparc_va_start): New.
6680         (sparc_va_arg): New.
6681
6682 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6683
6684         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
6685
6686 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6687
6688         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
6689
6690 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
6691
6692         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
6693         (OBJS): Add $(GGC).
6694         (ggc-callbacks.o): New target.
6695         * ggc-callbacks.c: New file.
6696
6697 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6698
6699         * expr.h: Collapse individual optab and libfunc vars to arrays.
6700         (optab_index, libfunc_index): New enumerations.
6701         (optab_table, libfunc_table): New arrays.
6702         Add accessor macros for both.
6703
6704         * optabs.c (optab_table, libfunc_table): New.
6705         Delete declarations for individual optab and libfunc vars.
6706
6707 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
6708
6709         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
6710
6711 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
6712
6713         * Makefile.in (GGC, GGC_LIB): New.
6714         (HOST_RTL): Include ggc-none.o.
6715         (ggc-simple.o): New target.
6716         (ggc-none.o): Likewise.
6717         * tree.h (tree_common): Add gc_mark.
6718         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
6719         (struct rtvec_def): Add gc_mark.
6720         * emit-rtl.c (global_rtl): Update static initializers to contain
6721         enough initializers.
6722         * ggc.h, ggc-none.c, ggc-simple.c: New files.
6723         * toplev.c (gc_time): New variable.
6724         (all_time): New variable.
6725         (compile_file): Print gc time.
6726         (print_time): Calculate percentage of the whole.
6727
6728 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
6729
6730         Change obstack memory management and varasm constant pool handling so
6731         that nested functions are treated like any other functions.
6732         * function.c (init_machine_status): New variable.
6733         (push_function_context_to): Set contains_functions for the outer
6734         function.  Don't call save_varasm_status.
6735         (pop_function_context_from): Don't call restore_varasm_status.  Don't
6736         set current_function_contains_functions.
6737         (prepare_function_start): Call init_varasm_status rather than
6738         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
6739         is non-null.
6740         * function.h (struct function) Add field varasm.  Delete fields
6741         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
6742         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
6743         (init_machine_status): Declare.
6744         (save_varasm_status, restore_varasm_status): Delete declarations.
6745         (save_tree_status, restore_tree_status): Delete last argument.
6746         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
6747         code.  All callers changed.
6748         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
6749         save_constants_in_decl_trees, restore_constants, save_constants,
6750         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
6751         functions.
6752         (inlining): New variable.
6753         (reg_map, label_map, insn_map, orig_asm_operands_vector,
6754         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
6755         variables.
6756         (save_for_inline_nocopy): Don't save constants.
6757         Don't set inl_emit field in current_function.
6758         (expand_inline_function): Use emit field, not inl_emit, of the inlined
6759         function.  Set new variable inlining before
6760         calling copy_rtx_and_substitute.
6761         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
6762         constant pool references if inlining is nonzero.
6763         Delete ADDRESS and (most of the) CONST cases.
6764         (output_inline_function): Save and restore current_function/
6765         current_function_decl.  Delete restore_constants code.  Don't call
6766         init_const_rtx_hash_table.
6767         * output.h (init_const_rtx_hash_table): Don't declare.
6768         * rtl.h (struct function): Declare.
6769         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
6770         * toplev.c (rest_of_compilation): Don't treat nested functions or
6771         functions containing them specially.  Delete all code to deal with
6772         save_for_inline_copying.
6773         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
6774         inline_obstacks): Delete variables.
6775         (save_tree_status): Lose arg CONTEXT.  All callers changed.
6776         Simply allocate a new function_maybepermanent_obstack for the new
6777         function, delete all the special cases.
6778         Don't save inline_obstacks.
6779         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
6780         Delete special handling for function_maybepermanent_obstack; simply
6781         free it if empty.
6782         Don't restore inline_obstacks.
6783         (permanent_allocation):  Delete code that frees inline_obstacks.
6784         (print_inline_obstack_statistics): Delete function.
6785         (dump_tree_statistics): Don't call it.
6786         * varasm.c (struct varasm_status): New.
6787         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
6788         last_pool, pool_offset, const_double_chain): Delete global
6789         variables, replace with accessor macros.
6790         (immed_double_const): Don't walk const_double_chain outside a
6791         function, but don't treat nested functions specially anymore.
6792         (immed_real_const_1): Likewise.
6793         (clear_const_double_mem): Don't treat nested functions specially.
6794         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
6795         (save_varasm_status, restore_varasm_status): Delete functions.
6796         (init_varasm_status): New function.
6797         (force_const_mem): Don't treat nested functions specially.
6798         (find_pool_constant): Accept new arg F, search for constants in
6799         that function's pool rather than the current one.  All callers
6800         changed.
6801         (get_pool_constant_for_function, get_pool_mode_for_function): New
6802         functions.
6803
6804         * i386.c (init_386_machine_status): New function, mostly from
6805         clear_386_stack_locals.
6806         (struct machine_functions): Rename element names to avoid name
6807         clashes.
6808         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
6809         macros, replacing global variables.
6810         (clear_386_stack_locals, save_386_machine_status,
6811         restore_386_machine_status): Delete functions.
6812         (override_options): Initialize init_machine_status.
6813         * i386.h (INIT_EXPANDERS): Delete macro.
6814         (save_386_machine_status, restore_386_machine_status,
6815         clear_386_stack_locals): Delete declarations.
6816
6817 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6818
6819         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
6820         (doloop_begin):  Simplify pattern and use emit_jump_insn.
6821         (doloop_end): Simplify pattern, switch operand order,
6822         and use emit_jump_insn.
6823
6824 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6825
6826         * function.h (struct function): Add new element LANGUAGE.
6827         (save_lang_status): Declare new variable.
6828         (restore_lang_status): Likewise.
6829         * function.c (save_lang_status): Define.
6830         (restore_lang_status): Likewise.
6831         (push_function_context_to): Call language-specific save function.
6832         (pop_function_context_from): Call language-specific restore function.
6833
6834 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
6835
6836         * i386.md (movsf_1): Check REG_P before use of REGNO.
6837         (movdf_1): Likewise.
6838         (movxf_1): Likewise.
6839         (extendsfdf2): Likewise.
6840         (extendsfxf2): Likewise.
6841         (extenddfxf2): Likewise.
6842
6843 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6844
6845         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
6846         constants into memory.
6847         (c4x_shiftable_constant): New function.
6848         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
6849         (c4x_shiftable_constant): Declare.
6850         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
6851         ashlqi3_noclobber): Add new patterns and associated splitters.
6852
6853 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
6854
6855         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
6856         * dwarf2out.c (dwarf2out_frame_init): Likewise.
6857         * final.c (shorten_branches): Likewise.
6858         * global.c (global_alloc): Likewise.
6859         * haifa-sched.c (build_control_flow): Likewise.
6860         * stmt.c (check_for_full_enumeration_handling): Likewise.
6861         (estimate_case_costs): Likewise.
6862
6863 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
6864
6865         * rtl.h (RTL_CHECKC2): Fix typo in last change.
6866
6867 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
6868
6869         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
6870         (recompute_reg_usage): Likewise.
6871         * rtlanal.c (find_regno_fusage): Likewise.
6872
6873         * rtl.c (rtl_check_failed_code1): New function.
6874         (rtl_check_failed_code2): New.
6875         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
6876         (RTL_CHECKC1, RTL_CHECKC2): New.
6877         (XC*): New accessor macros.
6878         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
6879         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
6880         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
6881         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
6882         (TRAP_*, RANGE_INFO_*): Likewise.
6883
6884 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6885
6886         * Makefile.in (tlink.o): Don't depend on toplev.h.
6887
6888         * collect2.c (c_file, o_file, export_file, import_file, ldout,
6889         output_file, nm_file_name, ldd_file_name, strip_file_name,
6890         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
6891         add_prefix, prefix_from_env, prefix_from_string, do_wait,
6892         fork_execute, maybe_unlink, add_to_list,
6893         extract_init_priority, write_list, dump_list,
6894         dump_prefix_list, write_list_with_asm, write_c_file,
6895         write_c_file_stat, write_c_file_glob, scan_prog_file,
6896         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
6897         ignore_library, extract_string, notice, dump_file, target_machine,
6898         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
6899         read_file, print_load_command): Constify a char*.
6900         (fdopen, error, fatal, fatal_perror): Don't prototype.
6901         (my_strerror): Remove.  All callers use xstrerror instead.
6902         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
6903         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
6904         to xcalloc/strcpy/strcat/...  to one call to concat.
6905         (main, scan_prog_file, scan_libraries): Use an intermediate
6906         `const char **' to build an argv array.
6907         (mapfile, libselect, libcompare, locatelib): Add prototypes.
6908
6909         * collect2.h (collect_execute, collect_wait, dump_file,
6910         file_exists): Constify a char*.
6911         (ldout, c_file_name, temporary_obstack, permanent_obstack,
6912         temporary_firstobj, vflag, debug): Add extern declarations.
6913         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
6914
6915         * tlink.c: Don't include toplev.h.
6916         (vflag, debug, ldout, c_file_name, temporary_obstack,
6917         permanent_obstack, temporary_firstobj): Don't declare.
6918         (tlink_execute, frob_extension, symbol_hash_lookup,
6919         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
6920         recompile_files, read_repo_files, demangle_new_symbols,
6921         scan_linker_output): Constify a char*.
6922         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
6923         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
6924
6925 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
6926
6927         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
6928         (relative) rather than jsr (absolute) subroutine call insns.
6929         * config/m68k/m68k-coff.h: Ditto.
6930
6931 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
6932
6933         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
6934         now rework these too.
6935         (arm_reorg): If an insn can't reach the end of the current pool,
6936         ensure that we emit that pool before the insn.
6937
6938 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
6939
6940         * tlink.c (scan_linker_output): Skip the initial underscore in
6941         a mangled name if appropriate.
6942
6943 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6944
6945         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
6946         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
6947         error_with_ivar, gen_declarator, create_builtin_decl,
6948         my_build_string, generate_descriptor_table, generate_ivars_list,
6949         generate_dispatch_table, check_protocols, TAG_GETCLASS,
6950         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
6951         dump_base_name, lang_decode_option, build_encode_expr,
6952         start_class, finish_class, encode_pointer, really_start_method,
6953         gen_declaration, dump_interface, handle_class_ref, handle_impent):
6954         Constify.
6955         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
6956         Add static prototypes.
6957         (build_objc_string_decl, build_selector_reference_decl,
6958         encode_bitfield, build_class_reference_decl): Remove unused
6959         parameter, all callers changed.
6960         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
6961         (objc_printable_name): Likewise.  Change second parameter to type int.
6962         (init_objc): Use memcpy, not bcopy, to avoid casts.
6963
6964 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
6965
6966         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
6967         reg notes on a deleted insn.
6968         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
6969
6970 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
6971
6972         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
6973
6974 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
6975
6976         * stmt.c (expand_asm_operands): Fix index into inout_mode when
6977         reading it.
6978
6979 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
6980
6981         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
6982         * tm.texi (MD_ASM_CLOBBERS): Document it.
6983
6984 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
6985
6986         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
6987         * except.c (expand_rethrow): Remove unused variable.
6988         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
6989         * flow.c (replace_insns): Likewise.
6990         (create_edge_list, verify_edge_list): Likewise.
6991         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
6992
6993         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
6994         is special code to run.
6995         (main): Don't define operands to emit_operand.
6996         * genrecog.c (main): Don't emit an empty peephole2_insn function.
6997
6998         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
6999
7000         * alpha/alpha.h (normal_memory_operand): Declare.
7001         (reg_no_subreg_operand): Declare.
7002         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
7003
7004 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
7005
7006         * c-parse.in (compstmt_primary_start): New, broken out of first
7007         part of compstmt handling in primary.
7008         (primary): Use it.  Add an error clause.
7009         (compstmt_nostart): Renamed from compstmt; remove all
7010         initial invocations of compstmt_start.
7011         (compstmt): New.
7012
7013 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
7014
7015         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
7016         needed.
7017
7018 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
7019
7020         * combine.c (simplify_shift_const): Remove extra semicolon.
7021         * dwarf2out.c (remove_AT): Likewise.
7022         * expmed.c (expand_mult): Likewise.
7023         * gcov.c (create_program_flow_graph): Likewise.
7024         * reorg.c (mostly_true_jump): Likewise.
7025
7026 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
7027
7028         * fold-const.c (fold_range_test): Do not try to fold the range
7029         test if the rhs or lhs has side effects.
7030
7031         * combine.c (simplify_rtx): Recognize another case of a synthesized
7032         sign extension.
7033
7034         * varasm.c (mark_constant_pool): When marking indirect references,
7035         only look at SYMBOL_REFs.
7036
7037         * except.c (expand_fixup_region_end): Do not peek at
7038         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
7039
7040 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
7041
7042         * flags.h: New variables align_loops, align_loops_log,
7043         align_jumps, align_jumps_log, align_labels, align_labels_log,
7044         align_functions, align_functions_log.
7045         * toplev.c: Define them.
7046         (f_options): Handle -falign-* when they have no argument.
7047         (main): Add logic to set variables for -falign-functions,
7048         -falign-jumps, -falign-labels, -falign-loops.
7049         Make it -fsched-verbose=<n> and -finline-limit=<n>.
7050         (display_help): Change help to match options.
7051         * final.c (LABEL_ALIGN): Default to align_labels_log.
7052         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
7053         (LOOP_ALIGN): Default to align_loops_log.
7054         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
7055         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
7056         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
7057         * varasm.c (assemble_start_function): Handle align_functions.
7058
7059         * config/sparc/sparc.h: Don't declare sparc_align_*.
7060         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
7061         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
7062         sparc.c.
7063         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
7064         it's a promise.
7065         * config/sparc/sparc.c: Delete sparc_align_loops,
7066         sparc_align_jumps, sparc_align_funcs and the corresponding string
7067         variables.
7068         (sparc_override_options): Default align_functions on ultrasparc.
7069         Delete -malign-* handling.
7070
7071         * config/mips/mips.c (override_options):  On 64-bit targets,
7072         try to align code to 64-bit boundaries.
7073         (print_operand): New substitution, %~,
7074         which aligns labels to align_labels_log.
7075         * config/mips/mips.md (div_trap_normal): Use %~.
7076         (div_trap_mips16): Likewise.
7077         (abssi): Likewise.
7078         (absdi2): Likewise.
7079         (ffssi2): Likewise.
7080         (ffsdi2): Likewise.
7081         (ashldi3_internal): Likewise.
7082         (ashrdi3_internal): Likewise.
7083         (lshrdi3_internal): Likewise.
7084         (casesi_internal): Likewise.
7085
7086 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
7087
7088         Merge new ia32 backend from the branch!
7089
7090         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
7091         See ChangeLog.P2 on new_ia32_branch for details.
7092
7093         * rtl.h (stack_regs_mentioned_p): Delete prototype.
7094         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
7095         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
7096         * i386/gas.h (ASM_FILE_START): Define.
7097         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
7098         for name change of ix86_valid_decl_attribute_p.
7099         (i386_pe_valid_type_attribute_p): Similarly.
7100
7101 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
7102
7103         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
7104         to step through CC modes.
7105
7106 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
7107
7108         * regmove.c (fixup_match_1): Don't move INSN in front of P if
7109         it would end up in the shadow of a live flags regsiter.
7110
7111 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7112
7113         * reload1.c: Fix many indentation problems.
7114         * reload.c: Likewise.
7115
7116 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
7117
7118         * alias.c (non_local_reference_p): Constify fmt.
7119
7120 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
7121
7122         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
7123
7124 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
7125
7126         * cse.c (delete_trivially_dead_insns): Do not delete stores to
7127         the internal_arg_pointer.
7128
7129 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
7130
7131         Merge peephole2 from new_ia32_branch:
7132         * Makefile.in (STAGESTUFF): Add *.peephole2.
7133         (mostlyclean): Likewise.
7134         (recog.o): Depend on resource.h.
7135
7136         * final.c (peephole): Conditionalize decl on HAVE_peephole.
7137         (final_scan_insn): Likewise for the invocation of peephole.
7138         * genconfig.c (main): Look for peephole and peephole2 patterns.
7139         Emit HAVE_peephole* accordingly.
7140         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
7141         * flags.h (flag_peephole2): Declare.
7142         * toplev.c: New pass peephole2.  New flag -fpeephole2.
7143
7144         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
7145         * gencodes.c (main): Likewise.
7146         * genextract.c (main): Likewise.
7147         * genoutput.c (main): Likewise.
7148         * genemit.c (max_operand_1): Look for the max scratch operand.
7149         (gen_rtx_scratch): New.
7150         (gen_exp): Use it, and pass on new arg subroutine_type.
7151         (gen_expand): Take max scratch into account.
7152         (gen_split): Emit peephole2 functions.
7153         (output_peephole2_scratch): New.
7154         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
7155         * genrecog.c (routine_type): Add PEEPHOLE2.
7156         (IS_SPLIT): New.
7157         (make_insn_sequence): Match outer parallel for peep2.  Discard
7158         top level scratches and dups.
7159         (add_to_sequence): New args insn_type and top.  Update all callers.
7160         Handle toplevel peep2 matching insns.
7161         (write_subroutine): Handle peep2.
7162         (write_tree_1): Likewise.
7163         (write_tree): Likewise.
7164         (main): Likewise.
7165         (change_state): New arg afterward.  Update all callers.
7166         Handle matching separate insns.
7167         * recog.c (recog_next_insn): New.
7168         (peephole2_optimize): New.
7169         * rtl.def (DEFINE_PEEPHOLE2): New.
7170         * resource.c (find_free_register): New argument last_insn.  Use it
7171         to find a register available through the entire span.
7172         * resource.h (find_free_register): Update prototype.
7173
7174 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
7175
7176         * i386.c (output_strlen_unroll): Don't write xops[7]
7177         label if it wasn't set.
7178
7179 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
7180
7181         * cpplib.c (struct directive): Const-ify name pointer and
7182         function pointer prototype.
7183         (validate_else, do_define, do_line, do_include, do_undef,
7184         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
7185         do_elif, do_endif, do_sccs, do_assert, do_unassert,
7186         do_warning): Const-ify second arg.
7187         (directive_table): Mark const.  Reorder entries by frequency
7188         of usage, record statistics.
7189
7190 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
7191
7192         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
7193         bounds- check RTL accesses if --enable-checking.
7194         (RTVEC_ELT): Bounds check if --enable-checking.
7195         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
7196         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
7197         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
7198         GET_NUM_ELEM.
7199         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
7200         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
7201
7202         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
7203         (NOTE_SOURCE_FILE): Use X0STR.
7204         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
7205         MEM_ALIAS_SET): Use X0INT.
7206         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
7207         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
7208         Use X0EXP.
7209         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
7210         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
7211         (rtl_check_failed_bounds, rtl_check_failed_type1,
7212         rtl_check_failed_type2, rtvec_check_failed_bounds): New
7213         functions.
7214         (fancy_abort): Fix comment.
7215
7216         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
7217         (cse_insn): Decrement LABEL_NUSES for jump target before
7218         deleting jump insn.
7219         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
7220         * final.c (alter_subreg): Compute regno before changing x to
7221         REG; set REGNO(x) after changing it.
7222         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
7223         notes containing CONST_INTs.
7224         (delete_eh_regions): Use NOTE_EH_HANDLER.
7225         * function.c (put_reg_into_stack): Make reg a MEM before
7226         initializing it.
7227         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
7228         delete insn.
7229         (gen_mem_addressof): Make reg a MEM before initializing it.
7230         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
7231         X0WINT.
7232         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
7233         deleting an insn, not after.
7234         (block_alloc): Only look at PATTERN(insn) if we have to, and
7235         only if it's format class 'i'.
7236         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
7237         CONST_INT before using its INTVAL.
7238         * print-rtl.c (print_rtx): Use X0STR.
7239         * regmove.c (fixup_match_1): Don't look at PATTERN of
7240         non-class-'i' insn chain elements.
7241         * reload.c (loc_mentioned_in_p): Take address of
7242         in->fld[1].rtx directly.
7243         * reload1.c (reload): Change reg to a MEM before initializing
7244         it.
7245         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
7246         have no names.
7247         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
7248
7249 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
7250
7251         * config/mips/mips.c (machine_dependent_reorg): Force a
7252         barrier to output the local constant pool if a barrier hasn't
7253         been found at a natural point in the instruction stream.
7254
7255 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7256
7257         * c-parse.in (language_string): Constify.
7258
7259         * dwarf2out.c (language_string): Remove declaration.
7260
7261         * dwarfout.c (language_string): Likewise.
7262
7263         * toplev.c (language_string, init_parse, finish_parse): Likewise.
7264
7265         * tree.h (language_string, init_parse, finish_parse): Declare.
7266
7267         * i386/sun386.h (language_string): Remove declaration.
7268
7269         * mips.h (language_string): Likewise.
7270
7271         * nextstep.h (language_string): Likewise.
7272
7273         * nextstep21.h (language_string): Likewise.
7274
7275         * rs6000.c (language_string): Likewise.
7276
7277 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7278
7279         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
7280         (getpwd.o): Remove target.
7281
7282         * getpwd.c: Delete file.  Its in libiberty now.
7283
7284         * dbxout.c (getpwd): Don't prototype.
7285         * dwarf2out.c (getpwd): Likewise
7286         * dwarfout.c (getpwd): Likewise
7287         * final.c (getpwd): Likewise.
7288         * protoize.c (getpwd): Likewise.
7289
7290 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7291
7292         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
7293
7294 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
7295
7296         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
7297         mark_set_resources.
7298
7299 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
7300
7301         * fixinc/Makefile.in (subdir): New.
7302         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
7303         (Makefile): New.
7304
7305 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
7306
7307         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
7308         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
7309         be shared.
7310
7311         * invoke.texi: Fix typo.
7312
7313         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
7314         changed.  Handle autoincrement addressing modes.
7315
7316         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
7317         just like we would the virtual incoming args register when
7318         integrating.
7319
7320 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
7321
7322         * rs6000.h (ASM_FILE_START): Specify complete filename, including
7323         path, in .file directive.
7324
7325 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
7326
7327         * gcc.texi (External Bugs): Remove obsolete note about Perl on
7328         SunOS.
7329
7330 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
7331
7332         * stdbool.h: Make the typedef name _Bool, with bool a #defined
7333         alias.
7334
7335 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7336
7337         * tree.c (tree_code_name): Constify a char*.
7338
7339         * tree.h (tree_code_name, decl_printable_name): Likewise.
7340
7341         * function.h (struct function): Likewise.
7342
7343         * toplev.c (decl_name, decl_printable_name): Likewise.
7344
7345         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
7346
7347         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
7348         (init_objc): Remove function pointer cast.
7349
7350 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
7351
7352         * pa.md (interspace_jump): New pattern.
7353         (builtin_longjmp): New expander.
7354
7355 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
7356
7357         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
7358         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
7359         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
7360
7361 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
7362
7363         * jump.c (delete_prior_computation): Also check calls
7364         to constant functions.  Don't bother checking for a
7365         REG_UNUSED note before adding it.
7366         (delete_computation): Handle multi-word hard registers
7367         when synthesizing missing REG_DEAD notes for a register
7368         which is both set and used by an insn.
7369
7370 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7371
7372         * loop.c (this_loop_info): New variable.
7373         (loop_has_call, loop_has_volatile, loop_has_tablejump,
7374         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
7375         All uses updated.
7376         (prescan_loop, strength_reduce): New argument loop_info.  All callers
7377         updated.
7378         (scan_loop): New variable loop_info, initialise to address of
7379         this_loop_info.
7380         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
7381         Delete variable loop_has_multiple_exit targets and replace with
7382         field in this_loop_info.
7383         (find_and_verify_loops): Rename this_loop to this_loop_num.
7384         (strength_reduce): Delete loop_iteration_info.  Replace variable
7385         loop_info with function argument of same name.
7386         (insert_bct): Rework test for loop being completely unrolled.
7387
7388         * loop.h (struct loop_info): New fields num, loops_enclosed,
7389         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
7390         has_indirect_jump, and cont.  Redefine use of unroll_number.
7391         (loop_unroll_number): Delete.
7392
7393         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
7394         field of loop_info.
7395         (loop_iterations): Delete variable vtop and instead use
7396         loop_info->vtop computed in prescan_loop.
7397
7398 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
7399
7400         * fix-header.c (main): Do not pass a null pointer to strcmp.
7401
7402 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
7403
7404         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
7405         filenames.
7406         * configure: Rebuilt.
7407
7408 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
7409
7410         * jump.c (jump_optimize_1): Do not delete assignments to
7411         internal_arg_pointer.
7412         * cse.c (delete_trivially_dead_insns): Always consider a set of
7413         the internal_arg_pointer live.
7414
7415 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
7416
7417         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
7418         (update_life_info) [REG_WAS_0]: Search the original insns rather
7419         than the new insns for the note.  Fix typos finding note_dest.
7420         If no dest found, discard the note rather than abort.
7421         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
7422         (replace_insns): Remove the old insn list after update_life_info
7423         not before.
7424
7425 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
7426
7427         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
7428         sched_analyze_insn.
7429         (sched_analyze_1): Let add_dependence care for not adding dups.
7430         (sched_analyze_2): Likewise.
7431         (add_branch_dependences): Likewise.
7432
7433 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
7434
7435         * i386/winnt.c (export_list): New type.
7436         (exports_head): Rename to
7437         (export_head):  this.
7438         (i386_pe_record_exported_symbol): Add is_data flag.
7439         (i386_pe_asm_file_end): Emit directive for exported variables.
7440         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
7441         prototype.
7442         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
7443         (ASM_DECLARE_OBJECT_NAME): Likewise.
7444         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7445         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
7446
7447 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
7448
7449         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
7450
7451         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
7452         operand.
7453
7454 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
7455
7456         * config/openbsd.h: Define SET_ASM_OP.
7457         * tm.texi: cross-reference SET_ASM_OP in the index.
7458
7459 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
7460
7461         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
7462         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
7463         and class_narrowest_mode at compile time.  Kill init_rtl.
7464         Mark rtx_length, mode_class, mode_size, mode_unit_size,
7465         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
7466         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
7467         EXTRA_CC_NAMES.
7468         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
7469         format.
7470         * rtl.h: Declare rtx_length and rtx_format as const.
7471         * machmode.def: Define CC().  Use CC() to define CCmode.  If
7472         EXTRA_CC_MODES is defined, expand it here.
7473         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
7474         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
7475         const.  Kill all references to EXTRA_CC_MODES.
7476
7477         * toplev.c: Don't prototype or call init_rtl.
7478         * optabs.c: Don't call init_mov_optab.
7479         * genemit.c: Don't generate init_mov_optab.  Don't call
7480         init_rtl.
7481         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
7482         here.
7483         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
7484         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
7485         genrecog.c: Don't call init_rtl.
7486
7487         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
7488         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
7489         definition of EXTRA_CC_MODES.
7490
7491         * md.texi: Kill ref to EXTRA_CC_NAMES.
7492         * tm.texi: Document new way to define EXTRA_CC_MODES.
7493
7494         * genrecog.c: Do not look up the name of a define_split.
7495         (Unrelated bugfix.)
7496
7497 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
7498
7499         * config/v850/v850.md: Fix typo introduced by previous delta.
7500
7501 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7502
7503         * gcc.c (fatal): Make definition static to match prototype.
7504
7505 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7506
7507         * combine.c (get_last_value): Don't look for earlier sets if the last
7508         known set is somewhere in between the insns being combined.
7509
7510 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
7511
7512         * configure.in: Don't use shell ! to negate exit codes
7513         * configure: Regenerate
7514
7515 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
7516
7517         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
7518         the fact that ALIGN is measured in bits, not bytes.
7519
7520 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
7521
7522         * errors.c: New file; defines functions error, warning, and
7523         fatal, variables have_error and progname.
7524         * errors.h: New file; prototypes and decls for stuff in errors.c.
7525
7526         * Makefile: Add rules to build errors.o and
7527         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
7528         genopinit, genrecog, genextract, genpeep, genattr, and
7529         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
7530         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
7531         genpeep.o, genattr.o, and genoutput.o.
7532
7533         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
7534         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
7535         define or prototype fatal.  Set progname at beginning of main.
7536         * genoutput.c:  Likewise, and don't define or prototype error
7537         either.
7538
7539         * c-typeck.c (c_expand_start_case): Return immediately if exp
7540         is an ERROR_MARK.
7541         * fold-const.c (operand_equal_p): Return immediately if arg1
7542         or arg0 are ERROR_MARKs.
7543         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
7544         fields of type ERROR_MARK when calculating if the record can
7545         go in a register.
7546
7547 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
7548         with much help from Jeffrey A Law and Richard Henderson
7549
7550         * i386.md: In the 6 insns which call output_fix_trunc,
7551         earlyclobber operands[0].
7552
7553 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
7554
7555         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
7556         creating new registers.
7557
7558 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
7559
7560         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
7561         i386_reg_alloc_order, i386_regparm_string,
7562         i386_align_loops_string, i386_align_jumps_string,
7563         i386_align_funcs_string, i386_preferred_stack_boundary_string,
7564         and i386_branch_cost_string as type "const char *".
7565         * i386.c: Define all above strings as type "const char *".
7566
7567 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
7568
7569         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
7570         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
7571
7572 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
7573
7574         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
7575         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
7576
7577 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
7578
7579         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
7580         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
7581         (dwarf2out_line, dwarf2out_finish): Likewise.
7582         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
7583
7584 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7585
7586         * tree.c (lang_unsave_expr_now) : Correct return type.
7587         * tree.h (lang_unsave_expr_now) : Same.
7588
7589 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
7590
7591         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
7592         instead of duplicating code.
7593
7594 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7595
7596         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
7597
7598 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
7599
7600         * tree.h: fancy_abort always takes three args.
7601         * resource.c: Move include of system.h before toplev.h.
7602
7603 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
7604
7605         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
7606         as SYMBOL_REFs.
7607
7608 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
7609
7610         * system.h: Don't redefine abort or trim_filename.
7611         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
7612         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
7613         whether or not __FUNCTION__ is available.
7614         * tree.h: Duplicate rtl.h's definition of abort, for files
7615         that don't include rtl.h.  Delete all code to perform type
7616         checking with a compiler other than GCC.
7617         * varray.h: Delete all code to perform type checking with a
7618         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
7619         its arguments exactly once, using a statement expression.
7620         Adjust the VARRAY_<type> accessor macros to match.
7621         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
7622         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
7623         caller's location.  Define fatal_insn and fatal_insn_not_found
7624         as macros that use _fatal_insn and _fatal_insn_not_found.
7625         (fancy_abort, trim_filename): Kill prototypes.
7626
7627         * rtl.c (trim_filename): Move here from toplev.c.
7628         (fancy_abort): New function.
7629         (DIR_SEPARATOR): Provide default definition.
7630         * tree.c (tree_check_failed, tree_class_check_failed): Go
7631         through fancy_abort.
7632         (tree_check, tree_class_check, cst_or_constructor_check,
7633         expr_check): Delete.
7634         * varray.c (varray_check_failed): New function.
7635         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
7636         _fatal_insn and _fatal_insn_not_found.  Go through
7637         fancy_abort.
7638         (trim_filename, fancy_abort): Delete.
7639
7640         * builtins.c (expand_builtin_args_info): Report ICE with abort.
7641         * except.c (start_catch_handler): Report ICE with error/abort
7642         combo.
7643         * final.c (output_operand_lossage): Likewise.
7644         * flow.c (verify_flow_info): Likewise.
7645
7646         * gcc.c: Prototype fatal.
7647         * gengenrtl.c: Undef abort after including rtl.h not system.h.
7648         * genattr.c, genattrtab.c, genemit.c, genextract.c,
7649         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
7650         Don't define fancy_abort.
7651
7652 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
7653
7654         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
7655         canonization.
7656
7657 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
7658
7659         * m88k.h (VERSION_INFO2): Kill.
7660         (VERSION_STRING): Kill.
7661         (TM_RCS_ID): Kill.
7662         (VERSION_INFO1): Tidy.
7663         (TARGET_VERSION): Update.
7664         * m88k/dgux.h (VERSION_INFO2): Kill.
7665         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
7666         * m88k/luna.h (VERSION_INFO1): Tidy.
7667         * m88k/sysv4.h (VERSION_INFO1): Likewise.
7668         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
7669         (output_file_start): Adjust for death of VERSION_STRING.
7670
7671 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
7672
7673         * cpplib.c (detect_if_not_defined): New function.
7674         (do_if): Use it to detect potential once-only headers.
7675
7676 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
7677
7678         * c-common.c (combine_strings): Always set TREE_CONSTANT.
7679
7680 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
7681
7682         * combine.c (nonzero_bits) : Allow single-ly set registers to be
7683         anywere in the function only if they are pseudos and set before
7684         being used (not live at the start of the function).
7685         (num_sign_bit_copies) : Same.
7686         (get_last_value_validate) : Same.
7687         (get_last_value) : Same.
7688
7689 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
7690
7691         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
7692         where N and M are constant and N is an integer multiple of M.
7693
7694 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
7695
7696         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
7697         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
7698         sbitmap_union_of_preds): Add prototypes.
7699         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
7700         the intersection of successors with the new flow graph structures.
7701         (sbitmap_intersection_of_preds): New function to compute the
7702         intersection of predecessors with the new flow graph structures.
7703         (sbitmap_union_of_succs): New function to compute the union of
7704         successors with the new flow graph structures.
7705         (sbitmap_union_of_preds): New function to compute the union of
7706         predecessors with the new flow graph structures.
7707         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
7708         (expr_reaches_here_p): Use edge and basic_block structures instead
7709         of s_preds and s_succs.
7710         (compute_cprop_avinout): Use new sbitmap routines.
7711         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
7712         of s_preds and s_succs.
7713         * flow.c (compute_flow_dominators): Compute dominators using
7714         edges and basic blocks instead of s_preds and s_succs.
7715
7716 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
7717
7718         * lists.c (unused_insn_list, unused_expr_list): New file for
7719         maintaining various types of lists. New statics for maintaining a
7720         cache of available INSN_LIST and EXPR_LIST nodes.
7721         (free_list): Static function for freeing a list of INSN/EXPR nodes.
7722         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
7723         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
7724         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
7725         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
7726         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
7727         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
7728         (free_INSN_LIST_node): Free an individual INSN_LIST node.
7729         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
7730         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
7731         (remove_dependence, free_pending_lists): Use new global routines.
7732         (flush_pending_lists, sched_analyze_insn): Use new global routines.
7733         (sched_analyze, compute_block_backward_dependences): Use new routines.
7734         (sched_analyze_1, sched_analyze_2): Use new routines.
7735         (schedule_insns): Use new global routines.
7736         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
7737         prototypes.
7738         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
7739         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
7740         prototypes.
7741         * toplev.c (rest_of_compilation): Initialize node cache.
7742         * Makefile.in (OBJS): Add lists.o to list of object files.
7743         (lists.o): Add dependancies.
7744
7745 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
7746
7747         * config/v850/v850.md: Fix compile time warning messages.
7748         * config/v850/v850.c: Fix compile time warning messages.
7749         * config/v850/v850.h: Fix compile time warning messages.
7750
7751 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7752
7753         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
7754         Remove unused prototype for `init_lengths'.
7755
7756 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7757
7758         * calls.c (emit_call_1): Mark parameter `stack_size' with
7759         ATTRIBUTE_UNUSED.
7760         (expand_call): Initialize variable `insn'.
7761         (emit_library_call): Likewise for variable `high_to_save'.
7762         (emit_library_call_value): Likewise.
7763         (store_one_arg): Likewise for variables `lower_bound' and
7764         `upper_bound'.
7765
7766         * combine.c (try_combine): Likewise for variables `i2_code_number'
7767         and `other_code_number'.
7768         (find_split_point): Likewise for variables `pos', `unsignedp' and
7769         `inner'.
7770         (simplify_if_then_else): Likewise for variables `op' and `c1'.
7771         (simplify_and_const_int): Remove unused variable `width'.
7772         (merge_outer_ops): Likewise.
7773
7774         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
7775         HOST_WIDE_INT' when comparing against one.
7776         (simplify_relational_operation): Likewise.
7777         (cse_insn): Initialize variables `src_eqv_volatile',
7778         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
7779
7780         * final.c (init_final): Constify parameter `filename'.
7781         (final_start_function): Mark parameter `optimize' with
7782         ATTRIBUTE_UNUSED.
7783         (profile_function): Likewise for parameters `first' and `optimize'.
7784         (output_source_line): Likewise for parameter `file'.
7785
7786         * integrate.c (subst_constants): Cast a value to `size_t' when
7787         comparing against one.
7788         (mark_stores): Initialize variable `mode'.  Cast a value to
7789         `size_t' when comparing against one.
7790
7791         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
7792
7793         * loop.c (move_movables): Initialize variable `first'.
7794         (strength_reduce): Likewise for variable `increment'.
7795         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
7796         value to `size_t' when comparing against one.
7797         (load_mems): Initialize variable `end_label'.
7798
7799         * output.h (init_final): Constify parameter.
7800
7801         * reload.c (decompose): Initialize variable `base'.
7802
7803         * reload1.c (reload): Likewise for variable `is_scalar'.
7804         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
7805         (choose_reload_regs): Initialize variable `mode'.
7806         (emit_reload_insns): Likewise for variable `store_insn'.
7807         (reload_cse_noop_set_p): Mark parameter `insn' with
7808         ATTRIBUTE_UNUSED.
7809         (reload_combine): Initialize variable `set'.
7810
7811         * unroll.c (unroll_loop): Likewise for variable `local_label'.
7812         (copy_loop_body): Cast a value to `size_t' when comparing against
7813         one.
7814
7815         * varasm.c (assemble_variable): Initialize variable `size_tree'.
7816         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
7817         (remove_from_pending_weak_list): Mark parameter `name' with
7818         ATTRIBUTE_UNUSED.
7819
7820 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7821
7822         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
7823         gcse dump file.
7824
7825 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
7826
7827         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
7828         (ASM_DECLARE_FUNCTION_NAME): Define.
7829         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
7830         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
7831         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
7832         not already defined.
7833
7834 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7835
7836         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
7837         of n_popped when call/call_value are not defined.
7838
7839 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
7840
7841         * tm.texi: GNU CC -> GCC conversion.
7842         (CC1_SPEC): Indicate it is used for all language front ends.
7843
7844 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
7845
7846         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
7847         NOTE_INSN_EH_REGION_END correctly.
7848
7849 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
7850                           Jeff Law <law@cygnus.com>
7851
7852         * loop.c (strength_reduce): Automatically unroll loops if the
7853         unrolled loop size is smaller than the rolled loop size.
7854
7855         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
7856         and delete comment that code should be rewritten.
7857
7858 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
7859
7860         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
7861         as reachable.
7862
7863         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
7864
7865 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
7866
7867         * fixinc/mkfixinc.sh: Don't fix uwin headers.
7868         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
7869         (LINK_SPEC): Add -u _main when building executables.
7870         (ASM_DECLARE_FUNCTION): Update from Cygwin.
7871         (ASM_FILE_END): Use the default for ix86-pe.
7872         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
7873
7874 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
7875
7876         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
7877         and ASM_CLOSE_PAREN are empty strings.
7878
7879 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
7880                           Geoffrey Keating <geoffk@cygnus.com>
7881
7882         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
7883         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
7884         (unprotoize.o): Ditto.
7885         (test-protoize-simple): Don't define STD_PROTO_DIR.
7886         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
7887         changes to make 'test-protoize-simple' pass.
7888         (STD_PROTO_DIR): Remove define.
7889         (STANDARD_EXEC_PREFIX): Supply default define.
7890         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
7891         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
7892         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
7893         (GET_ENV_PATH_LIST): New macro.
7894         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
7895         (do_processing): Initialize default_syscalls_dir using new
7896         macros.  Use it to initialize syscalls_absolute_filename.
7897
7898 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
7899
7900         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
7901         B into a register before emit_conditional_move.
7902
7903 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
7904
7905         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
7906         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
7907         multiplicand out of (+ (* a b) (* c d)).
7908
7909 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
7910                           Richard Henderson  <rth@cygnus.com>
7911
7912         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
7913         (new_insn_dead_notes): Likewise.
7914         (update_n_sets): Likewise.
7915         (update_flow_info): Move to flow.c, renamed to update_life_info;
7916         extend to handle multiple source insns.
7917         * flow.c: Include resource.h
7918         (unlink_insn_chain): New.
7919         (split_hard_reg_notes): New.
7920         (maybe_add_dead_note): New.
7921         (maybe_add_dead_note_use): New.
7922         (find_insn_with_note): New.
7923         (new_insn_dead_notes): New.
7924         (update_n_sets): New.
7925         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
7926         (maybe_remove_dead_notes): New.
7927         (update_life_info): New.
7928         (prepend_reg_notes): New.
7929         (replace_insns): New.
7930         * output.h (update_life_info): Declare.
7931         * recog.c (split_block_insns): Use update_life_info.
7932         * resource.c (find_free_register): Use reg_alloc_order, don't use
7933         fixed regs, make sure the mode is supported, don't use new regs.
7934         (reg_dead_p): New.
7935         * rtl.h (replace_insns): Declare.
7936
7937 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
7938
7939         * expr.c (expand_expr): Cope with COND_EXPRs with one
7940         non-returning branch.
7941
7942 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
7943
7944         * expr.c (store_expr): Always pass down the target, even when not
7945         doing CSE.
7946
7947 1999-08-24  Nick Clifton  <nickc@cygnus.com>
7948
7949         * configure.in: Define target_cpu_default for v850 targets.
7950         * configure: Regenerate
7951
7952         * config/v850/v850.h (TARGET_CPU_generic): Define.
7953         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
7954         addresses are 4 byte aligned.
7955
7956         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
7957         addresses.
7958
7959 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7960
7961         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
7962         (main): Add prototypes.
7963
7964         * genattrtab.c (substitute_address, write_const_num_delay_slots,
7965         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
7966         (write_attr_get): Emit prototypes along with function definition.
7967         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
7968         (write_complex_function): Emit static prototype along with
7969         function definition.
7970
7971         * genemit.c (gen_split): Emit prototypes along with function
7972         definition.
7973
7974         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
7975         Likewise for predicates and `insn_operand_predicate'.
7976         (process_template): Emit static prototype along with function
7977         definition.
7978
7979         * genrecog.c (make_insn_sequence): Constify a char*.  Add
7980         prototypes for get_split_*().
7981         (write_subroutine): Emit prototypes along with function
7982         definition.
7983
7984 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
7985
7986         * gcse.c (find_avail_set): Follow chains of register-register copies.
7987         Use oprs_not_set_p to guarantee that the returned value can be
7988         substituted.
7989         (cprop_insn): Don't verify the return value of find_avail_set with
7990         oprs_not_set_p.
7991
7992         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
7993         (cprop_cc0_jump): New function.
7994         (cprop_insn): Break out new function cprop_jump and use it.
7995         Also use cprop_cc0_jump for machines with CC0.
7996         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
7997
7998         * tree.h (current_function_calls_setjmp,
7999         current_function_calls_longjmp): Delete declarations.
8000         * dsp16xx.c: Include "function.h".
8001         * elxsi.c: Likewise.
8002         * gmicro.c: Likewise.
8003         * h8300.c: Likewise.
8004         * i370.c: Likewise.
8005         * m32r.c: Likewise.
8006         * mn10200.c: Likewise.
8007         * mn10300.c: Likewise.
8008         * ns32k.c: Likewise.
8009         * spur.c: Likewise.
8010         * v850.c: Likewise.
8011
8012         * rtl.h (rtx_equal_function_value_matters): Declare.
8013         * toplev.c (rtx_equal_function_value_matters): Don't declare.
8014         * cse.c: Likewise.
8015         * function.c: Likewise.
8016         * emit-rtl.c: Likewise.
8017
8018 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
8019
8020         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
8021         call.
8022
8023 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8024
8025         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
8026         exactly.
8027
8028 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
8029
8030         * cpp.texi: Add a node documenting macro varargs (copied
8031         from extend.texi).
8032
8033 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
8034
8035         * cppspec.c: Put a null pointer at the end of the new argv.
8036
8037 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
8038
8039         * configure.in: Remove code to select/de-select the haifa
8040         scheduler.  Every scheduled port gets haifa now.
8041         * configure: Rebuilt.
8042         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
8043         * sched.c Deleted.
8044         * Makefile.in: Corresponding changes.
8045
8046 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8047
8048         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
8049         All callers changed.
8050         (prepare_float_lib_cmp): Likewise.
8051         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
8052         * expr.h (emit_float_lib_cmp): Delete declaration.
8053         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
8054         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
8055         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
8056         specially.
8057         (cmptf): Now conditional on TARGET_HARD_QUAD.
8058
8059 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
8060
8061         * resource.c (mark_target_live_regs): Use
8062         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
8063
8064 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8065
8066         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
8067
8068         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
8069
8070         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
8071
8072 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8073
8074         * rtl.h (rtx_format): Constify a char*.
8075
8076         * rtl.c (rtx_format): Likewise.
8077         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
8078         (init_rtl): Use accessor macro, not `rtx_format'.
8079
8080         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
8081         char*.
8082
8083         * caller-save.c (mark_referenced_regs): Likewise.
8084
8085         * combine.c (subst, make_compound_operation, known_cond,
8086         gen_rtx_combine, update_table_tick, get_last_value_validate,
8087         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
8088
8089         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
8090         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
8091         count_reg_usage): Likewise.
8092
8093         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
8094         Likewise.
8095
8096         * final.c (leaf_renumber_regs_insn): Likewise.
8097
8098         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
8099         dump_edge_info, count_reg_references): Likewise.
8100
8101         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
8102         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
8103         Likewise.
8104
8105         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
8106         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
8107         add_label_notes): Likewise.
8108
8109         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
8110         clear_struct_flag, count_sub_rtxs, count_alternatives,
8111         compares_alternatives_p, contained_in_p, walk_attr_value,
8112         write_expr_attr_cache): Likewise.
8113
8114         * genconfig.c (walk_insn_part): Likewise.
8115
8116         * genemit.c (max_operand_1, gen_exp): Likewise.
8117
8118         * genextract.c (walk_rtx): Likewise.
8119
8120         * genflags.c (num_operands): Likewise.
8121
8122         * genoutput.c (scan_operands): Likewise.
8123
8124         * genpeep.c (match_rtx): Likewise.
8125
8126         * genrecog.c (add_to_sequence): Likewise.
8127
8128         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
8129         Likewise.
8130
8131         * integrate.c (save_constants, copy_for_inline,
8132         copy_rtx_and_substitute, subst_constants, restore_constants):
8133         Likewise.
8134
8135         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
8136         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
8137
8138         * local-alloc.c (contains_replace_regs, memref_referenced_p):
8139         Likewise.
8140
8141         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
8142         add_label_notes, replace_call_address, count_nonfixed_reads,
8143         invariant_p, find_single_use_in_loop, find_mem_givs,
8144         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
8145         Likewise.
8146
8147         * print-rtl.c (reg_names, print_rtx): Likewise.
8148
8149         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
8150
8151         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
8152         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
8153         print_blocks): Likewise.
8154
8155         * regclass.c (fix_register, record_address_regs,
8156         reg_scan_mark_refs): Likewise.
8157
8158         * regmove.c (stable_but_for_p): Likewise.
8159
8160         * reload.c (loc_mentioned_in_p, operands_match_p,
8161         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
8162         copy_replacements, refers_to_regno_for_reload_p,
8163         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
8164         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
8165         Likewise.
8166
8167         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
8168         delete_address_reloads_1, count_occurrences,
8169         reload_cse_mem_conflict_p, reload_combine_note_use,
8170         add_auto_inc_notes): Likewise.
8171
8172         * resource.c (mark_referenced_resources, mark_set_resources):
8173         Likewise.
8174
8175         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
8176         reg_mentioned_p, regs_set_between_p, modified_between_p,
8177         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
8178         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
8179         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
8180         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
8181
8182         * sched.c (sched_analyze_2, attach_deaths): Likewise.
8183
8184         * stupid.c (stupid_mark_refs): Likewise.
8185
8186         * unroll.c (remap_split_bivs): Likewise.
8187
8188         * varasm.c (mark_constants): Likewise.
8189
8190         * a29k/a29k.c (uses_local_reg_p): Likewise.
8191
8192         * alpha/alpha.c (summarize_insn): Likewise.
8193
8194         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
8195         eliminate_lr2ip): Likewise.
8196
8197         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
8198
8199         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
8200         reg_mentioned_in_mem): Likewise.
8201
8202         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
8203         symbolic_reference_mentioned_p): Likewise.
8204
8205         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
8206
8207         * sh/sh.c (regs_used, mark_use): Likewise.
8208
8209         * vax/vax.c (vax_rtx_cost): Likewise.
8210
8211 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8212
8213         * machmode.h (mode_name): Constify a char*.
8214
8215         * rtl.c (mode_name): Likewise.
8216
8217         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
8218
8219         * optabs.c (init_libfuncs): Constify a char*.
8220
8221         * print-tree.c (mode_name): Remove redundant declaration.
8222         (print_node): Use accessor macro, not `mode_name'.
8223
8224         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
8225         not `mode_name'.
8226         (new_spill_reg): Constify a char*.
8227
8228         * tree.c (mode_name): Remove redundant declaration.
8229
8230 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8231
8232         * rtl.c (rtx_name): Constify a char*.
8233
8234         * rtl.h (rtx_name, fix_sched_param): Likewise.
8235
8236         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
8237         (mypr): Use accessor macro, not `rtx_name'.
8238
8239         * genemit.c (print_code): Constify a char*.
8240
8241         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
8242
8243         * genpeep.c (print_code): Constify a char*.
8244
8245         * genrecog.c (print_code): Likewise.
8246
8247         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
8248         end_bb): Add static prototype.
8249         (draw_edge): Constify a char*.
8250         (end_bb): Remove unused parameter.
8251
8252         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
8253         print_block_visualization): Constify a char*.
8254
8255 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
8256
8257         * c-common.c (c_get_alias_set): Update comment.
8258
8259 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
8260
8261         * linux.h (LIB_SPEC): Added.
8262
8263 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8264
8265         * config/c4x/c4x.h (STARTFILE_SPEC): Don't define.
8266
8267 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
8268
8269         * tree.c (expr_check): Fix typo in last change.
8270
8271 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
8272
8273         * rtl.def (NOTE): Change format to "iuu0n".
8274         (ADDR_DIFF_VEC): Change format to "eEee0".
8275         (ADDRESSOF): Change format to "eit".
8276
8277         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
8278         (RTVEC_ELT): Change to match.
8279         (XVECEXP): Use XVEC and RTVEC_ELT.
8280         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
8281         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
8282         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
8283         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
8284         TRAP_CONDITION, TRAP_CODE): Use XEXP.
8285         (INTVAL): Use XWINT.
8286         (ADDRESSOF_DECL): Use XTREE.
8287         (SET_ADDRESSOF_DECL): Delete.
8288         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
8289         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
8290         ifdefed out since 2.6 at least.
8291         (gen_rtvec_vv): Delete prototype.
8292
8293         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
8294         not rtunion.
8295         (copy_most_rtx): Handle 't' format letter.
8296         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
8297         (gen_rtvec_vv): Delete function.  All callers changed to use
8298         gen_rtvec_v instead.
8299         * print-rtl.c (print_rtx): Move special casing of NOTEs to
8300         the '0' format letter.
8301
8302         * function.c (gen_mem_addressof): Don't use
8303         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
8304         instead.
8305         * integrate.c (copy_rtx_and_substitute): Likewise.
8306         Copy 't' slots with XTREE.
8307         (subst_constants): Treat 't' slots like '[swi]' slots.
8308         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
8309         * jump.c (rtx_equal_for_thread_p): Likewise.
8310         * rtlanal.c (rtx_equal_p): Likewise.
8311         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
8312         only four arguments.
8313         * gengenrtl.c (type_from_format): Provide correct types for
8314         'b' and 't' slots.
8315
8316
8317         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
8318         If a recent gcc is in use (always in stage2 and beyond), use
8319         statement expressions, so we don't make a function call unless
8320         the check fails.  Evaluate arguments exactly once.
8321         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
8322         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
8323         Delete.
8324         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
8325         they evaluate their arguments exactly once, irrespective of
8326         the compiler in use.
8327
8328         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
8329         is used by the currently-enabled check macros.  This is:
8330         (tree_check_failed, tree_class_check_failed): For gcc.
8331         (tree_check, tree_class_check, cst_or_constructor_check,
8332         expr_check): For other compilers.
8333
8334         * gencheck.c: Do not define any *_CHECK1 macros.
8335
8336 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
8337                           Mark Mitchell <mark@codesourcery.com>
8338
8339         * c-common.c (c_get_alias_set): Fix support for poitners and
8340         references.
8341
8342 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
8343
8344         * alias.c: Include tree.h.
8345         (nonlocal_reference_p, mark_constant_function): New functions.
8346         * flow.c (life_analysis): Call mark_constant_function.
8347         * rtl.h (mark_constant_function): Declare it.
8348
8349 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
8350
8351         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
8352         unrecognisable switches.
8353
8354 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8355
8356         * loop.c (recombine_givs): Set ix field after sorting.
8357         (recombine_givs): Remove bogus index / giv lockstep looping.
8358
8359 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8360
8361         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
8362         on CODE.
8363         (emit_store_flag_force): Use do_compare_rtx_and_jump.
8364         (do_cmp_and_jump): Formatting fixes.
8365         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
8366         do_compare_rtx_and_jump instead of compare_from_rtx.
8367         (do_compare_rtx_and_jump): New function; mostly copied from
8368         compare_from_rtx.
8369         (do_jump_for_compare): Delete.
8370         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
8371         MIN_EXPR.
8372         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
8373         of compare/do_jump_for_compare pairs.
8374         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
8375         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
8376         compare_from_rtx/do_jump_for_compare pairs.
8377         (do_jump_by_parts_equality): Likewise.
8378         (do_jump_by_parts_equality_rtx): Likewise.
8379         * expr.h (do_compare_rtx_and_jump): Declare.
8380         * optabs.c (prepare_cmp_insn): New function, contains most of the code
8381         that used to be in emit_cmp_insn.
8382         (cmp_available_p): New function.
8383         (prepare_operand): New function.
8384         (emit_cmp_and_jump_insn_1): New function, contains some code that used
8385         to be in emit_cmp_insn.
8386         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
8387         parameters to be pointers; don't emit final compare but modify some of
8388         the values pointed to by the args so the caller can perform the
8389         correct comparison.
8390         (expand_binop): Call emit_store_flag_force with signed forms of
8391         comparison code.
8392         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
8393         emit_jump_insn pair.
8394         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
8395         emit_cmp_and_jump_insn_1.  Call emit_queue.
8396         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
8397         arg.
8398         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
8399         jump sets cc0 before deleting it.
8400         * integrate.c (expand_inline_function): Likewise.
8401         * unroll.c (unroll_loop): Similar changes in several places.
8402         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
8403         before deleting it.
8404
8405 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8406
8407         * Makefile.in (insn-recog.o): Update dependencies.
8408         * genrecog.c (main): Make generated file include "function.h".
8409
8410 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
8411
8412         * cse.c (cse_insn): Call never_reached_warning when a jump is
8413         changed to be unconditional.
8414         * flags.h: Declare warn_notreached.
8415         * flow.c (delete_block): Call never_reached_warning when
8416         a block is deleted.
8417         * jump.c (delete_barrier_successors): Call never_reached_warning
8418         when we delete everything after a BARRIER.
8419         (never_reached_warning): New function.
8420         * rtl.h: Declare never_reached_warning.
8421         * toplev.c (warn_notreached): New variable.
8422         (lang_independent_options): Set warn_notreached
8423         when -Wunreachable-code.
8424         (compile_file): We need line numbers for -Wunreachable-code.
8425
8426 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
8427
8428         * haifa-sched.c (insn_unit): Fix typo on out of range test.
8429         * sched.c (insn_unit): Likewise.
8430
8431 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
8432
8433         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
8434
8435 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8436
8437         * flow.c (create_edge_list): Use xmalloc, not malloc.
8438
8439 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
8440
8441         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
8442         C-style comments.  Do not lose the character before double slash.
8443
8444 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8445
8446         * basic-block.h (struct edge_list): Stucture to maintain a vector
8447         of edges.
8448         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
8449          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
8450         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
8451         New function prototypes.
8452         * flow.c (create_edge_list): Function to create an edge list.
8453         (free_edge_list): Discards memory used by an edge list.
8454         (print_edge_list): Debug output showing an edge list.
8455         (verify_edge_list): Internal consistency check for an edge list.
8456         (find_edge_index): Function to find an edge index for a pred and succ.
8457
8458 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
8459
8460         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
8461         hashtable.
8462
8463 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
8464
8465         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
8466
8467 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8468
8469         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
8470
8471 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
8472
8473         * toplev.c (rest_of_compilation): Allow machine dependent
8474         reorganisation pass to place information into the RTL dump
8475         file if it so wishes.
8476
8477 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
8478
8479         * explow.c (hard_function_value): Use VOIDmode instead of
8480         MAX_MACHINE_MODE.
8481         * stmt.c (expand_return): Likewise.
8482         * stor-layout.c (get_best_mode): Likewise.
8483
8484         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
8485         emit call instead of emit_insn call.
8486
8487 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8488
8489         * configure.in: Handle --disable/enable-win32-registry.
8490         * install.texi: Document --disable/enable-win32-registry.
8491         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
8492         (WIN32_REGISTRY_KEY): New macro.
8493         * prefix.c: Use to enable/disable win32-specific code.
8494         (lookup_key): Use versioned key.
8495         * configure: Regenerate.
8496         * config.in: Likewise.
8497
8498 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
8499
8500         * cpplib.c (read_line_number): New fn, split out of...
8501         (do_line): Here.
8502
8503 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
8504
8505         tree.c (lang_unsave_expr_now) : New.
8506         (unsave_expr_now): Call lang_unsave_expr_now.
8507         tree.h (lang_unsave_expr_now) : New.
8508
8509 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
8510
8511         * toplev.c (flag_new_exceptions): On by default.
8512
8513 1999-08-13  Michael Meissner  <meissner@cygnus.com>
8514
8515         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
8516
8517 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
8518
8519         * dwarfout.c (fundamental_type_code): Return FT_boolean for
8520         INTEGER_TYPE with precision==1, it's __java_boolean.
8521
8522 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
8523
8524         * global.c (prune_preferences): Move some invariants out of the
8525         inner loop.
8526
8527 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
8528
8529         * configure.in (alpha*-dec-osf*): Add osf5.
8530
8531 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
8532
8533         * configure.in: Rework handling of ARM GNU/Linux slightly.
8534         (arm*-*-linux-gnuoldld): New target.
8535         * configure: Regenerate.
8536         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
8537         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
8538         * config/arm/linux-oldld.h: New file.
8539         * config/arm/linux-elf26.h: Don't include linux-elf.h.
8540         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
8541         Don't define.
8542         * config/arm/linux-elf.h (ASM_SPEC): Define.
8543         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
8544         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
8545         for 26-bit APCS and old linker.
8546         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
8547         `arm_elf'.
8548         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
8549         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
8550         don't define `arm' or `arm_elf'.
8551         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
8552         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
8553
8554 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
8555
8556         * rtl.texi: Fix typo.
8557
8558 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
8559
8560         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
8561
8562 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
8563
8564         * extend.texi (C++ Signatures): Remove node.
8565         * invoke.texi: Remove discussion of -fhandle-signatures,
8566         signature, sigof, __signature__, and __sigof__.
8567
8568 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
8569
8570         * Makefile.in (JAVAGC): Removed.
8571
8572 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
8573
8574         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
8575
8576 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
8577
8578         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
8579
8580 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
8581
8582         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
8583         a register that is already known to be a pointer.
8584
8585 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
8586
8587         * fixinc/inclhack.tpl: Only install assert.h conditionally.
8588         * fixinc/inclhack.sh: Regenerated.
8589         * fixinc/fixincl.sh: Regenerated.
8590
8591 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
8592
8593         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
8594         Fix documentation of -ansi flag to describe its C++ behavior.
8595         Remove bogus reference to GCC 2.9.
8596
8597 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
8598
8599         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
8600         note if it is non-NULL.
8601
8602 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8603
8604         * except.h (eh_nesting_info): Add new structure defintion.
8605         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
8606         (reachable_handlers, update_rethrow_references): Add function
8607         prototypes.
8608         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
8609         a rethrow symbol instead of an integer exception region number.
8610         * flow.c (Make_edges): Use new exception nesting routines to determine
8611         which handlers are reachable from a CALL or asynchronous insn.
8612         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
8613         goto receivers.
8614         (delete_eh_regions): Update rethrow labels, and don't delete
8615         regions which are the target of a rethrow.
8616         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
8617         avoid overloading the SYMBOL_REF_USED flag.
8618         (rethrow_symbol_map): Use new rethrow_ref field.
8619         (rethrow_used): Use new rethrow_ref field.
8620         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
8621         of an integer.  Fix formatting.
8622         (output_exception_table_entry): Use new rethrow_ref field.
8623         (can_throw): Check for EH_REGION_NOTE before deciding
8624         whether a CALL can throw or not.
8625         (scan_region): Call rethrow_used() instead of accessing data structure.
8626         (update_rethrow_references): New function to make sure only regions
8627         which are still targets of a rethrow are flagged as such.
8628         (process_nestinfo): New static function to initialize a handler
8629         list for a specific region.
8630         (init_eh_nesting_info): New function to allocate and initialize
8631         the list of all EH handlers reachable from all regions.
8632         (reachable_handlers): New function to retrieve the list of handlers
8633         reachable from a specific region and insn.
8634         (free_eh_nesting_info): New function to dispose of a list of
8635         reachable handlers.
8636
8637 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
8638
8639         * flow.c (split_edge): Set JUMP_LABEL field.
8640         (commit_one_edge_insertion): Set head correctly for insert_before.
8641         When inserting insns, update insn block numbers if allocated.
8642
8643 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8644
8645         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
8646         retry_incomplete_types): Add static prototype.
8647         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
8648         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
8649         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
8650         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
8651         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
8652         Constify a char*.
8653
8654         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
8655         dwarf2out_start_source_file, dwarf2out_line): Likewise.
8656
8657 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8658
8659         * output.h (assemble_name): Constify a char*.
8660
8661         * varasm.c (UNIQUE_SECTION, assemble_start_function,
8662         assemble_variable, assemble_name): Likewise.
8663
8664         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
8665
8666         * arm/pe.c (arm_pe_unique_section): Likewise.
8667
8668         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
8669
8670         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
8671
8672         * i386/interix.c (i386_pe_unique_section): Likewise.
8673
8674         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
8675
8676         * i386/winnt.c (i386_pe_unique_section): Likewise.
8677
8678         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
8679
8680         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
8681
8682         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
8683
8684         * pa/pa.c (output_call): Likewise.
8685
8686         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
8687
8688         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
8689
8690         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
8691         Likewise.
8692
8693         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
8694         Likewise.
8695
8696         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
8697
8698         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
8699         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
8700
8701         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
8702
8703 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8704
8705         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
8706
8707 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8708
8709         * tree.h (lang_identify): Constify a char*.
8710         (print_error_function): Add extern prototype.  Constify a char*.
8711
8712         * c-lang.c (lang_identify): Constify a char*.
8713
8714         * objc/objc-act.c (lang_identify): Constify a char*.
8715
8716 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8717
8718         * genpeep.c (main): Make generated file include "function.h".
8719         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
8720
8721 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
8722
8723         * Makefile.in: Update dependencies.
8724         * alias.c: Include "function.h"
8725         * c-decl.c: Likewise.
8726         * caller-save.c: Likewise.
8727         * calls.c: Likewise.
8728         * combine.c: Likewise.
8729         * cse.c: Likewise.
8730         * explow.c: Likewise.
8731         * final.c: Likewise.
8732         * global.c: Likewise.
8733         * graph.c: Likewise.
8734         * local-alloc.c: Likewise.
8735         * loop.c: Likewise.
8736         * optabs.c: Likewise.
8737         * profile.c: Likewise.
8738         * recog.c: Likewise.
8739         * regclass.c: Likewise.
8740         * regmove.c: Likewise.
8741         * reload.c: Likewise.
8742         * reorg.c: Likewise.
8743         * resource.c: Likewise.
8744         * sched.c: Likewise.
8745         * stupid.c: Likewise.
8746         * config/1750a/1750a.c: Likewise.
8747         * config/a29k/a29k.c: Likewise.
8748         * config/arc/arc.c: Likewise.
8749         * config/arm/arm.c: Likewise.
8750         * config/arm/thumb.c: Likewise.
8751         * config/c4x/c4x.c: Likewise.
8752         * config/clipper/clipper.c: Likewise.
8753         * config/convex/convex.c: Likewise.
8754         * config/fx80/fx80.c: Likewise.
8755         * config/i860/i860.c: Likewise.
8756         * config/m68k/m68k.c: Likewise.
8757         * config/m88k/m88k.c: Likewise.
8758         * config/mips/mips.c: Likewise.
8759         * config/pdp11/pdp11.c: Likewise.
8760         * config/pyr/pyr.c: Likewise.
8761         * config/romp/romp.c: Likewise.
8762         * config/sh/sh.c: Likewise.
8763         * config/tahoe/tahoe.c: Likewise.
8764         * config/vax/vax.c: Likewise.
8765         * config/we32k/we32k.c: Likewise.
8766         * config/sparc/sparc.c: Include "function.h".
8767         (mem_min_alignment): Test current_function rather than
8768         regno_pointer_align.
8769         * config/pa/pa.c: Likewise.
8770         (compute_frame_size): Delete declaration of
8771         current_function_outgoing_args_size.
8772         * config/arc/arc.h (current_function_varargs): Delete declaration.
8773         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
8774         declaration.
8775         * config/i370/i370.h (current_function_outgoing_args_size): Delete
8776         declaration.
8777         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
8778         current_function_uses_pic_offset_table.
8779         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
8780         of current_function_returns_pointer.
8781         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8782         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8783         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8784         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8785         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8786         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
8787         * config/m88k/m88k.c: Include "function.h"
8788         (call_used_regs, current_function_pretend_args_size,
8789         current_function_outgoing_args_size, frame_pointer_needed): Delete
8790         declarations.
8791         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
8792         declaration.
8793         * config/mips/mips.h (current_function_calls_alloca): Delete
8794         declaration.
8795         * config/mn10200/mn10200.h (current_function_needs_context,
8796         rtx_equal_function_value_matters): Delete declarations.
8797         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
8798         flag_pic): Delete declarations.
8799         * config/pa/pa.h (current_function_pretend_args_size,
8800         current_function_decl): Delete declarations.
8801         * config/pa/som.h (current_function_varargs): Delete declaration.
8802         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
8803         declaration.
8804         * config/pyr/pyr.h (current_function_pretend_args_size,
8805         current_function_args_size, current_function_calls_alloca): Delete
8806         declarations.
8807         * config/sh/sh.h (current_function_varargs): Delete declaration.
8808         * config/sparc/sparc.h (current_function_outgoing_args_size,
8809         current_function_calls_alloca, current_function_decl): Delete
8810         declarations.
8811         * config/spur/spur.h (current_function_pretend_args_size,
8812         current_function_calls_alloca): Delete declarations.
8813         * config/v850/v850.c (current_function_outgoing_args_size): Delete
8814         declaration.
8815         * config/vax/vms.h (current_function_name): Delete declaration.
8816         * gcse.c: Include "function.h".
8817         (current_function_name, current_function_calls_setjmp): Delete
8818         declarations.
8819         * haifa-sched.c: Include "function.h".
8820         (forced_labels): Delete declaration.
8821         * jump.c: Likewise.
8822         * reg-stack.c: Likewise.
8823         * reload1.c: Likewise.
8824         * genemit.c (main): Make generated file include function.h.
8825         * genoutput.c (output_prologue): Likewise.
8826
8827         * builtins.c (saveregs_value, apply_args_value): Delete variables.
8828         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
8829         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
8830         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
8831         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
8832         macros for some of them.
8833         (emit_filename, emit_lineno): Delete declarations.
8834         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
8835         regno_pointer_* variables through current_function.
8836         (gen_inline_header_rtx): Delete function.
8837         (save_emit_status): Delete function.
8838         (set_new_last_label_num): New function.
8839         (clear_emit_caches): New function.
8840         (restore_emit_status): Just clear last_labelnum and call
8841         clear_emit_caches.
8842         (get_last_insn_anywhere): Variable sequence_stack is now accessed
8843         through macro seq_stack.
8844         (add_insn_after): Likewise.
8845         (add_insn_before): Likewise.
8846         (remove_insn): Likewise.
8847         (pop_topmost_sequence): Likewise.
8848         (in_sequence_p): Likewise.
8849         (start_sequence_for_rtl_expr): Likewise.
8850         (start_sequence): Likewise, and likewise for
8851         sequence_rtl_expr/seq_rtl_expr.
8852         (push_topmost_sequence): Likewise.
8853         (end_sequence): Likewise.
8854         (init_virtual_regs): Now takes a "struct emit_status *" argument.
8855         All callers changed.  Store into that pointer instead of globals.
8856         (init_emit): Allocate emit elt of current_function.
8857         Changes for sequence_rtl_expr/sequence_stack renaming.
8858         Call clear_emit_caches instead of doing it in-line.
8859         Access regno_pointer_* variables through current_function.
8860         (init_emit_once) Don't clear sequence_stack.
8861
8862         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
8863         Delete variables.
8864         (arg_pointer_save_area): Delete declaration.
8865         (finish_expr_for_function): Renamed from init_queue; no longer static.
8866         (init_expr): Don't call init_queue.
8867         (save_expr_status, restore_expr_status): Delete functions.
8868         (expand_expr): Changes to reflect new layout of struct function.
8869         Don't access current_function_check_memory_usage when current_function
8870         is 0.
8871         * expr.h (forced_labels, save_expr_regs, saveregs_value,
8872         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
8873         current_function_outgoing_args_size, current_function_arg_offset_rtx,
8874         current_function_uses_const_pool, function_call_count,
8875         current_function_uses_pic_offset_table, nonlocal_labels,
8876         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
8877         current_function_check_memory_usage, nonlocal_goto_handler_slots,
8878         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
8879         declarations.
8880         (finish_expr_for_function): Declare.
8881         * flags.h (current_function_has_nonlocal_label,
8882         current_function_has_nonlocal_goto, current_function_is_thunk,
8883         current_function_has_computed_jump): Delete declarations.
8884         * flow.c (forced_labels): Delete declaration.
8885         * function.c (current_function_pops_args,
8886         current_function_returns_struct, current_function_returns_pcc_struct,
8887         current_function_needs_context, current_function_calls_setjmp,
8888         current_function_calls_longjmp, current_function_has_nonlocal_label,
8889         current_function_has_nonlocal_goto, current_function_is_thunk,
8890         current_function_has_computed_jump, current_function_calls_alloca,
8891         current_function_contains_functions, current_function_returns_pointer,
8892         current_function_epilogue_delay_list, current_function_args_size,
8893         current_function_pretend_args_size, current_function_arg_offset_rtx,
8894         current_function_outgoing_args_size, current_function_varargs,
8895         current_function_stdarg, current_function_args_info, cleanup_label,
8896         current_function_name, current_function_uses_const_pool,
8897         current_function_instrument_entry_exit, current_function_return_rtx,
8898         current_function_uses_pic_offset_table, nonlocal_labels,
8899         current_function_internal_arg_pointer, current_function_cannot_inline,
8900         current_function_check_memory_usage, function_call_count,
8901         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
8902         nonlocal_goto_stack_level, return_label, save_expr_regs,
8903         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
8904         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
8905         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
8906         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
8907         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
8908         Delete variables.
8909         (push_function_context_to): Don't save them.  Don't call
8910         save_storage_status, save_emit_status or save_expr_status.
8911         (pop_function_context_from): Don't restore them.  Don't call
8912         restore_storage_status or restore_expr_status.
8913         (get_func_frame_size): New function.
8914         (get_frame_size): Use it.
8915         (assign_outer_stack_local): Reflect some member name changes in struct
8916         function.
8917         (put_reg_into_stack): Likewise.
8918         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
8919         seq_rtl_expr.
8920         (fixup_var_refs): Likewise.
8921         (fix_lexical_addr): Likewise.
8922         (trampoline_address): Likewise.
8923         (prepare_function_start): Clear field inlinable of current_function.
8924         (init_function_for_compilation): New function.
8925         (expand_dummy_function_end): New function.
8926         (expand_function_end): Call finish_expr_for_function.
8927         * function.h (struct emit_status): New; fields moved here from struct
8928         function and from global variables.  Add accessor macros for some of
8929         the fields.
8930         (struct expr_status): Likewise.
8931         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
8932         (struct function): Add fields expr and emit, inlinable, inl_emit,
8933         original_arg_vector, original_decl_initial, inl_last_parm_insn,
8934         inl_max_label_num.  Add many comments.
8935         Add accessor macros for all elts of struct function that no longer
8936         have a global variable.
8937         (cleanup_label, return_label, frame_offset, tail_recursion_label,
8938         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
8939         stack_slot_list): Delete declarations.
8940         (get_func_frame_size): Declare.
8941         (save_expr_status, restore_expr_status, save_emit_status,
8942         save_storage_status, restore_storage_status): Delete declarations.
8943         (init_virtual_regs): Declare.
8944         * output.h (current_function_pops_args,
8945         current_function_returns_struct, current_function_returns_pcc_struct,
8946         current_function_needs_context, current_function_calls_setjmp,
8947         current_function_calls_longjmp, current_function_calls_alloca,
8948         current_function_has_nonlocal_label, current_function_varargs,
8949         current_function_has_computed_jump, current_function_returns_pointer,
8950         current_function_contains_functions, current_function_args_size,
8951         current_function_pretend_args_size, current_function_stdarg,
8952         current_function_outgoing_args_size, current_function_args_info,
8953         current_function_name, current_function_return_rtx,
8954         current_function_epilogue_delay_list,
8955         current_function_uses_const_pool, current_function_cannot_inline):
8956         Delete declarations.
8957         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
8958         regno_reg_rtx): Delete declaration.
8959         (REGNO_POINTER_FLAG): Delete macro.
8960         * stmt.c (expand_goto): Changes to reflect that some fields in struct
8961         function were renamed.
8962         * stor-layout.c (save_storage_status, restore_storage_status): Delete
8963         functions.
8964         * toplev.c: Include "function.h".
8965         (current_function_decl): Delete declaration.
8966         (compile_file): Call init_dummy_function_start and
8967         expand_dummy_function_end around some initializations that need to
8968         emit rtl.
8969         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
8970         Call init_function_for_compilation.
8971         * unroll.c: Include "function.h"
8972         (unroll_loop): Access regno_pointer_* variables through
8973         current_function.
8974
8975         * tree.h (struct tree_decl): Add elt f to saved_insns member.
8976         (DECL_SAVED_INSNS): use it.
8977         (expand_dummy_function_end): Declare.
8978         (init_function_for_compilation): Declare.
8979         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
8980         that it's no longer an INLINE_HEADER.
8981         (expand_call): Likewise.
8982         * integrate.c (finish_inline): Delete function.
8983         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
8984         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
8985         args.  Don't generate an INLINE_HEADER rtx, just return the arg
8986         vector.  All callers changed.
8987         (save_for_inline_copying):  Create a duplicate struct emit_status to
8988         hold the emit state for compiling the current function.  Use this and
8989         the other new fields in struct function that are for integration
8990         instead of an INLINE_HEADER.
8991         Use memcpy instead of bcopy.
8992         Store the current struct function in DECL_SAVED_INSNS of fndecl.
8993         (save_for_inline_nocopy): Similar changes, except no new emit_status
8994         is needed here.
8995         (expand_inline_function): Get information from function structure,
8996         not from an inline header rtx.
8997         (output_inline_function): Lose code to extract the necessary
8998         information from an inline header; simply put back the function
8999         structure into current_function.  Clear its inlinable elt.
9000         * rtl.def (INLINE_HEADER): Delete.
9001         * rtl.h: Delete all accessors for an INLINE_HEADER.
9002         (gen_inline_header_rtx): Delete declaration.
9003         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
9004         Delete declarations.
9005         (REGNO_POINTER_ALIGN): Delete.
9006         (clear_emit_caches): Declare.
9007         (set_new_last_label_num): Declare.
9008
9009 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
9010
9011         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
9012
9013         * except.c (expand_eh_region_start_for_decl): Always start a new block.
9014         * stmt.c (is_eh_region): Make sure current_function is present, too.
9015
9016 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
9017
9018         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
9019         for 64bit PA targets.
9020
9021         * pa.h (SELECT_SECTION): Define.
9022         * som.h (SELECT_SECTION): Delete.
9023
9024 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9025
9026         * alias.c (init_alias_analysis): Wrap call to
9027         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
9028
9029 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
9030
9031         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
9032         <sys/asm.h> contains an asm comment with an apostrophe
9033         * fixinc/inclhack.sh:  regen
9034         * fixinc/fixincl.x:  regen
9035
9036 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
9037
9038         * function.c (init_function_start): Clear prologue & epilogue.
9039         (prologue_epilogue_contains): New function.
9040         * alias.c (init_alias_analysis): Use it.
9041         * rtl.h (prologue_epilogue_contains): Declare it.
9042
9043 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
9044
9045         * jump.c (onlyjump_p): New function.
9046         * rtl.h: Declare it.
9047         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
9048         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
9049
9050 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
9051
9052         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
9053         to invert loops.  Simplify block scanning.
9054
9055 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
9056
9057         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
9058         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
9059
9060 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
9061
9062         * config/sparc/liteelf.h: New file to support sparclite-elf target
9063         * config/sparc/t-sp86x: New file to support sparc86x targets
9064         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
9065         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
9066         * configure.in: Support above target triplets
9067         * configure: Regenerated
9068
9069 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
9070
9071         * fixinc/server.c (server_setup): Do not prefix function used as
9072         parameter with `&'.
9073
9074 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
9075
9076         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
9077         Remove fp reg alternatives.
9078
9079 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
9080
9081         * Makefile.in (TAROUTOPTS): Kill.
9082         (install-headers-tar): Use "xpf" for tar headerfile extraction
9083         * i370/x-oe (TAROUTOPTS): Delete.
9084         * m68k/x-apollo68 (TAROUTOPTS): Delete.
9085         * m68k/x-hp320 (TAROUTOPTS): Delete.
9086         * m68k/x-hp320g (TAROUTOPTS): Delete.
9087         * gcc.texi: Update bug reporting text.
9088
9089 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9090
9091         * reg-stack.c (change_stack) Fixed problem with negative array index.
9092
9093 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
9094
9095         * extend.texi, install.texi: Fix spelling mistakes.
9096
9097         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
9098         (s-attrtab); No longer try to use pre-made insn-attrtab file.
9099         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
9100         PREMADE_ATTRTAB_MD.
9101         * mips/t-ecoff: Likewise.
9102         * mips/t-elf: Likewise.
9103         * mips/t-mips: Likewise.
9104         * mips/t-osfrose: Likewise.
9105         * mips/t-r3900: Likewise.
9106         * mips/t-svr3: Likewise.
9107         * mips/t-svr4: Likewise.
9108         * mips/t-ultrix: Likewise.
9109
9110         * gcc.texi: Document recommend means to provide software floating
9111         point libraries in libgcc.a
9112
9113 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
9114
9115         * c-lex.c (yylex): We can have a number with no digits.
9116
9117 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
9118
9119         * jump.c (delete_prior_computation): New function, broken
9120         out of delete_computation.  Check for side effects with
9121         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
9122         multi-word hard registers.
9123         (delete_computation): Use it.  Check for side effects with
9124         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
9125         missing REG_DEAD note for a register which is both set and
9126         used by an insn.
9127
9128 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
9129
9130         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
9131         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
9132         (ASM_FILE_START): Import _mcount with the right type.
9133         (ASM_DECLARE_FUNCTION_NAME): Define.
9134         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
9135         * pa.c (output_function_prologue): Always emit the function's label
9136         here.
9137         * pa.h (TEXT_SPACE_P): Define.
9138         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
9139         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
9140         * som.h (TEXT_SPACE_P): Delete.
9141         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
9142         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
9143
9144 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
9145
9146         * expr.c (emit_group_load): Allow src to be a CONCAT.
9147
9148 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9149
9150         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
9151         (___mulsi3): Use '!' comment character.
9152
9153 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9154
9155         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
9156
9157 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
9158
9159         * gcc.c: Update URLs and mail addresses.
9160         * gcc.texi: Likewise.
9161
9162 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
9163
9164         * rs6000.c (current_file_function_operand): Return zero for
9165         weak functions.
9166         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
9167         weak symbols.
9168         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
9169         for weak symbols.
9170
9171 Thu Aug  5 00:56:30 1999  Geoffrey Keating   <geoffk@cygnus.com>
9172
9173         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
9174         allocate space in the stack frame for the PIC register.
9175
9176 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
9177
9178         * m68k.md (xordi3, anddi3): These patterns are not available on
9179         the coldfire.
9180
9181 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
9182
9183         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
9184         (PUT_REAL): Likewise.
9185
9186 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9187
9188         * final.c (shorten_branches): Don't add an alignment for loops
9189         that have no label inside.
9190
9191 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9192
9193         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
9194         prototypes in macro HAVE_cmpstrsi.
9195
9196         * cpplib.c (cpp_get_token): Remove unused label `op3'.
9197
9198         * emit-rtl.c (operand_subword): Remove unused variable
9199         `bits_per_word'.
9200
9201         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
9202
9203         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
9204
9205 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
9206
9207         * cpphash.c (macroexpand): Delete leading whitespace when arg
9208         is concatenated before.
9209         (unsafe_chars): Correct test for whether + and - can extend a
9210         token.
9211
9212         * cppinit.c (cpp_start_read): Do dependencies for
9213         -include/-imacros files also.
9214
9215         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
9216         tokenizing non-directive lines.
9217         (cpp_expand_to_buffer): Temporarily disable no-output mode.
9218         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
9219         the input file.
9220
9221 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
9222
9223         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
9224
9225         * c-lex.c: Sync with C++ frontend.
9226         (linemode): New variable.
9227         (parse_float): imag, conversion_errno, and type are output only.
9228         (yylex): Adjust.  Move initial '.' case into main switch.
9229         Use linemode.
9230         (handle_generic_pragma): Just deal with tokens.
9231         (readescape): Use ISXDIGIT and ISGRAPH.
9232         * c-parse.in: Add END_OF_LINE token.
9233
9234         * c-lex.c (lang_init): Generalize.
9235         (nextchar): Remove.  Replace uses with UNGETC.
9236         (skip_white_space): Handle linemode here.  Optimize for cpplib.
9237         (skip_white_space_on_line): Remove.
9238         (extend_token_buffer_to): New fn.
9239         (extend_token_buffer): Use it.
9240         (read_line_number, check_newline): Just deal with tokens.
9241         (token_getch, token_put_back): New fns.
9242         (yylex): Use them.  More cpplib optimizations.  Simplify.
9243
9244 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
9245                           Jason Merrill  <jason@yorick.cygnus.com>
9246
9247         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
9248         (consume_string): Make this smart about USE_CPPLIB.
9249         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
9250         (yylex): Rewrite to be intelligent about USE_CPPLIB.
9251         Also, clean up cases where we redundantly set token_buffer[0].
9252         (read_line_number): New fn.
9253         (ignore_escape_flag): New variable.
9254
9255 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
9256
9257         * a29k/t-a29kbare: Fix some comments.
9258         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
9259         (FPBIT, DPBIT): Define.
9260         * a29k/t-vx29k: Likewise.
9261         * arc/t-arc: Likewise.
9262         * arm/t-arm-elf: Likewise.
9263         * arm/t-bare: Likewise.
9264         * arm/t-pe: Likewise.
9265         * arm/t-pe-thumb: Likewise.
9266         * arm/t-semi: Likewise.
9267         * arm/t-thumb: Likewise.
9268         * arm/t-thumb-elf: Likewise.
9269         * arm/t-thumb-linux: Likewise.
9270         * h8300/t-h8300: Likewise.
9271         * i960/t-i960: Likewise.
9272         * i960/t-vxworks960: Likewise.
9273         * m32r/t-m32r: Likewise.
9274         * mips/t-ecoff: Likewise.
9275         * mips/t-elf: Likewise.
9276         * mips/t-r3900: Likewise.
9277         * pa/t-pro: Likewise.
9278         * rs6000/t-aix43: Likewise.
9279         * rs6000/t-beos: Likewise.
9280         * rs6000/t-newas: Likewise.
9281         * rs6000/t-ppccomm: Likewise.
9282         * rs6000/t-rs6000: Likewise.
9283         * rs6000/t-winnt: Likewise.
9284         * rs6000/t-xnewas: Likewise.
9285         * rs6000/t-xrs6000: Likewise.
9286         * sh/t-sh: Likewise.
9287         * sparc/t-elf: Likewise.
9288         * sparc/t-sparcbare: Likewise.
9289         * sparc/t-sparclite: Likewise.
9290         * sparc/t-splet: Likewise.
9291         * v850/t-v850: Likewise.
9292         * mn10200/t-mn10200: Fix comments.
9293         * mn10300/t-mn10300: Likewise.
9294
9295         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
9296         dummy operand.  Allocate a new pseudo for the dummy operand.
9297         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
9298
9299         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
9300
9301 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
9302
9303         * configure: Rebuilt.
9304         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
9305
9306 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
9307
9308         * recog.c (preproces_constraints): Zero recog_op_alt before
9309         processing the constraints.
9310
9311         * arm.c (typedef minipool_node): Renamed from pool_node.
9312         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
9313         (add_minipool_constant): New function.
9314         (dump_minipool): New function.
9315         (find_barrier): Remove special case for getting the insn size of
9316         an insn that references the constant pool.
9317         (minipool_fixup): New structure.
9318         (push_minipool_barrier): New function.
9319         (push_minipool_fix): New function.
9320         (note_invalid_constants): New function.
9321         (add_pool_constant, dump_table, fixit, broken_move): Delete.
9322         (arm_reorg): Rewrite code to fix up the constant pool into a
9323         series of mini-pools embedded in the insn stream.
9324         (arm_output_epilogue): New function, made mainly from the body
9325         of output_func_epilogue.
9326         (output_func_epilogue): Move insn generation part of epilogue code
9327         to arm_output_epilogue.
9328         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
9329         * arm.md (pool_range): New attribute.
9330         (zero_extendqidi2): Add attribute pool_range.
9331         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
9332         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
9333         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
9334         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
9335         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
9336         (epilogue): New expand.
9337         (epilogue_insn): New insn.  Call arm_output_epilogue.
9338
9339         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
9340         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
9341
9342 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
9343
9344         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
9345
9346 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
9347
9348         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
9349
9350 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
9351
9352         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
9353
9354 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
9355
9356         * global.c: Fix comment.
9357
9358 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
9359
9360         * gcc.c (access_check): New static function.
9361         (find_a_file): Use it when searching a directory list.
9362         * collect2.c (find_a_file): Don't accept directories found when
9363         searching a directory list.
9364
9365 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
9366
9367         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
9368         function parameters with `&'.
9369         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
9370
9371 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
9372
9373         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
9374         or tidy_fallthru_edge if the last insn in the block is not
9375         an unconditional jump or a simple conditional jump.
9376
9377 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9378
9379         * Makefile.in (c-decl.o): Depends on defaults.h.
9380
9381 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
9382
9383         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
9384         PA1.1 and above.
9385         (CLASS_MAX_NREGS): Likewise.
9386
9387 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
9388
9389         * cse.c (cse_insn): Fix dumb thinko in last change.
9390
9391 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9392
9393         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
9394         "const char *".
9395
9396 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
9397
9398         * dwarf2out.c (add_location_or_const_value_attribute): Correct
9399         test for sizes of passed and declared parameter types.
9400
9401 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9402
9403         * fixincludes: Fix the return type of bsearch, char* -> void*.
9404
9405         * fixinc/inclhack.def: Likewise.
9406
9407 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
9408
9409         * invoke.texi (-fdump-translation-unit): New option.
9410
9411 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
9412
9413         * expr.h (PROMOTE_PROTOTYPES): Move ...
9414         * defaults.h: ... to here.
9415         * c-decl.c: Include defaults.h instead of expr.h.
9416         * c-typeck.c: Include defaults.h.
9417
9418 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
9419
9420         * toplev.h (errorcount): Declare.
9421         (warningcount): Likewise.
9422         (sorrycount): Likewise.
9423         * c-lex.c (errorcount): Don't declare.
9424         * dwarf2out.c (errorcount): Don't declare.
9425
9426 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
9427
9428         * config/libgloss.h: Add a note discouraging use with ELF.
9429         * configure.in: Don't use libgloss.h for ELF targets.
9430         Always use_collect2 on a.out targets.
9431
9432 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
9433
9434         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
9435         (force_to_mode, case ASHIFTRT): Add shiftrt label.
9436
9437 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9438
9439         * loop.c (strength_reduce): When doing biv->giv conversion, update
9440         reg note of NEXT->insn.
9441
9442 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
9443
9444         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
9445
9446 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
9447
9448         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
9449         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
9450         Ensure expr.h is included.
9451         * c-typecheck.c (convert_arguments): Ditto.
9452
9453         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
9454
9455         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
9456         * config/convex/convex.h: Ditto.
9457         * config/dsp16xx/dsp16xx.h: Ditto.
9458         * config/fx80/fx80.h: Ditto.
9459         * config/gmicro/gmicro.h: Ditto.
9460         * config/i370/i370.h: Ditto.
9461         * config/i386/i386.h: Ditto.
9462         * config/m32r/m32r.h: Ditto.
9463         * config/m68k/m68k.h: Ditto.
9464         * config/m88k/m88k.h: Ditto.
9465         * config/mips/mips.h: Ditto.
9466         * config/pa/pa.h: Ditto.
9467         * config/pyr/pyr.h: Ditto.
9468         * config/tahoe/tahoe.h: Ditto.
9469         * config/we32k/we32k.h: Ditto.
9470
9471         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
9472         based on arch size.
9473
9474         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
9475
9476         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
9477         from comment.
9478
9479         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
9480
9481 1999-08-02  Richard Henderson  <rth@cygnus.com>
9482
9483         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
9484         for the register spill block.
9485         (m32r_va_arg): New.
9486         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
9487         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
9488
9489         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
9490         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
9491         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
9492
9493 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
9494
9495         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
9496         MAX_WCHAR_TYPE defined in sparc.h.
9497         * config/sparc/linuxaout.h: Likewise.
9498         * config/sparc/linux64.h: Likewise.
9499         Also default to -mvis if CPU is UltraSPARC.
9500
9501 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
9502
9503         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
9504         (RTX_OK_FOR_OLO10): Likewise.
9505         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
9506         %lo(), allow it in addresses...
9507         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
9508         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
9509         does not make sense.
9510         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
9511         (sparc_output_scratch_registers): New function.
9512         (output_function_prologue, sparc_flat_output_function_prologue): Use
9513         it.
9514         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
9515         defined.
9516         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
9517         * configure.in: Add check for .register pseudo-op support in as and
9518         check for offsetable %lo().
9519         * acconfig.h: Add templates for the above checks.
9520         * configure: Regenerate.
9521
9522 1999-08-02  Richard Henderson  <rth@cygnus.com>
9523
9524         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
9525         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
9526         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
9527
9528 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
9529
9530         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
9531         reg_biv_class.
9532
9533 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
9534
9535         * config/float-sparc.h: New file.
9536         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
9537         sparc-*-linux-gnu and sparc64-*-linux*.
9538
9539 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9540
9541         * rs6000.c (rs6000_va_list): Type is an array.
9542         (rs6000_va_start): Don't doubly adjust for varargs.
9543         (rs6000_va_arg): Evaluate long long GPR adjustment.
9544
9545 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
9546
9547         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
9548         -maix64 and -maix32.
9549         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
9550         LINK_SPEC): Change appropriately.
9551         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
9552         (u_short_cint_operand): Likewise.
9553         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
9554         for 64-bit hosts.
9555         * rs6000/t-aix43 (MULTILIB): Change to -m64.
9556
9557         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
9558
9559 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
9560
9561         * rs6000/rs6000.c (num_insns_constant_wide): Correct
9562         for type promotion.
9563         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
9564         (non_add_cint_operand): Likewise.
9565         (logical_operand): Likewise.
9566         (non_logical_cint_operand): Likewise.
9567         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
9568         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
9569         (rs6000_select_rtx_section): Suppress warning.
9570         (small_data_operand): Suppress warning.
9571         (rs6000_got_register): Suppress warning.
9572         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
9573         type, so `J' is generally the wrong constraint for a SImode value;
9574         use `L' instead.
9575         (andsi3_internal2): Likewise.
9576         (andsi3_internal3): Likewise.
9577         (iorsi3_internal1): Likewise.
9578         (xorsi3_internal1): Likewise.
9579         (movsi): Likewise.
9580         (movsf_softfloat): Likewise.
9581         (scc insns): Likewise.
9582         (movsi+2): Preserve sign bits of SImode constant.
9583         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
9584         (movdf+1): Sign-extend properly.
9585         (movdi_32+1): Sign-extend properly.
9586         (scc insns): Sign-extend properly.
9587
9588         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
9589         K, L, and T.
9590
9591 1999-08-02  Richard Henderson  <rth@cygnus.com>
9592
9593         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
9594         -mcpu parsing code.
9595         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
9596         * alpha.md (all fp insns): Likewise.
9597
9598 1999-08-02  Nick Clifton  <nickc@cygnus.com>
9599
9600         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
9601         already defined.
9602
9603 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
9604
9605         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
9606         pic_load_label generator directly.
9607         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
9608         No longer a named pattern.
9609
9610 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
9611
9612         * explow.c (force_reg): Call force_operand if X does not
9613         satisfy general_operand.
9614
9615 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
9616
9617         * fix-header.c (main): When testing for CONTINUED, use string
9618         equality, not pointer equality.
9619
9620 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
9621
9622         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
9623
9624 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
9625
9626         * cse.c (cse_insn): Fix loop which deletes insns after a jump
9627         that has become an unconditional jump.
9628
9629         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
9630         (output_function_epilogue): Similarly.
9631
9632 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9633
9634         * tree.h (init_dummy_function_start): Declare.
9635
9636 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9637
9638         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
9639         last_expr_type, last_expr_value, block_start_count, block_stack,
9640         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
9641         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
9642         dynamically in stmt elt of struct function for each function.
9643         (struct nesting): Rename function_call_count elt to n_function_calls,
9644         target_temp_slot_level to block_target_temp_slot_level.  All users
9645         changed.
9646         (struct stmt_status): New structure definition.
9647         Add many accessor macros for stmt_status elements which previously
9648         were global variables.
9649         (init_stmt_for_function): Allocate stmt elt for current_function.
9650         Reflect that block_start_count was renamed to
9651         current_block_start_count.
9652         (save_stmt_status, restore_stmt_status): Delete functions.
9653         (preserve_subexpressions_p): Don't access loop_stack when outside
9654         a function.
9655         (expand_start_bindings): Reflect that block_start_count was renamed to
9656         current_block_start_count.
9657         (expand_fixup): Likewise.
9658         (expand_decl): Don't access block_stack when outside a function.
9659         (expand_decl_cleanup): Likewise.
9660         (expand_dcc_cleanup): Likewise.
9661         (expand_dhc_cleanup): Likewise.
9662         (expand_anon_union_decl): Likewise.
9663         (set_file_and_line_for_stmt): New function.
9664         (in_control_zone_p): New function.
9665
9666         * function.h (struct function): Add new elt stmt.
9667         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
9668         case_stack, nesting_stack, nesting_depth, block_start_count,
9669         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
9670         emit_lineno, goto_fixup_chain.
9671         (save_eh_status, restore_eh_status, save_stmt_status,
9672         restore_stmt_status): Delete declarations.
9673         * function.c (push_function_context_to): Don't call save_stmt_status.
9674         (pop_function_context_to): Don't call restore_stmt_status.
9675         * tree.h (in_control_zone_p): Declare.
9676         * rtl.h (set_file_and_line_for_stmt): Declare.
9677
9678         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
9679         call set_file_and_line_for_stmt.
9680
9681 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
9682
9683         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
9684         Also update copyright.
9685
9686 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9687
9688         * c-pragma.c: Don't include "except.h".
9689         * emit-rtl.c: Likewise.
9690         * stor-layout.c: Likewise.
9691         * tree.c: Likewise.
9692         * varasm.c: Likewise.
9693
9694         * flow.c: Include "function.h".
9695         * tree.h (init_dummy_function_start): Declare new function.
9696
9697         * except.h (struct eh_status): New structure.
9698         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
9699         been included.
9700         (eh_return_stub_label, ehstack, catchstack, ehqueue,
9701         catch_clauses, false_label_stack, caught_return_label_stack,
9702         protect_list, current_function_ehc): Add accessor macros for the
9703         corresponding fields in current_function->eh; delete declarations
9704         for all items that used to be declared here.
9705         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
9706         catch_clauses, false_label_stack, caught_return_label_stack,
9707         protect_list, current_function_ehc): Delete variables.
9708         (init_eh_for_function): Allocate current_function->eh.
9709         (save_eh_status, restore_eh_status): Delete functions.
9710
9711         * function.h (struct function): Add fields next_global and eh.
9712         Delete all exception handling related fields.
9713         * function.c (current_function): New variable.
9714         (all_functions): New variable.
9715         (push_function_context_to): Don't allocate a struct function,
9716         use current_function instead.  Call init_dummy_function_start when
9717         outside a function.  Clear current_function before returning.
9718         (pop_function_context_from): Restore current_function.
9719         Don't free the restored struct function.
9720         (prepare_function_start): New function.
9721         (init_dummy_function_start): New function.
9722         (init_function_start): Break out some code into prepare_function_start
9723         and call it here.
9724
9725         * stmt.c (save_stmt_status): Don't call save_eh_status.
9726         (restore_stmt_status): Don't call restore_eh_status.
9727
9728         * Makefile.in: Update dependencies.
9729
9730 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
9731
9732         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
9733         of depending on a magic constant value.  Update comments.
9734         (hppa_expand_prologue): Similarly.
9735
9736         * pa.md (reload_indi, reload_outdi): Allow any register for the
9737         original reload register.
9738
9739 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
9740
9741         * cccp.c (print_help): Change marcos to macros.
9742
9743 1999-07-30  Richard Henderson  <rth@cygnus.com>
9744
9745         * c-typeck.c (initializer_constant_valid_p): Move ...
9746         * c-common.c (initializer_constant_valid_p): ... here.  Use
9747         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
9748         of label addresses.
9749         * c-common.h (initializer_constant_valid_p): Declare.
9750         * c-tree.h (initializer_constant_valid_p): Remove.
9751
9752 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
9753
9754         * config/i386/sol2-c1.asm: Align the stack.
9755         * config/i386/sol2-gc1.asm: Likewise.
9756
9757 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
9758
9759         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
9760         -Asparclite for sparc86x.
9761         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
9762         sparc86x.
9763         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
9764
9765 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
9766
9767         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
9768         the user if using the non-default arch size in BI_ARCH configuration.
9769         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
9770
9771         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
9772         Fix patterns so that they actually match.
9773         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
9774         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
9775         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
9776         TARGET_HARD_MUL32.
9777         (mulsidi3): Reflect this in the expand.
9778         (smulsi3_highpart): Only on TARGET_ARCH32.
9779         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
9780         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
9781         (umulsidi3): Reflect this in the expand.
9782         (umulsi3_highpart): Only on TARGET_ARCH32.
9783         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
9784         don't require g0 to be zero.
9785         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
9786         ({,u}divsi3): New expands.
9787         ({,u}divsi3_sp64): New patterns.
9788         (after lshrdi3_v8plus): Four new patterns to help combiner
9789         optimizing nested mixed mode shifts.
9790
9791         * config/sparc/sparc.c (sparc_override_options): Use deprecated
9792         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
9793         speed things up. Don't use them by default on plain v9 in 64bit
9794         mode, according to what SPAMv9 sais.
9795
9796         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
9797         top 32 bits of %[og][0-7] in signal handlers.
9798         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
9799
9800 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
9801
9802         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
9803         (ashlsi3): Corresponding changes.
9804
9805         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
9806
9807 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
9808
9809         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
9810
9811 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9812
9813         * arm.h (Hint): Delete macro.
9814         Substitute HOST_WIDE_INT for Hint in some prototypes.
9815         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
9816
9817 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
9818
9819         * builtins.c (expand_builtin_setjmp): Use force_operand to
9820         make sure that the buffer address is in a suitable form to be
9821         passed to force_reg.
9822
9823 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
9824
9825         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
9826         them here.
9827
9828 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
9829
9830         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
9831         proper mode in the condition string.
9832         (icacheflush, dcacheflush): Remove modes from match_operands.
9833
9834         * pa.c (emit_move_sequence): Always convert scratch_reg to the
9835         proper mode before using it.
9836
9837         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
9838         pair.
9839
9840         * pa.c (store_reg): Do not call add_high_const generator directly.
9841         (load_reg, set_reg_plus_d): Likewise.
9842         * pa.md (add_high_const): No longer a named pattern.
9843
9844         * pa.c (legitimize_address): Consistently use Pmode rather than
9845         SImode.  Do not call gen_pic2_highpart directly anymore.
9846         * pa.md (pic2_highpart): No longer a named pattern.
9847         (pic2_lo_sum): Similarly.  Reformat to make more readable.
9848
9849         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
9850         needed.
9851
9852         * README: Update.
9853
9854 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
9855
9856         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
9857
9858 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
9859
9860         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
9861         and tag the spill mems.
9862         (hppa_va_start): New.
9863         (hppa_va_arg): New.
9864         * pa.h (EXPAND_BUILTIN_VA_START): New.
9865         (EXPAND_BUILTIN_VA_ARG): New.
9866
9867 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
9868
9869         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
9870         and tag the spill mems.
9871         (mn10300_va_start): New.
9872         (mn10300_va_arg): New.
9873         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
9874         (EXPAND_BUILTIN_VA_ARG): New.
9875
9876 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
9877
9878         * mn10200.c (mn10200_va_arg): New.
9879         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
9880
9881 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
9882
9883         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
9884         rather than play with TREE_INT_CST_LOW.
9885
9886 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
9887
9888         * config/arm/telf.h: Include dbxelf.h.
9889         (CPP_PREDEFINES): Only define if not already defined.
9890         (ASM_IDENTIFY_GCC): Likewise.
9891         (SUBTARGET_EXTRA_SECTIONS): Likewise.
9892         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
9893         * config/arm/thumb.h (LINK_SPEC): Only define if not already
9894         defined.
9895         (DBX_DEBUGGING_INFO): Don't define.
9896         * config/arm/linux-telf.h: New file.
9897         * config/arm/linux-tgas.h: New file.
9898         * config/arm/t-thumb-linux: New file.
9899         * config/arm/uclinux-elf.h: New file.
9900         * config/arm/uclinux-telf.h: New file.
9901         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
9902         thumb-*-uclinux): New targets.
9903         * configure: Regenerate.
9904
9905 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
9906
9907         * pa.md (post_store, pre_load): New expanders.
9908         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
9909         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
9910         need to directly generate RTL for them.
9911         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
9912         changes.
9913
9914 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
9915
9916         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
9917         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
9918         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
9919         (secndary_reload_class): Make TARGET_ELF conditional compile.
9920         (print_operand_address): Similar.
9921         (output_toc): Print all values as hex.
9922         (get_issue_rate): Rearrange and add RS64A and PPC630.
9923         * rs6000.h (processor_type): Add RS64A and PPC630.
9924         (PROCESSOR_POWERPC64): New.
9925         (PROMOTE_MODE): Use word_mode.
9926         (RTX_COSTS): Add RS64A and PPC630.
9927         * rs6000.md (scheduling information): Add lmul and ldiv
9928         representing 64-bit integer multiply and divide.  Add rs64a and
9929         PPC630 information.
9930         (ashldi3): Add support for "rldic" instruction.
9931         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
9932
9933 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
9934
9935         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
9936         instead of V8 for sparclite86x in cpu_table.
9937
9938 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
9939
9940         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
9941         output_file_directive.
9942
9943 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
9944
9945         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
9946         tree for op1, not the rtl.
9947
9948 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
9949
9950         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
9951         to m88k_va_start, leaving only the register spill.
9952         (m88k_build_va_list): New.
9953         (m88k_va_start): New.
9954         (m88k_va_arg): New.
9955         * m88k.h (BUILD_VA_LIST_TYPE): New.
9956         (EXPAND_BUILTIN_VA_START): New.
9957         (EXPAND_BUILTIN_VA_ARG): New.
9958
9959 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
9960
9961         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
9962         Rename from expand_builtin_saveregs.
9963         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
9964
9965 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
9966
9967         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
9968         for the register spill block.
9969         (i960_build_va_list): New.
9970         (i960_va_start): New.
9971         (i960_va_arg): New.
9972         * i960.h (BUILD_VA_LIST_TYPE): New.
9973         (EXPAND_BUILTIN_VA_START): New.
9974         (EXPAND_BUILTIN_VA_ARG): New.
9975         * i960.md (store_multiple): Use change_address on individul mems.
9976
9977 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
9978
9979         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
9980         an ARRAY_TYPE.
9981         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
9982         (expand_builtin_va_end): Evaluate arg for side effects.
9983         * c-common.c (c_common_nodes_and_builtins): Construct a
9984         va_list_arg_type_node to handle array decomposition to pointer.
9985
9986 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
9987
9988         * except.c (start_dynamic_cleanup): Use force_operand on the
9989         buffer's address.
9990
9991 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
9992
9993         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
9994         * c4x.c (c4x_va_arg): New.
9995
9996 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
9997
9998         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
9999         has manual_pop set.
10000
10001 1999-07-26  Nathan Sidwell  <nathan@acm.org>
10002
10003         * eh-common.h (__eh_matcher): Prototype correctly.
10004
10005 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
10006
10007         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
10008         (TARGET_SINGLE_PIC_BASE): Likewise.
10009         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
10010         definitions.
10011         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
10012         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
10013         (TARGET_OPTIONS): Add -mpic-register=N.
10014         (OUTPUT_INT_ADDR_CONST): New macro.
10015         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
10016         LEGITIMATE_PIC_OPERAND_P): Likewise.
10017         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
10018         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
10019         output_addr_const directly.
10020         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
10021         ARM port.
10022         (thumb_pic_register, thumb_pic_register_string): Declare.
10023
10024         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
10025         from arm.c.
10026         (label_mentioned_p): New function: Imported from arm.c.
10027         (legitimize_pic_address): New function: Imported from arm.c.
10028         (is_pic):New function: Imported from arm.c.
10029         (thumb_finalize_pic):New function: Imported from arm.c.
10030         (add_constant): Cope with PIC constants.
10031         (fixit): Cope with PIC constants.
10032         (output_return): Do not treat the PIC register as live if
10033         TARGET_SINGLE_PIC_BASE is true.
10034         (thumb_function_prologue): Do not treat the PIC register as live if
10035         TARGET_SINGLE_PIC_BASE is true.
10036         (thumb_expand_prologue): Do not treat the PIC register as live if
10037         TARGET_SINGLE_PIC_BASE is true.
10038         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
10039         TARGET_SINGLE_PIC_BASE is true.
10040         (thumb_print_operand): Accept '|'.
10041         (thumb_override_options): Process PIC options.
10042
10043         * config/arm/thumb.md (movsi): Support PIC.
10044         (call_insn): Change "i" constraint to "X".
10045         (call_value_insn): Likewise.
10046         (consttable_4, consttable_8, consttable_end): Set and clear
10047         "making_const_table" as appropriate.
10048         (pic_load_addr, pic_add_dot_plus_four): New insns.
10049
10050         * invoke.texi (Thumb Options): Fix spelling.  Document new
10051         options -msingle-pic-base and -mpic-register=.
10052
10053 1999-07-26  Andrew Haley  <aph@cygnus.com>
10054
10055         * config/m32r/initfini.c (__init): Use a full word immediate for
10056         __fini: this allows it to be placed in any memory region.
10057
10058         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
10059         -mmodel=medium.  This is OK for all memory models.
10060
10061 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
10062
10063         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
10064         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
10065
10066 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
10067
10068         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
10069         defined.
10070
10071         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
10072
10073 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
10074
10075         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
10076         (BUILD_VA_LIST_TYPE): New.
10077         (EXPAND_BUILTIN_VA_START): New.
10078         (EXPAND_BUILTIN_VA_ARG): New.
10079         * i860.c (output_delayed_branch): Disable.
10080         (output_delay_insn): Likewise.
10081         (i860_saveregs): New.
10082         (i860_build_va_list): New.
10083         (i860_va_start): New.
10084         (i860_va_arg): New.
10085         * i860.md: Disable all peepholes using output_delayed_branch.
10086         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
10087
10088 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
10089
10090         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
10091         (BUILD_VA_LIST_TYPE): New.
10092         (EXPAND_BUILTIN_VA_START): New.
10093         (EXPAND_BUILTIN_VA_ARG): New.
10094         * clipper.c (clipper_builtin_saveregs): Only dump registers.
10095         Return the address of the save area.
10096         (clipper_build_va_list): New.
10097         (clipper_va_start): New.
10098         (clipper_va_arg): New.
10099
10100 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
10101
10102         * arc.h (EXPAND_BUILTIN_VA_START): New.
10103         (EXPAND_BUILTIN_VA_ARG): New.
10104         * arc.c (arc_setup_incoming_varargs): Set alias set of
10105         varargs save area.
10106         (arc_va_start): New.
10107         (arc_va_arg): New.
10108
10109 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
10110
10111         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
10112         (BUILD_VA_LIST_TYPE): New.
10113         (EXPAND_BUILTIN_VA_START): New.
10114         (EXPAND_BUILTIN_VA_ARG): New.
10115         * alpha.c (alpha_builtin_saveregs): Delete.
10116         (alpha_build_va_list): New.
10117         (alpha_va_start): New.
10118         (alpha_va_arg): New.
10119
10120 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
10121
10122         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
10123         column zero.
10124         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
10125         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
10126
10127         * gcc.texi: More changes related to list conversion.
10128         * invoke.texi: Likewise.
10129
10130 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
10131
10132         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
10133         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
10134         (expand_builtin_next_arg): Accept ARGLIST not EXP.
10135         (stabilize_va_list): New function.
10136         (std_expand_builtin_va_start): New function.
10137         (expand_builtin_va_start): New function.
10138         (get_varargs_alias_set): New function.
10139         (std_expand_builtin_va_arg): New function.
10140         (expand_builtin_va_arg): New function.
10141         (expand_builtin_va_end): New function.
10142         (expand_builtin_va_copy): New function.
10143         (expand_builtin): Call them.
10144         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
10145         __builtin_{varargs_start,stdarg_start,end,copy}.
10146         (build_va_arg): New function.
10147         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
10148         (build_va_arg): Declare.
10149         * c-decl.c (ptr_type_node, va_list_type_node): New.
10150         * c-parse.gperf (__builtin_va_arg): New.
10151         * c-parse.in (VA_ARG): New token.
10152         (unary_expr): Recognize it.
10153         * expr.c (expand_expr): Expand VA_ARG_EXPR.
10154         * expr.h (std_expand_builtin_va_start): Declare.
10155         (std_expand_builtin_va_arg): Declare.
10156         (expand_builtin_va_arg): Declare.
10157         (get_varargs_alias_set): Declare.
10158         * tree.def (VA_ARG_EXPR): New.
10159         * tree.h (BUILT_IN_VARARGS_START): New.
10160         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
10161         (ptr_type_node, va_list_type_node): Declare.
10162         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
10163         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
10164         * m88k.h, m88k.c: Likewise.
10165         * mn10300.h, mn10300.c: Likewise.
10166         * pa.h, pa.c: Likewise.
10167         * rs6000.h, rs6000.c: Likewise.
10168         * sh.h, sh.c: Likewise.
10169         * sparc.h, sparc.c: Likewise.
10170
10171         * emit-rtl.c (operand_subword): Copy alias set.
10172         (change_address): Likewise.
10173
10174 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
10175
10176         * pa.c (compute_frame_size): Scan all the used callee saved registers,
10177         not just the first one.
10178
10179 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
10180
10181         * config/arm/arm.h (TARGET_SWITCHES): Add
10182         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
10183         (TARGET_OPTIONS): Add -mpic-register=.
10184         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
10185         (arm_pic_register_string): Declare.
10186         (NEED_PLT_GOT): Delete, replace with ...
10187         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
10188         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
10189         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
10190         * config/arm/arm.c (arm_override_options): Add new option
10191         -mpic-register=N.
10192         (arm_pic_register_string): New variable.
10193         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
10194         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
10195         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
10196         (output_return_instruction): Likewise.
10197         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
10198         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
10199         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
10200
10201         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
10202         mention of -msched-prolog.  Document new options -msingle-pic-base
10203         and -mpic-register=.
10204
10205 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
10206
10207         * haifa-sched.c (reemit_notes): Tidy.
10208         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
10209         haifa's routine.
10210
10211 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
10212
10213         * explow.c (trunc_int_for_mode): New function.
10214         (plus_constant_wide): Use it.
10215         * combine.c (simplify_and_const_int): Likewise.
10216         (merge_outer_ops): Likewise.
10217         (simplify_shift_const): Likewise.
10218         * cse.c (simplify_unary_operation): Likewise.
10219         (simplify_binary_operation): Likewise.
10220         * emit-rtl.c (operand_subword): Likewise.
10221         * rtl.h: Declare it.
10222
10223 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10224
10225         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
10226         (use NUM_REGS instead of NUM_INTS).
10227
10228 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10229
10230         * builtins.c: New file.
10231         * expr.c (saveregs_value, apply_args_value):  Delete definition,
10232         moved into builtins.c.
10233         (string_constant): No longer static.
10234         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
10235         apply_args_size, apply_result_size, result_vector,
10236         expand_builtin_apply_args, expand_builtin_apply,
10237         expand_builtin_return): Delete functions, moved into builtins.c.
10238         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
10239         * expr.h (saveregs_value, apply_args_value): Declare variables.
10240         (expand_builtin, string_constant): Declare functions.
10241         * Makefile.in: Update to build builtin.o.
10242
10243 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
10244
10245         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
10246         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
10247         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
10248         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
10249         false.
10250         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
10251         Define to zero.
10252
10253 1999-07-21  Michael Meissner  <meissner@cygnus.com>
10254
10255         * print-rtl.c (print_rtx): Print the names of the virtual
10256         registers.
10257
10258 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
10259
10260         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
10261         introduced in previous delta.
10262
10263 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10264
10265         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
10266         to avoid name clash.
10267
10268 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10269
10270         * c-lex.c (yylex) : Correct the test for overflow when lexing
10271         integer literals.
10272
10273 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
10274
10275         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
10276         (adjust_priority): Always call ADJUST_PRIORITY.
10277         (schedule_insn): Only put insns into the ready at cost 0.
10278         (schedule_block): Remove redundant initial sort.  Give clock_var
10279         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
10280         is not 0.
10281         * tm.texi (MD_SCHED_REORDER): Update docs.
10282
10283         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
10284         * sparc.c (ultra_reorder_called_this_block): Delete.
10285         (ultrasparc_sched_init): Don't set it.
10286         (ultrasparc_sched_reorder): Don't check it.
10287
10288 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
10289
10290         * rs6000.h (struct rs6000_args): Add sysv_gregno.
10291         * rs6000.c (init_cumulative_args): Init sysv_gregno.
10292         (function_arg_boundary): Align DFmode.
10293         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
10294         to get fp reg and stack overflow correct.
10295         (function_arg): Likewise.
10296         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
10297         (setup_incoming_varargs): Restructure for ABI_V4; use
10298         function_arg_advance to skip final named argument.
10299         (expand_builtin_saveregs): Properly unskip the last integer arg
10300         when doing varargs.  Adjust overflow location calculation.
10301
10302         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
10303         explicitly unsigned.
10304         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
10305         (__VA_GP_REGSAVE): Similarly.
10306         (__va_longlong_p): Delete.
10307         (__va_arg_type_violation): New declaration.
10308         (va_arg): Restructure.  Flag promotion errors.  Align double.
10309         TFmode passed by reference.
10310
10311         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
10312         in the HOST_BITS_PER_WIDE_INT > 32 case.
10313
10314 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
10315
10316         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
10317
10318 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
10319
10320         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
10321         * toplev.c (documented_lang_options): Add -fpreprocessed.
10322         * cpplib.h (struct cpp_buffer): Add preprocessed.
10323         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
10324         (cpp_start_read): Don't expand macros or emit an initial #line
10325         directive if -fpreprocessed.
10326
10327 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
10328
10329         * cpplib.h (struct cpp_buffer): Added manual_pop for
10330         better C++ tokenization.
10331         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
10332         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
10333         * c-common.c (cpp_token): Make non-static.
10334
10335 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10336
10337         * c-common.h: New file.
10338         * c-common.c (permanent_obstack): Delete unused declaration.
10339         (c_global_trees): New array.
10340         (c_common_nodes_and_builtins): New function; split off common code
10341         from init_decl_processing in both c-decl.c and cp/decl.c.
10342         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
10343         c_global_trees and accessor macros defined in c-common.h.
10344         Include c-common.h.
10345         * c-decl.c: Delete definitions for tree nodes that were replaced by
10346         c_global_trees.
10347         (init_decl_processing): Build void_list_node.
10348         Call c_common_nodes_and_builtins; delete code to generate the common
10349         builtins here.
10350         * objc/objc-act.c (build_module_descriptor): Rename variable
10351         void_list_node to avoid clash with c-common.h.
10352
10353         * Makefile.in: Update dependencies.
10354         * objc/Make-lang.in: Likewise.
10355
10356 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
10357
10358         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
10359         (UNIQUE_SECTION_P): Likewise.
10360         (UNIQUE_SECTION): Likewise.
10361
10362 1999-07-19  Linas Vepstas  <linas@linas.org>
10363
10364         * config/i370/README: New file.
10365         * config/i370/linux.h: New file.
10366         * config/i370/mvs.h: New file.
10367         * config/i370/oe.h: New file.
10368         * config/i370/t-linux: New file.
10369         * config/i370/t-mvs: New file.
10370         * config/i370/t-oe: New file.
10371         * config/i370/x-oe: New file.
10372         * config/i370/xm-linux.h: New file.
10373         * config/i370/xm-mvs.h: New file.
10374         * config/i370/xm-oe.h: New file.
10375
10376         * i370.c (label_node_t): Add first_ref_page, label_addr,
10377         label_first_ref, label_last_ref members.
10378         (mvs_need_base_reload): Renamed from mvs_label_emitted.
10379         (MAX_MVS_LABEL_SIZE): Define.
10380         (MAX_LONG_LABEL_SIZE): Define.
10381         (alias_node_t, alias_anchor, alias_number): New.
10382         (mvs_function_table): Reorder for EBCDIC.
10383         (ascebc, ebcasc): Unconditionally define.
10384         (i370_branch_dest, i370_branch_length): New functions.
10385         (i370_short_branch, i370_label_scan): New functions.
10386         (mvs_get_label): Renamed from mvs_add_label.  Search for
10387         an existing label before creating a new one.
10388         (mvs_add_label): New function.
10389         (mvs_get_label_page): New function.
10390         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
10391         over the entire list.
10392         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
10393         (mvs_check_page) [TARGET_ELF_ABI]: New function.
10394         (mvs_add_alias, mvs_need_alias): New functions.
10395         (mvs_get_alias, mvs_check_alias): New functions.
10396         (handle_pragma): New function.
10397         (mvs_function_check): New function.
10398         (unsigned_jump_follows_p): Search harder.
10399         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
10400         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
10401         * i370.h (TARGET_VERSION): Delete.
10402         (CPP_SPEC, CPP_PREDEFINES): Delete.
10403         (mvs_label_emitted): Delete.
10404         (TARGET_EBCDIC): Delete.
10405         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
10406         (HANDLE_PRAGMA): Define.
10407         (HARD_REGNO_NREGS): Handle complex modes.
10408         (HARD_REGNO_MODE_OK): Likewise.
10409         (CLASS_MAX_NREGS): Likewise.
10410         (RET_REG): Likewise.
10411         (EXTRA_CONSTRAINT): Define.
10412         (RETURN_IN_MEMORY): True for DImode.
10413         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
10414         (FUNCTION_PROFILER): Delete.
10415         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
10416         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
10417         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
10418         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
10419         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
10420         (ASM_FILE_START): Add "RMODE ANY".
10421         (ASM_OUTPUT_EXTERNAL): Check for aliases.
10422         (ASM_GLOBALIZE_LABEL): Likewise.
10423         (ASM_OUTPUT_LABELREF): Likewise.
10424         (ASM_OUTPUT_COMMON): Likewise.
10425         (PRINT_OPERAND): Handle 'K', 'W', default.
10426         (PRINT_OPERAND_ADDRESS): New.
10427         (Lots of defines): Add support for TARGET_ELF_ABI.
10428         * i370.md (attr length): New.  Define for all patterns.
10429         (*): Lots of tweeks to assembly output and constraints.
10430
10431 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
10432
10433         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
10434         Disable patterns performing SImode comparisons with SImode values
10435         if TARGET_POWERPC64 and instruction does not sign-extend or does
10436         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
10437         differ for signed quantities.
10438         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
10439         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
10440         (decrement_and_branch_on_count): Add 64-bit variant.
10441
10442 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10443
10444         * final.c (output_asm_insn): When searching for the matching string
10445         for a given dialect, don't run past the end of the list of
10446         alternatives if there are fewer alternatives in the template than
10447         dialects.
10448
10449 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
10450
10451         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
10452         Removed paragraph about compression of files and size limitation,
10453         duplicated in the FAQ.  Use gcc-patches for posting patches.
10454         * gcc.c (main): Updated URL with bug reporting instructions to
10455         gcc.gnu.org.  Removed e-mail address.
10456         * system.h (abort): Likewise.
10457
10458 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10459
10460         * Makefile.in (stmp-multilib-sub): Make the files extracted
10461         from $(LIBGCC1) writable.
10462
10463 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
10464
10465         * config/arm/aout.h: Reformat for improved readability.
10466
10467         * config/arm/arm.h: Reformat for improved readability.
10468         Replace uses of fprintf with asm_fprintf where appropriate.
10469         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
10470         function declaration assembler actions.
10471         (NUM_INTS): New macro: Convert from bytes to words.
10472         (NUM_REGS): New macro: Compute number of registers required to
10473         hold a quanitity of tyep MODE.
10474         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
10475         types.
10476         (NUM_ARG_REGS): New macro: The number of argument registers
10477         available.
10478         (ARG_REGISTER): New macro: Compute the register number of the Nth
10479         argument register.
10480         (LAST_ARG_REGNUM): New macro: The number of the last argument
10481         register.
10482         (SP_REGNUM): New macro: Register number of the stack pointer.
10483         (FP_REGNUM): New macro: Register number of the frame pointer.
10484         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
10485         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
10486         CUMULATIVE_ARGS so that it counts registers not bytes.
10487
10488         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
10489         TARGET_INTERWORK.
10490         Replace uses of fprintf with asm_fprintf where appropriate.
10491         (output_ascii_pseudo_op): Replace with version from thumb.c
10492
10493         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
10494
10495         * config/arm/elf.h (CPP_PREDEFINES): Replace with
10496         SUBTARGET_CPP_SPEC.
10497         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
10498         (ASM_FILE_START): Emit ASM_APP_OFF.
10499
10500 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
10501
10502         * pa.c (compute_frame_size): Round frame according to
10503         STACK_BOUNDARY rather than a hardwired value.
10504
10505         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
10506
10507         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
10508         of "1".
10509         * configure: Rebuilt.
10510
10511         * configure.in (hppa*-*-linux*): New configuration.
10512         * configure: Rebuilt.
10513         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
10514         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
10515         * pa/pa-linux.h: New file.
10516         * pa/t-linux: New file.
10517         * pa/xm-linux.h: New file.
10518
10519         * pa.c (hppa_legitimize_address): Change references from SImode to
10520         either Pmode or word_mode as appropriate.
10521         (emit_move_sequence, store_reg, load_reg): Likewise.
10522         (set_reg_plus_d, hppa_expand_prologue): Likewise.
10523         (output_mul_insn): Likewise.
10524         * pa.h (PROMOTE_MODE): Likewise.
10525         (INITIALZE_TRAMPOLINE): Likewise.
10526         (Pmode): Define to word_mode.
10527
10528         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
10529         value of 4.  Allocate 8 bytes for each FP register save.
10530         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
10531         value of 4.
10532         (hppa_expand_prologue): Likewise.
10533         * pa.h (PROMOTE_MODE): Likewise.
10534         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
10535         (FUNCTION_ARG_BOUNDARY): Likewise.
10536
10537         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
10538
10539         * pa.c (out_of_line_prologue_epilogue): Delete.
10540         (override_options): Remove -mspace related code.
10541         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
10542         (compute_frame_size): Only allocate space for register that
10543         actually need to be saved.
10544         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
10545         (TARGET_SWITCHES): Remove -mspace, -mno-space
10546         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
10547         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
10548         * pa/ee.asm, pa/ee_fp.asm: Delete.
10549
10550         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
10551
10552         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
10553         directive in column zero.
10554
10555 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
10556
10557         * m68k.c (output_function_prologue): Fix computation of save mask
10558         when generating PIC code.
10559
10560 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
10561
10562         * tree.c (build_type_attribute_variant): Move current_obstack restore
10563         after build_qualified_type call.
10564
10565 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
10566
10567         * configure.in: Use t-iris6, even with GNU LD.
10568         * config/mips/iris6gld.h: Fix typo in linker spec.
10569         * config/mips/t-iris6gld: Remove.
10570
10571 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
10572
10573         * rs6000.md (insv, extzv): Remove SImode dependence in named
10574         patterns.  Explicitly generate DImode RTL if PowerPC64 and
10575         operand is DImode.
10576         (insvdi): Reverse start and size in instruction template.
10577
10578 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
10579
10580         * invoke.texi: Typo fixes.
10581
10582 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
10583
10584         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
10585         handle at this time instead of silently generating incorrect code.
10586         (gen_imagpart): Likewise.
10587
10588         * reload.c (find_reloads): Emit a USE for a pseudo register without
10589         a hard register if we could not create an optional reload for the
10590         pseudo.
10591
10592 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10593
10594         * c-typeck.c (output_init_element, process_init_element):
10595         When advancing constructor_unfilled_fields for a RECORD_TYPE,
10596         check for nameless bit fields.
10597
10598 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
10599
10600         * regclass.c (scan_one_insn): Notice subregs that change the
10601         size of their operand.
10602         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
10603
10604 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
10605
10606         * configure.in (alpha*-*-*): Include alpha/t-ieee.
10607         * configure: Rebuilt.
10608         * alpha/t-ieee: New file.
10609
10610 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
10611
10612         * rs6000.c (find_addr_reg): Do not select r0 as an address
10613         register.
10614
10615 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
10616
10617         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
10618
10619 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
10620
10621         * rs6000.md (movsf): Do not force easy FP constants into memory.
10622
10623         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
10624         immed_double_const to ensure they are properly truncated then
10625         sign extended.
10626
10627 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
10628
10629         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
10630         always unless NO_DEBUG is used.  Compile this code
10631         unconditionally.
10632         (replace_symbols_in_block): Compile it unconditionally.
10633
10634 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
10635
10636         * configure.in (i?86-*-elf*): New target.
10637         * configure: Rebuilt.
10638         * i386/i386elf.h, i386/t-i386elf: New files.
10639
10640 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
10641
10642         * toplev.c (main): Don't complain about saying -gdwarf.
10643         (rest_of_compilation): Remove redundant code.
10644
10645 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
10646
10647         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
10648
10649 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
10650
10651         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
10652         "Li960R:", to avoid name clash.
10653
10654 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
10655
10656         * loop.c (check_dbra_loop): When reversing a loop, delete all
10657         REG_EQUAL notes referencing the reversed biv except those which are
10658         for a giv based on it.
10659
10660 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
10661
10662         * version.c: Drop "gcc-" prefix from version #.
10663
10664 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
10665
10666         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
10667         the label if we're being verbose.
10668
10669 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
10670
10671         * m68k.c (output_function_prologue): Add pic register to mask
10672         if live and flag_pic.
10673         (output_function_epilogue): Likewise.
10674
10675 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
10676
10677         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
10678         directives in column zero.
10679
10680         * pa/elf.h (ASM_FILE_START): Define.
10681         * pa/som.h (ASM_FILE_START): Include .level directives.
10682         * pa/hpux10.h (ASM_FILE_START): Delete.
10683         * pa/hpux11.h (ASM_FILE_START): Delete.
10684
10685         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
10686
10687 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10688
10689         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
10690         when reload_out equals reload_in.
10691
10692 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
10693
10694         * invoke.texi (Spec Files): New node: Describe the contents of
10695         spec files.
10696
10697 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
10698
10699         * invoke.texi (DEC Alpha Options): Put @end table at
10700         beginning of line, to avoid confusing texi2html.
10701
10702 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
10703
10704         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
10705         introduced in previous delta.
10706
10707 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10708
10709         * reload1.c (gen_reload): When synthesizing a 3 operand add
10710         sequence, improve test for when to reload OP1 into the reload
10711         register instead of OP0.
10712
10713 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
10714
10715         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
10716
10717 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
10718
10719         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
10720         string literal.
10721
10722 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
10723
10724         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
10725         (va_dcl): Use __builtin_va_alist_t.
10726
10727 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
10728
10729         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
10730         on the permanent_obstack.
10731         * dwarfout.c (output_type): Likewise.
10732
10733 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10734
10735         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
10736         Merged from c-typeck.c and cp/typeck.c.
10737         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
10738         Merged into c-common.
10739
10740 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
10741
10742         * c-lex.c (errorcount): Declare it.
10743         (finish_parse): Update errorcount when using CPPLIB.
10744
10745 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
10746
10747         * fixinc/inclhack.def(end_else_label): Double the backslash so
10748         sed gets a chance to see it.
10749         * fixinc/inclhack.sh: regen
10750         * fixinc/fixincl.x: regen
10751
10752 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
10753
10754         Add framework to support armv5 architecture when it becomes
10755         available:
10756
10757         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
10758         (arm_arch5): New variable.
10759         (all_architectures): Add armv5 line.
10760         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
10761         -march=armv5 is specified on the command line.
10762         (arm_arch5): Export this variable.
10763         * invoke.texi: Document new string accepted by -march= switch for
10764         ARM ports.
10765
10766         * config/arm/arm.h: Replace use of constant 12 as a register
10767         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
10768         * config/arm/arm.c: Replace use of constant 12 as a register
10769         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
10770
10771         * config/arm/elf.h: Tidy up.
10772         * config/arm/coff.h: Tidy up.
10773
10774 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
10775
10776         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
10777         * gcc/config/mips/t-iris6gld: New file.
10778         * gcc/config/mips/iris6gld.h: Likewise.
10779
10780 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10781
10782         * c-decl.c (widest_integer_literal_type_node,
10783         widest_unsigned_literal_type) : New.
10784         (init_decl_processing): Handle/use the two new types.
10785         * c-common.c (type_for_size,type_for_mode) : Same.
10786         * c-lex.c (yylex) : Same.
10787         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
10788         Same.
10789         * c-tree.h (widest_integer_literal_type_node,
10790         widest_unsigned_literal_type) : New.
10791
10792 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
10793
10794         * dwarfout.c (field_byte_offset): Correctly compute the object's
10795         byte offset for the first bit of a field which crosses an alignment
10796         boundary on a !BYTES_BIG_ENDIAN target.
10797
10798 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
10799
10800         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
10801         ntohs.
10802
10803 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
10804                           Jeff Law <law@cygnus.com>
10805
10806         * ginclude/varargs.h (va_dcl): Use word_mode for type of
10807         __builtin_va_list.
10808
10809         * except.c: Include intl.h.
10810         (expand_eh_return): Set current_function_cannot_inline.
10811         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
10812         * function.h (struct function): Add eh_return_stub_label.
10813         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
10814         * Makefile.in (except.o): Depend on intl.h.
10815
10816 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
10817
10818         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
10819         same as offsettable in cases 1 and 2.
10820
10821 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
10822
10823         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
10824         (extlh, extwh): Likewise.
10825
10826 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10827
10828         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
10829
10830 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
10831
10832         * configure.in: Add arm-pe and thumb-pe targets.
10833         * configure: Regenerate.
10834
10835         * thumb.c (arm_naked_function_p): New function: Determines if
10836         a function is naked (has no gcc generated prologue/epilogue).
10837         (is_called_in_ARM_mode): Return true if the func has the
10838         interfacearm attribute.
10839         (output_return): Do not generate a return for naked functions.
10840         (thumb_function_prologue): Do not generate a prologue for
10841         naked functions.
10842         (thumb_expand_prologue): Do not generate a prologue for naked
10843         functions.
10844         (thumb_expand_epilogue): Do not generate an epilogue for naked
10845         functions.
10846         (arm_valid_machine_decl_attribute): New function, copied from
10847         arm.c:  Permit naked and interfacearm attributes.
10848
10849         * config/arm/pe.c: New file: Support code for arm-pe target.
10850         * config/arm/pe.h: New file: Header file for arm-pe target.
10851         * config/arm/tpe.h: New file: Header file for thumb-pe target.
10852         * config/arm/t-thumb-pe: New file: Makefile fragment for
10853         thumb-pe target.
10854
10855 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
10856
10857         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
10858         -fPIC or -fpic is specified.
10859
10860 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
10861
10862         * expr.c (emit_block_move): Use copy_to_mode_reg for
10863         !TARGET_MEM_FUNCTIONS case too.
10864
10865         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
10866         appropriate.
10867         * configure: Rebuilt.
10868         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
10869         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
10870         definitions made redundant by dbxelf.h inclusion.  Delete
10871         lots of definitions related to assembly output that are
10872         specific to the SOM object format.
10873         * pa.c (output_function_prologue): Do not emit the function's
10874         name for OBJ_ELF.
10875         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
10876         * pa-pro.h: Deleted.
10877         * som.h: New file with SOM specific definitions.
10878         * elf.h: New file with ELF specific definitions.
10879
10880         * elfos.h (const_section): Output a tab before assembler directives.
10881         (ctors_section, dtors_section): Likewise.
10882         (ASM_OUTPUT_SECTION_NAME): Likewise.
10883
10884         * pa/pa1.h: Delete unused file.
10885
10886 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
10887
10888         * configure.in (hppa*-hp-hpux11*): New configuration.
10889         * configure: Rebuilt.
10890         * pa/pa-hpux11.h: New file.
10891         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
10892         command line.
10893
10894         * mips.md (leasi, leadi): New patterns.
10895
10896         * expr.c (emit_block_move): Properly handle case where one of the
10897         block move arguments has a queued increment or decrement.
10898         (clear_storage): Similarly.  Fix formatting goof.
10899
10900 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
10901
10902         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
10903         semicolon from the BSD VA_LIST replacement expression.
10904
10905         * fixinc/inclhack.sh: regen
10906         * fixinc/fixincl.x: regen
10907
10908         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
10909         now use the fixincl program.
10910
10911 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
10912
10913         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
10914         case.  Also make the PIC register call_used.
10915
10916         * m68k.h (FINALIZE_PIC): Delete.
10917         * m68k.c (finalize_pic): Delete.
10918
10919 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
10920
10921         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
10922         to memory.
10923
10924 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
10925
10926         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
10927
10928 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
10929
10930         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
10931
10932 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
10933
10934         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
10935
10936 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
10937
10938         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
10939
10940 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
10941
10942         * rs6000.c (output_toc): Always use hex values for floating-point
10943         constants.  Store single-precision values in upper-half of TOC
10944         entry in 64-bit mode.
10945         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
10946         to final constraints.
10947         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
10948         (fctiwz): Improve accuracy of RTL for pattern.
10949
10950 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
10951
10952         * expr.c (expand_expr): Allow RTL_EXPR's through the
10953         MAX_INTEGER_COMPUTATION_MODE checks.
10954
10955 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
10956
10957         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
10958         such that MASK_SUPPORT_ARCH is not negative.
10959
10960 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
10961
10962         * loop.c (verify_dominator): Properly handle ADDR_VEC and
10963         ADDR_DIFF_VEC insns that appear inside loops.
10964
10965 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
10966                           Jeff Law <law@cygnus.com>
10967
10968         * rs6000.md (movdf_hardfloat32): Revert previous patch.
10969         Handle LO_SUM the same as offsettable in cases 1 and 2.
10970         * rs6000.c (find_addr_reg): Revert previous patch.
10971
10972 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
10973
10974         * system.h (strstr): New external function declaration.
10975         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
10976         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
10977         * config.in, configure: Rebuilt.
10978
10979 1999-06-24  Tom Tromey  <tromey@cygnus.com>
10980
10981         * gcc.c (main): Read user-specified specs files after computing
10982         additional startfile_prefixes.
10983
10984 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
10985
10986         Revert these two patches:
10987
10988         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10989         * loop.c (strength_reduce): When doing biv->giv conversion, update
10990         reg note of NEXT->insn.
10991
10992         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10993         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
10994         reg_biv_class.
10995         (recombine_givs): Set ix field after sorting.
10996
10997 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
10998
10999         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
11000         for the parts of an UNSPEC / UNSPEC_VOLATILE.
11001
11002 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
11003
11004         *fixinc/inclhack.def:  Add fix development commentary
11005         (read_ret_type): reactivate and add selection clause
11006         (zzz_*): tweak output file name to match what is used in hackshell.tpl
11007         *fixinc/{fixincl.x|inclhack.sh}: regen
11008
11009 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
11010
11011         * expr.c (expand_expr): STRIP_NOPS before checking against
11012         MAX_INTEGER_COMPUTATION_MODE
11013         (check_max_integer_computation_mode): Likewise.
11014
11015 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
11016
11017         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
11018
11019 1999-06-22  Jim Wilson  <wilson@cygnus.com>
11020
11021         * expr.c (store_expr): When target is a promoted subreg, return a
11022         promoted subreg as a result.
11023
11024 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
11025
11026         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
11027         coding standards.
11028         (dwarf2out_define): Mark unused parameters appropriately.
11029         (gen_unspecified_parameters_die): Ditto.
11030         (gen_subprogram_die): Fix signed/unsigned warnings.
11031         (gen_variable_die): Ditto.
11032
11033 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
11034
11035         * fixinc/inclhack.def(end_else_label): combined else_label
11036         and endif_label and fixed the sed expression.
11037         *fixinc/{fixincl.x|inclhack.sh}: regen
11038
11039 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
11040
11041         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
11042         'x' when handling non-offsettable addresses
11043
11044 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
11045
11046         * final.c (shorten_branches): Don't try to split an insn that has
11047         been deleted.
11048
11049 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
11050
11051         * config/mips/mips.c (symbolic_expression_p): New function.
11052         (mips_select_rtx_section): Put symbolic expressions in the
11053         data section, not the read-only data section.
11054
11055 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
11056
11057         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
11058
11059 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
11060
11061         * collect2.c (main): Log frame table count.
11062         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
11063         (scan_prog_file) [COFF]: Handle frame tables.
11064
11065         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
11066         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
11067         * alpha/elf.h: Undef them again.
11068         * alpha/vms.h: Remove their definitions.
11069
11070 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11071
11072         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
11073         remove the clobber of r0 and change the REG_UNUSED note to
11074         REG_INC.
11075
11076 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
11077
11078         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
11079         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
11080         fits in HOST_WIDE_INT and one uses union to access a long constant
11081         as double.
11082
11083 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
11084
11085         * sparc.c (sparc_override_options): Don't allow profiling for
11086         code models other than medlow.
11087         (sparc_function_profiler): New function from old FUNCTION_PROFILER
11088         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
11089         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
11090         (sparc_block_profiler): Likewise.
11091         (sparc_function_block_profiler_exit): Likewise.
11092         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
11093         (FUNCTION_BLOCK_PROFILER): Likewise.
11094         (BLOCK_PROFILER): Likewise.
11095         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
11096         (MCOUNT_FUNCTION): New.
11097         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
11098         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
11099         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
11100         (MCOUNT_FUNCTION): New.
11101         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
11102         (BLOCK_PROFILER): Delete.
11103         (MCOUNT_FUNCTION): New.
11104
11105 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
11106
11107         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
11108
11109 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
11110
11111         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11112         Add the macros.
11113
11114         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11115         Ditto.
11116
11117         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11118         Ditto.
11119
11120         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
11121         Ditto.
11122
11123 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
11124
11125         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
11126         types.
11127
11128 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
11129
11130         * i386/djgpp.h (LIB_SPEC): New.
11131         (STARTFILE_SPEC): New.
11132
11133         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
11134
11135 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
11136
11137         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
11138         compiler flags.
11139
11140         * system.h (WSTOPSIG): New macro.
11141
11142 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11143
11144         * c-pragma.c (push_alignment): Don't ignore alignments greater than
11145         4 bytes.
11146         (insert_pack_attributes): Take into account member natural
11147         alignment.
11148
11149         * i386/winnt.c (exports_head): New static variable.
11150         (i386_pe_record_exported_symbol): New function.
11151         (i386_pe_asm_file_end): Use.
11152         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
11153         symbols to be emitted at end of assembly.
11154         (ASM_DECLARE_OBJECT_NAME): Likewise.
11155         (ASM_DECLARE_FUNCTION_NAME): Likewise.
11156
11157         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
11158         -iwithprefix.
11159
11160 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
11161
11162         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
11163         in last change.
11164
11165 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
11166
11167         * haifa-sched.c (sched_analyze_1): Use free_list instead of
11168         zapping reg_last_uses directly.
11169         (sched_analyze_2, sched_analyze_insn): Likewise.
11170         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
11171
11172 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
11173
11174         * rs6000.md (movdf_hardfloat32): Use worst case insn length
11175         attributes for cases 1 and 2.
11176
11177 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
11178
11179         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
11180         instead of set.
11181
11182 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
11183
11184         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
11185
11186 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
11187
11188         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
11189         PIC_OFFSET_TABLE_REGNUM for general alloaction.
11190         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
11191         must be stacked if it is used for PIC accesses.
11192         * arm.c (use_return_insn): Handle PIC register specially.
11193         (output_return_instruction): Likewise.
11194         (output_func_{prologue,epilogue}): Likewise.
11195         (output_expand_prologue): Likewise.
11196
11197         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
11198         (*strsi_predec): Renamed from *strqi_predec.
11199         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
11200         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
11201
11202         * arm.c (arm_override_options): Remove warning about PIC code
11203         not being supported.
11204
11205 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
11206
11207         * rs6000.c (find_addr_reg): New function.
11208         * rs6000.h (find_addr_reg): Declare.
11209         (offsettable_addr_operand): Delete.
11210         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
11211         from and stores to GPRs.
11212
11213 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
11214
11215         * alpha.c (alpha_expand_block_move): Use get_insns rather than
11216         gen_sequence as argument to emit_no_conflict_block.
11217
11218 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11219
11220         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
11221         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
11222         *fixinc/fixincl.x: regen
11223         *fixinc/inclhack.sh: regen
11224
11225 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
11226
11227         * added support for -mpcrel (PC relative addressing for m68k)
11228         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
11229         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
11230         * m68k.c (print_operand_address): Handle 32-bit PIC case.
11231         (comments for general_src_operand): Add some explanation
11232         about EXTRA_CONSTRAINTS.
11233         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
11234         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
11235         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
11236         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
11237         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
11238         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
11239         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
11240         if not already set.
11241         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
11242         * m68k.h (TARGET_PCREL): New target flag.
11243         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
11244         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
11245         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
11246         contains a SYMBOL_REF.  Relax this constraint during reload, since
11247         we want to use the predicates, not reload's built-in concept of a
11248         valid memory address, to control what insns need reloading.
11249         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
11250         operands (essentially 'g', 'm', and 's' under normal circumstances).
11251         * m68k.c (print_operand): Cause printing of pc-relative addresses
11252         to include pc register.
11253         (print_operand_address): Ditto.
11254         (general_src_operand): Accept operands that are not only
11255         general_operands, but are also valid when used as a pc-relative
11256         source.
11257         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
11258         (memory_src_operand): Similar, for memory_operands.
11259         (pcrel_address): New predicate to accept the special case of a
11260         pc-relative address.
11261         * m68k.md (many patterns): Rewrite common SImode, HImode, and
11262         QImode insns to accept *_src_operand instead of *_operand where
11263         pc-relative operands can fit.  For example, a pc-relative operand
11264         can be used as a memory source operand for addsi3, but not as a
11265         memory destination.
11266         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
11267
11268 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
11269
11270         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
11271         .thumb_set pseudo op to mark aliases of thumb functions.
11272
11273 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
11274
11275         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
11276         preference to ASM_OUTPUT_DEF, if it is defined.
11277
11278         * tm.texi: Document new, optional target macro
11279         ASM_OUTPUT_DEF_FROM_DECLS.
11280
11281 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11282
11283         * fixincludes: ISCNTL patch
11284         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
11285         (dgux_int_varargs): new for DG/UX
11286         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
11287
11288 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
11289
11290         * invoke.texi (ia32 options): Fix typo.
11291
11292 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11293
11294         * loop.c (strength_reduce): When doing biv->giv conversion, update
11295         reg note of NEXT->insn.
11296
11297 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
11298
11299         * loop.c (move_movables): Note issues with replacing REGs with
11300         SUBREGs.
11301         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
11302
11303 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
11304
11305         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
11306
11307         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
11308         the reference to `mcount' was not correct for the ELF on FreeBSD.
11309
11310 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11311
11312         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
11313         reg_biv_class.
11314
11315         (recombine_givs): Set ix field after sorting.
11316
11317 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
11318
11319         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
11320         to safe to extract a subword out of a REG.
11321
11322 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11323
11324         * sh.md (mulsi3): Don't add a no-op move at the end.
11325
11326 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11327
11328         * cse.c (cse_insn): Don't put hard register source into tables for
11329         the last insn of a libcall.
11330
11331 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11332
11333         * loop.c (strength_reduce): Insert sets of derived givs at every
11334         biv increment, even if it's the only one.
11335
11336 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
11337
11338         * dwarfout.c (add_incomplete_type): New fn.
11339         (output_type): Call it.
11340         (retry_incomplete_types): New fn.
11341         (dwarfout_finish): Call it.
11342
11343         From Eric Raskin <ehr@listworks.com>:
11344         (output_type): Output types for bases.
11345
11346 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
11347
11348         * mips.c (mips_output_conditional_branch): Add `break'
11349         between `default' label and `close braces'.
11350
11351 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
11352
11353         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
11354         specifications and make it realistic.
11355         (LIB_SPEC): Likewise.
11356
11357 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
11358
11359         * config/mips/mips.c (mips_secondary_reload_class): Check for
11360         (PLUS (SP) (REG)) and return appropriate register class.
11361         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
11362         Handle (PLUS (SP) (REG)).
11363         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
11364         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
11365         of emit_insn for tablejump.
11366
11367 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
11368
11369         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
11370         asm_fprintf format string by itself.
11371         (output_function_profiler): Likewise.
11372
11373 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
11374
11375         * combine.c (simplify_logical, case AND): Only call
11376         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
11377         or the constant is positive.
11378
11379 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
11380
11381         * configure.in: Fix typo in rs6000-ibm-aix4 case.
11382         * configure: Regenerate.
11383
11384 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
11385
11386         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
11387         require a sub-version #.
11388         * configure: Rebuilt.
11389
11390 1999-06-14  Robert Lipe  (robertlipe@usa.net)
11391
11392         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
11393
11394 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
11395
11396         * c-typeck.c (process_init_element): Detect excess elements in
11397         char array initializer.
11398
11399 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
11400
11401         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
11402
11403 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
11404
11405         * invoke.texi (Option Summary): Add -fpermissive flag.
11406
11407 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
11408
11409         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
11410         that require PIC code sequences.
11411
11412 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
11413
11414         * configure.in: Add new target: thumb-elf.
11415         * configure: Regenerate.
11416         * config/arm/t-thumb-elf: New file: Makefile fragment for
11417         thumb-elf build.
11418         * config/arm/telf.h: New file: Header file for thumb-elf
11419         build.
11420
11421 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
11422
11423         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
11424         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
11425         initializers is some circumstances.
11426
11427         * fixinc/inclhack.def (endif_label): Add additional selector for
11428         more bogus stuff after #endif statements.
11429         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
11430
11431 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11432
11433         * i386/cygwin.h (SET_ASM_OP): Define.
11434
11435 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11436
11437         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
11438
11439 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11440
11441         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
11442         latter.
11443
11444         * sh.md (ic_invalidate_line_i): Remove second alternative.
11445
11446 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11447
11448         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
11449         test for the presence of valid prototypes.  Delete bypass expr.
11450         (ioctl_fix_ctrl): Correct the selection expression.
11451         (no_double_slash): Correct quoting rules
11452         *fixinc/fixincl.x: regen
11453         *fixinc/inclhack.sh: regen
11454
11455 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
11456
11457         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
11458
11459 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11460
11461         * rs6000.md (movsi_got_internal_mem): Delete.
11462         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
11463         (GOT_TOC_REGNUM): Delete.
11464         (PIC_OFFSET_TABLE_REGNUM): Define.
11465         (FINALIZE_PIC): Disable.
11466         * rs6000.c (rs6000_got_register): New code for fixed pic register.
11467         (rs6000_replace_regno): Delete.
11468         (rs6000_finalize_pic): Likewise.
11469         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
11470
11471 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11472
11473         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
11474         is a note; use <= for the compare; advance P while it is
11475         a NOTE.
11476
11477 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
11478
11479         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
11480         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
11481
11482         * varasm.c (remove_from_pending_weak_list): Verify t->name
11483         is non-NULL before passing it to strcmp.
11484
11485 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11486
11487         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
11488         the typed arguments are not part of a comment
11489         (ioctl_fix_ctrl): Added a purpose comment
11490         *fixinc/fixincl.x: regenerate
11491         *fixinc/inclhack.sh: regenerate
11492
11493 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11494
11495         * invoke.texi: Add C4x invocation docs.
11496
11497 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11498
11499         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
11500         Define new macros.
11501         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
11502         TARGET_EXPOSE_LDP.
11503         (c4x_legitimize_reload_address): New function.
11504         * config/c4x/c4x.md: Update docs.
11505
11506 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
11507
11508         * fixincludes: Avoid removing '.'.
11509         * fixinc/fixinc.svr4: Likewise.
11510         * fixinc/fixinc.winnt: Likewise.
11511         * fixinc/inclhack.tpl: Likewise.
11512         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
11513
11514 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11515
11516         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
11517         pattern.
11518         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
11519
11520 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
11521
11522         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
11523         correctly.
11524
11525 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
11526
11527         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
11528         * configure: Regenerate.
11529
11530 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
11531
11532         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
11533         values.
11534
11535 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
11536
11537         * fixinc/inclhack.def (avoid_bool): Also catch
11538         "typedef [unsigned] int bool".
11539         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
11540
11541         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
11542         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
11543         * configure: Rebuilt.
11544
11545 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
11546
11547         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
11548         such that we can override its definitions if necessary.
11549         (CPP_SPEC): New define.  Support processor specific predefines via
11550         %(cpp_cpu).
11551         (CC1_SPEC): New define.  Support processor specific compiler
11552         options via %(cc1_cpu).
11553         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
11554         -static.
11555
11556 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11557
11558         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
11559         between sed's -e flag, and the open-quote following it.
11560         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
11561
11562 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
11563                           Jeffrey A Law  (law@cygnus.com)
11564
11565         * varasm.c (assemble_start_function): Remove the function
11566         from the pending weak decls list when we define a function.
11567         (assemble_variable): Similarly for variables.
11568         (weak_finish): Ignore items on the list with a NULL name.
11569         (remove_from_ending_weak_list); New function to "remove" an item
11570         from the pending weak declarations list.
11571
11572 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
11573
11574         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
11575
11576 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
11577
11578         * c-lex.c (GETC): Redefine to call getch.
11579         (UNGETC): Redefine to call put_back.
11580         (putback_buffer): New structure type.
11581         (putback): New static structure.
11582         (getch): New function.
11583         (put_back): New function.
11584         (yylex): Replace unused bytes from bad multibyte character.
11585
11586 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
11587
11588         * cpplib.c (do_define): Cast `alloca' return value.
11589         (do_include, do_undef, do_pragma): Likewise.
11590         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
11591         values.
11592         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
11593         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
11594
11595 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
11596
11597         * sparc.md (abstf2): This should be an expand.
11598         (split after abstf2_notv9): Fix mode.
11599         (abstf2_hq_v9): New pattern.
11600         (abstf2_v9): Only use when no hard quad.
11601         (absdf2_v9): Fix if target is not the same as source.
11602         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
11603         Add correct output constraints.
11604
11605 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
11606
11607         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
11608         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
11609
11610 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
11611
11612         * mips.h (mips_output_conditional_branch): New function.
11613         (mips_adjust_insn_length): Likewise.
11614         (ASSEMBLER_SCRATCH_REGNUM): New macro.
11615         (ADJUST_INSN_LENGTH): Likewise.
11616         * mips.c (print_operand): Add `F' and `W' for floating-point
11617         comparison opcodes.
11618         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
11619         are now in bytes.
11620         (mips_adjust_insn_length): New function.
11621         (mips_output_conditional_branch): New function.
11622         * mips.md (length): Adjust attribute definition to handle
11623         conditional branches.   Change lengths to bytes, rather than
11624         instructions throughout.  Remove length attribute from
11625         instructions whose length is four bytes, and rely on the default
11626         instead.
11627         (dslot): Fix typo in comment.
11628         Reword conditional branch patterns to use
11629         mips_output_conditional_branch.
11630
11631 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11632
11633         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
11634         (LIB_SPEC): Likewise.
11635         Link with -lprof1_r for -g/-pg.
11636
11637 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
11638
11639         * loop.c (check_dbra_loop): Fix change of Jan 19.
11640
11641 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
11642
11643         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
11644         (STARTFILE_SPEC):  Define, override the svr4.h version.
11645         (ENDFILE_SPEC):  Likewise.
11646
11647 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
11648
11649         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
11650         * fixinc/fixincl.x: Regenerated.
11651         * fixinc/inclhack.sh: Regenerated.
11652
11653 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11654
11655         * sh.c (barrier_align): Don't return early for normal branch/barrier
11656         when optimizing for SH2.
11657
11658 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
11659
11660         * i386/udk.h (LINK_SPEC): Correct linker search path for
11661         system libraries.
11662
11663 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11664
11665         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
11666         (braf_label_ref_operand): Delete.
11667         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
11668         * sh.md (casesi_jump_2): Operand1 is now the inside of a
11669         label_ref, and has no predicate.
11670         The patten has a predicate to guard against invalid substitutions.
11671         (dummy_jump): Delete.
11672         (casesi): Update use of casesi_jump_2.
11673
11674 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
11675
11676         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
11677         *fixinc/fixincl.x: regenerate
11678         *fixinc/inclhack.sh: regenerate
11679
11680 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
11681
11682         * dwarf2out.c (add_incomplete_type): New fn.
11683         (gen_struct_or_union_type_die): Call it.
11684         (retry_incomplete_types): New fn.
11685         (dwarf2out_finish): Call it.
11686
11687 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
11688
11689         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
11690         current block starts with a CODE_LABEL and ends with a CALL and
11691         we can not find all the argument setup instructions for the CALL.
11692
11693 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
11694
11695         Revert this change:
11696         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
11697         something is a candidate for optimize_bit_field_compare.
11698
11699 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11700
11701         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
11702
11703 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
11704
11705         * alpha.c (override_options): Thinko in last patch.
11706
11707         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
11708         (LIB_SPEC): Recognize -pthread.
11709
11710 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
11711
11712         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
11713         definition in config/arm/coff.h
11714         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
11715
11716 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
11717
11718         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
11719         fixes that need "file=xxx\n" prepended before invocation
11720         (start_fixer - new): starting the fixer process is complex enough
11721         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
11722         (process): uses the new routine; omit usage of putenv()
11723         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
11724         * fixinc/fixincl.x: regenerate
11725
11726 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
11727
11728         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
11729         and version #s (1.1 -> 2.96) as needed.
11730         * README.g77: Kill way out of date file in the toplevel directory.
11731
11732 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
11733
11734         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
11735         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
11736         * configure: Rebuilt.
11737         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
11738         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
11739         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
11740         (SWITCH_TAKES_ARG): Likewise.
11741         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
11742         * config/t-freebsd: Moved from config/i386/ so it can used for all
11743         FreeBSD targets.
11744
11745 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
11746
11747         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
11748
11749 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
11750
11751         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
11752         * configure: Rebuilt.
11753
11754 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
11755
11756         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
11757         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
11758         * rs6000/rs6000.c (rs6000_file_start): Use putc.
11759         (rs6000_output_load_toc_table): Same.
11760         (output_prolog, output_mi_thunk): Same.
11761         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
11762         (ASM_GLOBALIZE_LABEL): Use putc.
11763
11764 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
11765
11766         * alpha.md (reload_*_help): New patterns and splitters.
11767         (reload_*): Use them.
11768         (mov[qh]i): Likewise.
11769
11770 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
11771
11772         * cccp.c (handle_directive): Handle backslash-newlines in quoted
11773         strings correctly.
11774
11775 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
11776
11777         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
11778
11779 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
11780
11781         * flow.c (mark_regs_live_at_end, insn_dead_p,
11782         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
11783         and HARD_FRAME_POINTER_REGNUM special treatment if reload
11784         hasn't run or the frame pointer is needed.
11785         * haifa-sched.c (attach_deaths): Likewise.
11786         * sched.c (attach_deaths): Likewise.
11787
11788 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
11789
11790         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
11791         calculate_can_reach_end returns nonzero.
11792
11793         * configure.in (native gas tests): Search for an assembler in the
11794         same manner that the installed compiler will.
11795         * configure: Rebuilt.
11796         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
11797
11798         * alias.c (find_base_term): Improve handling of addresses
11799         constructed from binary operations.
11800
11801 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
11802
11803         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
11804
11805 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
11806
11807         * function.h (cleanup_label, frame_offset): Declare.
11808         (tail_recursion_label, tail_recursion_reentry): Likewise.
11809         (arg_pointer_save_area, rtl_expr_chain): Likewise.
11810         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
11811         (tail_recursion_label, tail_recursion_reentry): Likewise.
11812         (arg_pointer_save_area, rtl_expr_chain): Likewise.
11813
11814 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
11815
11816         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
11817         defined.
11818         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
11819         (MAX_OFILE_ALIGNMENT): Define.
11820
11821 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
11822
11823         * fixincl.c: Replace local include scheme with #includes of
11824         gansidecl.h and system.h.
11825         * procopen.c:  Likewise.
11826         * server.c:  Likewise.
11827
11828 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
11829
11830         * i386/t-dgux (EXTRA_PARTS): Add crti.o
11831         (crti.o): Add build rule and dependencies.
11832         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
11833
11834 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11835
11836         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
11837         (LIB_LINUX_SPEC): Likewise.
11838         (LIB_LINUX_SPEC): Add support for -pthread
11839         (CPP_OS_LINUX_SPEC): Likewise.
11840         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
11841         specified.
11842
11843 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
11844
11845         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
11846         conditional move.
11847         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
11848         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
11849         for IEEE math and CC_FCOMI.
11850         (put_jump_code): No IEEE if CC_FCOMI is set.
11851
11852 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
11853
11854         * fold-const.c (fold_truthop): Make the field reference unsigned
11855         when converting a single bit compare.
11856
11857 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
11858
11859         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
11860
11861 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
11862
11863         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
11864         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
11865         version did.
11866
11867         * reload.c (push_reload): Do not call remove_address_replacements
11868         when presented with identical optional reloads.
11869
11870 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
11871
11872         * alpha.h (MASK_FIX, TARGET_FIX): New.
11873         (MASK_*): Reorganize constants.
11874         (CPP_AM_FIX_SPEC): New.
11875         (TARGET_SWITCHES): Add FIX.
11876         (EXTRA_SPECS): Likewise.
11877         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
11878         (SECONDARY_MEMORY_NEEDED): Likewise.
11879         (REGISTER_MOVE_COST): Likewise.
11880         * alpha.c (override_options): Add FIX support.  Always use
11881         ALPHA_TP_PROG for ev6.
11882         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
11883         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
11884         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
11885
11886 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
11887
11888         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
11889         something is a candidate for optimize_bit_field_compare.
11890
11891 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
11892
11893         * gcc.texi (Passes): Document branch-shortening.
11894         * invoke.texi (Debugging Options): Document the fact that `-dp'
11895         outputs length information for instructions.
11896
11897 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
11898
11899         * flow.c: Revert previous delta.
11900
11901 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
11902
11903         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
11904         FRAME_POINTER_REGNUM.
11905         (mark_set_1): Ditto.
11906         (mark_used_regs): Ditto.
11907
11908 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
11909
11910         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
11911         (GOT_PCREL): New macro.  Define to 1 if not already defined.
11912         * arm/elf.h (GOT_PCREL): Define to 0.
11913         * arm.c (arm_finalize_pic): Take into account the setting of
11914         GOT_PCREL.
11915
11916 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
11917
11918         * output.h (STRIP_NAME_ENCODING): Provide default definition.
11919         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
11920
11921         * flow.c (mark_set_1): Do not record BLKmode stores as dead
11922         store elimination candidates.
11923
11924 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
11925
11926         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
11927         TARGET_GAS.
11928
11929 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
11930
11931         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
11932         Add use of x-aix41-gld.
11933
11934 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
11935
11936         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
11937         (ASM_OUTPUT_DESTRUCTOR): Define.
11938
11939 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
11940
11941         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
11942         last CODE_LABEL in a loop if we have previously passed a jump
11943         to the top of the loop.
11944
11945 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
11946
11947         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
11948         applying Philip's patch.
11949
11950 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
11951
11952         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
11953         are not VAR_DECLs.
11954
11955 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
11956
11957         * loop.c (strength_reduce): Grow reg_single_usage as needed.
11958
11959 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
11960
11961         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
11962         Also remove a useless comment.
11963
11964 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
11965
11966         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
11967
11968 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
11969
11970         * collect2.c (main): Only generate import or export file and add
11971         to link arguments if non-empty.  Use xmalloc not alloca.
11972         (write_{export,import}_file): Delete.
11973         (write_aix_file): New function.
11974         (locatelib): Use xmalloc not malloc.
11975         (GCC_OK_SYMBOL): Do not check type if aix64.
11976
11977 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
11978
11979         Based on patch by Scott Bambrough and Pat Beirne:
11980         * config/arm/arm.c (making_const_table): New variable.
11981         * config/arm/arm.h (making_const_table): Declare.
11982         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
11983         appropriate.
11984         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
11985         Keep track of when we are building the constant table.
11986
11987 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
11988
11989         * config/arm/arm.c (arm_override_options): Fix erroneous warning
11990         message.
11991
11992 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
11993
11994         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
11995         defined.
11996
11997 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
11998
11999         * tm.texi (FUNCTION_ARG): Correct description of a stack element
12000         in a PARALLEL.
12001
12002 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
12003
12004         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
12005
12006 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
12007
12008         * rs6000.c (output_mi_thunk): Enable full support again.
12009
12010 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
12011
12012         * sh.h (BRANCH_COST): Define.
12013
12014 Thu May 20 10:00:42 1999   Stephen L Moshier  <moshier@world.std.com>
12015
12016         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
12017
12018 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
12019
12020         * function.c (assign_stack_local): Align stack slot propertly.
12021         (assign_outer_stack_local): Likewise.
12022
12023 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
12024
12025         * expr.h (lang_expand_constant): Declare.
12026         * toplev.c (lang_expand_constant): Define it.
12027         * varasm.c (output_constant): Use it.
12028
12029 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12030
12031         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
12032         Change function definitions to K&R style.
12033
12034 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12035
12036         * fixinc/fixincl.c: We must not ignore SIGCLD now.
12037
12038 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
12039
12040         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
12041         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
12042         (several places): omit static initialization
12043         (process): use single fd, since only the read fd is used
12044         * fixinc/gnu-regex.c: define 'const' away, if not supported
12045         * fixinc/procopen.c(several places): omit static initialization
12046         * fixinc/server.c: define 'volitile' away, if not supported
12047
12048 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
12049
12050         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
12051         asm_fprintf and %L to generate the label name.
12052         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
12053         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
12054
12055 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
12056
12057         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
12058         insn for a conditional jump can not be found.
12059
12060 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
12061
12062         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
12063         on variables in specific sections other than .sbss and .sdata.
12064
12065 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
12066
12067         * stmt.c (expand_return): Call start_cleanup_deferral and
12068         end_cleanup_deferral around conditional code.
12069
12070 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
12071
12072         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
12073         filename lists.  Utilizes new "krstr" AutoGen function.
12074         * fixinc/fixincl.x: Rebuilt.
12075
12076 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
12077
12078         * i386.c (output_float_compare): Avoid GNU-C extensions.
12079
12080 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
12081
12082         * version.c: Bump to distinguish mainline tree from the
12083         gcc-2.95 branch.
12084
12085 See ChangeLog.1 for earlier changes.