354a30401d4361ca0dedcd5583c88d2519416ebe
[platform/upstream/gcc.git] / gcc / ChangeLog
1 Tue Mar  2 01:27:52 1999  H.J. Lu  (hjl@gnu.org)
2
3         * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
4         variables.
5         (install-cpp, uninstall-cpp): New targets.
6         (install-normal): Depend on $(INSTALL_CPP).
7         (uninstall): Depend on $(UNINSTALL_CPP).
8         * configure.in (cpp_install_dir): New, substitute.
9         (tmake_file): Added t-install-cpp for --enable-cpp.
10         * configure: Rebuilt.
11         * cpp.sh: New cpp script.
12         * config/t-install-cpp: New target fragment.
13
14 Tue Mar  2 01:40:01 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
15                           Jeffrey A Law  (law@cygnus.com)
16
17         * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
18         case.
19         (cse_insn): Avoid creating a bogus REG_EQUAL note for
20         (const (minus (label) (label)))
21         (record_jump_cond): Fix mismatched paren in comment.
22
23 Tue Mar  2 01:07:12 1999  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
24
25         * final.c (end_final): There are 11 words in the "main header"
26         structure, not 10.
27
28 Tue Mar  2 00:09:18 1999  Marc Espie <espie@cvs.openbsd.org>
29
30         * extend.texi: Reference __extension__ in the index.
31
32 Mon Mar  1 19:09:32 1999  Jim Wilson  <wilson@cygnus.com>
33
34         * Makefile.in (CROSS_FLOAT_H): Delete.
35         (FLOAT_H): Use float_h_file.
36         (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
37         (gfloat.h): Delete.
38         (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
39         (mostlyclean): Delete gloat.h reference.
40         (install-cross-rest, install-float-h-cross, stmp-headers): Update
41         comments.
42         * configure.in (sparcv9-*-solaris2*): Set float_format to none.
43         (sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
44         (float_h_file): Set from float_format.  Substitute into Makefile.in.
45         (float_format): No longer substitute into Makefile.in.  
46         * cross-make (FLOAT_H): Delete.
47         * config/mips/t-cross64 (FLOAT_H): Delete.
48         * configure: Rebuilt.
49         
50 Mon Mar  1 16:36:18 1999  Jeffrey A Law  (law@cygnus.com)
51
52         * mips.md (div_trap_normal, div_trap_mips16): Require the dependent
53         insn to be an INSN before looking at its pattern.
54
55 Mon Mar  1 15:03:51 1999  Jim Wilson  <wilson@cygnus.com>
56
57         * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs.  Fix comments.
58         * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
59         HImode reg when TARGET_5200.
60
61 Mon Mar  1 21:44:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
62
63         From Toshiyasu Morita:
64         * sh.h (CACHE_LOG): SH2 has cache, too.
65
66 Mon Mar  1 14:23:36 1999  Catherine Moore  <clm@cygnus.com>
67  
68         * toplev.c (compile_file):  Disable -ffunction-sections and
69         debugging warning if the object format is elf.
70  
71 Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
72
73         * config/h8300/h8300.c (print_operand):  Use 16 bit addressing
74         when the data in 8-bit area and can not be addressed by 8-bit.
75
76 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
77
78         * flow.c (create_basic_block): Disregard integrated bb notes.
79
80 Sun Feb 28 15:57:06 1999  Richard Henderson  <rth@cygnus.com>
81
82         * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0.
83
84 Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
85
86         * config/i386/t-sco5gas (crti.o): New target.
87
88 Sun Feb 28 15:10:17 1999  David Edelsohn  <edelsohn@mhpcc.edu>
89
90         * rs6000.md (elf_high, movsi_got, *movsi_got_internal,
91         *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
92         movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
93         load_multiple, allocate_stack, call_indirect_aix32,
94         call_indirect_aix64, call_value_indirect_aix32,
95         call_value_indirect_aix64, call_indirect_nt,
96         call_value_indirect_nt): Use gpc_reg_operand instead of
97         register_operand. 
98
99 Sun Feb 28 15:10:17 1999  Michael Meissner  <meissner@cygnus.com>
100
101         * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
102         *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
103         other than cr0.
104         * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
105         allow andi. or andis. which always set cr0.
106
107 Sun Feb 28 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
108
109         * version.c: Bump for snapshot.
110
111 Sun Feb 28 02:00:38 1999  Jeffrey A Law  (law@cygnus.com)
112
113         * invoke.texi: Update information for PA scheduling.
114
115 Sat Feb 27 23:21:47 1999  Jerry Quinn <jquinn@nortelnetworks.com>
116                           Mike Stump <mrs@wrs.com>
117
118         * pa.c (override_options): Change default to 7100LC
119
120         * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
121         float regs before right half of float regs.
122
123 Sat Feb 27 22:48:38 1999  H.J. Lu  (hjl@gnu.org)
124                           Jeffrey A Law  (law@cygnus.com)
125
126         * frame.h: Update some comments.
127         * defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
128         * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
129         using TARGET_WEAK_ATTRIBUTE.
130         (__do_global_dtors_aux): Check if __deregister_frame_info is
131         zero before calling it.
132         (__do_global_dtors): Likewise.
133         (frame_dummy): Check if __register_frame_info is zero before
134         calling it.
135         (__frame_dummy): Likewise.
136
137 Sat Feb 27 19:18:24 1999  Jeffrey A Law  (law@cygnus.com)
138
139         * SERVICE: Update from the FSF.
140
141 Sat Feb 27 14:31:22 1999  Arturo Montes  <mitosys@colomsat.com.co>
142
143         * config/i386/t-sco5 (crti.o): New target.
144         * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when 
145         linking -shared.
146         * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
147
148 Sat Feb 27 01:12:40 1999  Jeffrey A Law  (law@cygnus.com)
149
150         * md.texi (prologue,epilogue): Document named patterns.
151
152 Fri Feb 26 19:31:25 1999  Dave Love  <fx@gnu.org>
153
154         * md.texi, invoke.texi: Fix unterminated @xrefs.
155
156 Fri Feb 26 15:33:45 1999  Richard Henderson  <rth@cygnus.com>
157
158         * genattrtab.c (simplify_knowing): Fix uninitialized read
159         in Feb 21 change.
160
161         * genextract.c (main): Clear recog_operands before extracting.
162
163 Fri Feb 26 02:24:57 1999  Jeffrey A Law  (law@cygnus.com)
164
165         * c-pragma.c (add_weak); Delete.  Moved into...
166         * varasm.c (add_weak): New external function.
167         (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
168         the list of weak functions.
169         * c-pragma (add_weak): Declare.
170
171 Thu Feb 25 23:43:59 1999  Richard Henderson  <rth@cygnus.com>
172
173         Flow rewrite to use basic block structures and edge lists:
174
175         * basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
176         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
177         (struct edge_def): New.
178         (struct basic_block_def): New.
179         (basic_block_info): New.
180         (BLOCK_HEAD, BLOCK_END): Update.
181         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New.
182         (uid_block_number): Kill.
183         (basic_block_for_insn, BLOCK_FOR_INSN): New.
184         (BLOCK_NUM): Update.
185         * flow.c (XNMALLOC): Kill.
186         (max_uid_for_flow): Kill.
187         (uid_block_number): Kill.
188         (uid_volatile): Turn into a bitmap.
189         (SET_INSN_VOLATILE): New.
190         (basic_block_info): New.
191         (entry_exit_blocks): New.
192         (x_basic_block_head, x_basic_block_end): Kill.
193         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
194         (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
195         (basic_block_loop_depth): Kill.
196         (basic_block_for_insn): New.
197         (find_basic_blocks): Split out initial block counting into 
198         count_basic_blocks.  Call functions split out of find_basic_blocks_1.
199         (count_basic_blocks): New.
200         (find_basic_blocks_1): Split out edge recognition, unreachable
201         block deletion.
202         (create_basic_block): New.
203         (compute_bb_for_insn): New.
204         (clear_edges): New.
205         (free_bb_memory): Kill.
206         (add_edge, add_edge_to_label): Kill.
207         (mark_label_ref): Kill.
208         (make_edges): Rewrite to use edge lists.
209         (make_edge, make_label_edge): New.
210         (mark_critical_edges): New.
211         (split_edge, insert_insn_on_edge): New.
212         (commit_one_edge_insertion, commit_edge_insertions): New.
213         (delete_unreachable_blocks): Rewrite to use edge lists.  
214         Split out EH region manipulation into delete_eh_regions.
215         Call tidy_fallthru_edge and merge_blocks.
216         (delete_eh_regions): New.
217         (delete_note_p): New.
218         (delete_insn_chain): New.
219         (delete_block): Split out code into delete_insn_chain and
220         tidy_fallthru_edge.  Update edge lists.
221         (expunge_block): New.
222         (flow_delete_insn): New?
223         (can_delete_label_p): New?
224         (merge_blocks_nomove, merge_blocks): New.
225         (tidy_fallthru_edge): New.
226         (calculate_loop_depth): New.
227         (life_analysis): Allocate and free uid_volatile.
228         (free_basic_block_vars): Update for new structures.
229         (record_volatile_insns): Use SET_INSN_VOLATILE.
230         (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
231         (mark_used_regs): Likewise.
232         (life_analysis_1): Use bb global_live_at_start, global_live_at_end, 
233         local_set regsets.  Use bb->aux to store new_live_at_end.  Begin
234         life propagation from EXIT_BLOCK rather than last block.  Clear
235         regs_ever_live after mark_regs_live_at_end.
236         (allocate_for_life_analysis): Update for new structures.
237         (propagate_block): Split out loop depth calculation to
238         calculate_loop_depth.
239         (regno_uninitialized): Use bb->global_live_at_start.
240         (regno_clobbered_at_setjmp): Likewise.
241         (dump_bb_data): Likewise.
242         (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
243         (dump_flow_info): Update for new structures.
244         (dump_edge_info): New.
245         (print_rtl_with_bb): Update for new structues.
246         (compute_preds_succs): Do no work -- convert edge lists.
247         (set_block_for_insn): From corpse of old set_block_num.
248         (set_block_num): Call it.
249
250         * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
251         * rtl.h (rtunion_def): Add bb entry.
252         (NOTE_BASIC_BLOCK): New.
253         (NOTE_INSN_BASIC_BLOCK): New.
254
255         * varray.h (varray_data_tag): Add bb entry.
256         (VARRAY_BB_INIT, VARRAY_BB): New.
257
258         * emit-rtl.c (emit_label_before): New.
259
260         * except.c (expand_rethrow): Delete insns following the call to
261         rethrow.  Put the REG_EH_RETHROW on the call.
262
263         * jump.c (returnjump_p, returnjump_p_1): New.
264
265         * expr.h (nonlocal_goto_handler_labels): New declaration.
266         * function.c (nonlocal_goto_handler_labels): Define it.
267         (push_function_context_to): Save it.
268         (pop_function_context_from): Restore it.
269         (init_function_start): Clear it.
270         (nonlocal_label_rtx_list): Kill.
271         * function.h (struct function): Add storage space for it.
272         * stmt.c (expand_nl_handler_label): Return the new label.
273         (expand_nl_goto_receivers): Collect a list of them in
274         nonlocal_goto_handler_labels.
275
276         * Makefile.in (print-rtl.o): Depend on basic-block.h.
277         (flow.o): Depend on tree.h and insn-flags.h.
278         (sched.o): Depend on tree.h and expr.h.
279
280         * function.c (thread_prologue_and_epilogue_insns): Do not
281         half-heartedly update bb structures.
282
283         * toplev.c: Add flow2 dump as -dw.
284         (rest_of_compilation): Finish .greg before flow2.
285
286         * graph.c (draw_edge): Handle class 3.
287         (print_rtl_graph_with_bb): Make abnormal edges red class 2, 
288         change non-fall-thru but adjacent to green class 3.  Update 
289         to use new structures.
290
291         * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
292
293         * reg-stack.c (BLOCK_NUM): Convert to function.  Abort if
294         block_number is -1.
295         (reg_to_stack): Initialize block_num to -1.
296
297         * combine.c (set_nonzero_bits_and_sign_copies): Update reference
298         to basic_block_live_at_start to bb->global_live_at_start.
299         (try_combine): Likewise.
300         (reg_dead_at_p): Likewise.
301         * global.c (global_conflicts): Likewise.
302         Handle stack regs on all abnormal edges, not just computed jumps.
303         (mark_elimination): Update reference to basic_block_live_at_start.
304         (build_insn_chain): Likewise.
305         * haifa-sched.c (haifa_edge): Rename from edge for conflict.
306         (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
307         of nonlocal_label_rtx_list.
308         (check_live_1): Update reference to basic_block_live_at_start.
309         (update_live_1): Likewise.
310         (find_pre_sched_live): Likewise.
311         (find_post_sched_live): Likewise.
312         * local-alloc.c (update_equiv_regs): Likewise.
313         (block_alloc): Likewise.
314         * reload1.c (reload, reload_combine): Likewise.
315         * regmove.c (mark_flags_life_zones): Likewise.
316         * resource.c (mark_target_live_regs): Likewise.
317         * sched.c (schedule_block): Likewise.
318
319         * regclass.c (regset_release_memory): Don't free
320         basic_block_live_at_start.
321
322         * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
323
324 Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
325
326         * fixinc.wrap: Also handle struct queue in sys/stream.h.
327         * fixinc.svr4: Likewise.
328
329 Thu Feb 25 21:23:06 1999  Jason Merrill  <jason@yorick.cygnus.com>
330
331         * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
332         rather than asserting it.
333
334 Thu Feb 25 23:33:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
335
336         * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
337         cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
338         HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT.
339
340
341         * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
342         cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
343         scan-decls.o): Don't depend on machmode.h.
344         
345         * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
346         Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
347         
348         * cppfiles.c: Likewise.
349
350         * cpplib.c: Likewise.
351          
352         * cpplib.h: Likewise.  Also don't include machmode.h anymore.
353
354 Thu Feb 25 18:46:26 1999  Richard Henderson  <rth@cygnus.com>
355
356         * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
357         * objc/lang-specs.h: Likewise.
358
359 Thu Feb 25 16:19:43 1999  Jeffrey A Law  (law@cygnus.com)
360
361         * pa.md (call patterns): Lose unused argument to output_call.
362
363         * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
364
365 1999-02-25 17:14 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
366
367         * cpphash.c (install): Rename to cpp_install, add cpp_reader*
368         first argument.  All callers changed.
369         (hashtab): Removed.
370         (cpp_lookup, cpp_install): Change all refs to hashtab to
371         pfile->hashtab.
372         (cpp_hash_cleanup): Removed.
373         * cpphash.h: Adjust prototypes.
374         * cpplib.h (struct cpp_reader): Add hashtab pointer.
375         * cppinit.c (cpp_reader_init): Also allocate space for the
376         hashtab.
377         (cpp_cleanup): Delete all macros and free the hashtab.
378
379 Thu Feb 25 21:52:54 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
380
381         * sh.h (PASS_IN_REG_P):  For TARGET_HITACHI, don't pass structures
382         in registers.
383
384         * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
385         * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
386         * calls.c (expand_call): Likewise.
387
388         * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
389         stdarg arguments.
390         * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
391         (FUNCTION_ARG):  For TARGET_HITACHI, don't pass unnamed
392         arguments in registers.
393         (PRETEND_OUTGOING_VARARGS_NAMED): Define.
394         * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
395         flavour varargs.
396
397 Thu Feb 25 14:32:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
398
399         * cse.c (dump_class): Revert last change and make the prototype
400         extern.
401
402 Thu Feb 25 19:13:42 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
403
404         * rtl.h (insn_first_p): Don't declare.
405         * rtlanal.c (insn_first_p): Delete.
406         * loop.c (loop_insn_first_p): Faster implementation.
407
408 Thu Feb 25 10:44:35 1999  Richard Earnshaw (rearnsha@arm.com)
409
410         * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
411         (TARGET_3, TARGET_6): Delete.
412         (ARM_FLAG_ARM[36]): Delete.
413         (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.
414         (CC1_SPEC): Don't expand -m[236] into new equivalents.
415         (CPP_APCS_PC_SPEC): No need to handle -m[236] any more.
416         * arm.c (arm_override_options): Delete warnings about deprecated
417         options -m[236].
418
419         * arm.c (arm_finalize_pic): Build the label into the special pic
420         adjustment insn instead of issuing it separately.
421         * arm.md (pic_add_dot_plus_eight): Rework to contain the label
422         that is needed.
423
424         * arm.md (*zeroextractqi_compare0_scratch): Delete.
425         (*ne_zeroextractsi): New pattern.
426
427 Thu Feb 25 18:40:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
428
429         * stmt.c (expand_end_loop): Grok code emitted by
430         expand_exit_loop_if_false.
431
432 Thu Feb 25 10:17:32 1999  Nick Clifton  <nickc@cygnus.com>
433
434         * config/arm/arm.c (return_in_memory): Float fields in unions
435         force a return in memory.
436         (load_multiple_sequence): Add comment explaining why two LDR
437         instructions can be better than an LDMIA instruction.
438
439         * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment
440         describing the real meaning of this option.
441         (FIXED_REGISTERS): Default r10 to not-fixed.
442         (CALL_USED_REGISTERS): Default r10 to not-call-used.
443         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define
444         as empty. 
445         (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is
446         true.  Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after
447         performing other checks.
448
449         * config/arm/arm.md (zero_extendhisi2): Undo previous change.
450         (extendhisi2): Undo previous change.
451         Also add comments describing why TARGET_SHORT_BY_BYTES can be
452         ignored for armv4(t) architectures. 
453
454         * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE):
455         Define to fix r10.
456
457         * config/arm/riscix1-1.h
458         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. 
459
460 Thu Feb 25 12:09:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
461
462         * cse.c (dump_class): Make the function definition static to match
463         the prototype.
464
465 Wed Feb 24 17:47:28 1999  Jim Wilson  <wilson@cygnus.com>
466
467         * dbxout.c (gstab.h): Use if CROSS_COMPILE.
468
469         * dwarf2out.c (add_location_or_const_value_attribute):  Add big
470         endian correction for parms passed in regs but living on the stack.
471
472 Wed Feb 24 14:03:54 1999  Jeffrey A Law  (law@cygnus.com)
473
474         * calls.c (initialize_argument_information): New function extracted
475         from expand_call.
476         (expand_call): Use initialize_argument_information.  Remove variables
477         which are no longer used due to cleanups.
478
479         * calls.c (compute_argument_block_size): New function, extracted from
480         expand_calls.
481         (expand_calls): Use compute_argument_block_size.  Delete
482         original_args_size, use unadjusted_args_size instead.
483
484         * calls.c (precompute_arguments): New function, extracted from
485         expand_call.
486         (expand_call): Use precompute_arguments.
487
488         * calls.c (finalize_must_preallocate): New function, extracted from
489         expand_call.
490         (expand_call): Use finalize_must_preallocate.
491
492         * calls.c (store_one_arg): Mark "variable_size" as possibly unused.
493
494         * regclass.c (record_reg_classes, case 'p'): Set classes appropriately.
495         An alternative always fails if it needs a pseudo and no suitable
496         register class can be found.
497
498 Wed Feb 24 19:47:56 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
499
500         * loop.h (loop_insn_first_p): Declare.
501         * loop.c (loop_insn_first_p): No longer static.
502         * unroll.c (iteration_info) Fix comparison to
503         reg_iv_type->num_elements.
504         Before accessing reg_biv_class, check index against
505         max_reg_before_loop.
506         Fix and enable code for giv iterators.
507         (loop_iterations): Compare with reg_iv_type->num_elements instead
508         of with max_reg_before_loop.
509
510 Wed Feb 24 19:17:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
511
512         * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno.
513
514 Wed Feb 24 11:26:41 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
515
516         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use
517         PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC.
518
519 Tue Feb 23 16:24:19 CET 1999 Marc Lehmann <pcg@goof.com>
520
521         * config/i386/i386.md: fix typoe.
522
523 Mon Feb 22 19:36:33 1999  Andrew Cagney  <cagney@b1.cygnus.com>
524
525         * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 &&
526         frame_pointer_needed adjust frame size.
527         (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted
528         in .frame pseudo-op.
529         Frm Jim Wilson  <wilson@cygnus.com>:
530         * mips.c (function_prologue): Adjust frame size in .frame pseudo-op
531         when TARGET_MIPS16 && frame_pointer_needed.
532
533 1999-02-22  Nick Clifton  <nickc@cygnus.com>
534
535         * config/arm/arm.h: Add TARGET_CPU_strongarm1100.
536         Add -mno-sched command line switch to disable scheduling of
537         instructions into the function's prologue.
538         (enum processor_type): Remove.
539         (TARGET_OPTIONS): Add "fpe=" option to match documentation.
540         (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
541         fields with 'processors' field.
542         (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
543         checking is not enabled.
544         (RETURN_IN_MEMORY): Always call arm_return_in_memory.
545         
546         * config/arm/arm.c: (arm_cpu): Remove.
547         (tune_flags): Remove.
548         (arm_is_strong): New variable: true iff the target processor is a 
549         StrongARM.
550         (arm_is_6_or_7): New variable: true iff the target processor is an
551         ARM6 or and ARM7.
552         (arm_select): Fields reorganised.
553         (struct processors): processor_type field removed.
554         (all_procs): Remove.
555         (all_cores): New array: Definitions of all known ARM cpu cores.
556         (all_architectures): New array: Definitions of all known ARM
557         architectures. 
558         (streq): New macro.
559         (FL_SCHED): New processor flag: processor required load
560         scheduling.
561         (FL_STRONG): New processor flag: processor is a StrongARM.
562         (arm_override_options): Reorganised to make code clearer.
563         (use_return_insn): Test for "not (TARGET_APCS and
564         frame_pointer_needed)".
565         (arm_return_in_memory): Improve handling of structures.
566         
567         * config/arm/arm.md: Remove "cpu" attribute.  Replace with
568         "is_strongarm" and "is_arm_6_or_7" attributes.
569         (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
570         arm_arch4.
571         (extendhisi2):  Check for TARGET_SHORT_BY_BYTES before arm_arch4. 
572
573         * invoke.texi (ARM Options): Document -mtune= and -mfp= options.
574         
575 1999-02-22  Philip Blundell  <philb@gnu.org>
576
577         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default
578         definition with one including cache synchronisation.
579         (CLEAR_INSN_CACHE): Correct syscall number and enable definition.
580         Move definition of inhibit_libc to...
581         * config/arm/xm-linux.h: ... here.
582
583         * config/arm/t-linux: Disable multilib configurations since the
584         only effect for most people is to cause builds to fail.
585         
586         * config/arm/elf.h (ASM_FILE_START): Add .file directive.
587         (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler.
588
589         * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define.
590         (HANDLE_SYSV_PRAGMA): Likewise.
591         (LIB_SPEC): Copy definition from generic Linux files.
592         (LIBGCC_SPEC): Include -lfloat if -msoft-float was given.
593         (FP_DEFAULT): Set to SOFT3 on 32-bit targets.
594         (DWARF2_DEBUGGING_INFO): Define.
595         (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
596
597 Mon Feb 22 16:54:18 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
598
599         * loop.c (libcall_other_regs): Make extern.
600         * rtl.h (find_last_value): Add parameter to prototype.
601         (libcall_other_reg): Add extern declaration.
602         * rtlanal.c (find_last_value): Add another parameter to allow
603         a definition using a hardware register to be found as well.
604
605 Mon Feb 22 13:33:47 1999  Mark Mitchell  <mark@markmitchell.com>
606
607         * cse.c (dump_class): New function.
608         (invalidate_memory): Fix typo in comment.
609         * function.c (temp_slot): Add an alias set field.  
610         (assign_stack_temp): Only reuse slots if they will have the
611         same alias set as before.
612         (combine_temp_slots): Don't combine if -fstrict-aliasing;
613         that's unsafe.
614         * rtl.c (copy_rtx): Copy all the flags (in particular,
615         MEM_SCALAR_P).
616
617 Mon Feb 22 14:13:23 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
618
619         * configure.in (i[34567]86-*-linux-gnu*,
620         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
621         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
622         fixincludes.
623
624         * configure: Rebuilt.
625
626         * fixinc.x86-linux-gnu: New script for fixing asm-statements bug
627         on x86 linux.
628
629         * fixinc/fixinc.x86-linux-gnu: Copy of the previous one.
630
631         * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*,
632         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
633         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
634         fixincludes.
635
636 Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
637
638         * objc/objc-act.c (encode_type): Temporary revert to the old
639         behavior of encoding types as the new one seems to break the
640         encoding of bitfields.
641
642 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
643 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
644
645         * Makefile.in (all.internal, all.cross): Depend on `doc'
646         target, to ensure docs get made before installation.
647
648
649         Decrease spurious warnings from -fsyntax-only:
650         * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
651
652 Mon Feb 22 10:55:00 1999  Gavin Romig-Koch  <gavin@cygnus.com>
653
654         * c-lex.c (yylex): Replace warning about integer constants being
655         larger than long-longs, with a warning about integer constants 
656         being larger than the largest target integer.
657
658 Mon Feb 22 08:35:38 1999  Craig Burley  <craig@jcb-sc.com>
659
660         Fix -fsyntax-only ICEs:
661         * varasm.c (assemble_zeros, assemble_variable,
662         output_constant_def): Do nothing when -fsyntax-only.
663
664 Fri Feb 19 18:18:56 1999  Don Bowman  <don@pixstream.com>
665
666         * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support.
667         * configure: Rebuilt.
668
669 Sun Feb 21 20:34:44 PST 1999 Jeff Law  (law@cygnus.com)
670
671         * version.c: Bump for snapshot.
672
673 Sun Feb 21 20:35:10 1999  Jeffrey A Law  (law@cygnus.com)
674
675         * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
676         (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.
677         * tm.texi: Update docs for constructors and destructors.
678
679 Sun Feb 21 17:11:18 1999  Richard Henderson  <rth@cygnus.com>
680
681         * genattrtab.c (check_attr_value): Allow negative const_int if
682         negative_ok.  Accept integral arithmetic operators.  Accept
683         direct references to other attributes.  Accept symbol_ref in
684         non-constant attributes.
685         (max_attr_value): Add new argument `unknownp'.  Update all callers.
686         (or_attr_value): Likewise.
687         (simplify_knowing): Don't optimize if max_attr_value unknown.
688         (write_length_unit_log): Likewise with or_attr_value.
689         (find_and_mark_used_attributes): Don't fallthru case.
690         (write_attr_set): Pass thru all non-cond expressions.
691         (write_attr_value): Handle symbol_ref, attr, and arithmetic.
692
693 Sun Feb 21 13:16:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
694
695         * regmove.c (discover_flags_reg): Use word_mode instead of SImode.
696
697 Sun Feb 21 13:15:40 1999  Richard Henderson  <rth@cygnus.com>
698
699         * regmove.c (discover_flags_reg): Remove cc0 code.
700         (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if
701         a potential flags register was identified.
702
703 Sat Feb 20 16:16:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
704
705         * rs6000.md (scc plus ltu): Fix typo in last change.
706
707 Sat Feb 20 09:08:44 1999  Richard Earnshaw  (rearnsha@arm.com)
708
709         * xm-arm.h (HOST_BITS_PER_LONGLONG): Define.
710
711 Fri Feb 19 23:02:02 1999  Richard Henderson  <rth@cygnus.com>
712
713         * regmove.c (discover_flags_reg): New function.
714         (flags_set_1, mark_flags_life_zones): New functions.
715         (regmove_optimize): Call them.
716         (fixup_match_1): Use insn modes rather than sets_cc0_p.
717
718 Fri Feb 19 22:47:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
719
720         * rtlanal.c (insn_first_p): Fix return value for insn == reference.
721
722         * loop.c (strength_reduce, check_final_value, check_dbra_loop):
723         Use loop_insn_first_p.
724
725 Fri Feb 19 15:49:26 1999  Michael Meissner  <meissner@cygnus.com>
726                           David Edelsohn  <edelsohn@mhpcc.edu>
727
728         * rs6000.md (scc plus eq): Fix output template.
729         (scc plus ltu): Fix output template and collapse variants
730         correcting early clobbers.
731         (scc plus geu): Fix output template.
732         (scc plus gt): Fix output template.
733         (scc plus gtu): Fix output template and collapse variants.
734
735 Fri Feb 19 15:43:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
736
737         * cppinit.c (print_help): Remove unescaped newline in string.
738
739 Fri Feb 19 19:55:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
740
741         * loop.c (strength_reduce): Check for intervening jumps when
742         converting biv increment to giv.
743
744 Thu Feb 18 16:36:58 1999  Per Bothner  <bothner@cygnus.com>
745
746         * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR):  New tree nodes,
747         * expr.c (expand_expr):  Support new tree nodes.
748
749 Fri Feb 19 10:17:56 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
750
751         * config/m68k/m68k.c (m68k_align_loops_string,
752         m68k_align_jumps_string, m68k_align_funcs_string): Add const.
753         * config/m68k/m68k.h (m68k_align_loops_string,
754         m68k_align_jumps_string, m68k_align_funcs_string): Likewise.
755
756 Thu Feb 18 23:28:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
757
758         * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
759          
760         * bitmap.h (bitmap_print): Likewise.
761          
762         * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
763          
764         * c-lang.c (build_objc_string): Likewise.
765          
766         * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
767         limits.h or ctype.h.  Remove unused variable `p'.
768          
769         * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
770          
771         * c-pragma.c (handle_pragma_token): Likewise.
772          
773         * c-pragma.h (handle_pragma_token): Likewise.
774          
775         * c-tree.h (build_objc_string, builtin_function, grokfield,
776         build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
777         pedwarn_init): Likewise.
778          
779         * c-typeck.c (convert_for_assignment, warn_for_assignment,
780         push_string, warning_init, incomplete_type_error,
781         build_indirect_ref, lvalue_or_else, readonly_warning,
782         build_c_cast, spelling, push_member_name, print_spelling,
783         error_init, pedwarn_init, start_init): Likewise.
784          
785         * objc/objc-act.c (build_objc_string): Likewise.
786          
787         * print-tree.c (print_node_brief, print_node): Likewise.
788          
789         * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.
790
791 Thu Feb 18 20:44:21 1999  David Edelsohn  <edelsohn@mhpcc.edu>
792
793         * regclass.c (record_reg_classes): Correctly handle 'p' constraint.
794
795 Thu Feb 18 19:59:37 1999  Marc Espie <espie@cvs.openbsd.org>
796
797         * configure.in :Handle OpenBSD platforms.
798         * configure: Rebuilt.
799         * config/openbsd.h: New file.
800         * config/xm-openbsd.h: New file.
801         * config/t-openbsd: New file.
802         * config/t-openbsd-thread: New file.
803
804 Thu Feb 18 18:47:09 1999  Jeffrey A Law  (law@cygnus.com)
805
806         * function.c (assign_stack_temp_for_type): Round SIZE before calling
807         assign_stack_local for BLKmode slots.
808
809 Fri Feb 19 01:45:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
810
811         * loop.c (strength_reduce): For derived givs, replace the
812         giv this was derived from with its new_reg.
813         (recombine_givs): Don't set new_reg for derived giv.
814         And don't print it, print SUM instead.
815
816 Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
817
818         * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
819
820 1999-02-18 18:32 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
821
822         * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
823           or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
824           macro_cleanup.
825           (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
826           predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
827           CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
828           cpp_pending, version_string, struct default_include,
829           include_defaults_array, path_include, cpp_options_init,
830           dump_special_to_buffer, initialize_builtins, cpp_start_read,
831           cpp_reader_init, nreverse_pending, push_pending, print_help,
832           cpp_handle_option, cpp_handle_options, cpp_finish,
833           cpp_cleanup): Move to cppinit.c.
834           (macro_cleanup, struct arglist, collect_expansion,
835           create_definition, compare_defs, comp_def_part, ARG_BASE,
836           struct argdata, macarg, change_newlines, timestamp,
837           monthnames, special_symbol, unsafe_chars, macroexpand,
838           push_macro_expansion): Move to cpphash.c.
839           (quote_string, check_macro_name, cpp_expand_to_buffer,
840           output_line_command, cpp_undef): Export.
841           (null_underflow, null_cleanup, handle_directive): Make static.
842
843         * cpplib.h: Prototype now-exported functions.  Adjust decls of
844           syntax tables so we can include cpplib.h in cppinit.c.
845         * cpphash.h: Prototype all functions exported by cpphash.c.
846         * cppinit.c: Make syntax tables initialized data if possible
847           (uses GCC designated-initializer extension).
848         * cppexp.c:  Make cpp_lex static.
849         * Makefile.in: Move -D switches for the various include dirs
850           from cpplib.o rule to cppinit.o rule.  Adjust dependencies.
851
852 Thu Feb 18 13:15:56 1999  Marc Espie <espie@cvs.openbsd.org>
853
854         * alpha/openbsd.h: New file.
855         * alpha/xm-openbsd.h: New file.
856         * sparc/openbsd.h: New file.
857         * sparc/xm-openbsd.h: New file.
858         * m68k/openbsd.h: New file.
859         * m68k/xm-openbsd.h: New file.
860         * i386/openbsd.h: New file, originally from netbsd.
861         * i386/xm-openbsd.h: New file.
862
863 1999-02-17 14:49 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
864
865         * Makefile.in: Correct dependencies for cpplib object files.
866
867 Wed Feb 17 14:04:18 1999  Michael Meissner  <meissner@cygnus.com>
868
869         * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other
870         than cr0.
871
872 Wed Feb 17 16:59:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
873
874         * loop.c (strength_reduce): Don't move giv insn for biv turned giv
875         below scan_start.
876
877 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
878
879         * tree.c (tree_node_kind_names, print_obstack_name,
880         get_identifier, maybe_get_identifier, build_string,
881         build_expr_wfl, is_attribute_p, lookup_attribute,
882         print_obstack_statistics, get_file_function_name_long, tree_check,
883         tree_class_check, expr_check): Qualify a char* with the `const'
884         keyword.
885
886         * tree.h (get_identifier, maybe_get_identifier, build_string,
887         build_expr_wfl, is_attribute_p, lookup_attribute,
888         print_obstack_statistics, print_obstack_name, tree_check,
889         tree_class_check, expr_check): Likewise.
890
891 Tue Feb 16 21:29:38 1999  Jeffrey A Law  (law@cygnus.com)
892
893         * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing
894         errors.
895
896         * calls.c (store_one_arg): Mark any slots used for the argument
897         as in-use immediately after we're done saving any slots which
898         will be overwritten by this argument. 
899
900 Tue Feb 16 21:02:07 1999  Anton Hartl <toni@devsoft.com>
901
902         * rs6000.md (call_value): Fix typo.
903
904 Wed Feb 17 01:29:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
905
906         * loop.c (strength_reduce): Calculate maybe_dead before
907         calling recombine_givs.
908
909 Wed Feb 17 00:43:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
910
911         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
912
913 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
914
915         * objc/objc-act.c (encode_type): Encode the type instead of
916         encoding the mode of the type (patch from Richard Frith-Macdonald
917         <richard@brainstorm.co.uk>).
918
919 Tue Feb 16 10:53:51 1999  Richard Earnshaw (rearnsha@arm.com)
920
921         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
922         instruction killed in previous change.  Simplify mask generation.
923         (*zeroextractsi_compare0_scratch): Simpify mask generation.
924
925 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
926
927         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
928         bitfield does not overflow a byte boundary.
929
930 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
931
932         * c-common.c (shorten_compare): Get the min/max value from the
933         underlying type of an enumeration, not the enumerated type itself.
934
935 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
936
937         * jump.c: Include insn-attr.h.
938         (delete_computation): If reload has completed and insn scheduling
939         after reload is enabled, then do not depend on REG_DEAD notes.
940         * Makefile.in (jump.o): Depend on insn-attr.h.
941
942 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
943
944         * i386.md (addsi3): Allow lea for any constant_p.
945
946 1999-02-15 17:11 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
947
948         * toplev.c (documented_lang_options): Remove -fident and
949           -fnoident, which are now handled by the language independent
950           option parser.
951
952 1999-02-15 16:59 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
953
954         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
955         * c-lex.c: Likewise.
956         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
957         list in malloced memory for the buffer stack.
958         (cpp_get_token): Don't pop the last buffer off the stack.
959         Calls after CPP_EOF has been returned produce CPP_EOF with no
960         state change.
961         (cpp_finish): Pop last buffer here.
962         (do_line): Don't free ip->last_nominal_fname if it is equal to
963         ip->fname.
964         (special_symbol): If a T_CONST is the empty string, push a
965         single `@ ' escape instead.
966         (macroexpand): Special symbol buffers have escapes too.
967         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
968         buffer pointer.
969         (struct cpp_reader): Remove buffer_stack.  Add
970         buffer_stack_depth.
971         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
972         linked list.
973
974 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
975
976         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
977         WIDE_INT with WIDEST_INT.
978
979         * cexp.y: Likewise.
980         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
981         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
982         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
983         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
984         definition of variable `c89' when compiling a test binary and set it.
985
986         * system.h: Don't define the PRINTF_PROTO_* macros.
987
988 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
989
990         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
991         we do not understand, mark the loop and containing loops as invalid.
992
993 Mon Feb 15 00:40:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
994
995         * alias.c (init_alias_analysis): Avoid self-referential value
996         when setting reg_known_value from REG_EQUAL notes.
997
998 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
999
1000         * i386.c (legitimate_address_p): Verify modes of base and index.
1001
1002 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
1003
1004         * i386.c (legitimate_pic_address_disp_p): Remove static.
1005         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
1006         open-coding cases.
1007
1008 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
1009
1010         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
1011         * explow.c (probe_stack_range): Likewise.
1012         * expmed.c (do_cmp_and_jump): Likewise.
1013         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
1014         (do_tablejump): Likewise.
1015         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
1016         (do_jump_if_equal, emit_case_nodes): Likewise.
1017         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
1018         then convert comparison to an unsigned code before emitting the jump.
1019         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
1020
1021 Sun Feb 14 02:24:15 PST 1999 Jeff Law  (law@cygnus.com)
1022
1023         * version.c: Bump for snapshot.
1024
1025 Sun Feb 14 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1026
1027         * version.c: Bump for snapshot.
1028
1029 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
1030
1031         * loop.c: Disable recent loop changes.  Temporary as Joern
1032         continues to fix problems.
1033
1034 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
1035
1036         * loop.c (combine_givs_used_by_other): Delete.
1037         (combine_givs_benefit_from): Delete.
1038         (combine_givs): Deny combination of givs only used once.  Simplify
1039         code with the death of combine_givs_benefit_from.
1040
1041 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1042
1043         * loop.c (scan_loop): Call reg_in_basic_block_p before
1044         loop_reg_used_before_p.
1045
1046 Sat Feb 13 05:32:00 1999  Richard Earnshaw (rearnsha@arm.com)
1047
1048         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
1049         * arm.h: Likewise.
1050         * arm.c: Likewise.
1051
1052         * arm.h (TARGET_OPTIONS): Reformat for clarity.
1053         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
1054         in the constant pool aren't valid.
1055         (LEGITIMATE_PIC_OPERAND_P): Likewise.
1056
1057         * arm.c: Include "system.h", not stdio.h and string.h.
1058
1059 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
1060
1061         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
1062         (optimize_tail_recursion): Change return type from void to int.
1063         Add return statements.
1064         * tree.h (optimize_tail_recursion): Change prototype to match.
1065
1066 Fri Feb 12 21:09:51 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1067
1068         * reload.c (find_reloads_subreg_address): New function, broken out of
1069         find_reloads_toplev.
1070         (find_reloads_toplev, find_reloads_address_1): Use it.
1071
1072 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
1073
1074         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
1075         extending a CONST_INT.
1076
1077         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
1078
1079 Fri Feb 12 18:29:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1080
1081         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
1082         New functions.
1083         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
1084
1085 Fri Feb 12 16:56:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1086
1087         * loop.c (load_mems): Don't guess how to do a load / store, use
1088         emit_move_insn.
1089
1090 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1091
1092         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
1093
1094 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1095
1096         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. 
1097
1098 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
1099
1100         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
1101         pseudo which is homed in the stack.
1102
1103         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
1104         (compute_frame_size): Change loop over FP regs to be consistent
1105         with the loop in save_restore_insns.
1106
1107 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
1108
1109         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
1110         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
1111
1112 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
1113
1114         * mn10200.md (bset); Re-enable.
1115
1116 Thu Feb 11 15:20:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1117
1118         * sh.md (is_sfunc): New attribute.
1119         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
1120
1121 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
1122
1123         * fold-const.c (range_binop): Take account of the bounded nature
1124         of fixed length arithmetic when comparing unbounded ranges.
1125
1126 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
1127
1128         * function.c (assign_stack_temp_for_type): Clear best_p
1129         when an exact match is found.
1130
1131         * i386.h (LOCAL_ALIGNMENT): Define.
1132         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
1133         (assign_stack_temp_for_type): New function based on assign_stack_temp.
1134         (assign_stack_temp): Call it.
1135         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
1136         * stmt.c: Use assign_temp, not assign_stack_temp.
1137         * tm.texi: Document LOCAL_ALIGNMENT.
1138
1139 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
1140
1141         * reorg.c: Finish deleting half-deleted comment.
1142
1143 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
1144
1145         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
1146         result.
1147         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
1148         result.
1149         * real.c (endian): Delete sign extension code.
1150         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
1151         replaced with operand_subword call.
1152
1153 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
1154
1155         * alpha.md (cmov compound patterns): Delete.  Jump can now
1156         create the correct constructs in the first place.
1157
1158 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
1159
1160         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
1161
1162 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
1163
1164         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
1165
1166 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
1167
1168         * tmp-emsgids.c: Delete.
1169
1170 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
1171
1172         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
1173         coding standards.
1174
1175 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
1176
1177         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
1178
1179         * reload1.c (reload_combine_note_store): Second argument is no
1180         longer unused/ignored.  Handle multi-register hard regs.
1181         (move2add_note_store): Simplify.
1182
1183 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1184
1185         * collect2.c (collect_execute): Remove cygwin-specific code.
1186
1187 Tue Feb  9 17:27:29 GMT 1999  Nathan Sidwell  <nathan@acm.org>
1188
1189         * system.h (_, N_): Remove dummy i18n macros.
1190         * protoize.c: Move inclusion of intl.h to after system.h.
1191         * cexp.y: Include intl.h.
1192         * cexp.c: Rebuilt.
1193
1194 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1195
1196         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore 
1197         fpic/fPIC for windows32 targets.
1198         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
1199         paths with '/'.
1200         * i386/mingw32.h (CPP_SPEC): Define.
1201         (CPP_PREDEFINES): Add MINGW32 version id.
1202         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
1203
1204         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
1205         add missing exeext to target.
1206
1207         * gcc.c (convert_filename): Handle null filename argument.
1208
1209 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1210
1211         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
1212         m constraint instead of QT.
1213
1214 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
1215
1216         * cpplib.c (special_symbol): Move IP to be declared in function
1217         scope, rather than individual case statements.
1218
1219 1999-02-09 16:42 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1220
1221         * cppfiles.c (finclude):  Handle pipes properly under old BSD
1222           derivatives.
1223
1224 1999-02-09 16:42 -0500  Melissa O'Neill <oneill@cs.sfu.ca>
1225
1226         * system.h: Provide fallback definitions for S_ISCHR,
1227           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
1228
1229 1999-02-09 10:30 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1230
1231         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
1232
1233 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
1234
1235         * configure.in: For PowerPC configurations, accept "401", "ec603e",
1236         "740", and "750" as valid arguments to --with-cpu.
1237         * configure: Rebuilt.
1238
1239 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
1240
1241         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
1242         * configure: Rebuilt.
1243
1244 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
1245
1246         * rs6000.md: Revert "alternate use of crs if cr0 not available"
1247         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
1248
1249 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
1250
1251         * output.h (current_function_has_computed_jump): Rename from
1252         current_function_addresses_labels.
1253         * function.h (struct function): Likewise for addresses_labels member.
1254         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
1255         * function.c (current_function_has_computed_jump): Likewise.
1256         Update all references.
1257         * integrate.c (function_cannot_inline_p):
1258         Test current_function_has_computed_jump instead of addresses_labels.
1259         (initialize_for_inline): Likewise save.
1260         (output_inline_function): Likewise restore.
1261
1262         * expr.c (expand_expr): Don't reference addresses_labels variables.
1263         * stmt.c (expand_computed_goto): Set has_computed_jump.
1264
1265 1999-02-08  Michael Meissner  <meissner@cygnus.com>
1266
1267         This is being installed only to get it into the repository to help
1268         with the revert, resubmit & review process for the massive rs6000.md
1269         changes.
1270         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
1271         rlwinm instruction.
1272         (anddi3_internal1): Ditto.
1273         (andsi3_internal{2,3}): Correct some insn lengths.
1274         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
1275         mnemonics.
1276
1277 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
1278
1279         * loop.c (reg_single_usage): New file-scope variable ...
1280         (scan_loop): ... moved out of here.  Always initialize.
1281         Test loop_has_call instead of reg_single_usage not zero.
1282         Free reg_single_usage after strength reduction.
1283         (count_loop_regs_set): Assume single_usage non-zero.
1284         (combine_givs_used_by_other): Test reg_single_usage.
1285         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
1286         as a parameter.  Assume non-zero.
1287         
1288 1999-02-08 23:25 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
1289
1290         * cpplib.c (special_symbol): Rewrite.  Don't copy things
1291           multiple times.  Handle __STDC__ specially.  T_CONST
1292           indicates a constant /string/.  Don't handle T_*_TYPE and
1293           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
1294           adjust_position.  Determine the file buffer only if needed.
1295           (initialize_builtins): Handle __SIZE_TYPE__,
1296           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
1297           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
1298           Don't provide __OBJC__; the driver does that.  Provide
1299           __STDC_VERSION__, using T_CONST.  Use T_STDC for
1300           __STDC__.  Give install the length of all symbols defined.
1301           (eval_if_expression): Drop code to insert and remove the
1302           "defined" special symbol.
1303
1304         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
1305           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
1306
1307         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
1308           the `value' parameter.  All callers changed.
1309         * cpphash.h (install): Change prototype to match.
1310           (union hashval): Remove `ival' member.
1311         * cppexp.c (cpp_lex): Handle `defined' here.
1312
1313 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
1314
1315         * pa.h (EXTRA_CONSTRAINT): Fix comment.
1316
1317 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
1318
1319         * c-typeck.c (check_init_type_bitfields): Use nonincremental
1320         initialization of unions whose first member is a bitfield.
1321         Remove unnecessary code for checking the declaration mode
1322         after DECL_C_BIT_FIELD.
1323
1324         * varasm.c (output_constructor): Additional comment about the
1325         constructor of bitfield union initialization.
1326
1327 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1328
1329         * config/c4x/c4x.md (*movhi_stik): New pattern.
1330         (movhi): Allow some immediate constants to be directly
1331         stored in memory.
1332
1333 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1334
1335         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
1336         (call, call_value): Force address into a register if not valid
1337         for a call instruction.
1338         (load_immed_address): Emit a USE of the SYMBOL_REF that is
1339         forced into memory.
1340         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
1341
1342 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1343
1344         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
1345         Rename from call_operand and symbolic_operand respectively.  All
1346         callers changed.
1347         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): 
1348         Likewise.
1349         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): 
1350         Likewise.
1351         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
1352
1353 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1354
1355         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
1356         LO_SUM address for HImode or HFmode but instead force address into
1357         a register so that it is offsettable.
1358         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
1359
1360 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1361
1362         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
1363         REG+REG addressing if strength reduction enabled.
1364
1365 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1366
1367         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
1368         (TARGET_LIBGCC2_CFLAGS): Define.
1369         
1370 1999-02-08  Nick Clifton  <nickc@cygnus.com>
1371
1372         * config/v850/v850.md: Replace \\n\\t with \\;
1373         
1374         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
1375         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
1376         Enforce TARGET_LONG_CALLS option. 
1377
1378 Mon Feb  8 11:43:07 1999  Donn Terry <donn@interix.com>
1379
1380         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
1381
1382 Mon Feb  8 11:37:24 1999  Marc Espie (espie@cvs.openbsd.org)
1383
1384         * m88k/t-luna-gas: Remove bash dependency.
1385
1386 Mon Feb  8 11:34:44 1999  Graham <grahams@rcp.co.uk>
1387
1388         * collect2.c (xrealloc): Fix typo in last change.
1389
1390 Mon Feb 8 09:13:38 PST 1999 Jeff Law  (law@cygnus.com)
1391
1392         * version.c: Bump for snapshot.
1393
1394 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
1395
1396         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
1397         that we do not want macro replacement within a character constant.
1398         (TYPE_CHECK1): Likewise.
1399
1400 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
1401
1402         * tree.h (DECL_P): New macro.
1403
1404 Sun Feb 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1405
1406         * version.c: Bump for snapshot.
1407
1408 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
1409
1410         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
1411
1412         * README.g77, gcc.c, gcc.texi: Update email addresses.
1413         * invoke.texi system.h: Likewise.
1414
1415 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
1416
1417         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
1418         to convert dest_reg to new_reg.
1419
1420 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
1421
1422         * reload1.c (reload_combine_note_store): Be more careful with
1423         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
1424         (move2add_note_store): Likewise.
1425
1426 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1427
1428         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
1429         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
1430         have the same type.
1431
1432         * cppinit.c (initialize_char_syntax): Use K&R function definition.
1433
1434 Sat Feb  6 11:17:03 1999  Richard Earnshaw <rearnsha@arm.com>
1435
1436         Support for ARM9
1437         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
1438         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
1439         (TARGET_CPU_DEFAULT): Rework to support ARM9.
1440         (CPP_CPU_ARCH_SPEC): Likewise.
1441         (enum processor_type): Likewise.
1442         * config/arm/arm.md (attr cpu): Add arm9.
1443
1444         General scheduling changes 
1445         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
1446         (max_insns_skipped): New variable.
1447         (arm_override_options): If generating hard floating point code for
1448         the FPA, emit code for version 3.
1449         When optimizing for space, don't synthesize constants.
1450         Reword several flags based on the requested processor and optimization
1451         level.
1452         (use_return_insn): New argument iscond, all callers changed.  Don't
1453         use a return insn if it will be conditional and that would be 
1454         expensive; eg on StrongARM.
1455         (arm_adjust_cost): Anti- and output- dependencies normally have no
1456         cost.
1457         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
1458         the sequence is short.
1459         (final_prescan_insn): Use max_insns_skipped instead of 
1460         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
1461         conditional, and aviod this if it would be expensive.
1462         * config/arm/arm.md (scheduling attributes and function units):
1463         Rewrite to better describe ARM8, 9 and StrongARM.
1464
1465         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate 
1466         s_register_operand.
1467         (*ifcompare_plus_move): Use arm_rhs_operand in place of 
1468         arm_rhsm_operand.  Rework constraints.
1469         (*if_plus_move): Likewise.
1470         (*ifcompare_move_plus): Likewise.
1471         (*if_move_plus): Likewise.
1472         (*ifcompre_arith_move): Likewise.
1473         (*if_arith_move): Likewise.
1474         (*ifcompare_move_arith): Likewise.
1475         (*if_move_arith): Likewise.
1476
1477         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
1478         
1479 1999-02-05  Michael Meissner  <meissner@cygnus.com>
1480
1481         * loop.c (check_dbra_loop): A store using an address giv for which
1482         we have no life information is not reversible.
1483
1484 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
1485
1486         * function.c (fixup_var_refs): Scan catch_clauses too.
1487
1488 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
1489
1490         * c-common.c (decl_attributes): Fix reserved space for init_priority.
1491         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
1492
1493 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
1494
1495         * loop.c (strength_reduce): Clear not_every_iteration when 
1496         passing the NOTE_INSN_LOOP_CONT note.
1497
1498         * haifa-sched.c (add_dependence): Do not add a dependency on a
1499         note.
1500
1501 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
1502
1503         * recog.c (split_block_insns): Only call update_flow_info if
1504         instruction scheduling is enabled.
1505
1506 1999-02-05 11:22 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1507
1508         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
1509
1510 Fri Feb  5 07:09:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1511
1512         * loop.c (first_loop_store_insn): New file-scope variable.
1513         (prescan_loop): Set it.
1514         (check_dbra_loop): Check if a store depends on a register
1515         that is set after the store.
1516
1517 Fri Feb  5 06:55:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1518
1519         * unroll.c (entire file): Remove tabs / spaces at end of lines.
1520         Replace spaces with tabs where appropriate.
1521
1522 Thu Feb  4 15:12:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1523
1524         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
1525         (strength_reduce): New argument loop_cont. Changed caller.
1526         Before clearing not_every_iteration after a label, check if
1527         we are not already past LOOP_CONT.
1528
1529 1999-02-04 16:04 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1530
1531         * cpperror.c (cpp_print_containing_files): Fix formatting 
1532         bug induced by merge.
1533
1534 1999-02-04 14:33 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1535
1536         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
1537         (cpp_define): Remove redundant syntax checks.
1538         (make_assertion): Rename cpp_assert, remove redundant syntax
1539         checks, export.
1540         (cpp_options_init): Don't init things to zero twice.
1541         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
1542         (do_include): Kill excessively verbose #import warning that
1543         snuck back in in the gcc2 merge.
1544         (convert_string): Removed.
1545         (do_line): Rewrite with simple last-name-used cache instead of
1546         private hashtable.
1547         (cpp_start_read): Call initialize_char_syntax here, not...
1548         (cpp_reader_init): ...here.
1549         (cpp_handle_options): Support the -std switch.
1550         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
1551         (cpp_options): Add c9x flag.
1552         Declare all the is_* tables and trigraph table here, as const.
1553         Prototype cpp_assert and initialize_char_syntax.
1554         * cppinit.c: New file.
1555         * cppfiles.c (read_and_prescan): Optimize.
1556         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
1557
1558 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1559
1560        * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
1561         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
1562         before calling gen_div_trap.
1563
1564 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
1565
1566         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
1567         than numeric value for target_cpu_default..
1568         * configure: Rebuilt.
1569
1570 Wed Feb  3 21:55:56 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
1571
1572         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
1573         mkstemp.  Get them from libiberty.
1574         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
1575         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
1576         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
1577         (mkstemp.o, getopt1.o, getopt.o): Likewise.
1578
1579         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
1580         values.
1581         * pa-hpux.h (LINK_SPEC): Likewise.
1582         * pa-hpux10.h (LINK_SPEC): Likewise.
1583         * pa-hpux9.h (LINK_SPEC): Likewise.
1584         * pa-osf.h: (LINK_SPEC): Likewise.
1585         * pa-pro.h (TARGET_DEFAULT): Likewise.
1586         * pa1.h (TARGET_DEFAULT): Likewise.
1587         * pa.h (MASK_*): New defines.
1588         (TARGET_*): Use symbolic values rather than numeric values.
1589         (TARGET_SWITCHES): Likewise.
1590         (TARGET_DEFAULT): likewise.
1591         (CPP_SPEC): likewise.
1592
1593 Wed Feb  3 21:07:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
1594
1595         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
1596         * reload.c (find_reusable_reload): New function, broken out of
1597         push_reload.  Add code to verify that none of the involved
1598         outputs are subject to earlyclobbers.
1599         (push_reload): Break out new function find_reusable_reload.
1600         Delete "register" keyword for IN, OUT args.
1601
1602 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1603
1604         * config/mips/mips.c (true_reg_or_0_operand) : New function.
1605         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
1606         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): 
1607         Use true_reg_or_0_operand for div_trap.
1608
1609 Wed Feb  3 20:44:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1610
1611         * loop.h (express_from): Declare.
1612         (struct induction): Replace derived flag with derived_from pointer.
1613         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
1614         (express_from): No longer static.
1615         * unroll.c (find_splittable_givs): Replace derived with derived_from.
1616         When processing an address giv with which another giv has been
1617         combined that has also been derived from a third giv, handle like
1618         having combined with the third giv.
1619         Set splittable_regs_updates appropriately for derived givs.
1620
1621 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1622
1623         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
1624
1625 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
1626
1627         * pa.c (insn_sets_and_refs_are_delayed): New function.
1628         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
1629         (INSN_REFERENCES_ARE_DELAYED): Likewise.
1630  
1631 Wed Feb  3 06:24:49 1999  Richard Earnshaw (rearnsha@arm.com)
1632
1633         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
1634         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
1635         (TARGET_LIBGCC2_CFLAGS): Define.
1636         (LIBGCC2_DEBUG_CFLAGS): Define.
1637         * config/arm/t-netbsd: Likewise.
1638         * config/arm/t-semi: Likewise.
1639         * config/arm/t-semiaof: Likewise.
1640         * config/arm/t-riscix: Likewise.
1641
1642 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1643
1644         * config/m68k/m68k.c (print_operand_address): When printing a
1645         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
1646
1647 Tue Feb  2 23:38:35 1999  David O'Brien <obrien@FreeBSD.org>
1648
1649         * i386/freebsd*.h now allows '$' in label names and does not use the
1650         PCC struct return method.
1651
1652 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
1653
1654         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
1655         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
1656         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
1657         names if host == target.
1658         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
1659         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
1660         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
1661         setting them to *_FOR_TARGET.
1662         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
1663         Delete.
1664
1665 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1666
1667         * toplev.h (read_integral_parameter): Declare.
1668         * toplev.c (read_integral_parameter): New function.
1669
1670 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
1671
1672         * resource.c, resource.h: New files.
1673         * Makefile.in (OBJS): Add it.
1674
1675         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
1676         (split_block_insns): Moved to recog.c.
1677         (update_flow_info): Make public.
1678         * rtl.h: Declare them.
1679
1680         * reorg.c: Moved the functions dealing with computing resource
1681         usage to resource.c.
1682
1683         * sched.c (regno_use_in): Moved to rtlanal.c.
1684         (update_flow_info): Make public.
1685         (schedule_insns): Use split_block_insns.
1686
1687         * recog.c (split_block_insns): New function.
1688
1689 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@mhpcc.edu>
1690
1691         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
1692         (LINK_OS_DEFAULT_SPEC): Delete, unused.
1693
1694 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
1695  
1696         * configure.in (arm-*-oabi):  Support.
1697         * configure:  Regenerate.
1698         * config/arm/unknown-elf-oabi.h:  New file.
1699  
1700 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
1701
1702         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
1703         Make the anonymous pattern match when ! optimize_size.
1704         (ashlsi3 size optimizer): New pattern.
1705
1706         * intl/Makefile.in (uninstall): Add missing "; \".
1707
1708 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
1709
1710         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
1711         synonym.
1712
1713 Tue Feb  2 20:24:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1714
1715         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
1716         to after find_and_verify_loops call.
1717
1718 Tue Feb  2 19:48:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1719
1720         * (recombine_givs): Don't use a giv that's likely to be dead to
1721         derive others.
1722
1723         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
1724         wrap around when deriving givs.
1725
1726 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
1727
1728         * recog.c (check_asm_operands): Treat indeterminate operand ok
1729         results as success.  Try harder to resolve a matching constraint.
1730         * stmt.c (expand_asm_operands): Recognize when an output operand's
1731         constraint does not allow memory.  Treat indeterminate operand ok
1732         results as failure.  Try harder to resolve a matching constraint.
1733         
1734 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
1735
1736         Use varrays for constant-equivalence data:
1737
1738         * varray.h (struct const_equiv_data): New type.
1739         (union varray_data_tag): New element const_equiv.
1740         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
1741         (VARRAY_SIZE): New macro, returns number of elements.
1742         * integrate.h: Include varray.h.
1743         (struct inline_remap): Replace const_equiv_map, const_age_map and
1744         const_equiv_map_size with a const_equiv_varray element.
1745         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
1746         needed.
1747         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
1748         simultaneously, growing the varray if needed.
1749
1750         * integrate.c (global_const_equiv_map,
1751         global_const_equiv_map_size): Deleted, replaced by....
1752         (global_const_equiv_varray): New variable.
1753         (expand_inline_function): References changed.
1754         * integrate.h: Update declarations.
1755
1756         * integrate.c (process_reg_parm, expand_inline_function,
1757         copy_rtx_and_substitute, try_constants, subst_constants,
1758         mark_stores): Use varray allocation and accessor macros, new
1759         integrate.h macros, and global_const_equiv_varray.  Don't
1760         conditionalize non-NULL stores on array size; instead, expand the
1761         array as needed.
1762         * unroll.c (unroll_loop): Likewise.
1763
1764         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
1765         zero.  After allocating varray, always exit through bottom of
1766         function, where it can be deallocated if needed.  Don't explicitly
1767         reallocate const_equiv_map storage; instead, just ensure the
1768         varray has been initialized, and update the global reference.
1769
1770 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1771
1772         * system.h (inline, const): Handle these for stage2 (and later) gcc.
1773
1774         * dwarf2out.c (inline): Don't define.
1775
1776         * dwarfout.c (inline): Likewise.
1777
1778 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
1779
1780         * loop.c (recombine_givs): Dump recombination and derivation data.
1781
1782 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
1783
1784         * flags.h: Declare flag_no_ident.
1785         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
1786         * c-tree.h: Don't declare flag_no_ident.
1787         * c-decl.c: Don't define flag_no_ident.  Don't process
1788           -f(no-)ident switches here.
1789
1790         * config/elfos.h (ASM_FILE_END): Output final .ident directive
1791           only if !flag_no_ident.
1792         * config/ptx4.h: Likewise.
1793         * config/svr4.h: Likewise.
1794         * config/alpha/elf.h: Likewise.
1795         * config/arm/linux-elf.h: Likewise.
1796         * config/i386/sco5.h: Likewise.
1797         * config/i860/fx2800.h: Likewise.
1798         * config/mips/gnu.h: Likewise.
1799         * config/i386/osfrose.h: Likewise.
1800
1801         * gcc.c (C specs): Map -Qn to -fno-ident.
1802         * objc/lang-specs.h: Likewise.
1803
1804 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1805
1806         * configure.in: Don't remove loop.o and unroll.o when
1807         enable-haifa is selected.
1808         * configure: Rebuilt.
1809
1810 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
1811
1812         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
1813         movxfcc, movdicc): Delete unconstrained alternatives.
1814         * i386.c (output_fp_conditional_move,
1815         output_int_conditional_move): Delete unused case.
1816
1817 Sun Jan 31 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1818
1819         * version.c: Bump for snapshot.
1820
1821 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
1822
1823         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
1824         instead of bis and cpys.  Combine alternatives where possible.
1825
1826 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1827
1828         * gcov.c (fnotice): Add missing FILE* parameter.
1829         (function_summary): Fix format specifiers in calls to `fnotice'.
1830         (output_data): Likewise.
1831
1832         * toplev.c (fnotice): Constify char* parameter.
1833
1834         * toplev.h (fnotice): Add prototype.
1835         Wrap prototype with BUFSIZ to protect FILE* usage.
1836         
1837 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1838
1839         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
1840         
1841 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
1842
1843         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
1844
1845         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
1846         function definition.
1847         (aliases_everything_p, write_dependence_p):Likewise.
1848
1849         * install.texi: Fix merge lossages.
1850
1851         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
1852         is defined.
1853         * collect2.c (main): Likewise.
1854         * cppmain.c (main): Likewise.
1855         * gcc.c (main): Likewise.
1856         * gcov.c (main): Likewise.
1857         * protoize.c (main): Likewise.
1858         * toplev.c (main): Likewise.
1859
1860         * pa.md (parallel shift and shiftadd): Mark output of shift as an
1861         earlyclobber.
1862
1863         * loop.c: Disable recent loop changes.  Temporary as Joern
1864         continues to fix problems.
1865
1866 Sat Jan 30 03:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1867
1868         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
1869
1870 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
1871
1872         * emit-rtl.c (remove_insn): New function.
1873         * rtl.h (remove_insn): Add prototype.
1874         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
1875
1876 Fri Jan 29 22:34:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1877
1878         * loop.c (recombine_givs): Don't try to derive givs that have combined.
1879
1880 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1881
1882         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
1883         when declaring arguments and calling va_arg() to initialize them.
1884
1885         * collect2.c (notice): Likewise.
1886
1887         * loop.c (find_life_end): Use PROTO() macro in the prototype.
1888
1889 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1890
1891         * collect2.c (error): Fix typo in declaration.
1892
1893         * cpperror.c (cpp_message): Likewise.
1894
1895         * cpplib.c (cpp_warning): Likewise.
1896
1897         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
1898         ATTRIBUTE_PRINTF_1.
1899
1900         * toplev.c (error): Fix typo in declaration.
1901
1902 Fri Jan 29 15:44:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1903
1904         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
1905         forward from cont dominator.
1906
1907 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1908
1909         * cccp.c (eprint_string): Constify a char*.
1910         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1911         (vnotice): Constify a char*.
1912         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1913         (verror): Constify a char*.
1914         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
1915         (vwarning): Constify a char*.
1916         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
1917         ATTRIBUTE_PRINTF_2.
1918         (verror_with_line): Constify a char*.
1919         (vwarning_with_line): Likewise.
1920         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
1921         ATTRIBUTE_PRINTF_2.
1922         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
1923         ATTRIBUTE_PRINTF_1.
1924         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
1925         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
1926         Also correct typo in parameter name declaration.
1927         (make_assertion): Constify a char*.
1928         (quote_string_for_make): Likewise.
1929         (deps_output): Likewise.
1930         (fatal): Likewise.  Use PVPROTO not VPROTO, add
1931         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
1932         "__attribute__ ((noreturn))".
1933         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
1934         (pfatal_with_name): Likewise.
1935         (pipe_closed): Likewise.
1936         (memory_full): Likewise.
1937
1938 Fri Jan 29 00:14:55 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1939
1940         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
1941         may_not_optimize to proper size when converting biv increments
1942         into givs.
1943         If necessary, reallocate reg_iv_type / reg_iv_info before calling
1944         recombine_givs.
1945
1946 Thu Jan 28 23:24:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1947
1948         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
1949         generate complex adds.  Changed caller.
1950         Don't generate adds that cost more than the original one.
1951         (strength_reduce): Warning fixes.
1952
1953 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
1954
1955         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
1956         * configure: Rebuilt.
1957
1958 Wed Jan 27 23:39:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1959
1960         * rtl.h (insn_first_p, no_jumps_between_p): Declare.
1961         * rtlanal.c (insn_first_p, no_jumps_between_p): New function.
1962         * loop.h (varray.h): Include.
1963         (struct induction): Change combined_with to unsigned.
1964         New members derived, ix and last_use.
1965         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
1966         (REG_IV_TYPE, REG_IV_INFO): Define.
1967         (first_increment_giv, last_increment_giv): Declare.
1968         * loop.c (loop_number_loop_cont): New static variable.
1969         (loop_number_cont_dominator): Likewise.
1970         (reg_iv_type, reg_iv_info): Now varray_type.
1971         (first_increment_giv, last_increment_giv): New variables.
1972         (compute_luids, verify_dominator, find_life_end): New functions.
1973         (cmp_recombine_givs_stats, recombine_givs): Likewise.
1974         (loop_optimize): Allocate loop_number_loop_cont and
1975         loop_number_cont_dominator.  Use compute_luids.
1976         (find_and_verify_loops): Initialize loop_number_loop_cont and
1977         loop_number_cont_dominator.
1978         (strength_reduce): Try to find bivs that can be expressed as givs
1979         of another biv, and to convert biv increments into givs.
1980         Call recombine_givs.  Handle derived givs.
1981         (record_biv): New argument location.  All callers changed.
1982         (record_giv): Initialize derived and last_use fields.
1983         (basic_induction_var): New argument location.  All callers changed.
1984         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
1985         Increment combined_with instead of setting to 1.
1986         * unroll.c (derived_regs): New static variable.
1987         (unroll_loop): Initialize it.
1988         Allocate local_regno according to max_reg_num.
1989         (copy_loop_body): Cope with derived givs.
1990         (find_splittable_givs): Check for Givs made from biv increments.
1991         Set derived_regs for givs.
1992         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
1993
1994 Wed Jan 27 19:31:36 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1995
1996         * function.c (purge_addressof_1): Handle case when a register
1997         has been used in a wider mode.
1998
1999 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
2000
2001         * cpplib.h (cpp_notice): Add prototype.
2002
2003 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
2004
2005         * Merge gcc2 snapshot 19980929.
2006
2007         * cccp.c (PRINTF_PROTO): Remove.
2008         (PRINTF_PROTO_{1,2,3,4}: Likewise.
2009         * cexp.y: Likewise.
2010         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
2011
2012         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
2013         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
2014         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
2015
2016         * gen-protos.c (hashf): Delete in cpphash.o
2017         * gen-protos.c (hashf): Delete in cpphash.o
2018
2019         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
2020         * expmed.c: Likewise.
2021         * rs6000.md: Likewise.
2022
2023         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
2024
2025 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
2026
2027         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
2028         * rs6000.md (movsi, movdi): Likewise.
2029
2030 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
2031
2032         * function.c (expand_function_end): Pass arg_pointer_save_area to
2033         validize_mem before using it.  Emit code into a sequence.
2034
2035 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
2036
2037         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
2038         '#' to split patterns.  Correct indentation of some new patterns.
2039
2040 1999-01-26 12:11 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
2041
2042         * cppfiles.c (safe_read): Deleted.  
2043         (read_and_prescan): New function, replaces safe_read, converts
2044         and/or warns about trigraphs, silently converts odd line
2045         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
2046         (finclude): Use read_and_prescan; turn off nonblocking mode on
2047         the input descriptor; remove file-size-examination and
2048         no-newline-at-EOF gunk which is longer necessary; be more
2049         careful about checking that we've been handed a legitimate
2050         file to read (only real files, pipes, and ttys are acceptable).
2051         * cpplib.h (cpp_options): Rename no_trigraphs flag to 
2052         `trigraphs' and invert its sense.
2053         (trigraph_table): Declare.
2054         (cpp_warning_with_line): Prototype.
2055         * cpplib.c: Remove all references to trigraph_pcp. Define
2056         trigraph_table; initialize it in initialize_char_syntax.  Open
2057         files in nonblocking mode.  s/no_trigraphs/trigraphs/
2058         throughout, and invert sense.  Put cpp_warning_with_line back
2059         in and export it.
2060
2061 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2062
2063         * config/c4x/c4x.h (COUNTER_REGS): New register class.
2064         * config/c4x/c4x.md (*rptb_init): Change constraints.
2065         (rptb_end): Emit alternate looping instructions if 
2066         RC register not allocated for loop counter.
2067         (decrement_and_branch_on_count): Allow other registers
2068         for loop counter.
2069
2070 1999-01-25 14:26 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2071
2072         * cppexp.c (struct arglist): Removed.
2073         (parse_number): Use HOST_WIDE_INT for the accumulator.
2074         Allow two `l' suffixes unless C89.  Clean up.  Make static.
2075         (parse_charconst): New function broken out of cpp_lex.
2076         Code cleaned up drastically.  Don't use a token_buffer.
2077         (token_buffer): Removed.
2078         (cpp_lex): Don't call parse_number on a constant string.
2079         Use parse_charconst.
2080         (cpp_parse_expr): Properly handle an ERROR op returned by
2081         cpp_lex. 
2082
2083 1999-01-25 14:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2084
2085         * cpplib.c: Don't include signal.h, sys/times.h, or
2086         sys/resource.h. Don't declare localtime.
2087         (macroexpand): Handle special symbols here.
2088         (push_macro_expansion): Chop off the trailing '@ ' if possible
2089         here.
2090         (cpp_get_token): Don't do either of the above two things here.
2091         Move `string' label just after case '"' so that wide strings
2092         don't crash the preprocessor.
2093
2094 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@mhpcc.edu>
2095
2096         * rs6000.md (left shift + set cr patterns): Add missing '#' to
2097         split patterns.
2098         (move register + set cr pattern): Ditto.
2099         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
2100         inadvertently deleted.
2101
2102 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
2103
2104         * stmt.c (stmt_loop_nest_empty): New function.
2105         * tree.h (stmt_loop_nest_empty): Declare it.
2106         * rtl.def (CALL_PLACEHOLDER): New rtx code.
2107
2108 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2109
2110         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
2111         New functions.
2112         (c4x_check_legit_addr): Remove USE and PLUS, allow
2113         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
2114         (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
2115         CONST cases.  Add LO_SUM.
2116         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
2117         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
2118         (c4x_print_operand_address): Handle LO_SUM.
2119         (c4x_scan_for_ldp): Delete.  Hooray!
2120         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
2121         Split all insns.
2122         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
2123         changed.
2124         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
2125         callers changed.
2126         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
2127         and CONST.
2128         (c4x_U_constraint, symbolic_operand): New functions.
2129         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
2130         disable SYMBOL_REF, LABEL_REF, and CONST.
2131         (lsrc_operand, tsrc_operand): Call src_operand instead of
2132         general_operand.
2133         (c4x_operand_subword): Update comments.
2134
2135         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
2136         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
2137         plus HIGH and LO_SUM for the C40.
2138         (ENCODE_SECTION_INFO): Define macro.
2139         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
2140         prototypes.
2141         (PREDICATE_CODES): Add symbolic_operand.
2142
2143         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
2144         c4x_emit_move_sequence.
2145         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
2146         to avoid symbol references.
2147         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
2148         (set_high): Renamed from set_high_use.
2149         (set_lo_sum): Renamed from set_ior_lo_use.
2150         (all call patterns): Make MEM explicit in call address operands.
2151         Modified output templates to use 'U' modifier.
2152         
2153 Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
2154
2155         * version.c: Bump for snapshot.
2156
2157 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2158
2159         * final.c (bb_str): Qualify a char* with the keyword `const'.
2160         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
2161
2162         * fix-header.c (read_scan_file): Likewise.
2163
2164         * genoutput.c (output_epilogue, process_template): Likewise.
2165         
2166         * local-alloc.c (requires_inout, block_alloc): Likewise.
2167
2168         * output.h (output_asm_insn, assemble_string): Likewise.
2169
2170         * recog.c (recog_constraints, check_asm_operands,
2171         decode_asm_operands, extract_insn, preprocess_constraints,
2172         constrain_operands): Likewise.
2173
2174         * recog.h (operand_alternative, recog_constraints, insn_template,
2175         insn_outfun, insn_operand_constraint, insn_name): Likewise.
2176
2177         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
2178
2179         * regmove.c (find_matches): Likewise.
2180
2181         * reload.c (alternative_allows_memconst): Likewise.
2182
2183         * reload1.c (constraint_accepts_reg_p,
2184         reload_cse_simplify_operands): Likewise.
2185
2186         * rtl.h (decode_asm_operands): Likewise.
2187
2188         * scan.h (fn_decl): Likewise.
2189
2190         * varasm.c (assemble_string): Likewise.
2191
2192 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
2193
2194         * configure.in (gcc_tooldir): Handle case where exec_prefix has
2195         not been explicitly set.
2196         * configure: Rebuilt.
2197
2198         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
2199         unused.
2200
2201         * bitmap.h (bitmap_head_def): Make indx field unsigned.
2202
2203         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
2204         use $exec_prefix/$target_alias for gcc_tooldir.
2205         * configure: Rebuilt.
2206
2207 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
2208
2209         * cppp.c (xrealloc): Fix typo last change.
2210         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
2211         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
2212         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
2213
2214 1999-01-22  Michael Meissner  <meissner@cygnus.com>
2215
2216         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
2217         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
2218         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
2219         (cc_reg_not_cr0_operand): Add declaration.
2220
2221         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
2222         pseudo register, or a control register that is not CR0.
2223
2224         * rs6000.md (all combiner patterns building . instructions): For
2225         all `.' instructions that do something and set cr0, add an
2226         alternative that does the operation, and then sets a different
2227         flag, in order to avoid using the costly mcrf instruction and also
2228         allow cr0 to be clobbered in asm statements.  Also fix a few
2229         patterns that used the wrong register.
2230
2231         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
2232         (rs6000_debug_name): Make const char *, not char *.
2233
2234         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
2235         
2236         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
2237         (rs6000_select): Use const char * in casts.
2238
2239 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
2240         
2241         * Makefile.in (gcc_tooldir): Move before first reference.
2242         Let autoconf substitute in a value.
2243         * configure.in (gcc_tooldir): Only use a relative path to the
2244         tool directory if $exec_prefix == $prefix.
2245         * configure: Rebuilt.
2246
2247         * Makefile.in (tooldir): Replace with gcc_tooldir.
2248
2249 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
2250
2251         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
2252         (ashldi3 expander): Similarly.  Update comments.
2253         (ashrdi_const, lshrdi_const): Fix indention.
2254         (ashrdi3, lshrdi3): FIx indention.  Update comments.
2255
2256 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
2257
2258         * emit-rtl.c (try_split): Don't try to split non-instructions.
2259
2260 Thu Jan 21 23:47:30 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
2261
2262         * expr.c (emit_push_insn): Fix dumb typo.
2263
2264 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
2265
2266         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
2267         transformations that we have performed earlier.
2268         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
2269
2270         * alpha.md (prologue_stack_probe_loop): Don't do our own label
2271         handling, call gen_label_rtx instead.
2272
2273 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
2274
2275         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
2276
2277         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
2278         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
2279         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
2280         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
2281         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
2282
2283 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
2284
2285         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
2286         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
2287         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
2288         * configure: Regenerate.
2289
2290         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
2291
2292 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
2293
2294         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
2295
2296 Thu Jan 21 14:18:04 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
2297
2298         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
2299         move_by_pieces.
2300         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
2301         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
2302         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
2303         (move_by_pieces): Use new macros.
2304         (emit_block_move): Use new macros.
2305         (clear_by_pieces): Use new macros.
2306         (clear_storage): Use new macros.
2307         (emit_push_insn): Use new macros.
2308         (expand_expr): Use new macros.
2309         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): 
2310         Define.
2311         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
2312         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
2313         (MOVE_MAX_PIECES): move 8 bytes on SH4.
2314         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
2315         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, 
2316         USE_STORE_PRE_DECREMENT): Describe new macros.
2317
2318 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
2319
2320         * varasm.c (output_constant_pool): Use floor_log2 instead of
2321         exact_log2 for ASM_OUTPUT_ALIGN.
2322
2323         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
2324
2325         * emit-rtl.c (operand_subword): Handle case when a subword outside
2326         the operand.
2327
2328         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
2329         the macros.
2330
2331 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
2332
2333         * cse.c (fold_rtx): Revert 29 Dec change.
2334         (cse_insn): Revert 12 Jan change.
2335         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
2336         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
2337         * rtl.def: Likewise.
2338         * rtl.h (CONSTANT_P): Likewise.
2339
2340         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
2341         to memory.
2342         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
2343         * alpha.c (input_operand): Likewise.
2344         * c4x.c (const_operand): Likewise.
2345
2346         * explow.c (allocate_dynamic_stack_space): Use register_operand
2347         instead of arith_operand, which does not exist.
2348
2349         * 1750a.h: Fix comment closure.
2350         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
2351         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
2352         * arm.h (TARGET_SWITCHES): Fix typo.
2353         * i370.md (anon mult and div patterns): Fix set mode mismatch.
2354         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
2355         (output_delay_insn): Likewise.
2356         * m88k.md (anon rotate insns): Fix set mode mismatch.
2357         (anon BLKmode moves): Commonize and fix set mode mismatches.
2358         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
2359         * romp.md (movdf): Fix typo.
2360
2361 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
2362
2363         * Makefile.in (install-common): Remove extraneous chmod for gcov
2364         install.
2365
2366 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
2367
2368         * function.c (assign_parms): Save and restore setting of
2369         TREE_USED (parm).
2370
2371 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
2372
2373         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
2374         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
2375
2376 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
2377
2378         * recog.c (pop_operand): New function.
2379         * recog.h (pop_operand): Declare it.
2380         * genrecog.c (preds): Define it.
2381
2382         * expr.c (do_jump_for_compare): Handle conditional branch expanders
2383         emitting multiple jump instructions.
2384         * jump.c (condjump_label): New function.
2385         * rtl.h (condjump_label): Declare it.
2386
2387 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
2388
2389         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
2390         clobber during or after reload.
2391
2392 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
2393
2394         * genoutput.c (name_for_index): New function.
2395         (scan_operands, validate_insn_alternatives): Use it.
2396         * genrecog.c (insn_name_ptr_size): New variable.
2397         (make_insn_sequence): Fill in insn_name_ptr.
2398         (merge_trees): Use it.
2399
2400 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
2401
2402         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
2403         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
2404         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
2405
2406 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
2407
2408         * loop.c (NUM_STORES): Delete.
2409         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
2410         (prescan_loop): Properly initialize loop_mems_idx.
2411         (note_addr_stored): Simplify using list structure instead of
2412         fixed sized array.
2413         (invariant_p, check_dbra_loop, load_mems): Similarly.
2414
2415         * flow.c (invalidate_from_autoinc): New function.
2416         (mark_set_1, mark_used_regs): Use it.
2417
2418         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
2419
2420 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
2421
2422         * invoke.texi (-mlong-double-64): New option description.
2423
2424 1999-01-19  Jim Wilson  <wilson@cygnus.com>
2425
2426         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
2427         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
2428         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
2429         if not defined.
2430         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
2431         (CPP_SPECS): Add -mlong-double-64 support.
2432         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
2433         (TARGET_SWITCHES): Add -mlong-double-64 support.
2434         (LONG_DOUBLE_TYPE_SIZE): Likewise.
2435         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
2436         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
2437         (CPP_SPECS): Add -mlong-double-64 support.
2438         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
2439         (MULTILIB_DIRNAMES): Add ld64.
2440         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
2441
2442 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
2443
2444         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
2445         invisible reference.
2446
2447 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@mhpcc.edu>
2448
2449         * rs6000.c (offsettable_addr_operand): Delete.
2450         (offsettable_mem_operand): New function.
2451         * rs6000.h (PREDICATE_CODES): Reflect function change.
2452         (RS6000_SAVE_TOC): Represent address as MEM.
2453         * win-nt.h (RS6000_SAVE_TOC): Same.
2454         * rs6000.md (indirect calls): Change offsettable address parameter
2455         to offsettable memory parameter.
2456
2457 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
2458
2459         * rtl.h (rtx_def): Update documentation.
2460         (MEM_IN_STRUCT_P): Likewise.
2461         (MEM_SCALAR_P): New macro.
2462         (MEM_COPY_ATTRIBUTES): Likewise.
2463         (MEM_SET_IN_STRUCT_P): Likewise.
2464         * rtl.texi (MEM_SCALAR_P): Document.
2465         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
2466         (fixed_scalar_and_varying_struct_p): New function.  Use
2467         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
2468         (aliases_everything_p): Likewise.
2469         (true_dependence): Use them.
2470         (write_dependence_p): New function, containing code common to
2471         anti_dependence and output_dependence.
2472         (anti_dependence): Use it.
2473         (output_dependence): Likewise.
2474         * calls.c (save_fixed_argument_area): Don't clear
2475         MEM_IN_STRUCT_P. 
2476         (expand_call): Use MEM_SET_IN_STRUCT_P.
2477         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
2478         (emit_library_call_value): Likewise.
2479         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
2480         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
2481         (make_extraction): Likewise.
2482         (simplify_shift_const): Likewise.
2483         (gen_lowpart_for_combine): Likewise.
2484         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
2485         * emit-rtl.c (operand_subword): Likewise.
2486         (change_address): Likewise.
2487         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
2488         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
2489         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
2490         (copy_blkmode_from_reg): Likewise.
2491         (store_field): Likewise.
2492         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
2493         heuristically.  Use MEM_SET_IN_STRUCT_P.
2494         (get_memory_rtx): Likewise.
2495         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
2496         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
2497         MEM_ALIAS_SET on newly returned MEMs.
2498         (assign_temp): Use MEM_SET_IN_STRUCT_P.
2499         (put_reg_into_stack): Likewise.
2500         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
2501         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
2502         (assign_parms): Likewise.
2503         (expand_function): Likewise.
2504         * integrate.c (expand_inline_function): Likewise.
2505         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
2506         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
2507         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
2508         * print-rtl.c (print_rtx): Print /f for frame_related.
2509         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
2510         * reload1.c (reload): Copy MEM_SCALAR_P as well.
2511         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
2512         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
2513         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
2514         (output_constant_def): Likewise.
2515         * a29k.c (a29k_set_memflags_1): Take scalar_p.
2516         Set MEM_SCALAR_P.
2517         (a29k_set_memflags): Use it.
2518         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
2519         * c4x.c (c4x_scan_for_ld): Likewise.
2520         * h8300.c (fix_bit_operand): Likewise.
2521         * m88k.c (legitimize_address): Likewise.
2522         (block_move_loop): Likewise.
2523         (block_move_no_loop): Likewise.
2524         (block_move_sequence): Likewise.
2525         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
2526         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
2527         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
2528         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
2529         * arm.h (arm_gen_load_multiple): Take scalar_p.
2530         (arm_store_load_multiple): Likewise.
2531         * arm.c (arm_gen_load_multiple): Likewise.
2532         (arm_gen_store_multiple): Likewise.
2533         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
2534         
2535 Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
2536
2537         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
2538         calls within a libcall block to indicate no throws are possible.
2539         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
2540         libcall blocks. Don't add edges to exception handlers if we see 
2541         a REG_EH_REGION note with a value of 0.
2542         (make_edges): Override active_eh_region vector if the call has a note
2543         indicating the call does not throw.
2544
2545 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
2546
2547         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
2548
2549 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
2550
2551         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
2552
2553 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
2554
2555         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
2556
2557 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
2558
2559         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
2560         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
2561         PPC750.
2562
2563 1999-01-18  Michael Meissner  <meissner@cygnus.com>
2564
2565         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
2566         supported with -mcpu=xxx.
2567         (processor_type): Add PROCESSOR_PPC750.
2568         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
2569         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
2570         (rs6000_adjust_priority): Add declaration.
2571         
2572         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
2573         processor type as 750, not 603.  Allow -mmultiple and -mstring on
2574         little endian 750 systems.
2575         (rs6000_adjust_priority): Stub for now.
2576         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
2577
2578         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
2579
2580         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
2581         little endian.
2582         (CC1_SPEC): Pass -mstrict-align if little endian, and not
2583         overridden.
2584         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
2585         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
2586
2587         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
2588         little endian.
2589
2590         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
2591
2592 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2593
2594         * config/mips/mips.md (div_trap): Split div_trap_mips16
2595         from div_trap.  
2596         (div_trap_normal,div_trap_mips16): Correct the length attributes.
2597
2598 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2599
2600         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
2601         Instead of writing to const char *buf directly, use a non-const
2602         variable `wbuf' to allocate and write a string, then set buf = wbuf.
2603
2604         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
2605         keyword.
2606
2607         * dyn-string.c (dyn_string_append): Likewise.
2608
2609         * dyn-string.h (dyn_string_append): Likewise.
2610
2611         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
2612
2613         * output.h (end_final, output_operand_lossage, asm_fprintf,
2614         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
2615         Likewise.
2616
2617         * profile.c (init_branch_prob): Likewise.
2618
2619         * toplev.c (set_target_switch, vmessage,
2620         v_message_with_file_and_line, v_message_with_decl,
2621         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
2622         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
2623         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
2624         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
2625         open_dump_file, dump_rtl, clean_dump_file, 
2626         print_version, print_single_switch, print_switch_values,
2627         dump_base_name, debug_args, lang_independent_options,
2628         user_label_prefix, documented_lang_options, target_switches,
2629         target_options, print_time, pfatal_with_name, fatal_io_error,
2630         fatal_insn, default_print_error_function, print_error_function,
2631         report_error_function, error_with_file_and_line, error_with_decl,
2632         error_for_asm, error, fatal, warning_with_file_and_line,
2633         warning_with_decl, warning_for_asm, warning, pedwarn,
2634         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
2635         really_sorry, botch, output_quoted_string, output_file_directive,
2636         open_dump_file, rest_of_decl_compilation, display_help, main):
2637         Likewise.
2638
2639         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
2640         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
2641         warning_with_file_and_line, error_with_file_and_line, sorry,
2642         really_sorry, default_print_error_function, report_error_function,
2643         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
2644         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
2645         output_file_directive, botch): Likewise.
2646
2647         * tree.h (make_decl_rtl): Likewise.
2648
2649         * varasm.c (strip_reg_name, named_section, decode_reg_name,
2650         make_decl_rtl): Likewise.
2651         
2652 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2653
2654         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
2655         directory logically rather than physically. 
2656
2657 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2658
2659         * loop.c (insert_bct): Hide the definition of variables
2660         `increment_direction', `compare_direction', `add_iteration' and
2661         `loop_var_mode'.
2662
2663         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
2664         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
2665         (mode_independent_operand): Mark label `lose' with
2666         ATTRIBUTE_UNUSED_LABEL.
2667
2668         * regclass.c (n_occurrences): Remove prototype and definition.
2669
2670         * reload.c (find_reloads_address_1): Mark variable `tem' with
2671         ATTRIBUTE_UNUSED.
2672
2673         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
2674
2675         * sbitmap.c (sbitmap_copy): Likewise.
2676
2677         * scan-decls.c (scan_decls): Hide label `handle_comma'.
2678
2679         * toplev.c (output_lang_identify): Mark prototype with
2680         ATTRIBUTE_UNUSED.
2681
2682         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
2683         (make_tree_vec): Likewise.
2684         (build1): Likewise.
2685
2686         * varasm.c (assemble_static_space): Mark variable `tem' with
2687         ATTRIBUTE_UNUSED.
2688
2689 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
2690
2691         * Makefile.in (GCOV_INSTALL_NAME): New macro.
2692         (install-common): Use it.
2693         (uninstall): Use it.
2694         (uninstall): Use correct names for protoize and unprotoize.
2695
2696 Mon Jan 18 03:52:56 1999  Christian Bruel <Christian.Bruel@st.com>
2697                           Jeffrey A Law  (law@cygnus.com)
2698
2699         * flow.c (last_mem_set): Delete variable.  References removed.
2700         (mem_set_list): New variable.
2701         (life_analysis): Initialize and finalize alias analysis.
2702         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
2703         (insn_dead_p): For a store to memory, search the entire mem_set_list
2704         for a match.
2705         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
2706         changes to their addresses.  Add new entries to the mem_set_list for
2707         memory writes writes.
2708         (mark_used_regs): Kill entries on the mem_set_list which may be
2709         referenced by a load operation.
2710
2711 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
2712
2713         * alias.c (base_alias_check): Add missing return for differing
2714         symbols case.
2715
2716 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2717
2718         * mips-tdump.c (print_file_desc): Handle unknown filenames and
2719         missing local symbols.
2720
2721 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
2722
2723         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
2724
2725         * system.h (bcopy): Implement with memmove not memcpy.
2726
2727 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
2728
2729         * Makefile.in (cppulp.o): Add dependencies.
2730
2731         * i386.md (integer conditional moves): Add missing earlyclobbers.
2732
2733         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
2734         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
2735         where a register is live.
2736
2737 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
2738
2739         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
2740         of a FP conditional move is not on the FP register stack.
2741
2742 Sun Jan 17 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
2743
2744         * version.c: Bump for snapshot.
2745
2746 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
2747
2748         * reload1.c (reload_cse_regs_1): Do not call
2749         reload_cse_simplify_operands for an insn with asm operands.
2750
2751         * cccp.c (print_help): Fix typos.
2752         * cpplib.c (print_help): Fix typos.
2753         * toplev.c (f_optiosn): Fix typos.
2754         (documented_lang_options): Fix typos.
2755
2756 Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
2757
2758         * gcc.c: (do_spec_1): Fix obvious typo.
2759
2760 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2761
2762         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
2763         a non-static function declaration follows a static one.
2764
2765         * invoke.texi (-Wtraditional): Document the extra check now done
2766         by this flag.
2767
2768 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
2769
2770         * pa.md (shadd): Create shadd insns, even if the result of the shift is
2771         needed without the addition.
2772
2773 Sat Jan 16 10:48:16 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2774
2775         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
2776
2777 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
2778
2779         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
2780
2781 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@mhpcc.edu>
2782
2783         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
2784         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
2785         non_add_cint_operand, non_logical_cint_operand): Likewise.
2786         (get_issue_rate): Add CPU_PPC604E case.
2787         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
2788         
2789 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
2790
2791         * expr.c (queued_subexp_p): Make public.
2792         * expr.h (queued_subexp_p): Declare it.
2793         * recog.c (asm_operand_ok): New function.
2794         (check_asm_operands): Use it.  After reload, use constrain_operands 
2795         instead.
2796         * recog.h (asm_operand_ok): Declare it.
2797         * stmt.c (expand_asm_operands): Use it to try harder to make
2798         asms initially satisfy their constraints.
2799
2800 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
2801
2802         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
2803         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
2804
2805 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2806
2807         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
2808         in delay slot of RPTBD.
2809
2810 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2811
2812         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
2813         divide and modulo sign problem.
2814
2815 Fri Jan 15 11:02:31 1999   Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2816
2817         * unroll.c (loop_iterations): Return 0 if the last loop insn
2818         is not a jump insn or if the loop has multiple back edges.
2819
2820 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
2821
2822         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
2823         a register with another DEST_ADDR giv if the address is not valid.
2824
2825         * pa.c (hppa_expand_epilogue): Save and restore the static chain
2826         around the call to mcount.
2827
2828         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
2829
2830         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
2831         generating non-canonical rtl.
2832
2833 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
2834
2835         * config/i960/i960.c (i960_output_move_double_zero,
2836         i960_output_move_quad_zero): New functions for moving zeros.
2837         (i960_output_move_double, i960_output_move_quad): Additional code
2838         for situation when moving unaligned register group.
2839         
2840         * config/i960/i960.h (i960_output_move_double_zero,
2841         i960_output_move_quad_zero): The function definitions.
2842
2843         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
2844
2845 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
2846
2847         * config/i960/i960.c (i960_function_prologue): New code (optimal
2848         solution) for saving global registers in local registers.
2849         (form_reg_groups, reg_group_compare, split_reg_group): New
2850         functions used by the code.
2851         (reg_group): New structure definition for the new code.
2852         
2853 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
2854
2855         * integrate.c (expand_inline_function): Recognize (mem (addressof))
2856         and substitute.  Copy the return value from there into a new pseudo.
2857
2858 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
2859
2860         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
2861         before generating a call to abort for volatile functions.
2862         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
2863         (TARGET_ABORT_NORETURN):  Define.
2864         (abort-on-noreturn):  New option.
2865
2866 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2867
2868         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc 
2869         and binarycc operations in 3rd annulled delay slot!
2870
2871 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
2872
2873         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
2874         before generating a call to abort for volatile functions.
2875         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
2876         (TARGET_ABORT_NORETURN):  Define.
2877         (abort-on-noreturn):  New option.
2878
2879 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2880
2881         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
2882         Remove prototype which we get from libiberty.h.
2883
2884         * collect2.c (xstrdup): Likewise.
2885
2886         * genextract.c (xstrdup): Likewise for `copystr'.
2887         (mybzero): Remove it and use `memset' instead.
2888
2889         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
2890         to use `memcpy' and `memset' instead.
2891
2892         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
2893         changed.  Remove prototype.
2894         (mybcopy, mybzero): Remove these and use memcpy/memset.
2895
2896 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
2897
2898         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
2899         generating code for TARGET_64BIT.
2900
2901 Tue Jan 12 14:05:37 1999   David Edelsohn  <edelsohn@mhpcc.edu>
2902
2903         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
2904         HOST_WIDE_INT word-size.
2905         (rs6000_stack_info): Remove redundant alignment of fpmem.
2906
2907 Tue Jan 12 14:05:37 1999   Richard Henderson  <rth@cygnus.com>
2908
2909         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
2910         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
2911         (input_operand): Adjust CONSTANT_P_RTX handling.
2912         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
2913         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
2914         (movhi, movqi): Remove CONSANT_P_RTX handling.
2915         (movdi): Adjust CONSTANT_P_RTX handling.
2916
2917 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
2918
2919         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
2920
2921 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
2922
2923         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
2924         ensure all prototypes necessary for building libio will be available.
2925         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
2926         definitions here as they are not host specific.
2927         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
2928
2929 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
2930
2931         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
2932
2933 Tue Jan 12 02:36:10 PST 1999 Jeff Law  (law@cygnus.com)
2934
2935         * version.c: Bump for snapshot.
2936
2937 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
2938
2939         * rtl.c (rtx_alloc): Use memset instead of inline loop.
2940
2941         * recog.h (recog_op_alt): Declare extern.
2942
2943 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
2944
2945         * function.c (purge_addressof_1): If the note accesses a mem+addressof
2946         in a wider mode than any replacement, adjust the cached replacement.
2947         Cache trivial substitutions as well.
2948
2949 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
2950
2951         * Makefile.in (OBJECTS): Add sbitmap.o.
2952         (BASIC_BLOCK_H): Add sbitmap.h.
2953         * basic-block.h: Move simple bitmap code to sbitmap.h.
2954         * flow.c: Move simple bitmap code to sbitmap.c
2955         * sbitmap.h, sbitmap.c: New files.
2956
2957 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
2958
2959         * alpha.h (TARGET_SWITCHES): Document switches.
2960         (TARGET_OPTIONS): Likewise.
2961
2962         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
2963
2964 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
2965
2966         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
2967
2968 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
2969
2970         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
2971         (basic_block_end): Rename to x_basic_block_end.
2972         (BLOCK_HEAD, BLOCK_END): Update.
2973
2974         * caller-save.c: Change basic_block_head/end references to 
2975         BLOCK_HEAD/END.
2976         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
2977         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
2978         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
2979
2980 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2981
2982         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
2983         changed.  Remove prototype since we get that from libiberty.h.
2984
2985         * protoize.c (xstrerror): Likewise.
2986
2987 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2988
2989         * gcc.c (read_specs): Ensure format specifiers match their arguments.
2990
2991 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
2992
2993         * tree.c (copy_node): Oops.  That would be copy not zero
2994         in that last change.
2995
2996 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2997
2998         * config/c4x/c4x.c: Include system.h.
2999         (c4x_caller_save_map): Disable caller save for RC.
3000         (c4x_optimization_options): Disable scheduling before reload.
3001         (valid_parallel_load_store) : Define return type as int.  
3002         Remove unused variable regs.
3003         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
3004         class.
3005         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
3006         handle rotations.
3007         (*db, decrement_and_branch_until_zero): Fix up constraints
3008         to keep reload happy.
3009
3010 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
3011
3012         * tree.c (make_node): Call bzero instead of inline clear.
3013         (copy_node, make_tree_vec, build1): Likewise.
3014         (get_identifier): Call strlen instead of inline count.
3015         (maybe_get_identifier): Likewise.
3016
3017 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3018
3019         * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
3020         operations in 3rd annulled delay slot.
3021         (*lshrqi3_const_set): Disallow c constraint for operand0.
3022         (modhi3+1, modhi3+2): Set attribute type to multi.
3023         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
3024         != operator.
3025
3026 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3027
3028         * gansidecl.h: Allow attribute unused on labels only when we are
3029         version 2.93 or higher.  Not all versions of 2.92 have this feature.
3030
3031         * version.c: Bump minor number to 93.
3032
3033 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3034
3035         * config/m68k/m68k.h: Declare output_function_epilogue.
3036         * recog.h: Declare next_insn_tests_no_inequality.
3037
3038 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
3039
3040         * stmt.c (optimize_tail_recursion): New function, extracted from ...
3041         (expand_return): Use optimize_tail_recursion.
3042         * tree.h (optimize_tail_recursion): Declare.
3043
3044         * toplev.c (compile_file): Move call to output_func_start_profiler
3045         to after the loop to emit deferred functions.
3046
3047 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3048
3049         * system.h (abort): Supply more detailed information on how to
3050         report an Internal Compiler Error.
3051
3052 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
3053
3054         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
3055         allocate memory that will live beyond this function.
3056         (expand_call): Free it here.
3057
3058 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
3059
3060         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
3061         integer data not destined for fp regs.
3062         (LEGITIMIZE_RELOAD_ADDRESS): New.
3063
3064 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
3065                           Richard Henderson  <rth@cygnus.com>
3066
3067         Support for Hypersparc and Sparclite86x:
3068         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
3069         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
3070         (ASM_CPU32_DEFAULT_SPEC): Likewise.
3071         (TARGET_CPU_DEFAULT): Likewise.
3072         (enum processor_type): Likewise.
3073         (CPP_ENDIAN_SPEC): Handle little endian data.
3074         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
3075         (ADJUST_COST): Call sparc_adjust_cost.
3076         * sparc.c (sparc_override_options): Fix up for the new targets.
3077         (supersparc_adjust_cost): Make static.
3078         (hypersparc_adjust_cost): New.
3079         (ultrasparc_adjust_cost): Make static.
3080         (sparc_adjust_cost): New.
3081         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
3082         (function_unit): Add hypersparc scheduling rules.
3083
3084         * configure.in (with_cpu handler): Recognize hypersparc.
3085
3086 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3087
3088         * config/c4x/c4x.c: Added space after negation operator.
3089         * config/c4x/c4x.h: Likewise.
3090         * config/c4x/c4x.md: Likewise.
3091
3092 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3093
3094         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
3095
3096 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3097
3098         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
3099         when a test can't be performed due to limited width of
3100         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
3101         Fix UDIV case for cases where the first operand has the highest bit
3102         set.
3103
3104 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
3105
3106         * pa.h (reg_class): Add FPUPPER_REGS.
3107         (REG_CLASS_NAMES): Similarly.
3108         (REG_CLASS_CONTENTS): Similarly
3109         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
3110         (FP_REG_CLASS_P): Likewise.
3111         (REG_CLASS_FROM_LETTER): Similarly.
3112         (CLASS_MAX_NREGS): Similarly.
3113
3114 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
3115
3116         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
3117         for a typedef of bool.  Make sure to have a copy of the file is
3118         in place before we look to fix it.  Fix typo in variable name to
3119         FILE.
3120
3121 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
3122
3123         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
3124         value_mode for the return mode.
3125
3126 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
3127
3128         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
3129         debugging as default.
3130
3131         * config/tm-dwarf2.h: New file.
3132
3133 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
3134
3135         * h8300.h (ASM_OUTPUT_LABELREF): Define.
3136
3137         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
3138         * local-alloc.c (update_equiv_regs): Corresponding changes.
3139         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
3140
3141         * calls.c (special_function_p): Push alloca test inside the large
3142         conditional which excludes functions not at file scope or not
3143         extern.  
3144
3145         * calls.c (special_function_p): New function broken out of
3146         expand_call.
3147         (precompute_register_parameters): Likewise.
3148         (store_one_arg): Likewise.
3149         (store_unaligned_argumetns_into_pseudos): Likewise.
3150         (save_fixed_argument_area): Likewise.
3151         (restore_fixed_argument_area): Likewise.
3152         (expand_call): Corresponding changes.
3153         
3154 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3155
3156         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
3157         handling.
3158         (const_sint32_operand): Likewise.
3159
3160 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3161
3162         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
3163         is a macro when deciding if we can use `jmp_buf' in prototypes.
3164
3165 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3166
3167         * config/c4x/c4x.md (addqi3): If the destination operand is
3168         a hard register other than an extended precision register,
3169         emit addqi3_noclobber.
3170         (*addqi3_noclobber_reload): New pattern added so that reload
3171         will recognise a store of a pseudo, equivalent to the sum
3172         of the frame pointer and a constant, as an add insn.
3173
3174 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
3175
3176         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
3177         * configure: Rebuilt.
3178         * i386/xm-go32.h: Define LIBSTDCXX.
3179         * i386/x-go32: New.
3180         * i386/go32.h (MD_EXEC_PREFIX): Define.
3181         (FILE_NAME_ABSOLUTE_P): Define.
3182         (LINK_COMMAND_SPEC): Define.
3183
3184 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
3185
3186         * expr.c (store_expr): If the lhs is a memory location pointed
3187         to be a postincremented (or postdecremented) pointer, always
3188         force the rhs to be evaluated into a pseudo.
3189
3190 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
3191
3192         * real.c (mtherr): Print more reasonable warning messages.
3193
3194 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3195
3196         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
3197
3198         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
3199         (new_include_prefix): Constify char* parameters.
3200
3201         * cppfiles.c (read_name_map): Likewise.
3202         (append_include_chain): Likewise.  Also, use a writable char* copy
3203         of parameter `dir' which we then modify, rather than using the
3204         parameter itself to store the new writable string.
3205         (remap_filename): Constify some variables.  Also, use a writable
3206         char* to store an allocated string which we will be modifying.
3207
3208         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
3209         (cpp_start_read): Constify variable `str'.
3210
3211         * cpplib.h (append_include_chain): Constify a char* parameter.
3212
3213         * gcc.c Include prefix.h, don't prototype prefix.c functions.
3214         (add_prefix, save_string): Constify char* parameters.
3215         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
3216
3217         * prefix.c: Include prefix.h.
3218         (get_key_value, translate_name, save_string, update_path,
3219         set_std_prefix): Constify various char* parameters and variables.
3220         (save_string): Use xmalloc, not malloc.
3221         (translate_name): Use a writable temporary variable to create and
3222         modify a string before setting it to a const char*.
3223         
3224         * prefix.h: New file to prototype functions exported from prefix.c.
3225
3226 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3227
3228         * cpplib.c (skip_if_group): Split out the logic that handles
3229         directive recognition to its own function.  Don't use
3230         parse markers; use a bare pointer into the buffer.  Use
3231         copy/skip_rest_of_line instead of doing it by hand.  Remove
3232         `return on any directive' mode which was never used, and take
3233         only one argument.
3234         (consider_directive_while_skipping): New function, subroutine
3235         of skip_if_group.  Logic streamlined a bit.
3236         (conditional_skip, do_elif, do_else): Call skip_if_group with
3237         only one argument.
3238
3239 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3240
3241         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
3242         error.
3243
3244 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
3245
3246         * extend.texi (Bound member functions): Document.
3247
3248 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3249
3250         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
3251         lang_to_string, type_to_string): Make return type const char*.
3252         (print_symbol): Apply `const' keyword to a char*.
3253         (print_file_desc): Cast structure member `crfd' to ulong when
3254         comparing against one.
3255
3256         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
3257         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
3258         (progname, input_name): Apply `const' keyword to a char*.
3259         Don't redundantly include sys/stat.h.
3260         (alloc_info): Apply `const' keyword to a char*.
3261         (st_to_string, sc_to_string): Likewise.
3262         (hash_string): Cast variable `hash_string' to a symint_t when
3263         comparing against one.
3264         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
3265         Likewise cast it to long when comparing against one.
3266         (add_local_symbol): Apply `const' keyword to a char*.
3267         (add_ext_symbol): Likewise.
3268         (add_unknown_tag): Likewise.
3269         (add_procedure): Cast a printf-style field width to an int.
3270         (add_file): Cast PAGE_USIZE to long when comparing against one
3271         (parse_begin): Cast a printf-style field width to an int.
3272         (parse_bend): Likewise.
3273         (parse_def): Likewise.
3274         (parse_end): Likewise.
3275         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
3276         (parse_stabs_common): Fix format specifier.
3277         (parse_input): Change type of variable `i' to Size_t.
3278         (write_object): Fix arguments to match format specifiers.
3279         Cast variable `num_write' to long when comparing against one.
3280         (read_seek): Cast variable `sys_read' to symint_t when comparing
3281         against one.  Fix arguments to match format specifiers.  Cast
3282         variable `size' to long when comparing against one.
3283         (copy_object): Cast result of `sizeof' to int when comparing
3284         against one.  Fix arguments to match format specifiers.  Cast
3285         variable `ifd' to long when comparing against a signed value.
3286         Likewise, likewise.
3287         
3288 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3289
3290         * c-common.c (decl_attributes): Allow applying attribute `unused'
3291         on a LABEL_DECL.
3292
3293         * c-parse.in (label): Parse attributes after a label, and call
3294         `decl_attributes' to handle them.
3295
3296         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
3297
3298         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
3299         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
3300
3301         * invoke.texi: Note that labels can be marked `unused'.
3302
3303 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
3304
3305         * version.c: Bump for snapshot.
3306
3307 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
3308
3309         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
3310         RTL for a compare/jump sequence.
3311         
3312 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3313
3314         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
3315         for a target with HAVE_cc0 defined.
3316         (emit_cmp_and_jump_insns): New function.
3317         * expr.h (emit_cmp_and_jump_insns): Prototype it.
3318         * loop.c (check_dbra_loop): Use it to replace calls
3319         to emit_cmp_insn and emit_jump_insn and to canonicalise
3320         the comparison if necessary.
3321         * unroll.c (unroll_loop): Likewise.
3322
3323 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3324
3325         * fixincludes (sys/utsname.h): Provide forward declaration of
3326         struct utsname on Ultrix V4.[35].
3327
3328         * mips.md (div_trap): Use local labels instead of dot-relative
3329         branches.
3330
3331 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
3332
3333         * pa.md (branch, negated branch): Handle (const_int 0) as first
3334         source operand.
3335         * pa.c (output_cbranch): Likewise.
3336
3337 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
3338
3339         * rs6000.c (rs6000_stack_info): Undo spurious part of last
3340         change.
3341
3342 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
3343
3344         * extend.texi (__builtin_constant_p): Add missing @smallexample.
3345
3346 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
3347
3348         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
3349
3350 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
3351
3352         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
3353         (adddi_dishl32): Similarly.
3354
3355         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
3356         for each insn in the skipped block.
3357
3358         * reload1.c (reload_as_needed): Verify that the insn satisfies its
3359         constraints after replacing a register address with an autoincrement
3360         address for reload inheritance purposes.
3361
3362         * i386.md (doubleword shifts): Avoid namespace pollution.
3363
3364 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
3365
3366         * configure.in (FreeBSD ELF): Needs special crt files.
3367
3368 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
3369
3370         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
3371
3372 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3373
3374         * loop.c (check_dbra_loop): While reversing the loop, if the
3375         comparison value has a VOID mode use the mode of the other operand
3376         to compute the mask.
3377
3378 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
3379
3380         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
3381         avoid warnings in compiling explow.c.
3382
3383         (patch from Ken Raeburn, raeburn@cygnus.com)
3384         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
3385         fpmem_offset.  Compute total size after that, and then
3386         rs6000_fpmem_offset using both values.
3387
3388 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3389
3390         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
3391         the future; indeed that already happens in some cases.
3392
3393 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
3394
3395         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
3396         (arith_operand): Remove constant_p_rtx handling.
3397         (const64_operand, const64_high_operand): Likewise.
3398         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
3399         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
3400         (small_int_or_double, uns_small_int, zero_operand): Likewise.
3401         * sparc.h (PREDICATE_CODES): Likewise.
3402
3403         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
3404
3405 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
3406
3407         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
3408         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
3409         consider constant CONSTRUCTOR constant and to defer some cases
3410         to cse.
3411         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
3412         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
3413
3414 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
3415
3416         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
3417         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
3418
3419         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
3420         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
3421         (sext_add_operand, and_operand, or_operand): Likewise.
3422         (reg_or_cint_operand, some_operand, input_operand): Likewise.
3423         * alpha.h (PREDICATE_CODES): Likewise.
3424
3425 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
3426
3427         * version.c: Bump for snapshot.
3428
3429 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
3430
3431         * gengenrtl.c (gencode): Always use bzero to clear memory instead
3432         of dangerous casts and stores.
3433
3434         * Makefile.in (compare, gnucompare): Add missing else true clauses.
3435
3436 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
3437
3438         * alpha.md (builtin_longjmp): Add missing "DONE".
3439
3440 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
3441
3442         * gcc.c (execute): Enable -pipe with win32.
3443
3444 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
3445
3446         * config/arm/t-arm-elf: Add multiplib option for leading
3447         underscores.
3448
3449         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
3450         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
3451
3452         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
3453         than variable 'reload_address_base_reg_class'.  [Note this
3454         change is unrelated to the others in this patch].
3455
3456         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
3457         leading underscore.
3458
3459 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3460
3461         * alias.c (record_alias_subset): Remove ignored `&'.
3462         (init_alias_once): Likewise.
3463
3464         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
3465
3466         * config/mips/mips.c (mips_asm_file_end): Cast the result of
3467         fwrite to `int' when comparing against one.
3468
3469         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
3470         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
3471
3472         * cse.c (rehash_using_reg): Change type of variable `i' to
3473         unsigned int.
3474
3475         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
3476         assigning it to one.
3477
3478         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
3479
3480         * final.c (final_scan_insn): Likewise for variable `i'.
3481         (output_asm_insn): Cast a char to unsigned char when used as an
3482         array index.
3483
3484         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
3485         assigning it to one.
3486
3487         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
3488
3489         * recog.c (preprocess_constraints): Cast a char to unsigned char
3490         when used as an array index.
3491
3492         * regmove.c (find_matches): Likewise.
3493
3494         * reload1.c (calculate_needs): Add default case in switch.
3495         (eliminate_regs_in_insn): Initialize variable `offset'.
3496         (set_offsets_for_label): Change type of variable `i' to unsigned.
3497         (reload_as_needed): Wrap variable `i' in macro check on
3498         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
3499
3500         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
3501         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
3502         when comparing against one.
3503
3504         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
3505         unsigned when comparing against one.  Likewise for
3506         GET_MODE_ALIGNMENT().
3507         (layout_record): Cast record_align to int when comparing against a
3508         signed value. 
3509         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
3510         signed value.
3511
3512         * tree.c (get_identifier): Cast variable `len' to unsigned when
3513         comparing against one.
3514         (maybe_get_identifier): Likewise
3515
3516 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
3517
3518         * toplev.c (rest_of_compilation): Do not set reload_completed.
3519         * reload1.c (reload): Set reload_completed before calling
3520         cleanup_subreg_operands.
3521
3522 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
3523
3524         * reload1.c (emit_reload_insns): Check `set' not null before use.
3525
3526 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
3527
3528         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
3529         'int'. 
3530
3531 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3532
3533         * halfpic.c (half_pic_encode): Delete redundant code.
3534
3535 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
3536
3537         * toplev.c (main): Delete handling of -dM as a preprocessor
3538         option.
3539
3540 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
3541
3542         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
3543         -dI, which are handled by the preprocessor.
3544
3545 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
3546
3547         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
3548         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
3549
3550 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
3551
3552         * version.c: Bump for snapshot.
3553
3554 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
3555
3556         * version.c: Bump for snapshot.
3557
3558 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
3559
3560         * version.c: Bump for snapshot.
3561
3562 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3563
3564         * genattr.c (fatal): Qualify a char* with the `const' keyword.
3565         
3566         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
3567         write_unit_name, write_eligible_delay, expand_units,
3568         make_length_attrs, write_attr_case, find_attr,
3569         make_internal_attr): Likewise.
3570         * gencheck.c (tree_codes): Likewise.
3571         * gencodes.c (fatal): Likewise.
3572         * genconfig.c (fatal): Likewise.
3573         * genemit.c (fatal): Likewise.
3574         * genextract.c (fatal, walk_rtx, copystr): Likewise.
3575         * genflags.c (fatal): Likewise.
3576         * genopinit.c (fatal, optabs, gen_insn): Likewise.
3577         * genoutput.c (fatal, error, predicates): Likewise.
3578         * genpeep.c (fatal): Likewise.
3579         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
3580         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
3581
3582 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3583
3584         * configure.in (with-fast-fixincludes): Fix whitespace.
3585         * configure: Rebuilt.
3586
3587         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
3588         asm() etc. function declarations in __DECC.
3589
3590 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
3591
3592         * expr.c (emit_move_insn_1): Only emit a clobber if the target
3593         is a pseudo register.
3594
3595 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
3596
3597         * gcse.c: Include expr.h in order to get the prototype for
3598         get_condition() which is used in delete_null_pointer_checks(). 
3599
3600 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3601
3602         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
3603
3604 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
3605
3606         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
3607         (ALL_CFLAGS): Delete SCHED_CFLAGS.
3608
3609 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
3610
3611         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
3612         ';').
3613
3614 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
3615
3616         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
3617         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
3618         optimizations from the combiner.
3619
3620 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3621
3622         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
3623
3624 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
3625
3626         * toplev.c (main): Disable optimize_size if a specific
3627         optimization level is requested.  Always set optimization
3628         level to 2 if -Os is specified.
3629
3630 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
3631
3632         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
3633         cpplib.
3634         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
3635         initialize it using fname.
3636
3637 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3638
3639         * cpplib.c (do_include): Treat #include_next in the
3640         primary source file as #include plus warning.  Treat
3641         #include_next in a file included by absolute path as an
3642         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
3643
3644 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3645
3646         * cccp.c: Don't define MIN/MAX anymore.
3647         * cpplib.c: Likewise.
3648         * machmode.h: Likewise.
3649         * system.h: Provide definitions for MIN/MAX.
3650
3651 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
3652
3653         * fix-header.c: Don't define xstrdup here.
3654
3655 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3656
3657         * loop.c (consec_sets_giv): New argument last_consec_insn.
3658         (strength_reduce): Provide / use it.
3659
3660 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3661
3662         * loop.h (loop_info): New field 'vtop'.
3663         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
3664         scanning loop for vtop.
3665         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
3666         (loop_iterations): Use them to determine if loop has a constant
3667         number of iterations.  Set loop_info->vtop.  Don't subtract
3668         common reg term from initial_value and final_value if have a
3669         do-while loop.
3670
3671 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
3672
3673         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
3674
3675         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
3676
3677         * mn10200.md (abssf2, negsf2): New expanders.
3678
3679         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
3680
3681 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
3682
3683         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
3684         replaced by a CONCAT whoes components do not have the same
3685         mode as the original SUBREG, use a new SUBREG to restore the
3686         mode. 
3687
3688         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
3689         multiword complex values.
3690
3691 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3692
3693         * cppalloc.c: Add xstrdup here.
3694         * cpplib.h: Remove savestring prototype.
3695         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
3696           throughout. 
3697         * cppfiles.c: s/savestring/xstrdup/ throughout.
3698
3699 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3700
3701         * cpplib.c: Make all directive handlers read their own
3702           arguments.
3703           (struct directive): Remove last two arguments from FUNC
3704           member prototype. Remove `command_reads_line' member
3705           entirely.
3706           (directive_table): Remove initializations of
3707           command_reads_line flag.  Pretty-print.
3708           (eval_if_expression, do_define, do_line, do_include,
3709           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
3710           do_else, do_elif, do_sccs, do_assert, do_unassert,
3711           do_warning): Take only two args.
3712
3713           (cpp_define): Call do_define with two args and the text to
3714           define stuffed into a buffer.
3715           (make_assertion): Call do_assert with two args.
3716           (handle_directive): Call do_line with two args. Call
3717           kt->func with two args.  Remove command_reads_line
3718           processing.
3719           (do_define, do_undef, do_error, do_warning, do_pragma,
3720           do_sccs): Read the rest of the line here.
3721           (do_ident): Gobble rest of line, as cccp does.
3722           (cpp_undef): New function.
3723           (cpp_start_read): Call cpp_undef instead of do_undef.
3724
3725 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3726
3727         * cpphash.h (union hash_value): Remove `keydef' member, add a
3728           `struct hashnode *aschain' member for #assert.  
3729
3730           * cpplib.c (struct tokenlist_list, struct
3731           assertion_hashnode): Delete structure definitions.
3732           (assertion_install, assertion_lookup, delete_assertion,
3733           check_assertion, compare_token_lists, reverse_token_list,
3734           read_token_list, free_token_list): Delete functions.
3735           (parse_assertion): New function.  
3736           (cpp_cleanup): Don't destroy the assertion_hashtable.
3737
3738           (do_assert): Gut and rewrite.  #assert foo (bar) places
3739           entries for `#foo' and `#foo(bar)' in the macro hash table,
3740           type T_ASSERT.  The value union's `aschain' member is used
3741           to chain all answers for a given predicate together.
3742           (do_unassert): Also rewritten.  Take an un-asserted
3743           answer off the chain from its predicate and call
3744           delete_macro on the hashnode, or walk a predicate chain
3745           calling delete_macro on all the entries.
3746           (cpp_read_check_assertion): Simply call parse_assertion to
3747           get the canonical assertion name, and look that up in the
3748           hash table.
3749
3750         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
3751         Removed.
3752
3753         * cpphash.c (install): Use bcopy instead of an explicit loop
3754           to copy the macro name.
3755
3756         * cppexp.c (cpp_lex): Convert the result of
3757           cpp_read_check_assertion to a `struct operation' directly;
3758           don't go through parse_number.
3759
3760 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3761
3762         * loop.h (struct induction): Delete times_used member.
3763         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
3764         (n_times_used): Rename to n_times_set.  Changed all users.
3765         (scan_loop): Free reg_single_usage before strength reduction.
3766         (record_giv, combine_givs): Remove handling of times_used member.
3767         (combine_givs_used_once): Rename to:
3768         (combine_givs_used_by_other) .  Changed all callers.
3769
3770 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
3771
3772         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
3773         instead of TREE_CODE_CLASS == 't'.
3774         (gen_type_die): Likewise.
3775         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
3776
3777 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
3778
3779         * real.c (endian): Disable last change unless
3780         HOST_BITS_PER_WIDE_INT is greater than 32.
3781
3782 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3783
3784         * output.h (force_data_section): New prototype.
3785         * varasm.c (force_data_section): New function to force the
3786         data section, regardless of what in_section thinks.
3787         * dwarf2out.c (output_call_frame_info): Call force_data_section
3788         since varasm may not realize we've changes sections.
3789
3790 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
3791
3792         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
3793           after completeing reload.
3794
3795         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
3796           deleted after reload.
3797
3798 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
3799
3800         * rtl.h (multiple_sets): Fix prototype.
3801         * rtlanal.c (multiple_sets): Fix return type.
3802
3803 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
3804
3805         * version.c: Bump for snapshot.
3806
3807 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
3808
3809         * version.c: Bump for snapshot.
3810
3811 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
3812
3813         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
3814
3815 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3816
3817         * rtl.h (recompute_reg_usage): Add second argument.
3818         * flow.c (recompute_reg_usage): Likewise.
3819         * toplev.c (rest_of_compilation): Supply second argument to
3820         recompute_reg_usage.
3821
3822         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
3823         after reload.
3824
3825 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
3826
3827         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
3828         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
3829         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
3830         mcpu32 or m5200.
3831
3832         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
3833
3834         * rtlanal.c (multiple_sets): New function.
3835         * rtl.h (multiple_sets): Declare it.
3836         * local-alloc.c (wipe_dead_reg): Use it.
3837         * global.c (global_conflicts): Likewise.
3838
3839 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
3840
3841         * global.c (record_conflicts): Don't use an array of shorts to
3842         store an array of ints.
3843         (global_conflicts): Likewise.
3844
3845 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
3846
3847         * alpha.c (alpha_expand_block_move): mode_for_size expects
3848         bits, not bytes.  Infer extra alignment from addressof.
3849
3850 1998-12-11  Michael Meissner  <meissner@cygnus.com>
3851
3852         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
3853         .sbss section, not .sdata.
3854
3855 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
3856
3857         * cccp.c: Do not #include <sys/stat.h> here; this is already done
3858         by "system.h".
3859         * collect2.c: Likewise.
3860         * cpplib.h: Likewise.
3861         * gcc.c: Likewise.
3862         * gcov.c: Likewise.
3863         * getpwd.c: Likewise.
3864         * protoize.c: Likewise.
3865         * toplev.c: Likewise.
3866
3867         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
3868         and don't try to define it here.
3869         * Makefile.in (cppmain.o): Depend on machmode.h.
3870         (cpplib.o): Likewise.
3871         (cpperror.o): Likewise.
3872         (cppexp.o): Likewise.
3873         (cppfiles.o): Likewise.
3874         (cpphash.o): Likewise.
3875         (cppalloc.o): Likewise.
3876         (fix-header.o): Likewise.
3877         (scan-decls.o): Likewise.
3878
3879 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
3880
3881         * sh.c (print_operand): lookup interrupt_handler attribute instead
3882         of relying on static variable. 
3883         * (calc_live_regs): Likewise.
3884         * (sh_pragma_insert_attributes): Create interrupt_handler
3885         attribute if a pragma was specified
3886         * (sh_valid_machine_decl_attribute): Don't set static flag.
3887         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
3888
3889 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3890
3891         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
3892         to determine if a register is live at a jump destination.
3893         Everything is dead at a BARRIER.
3894
3895 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
3896
3897         * cse.c (simplify_unary_operation): Sign-extend constants when
3898         they have the most significant bit set for the target.
3899         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
3900         host.
3901         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
3902         HOST_WIDE_INT temporary before negating it.
3903         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
3904
3905 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
3906
3907         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
3908         #if USE_CPPLIB.
3909
3910 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3911
3912         * collect2.h: New header file for prototypes.
3913
3914         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
3915
3916         * collect2.c: Include collect2.h.
3917         * tlink.c: Likewise.
3918
3919 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
3920
3921         * flow.c: Update some comments.
3922
3923 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
3924
3925         * objc/objc-act.c (cpp_initialized): Removed.
3926         (lang_init_options): Initialize cpplib.
3927         (lang_decode_option): Move initialization of cpplib to
3928         lang_init_options.
3929         * c-lang.c: (parse_options,parse_in): Added.
3930         (lang_init_options): Initialized cpplib here.
3931         * c-decl.c (parse_options,cpp_initialized): Removed.
3932         (c_decode_option): Move initialization of cpplib to
3933         lang_init_options.
3934
3935 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3936
3937         * reload1.c (reload_combine, reload_combine_note_store):
3938         Make STORE_RUID always valid.
3939         (reload_combine): Check if BASE is clobbered too early.
3940
3941 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
3942
3943         * reload.c (find_reloads): Display the insn that cannot be
3944         reloaded. 
3945
3946 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
3947
3948         * cccp.c (create_definition): Fix end of bufer logic.
3949
3950 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3951
3952         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
3953         pointer parameters changed to use the PARAMS() macro.
3954
3955 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3956
3957         * except.h (struct handler_info): Add handler_number field.
3958         * except.c (gen_exception_label): EH labels no longer need to be
3959         on the permanent obstack.
3960         (get_new_handler): Set the label number field.
3961         (output_exception_table_entry): Regenerate handler label reference 
3962         from the label number field.
3963         (init_eh): Remove a blank line.
3964         * integrate.c (get_label_from_map): Labels no longer need to be
3965         on the permanent obstack.
3966
3967 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
3968
3969         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
3970         only when OUTER_CODE is SET.
3971
3972 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3973
3974         * loop.c (strength_reduce): If scan_start points to the loop exit
3975         test, be wary of subversive use of gotos inside expression statements.
3976         Don't set maybe_multiple for a backward jump that does not
3977         include the label under consideration into its range.
3978         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
3979
3980 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3981
3982         * explow.c (plus_constant_wide): Don't immediately return with
3983         result of recursive call.
3984
3985 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3986
3987         * eh-common.h (struct eh_context): Add table_index for rethrows.
3988
3989         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
3990         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
3991         processed when inlined or unrolled (ie duplicated in some way).
3992
3993         * rtl.c (reg_note_name): Add strings for new reg_note enums.
3994
3995         * expr.h (rethrow_libfunc): New library decl.
3996
3997         * optabs.c (rethrow_libfunc): Initialize.
3998
3999         * except.h (struct eh_entry): Add new field 'rethrow_label'.
4000         (new_eh_region_entry): No longer exported from except.c.
4001         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
4002         different prototype.
4003         (rethrow_symbol_map, rethrow_used): New exported functions.
4004         (eh_region_from_symbol): New exported function.
4005
4006         * except.c (create_rethrow_ref): New function to create a single
4007         SYMBOL_REF for a rethrow region.  
4008         (push_eh_entry): Initialize a rethrow ref.
4009         (func_eh_entry): Add a rethrow_label field.
4010         (new_eh_region_entry): Make static, and initialize the rethrow entry.
4011         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
4012         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
4013         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
4014         a region into an appropriate new symbol.
4015         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
4016         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
4017         (end_catch_handler): Emit a barrier for new-exceptions since 
4018         control can never drop through the end of a catch block.
4019         (expand_end_all_catch): new-exceptions never fall through a catch 
4020         block.
4021         (expand_rethrow): use __rethrow routine for new exceptions.
4022         (output_exception_table_entry): Generate rethrow labels, if needed.
4023         (output_exception_table): Generate start and end rethrow labels.
4024         (init_eh): Create rethrow symbols for beginning and end of table.
4025         (scan_region): Don't eliminate EH regions which are the targets of
4026         rethrows.
4027
4028         * flow.c (make_edges): Add different edges for rethrow calls, 
4029         identified by having the REG_EH_RETHROW reg label.
4030         (delete_unreachable_blocks): Don't delete regions markers which are 
4031         the target of a rethrow.
4032
4033         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
4034         allow save_for_inline_copying to call duplicate_eh_handlers.
4035         (save_for_inline_copying): Call duplicate_eh_handlers instead of
4036         exposing internal details of exception regions.
4037         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
4038         (expand_inline_function_eh_labelmap):  New callback routine to 
4039         allow expand_inline_function to call duplicate_eh_handlers.
4040         (expand_inline_function): Call duplicate_eh_handlers instead of
4041         exposing internal details of exception regions.
4042         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
4043         flag is set.
4044
4045         * libgcc2.c (find_exception_handler): Generalize to enable it to
4046         pick up processing where it left off last time for a rethrow.
4047         (__unwinding_cleanup): New function. debug hook which is called before
4048         unwinding when __throw finds there is nothing but cleanups left.
4049         (throw_helper): Common parts of __throw extracted out for reuse.
4050         (__throw): Common parts moved to throw_helper.
4051         (__rethrow): New function for performing rethrows.
4052
4053 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
4054
4055         * reload1.c (current_function_decl): Tweak declaration.
4056
4057 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
4058
4059         * c-decl.c (flag_isoc9x): Default off.
4060         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
4061         * cccp.c (print_help, main): Likewise.
4062         * gcc.c (default_compilers): Update for -std=gnu*.
4063
4064 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
4065
4066         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
4067         * demangle.h: Deleted.
4068
4069         * reload1.c (current_function_decl): Declare.
4070
4071 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4072
4073         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
4074
4075 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4076
4077         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
4078
4079 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
4080
4081         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
4082         and fputs_unlocked.
4083         * configure: Rebuilt.
4084         * system.h: If the *_unlocked functions are available use them
4085         instead of the locked counterparts by defining macros.
4086         * config.in: Regenerated.
4087
4088 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
4089
4090         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
4091         wrong and should only be used for dump related things, not
4092         debugging information, instead main_input_filename should be used.
4093         Also, reuse output_file_directive if possible.
4094         * i386/aix386ng.h (ASM_FILE_START): Likewise.
4095         * i386/isc.h (ASM_FILE_START): Likewise.
4096         * i386/win-nt.h (ASM_FILE_START): Likewise.
4097         * i386/sun386.h (ASM_FILE_START): Likewise.
4098
4099 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
4100
4101         * configure.in (mips*-*-linux*): Handle big and little endian
4102         systems.
4103         * configure: Rebuilt.
4104
4105 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
4106
4107         * emit-rtl.c: Fix typo.
4108
4109 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
4110
4111         * reload1.c (eliminate_regs): Don't do anything, if we're not
4112         generating code.
4113
4114 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
4115
4116         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
4117         Add comment.
4118         * mips/mips.c (mips_select_section): Add comment.
4119
4120 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
4121
4122         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
4123         characters in file names in #line to be consistent with #include
4124         handling.  We support escape prcessing in the # 1 "..." version of
4125         the command.  See also support in cp/lex.c.
4126         (handle_directive): Likewise.
4127         (do_line): Likewise.
4128         
4129 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4130
4131         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
4132           so it'll work on non-ASCII platforms.  Always consider $ an
4133           identifier character.  Take no arguments.
4134           (cpp_reader_init): Call initialize_char_syntax with no
4135           arguments.
4136           (cpp_start_read): Don't call initialize_char_syntax again.
4137           Clear is_idchar['$'] and is_idstart['$'] if not
4138           opts->dollars_in_ident.
4139
4140         * cpplib.h (struct cpp_reader): Replace void *data element by
4141           cpp_options *opts.  Rearrange elements to make gdb printout
4142           less annoying (put buffer stack at end).
4143           (CPP_OPTIONS): Get rid of now-unnecessary cast.
4144
4145         * cppmain.c: s/data/opts/ when initializing cpp_reader
4146           structure.
4147         * c-decl.c: Likewise.
4148         * objc/objc-act.c: Likewise.
4149         * fix-header.c: Likewise.
4150
4151 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4152
4153         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
4154         with a struct file_name_list pointer.
4155         (struct cpp_reader): Add pointer to chain of `actual
4156         directory' include searchpath entries.
4157         (struct file_name_list): Add *alloc pointer for the sake of
4158         the actual-directory chain.
4159
4160         Move definition of HOST_WIDE_INT here.
4161         (cpp_parse_escape): Change prototype to match changes in
4162         cppexp.c.
4163
4164         * cppfiles.c (actual_directory): New function.
4165         (finclude): Use it to initialize the buffer's actual_dir
4166         entry.
4167         (find_include_file): We don't need to fix up max_include_len
4168         here.
4169
4170         * cpplib.c (do_include): Don't allocate a file_name_list on
4171         the fly for current directory "" includes, use the one that's
4172         been preallocated in pfile->buffer->actual_dir.  Hoist out
4173         duplicate code from the search_start selection logic.
4174         (cpp_reader_init): Initialize pfile->actual_dirs.
4175
4176         Remove definition of HOST_WIDE_INT.  Change calls
4177         to cpp_parse_escape to match changes in cppexp.c (note
4178         hardcoded MASK, which is safe since this is the source
4179         character set).
4180
4181         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
4182         to handle wide character constants in #if directives.  The
4183         function now returns a HOST_WIDE_INT, and takes a third
4184         argument which is a binary mask for all legal values (0x00ff
4185         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
4186         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
4187         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
4188
4189 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
4190
4191         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
4192
4193 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4194
4195         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
4196         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
4197         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
4198
4199 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
4200
4201         * final.c (output_asm_name): Use tabs to seperate comments from
4202         assembly text.
4203         
4204         Include instruction lengths (if defined) in output.
4205
4206 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4207
4208         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
4209         in the loop_info structure.
4210         
4211 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
4212  
4213         * configure.in:  (arm*-*-ecos-elf):  New target.
4214         * configure:  Regenerated.
4215         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
4216         * config/arm/ecos-elf.h:  New file.
4217         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
4218         for redefinition.
4219  
4220 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4221
4222         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
4223
4224 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
4225
4226         * version.c: Bump for snapshot.
4227
4228 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4229
4230         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
4231         as needed.
4232
4233 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
4234
4235         * version.c: Bump for snapshot.
4236
4237 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
4238
4239         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
4240         compressed reports are ok and preferred over URLs
4241
4242 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
4243
4244         * invoke.texi (Warning Options): Soften the tone of -pedantic
4245
4246 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
4247
4248         * print-rtl.c (print_rtx): Add prototype.
4249
4250         * unroll.c (iteration_info): Make it static.
4251
4252 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
4253
4254         * alias.c (memrefs_conflict_p): A second ANDed address
4255         disables the aligned address optimization.
4256
4257 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
4258
4259         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
4260         in -c << n case.
4261
4262 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
4263
4264         * i960.h (BOOL_TYPE_SIZE): Define.
4265
4266 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4267
4268         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
4269         from old valid_parallel_operands_4.
4270         (valid_parallel_operands_4): Check that operands for 4 operand
4271         parallel insns are valid, excluding load/store insns.
4272         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
4273         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
4274         valid_parallel_load_store instead of valid_parallel_operands_4.
4275         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
4276         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
4277         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
4278         *notqi_movqi_clobber): Use valid_parallel_operands_4.
4279         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
4280         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
4281         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
4282
4283 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4284
4285         * config/c4x/c4x.c (iteration_info): Delete extern.
4286
4287 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
4288
4289         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
4290
4291         * final.c (cleanup_subreg_operands): Delete some unused code.
4292
4293         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
4294         (struct insn_alternative): New structure definition.
4295         (recog_op_alt): Declare variable.
4296         (preprocess_constraints): Declare function.
4297         * recog.c (recog_op_alt): New variable.
4298         (extract_insn): Verify number of alternatives is in range.
4299         (preprocess_constraints): New function.
4300         * reg-stack.c: Include recog.h.
4301         (constrain_asm_operands): Delete.
4302         (get_asm_operand_lengths): Delete.
4303         (get_asm_operand_n_inputs): New function.
4304         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
4305         N_OUTPUTS args.  All callers changed.
4306         Compute number of inputs and outputs here by calling
4307         get_asm_operand_n_inputs.
4308         Instead of constrain_asm_operands, call extract_insn,
4309         constrain_operands and preprocess_constaints.  Use information
4310         computed by these functions throughout.
4311         (record_reg_life): Delete code that is unused due to changes in
4312         record_asm_reg_life.
4313         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
4314         N_INPUTS and N_OUTPUTS args.  All callers changed.
4315         Similar changes as in record_asm_reg_life.
4316         (subst_stack_regs): Move n_operands declaration into the if statement
4317         where it's used.
4318         Delete code that is unused due to changes in subst_asm_stack_regs.
4319         * stmt.c (expand_asm_operands): Verify number of alternatives is in
4320         range.
4321         * Makefile.in (reg-stack.o): Depend on recog.h.
4322
4323 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
4324
4325         * except.c (set_exception_version_code): Argument is an "int".
4326
4327 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
4328
4329         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
4330         * configure: Rebuilt.
4331
4332 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
4333
4334         * configure.in (mipsel-*-linux*): New target.
4335         * mips/linux.h: New file, based on other Linux targets.
4336
4337 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
4338
4339         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
4340         runs in the context of the deleter, not the deletee, so we must
4341         use taskVarGet to find the correct memory to free.
4342         (__gthread_key_create): Initialize the task
4343         variable subsystem so that the task variable is still active when
4344         the delete hook is run.
4345
4346 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
4347
4348         * pdp11.h: Use optimize_size for space optimizations.
4349         * pdp11.c: Likewise.
4350         * pdp11.md: Likewise.
4351
4352         * pdp11.h (TARGET_40_PLUS): Fix typo.
4353
4354 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
4355
4356         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
4357         qty lifetimes.
4358
4359 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4360
4361         * alias.c (addr_side_effect_eval): New function.
4362         (memrefs_conflict_p): Use it.
4363         * rtl.h (addr_side_effect_eval): Prototype it.
4364
4365 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
4366
4367         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
4368
4369 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
4370
4371         * reload.c (find_reloads): When force const to memory, put result
4372         in substed_operand not *recog_operand_loc.
4373
4374 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
4375
4376         * c-lex.c: Fix indentation from last patch.
4377         Remove trailing whitespace.
4378         * real.c: Likewise.
4379
4380 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
4381
4382         * flow.c (delete_block): Call set_last_insn after we have reset
4383         NEXT_INSN (kept_tail).
4384
4385 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
4386
4387         * mips.md (trap_if): Use "$0" for the value zero.
4388
4389 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
4390                           Stephen L Moshier  <moshier@world.std.com>
4391                           Richard Henderson  <rth@cygnus.com>
4392
4393         * c-common.c (declare_function_name): Declare predefinied variable
4394         `__func__'.
4395
4396         * c-decl.c (flag_isoc9x): Set to 1 by default.
4397         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
4398         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
4399
4400         * c-parse.in: Allow constructors in ISO C 9x.
4401         Rewrite designator list handling.
4402         Allow [*] parameters.
4403         Don't warn about comma at end of enum definition for ISO C 9x.
4404
4405         * cccp.c (c9x): New variable.
4406         (rest_extension): New variable.
4407         (print_help): Document new -std= option.
4408         (main): Recognize -std= option.  Set c9x appropriately.
4409         (create_definition): Recognize ISO C 9x vararg macros.
4410
4411         * gcc.c (default_compilers): Adjust specs for -std options.
4412         (option_map): Add --std.
4413         (display_help): Document -std.
4414
4415         * toplev.c (documented_lang_options): Add -std and remove
4416         -flang-isoc9x.
4417         
4418         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
4419         or REAL_VALUE_HTOF based on base of the constants.
4420         * fold-const.c (real_hex_to_f): New function.  Replacement function
4421         for hex FP conversion if REAL_ARITHMETIC is not defined.
4422         * real.c (asctoeg): Add handling of hex FP constants.
4423         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
4424         real_hex_to_f.
4425
4426 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
4427
4428         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
4429         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
4430         expansion.  Use hi/lo as destination register.
4431         (div_trap): New.
4432         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
4433         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
4434         Avoid as macro expansion.  Use hi/lo as destination register. 
4435
4436         * mips.h (MASK_CHECK_RANGE_DIV): New.
4437         (MASK_NO_CHECK_ZERO_DIV): New.
4438         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
4439         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
4440         return address for leaf functions out of r31 to support
4441         builtin_return_address. 
4442         
4443 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4444
4445         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
4446         NEXT_INSN(x) to check insn x.
4447         
4448 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
4449
4450         * flow.c (delete_block): Call set_last_insn if we end up deleting the
4451         last insn in the rtl chain.
4452
4453         * reload1.c (reload): Do not set reload_completed or split insns
4454         here.  Instead...
4455         * toplev.c (rest_of_compilation): Set reload_completed after
4456         reload returns.  Split insns after reload_cse has run.
4457
4458 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
4459
4460         * final.c (final_scan_insn): Abort if block_depth falls below 0.
4461
4462 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
4463
4464         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
4465
4466 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
4467
4468         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
4469         use of user-label_prefix.
4470
4471 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4472
4473         * reload1.c (emit_reload_insns): Clear spill_reg_store
4474         when doing a new non-inherited reload from the same pseudo.
4475
4476         * local-alloc.c (function_invariant_p): New function.
4477         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
4478         to decide if an equivalence should be recorded.
4479         * reload1.c (num_eliminable_invariants): New static variable.
4480         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
4481         to decide if an equivalence should be recorded.
4482         Unshare PLUS.
4483         (calculate_needs_all_insns): Skip insns that only set an equivalence.
4484         Take num_eliminable_invariants into account when deciding
4485         if register elimination should be done.
4486         (reload_as_needed): Take num_eliminable_invariants into account
4487         when deciding if register elimination should be done.
4488         (eliminate_regs): Handle non-constant reg_equiv_constant.
4489         * rtl.h (function_invariant_p): Declare.
4490
4491 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
4492
4493         * version.c: Bump for snapshot.
4494
4495 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
4496
4497         * version.c: Bump for snapshot.
4498
4499 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
4500
4501         * except.c (add_new_handler): Complain about additional handlers
4502         after one that catches everything.
4503
4504 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
4505
4506         * configure.in (alpha*-*-netbsd): Fix typo.
4507         * configure: Rebuilt.
4508
4509 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4510
4511         * system.h: Include libiberty.h.
4512
4513         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
4514         function `concat' from fixed parameters to variable parameters,
4515         as is done in libiberty.  All callers of concat/concat3
4516         changed to use the new `concat' with variable args.
4517
4518         * cccp.c: Remove things made redundant by libiberty.h and/or
4519         conform to libiberty standards.
4520         * cexp.y: Likewise.
4521         * collect2.c: Likewise.
4522         * config/1750a/1750a.h: Likewise.
4523         * cppalloc.c: Likewise.
4524         * cppexp.c: Likewise.
4525         * cppfiles.c: Likewise.
4526         * cpphash.c: Likewise.
4527         * cpplib.c: Likewise.
4528         * dyn-string.c: Likewise.
4529         * fix-header.c: Likewise.
4530         * gcc.c: Likewise.
4531         * gcov.c: Likewise.
4532         * genattr.c: Likewise.
4533         * genattrtab.c: Likewise.
4534         * gencheck.c: Likewise.
4535         * gencodes.c: Likewise.
4536         * genconfig.c: Likewise.
4537         * genemit.c: Likewise.
4538         * genextract.c: Likewise.
4539         * genflags.c: Likewise.
4540         * gengenrtl.c: Likewise.
4541         * genopinit.c: Likewise.
4542         * genoutput.c: Likewise.
4543         * genpeep.c: Likewise.
4544         * genrecog.c: Likewise.
4545         * getpwd.c: Likewise.
4546         * halfpic.c: Likewise.
4547         * hash.c: Likewise.
4548         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
4549         in NEED_DECLARATION_* macros.
4550
4551         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
4552         conform to libiberty standards.
4553         (fatal): Fix const-ification of variable `format' in
4554         !ANSI_PROTOTYPES case.
4555
4556         * prefix.c: Remove things made redundant by libiberty.h and/or
4557         conform to libiberty standards.
4558
4559         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
4560         conflicting with function `spaces' from libiberty.
4561
4562         * profile.c: Remove things made redundant by libiberty.h and/or
4563         conform to libiberty standards.
4564         * protoize.c: Likewise.
4565         * rtl.h: Likewise.
4566         * scan.h: Likewise.
4567         * tlink.c: Likewise.
4568         * toplev.c: Likewise.
4569         * toplev.h: Likewise.
4570         * tree.h: Likewise.
4571
4572 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4573
4574         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
4575
4576 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4577
4578         * README.C4X: Updated URLs.
4579         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
4580         (valid_parallel_operands_5): Remove unused variable.
4581
4582 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4583
4584         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
4585
4586 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
4587
4588         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
4589         which can be configured.
4590         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
4591         (Makefile): Pass actual LANGUAGES through the environment when
4592         re-configuring.
4593         (cstamp-h): Likewise.
4594         (config.status): Likewise.
4595
4596         * configure.in (enable_languages): Add new configuration parameter
4597         "--enable-languages=lang1,lang2,...".
4598         (${srcdir}/*/config-lang.in): Change handling to configure only
4599         those directories, that the user might have enabled; default to
4600         "all" existing languages.
4601         * configure: Regenerate.
4602
4603 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
4604
4605         * rtlanal.c (regs_set_between_p): New function.
4606         * rtl.h (regs_set_between_p): Prototype it.
4607         * jump.c (jump_optimize): Use it instead of modified_between_p
4608         in the Sep 2 change.
4609
4610 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
4611                           Matthias Pfaller  <leo@dachau.marco.de>
4612
4613         * invoke.texi (Option Summary, NS32K Options): add description
4614         of NS32K specific options.
4615
4616         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
4617         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
4618         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
4619         negdf2, absdf2): Use l instead of f since the double class and
4620         float class are no longer the same.
4621         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
4622         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
4623         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
4624         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
4625         fixed.
4626         (cmpsi, cmphi, cmpqi): use general_operand instead of
4627         non_immediate_operand. Removes erroneous assumption that can't
4628         compare constants.
4629         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
4630         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
4631         constants.
4632         (movstrsi, movstrsi1, movstrsi2): completely new block move
4633         scheme.
4634         (...): Patterns to exploit multiply-add instructions.
4635         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
4636         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
4637         patterns to exploit extended divide insns.
4638         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
4639         etc patterns.
4640
4641         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
4642         float return values as well as simple scalar floats.
4643         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
4644         support new flag to denote 32381 fpu.
4645         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
4646         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
4647         compling for 32381.
4648         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
4649         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
4650         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
4651         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
4652         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
4653         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
4654         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
4655         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
4656         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
4657         fpu registers and special register classes for new 32381
4658         instructions dotf and polyf.
4659         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
4660         be tieable.
4661         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
4662         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
4663         required.
4664         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
4665         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
4666         (REGISTER_MOVE_COST): move code to register_move_cost function for
4667         ease of coding and debugging.
4668         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
4669         LONG_FLOAT_REGO is likely spilled but not caught by default
4670         definition.
4671         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
4672         instead of hard coded numbers in range check.
4673         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
4674         (...): Add prototypes for functions in ns32k.c but disable because
4675         of problems when ns32k.h is included in machine independant files.
4676         
4677         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
4678         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
4679         hard_regno_mode_ok, secondary_reload_class,
4680         print_operand, print_operand_address): new register scheme to
4681         include 32381 fpu registers and special register classes for new
4682         32381 instructions dotf and polyf.
4683         (gen_indexed_expr): Make static to keep namespace clean.
4684         (check_reg): remove since never called.
4685         (move_tail, expand_block_move): helper functions for "movstrsi"
4686         block move insn.
4687         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
4688         Increase cost of moves which go via memory.
4689         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
4690         (CPP_PREDEFINES): nolonger predefine "unix".
4691
4692         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
4693         Remove erroneous %$. print_operand() can work out from the rtx is
4694         an immediate prefix is required.
4695
4696         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
4697         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
4698         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
4699         convention.
4700         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
4701         pic operands.
4702
4703         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
4704         Correct handling of pic operands.
4705         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
4706         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
4707         -mrtd calling convention.
4708
4709 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
4710
4711         * gcc.c (option_map): Recognize --output-class-directory.
4712
4713 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4714
4715         * loop.h (precondition_loop_p): Added new mode argument.
4716         * unroll.c (precondition_loop_p): Likewise.
4717         (approx_final_value): Function deleted and subsumed
4718         into loop_iterations.
4719         (loop_find_equiv_value): New function.
4720         (loop_iterations): Use loop_find_equiv_value to find increments
4721         too large to be immediate constants.  Also use it to find terms
4722         common to initial and final iteration values that can be removed.
4723
4724 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4725
4726         * loop.h (struct loop_info): Define new structure.
4727         (precondition_loop_p): Added prototype.
4728         (unroll_loop): Added new argument loop_info to prototype.
4729         (final_biv_value, final_giv_value): Added new argument n_iterations
4730         to prototype.
4731         * loop.c (strength_reduce): Declare new structure loop_iteration_info
4732         and new pointer loop_info.
4733         (loop_n_iterations): Replace global variable by element in 
4734         loop_info structure.
4735         (check_final_value): New argument n_iterations.
4736         (insert_bct): New argument loop_info.
4737         (loop_unroll_factor): Replace global array by element in 
4738         loop_info structure.
4739         (loop_optimize): Remove code to allocate and initialise 
4740         loop_unroll_factor_array.
4741         * unroll.c (precondition_loop_p):  No longer static since
4742         used by branch on count optimization.
4743         (precondition_loop_p, unroll_loop): New argument loop_info.
4744         (final_biv_value, final_giv_value, find_splittable_regs): New
4745         argument n_iterations.
4746         (loop_iteration_var, loop_initial_value, loop_increment, 
4747         loop_final_value, loop_comparison_code, loop_unroll_factor): 
4748         Replaced global variables by loop_info structure.
4749         (loop_unroll_factor): Replace global array by element in
4750         loop_info structure.
4751
4752 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4753
4754         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
4755         when loop reversed.
4756
4757         * unroll.c (precondition_loop_p): Return loop_initial_value
4758         for initial_value instead of loop_iteration_var.
4759
4760 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4761
4762         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
4763         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
4764         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
4765         to output the instruction sequences.
4766         (rpts): Delete.
4767         (rptb_top): Provide alternatives to use any register or memory
4768         for loop counter.
4769         (rptb_end):  Emit use of operands rather than assigning them
4770         explicitly to the RS and RE registers.
4771
4772 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4773
4774         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
4775         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
4776         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
4777         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
4778         c4x_merge_notes, c4x_parallel_process, 
4779         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
4780         c4x_combine_parallel): Delete.
4781
4782 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4783
4784         * config/c4x/c4x.c: (c4x_override_options): For compatibility
4785         with old target options clear flag_branch_on_count_reg if
4786         -mno-rptb specified and set flag_argument_alias is -mno-aliases
4787         specified.
4788         (c4x_output_cbranch): Handle a sequence of insns rather than a
4789         single insn.
4790         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
4791         has not been allocated as the loop counter.
4792         (c4x_address_conflict): Do not allow two volatile memory references.
4793         (valid_parallel_operands_4, valid_parallel_operands_5,
4794         valid_parallel_operands_6): Reject pattern if the register destination
4795         of the first set is used as part of an address in the second set.
4796
4797 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4798
4799         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
4800         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
4801         is no longer enabled if PARALLEL_MPY_FLAG set.
4802         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
4803         (REG_CLASS_CONTENTS): Add braces around initializers.
4804         (HAVE_MULTIPLE_PACK): Define.
4805         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
4806         REAL_VALUE_TO_DECIMAL.
4807         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
4808         REAL_VALUE_TO_DECIMAL.
4809         (ar0_reg_operand): Add prototype.
4810         (ar0_mem_operand): Likewise.
4811         (ar1_reg_operand): Likewise.
4812         (ar1_mem_operand): Likewise.
4813         (ar2_reg_operand): Likewise.
4814         (ar2_mem_operand): Likewise.
4815         (ar3_reg_operand): Likewise.
4816         (ar3_mem_operand): Likewise.
4817         (ar4_reg_operand): Likewise.
4818         (ar4_mem_operand): Likewise.
4819         (ar5_reg_operand): Likewise.
4820         (ar5_mem_operand): Likewise.
4821         (ar6_reg_operand): Likewise.
4822         (ar6_mem_operand): Likewise.
4823         (ar7_reg_operand): Likewise.
4824         (ar7_mem_operand): Likewise.
4825         (ir0_reg_operand): Likewise.
4826         (ir0_mem_operand): Likewise.
4827         (ir1_reg_operand): Likewise.
4828         (ir1_mem_operand): Likewise.
4829         (group1_reg_operand): Likewise.
4830         (group1_mem_operand): Likewise.
4831         (ir1_reg_operand): Likewise.
4832         (arx_reg_operand): Likewise.
4833         (not_rc_reg): Likewise.
4834         (not_modify_reg): Likewise.
4835         (c4x_group1_reg_operand): Remove prototype.
4836         (c4x_group1_mem_operand): Likewise.
4837         (c4x_arx_reg_operand): Likewise.
4838
4839 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
4840
4841         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
4842         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
4843
4844 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4845
4846         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
4847         during reload.
4848
4849 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4850
4851         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
4852         unless FMOVD_WORKS is defined.
4853
4854 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4855
4856         * regclass.c (init_reg_sets): Move code that calculates tables
4857         dependent on reg_class_contents from here...
4858         (init_reg_sets_1): To here.
4859
4860 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4861
4862         * cpplib.h: Delete struct import_file.  Add ihash element to
4863         struct cpp_buffer.  Delete dont_repeat_files and
4864         import_hash_table elements from cpp_reader; change
4865         all_include_files to a hash table.  Delete all foobar_include
4866         / last_foobar_include elements from struct cpp_options; put
4867         back four such: quote_include, bracket_include,
4868         system_include, after_include.  Redo struct file_name_list
4869         completely.  Add new structure type include_hash.  Add
4870         prototypes for merge_include_chains and include_hash.  Change
4871         prototypes for finclude, find_include_file, and
4872         append_include_chain to match changes below.
4873
4874         * cppfiles.c (simplify_pathname, include_hash,
4875         remap_filename, merge_include_chains): New functions.
4876         (add_import, lookup_import, open_include_file): Removed.
4877         (INO_T_EQ): Define this (copied from cccp.c).
4878         (hack_vms_include_specification): Remove all calls and #if 0
4879         out the definition.  It was being called incorrectly and at
4880         the wrong times.  Until a VMSie can look at this, it's better
4881         to not pretend to support it.
4882         (append_include_chain): Change calling convention; now takes
4883         only one directory at a time, and sets up the data structure
4884         itself.
4885         (redundant_include_p): Rewritten - this is now used for all
4886         include redundancy, whether by #ifndef, #import, or #pragma
4887         once.  Looks up things in the include hash table.
4888         (file_cleanup): Decrement pfile->system_include_depth here if
4889         it's >0.
4890         (find_include_file): Calling convention changed; now passes
4891         around a struct include_hash instead of 3 separate parameters.
4892         Guts ripped out and replaced with new include_hash mechanism.
4893         (finclude): Calling convention changed as for
4894         find_include_file.  Error exits pulled out-of-line.  Reformat.
4895         (safe_read): Return a long, not an int.
4896         (deps_output): Don't recurse.
4897
4898         * cpplib.c (is_system_include): Deleted.
4899         (path_include): Fix up call to append_include_chain.
4900         (do_include): Fix up calls to find_include_file and finclude.
4901         Clean up dependency output a bit.  Shorten obnoxiously lengthy
4902         #import warning message.  Don't decrement
4903         pfile->system_include_depth here.
4904         (do_pragma): Understand the include_hash structure.  Reformat.
4905         (do_endif): Correct handling of control macros.  Understand
4906         the include_hash.
4907         (cpp_start_read): Fix up calls to finclude.  Call
4908         merge_include_chains.
4909         (cpp_handle_option): Fix up calls to append_include_chain.
4910         Understand the four partial include chains.
4911         (cpp_finish): Add debugging code (#if 0-ed out) for the
4912         include_hash.
4913         (cpp_cleanup): Free the include_hash, not the import hash and
4914         the all_include and dont_repeat lists which no longer exist.
4915
4916 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
4917
4918         * toplev.c (no_new_pseudos): Define.
4919         (rest_of_compilation):  Set no_new_pseudos as needed.
4920         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
4921         if no_new_pseudos is set.
4922         * rtl.h (no_new_pseudos): Declare it.
4923         * reload1.c (reload): Update comments.
4924         * md.texi: Corresponding changes.
4925
4926 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
4927
4928         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
4929         (choose_reload_regs): Rename it here as well.  When computing it,
4930         also merge in used hardregs.
4931
4932 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4933
4934         * gcc.c: Split out Objective-C specs to...
4935         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
4936         aware.
4937
4938         * c-lex.c (init_parse): Always initialize the filename global.
4939         * objc/objc-act.c (lang_init): Always call check_newline at
4940         beginning of file.
4941
4942 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
4943
4944         * reload1.c (reload): Remove unused variable.
4945         (reload_reg_free_for_value_p): Add missing parameter definition.
4946
4947         * jump.c (jump_optimize): Remove unused variable.
4948
4949 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
4950
4951         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
4952
4953         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
4954         runtime selectable.
4955         * expr.c (move_by_pieces): Similarly.
4956         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
4957         * flow.c (find_auto_inc): Similarly.
4958         (try_pre_increment): Similarly.
4959         * loop.c (strength_reduce): Similarly.
4960         * regclass.c (auto_inc_dec_reg_p): Similarly.
4961         * regmove.c (try_auto_increment): Similarly.
4962         (fixup_match_1): Similarly.
4963         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
4964         (HAVE_PRE_DECREMENT): Similarly.
4965         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
4966         * Corresponding changes to all target header files.
4967         * tm.texi: Update docs for autoinc addressing modes.
4968
4969 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
4970
4971         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
4972         * configure: Rebuild.
4973         * config/elfos.h: New file.
4974         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
4975         config/m68k/t-m68kelf: New file.
4976         
4977 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
4978
4979         * Makefile.in (HOST_AR): Define.
4980         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
4981         (libcpp.a): Use the host tools explicitly.
4982         (STAGESTUFF): Add libcpp.a.
4983
4984 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
4985
4986         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
4987         to source and destination registers.
4988
4989 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
4990
4991         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
4992         The strategy we now use is to pre allocate the top_elt along
4993         with the EH context so that each thread has its own top_elt.
4994         This is necessary as the dynmanic cleanup chain is used on the
4995         top element of the stack and each thread MUST have its own.
4996         (eh_context_static): Likewise.
4997         (new_eh_context): Likewise.
4998         (__sjthrow): Likewise.
4999
5000 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
5001
5002         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
5003         * i386.md (prologue_get_pc): Remove unused variable.
5004
5005 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
5006
5007         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
5008
5009 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
5010
5011         * Makefile.in (OBJS): Add graph.o
5012         (graph.o): New dependency list.
5013         * flags.h: Declare dump_for_graph and define graph_dump_types type.
5014         * print-rtl.c (dump_for_graph): Define new variable.
5015         (print_rtx): Rewrite to allow use in graph dumping functions.
5016         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
5017         finish_graph_dump_file.
5018         Define graph_dump_format.
5019         (compile_file): If graph dumping is enabled also clear these files.
5020         Finish graph dump files.
5021         (rest_of_compilation): Also dump graph information if enabled.
5022         (main): Recognize -dv to enabled VCG based graph dumping.
5023         * graph.c: New file.  Graph dumping functions.
5024
5025 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
5026
5027         * configure.in: Look for <sys/stat.h>.
5028         * system.h: Include it before substitute S_ISREG definitions.
5029
5030 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
5031
5032         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
5033         * config/mips/iris6.h: Same.
5034         * config/mips/mips.md: Same.
5035         * config/mips/mips.c: Same; also add "-mabi=o64" option.
5036         * config/mips/mips.h: Same; also define ABI_O64.
5037
5038 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5039
5040         *  configure.in: Use AC_PREREQ(2.12.1).
5041
5042 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
5043
5044         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
5045         * cpplib.c, gcc.c: Likewise.
5046         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
5047
5048 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
5049
5050         * local-alloc.c (local_alloc): Use malloc not alloca for
5051         reg_qty, reg_offset, ref_next_in_qty.
5052
5053 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5054
5055         * caller-save.c (insert_one_insn): Initialize the live_before and
5056         live_after register sets.
5057
5058         Add SH4 support:
5059
5060         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
5061         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
5062         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
5063         (fp_reg_names, assembler_dialect): New variables.
5064         (print_operand_address): Handle SUBREGs.
5065         (print_operand): Added 'o' case.
5066         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
5067         Name of FP registers depends on mode.
5068         (expand_block_move): Emit different code for SH4 hardware.
5069         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
5070         (from_compare): Likewise.
5071         (add_constant): New argument last_value.  Changed all callers.
5072         (find_barrier): Don't try HImode load for FPUL_REG.
5073         (machine_dependent_reorg): Likewise.
5074         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
5075         (gen_far_branch): Emit a barrier after the new jump.
5076         (barrier_align): Don't trust instruction lengths before
5077         fixing up pcloads.
5078         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
5079         Use auto-inc addressing for fp registers if doubles need to
5080         be loaded in two steps.
5081         Set sh_flag_remove_dead_before_cse.
5082         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
5083         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
5084         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
5085         Support for FIRST_XD_REG .. LAST_XD_REG.
5086         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
5087         (sh_expand_epilogue): Likewise.
5088         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
5089         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
5090         (arith_reg_operand): FPUL_REG is OK for SH4.
5091         (fp_arith_reg_operand, fp_extended_operand) New functions.
5092         (tertiary_reload_operand, fpscr_operand): Likewise.
5093         (commutative_float_operator, noncommutative_float_operator): Likewise.
5094         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
5095         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
5096         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
5097         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
5098         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
5099         (CONDITIONAL_REGISTER_USAGE): Likewise.
5100         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
5101         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
5102         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
5103         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
5104         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
5105         to -1 and sh_flag_remove_dead_before_cse to 1.
5106         (ASSEMBLER_DIALECT): Define to assembler_dialect.
5107         (assembler_dialect, fp_reg_names): Declare.
5108         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
5109         Hide names of registers that are not accessible.
5110         (CACHE_LOG): Take TARGET_CACHE32 into account.
5111         (LOOP_ALIGN): Take TARGET_HARWARD into account.
5112         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
5113         (FIRST_PSEUDO_REGISTER: Now 49.
5114         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
5115         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
5116         (HARD_REGNO_MODE_OK): Update.
5117         (enum reg_class): Add DF_REGS and FPSCR_REGS.
5118         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
5119         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
5120         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
5121         (NPARM_REGS): Eight floating point parameter registers on SH4.
5122         (BASE_RETURN_VALUE_REG): SH4 also passes double values
5123         in floating point registers.
5124         (GET_SH_ARG_CLASS) Likewise.
5125         Complex float types are also returned in float registers.
5126         (BASE_ARG_REG): Complex float types are also passes in float registers.
5127         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
5128         (LIBCALL_VALUE): Remove trailing semicolon.
5129         (ROUND_REG): Round when double precision value is passed in floating
5130         point register(s).
5131         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
5132         passed on the stack.
5133         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
5134         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
5135         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
5136         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
5137         (MODE_DISP_OK_8): Not for SH4 DFmode.
5138         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
5139         Allow indexed addressing for PSImode after reload.
5140         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
5141         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
5142         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
5143         (DOUBLE_TYPE_SIZE): 64 for SH4.
5144         (RTX_COSTS): Add PLUS case.
5145         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
5146         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
5147         MAC_REGS, PR_REGS, DF_REGS.
5148         (REGISTER_NAMES): Use fp_reg_names.
5149         (enum processor_type): Add PROCESSOR_SH4.
5150         (sh_flag_remove_dead_before_cse): Declare.
5151         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
5152         (PREDICATE_CODES): Add binary_float_operator,
5153         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
5154         fpscr_operand, noncommutative_float_operator.
5155         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
5156         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
5157         * sh.md (attribute cpu): Add value sh4.
5158         (attrbutes fmovd, issues): Define.
5159         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
5160         (function units memory, int, mpy, fp): Make dependent on issue rate.
5161         (function units issue, single_issue, load_si, load): Define.
5162         (function units load_store, fdiv, gp_fpul): Define.
5163         (attribute hit_stack): Provide proper default.
5164         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
5165         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
5166         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
5167         (mulsi3_call): Now uses match_operand for function address.
5168         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
5169         REG_RETVAL notes.
5170         (push, pop, push_e, pop_e): Now define_expands.
5171         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
5172         (movsi_ie): Added y/i alternative.
5173         (ic_invalidate_line_i, movdf_i4): New insns.
5174         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
5175         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
5176         (movdf): Add special code for SH4.
5177         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
5178         (call_valuei, calli, call_value): Likewise.
5179         (movsf): Emit no-op move.
5180         (mov_nop, movsi_y): New insns.
5181         (blt, sge): generalize to handle DFmode.
5182         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
5183         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
5184         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
5185         (fpu_switch0, fpu_switch1, movpsi): New expanders.
5186         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
5187         (toggle_sz): New insn.
5188         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
5189         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
5190         (macsf3): Make use of fpscr visible.  Disable for SH4.
5191         (floatsisf2): Make use of fpscr visible.
5192         (floatsisf2_i4): New insn.
5193         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
5194         (ieee_ccmpeqsf_t): Likewise.
5195         (fix_truncsfsi2): Emit different code for SH4.
5196         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
5197         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
5198         (negsf2, sqrtsf2, abssf2): Now expanders.
5199         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
5200         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
5201         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
5202         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
5203         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
5204         (fix_truncdfsi2_i4_2+1): New splitters.
5205         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
5206         (extendsfdf2, truncdfsf2): New expanders.
5207         (truncdfsf2_i4): New insn.
5208         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
5209         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
5210         * float-sh.h: When testing for __SH3E__, also test for
5211         __SH4_SINGLE_ONLY__ .
5212         * va-sh.h (__va_freg): Define to float.
5213         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
5214         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
5215         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
5216         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
5217          __SH4_SINGLE__.
5218         (TARGET_SH4_P): Define.
5219         (va_arg): Use it.
5220
5221         * sh.md (movdf_k, movsf_i): Tweak the condition so that
5222         init_expr_once is satisfied about the existence of load / store insns.
5223
5224         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
5225         change m constraint in source operand to mr / mf .
5226
5227         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
5228
5229         * (__VA_REEF): Define.
5230         (__va_arg_sh1): Use it.
5231
5232         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
5233
5234 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
5235
5236         * i386/dgux.c (struct option): Add new "description field".
5237         * m88k/m88k.c (struct option): Likewise.
5238
5239 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
5240
5241         * version.c: Bump for snapshot.
5242
5243 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
5244
5245         * regmove.c (regmove_profitable_p): Use return value of find_matches
5246         properly.
5247
5248 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
5249
5250         * version.c: Bump for snapshot.
5251
5252 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
5253
5254         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
5255         without reload having been called earlier.
5256
5257         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
5258         addressing modes.
5259         (v850_reorg): Similarly.
5260
5261         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
5262
5263 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5264
5265         * loop.c (move_movables): Start of libcall might be new loop start.
5266
5267 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5268
5269         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
5270
5271 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5272
5273         * function.c (nonlocal_goto_handler_slots): Renamed from
5274         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
5275         (push_function_context_to): Adjust for this change.
5276         (pop_function_context_from): Likewise.
5277         (init_function_start): Likewise.
5278         (expand_function_end): Likewise.
5279         * function.h (struct function): Likewise.
5280         * calls.c (expand_call): Likewise.
5281         * explow.c (allocate_dynamic_stack_space): Likewise.
5282         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
5283         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
5284         label.
5285         (expand_goto): When doing a nonlocal goto, find corresponding handler
5286         slot for it.  Don't put the label address in the static chain register.
5287         (expand_end_bindings): Break out nonlocal goto handling code into
5288         three new functions.
5289         (expand_nl_handler_label, expand_nl_goto_receiver,
5290         expand_nl_goto_receivers): New static functions, broken out of
5291         expand_end_bindings and adapted to create one handler per nonlocal
5292         label.
5293         * function.c (delete_handlers): Delete insn if it references any of
5294         the nonlocal goto handler slots.
5295         * i960.md (nonlocal_goto): Comment out code that modifies
5296         static_chain_rtx.
5297         * sparc.md (nonlocal_goto): Likewise.
5298         (goto_handler_and_restore_v9): Comment out.
5299         (goto_handler_and_restore_v9_sp64): Comment out.
5300
5301 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5302
5303         * expr.c (STACK_BYTES): Delete unused macro.
5304         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
5305         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
5306         (expand_call): Likewise.
5307         (emit_library_call): Likewise.
5308         (emit_library_call_value): Likewise.
5309         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
5310         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
5311         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
5312         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
5313         (allocate_dynamic_stack_space): Likewise.
5314         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
5315         (STACK_BOUNDARY): Update description to reflect the new situation.
5316
5317 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
5318
5319         * reorg.c (relax_delay_slots): When optimizing for code size, if a
5320         return with a filled delay slot is followed by a return with an
5321         unfilled delay slot, delete the first return and reemit the insn
5322         that was previously in its delay slot.
5323
5324         * i860.c (single_insn_src_p): Add missing parens.
5325         * ginclude/math-3300.h: Likewise.
5326
5327 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
5328
5329         * regclass.c (init_reg_sets_1): Add prototype.
5330         (init_reg_modes): Likewise.
5331
5332 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
5333
5334         * c-common.c: Change warning messages to say `comparison is
5335         always true' or `comparison is always false' instead of the
5336         confusing `is always 0', `is always 1'.
5337
5338 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
5339
5340         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
5341         break instead of return (which loses closing '>').
5342
5343 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
5344
5345         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
5346         standard 387 constants.
5347
5348         * i386.md (jump): Explicitly set "memory" attribute.
5349         (indirect_jump, prologue_set_stack_ptr): Likewise.
5350         (prologue_get_pc_and_set_got, pop): Likewise.
5351         (allocate_stack_worder, blockage, return_internal): Likewise.
5352         (return_pop_internal, nop): Likewise.
5353         (epilogue_set_stack_ptr, leave): Likewise.
5354
5355 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
5356
5357         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
5358
5359 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5360
5361         * reload1.c (reload_reg_free_for_value_p):
5362         Early auto_inc reloads don't conflict with outputs.
5363
5364 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5365
5366         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
5367         Instead call AC_HEADER_SYS_WAIT.
5368
5369         * collect2.c: Don't provide defaults for sys/wait.h macros.
5370         * gcc.c: Likewise.
5371         * protoize.c: Likewise.  Also, don't include sys/wait.h.
5372
5373         * system.h: Include sys/wait.h and provide macro defaults.
5374
5375 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5376
5377         * Makefile.in (mandir): Set to @mandir@.
5378         (man1dir): New variable to hold the former value of $(mandir).
5379         Replace all uses of $(mandir) by $(man1dir).
5380
5381 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
5382
5383         * reload.c (find_reloads_address_part): If have a CONST_INT, create
5384         a new one before passing it to force_const_mem.
5385
5386         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
5387         find_reloads_address call.
5388
5389 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5390
5391         * expr.c (store_expr): Don't generate load-store pair
5392         if TEMP is identical (according to ==) with TARGET.
5393
5394 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5395
5396         * reload1.c (reload_reg_free_for_value_p): When considered reload
5397         has an output, matching inputs are not sufficient to avoid conflict.
5398
5399 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
5400
5401         * hash.h (hash_table_key): New type.
5402         (hash_entry): Change `string' field to generic `key'.
5403         (hash_table): Add `comp' and `hash' functions.
5404         (hash_table_init): Take them as input.
5405         (hash_table_init_n): Likewise.
5406         (hash_lookup): Modify for generic keys.
5407         (hash_newfunc): Likewise.
5408         (hash_traverse): Likewise.
5409         (string_hash): New function.
5410         (string_compare): Likewise.
5411         (string_copy): Likewise.
5412         * hash.c (hash_table_init_n): Modify for generic keys.
5413         (hash_table_init): Likewise.
5414         (hash_lookup): Likewise.
5415         (hash_newfunc): Likewise.
5416         (hash_traverse): Likewise.
5417         (string_hash): Split out from hash_lookup.
5418         (string_compare): New function.
5419         (string_copy): Split out from hash_lookup.
5420         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
5421         tables.
5422         (symbol_hash_lookup): Likewise.
5423         (file_hash_newfunc): Likewise.
5424         (file_hash_lookup): Likewise.
5425         (demangled_hash_newfunc): Likewise.
5426         (demangled_hash_lookup): Likewise.
5427         (tlink_int): Likewise.
5428         (read_repo_file): Likewise.
5429         (recompile_files): Likewise.
5430         (demangle_new_symbols): Likewise.
5431         (scan_linker_output): Likewise.
5432         
5433 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5434
5435         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
5436
5437 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5438
5439         * rs6000.c (output_mi_thunk): Improve test for local branch.
5440
5441 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5442
5443         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
5444
5445 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5446
5447         * reload1.c (reload_reg_free_before_p): Delete.
5448         Changed all callers to use reload_reg_free_for_value_p instead.
5449         (reload_reg_free_for_value_p): Handle more reload types.
5450         A RELOAD_FOR_INPUT doesn't conflict with its
5451         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
5452         Add special case for OUT == const0_rtx.
5453         Added ignore_address_reloads argument.  Changed all callers.
5454
5455 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
5456
5457         * toplev.c (compile_file): Don't pedwarn about undefined static
5458         functions just because we passed -Wunused.
5459
5460 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5461
5462         * function.c (purge_addressof_1): Unshare rtl created by
5463         store_bit_field.
5464
5465 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5466
5467         * regmove.c (regmove_optimize): Don't do anything but
5468         optimize_reg_copy[123] when flag_regmove is not set.
5469
5470 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
5471
5472         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
5473         value in paradoxical SImode result, rather than truncating midpoint.
5474
5475 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
5476
5477         * alpha.c (reg_not_elim_operand): New.
5478         * alpha.h (PREDICATE_CODES): Add it.
5479         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
5480         for the multiplicand.
5481
5482 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5483
5484         * rs6000.md (movsf): Remove explicit secondary-reload-like
5485         functionality.  Only truncate SFmode store if in FPR.
5486         (movsf splitters): Combine const_double splitters.
5487         (movsf_hardfloat): Add GPR support.
5488
5489 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
5490
5491         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
5492         deprecate -mlive-g0 and -mbroken-saverestore.
5493         * t-splet (MULTILIB_OPTIONS): Likewise.
5494         
5495         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
5496         in a leaf function.  Clarify total_size/extra_size relationship.
5497
5498 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
5499
5500         * i386/cygwin32.asm: Delete.
5501         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
5502         * i386/cygwin32.h: Delete.
5503         * i386/cygwin.h: New file, renamed from cygwin32.h.
5504         * i386/t-cygwin32: Delete.
5505         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
5506         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
5507         * i386/x-cygwin32: Delete.
5508         * i386/x-cygwin: New file, renamed from x-cygwin32.
5509         * i386/xm-cygwin32: Delete.
5510         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
5511         renamed cygwin_ funcs for path translations.
5512         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
5513         * i386/winnt.c: Remove "32" from comment about cygwin.
5514         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
5515         * rs6000/cygwin32.h: Delete.
5516         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
5517         -D__CYGWIN__ to CPP_PREDEFINES.
5518         * rs6000/x-cygwin32: Delete.
5519         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
5520         * rs6000/xm-cygwin32: Delete.
5521         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
5522
5523         * configure.in: Check for cygwin* instead of cygwin32.  Account
5524         for the rename of cygwin-related config files to lose the "32"s.
5525         * configure: Regenerate.
5526
5527         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
5528         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
5529
5530 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
5531
5532         * Makefile.in (JAVAGC): New macro.
5533         * configure: Rebuilt.
5534         * configure.in: Recognize --enable-java-gc argument.  Subst
5535         `JAVAGC' variable.
5536
5537 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5538
5539         Handle equivalences that have been obscured by gcse:
5540
5541         * reload1.c (reload): Handle equivalences set up in multiple places.
5542         * local-alloc.c (reg_equiv_init_insns): New variable.
5543         (no_equiv): New function.
5544         (update_equiv_regs): Handle equivalences set up in multiple places.
5545         Don't ignore an insn just because its destination is likely to be
5546         spilled.
5547
5548 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
5549
5550         * except.c (expand_eh_return): Readd force_operand call lost in
5551         Sept 15 change.
5552
5553 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5554
5555         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
5556
5557 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5558
5559         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
5560
5561 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5562
5563         * regmove.c (regmove_optimize): Fix error in last change.
5564
5565 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
5566
5567         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
5568         offset in the .mask pseudo to compensate for frame pointer adjustments.
5569         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
5570         word swap arguments moved to/from FP registers.
5571         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
5572         
5573 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
5574
5575         * version.c: Bump for snapshot.
5576
5577 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
5578
5579         * version.c: Bump for snapshot.
5580
5581 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
5582
5583         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
5584         times, then it can not be completely replaced.
5585
5586 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
5587
5588         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
5589
5590 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5591
5592         * gansidecl.h: Prepend a "G" to the macro wrapping this file
5593         (to distinguish it from the macro wrapping ansidecl.h.)
5594         Include libiberty's ansidecl.h.  Remove all redundant definitions.
5595         Define the PROTO() style macros in terms of the PARAMS() ones.
5596
5597         
5598         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
5599         __STDC__, when deciding whether to use ANSI variable args.
5600         (emit_library_call_value): Likewise.
5601
5602         * cccp.c (error): Likewise.
5603         (warning): Likewise.
5604         (error_with_line): Likewise.
5605         (warning_with_line): Likewise.
5606         (pedwarn): Likewise.
5607         (pedwarn_with_line): Likewise.
5608         (pedwarn_with_file_and_line): Likewise.
5609         (fatal): Likewise.
5610
5611         * cexp.y (error): Likewise.
5612         (pedwarn): Likewise.
5613         (warning): Likewise.
5614
5615         * collect2.c (fatal_perror): Likewise.
5616         (fatal): Likewise.
5617         (error): Likewise.
5618
5619         * combine.c (gen_rtx_combine): Likewise.
5620
5621         * cpperror.c (cpp_message): Likewise.
5622         (cpp_fatal): Likewise.
5623
5624         * cpplib.c (cpp_error): Likewise.
5625         (cpp_warning): Likewise.
5626         (cpp_pedwarn): Likewise.
5627         (cpp_error_with_line): Likewise.
5628         (cpp_warning_with_line): Likewise.
5629         (cpp_pedwarn_with_line): Likewise.
5630         (cpp_pedwarn_with_file_and_line): Likewise.
5631
5632         * cpplib.h: Don't define PARAMS() macro.
5633
5634         * demangle.h: Likewise.
5635
5636         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
5637         when deciding whether to use ANSI variable args.
5638
5639         * emit-rtl.c (gen_rtx): Likewise.
5640         (gen_rtvec): Likewise.
5641
5642         * final.c (asm_fprintf): Likewise.
5643
5644         * fix-header.c (cpp_message): Likewise.
5645         (fatal): Likewise.
5646         (cpp_fatal): Likewise.
5647
5648         * gcc.c (concat): Likewise.
5649         (fatal): Likewise.
5650         (error): Likewise.
5651
5652         * genattr.c (fatal): Likewise.
5653
5654         * genattrtab.c (attr_rtx): Likewise.
5655         (attr_printf): Likewise.
5656         (fatal): Likewise.
5657
5658         * gencodes.c (fatal): Likewise.
5659
5660         * genconfig.c (fatal): Likewise.
5661
5662         * genemit.c (fatal): Likewise.
5663
5664         * genextract.c (fatal): Likewise.
5665
5666         * genflags.c (fatal): Likewise.
5667
5668         * genopinit.c (fatal): Likewise.
5669
5670         * genoutput.c (fatal): Likewise.
5671         (error): Likewise.
5672
5673         * genpeep.c (fatal): Likewise.
5674
5675         * genrecog.c (fatal): Likewise.
5676
5677         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
5678         deciding whether to declare `tree_node' and `rtx_def'.
5679
5680         * hash.h: Don't define stuff we get from gansidecl.h.
5681
5682         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
5683         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
5684         whether to use ANSI variable args.
5685         (error): Likewise.
5686
5687         * prefix.c (concat): Likewise.
5688
5689         * scan.h: Likewise.
5690
5691         * system.h: Likewise.
5692
5693         * toplev.c (error_with_file_and_line): Likewise.
5694         (error_with_decl): Likewise.
5695         (error_for_asm): Likewise.
5696         (error): Likewise.
5697         (fatal): Likewise.
5698         (warning_with_file_and_line): Likewise.
5699         (warning_with_decl): Likewise.
5700         (warning_for_asm): Likewise.
5701         (warning): Likewise.
5702         (pedwarn): Likewise.
5703         (pedwarn_with_decl): Likewise.
5704         (pedwarn_with_file_and_line): Likewise.
5705         (sorry): Likewise.
5706         (really_sorry): Likewise.
5707
5708         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
5709         whether to declare `tree_node' and `rtx_def'.
5710
5711         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
5712         deciding whether to use ANSI variable args.
5713         (build_nt): Likewise.
5714         (build_parse_node): Likewise.
5715
5716 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
5717
5718         * version.c: Bump for snapshot.
5719
5720 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5721
5722         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
5723
5724 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5725
5726         * collect2.c (main, case 'b'): Use else if.
5727
5728 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5729
5730         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
5731         Arrange to include gansidecl.h in {ht}config.h & tm.h just
5732         before the config/ directory headers.
5733         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
5734         gansidecl.h in the list of dependencies.
5735
5736         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
5737         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
5738         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
5739         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
5740         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
5741         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
5742         Likewise.
5743
5744         * cccp.c: Don't include gansidecl.h.
5745         * cexp.y: Likewise.
5746         * collect2.c: Likewise.
5747         * config/c4x/c4x.c: Likewise.
5748         * config/v850/v850.h: Likewise.
5749         * cppalloc.c: Likewise.
5750         * cpperror.c: Likewise.
5751         * cppexp.c: Likewise.
5752         * cppfiles.c: Likewise.
5753         * cpphash.c: Likewise.
5754         * cpplib.c: Likewise.
5755         * cppmain.c: Likewise.
5756         * cppulp.c: Likewise.
5757         * demangle.h: Likewise.
5758         * doprint.c: Likewise.
5759         * dyn-string.c: Likewise.
5760         * eh-common.h: Likewise.
5761         * fix-header.c: Likewise.
5762         * frame.c: Likewise.
5763         * gcc.c: Likewise.
5764         * gcov.c: Likewise.
5765         * gen-protos.c: Likewise.
5766         * gencheck.c: Likewise.
5767         * halfpic.h: Likewise.
5768         * hash.c: Likewise.
5769         * machmode.h: Likewise.
5770         * mbchar.c: Likewise.
5771         * prefix.c: Likewise.
5772         * protoize.c: Likewise.
5773         * recog.h: Likewise.
5774         * rtl.h: Likewise.
5775         * scan-decls.c: Likewise.
5776         * tree.h: Likewise.
5777         * varray.h: Likewise.
5778         
5779 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
5780
5781         * i386.md (call_value_pop): If we're not popping anything,
5782         defer to call_value.
5783         (call_pop): Likewise defer to call.
5784
5785 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
5786
5787         * function.c (purge_addressof): Clear purge_addressof_replacements
5788         only after processing the whole function.
5789
5790 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
5791
5792         * reload1.c (reload): If we can not perform a particular elimination
5793         when we thought we could earlier, then we must always iterate through
5794         the loop at least one more time.
5795
5796 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
5797
5798         * alpha.c (add_operand): Simplify the CONST_INT match.
5799         (sext_add_operand): Correct typo in comparison by using
5800         CONST_OK_FOR_LETTER_P.
5801         * alpha.md (s?addq): Use sext_add_operand to allow the negative
5802         constant alternatives to be generated.
5803         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
5804         small constants, since the hw instructions do.
5805
5806 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5807
5808         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
5809         previous insn to store directly into our reload register, make sure
5810         that if the source of the previous insn is a reload register, its
5811         spill_reg_store and spill_reg_stored_to values are cleared.
5812
5813 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5814
5815         * rs6000.md (floatunssidf2_internal splitter): Use base register
5816         operand, not hard-coded SP.
5817
5818 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5819
5820         * jump.c (calculate_can_reach_end): Fix thinko.
5821
5822 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
5823
5824         * reorg.c (fill_simple_delay_slots): Fix typo.
5825
5826         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
5827
5828 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
5829
5830         * i386.md (extendsidi2): Use # in the output template.
5831         (extendsidi splitters): New splitters.
5832
5833 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
5834
5835         * configure.in: Use unknown-elf.h as tm_file for arm-elf
5836         configuarions.
5837         * configure: Regenerate.
5838
5839 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5840
5841         * jump.c (init_label_info, delete_barrier_successors,
5842         mark_all_labels, delete_unreferenced_labels,
5843         delete_noop_moves, calculate_can_reach_end): New functions broken
5844         out of jump_optimize.
5845         (jump_optimize): Use them.
5846
5847 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
5848
5849         * except.c (expand_fixup_region_end): Make sure outer context labels
5850         are not issued in an inner context during cleanups.
5851
5852 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
5853
5854         * alpha.md (addsi3, subsi3): No new temporaries once cse is
5855         no longer expected.
5856
5857 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
5858
5859         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
5860         to expose this midpoint to CSE.
5861
5862 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5863
5864         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
5865
5866 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5867
5868         * configure.in: Bring over gcc2 change of Nov 19 1997.
5869
5870 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
5871
5872         * toplev.c (output_lang_identify): Make definition dependent on
5873         ASM_IDENTIFY_LANGUAGE.
5874
5875         * print-rtl.c (spaces): Make static.
5876
5877 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
5878
5879         * extend.texi: Clarify proper uses for register clobbers in asms.
5880
5881 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5882
5883         * recog.h (enum op_type): Define.
5884         (constrain_operands): Adjust prototype.
5885         (recog_op_type): Declare new variable.
5886         * recog.c (recog_op_type): New variable.
5887         (insn_invalid_p): Allow modifying an asm statement after reload.
5888         (extract_insn): Set up recog_op_type.
5889         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
5890         Don't compute operand types, use recog_op_type.
5891         Use the information computed by extract_insn instead of the previous
5892         method of finding it by insn code number.
5893         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
5894         * reorg.c (fill_slots_from_thread): Likewise.
5895         * reload1.c (reload_as_needed): Likewise.
5896         (gen_reload): Likewise.
5897         (inc_for_reload): Likewise.
5898         (reload_cse_simplify_operands): Likewise.
5899         Use the information computed by extract_insn instead of the previous
5900         method of finding it by insn code number.
5901         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
5902         insn_extract.
5903         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
5904         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
5905         Use the information computed by extract_insn instead of the previous
5906         method of finding it by insn code number.
5907         * regmove.c (find_matches): Likewise.  Change meaning of the return
5908         value to be nonzero if the optimization can be performed, zero if
5909         not.  All callers changed.
5910         Shorten some variable names to fix formatting problems.
5911         (regmove_optimize): Shorten some variable names to fix formatting
5912         problems.
5913         Use the information computed by extract_insn instead of the previous
5914         method of finding it by insn code number.
5915         * regclass.c (scan_one_insn): Likewise.
5916         (record_reg_classes): Don't compute operand types, use recog_op_type.
5917         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
5918         recog_constraints instead.
5919
5920 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
5921
5922         * rtl.h (flow2_completed): Declare.
5923         * flow.c (flow2_completed): Definition.
5924         * toplev.c (rest_of_compilation): Set and clear flow2_completed
5925         as necessary.
5926
5927 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
5928
5929         * Makefile.in (libcpp.a): Ranlib libcpp.a
5930
5931         * cppulp.c (user_label_prefix): Initialize.
5932         
5933 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
5934
5935         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
5936         at a RETURN if current_function_sp_is_unchanging is set.
5937
5938 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
5939
5940         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
5941
5942 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
5943
5944         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
5945         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
5946         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
5947         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
5948         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
5949         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
5950         to __CYGWIN32__.
5951         (LIB_SPEC): Handle -mno-cyginw option.
5952         (LINK_SPEC): Handle -mdll.
5953
5954 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5955
5956         * reload.c (find_reloads): Fix test for usage by other reload
5957         to handle secondary reloads properly.
5958
5959 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5960
5961         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
5962         intermediate structure which has exactly the members provided by
5963         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
5964         static intermediate structure.
5965         
5966         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
5967         from the intermediate structure.  Do the same analogous fix in
5968         the case where ELIMINABLE_REGS is not defined.
5969
5970 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
5971
5972         * pa.h (SELECT_SECTION): Fix thinko.
5973
5974 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
5975
5976         * dwarf2out.c (output_call_frame_info): Comments on last change.
5977
5978 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
5979
5980         * arm.c (add_constant): When taking the address of an item in the
5981         pool, get the mode of the item addressed.
5982
5983         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
5984         contain a SET or a PARALLEL, don't consider it for conditional
5985         execution.
5986
5987         Restore ABI compatibility for NetBSD.
5988         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
5989         arm.h
5990         (RETURN_IN_MEMORY): Likewise.
5991
5992 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
5993
5994         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
5995         (m32r_output_block_move): Rewrite bytes < 4 handling.
5996
5997 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5998
5999         * configure.in: Call AC_FUNC_VFORK.
6000
6001         * collect2.c: Define VFORK_STRING as a printable string for
6002         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
6003         defined, include vfork.h.  If VMS is defined, define vfork()
6004         appropriately.  Remove vfork check on USG, we're using autoconf.
6005         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
6006         checking locally what string to pass.
6007         (scan_prog_file): Likewise.
6008         (scan_libraries): Likewise.
6009
6010         * gcc.c: Remove vfork check on USG, we're using autoconf.
6011         Besides, no calls to vfork/fork occur in this file.
6012
6013         * protoize.c: Likewise.
6014
6015 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6016
6017         * configure.in (DEFAULT_LINKER): renamed from LD
6018         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
6019         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
6020         * configure: rebuilt
6021
6022 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6023
6024         * BUGS: fix the regexp for `more' to find the appropriate node.
6025         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
6026
6027         * BUGS: added link to the WWW FAQ
6028
6029 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
6030
6031         * version.c: Bump for snapshot.
6032
6033 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
6034
6035         * From Christian Gafton:
6036         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
6037         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
6038         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
6039
6040 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
6041
6042         * c-common.c (c_get_alias_set): Allow all type-punning through
6043         unions.  Don't get confused about the type of a bit-field, despite
6044         the antics of build_modify_expr.
6045
6046 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
6047
6048         * fixinc.sco: Paramaterize #include_next values.
6049         * fixinc/fixinc.sco: Likewise.
6050
6051 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
6052
6053         * toplev.c (rest_of_compilation): No longer set reload_completed.
6054         * reload1.c (reload): Set it here.  Perform instruction splitting
6055         after reload has completed if we will be running the scheduler
6056         again.
6057
6058 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
6059
6060         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
6061         EH region if exceptions are enabled and we're performing cross
6062         jump optimizations.
6063         (find_cross_jump): Exit loop if the insns are in different EH regions.
6064
6065 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
6066
6067         * dwarf2out.c (output_call_frame_info): Use
6068         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
6069
6070 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6071
6072         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
6073         * c-common.c (check_format_info): Don't check for the 'x'
6074         format character twice, instead check for 'x' and 'X'
6075
6076 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
6077
6078         * configure.in (assembler features): Also make gas is configured if
6079         we find it in the souce tree.
6080
6081 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
6082
6083         * i386.c (i386_comp_type_attributes): Compare whether the 
6084         attributes are defined, not their tree nodes.
6085
6086 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6087
6088         * configure.in (gxx_include_dir): bitten by autoconf quoting
6089         characters :-(
6090         * configure: rebuilt
6091
6092 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6093
6094         * configure.in: Ignore non-absolute value in $AS.
6095
6096 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
6097
6098         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
6099
6100 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
6101
6102         * configure.in (msdosdjgpp): Set exeext and target_alias.
6103
6104 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6105
6106         * flow.c (XNMALLOC): New macro.
6107         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
6108         static variables.
6109         (add_edge, add_edge_to_label): New static functions.
6110         (free_bb_memory): New function.
6111         (flow_delete_insn): Delete function.
6112         (basic_block_drops_in): Delete variable.
6113         (find_basic_blocks): Allocate and initialize basic_block_head,
6114         basic_block_succ.  Don't allocate basic_block_drops_in.
6115         Call free_bb_memory at the beginning.
6116         (find_basic_blocks_1): Don't do multiple passes.
6117         Delete code to compute basic_block_drops_in.
6118         After calling make_edges, mark blocks reached by current block live.
6119         Update test for unreachable live blocks.
6120         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
6121         changed.
6122         Simplify to call add_edge_to_label when a LABEL_REF is found.
6123         (make_edges): Simplify to call add_edge_to_label instead of
6124         mark_label_ref most of the time.
6125         Compute here whether control drops into the next block.
6126         (delete_unreachable_blocks): Return void.  All callers changed.
6127         Delete unreachable blocks in reverse order.
6128         After deleting all unreachable blocks, renumber the remaining ones
6129         and update n_basic_blocks.
6130         (delete_block): Speed up deletion a bit.
6131         Don't set basic_block_drops_in for deleted blocks.
6132         (free_basic_block_vars): Don't free basic_block_drops_in.
6133         (life_analysis_1): Update to use new edge representation.
6134         (dump_flow_info): Delete code to print basic block info; call
6135         dump_bb_data instead.
6136         (compute_preds_succs): Delete code to recompute basic_block_drops_in
6137         and uid_block_number.
6138         Simply copy the previously computed cfg.
6139         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
6140         Print register lifetime information if LIVE_INFO is nonzero.
6141         * basic-block.h (dump_bb_data): Adjust prototype.
6142         * gcse.c (gcse_main): Update call to dump_bb_data.
6143         * rtl.h (free_bb_memory): Declare.
6144         * toplev.c (rest_of_compilation): Call free_bb_memory.
6145
6146         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
6147         (update_eliminable_offsets): Don't compute it.
6148         (set_initial_elim_offsets): Don't initialize it.
6149         Break out some code into set_initial_label_offsets so the rest of
6150         this function can be called from reload_as_needed.
6151         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
6152         ELIMINABLE_REGS isn't.
6153         (set_initial_label_offsets): New function, broken out of
6154         set_initial_elim_offsets.
6155         (set_offsets_for_label): New function, broken out of set_label_offsets
6156         and reload_as_needed.
6157         (reload): Call the two new functions.
6158         (reload_as_needed): Call set_initial_elim_offsets instead of
6159         duplicating the code.  Likewise for set_offsets_for_label.
6160
6161         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
6162         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
6163         any hard reg, reg_reloaded_dead contains valid data.
6164
6165 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
6166
6167         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
6168         "stdcall" and "cdecl" attributes.
6169
6170 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
6171
6172         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
6173         handle deleted no-op moves of hard registers.
6174         * haifa-sched.c (update_flow_info): Likewise.
6175
6176 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
6177
6178         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
6179         of the sequences to reload the HILO register which do not actually
6180         reference HILO.
6181
6182 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
6183
6184         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
6185
6186 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
6187
6188         * except.c (emit_eh_context): Make the EH context register stay alive
6189         at -O0 so stupid.c doesn't get confused.
6190
6191 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6192
6193         * emit-rtl.c (try_split): Do not try to split a BARRIER.
6194
6195 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
6196                           Jeffrey A Law  (law@cygnus.com)
6197
6198         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
6199         (zero_extendsidi2): Use # in output template and handle completely by
6200         splits.
6201         (zero_extend splitters): New define_splits.
6202         (ashiftrt_32): New pattern.
6203
6204 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
6205
6206         * tree.c (append_random_chars): New fn.
6207         (get_file_function_name_long): Use it.
6208
6209 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
6210
6211         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
6212         (LIBCPP_OBJS): New.  Add cppulp.o.
6213         (cppmain, fix-header): Depend on and use libcpp.a.
6214         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
6215         of the individual object files.
6216         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
6217         last.
6218
6219         * cccp.c (user_label_prefix): New.
6220         (main): Set it off -f*leading-underscore.
6221         (special_symbol): Use it.
6222         * cpplib.c (special_symbol): Likewise.
6223         (cpp_handle_option): Handle -f*leading-underscore.
6224         * cppulp.c: New file.
6225
6226         * output.h (user_label_prefix): Declare it.
6227         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
6228         * toplev.c (f_options, main): Handle -f*leading-underscore.
6229
6230         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
6231         referencing USER_LABEL_PREFIX directly.
6232         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
6233         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
6234         * final.c (asm_fprintf): Use user_label_prefix instead.
6235         * arm/thumb.c (thumb_print_operand): Likewise.
6236
6237         * gcc.c (default_compilers): Pass -f*leading-underscore on to
6238         cpp wherever appropriate.
6239
6240 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
6241
6242         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
6243         specific compiler switches.
6244
6245 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
6246
6247         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
6248         of rtl.h.
6249
6250 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6251
6252         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
6253         structure which has exactly the members provided by EXTRA_SPECS.
6254         Xmalloc() the real `extra_specs', and initialize it from this
6255         intermediate structure.
6256
6257         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
6258
6259         * mips.h  (EXTRA_SPECS): Likewise.
6260
6261         * sparc.h (EXTRA_SPECS): Likewise.
6262
6263 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6264     
6265         * function.c (purge_addressof_1): Instead of aborting when a
6266         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
6267         work just put the ADDRESSOF on stack.  Otherwise remember all such
6268         successfull replacements, so that exactly the same replacements
6269         can be made on the REG_NOTEs.  Remove the special case for CALL
6270         insns again.
6271         (purge_addressof_replacements): New variable.
6272         (purge_addressof): Clear it at end.
6273
6274 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6275
6276          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
6277            (lang_init): Call check_newline always.
6278          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
6279            cpp_start_read, set yy_cur and yy_lim to read from
6280            parse_in.token_buffer, so that we'll see the first #line
6281            directive.
6282          * cpplib.c (cpp_start_read): finclude the main input file
6283            before processing -include/-imacros.  Process -imacros and
6284            -include separately, and handle -include by stacking a
6285            buffer for the file in question as if it'd been #included.
6286          * toplev.c (documented_lang_options) Recognize -H when
6287            USE_CPPLIB is on.
6288
6289 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6290
6291          * cpplib.c: Merge do_once into do_pragma.  Break file handling
6292            code out of do_include.
6293            Move append_include_chain, deps_output,
6294            file_cleanup, redundant_include_p, import_hash,
6295            lookup_import, add_import, read_filename_string, read_name_map,
6296            open_include_file, finclude, safe_read to cppfiles.c.
6297            Move prototypes for deps_output, append_include_chain,
6298            finclude to cpplib.h.  Move definition of struct
6299            file_name_list there also.
6300
6301          * cppfiles.c: New file.  Contains all the above functions
6302            broken out of cpplib.c; also hack_vms_include_specification
6303            from cccp.c and find_include_file, a new function broken out of
6304            do_include.
6305
6306          * Makefile.in (cppmain): Depend on cppfiles.o.
6307            (fix-header): Likewise.
6308            (cppfiles.o): New target.
6309          * configure.in (--enable-c-cpplib): Add cppfiles.o to
6310            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
6311
6312 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
6313
6314         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
6315         if pending_types is non-zero.
6316         (dwarfout_finish): Verify pending_types is zero before finishing.
6317
6318 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
6319
6320         * expr.c (convert_move): Use shifts to perform the move if a
6321         suitable extend pattern cannot be found.  Code written by
6322         Richard Henderson <rth@cygnus.com>.
6323
6324 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6325
6326         * regclass.c (renumber, regno_allocated): New static variables, moved
6327         out of allocate_reg_info.
6328         (allocate_reg_info): Move these two variables outside the function.
6329         Move code to free memory into new function free_reg_info.
6330         (free_reg_info): New function, broken out of allocate_reg_info.
6331         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
6332         * rtl.h (allocate_reg_info): Don't declare.
6333         (free_reg_info): Declare.
6334
6335         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
6336
6337 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
6338
6339         * toplev.c (compile_file): Temporarily revert last change.
6340
6341 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
6342
6343         * c-typeck.c (convert_for_assignment): Parenthesize.
6344
6345 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6346
6347         * reload1.c (delete_output_reload): Avoid ambigous else.
6348
6349 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
6350
6351         * toplev.c (compile_file): Call allocate_reg_info to free register
6352         table memory.
6353         * rtl.h (allocate_reg_info): Declare.
6354
6355         * PROJECTS: Remove entry for local spilling.
6356
6357         * final.c (cleanup_subreg_operands): New function.
6358         (final_scan_insn): Use it.
6359         (alter_subreg): Clear the "used" field when we turn a SUBREG into
6360         a REG.
6361         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
6362         operands when reload has finished.
6363         * reload.h (cleanup_subreg_operands): Declare..
6364         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
6365         reload.  Handled in reload itself.
6366
6367 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6368
6369         * reload1.c (verify_initial_offsets): New function.
6370         (reload): Call it after reload_as_needed.  Also verify that the frame
6371         size stays constant during reload_as_needed.
6372         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
6373
6374         * reload.h (struct insn_chain): Add need_operand_change element.
6375         * reload1.c (new_insn_chain): Clear it.
6376         (calculate_needs_all_insns): Set it; don't overload need_reload.
6377         (reload_as_needed): Use it.
6378
6379         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
6380         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
6381         and reload_address_index_reg_class.
6382         (find_reloads_address_1): Likewise.
6383         * reload.h (reload_address_base_reg_class,
6384         reload_address_index_reg_class): Don't declare.
6385         * reload1.c (reg_old_renumber, pseudo_previous_regs,
6386         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
6387         (used_spill_regs): Now static.
6388         (reload_address_base_reg_class, reload_address_index_reg_class,
6389         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
6390         basic_block_needs, max_needs, group_size, group_mode, max_groups,
6391         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
6392         forbidden_regs):
6393         Deleted variables.
6394         (init_reload): Delete code to compute base/index reg classes.
6395         (reload): Delete variable J.
6396         Delete code to manage basic_block_needs.
6397         Don't compute regs_explicitly_used.
6398         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
6399         pseudo_previous_regs.
6400         Initialize bad_spill_regs_global.
6401         Don't call order_regs_for_reload here.
6402         Don't initialize spill_reg_order and n_spills.
6403         Don't forbid explicitly used regs to be used for spill regs.
6404         Change main loop to infinite loop, with explicit break statements.
6405         Make SOMETHING_CHANGED variable local to that loop.
6406         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
6407         max_groups_insn, max_nongroups_insn, group_size, group_mode.
6408         Make sure spilled_speudos is cleared before calling spill_hard_reg or
6409         new_spill_reg.
6410         Don't call dump_needs.
6411         Delete code to reset potential_reload_regs.
6412         Delete code to terminate loop conditional on the global needs variables
6413         showing no further needs.
6414         (calculate_needs_all_insns): Return void.  All callers changed.
6415         Initialize somehing_needs_elimination here, not in reload.
6416         Delete avoid_return_reg kludge.
6417         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
6418         All callers changed.
6419         Initialize the group_mode and group_size elements of the arg CHAIN.
6420         Delete code to manage basic_block_needs.
6421         Operate on elements of CHAIN instead of global variables.
6422         Delete avoid_return_reg kludge.
6423         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
6424         All callers changed.
6425         Operate on elements of CHAIN instead of global variables.
6426         Delete special SMALL_REGISTER_CLASSES code.
6427         Delete spill_failure code; now in new_spill_reg.
6428         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
6429         All callers changed.
6430         Operate on elements of CHAIN instead of global variables.
6431         (maybe_mark_pseudo_spilled): New static function.
6432         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
6433         All callers changed.
6434         Operate on elements of CHAIN instead of global variables.
6435         Call order_regs_for_reload here, not in reload.
6436         Initialize spill_reg_order and n_spills.
6437         Simplify test whether an asm insn is involved.
6438         Delete spill_failure code; now in new_spill_reg.
6439         Call maybe_mark_pseudo_spilled for everything marked as live in
6440         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
6441         used_spill_regs.
6442         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
6443         compiler from optimizing this function (now unused) away.
6444         Operate on elements of CHAIN instead of global variables.
6445         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
6446         changed.
6447         Operate on elements of CHAIN instead of global variables.
6448         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
6449         take CHAIN arg.  All callers changed.
6450         Operate on elements of CHAIN instead of global variables.
6451         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
6452         CHAIN, NONGROUP args.  Return void.  All callers changed.
6453         Verify caller isn't trying to spill a pseudo.
6454         Simplify test for illegal reg, just use bad_spill_regs.
6455         Generate better error messages.
6456         Operate on elements of CHAIN instead of global variables.
6457         Mark spilled register in CHAIN's used_spill_regs element.
6458         Don't call spill_hard_reg.
6459         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
6460         Mark spilled hard regs in bad_spill_regs_global.
6461         Mark affected pseudos in spilled_pseudos, but don't spill them.
6462         (ior_hard_reg_set): New static function.
6463         (finish_spills): Return int.  All callers changed.
6464         Compute spill_reg_order, n_spills and spill_regs here.  Also update
6465         regs_ever_live for regs used as spills.
6466         For every pseudo in spilled_pseudos, spill it and mark the previous
6467         hard reg it had in pseudo_previous_regs.  Compute which hard regs
6468         arseudo): New static function.
6469         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
6470         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
6471         hard registers explicitly used across the current insn into the set.
6472         Compute hard_reg_n_uses taking only pseudos live across this insn
6473         into account.
6474         Tweak sorting of potential_reload_regs.
6475         (compare_spill_regs): Delete function.
6476         (reload_as_needed): Don't sort the spill_regs array, it's computed
6477         in proper order in finish_spills.
6478         Delete avoid_return_reg kludge.
6479         Delete code to manage basic_block_needs.
6480         (allocate_reload_reg): Minor speed/readability tweaks.
6481         Operate on elements of CHAIN instead of global variables.
6482         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
6483         Delete avoid_return_reg kludge.
6484         Initialize reload_reg_used from CHAIN's used_spill_regs element.
6485         Delete unused label FAIL.
6486         (reload_combine): Replce reload_address_index_reg_class with
6487         INDEX_REGS.
6488         Don't use used_spill_regs to determine information about lifetime of
6489         hard regs.
6490
6491 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
6492         
6493         * toplev.c (display_help): Ignore empty target specific
6494         options, and if -W is also specified on the command line then
6495         display undocumented options.
6496
6497         * config/arm/arm.c: Updated with changes in devo sources.
6498         * config/arm/arm.h: Updated with changes in devo sources.
6499         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
6500         * config/arm/lib1thumb.asm: Add ELF support.
6501
6502 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6503
6504         * collect2.c (aix64_flag): New variable.
6505         (main, case 'b'): Parse it.
6506         (GCC_CHECK_HDR): object magic number must match mode.
6507         (scan_prog_file): Only check for shared object if valid header.
6508         Print debugging if header/mode mismatch.
6509
6510 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
6511
6512         Added support for arm-elf-linux configuration, submitted by Philip
6513         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
6514         code developed by Catherine Moore <clm@cygnus.com>.  The following
6515         files are affected: 
6516
6517         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
6518         targets. 
6519
6520         * configure: Regenerated.
6521         
6522         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
6523         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
6524         definitions conditional on their not having been already defined.
6525
6526         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
6527         and .type directives, and add "(PLT)" qualification to function
6528         calls.
6529
6530         * config/arm/linux.h: Deleted.  This file is now superceeded by
6531         either linux-elf.h or linux-aout.h.
6532
6533         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
6534         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
6535         support).
6536         Move definitions from old linux.h file here.
6537         
6538         * config/arm/elf.h: New file.  Generic ARM/ELF support.
6539         
6540         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
6541         
6542         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
6543         
6544         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
6545         using the 26bit APCS.
6546         
6547         * config/arm/unknown-elf.h: New file.  Support for OS'es other
6548         than Linux with ELF.
6549
6550         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
6551         builds.
6552         
6553         * config/arm/coff.h: Include aout.h for basic assembler macros.
6554         Add support for -mstructure_size_boundary=<n> command line option.
6555         
6556         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
6557         command line option.  Make macro definitions conditional on their
6558         not having been already defined. 
6559
6560         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
6561         command line option.
6562
6563         
6564 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
6565
6566         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
6567         has been changed to not include a newline. Use this macro instead.
6568         (output_enumeral_list, const_value_attribute, name_attribute,
6569         comp_dir_attribute, prototyped_attribute, producer_attribute,
6570         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
6571         dwarfout_file_scope_decl, generate_new_sfname_entry,
6572         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
6573         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
6574
6575 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
6576
6577         * combine.c (subst): Process the inputs to a parallel asm_operands
6578         only once.
6579
6580 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
6581
6582         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
6583
6584 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
6585
6586         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
6587
6588 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
6589
6590         * version.c: Bump for snapshot.
6591
6592 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
6593
6594         * stmt.c (expand_fixup): Set fixup->before_jump to a
6595         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
6596
6597 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6598
6599         * Makefile.in (recog.o): Depend on toplev.h.
6600         (insn-emit.o): Depend on recog.h.
6601         (insn-peep.o): Depend on recog.h and insn-config.h.
6602
6603         * combine.c (simplify_set): Remove unused variable `scratches'.
6604
6605         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
6606         and `idx' in macro conditional controlling their use.
6607
6608         * genemit.c (main): Make the generated output file include
6609         recog.h.  Don't have it declare `insn_operand_constraint', since
6610         we get it from recog.h.
6611
6612         * genpeep.c (main): Make the generated output file include
6613         insn-config.h and recog.h.
6614
6615         * recog.c: Include toplev.h.
6616         (extract_insn): Remove unused variable `p'.
6617
6618         * regclass.c (fix_register): Add missing braces around initializer
6619         for `what_option'.
6620         (allocate_reg_info): Move variable `i' into the scope where it is
6621         used.  Change its type to `size_t'.
6622
6623 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6624
6625         * reload.c (push_reload): When merging reloads, make sure
6626         that reload_in_reg and reload_in are from the same reload in
6627         all cases.
6628
6629 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
6630
6631         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
6632         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
6633
6634 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6635
6636         * loop.c (loop_has_tablejump): New variable.
6637         (prescan_loop): Scan for it.
6638         (insert_bct): Replace explicit scan with use of it.
6639         * regclass.c (regclass): Restore loop variable j.
6640         (record_reg_classes): Deterine op_types modifiers and initialize
6641         classes[i] before matching constraints.  Handle matching
6642         constraints 5-9.
6643         
6644 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
6645
6646         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
6647         subreg support.
6648
6649 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6650
6651         * mips.h (EXTRA_SPECS): Add missing initializers.
6652
6653 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6654
6655         * sparc.h (EXTRA_SPECS): Add missing initializers.
6656         (sparc_defer_case_vector): Provide a prototype.
6657
6658         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
6659         comparing it to the result of a pointer subtraction.
6660
6661 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6662
6663         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
6664         the argument to (unsigned char).
6665
6666         * alpha.h (EXTRA_SPECS): Add missing initializers.
6667         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
6668         format specifier.
6669
6670 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
6671
6672         * flow.c (life_analysis_1): Enable "rescan" code after reload.
6673         (propagate_block): Delete dead code after reload.
6674
6675         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
6676         back Oct 15, 1998 change.  
6677         * haifa-sched.c (update_flow_info): Likewise.
6678         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
6679
6680         * mn10200.md (truncated shift): Accept constant inputs too.
6681
6682 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
6683
6684         * machmode.h (mode_mask_array): No longer const.
6685         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
6686
6687 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
6688
6689         * frame.c: Somewhat explain `FDE'.
6690         Suggested by Brendan Kehoe
6691
6692 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
6693
6694         * expr.c (pending_chain): Move up.
6695         (save_expr_status): Do save pending_chain.
6696         (restore_expr_status): And restore it.
6697         * function.h (struct function): Add pending_chain.
6698
6699 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6700
6701         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
6702         did not match the code.
6703
6704 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6705
6706         * regclass.c (regclass): Break out some code into new function
6707         scan_one_insn, and into regclass_init.
6708         (init_cost): New static variable, moved out of regclass.
6709         (regclass_init): Initialize it here, not in .
6710         (scan_one_insn): New static function, broken out of regclass.
6711         * recog.c (apply_change_group): Break out some code into new
6712         function insn_invalid_p.
6713         (insn_invalid_p): New static fn, broken out of apply_change_group.
6714
6715 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
6716
6717         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
6718         reg_reloaded_contents matches incremented pseudo.
6719
6720         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
6721
6722 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6723
6724         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
6725         addressing modes with side effects.  These are currently
6726         placeholders for the C4x target.
6727
6728 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6729
6730         * loop.c (express_from): Make sure that when generating a PLUS of
6731         a PLUS, any constant expression appears on the outermost PLUS.
6732
6733 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
6734
6735         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
6736         works if "$(srcdir)" != ".".
6737
6738 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
6739
6740         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
6741         existing SUBREG if we can, otherwise abort.
6742
6743 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
6744
6745         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
6746         `restrict' is applied to a non-pointer variable.
6747
6748 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
6749
6750         * invoke.texi: Document -flang-isoc9x.
6751
6752         * Makefile.in (OBJS): Add splay-tree.o.
6753         (c-common.o): Depend on rtl.h.
6754         (splay-tree.o): List dependencies and provide build rule.
6755         
6756         * rtl.h (record_alias_subset): New function.
6757         * alias.c: Include splay-tree.h.
6758         (alias_set_entry): New type.
6759         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
6760         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
6761         (mems_in_disjoin_alias_sets_p): New function.
6762         (alias_set_compare): Likewise.
6763         (insert_subset_children): Likewise.
6764         (get_alias_set_entry): Likewise.
6765
6766         * tree.h (TYPE_RESTRICT): New macro.
6767         (TYPE_UNQUALIFIED): New manifest constant.
6768         (TYPE_QUAL_CONST): Likewise
6769         (TYPE_QUAL_VOLATILE): Likewise.
6770         (TYPE_QUAL_RESTRICT): Likewise.
6771         (tree_type): Add restrict_flag.  Reduce count of free bits.
6772         (DECL_POINTER_ALIAS_SET): New macro.
6773         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
6774         (tree_decl): Add pointer_alias_set.
6775         (build_qualified_type): New function.
6776         (build_type_variant): Define in terms of build_qualified_type.
6777         * tree.c (set_type_quals): New function.
6778         (make_node): Initializae DECL_POINTER_ALIAS_SET.
6779         (build_type_attribute_variant): Use build_qualified_type and
6780         set_type_quals.
6781         (build_type_variant): Rename, and modify, to become...
6782         (build_qualified_type): New function.
6783         (build_complex_type): Use set_type_quals.
6784
6785         * c-tree.h (C_TYPE_OBJECT_P): New macro.
6786         (C_TYPE_FUNCTION_P): Likewise.
6787         (C_TYPE_INCOMPLETE_P): Likewise.
6788         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
6789         (c_apply_type_quals_to_decl): New function.
6790         (c_build_qualified_type): New function.
6791         (c_build_type_variant): Define in terms of c_build_qualified_type.
6792         (flag_isoc9x): Declare.
6793         * c-typeck.c (qualify_type): Use c_build_qualified_type.
6794         (common_type): Change to use TYPE_QUALS.
6795         (comptypes): Likewise.
6796         (convert_for_assignment): Likewise.
6797         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
6798         * c-decl.c (flag_isoc9x): Define.
6799         (c_decode_option): Handle -flang-isoc9x.
6800         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
6801         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
6802         * c-lex.c (init_lex): Deal with restrict.
6803         (init_lex): Don't treat restrict as a reserved word in
6804         -traditional mode, or without -flang-isoc9x.
6805         * c-lex.h (rid): Add RID_RESTRICT.
6806         * c-parse.gperf (restrict, __restrict, __restrict__): Make
6807         equivalent to RID_RESTRICT.
6808         * c-parse.in (TYPE_QUAL): Update comment.
6809         * c-common.c: Include rtl.h.
6810         (c_find_base_decl): New function.
6811         (c_build_type_variant): Rename, and modify, to become ...
6812         (c_build_qualified_type): New function.
6813         (c_apply_type_quals_to_decl): Likewise.
6814         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
6815         a particular alias set for the reference.
6816         * toplev.c (documented_lang_options): Add -flang-isoc9x.
6817
6818 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
6819
6820         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
6821         command line switches.
6822
6823 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
6824
6825         * reload.c (loc_mentioned_in_p): Add missing braces to bind
6826         else to correct if.
6827
6828 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
6829
6830         * gcc.c (option_map): Added --classpath and --CLASSPATH.
6831
6832 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
6833
6834         * regclass.c (fix_register): Add error message.
6835         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
6836           new error message.
6837
6838 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6839
6840         * c-decl.c (warn_missing_noreturn): New global variable.
6841         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
6842         (finish_function): Implement missing noreturn warning.
6843
6844         * c-tree.h (warn_missing_noreturn): Declare extern.
6845
6846         * invoke.texi: Document new flags.
6847
6848         * toplev.c (documented_lang_options): Add description.
6849
6850 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6851
6852         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
6853         loop optimization stable for the C4x.
6854         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
6855         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
6856         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
6857         loop optimization).
6858         (c4x_address_conflict): Be more paranoid when packing a volatile
6859         memref in a parallel load/store.
6860
6861 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6862
6863         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
6864         repeat_block_filler): Deleted.
6865         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
6866         Condition code not set if destination register from 'c' class.
6867         (*subbqi3_carry_clobber): Fix typo.
6868
6869 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6870
6871         * reorg.c (steal_delay_list_from_target) Check for insns that
6872         modify the condition codes and effect the direction of the jump
6873         in the sequence.
6874
6875 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
6876
6877         * function.c (purge_addressof_1): Replace call to
6878         emit_insns_before() with emit_insn_before().
6879
6880 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
6881
6882         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
6883
6884 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
6885
6886         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
6887
6888 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
6889
6890         * gcse.c (compute_hash_table): Correctly identify hard regs which are
6891         clobbered across calls.
6892
6893         * loop.c (scan_loop): Be more selective about what invariants are
6894         moved out of a loop.
6895
6896 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
6897
6898         * version.c: Bump for snapshot.
6899
6900 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
6901
6902         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
6903         static eh_context structure.
6904
6905 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
6906
6907         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
6908         callers changed.
6909         (try_combine): Don't update max_scratch.
6910         * flow.c (max_scratch, num_scratch): Delete variables.
6911         (life_analysis_1): Don't initialize max_scratch.
6912         (propagate_block): Don't update max_scratch.
6913         (mark_set_1): Don't increment num_scratch.
6914         * regs.h (max_scratch): Delete declaration.
6915
6916 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
6917
6918         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
6919         is nonzero.  This is temporary!
6920
6921         * sched.c (update_flow_info): Handle death notes made invalid by
6922         instruction splitting.  Partially reverts Oct 15, 1998 patch.
6923         * haifa-sched.c (update_flow_info): Likewise.
6924
6925 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
6926
6927         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
6928         if it has a nonzero DECL_INITIAL.
6929
6930 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6931
6932         * Makefile.in (flow.o): Depend on recog.h.
6933
6934         * cpplib.h (directive_table): Add missing initializiers.
6935         (finclude): Change type of variable `bsize' to size_t.
6936         
6937         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
6938
6939         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
6940
6941         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
6942         `int' when comparing against one.
6943         (cpp_file_line_for_message): Mark parameter `pfile' with
6944         ATTRIBUTE_UNUSED.
6945         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
6946
6947         * flow.c: Include recog.h.
6948         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
6949
6950         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
6951         `f' with ATTRIBUTE_UNUSED.
6952         (reposition_prologue_and_epilogue_notes): Likewise.
6953
6954         * genopinit.c (gen_insn): Cast argument of ctype functions to
6955         `unsigned char'.
6956
6957         * haifa-sched.c: Include recog.h.
6958         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
6959         comparing against one.
6960
6961         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
6962
6963         * mips-tfile.c (parse_end): Cast the argument of ctype function to
6964         `unsigned char'.
6965         (parse_ent): Likewise.
6966         (parse_input): Likewise.
6967
6968         * optabs.c (init_libfuncs): Likewise.
6969
6970         * protoize.c (find_rightmost_formals_list): Likewise.
6971
6972         * recog.h (const_double_operand): Fix typo in prototype.
6973
6974         * tlink.c (scan_linker_output): Cast the argument of ctype
6975         function to `unsigned char'.
6976
6977         * toplev.c (check_lang_option): Cast the result of `strlen' to
6978         `int' when comparing against one.
6979
6980 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
6981
6982         * gcse.c (dump_cuid_table): Correct typo.
6983
6984 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
6985
6986         * toplev.c (display_help): Prepend '-m' to target specific
6987         options. 
6988         (check_lang_option): Ignore text after end of first word of a
6989         language specific option.
6990
6991 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
6992
6993         * reload1.c (reg_used_by_pseudo): New static variable.
6994         (choose_reload_regs): Initialize it.
6995         Use it instead of testing spill_reg_order to determine whether a
6996         pseudo is live in a hard register across the current insn.
6997         Fix a typo in a reference to reload_reg_rtx.
6998
6999         * flow.c (propagate_block): Replace code that computes and uses
7000         regs_sometimes_live with simpler code that just walks the set of
7001         currently live registers.
7002
7003         * Makefile.in (insn-extract.o): Fix dependencies.
7004         * genextract.c (main): Generate includes for insn-config.h and
7005         recog.h.
7006         Delete generation of declarations which are now in recog.h.
7007         * genrecog.c (main): Delete generation of definitions which are
7008         now in recog.c.
7009         * local-alloc.c (block_alloc): Use extract_insn and the variables
7010         it sets up instead of looking up values by insn_code.
7011         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
7012         recog_dup_num): Define here instead of generating the definition in
7013         genrecog.c.
7014         (recog_n_operands, recog_n_dups, recog_n_alternatives,
7015         recog_operand_mode, recog_constraints, recog_operand_address_p):
7016         New variables.
7017         (extract_insn): New function.
7018         * recog.h (extract_insn): Declare function.
7019         (which_alternative, recog_n_operands, recog_n_dups,
7020         recog_n_alternatives, recog_operand_mode, recog_constraints,
7021         recog_operand_address_p): Declare variables.
7022         * regclass.c (n_occurrences): New static function.
7023         * reload.c (n_occurrences): Delete function.
7024         (find_reloads): Use extract_insn.
7025         * reload.h (n_occurrences): Delete declaration.
7026
7027 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
7028
7029         * reload1.c (reload_as_needed): Fix test for when to call
7030         update_eliminable_offsets.
7031
7032 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7033
7034         Fix consistency problems with reg_equiv_{mem,address};
7035         Improve reload inheritance;
7036
7037         * reload.c (reload_out_reg): New variable.
7038         (loc_mentioned_in_p, remove_address_replacements): New functions.
7039         (remove_replacements): Deleted.
7040         (push_reload): Set reload_out_reg[i].
7041         When merging, also set reload_{in,out}_reg[i], and remove
7042         duplicate address reloads.
7043         (combine_reloads): Copy reload_out_reg[i].
7044         (find_reloads): Do make_memloc substitution also when
7045         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
7046         are both nonzero.
7047         Include *recog_operand_loc in commutativity operand changes.
7048         Generate optional output reloads.
7049         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
7050         processing operands.  Call make_memloc in reg_equiv_address code.
7051         Set *recog_operand_loc only after processing operands, and only
7052         if replace is true.  Return a value.
7053         When changing address reload types for operands that didn't get
7054         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
7055         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
7056         Don't emit USEs for pseudo SUBREGs when not replacing.
7057         (find_reloads_address): Do make_memloc substitution also when
7058         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
7059         are both nonzero.
7060         (find_reloads_toplev): Likewise.
7061         Call make_memloc in reg_equiv_address code.
7062         (debug_reload_to_stream): Add code to output reload_out_reg.
7063         (make_memloc): Delete local variable i, ifdefed out code, and
7064         references to memlocs and n_memlocs.
7065         (memlocs, n_memlocs): Delete.
7066         (push_secondary_reload): Clear reload_out_reg.
7067         (find_reloads_address_1): Provide memrefloc argument to all calls
7068         to find_reloads_address.
7069         In AUTO_INC code, handle non-directly addressable equivalences properly.
7070         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
7071         (find_reloads): Add return type.
7072         (remove_address_replacements, deallocate_reload_reg): Declare.
7073         * reload1.c (num_not_at_initial_offset): No longer static.
7074         (delete_address_reloads, delete_address_reloads_1): Likewise.
7075         (deallocate_reload_reg): New function.
7076         (spill_reg_stored_to): New array.
7077         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
7078         (eliminate_regs_in_insn): Move assignments of previous_offset and
7079         max_offset fields, and recalculation of num_not_at_initial_offset
7080         into new static function:
7081         (update_eliminable_offsets) .
7082         (reload_as_needed): Call update_eliminable_offsetss after calling
7083         find_reloads.
7084         Call forget_old_reloads_1 with contents of reloaded auto_inc
7085         expressions if the actual addressing can't be changed to match the
7086         auto_inc.
7087         (choose_reload_regs): For inheritance, replace
7088         reload_reg_free_before_p test with reload_reg_used_at_all test, and
7089         remove stand-alone reload_reg_used_at_all test.
7090         Use reload_out_reg to determine which reload regs have output reloads.
7091         Treat reload_override_in more similar to inherited reloads.
7092         Handle (subreg (reg... for inheritance.
7093         For flag_expensive_optimizations, add an extra pass to remove
7094         unnecessary reloads from known working inheritance.
7095         Delete obsolete code for pseudos replaced with MEMs.
7096         Handle inheritance from auto_inc expressions.
7097         (emit_reload_insns): If reload_in is a MEM, set OLD to 
7098         reload_in_reg[j].
7099         Don't reload directly from oldequiv; if it's a pseudo with a
7100         stack slot, use reload_in[j].
7101         Check that reload_in_reg[j] is a MEM before replacing reload_in
7102         from reg_reloaded_contents.
7103         Include non-spill registers in reload inheritance processing.
7104         Also try to use reload_out_reg to set spill_reg_store /
7105         reg_last_reload_reg.
7106         In code to set new_spill_reg_store, use single_set to find out if
7107         there is a single set.
7108         Add code that allows to delete optional output reloads.
7109         Add code to allow deletion of output reloads that use no spill reg.
7110         At the end, set reload_override_in to oldequiv.
7111         Also call delete_output_reload if reload_out_reg is equal to old
7112         in oldequiv code.
7113         Add code to call delete_output_reload for stores with no matching load.
7114         Set / use spill_reg_stored_to.
7115         Handle case where secondary output reload uses a temporary, but
7116         actual store isn't found.
7117         When looking for a store of a value not loaded in order to call
7118         delete_output_reload, count_occurences should return 0 for no
7119         loads; but discount inherited input reloadill_reg_stored_to.
7120         Do checks for extra uses of REG.  Changed all
7121         callers.
7122         Use delete_address_reloads.
7123         (reload): Take return value of find_reloads into account.
7124         If a no-op set needs more than one reload, delete it.
7125         (reload_reg_free_before_p): RELOAD_FOR_INPUT
7126         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
7127         for the same operand.
7128         (clear_reload_reg_in_use): Check for other reloads that keep a
7129         register in use.
7130         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
7131         RELOAD_FOR_OPADDR_ADDR.
7132         Take into account when an address address reload is only needed
7133         for the address reload we are considering.
7134         (count_occurrences): Use rtx_equal_p for MEMs.
7135         (inc_for_reload): Return instruction that stores into RELOADREG.
7136         New argument two, IN, and rtx.  Changed all callers.
7137         (calculate_needs_all_insns, reload_as_needed):
7138         Don't clear after_call for a CLOBBER.
7139         Keep track of how many hard registers need to be copied from
7140         after_call, and don't clear after_call before we have seen
7141         that much copies, or we see a different instruction.
7142
7143 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
7144
7145         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
7146         after reload has completed.
7147
7148 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
7149
7150         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
7151         a macro name and the next token with a single blank if that whitespace
7152         is in a macro buffer and the next token is not '('.
7153
7154 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
7155
7156         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
7157         (rescan): Ditto.
7158         (skip_if_group): Ditto.
7159         (skip_to_end_of_comment): Ditto.
7160         (macarg1): Ditto.
7161         (discard_comments): Ditto.
7162         (change_newlines): Ditto.
7163
7164 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
7165
7166         * c-lex.c (yylex): Fix unaligned access of wchar_t.
7167
7168 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
7169
7170         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
7171         (TARGET_OPTIONS): Add --help documentation.
7172
7173 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7174
7175         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
7176
7177 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
7178         
7179         * fixinc/* Moved in from ../contrib directory in preparation
7180         for integrating it into the normal build process.  In particular,
7181         fixinc/Makefile.in must be config-ed into the build directory
7182         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
7183         ./configure.in will be "in the mail" momentarily.
7184
7185 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
7186
7187         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
7188         accidently walk into the free list.  Comment how that can happen.
7189         (invalidate): Fix indentation.
7190
7191 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7192                          Jeffrey A Law  (law@cygnus.com)
7193
7194         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
7195         reload.  Never perform rescans of the insn chain after reload.
7196         (propagate_block): Do not delete insn or create new autoinc addressing
7197         modes after reload.
7198
7199         * jump.c (jump_optimize): Unconditionally use the code that was
7200         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
7201         * reload1.c (reload): When reloading is finished, delete all
7202         REG_DEAD and REG_UNUSED notes.
7203         (emit_reload_insns): Delete all code that was conditional on
7204         PRESERVE_DEATH_INFO_REGNO_P.
7205         (no_longer_dead_regs): Delete variable.
7206         (reload_cse_delete_death_notes): Delete function.
7207         (reload_cse_no_longer_dead): Delete function.
7208         (reload_cse_regs_1): Delete all code to handle deletion of death
7209         notes.
7210         (reload_cse_noop_set_p): Likewise.
7211         (reload_cse_simplify_set): Likewise.
7212         (reload_cse_simplify_operands): Likewise.
7213         (reload_cse_move2add): Likewise.
7214         * reorg.c (used_spill_regs): Delete declaration.
7215         (max_label_num_after_reload): Delete declaration.
7216         (find_dead_or_set_registers): Don't assume that spill regs are
7217         dead at a CODE_LABEL.
7218         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
7219         even after reload.
7220         * sched.c (sched_analyze_insn): Likewise.
7221         (update_flow_info): Likewise.
7222         * haifa-sched.c (sched_analyze_insn): Likewise.
7223         (update_flow_info): Likewise.
7224         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
7225         * toplev.c (max_label_num_after_reload): Delete variable.
7226         (rest_of_compilation): Don't set max_label_num_after_reload.
7227         Call life_analysis after reload_cse_regs if optimizing.
7228         * config/gmicro/gmicro.h: Delete comment referring to
7229         PRESERVE_DEATH_INFO_REGNO_P.
7230         * config/i386/i386.h: Likewise.
7231         * config/m88k/m88k.h: Likewise.
7232         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
7233         * config/sh/sh.h: Likewise.
7234
7235 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7236
7237         * loop.c (strength_reduce): Restore marking bct_p as
7238         ATTRIBUTE_UNUSED.
7239         * rs6000.c (optimization_options): Change #ifdef HAIFA to
7240         HAVE_decrement_and_branch_on_count.
7241         (small_data_operand): Remove TARGET_ELF condition for marking
7242         parameters ATTRIBUTE_UNUSED.
7243         
7244 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
7245
7246         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
7247         (SELECT_SECTION): Resync with svr4.h.
7248
7249 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7250
7251         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
7252         ATTRIBUTE_UNUSED.
7253
7254 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
7255
7256         * c-pragma.c (handle_pragma_token): Test for null tree before
7257         dereferencing TREE_CODE.
7258
7259 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7260
7261         * config/c4x/c4x.c: Convert to use GEN_INT.
7262         (c4x_parallel_process): Rework to handle new repeat loop structure.
7263
7264         * config/c4x/c4x.md: Convert to use GEN_INT. 
7265         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
7266         (decrement_and_branch_on_count): Likewise.
7267
7268         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
7269         loop.c has the desired functionality.
7270         (rc_reg_operand): New prototype.
7271
7272         * config/c4x/t-c4x: Can now build all front ends.
7273
7274 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
7275
7276         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
7277
7278 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
7279
7280         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
7281         * config/t-rtems: Do not install assert.h -- use newlib's.
7282
7283 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7284
7285         * combine.c (combine_instructions): When finished, call init_recog.
7286         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
7287
7288 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
7289
7290         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
7291
7292 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7293
7294         * cppalloc.c (memory_full): Mark function prototype with
7295         ATTRIBUTE_NORETURN.
7296
7297         * demangle.h (collect_exit): Likewise.
7298
7299         * fix-header.c (v_fatal, fatal): Likewise.
7300
7301         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
7302         Likewise.
7303
7304         * gcov.c (print_usage): Likewise.
7305
7306         * genattr.c (fatal, fancy_abort): Likewise.
7307
7308         * genattrtab.c (fatal, fancy_abort): Likewise.
7309
7310         * gencodes.c (fatal, fancy_abort): Likewise.
7311
7312         * genconfig.c (fatal, fancy_abort): Likewise.
7313
7314         * genemit.c (fatal, fancy_abort): Likewise.
7315
7316         * genextract.c (fatal, fancy_abort): Likewise.
7317
7318         * genflags.c (fatal, fancy_abort): Likewise.
7319
7320         * genopinit.c (fatal, fancy_abort): Likewise.
7321
7322         * genoutput.c (fatal, fancy_abort): Likewise.
7323
7324         * genpeep.c (fatal, fancy_abort): Likewise.
7325
7326         * genrecog.c (fatal, fancy_abort): Likewise.
7327
7328         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
7329         __sjpopnthrow, __throw): Likewise.
7330
7331         * objc/objc-act.c (objc_fatal): Likewise.
7332
7333         * protoize.c (usage, aux_info_corrupted,
7334         declare_source_confusing): Likewise.
7335
7336         * rtl.c (dump_and_abort): Likewise.
7337
7338         * rtl.h (sets_cc0_p): Likewise.
7339
7340         * toplev.c (float_signal, pipe_closed): Likewise.
7341         
7342 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7343
7344         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
7345         when generating the decision tree for the general case.
7346
7347         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
7348         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
7349
7350 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7351
7352         * Makefile.in (sched.o): Depend on recog.h.
7353
7354         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
7355         (unsigned) when comparing against one.
7356         (find_base_value): Likewise.
7357         (record_base_value): Cast variable `regno' to (unsigned) when
7358         comparing against one.  Cast the result of REGNO() macro to
7359         (unsigned) when comparing against one.
7360         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
7361         unsigned.
7362         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
7363         variable where an unsigned index is needed.
7364
7365         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
7366         before comparing against one.
7367
7368         * collect2.c: Add prototypes for functions `error', `fatal' and
7369         `fatal_perror'.  Make these functions take variable arguments
7370         instead of faking it with a fixed number of args.
7371         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
7372         char).
7373
7374         * combine.c (can_combine_p): Mark parameter `pred' with
7375         ATTRIBUTE_UNUSED.
7376         (find_split_point): Cast variable `src' to (unsigned
7377         HOST_WIDE_INT) when comparing against one.
7378         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
7379         (simplify_logical): Likewise.
7380         (force_to_mode): Cast result of INTVAL() macro to (unsigned
7381         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
7382         HOST_WIDE_INT) in shift.
7383         (simplify_and_const_int): Cast result of INTVAL() macro to
7384         `unsigned HOST_WIDE_INT' when comparing against one.
7385         (merge_outer_ops): Cast variable const0 to `unsigned
7386         HOST_WIDE_INT' when comparing against the result of
7387         GET_MODE_MASK() macro.
7388         (simplify_comparison): Likewise for variable `c0'.  Cast variable
7389         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
7390         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
7391         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
7392         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
7393         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
7394         comparing against one.
7395         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
7396
7397         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
7398         macro to `unsigned HOST_WIDE_INT' when comparing against one.
7399         (output_block_move): Cast `sizeof' expression to (int) when
7400         comparing against one.
7401         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
7402         against one.
7403         (save_restore_insns): Cast `base_offset' to `long' to match format
7404         specifier in fprintf.
7405
7406         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
7407         to `enum machine_mode'.
7408
7409         * flow.c (life_analysis_1): Remove unused variable `insn'.
7410
7411         * gcc.c (translate_options): Move variables `j' and `k' into the
7412         scope in which they are used.  Change their types to `size_t'.
7413         (set_spec): Cast the argument of ctype macro to `unsigned char'.
7414         (read_specs): Likewise.
7415         (process_command): Cast `sizeof' to (int) when comparing against one.
7416         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
7417         (handle_braces): Cast both sides of `==' expression to `long' to
7418         ensure sign matching.
7419         (main): Cast variable `i' to `int' when comparing against one.
7420
7421         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
7422         int to size_t.  Cast variable `i' to size_t when comparing against
7423         one.
7424
7425         * genattrtab.c (convert_set_attr_alternative): Remove unused
7426         parameter `insn_code'.  All callers changed.
7427         (convert_set_attr): Likewise.
7428
7429         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
7430         size_t when comparing against one.  Likewise for variable `len'.
7431
7432         * global.c (global_alloc): Cast variable `max_regno' to size_t
7433         when comparing against one.  Likewise for variable `max_allocno'.
7434
7435         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
7436
7437         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
7438         `set' with ATTRIBUTE_UNUSED.
7439         (find_free_reg): Cast `sizeof' expression to (int) when comparing
7440         against one.
7441
7442         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
7443         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
7444         (get_condition): Cast variable `const_val' to `unsigned
7445         HOST_WIDE_INT' when comparing against one.  Cast unsigned
7446         expression to HOST_WIDE_INT when comparing against one.
7447         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
7448         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
7449         `unsigned' when comparing against one.
7450
7451         * protoize.c (is_id_char): Change type of parameter `ch' to
7452         unsigned char.
7453         (munge_compile_params): Cast argument of ctype macro to (const
7454         unsigned char).
7455         (process_aux_info_file): Cast variable `aux_info_size' to int when
7456         comparing against one.
7457         (forward_to_next_token_char): Cast argument of ctype macro to
7458         `const unsigned char'.
7459         (edit_formals_lists): Likewise.
7460         (find_rightmost_formals_list): Likewise.
7461         (add_local_decl): Likewise.
7462         (add_global_decls): Likewise.
7463         (edit_fn_definition): Likewise.
7464         (do_cleaning): Likewise.
7465         (scan_for_missed_items): Likewise.
7466         (edit_file): Cast variable `orig_size' to (int) when comparing
7467         against one.
7468         (main): Cast argument of ctype macro to `const unsigned char'.
7469
7470         * recog.c (const_int_operand): Mark parameter `mode' with
7471         ATTRIBUTE_UNUSED.
7472
7473         * regclass.c (record_reg_classes): Change type of variable `c' to
7474         `unsigned char'.  Cast `char' array index to `unsigned char'.
7475
7476         * reload.c (push_secondary_reload): Cast argument to
7477         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
7478
7479         * reload1.c (calculate_needs): Cast `char' array index to
7480         `unsigned char'.
7481         (set_label_offsets): Change type of variable `i' to unsigned int.
7482         Cast result of XVECLEN() macro to unsigned when comparing against
7483         one.
7484         (mark_not_eliminable): Change type of variable `i' to unsigned.
7485         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
7486         when comparing against one.
7487         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
7488         comparing against one.
7489         (choose_reload_regs): Hide unused label `fail'.
7490         (reload_cse_simplify_operands): Cast `char' array index to
7491         `unsigned char'.
7492         (reload_combine_note_store): Mark parameter `set' with
7493         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
7494         against one.
7495         (reload_cse_move2add): Remove unused variable `src2'.
7496
7497         * sched.c: Include recog.h.
7498         (sched_note_set): Remove unused parameter `b'.  All callers
7499         changed.
7500         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
7501         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
7502         when comparing against one.
7503
7504         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
7505         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
7506         comparing against one.
7507
7508         * unroll.c (precondition_loop_p): Remove unused parameter
7509         `loop_end'.  All callers changed.
7510
7511 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7512
7513         * reload1.c (maybe_fix_stack_asms): New static function.
7514         (reload): Call it.
7515
7516         * reload.h (compute_use_by_pseudos): Declare.
7517
7518         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
7519         (something_needs_reloads): Delete variable.
7520         (finish_spills): New function.
7521         (compute_use_by_pseudos): New function.
7522
7523         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
7524         Use the reload_insn_chain instead of walking the rtl directly.
7525
7526         (reload): Allocate and free spilled_pseudos.
7527         Ensure that all calls of spill_hard_reg are followed by a call to
7528         finish_spills.
7529         Use the insns_need_reload list instead of something_needs_reloads
7530         to find out if reload_as_needed must be called.
7531         Clear unused_insn_chains at the end.
7532
7533         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
7534         changed.
7535         Delete code to keep track of current basic block.
7536         Walk reload_insn_chain instead of the rtl structure.  Build the
7537         insns_need_reload chain.
7538         Remember which insns need reloading/elimination by setting the
7539         appropriate fields in struct insn_chain, not by putting modes on the
7540         insn.
7541
7542         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
7543         arg INSN.  All callers changed.
7544         Delete declaration of struct needs.
7545         Don't set something_needs_reloads.
7546         Record insn needs in the CHAIN argument.
7547
7548         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
7549
7550         (reload_as_needed): Lose FIRST arg.  All callers changed.
7551         Walk the reload_insn_chain instead of the rtx structure.
7552         Delete code to keep track of current basic block.
7553         Rename one of the NEXT variables to OLD_NEXT.
7554
7555         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
7556         callers changed.
7557         (choose_reload_regs): Likewise.
7558
7559         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
7560         callers changed.
7561         
7562         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
7563         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
7564         (hard_regs_live, hard_regs_need_restore): Delete variables.
7565         (n_regs_saved): Now static.
7566         (referenced_regs, this_insn_sets): New variables.
7567
7568         (setup_save_areas): Restructure the code a bit.
7569
7570         (restore_referenced_regs): Delete function.
7571         (mark_referenced_regs): New function, similar to the old
7572         restore_referenced_regs, but mark registers in referenced_regs.
7573
7574         (clear_reg_live): Delete function.
7575         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
7576         Only mark registers in this_insn_sets.
7577
7578         (save_call_clobbered_regs): Rework this function to walk the
7579         reload_insn_chain instead of using the list of instructions directly.
7580         Delete code to keep track of register lives, compute live regs on the
7581         fly from information in the chain.
7582         Instead of calling restore_referenced_regs, use mark_referenced_regs,
7583         then walk the set it computes and call insert_restore as appropriate.
7584
7585         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
7586         callers changed.
7587         Restructure the code a bit.  Test hard_regs_saved instead of
7588         hard_regs_need_restore.
7589         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
7590         args.  All callers changed.
7591         Restructure the code a bit.  Use TO_SAVE to determine which regs to
7592         save instead of more complicated test.
7593         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
7594         callers changed.
7595         Create a new insn_chain structure for the new insn and place it
7596         into the chain.
7597
7598         * rtl.texi: Update documentation to reflect that reload no longer
7599         puts modes on the insns.
7600
7601 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7602
7603         * function.c (purge_addressof_1): Force the first argument of a
7604         CALL insn to memory.
7605
7606 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
7607
7608         * rtl.h: Delete duplicate prototypes.  Add some missing
7609         prototypes.
7610         * rtlanal.c: (for_each_rtx): Formatting tweak.
7611
7612 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7613
7614         * real.c (emdnorm and etoasc): Disable round to even for c4x target
7615         to be compatible with TI compiler.
7616
7617         * Makefile.in (USER_H): Add va-c4x.h to definition.
7618
7619 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
7620
7621         * function.c (purge_addressof_1): Fix typo in inequality: do
7622         bitfield optimization for equal mode sizes.
7623         * expmed.c (store_bit_field): Don't take subregs of subregs in
7624         the movstrict case.  Tidy a potential problem in the multi-word case.
7625         (extract_bit_field): Likewise.
7626
7627 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7628
7629         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
7630         function.
7631         Compute max_uid_for_flow by calling get_max_uid after the scan.
7632         (find_basic_blocks_1): Don't emit NOPs here.
7633
7634 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
7635
7636         * alias.c (base_alias_check): Accept new args for the modes of the
7637         two references.  Use them to determine if an AND can overlap.  Update
7638         all callers.
7639         (memrefs_conflict_p): Assume sizes are aligned, and uses them
7640         to determine if an AND can overlap.
7641
7642 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
7643
7644         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
7645         check.  Add comment to document problems with TARGET_SUN_FPA version
7646         of this macro.
7647         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
7648
7649 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7650
7651         * Makefile.in (gencheck.o): Depend on gansidecl.h.
7652
7653         * c-common.c (print_char_table): Add missing initializers.
7654         (scan_char_table): Likewise.
7655         (time_char_table): Likewise.
7656
7657         * c-decl.c (c_decode_option): Mark parameter `argc' with
7658         ATTRIBUTE_UNUSED.
7659         (declare_parm_level): Mark parameter `definition_flag' with
7660         ATTRIBUTE_UNUSED.
7661
7662         * c-lex.c (readescape): Use `(unsigned)1' in shift.
7663         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
7664         against one.
7665
7666         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
7667         callers changed.
7668         (emit_call_1): Mark parameters `fndecl' and `funtype' with
7669         ATTRIBUTE_UNUSED.
7670         (expand_call): Cast result of MIN() to (unsigned int) when
7671         comparing against an unsigned value.
7672
7673         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
7674         callers changed.
7675         (make_definition): Remove unused parameter `op'.  All callers
7676         changed.
7677         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
7678         comparing against the result of pointer arithmetic.
7679
7680         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
7681         when comparing against one.
7682
7683         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
7684         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
7685         one.
7686         (output_die): Move variable `i' into the scope in which it is
7687         used.  Change its type to `unsigned'.
7688         (output_die): Cast the result of `strlen' to (int) when passing it
7689         to ASM_OUTPUT_ASCII().
7690         (output_pubnames): Likewise.
7691         (output_line_info): Likewise.
7692
7693         * emit-rtl.c (global_rtl): Add missing initializers.
7694
7695         * explow.c (promote_mode): Mark parameter `for_call' with
7696         ATTRIBUTE_UNUSED.
7697
7698         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
7699         `unsigned HOST_WIDE_INT' when comparing against one.
7700         (synth_mult): Change type of variable `cost' to int.
7701         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
7702
7703         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
7704         when comparing against one.
7705         (get_inner_reference): Change variable `alignment' to unsigned.
7706         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
7707         int) when comparing against one.
7708         (expand_builtin_setjmp): Change type of variable `i' to size_t.
7709
7710         * fold-const.c (div_and_round_double): Cast BASE to
7711         (HOST_WIDE_INT) when comparing against one.
7712
7713         * gencheck.c: Include gansidecl.h.
7714         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
7715
7716         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
7717         `tcode' with ATTRIBUTE_UNUSED.
7718
7719         * real.c (edivm): Cast constant value to (unsigned long) in
7720         expression compared against an unsigned value.
7721
7722         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
7723         comparing against one.
7724         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
7725         when comparing against one.
7726
7727         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
7728         (unsigned int) when comparing against one.  Likewise for
7729         GET_MODE_BITSIZE.
7730         (smallest_mode_for_size): Likewise.
7731         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
7732         (restore_storage_status): Likewise.
7733         
7734         * toplev.c (debug_args): Add missing initializer.
7735         (f_options): Spelling correction.  Add missing initializers.
7736         (documented_lang_options): Likewise.
7737         (debug_end_source_file): Mark parameter `lineno' with
7738         ATTRIBUTE_UNUSED.
7739
7740         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
7741         `decl' and `type' with ATTRIBUTE_UNUSED.
7742
7743         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
7744         when comparing against one.
7745         (assemble_variable): Mark parameter `top_level' with
7746         ATTRIBUTE_UNUSED.
7747         (assemble_external_libcall): Mark parameter `fun' with
7748         ATTRIBUTE_UNUSED.
7749         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
7750         ATTRIBUTE_UNUSED.
7751
7752 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
7753
7754         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
7755         Replace use of r5 with use of r19.
7756
7757         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
7758
7759         * config/v850/v850.c (compute_register_save_size): Allow for the
7760         fact that helper functions save all registers, not just those used
7761         by the function.
7762         
7763         Replace constant 31 with macro LINK_POINTER_REGNUM.
7764
7765         * config/v850/v850.md: Use 'indirect_operand' rather than
7766         'memory_operand' for bit test/set/clear patterns.
7767
7768 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
7769
7770         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
7771         * varasm.c (assemble_start_function et al): Don't call
7772         ASM_GLOBALIZE_LABEL for weak symbols.
7773
7774 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
7775
7776         * cse.c (equiv_constant): Check for NULL return from
7777         gen_lowpart_if_possible().
7778
7779 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
7780
7781         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
7782
7783         * collect2.c (main): Pass -EL/-EB through to the compiler.
7784
7785 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7786         
7787         * expr.c (push_block): Handle targets where the stack grows
7788         to higher addresses, but args grow to lower addresses and
7789         ACCUMULATE_OUTGOING_ARGS is not defined.
7790
7791 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
7792
7793         * config/v850/v850.c (print_operand):  Extend meaning
7794         of 'c' operands to support .vtinherit.
7795
7796 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7797
7798         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
7799         Added ATTRIBUTE_UNUSED to unused function arguments.
7800         (rc_reg_operand): New predicate.
7801         (c4x_rptb_insert): New function.
7802         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
7803         (c4x_optimization_options): New function.
7804
7805         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
7806          (decrement_and_branch_on_count): New pattern.
7807          (rptb_top): Modified pattern to work with BCT optimization.
7808         
7809         * config/c4x/c4x.h (RC_REG): New register class.
7810         (rc_reg_operand): Define prototype.
7811         (IS_RC_REG): New macro.
7812         (IS_RC_OR_PSEUDO_REG): New macro.
7813         (IS_RC_OR_PSEUDO_REGNO): New macro.
7814         (OPTIMIZATION_OPTIONS): Define.
7815
7816 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
7817
7818         * collect2.c (extract_init_priority): No priority is 65535.
7819
7820 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
7821         
7822         * Makefile.in (build_tooldir): new variable, same as old
7823         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
7824         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
7825         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
7826         
7827         * configure.in (gxx_include_dir): set default based on unlibsubdir
7828         * Makefile.in (tooldir): ditto
7829         (cccp.o, cpplib.o): use unlibsubdir implicitly through
7830         gxx_include_dir, includedir and tooldir
7831         (protoize.o, unprotoize.o): ditto
7832         
7833 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
7834
7835         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
7836
7837         * config/arm/thumb.c (thumb_override_options): Add warning about
7838         PIC code not being supported just yet.
7839
7840 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
7841
7842         * flow.c: Update comment.
7843         (notice_stack_pointer_modification): New static function.
7844         (record_volatile_insns): Use it.
7845         (mark_regs_live_at_end): Mark the stack pointer as alive
7846         at the end of the function if current_function_sp_is_unchanging
7847         is set.
7848         (life_analysis_1): Set current_function_sp_is_unchanging.
7849         * function.c: Define it.
7850         (init_function_start): Initialize it.
7851         * output.h: Declare it.
7852         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
7853         the stack pointer as alive at the end of the function if
7854         current_function_sp_is_unchanging is set.
7855         * i386.c (ix86_epilogue): Optimize the restoring
7856         of the stack pointer.
7857
7858 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
7859
7860         * version.c: Bump for snapshot.
7861
7862 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
7863
7864         * c-pragma.c (handle_pragma_token): If passed a token instead
7865         of a tree, use that as the pack value.
7866
7867 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
7868
7869         * flow.c (find_basic_blocks_1): Fix prototype.
7870
7871 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
7872
7873         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
7874         (struct tree_decl): New fields no_check_memory_usage.
7875         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
7876         (init_attributes): Register it as a new attribute.
7877         (decl_attributes): Set flags on functions given that attribute.
7878         * c-decl.c (duplicate_decls): Merge new attribute.
7879         * expr.h (current_function_check_memory_usage): Declare new var.
7880         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
7881         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
7882         current_function_check_memory_usage.
7883         * function.h: Add field to struct function.
7884         * function.c (current_function_check_memory_usage): Define it.
7885         (push_function_context_to, pop_function_context_from): Save and
7886         restore it.
7887         (expand_function_start): Set it, based on global flag and function
7888         attribute.
7889
7890         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
7891         check non-automatic variables, to permit detection of writes to
7892         read-only locations in embedded systems without memory management.
7893         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
7894         when emitting chkr_set_right_libfunc call, even if the argument is
7895         BLKmode or variable-sized; don't abort.
7896
7897         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
7898         symbols in Pmode, not VOIDmode.
7899
7900 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7901
7902         * cppexp.c: When forcing unsigned comparisons, cast both sides
7903         of the operation.
7904
7905         * cpphash.h: Move static declaration of hashtab[]...
7906         * cpphash.c: ...here.
7907
7908         * cpplib.c: Cast difference of two pointers to size_t before
7909         comparing it to size_t.  Cast signed to unsigned
7910         before comparing to size_t. (FIXME: struct argdata should use
7911         unsigned buffer sizes.)
7912         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
7913         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
7914         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
7915         size_t before comparison.
7916
7917 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
7918
7919         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
7920         (find_basic_blocks_1): Similarly.
7921         * output.h (find_basic_blocks): Fix prototype.
7922         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
7923         find_basic_blocks anymore.
7924
7925 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
7926
7927         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
7928         (sbitmap_free, sbitmap_vector_free): New macros.
7929         * output.h (rtl_dump_file): Declare.
7930
7931 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
7932
7933         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
7934
7935 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7936
7937         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
7938         (DFtype): Likewise.
7939         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
7940         (divide): Remove unused variable `tmp'.
7941         (si_to_float): Cast numeric constant to (SItype) before comparing
7942         it against one.
7943
7944 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
7945
7946         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
7947         * gcc.c (add_preprocessor_option): Correct typo when allocating
7948         memory, sizeof() argument had one too many `*'.
7949         (add_assembler_option): Likewise.
7950         (add_linker_option): Likewise.
7951         * gcov.c (output_data): Likewise.
7952         * local-alloc.c (memref_used_between_p): Likewise.
7953         (update_equiv_regs): Likewise.
7954         * loop.c (strength_reduce): Likewise.
7955         * reg-stack.c (record_asm_reg_life): Likewise.
7956         (subst_asm_stack_reg): Likewise.
7957         * reorg.c (dbr_schedule): Likewise.
7958
7959 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
7960
7961         * flow.c (life_analysis_1): Break out some functions.
7962         (find_basic_blocks_1): Likewise.  Also move some variables out and
7963         make them static.
7964         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
7965         new static var nonlocal_label_list with it.
7966         (active_eh_region, nested_eh_region, label_value_list,
7967         nonlocal_label_list): New static variables.
7968         (make_edges, delete_unreachable_blocks, delete_block): New static
7969         functions, broken out of find_basic_blocks_1.
7970         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
7971         noop_move_p): New static functions, broken out of life_analysis_1.
7972
7973 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
7974
7975         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
7976         Take extra care for op0 now possibly being a subreg.
7977         (extract_bit_field): Likewise.
7978         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
7979         the reg to memory if there is no equal sized integral mode.
7980         * stor-layout.c (int_mode_for_mode): New function.
7981         * machmode.h: Prototype it.
7982
7983 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
7984
7985         * global.c (build_insn_chain): Verify no real insns exist past the
7986         end of the last basic block, then exit the loop.
7987
7988 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7989
7990         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
7991
7992 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
7993
7994         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
7995
7996 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7997
7998         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
7999
8000 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
8001
8002         * flow.c (find_basic_blocks): Correctly determine when a call
8003         is within an exception region.
8004
8005 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
8006
8007         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
8008
8009         * cpplib.h: Protect from multiple inclusions.
8010         * cpplib.c: Fix minor formatting problems.
8011
8012         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
8013
8014         * jump.c (jump_optimize): Revert accidental patch.
8015
8016         * Makefile.in (cpplib.o): Use unlibsubdir.
8017
8018 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
8019
8020         * loop.c (get_condition): Allow combine when either compare is
8021         VOIDmode.
8022
8023 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
8024
8025         * version.c: Bump for snapshot.
8026
8027 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
8028
8029         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
8030         (init_lex): Initialize ridpointers[RID_BYREF].
8031         * c-lex.h (enum rid): Add RID_BYREF.
8032         * c-parse.gperf: Add RID_BYREF as a type qualifier.
8033         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
8034         (encode_type_qualifiers): Similarly
8035         * c-gperf.h: Rebuilt.
8036
8037 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
8038
8039         * c-common.c (type_for_mode): Only return TItype nodes when
8040         HOST_BITS_PER_WIDE_INT is >= 64 bits.
8041         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
8042         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
8043         (init_decl_processing): Only create TItype nodes when
8044         HOST_BITS_PER_WIDE_INT is >= 64 bits.
8045         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
8046         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
8047
8048 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8049
8050         * stmt.c (n_occurrences): New static function.
8051         (expand_asm_operands): Verify that all constrains match in the
8052         number of alternatives.
8053         Verify that '+' or '=' are at the beginning of an output constraint.
8054         Don't allow '&' for input operands.
8055         Verify that '%' isn't written for the last operand.
8056         * reload.c (find_reloads): Abort if an asm is found with invalid
8057         constraints; all possible problems ought to be checked for earlier.
8058
8059 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
8060
8061         * flags.h (flag_branch_on_count_reg): Always declare 
8062         * toplev.c (flag_branch_on_count_reg): Likewise.
8063         * toplev.c: Fix typos.
8064
8065         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
8066         (toc4x): Similarly.
8067
8068 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
8069
8070         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
8071         max_uids_for_flow.
8072         (find_basic_blocks_1): Add a nop to the end of a basic block when
8073         a trailing call insn does not have abnormal control flow.
8074         * gcse.c (pre_transpout): New variable.
8075         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
8076         (compute_pre_transpout): Calculate it.
8077         (compute_pre_ppinout): Use it to eliminate impossible placements
8078         due to abnormal control flow through calls.
8079         (compute_pre_data): Call compute_pre_transpout.
8080
8081 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8082
8083         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
8084
8085 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
8086
8087         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
8088         and matching define_insns): Tack on a `use' of the table label, so
8089         flow analysis will recognize a tablejump.
8090
8091 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
8092
8093         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
8094         always end basic blocks for abnormal edge reasons.
8095
8096 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
8097
8098         * config/i386/i386.h: Remove definition of
8099         HANDLE_PRAGMA_PACK_PUSH_POP.
8100         
8101         * config/i386/go32.h: Add definition of
8102         HANDLE_PRAGMA_PACK_PUSH_POP.
8103         
8104         * config/i386/win32.h: Add definition of
8105         HANDLE_PRAGMA_PACK_PUSH_POP.
8106         
8107         * config/i386/cygwin32.h: Add definition of
8108         HANDLE_PRAGMA_PACK_PUSH_POP.
8109
8110         * c-pragma.c (insert_pack_attributes): Do not insert
8111         attributes unless #pragma pack(push,<n>) is in effect.
8112
8113 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
8114
8115         * expr.c (emit_group_store): Handle a PARALLEL destination.
8116
8117 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
8118
8119         * gcse.c (pre_insert_insn): When a call ends a bb, insert
8120         the new insns before the argument regs are loaded.
8121
8122 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8123
8124         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
8125         (c-parse.gperf): Update comments describing invocation flags.
8126         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
8127
8128 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
8129
8130         * reload1.c (reload): Call free before clobbering the memory
8131         locations or constants pointers.
8132
8133 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8134
8135         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
8136         for efficiency by checking whether we need to modify the current
8137         stack permission at all.
8138         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
8139         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
8140         __enable_execute_stack libcall here too if
8141         TRANSFER_FROM_TRAMPOLINE is defined.
8142         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
8143         IN_LIBGCC2.
8144
8145 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
8146
8147         * Makefile.in (DRIVER_DEFINES): Remove last change.
8148         
8149 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8150
8151         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
8152         insns we're going to copy.
8153         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
8154
8155         * loop.c (count_one_set): Add prototype.
8156
8157         * caller-save.c (restore_referenced_regs): Lose mode argument.
8158         (insert_save): Lose mode argument.
8159         (insert_restore): Lose mode argument.
8160         (insert_one_insn): Lose mode argument.
8161         (save_call_clobbered_regs): Lose mode argument.
8162         (setup_save_areas): Take no argument and return void.  All callers
8163         changed.
8164         Don't verify validity of memory addresses.
8165         * reload.h (setup_save_ares): Adjust prototype.
8166         (save_call_clobbered_regs): Likewise.
8167         * reload1.c (delete_caller_save_insns): New function.
8168         (caller_save_spill_class): Delete variable.
8169         (caller_save_group_size): Delete variable.
8170         (reload): Call setup_save_areas and save_call_clobbered_regs
8171         in the main loop, before calling calculate_needs_all_insns.
8172         Don't call save_call_clobbered_regs after the loop.
8173         Call delete_caller_save_insns at the end of an iteration if
8174         something changed.
8175         Delete code to manage caller_save_spill_class.
8176         Emit the final note before setting reload_first_uid.
8177         Simplify test that determines whether reload_as_needed gets run.
8178         (calculate_needs): Delete code to manage caller_save_spill_class.
8179
8180 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
8181
8182         * collect2.c (main): Initialize ld_file_name.
8183
8184 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
8185  
8186         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
8187         check for flag_function_sections.
8188
8189 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8190
8191         * cse.c (insert_regs): Fix bug in Sep 24 change.
8192
8193 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8194
8195         * flags.h (flag_dump_unnumbered): Declare.
8196         * toplev.c (flag_dump_unnumbered): Don't declare.
8197         * print-rtl.c (flags.h): Include.
8198         (print_rtl_single): Add return value.
8199         * rtl.h (print_rtl_single): Update declaration.
8200         * flow.c (flag_dump_unnumbered): Don't declare.
8201         (print_rtl_with_bb): Use return value of print_rtl_single.
8202
8203 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8204
8205         * loop.c (count_one_set): New static function, broken out of
8206         count_loop_regs_set
8207         (count_loop_regs_set): Call it.
8208         * global.c (mark_reg_store): Handle clobbers here by not calling
8209         set_preference.
8210         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
8211         is in fact a clobber.
8212         * integrate.c (process_reg_param): New function, broken out of
8213         expand_inline_function.
8214         (expand_inline_function): Call it.
8215
8216
8217         * i386.md (addsidi3_1): Delete unused variable temp.
8218         (addsidi3_2): Likewise.
8219         (clstrstrsi): Delete unused variable addr1.
8220
8221         * rtl.h: Don't declare any functions also declared in recog.h.
8222
8223         * Makefile.in (stupid.o): Update dependencies.
8224         (global.o): Likewise.
8225
8226         * global.c: Include reload.h
8227         (reg_becomes_live): New function.
8228         (reg_dies): New function.
8229         (build_insn_chain): New function.
8230         (global_alloc): Call build_insn_chain before calling reload.
8231
8232         * reload.h (struct needs): New structure definition.
8233         (struct insn_chain): Likewise.
8234         (reload_insn_chain): Declare variable.
8235         (new_insn_chain): Declare function.
8236
8237
8238         * reload1.c (reload_startobj): New variable.
8239         (reload_insn_chain): New variable.
8240         (unused_insn_chains): New variable.
8241         (new_insn_chain): New function.
8242         (init_reload): Initialize reload_startobj, not reload_firstobj.
8243         (reload): Initialize reload_firstobj.
8244         Before returning, free everything on the reload_obstack.
8245
8246         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
8247         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
8248         current_chain): New variables.
8249         (reg_where_born): Delete variable.
8250         (REG_WHERE_BORN): New macro.
8251         (find_clobbered_regs): New function.
8252         (stupid_life_analysis): Don't allocate/free reg_where_born.
8253         Allocate and free reg_where_born_exact, reg_where_born_clobber,
8254         reg_where_dead_chain.
8255         Use REG_WHERE_BORN instead of reg_where_born.
8256         While processing the insns, build the reload_insn_chain with
8257         information about register lifetimes.
8258         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
8259         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
8260         changed.
8261         Compute and information about birth and death of pseudo registers in
8262         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
8263         Delete code to set elements of reg_where_born.  
8264
8265 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8266
8267         * tree.def (GOTO_EXPR): Modified documentation.
8268         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
8269         goto.
8270
8271 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8272
8273         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
8274         loop_final_value, loop_comparison_code): No longer static.
8275         (unroll_loop): Delete loop_start_value update.
8276         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
8277         loop_final_value, loop_comparison_code): Extern.
8278         (loop_start_value): Delete extern.
8279         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
8280         loop_comparison_value, loop_comparison_code): Delete.
8281         (loop_optimize): Remove initialization for deleted variables.
8282         (strength_reduce): Delete analyze_loop_iterations call.  Only call
8283         insert_bct if flag_branch_count_on_reg set.
8284         (analyze_loop_iterations): Delete.
8285         (insert_bct): Remove iteration count calculation.  Move checks for
8286         viable BCT optimization to here.  Obtain iteration count from
8287         loop_iterations and correct for unrolling.  Check for enough
8288         iteration to be beneficial.  Comment out runtime iteration count
8289         case.
8290         (insert_bct): Print iteration count in dump file.  Remove
8291         loop_var_mode and use word_mode directly.
8292
8293         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
8294         * rs6000.c (rs6000_override_options): Use it.
8295         (optimization_options): Enable use of flag_branch_on_count_reg.
8296         * rs6000.md (define_function_unit): Describe 604e.
8297
8298 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8299
8300         * loop.c (move_movables): Corrected threshold calculation for
8301         moved_once registers.
8302
8303 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8304
8305         * loop.c (combine_givs_p): Fix test for identical givs.
8306
8307 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
8308
8309         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
8310         call abort if the function is already defined.
8311
8312 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
8313
8314         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
8315         truncation is not a no-op.
8316
8317 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
8318
8319         * version.c: Bump for snapshot.
8320
8321 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
8322
8323         * version.c: Bump for snapshot.
8324
8325 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
8326
8327         * expmed.c (expand_divmod): Don't widen for computing remainder
8328         if we seem to have a divmod pattern for needed mode.
8329
8330 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
8331
8332         * cpplib.c (macroexpand): Correct off-by-one error in handling
8333         of escapes.
8334
8335 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
8336
8337         * combine.c (expand_field_assignment): Don't do bitwise operations
8338         on MODE_FLOAT; pun to MODE_INT if possible.
8339
8340 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
8341                           scott snyder  <snyder@d0sgif.fnal.gov>
8342
8343         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
8344         linker.  Recognize mangled names in quotes.
8345
8346 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
8347
8348         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
8349         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
8350         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
8351         (lshrsi3_extend, lshrsi3_extend2): Ditto.
8352
8353 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8354
8355         * function.c (purge_addressof_1): If trying to take a sub-word
8356         integral piece of a floating point mode, put it on the stack.
8357
8358 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
8359
8360         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
8361
8362 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
8363
8364         * PROJECTS: Remove template friends.
8365
8366         * collect2.c (sort_ids): Remove unused variable.
8367
8368         * tm.texi (MATH_LIBRARY): Document.
8369         (NEED_MATH_LIBRARY): Remove.
8370
8371         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
8372         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
8373
8374 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
8375
8376         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
8377         last_end to 0x7fffffff.
8378
8379 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8380
8381         * function.c (purge_addressof_1): Do not perform endianness
8382         corrections on bitpos, who we call will do it for us.
8383
8384 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
8385
8386         * h8300.c (WORD_REG_USED): Fix typo.
8387         (initial_offset): Use WORD_REG_USED.
8388
8389         * h8300.c (handle_pragma): Fix typo.
8390
8391 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8392
8393         * caller-save.c (insert_save_restore): Break this function up
8394         into new functions insert_restore, insert_save and insert_one_insn.
8395         All callers changed.
8396         (insert_restore): New function, mostly broken out of
8397         insert_save_restore.
8398         (insert_save): Likewise.
8399         (insert_one_insn): Likewise.
8400         (restore_referenced_regs): New argument BLOCK.  All callers changed.
8401         (save_call_clobbered_regs): Don't keep track of basic block boundaries
8402         in this function, do it in insert_one_insn instead.
8403
8404         * reload1.c (reload): Break out some more pieces into separate
8405         functions.
8406         (dump_needs): New function, broken out of reload.
8407         (set_initial_elim_offsets): Likewise.
8408         (init_elim_table): Likewise.
8409         (update_eliminables): Likewise.
8410
8411         * global.c (global_alloc): Delete code to manage the scratch_list.
8412         * local-alloc.c (qty_scratch_rtx): Delete.
8413         (scratch_block): Delete.
8414         (scratch_list): Delete.
8415         (scratch_list_length): Delete.
8416         (scratch_index): Delete.
8417         (alloc_qty_for_scratch): Delete.
8418         (local-alloc): Update initialization of max_qty.
8419         Delete code to manage the scratch list.
8420         Delete code to allocate/initialize qty_scratch_rtx.
8421         (block_alloc): Don't allocate quantities for scratches.
8422         Delete code to manage the scratch list.
8423         * regs.h (scratch_list): Delete declaration.
8424         (scratch_block): Delete declaration.
8425         (scratch_list_length): Delete declaration.
8426         * reload1.c (reload): Delete code to manage the scratch list.
8427         (spill_hard_reg): Likewise.
8428         (mark_scratch_live): Delete.
8429
8430         * recog.c (alter_subreg): Delete declaration.
8431
8432 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
8433
8434         * Makefile.in (cccp.o): Fix typo in last patch.
8435
8436 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8437
8438         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
8439         * config/sh/lib1funcs.asm (___set_fpscr): Add.
8440
8441 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
8442
8443         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
8444         NULL_RTX as an argument.
8445
8446         * Makefile.in (unlibsubdir): Define.
8447         (DRIVER_DEFINES): Use unlibsubdir.
8448         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
8449         (stmp-fixinc): Similarly.
8450
8451 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8452
8453         * regmove.c (regmove_optimize): Add variable old_max_uid.
8454         At the end of the function, update basic_block_end.
8455
8456 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8457
8458         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
8459         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
8460         arbitrary constant.
8461
8462 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
8463
8464         * config/arm/arm.c: Improve interworking support.
8465
8466 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8467
8468         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
8469         copied from reload_out[r] .
8470
8471 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
8472
8473         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
8474         with more than three size ranges.
8475
8476         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
8477
8478         * rtl.c (mode_name): Add a null string at the end of the array.
8479         (mode_wider_mode): Change type to unsigned char.
8480         (mode_mask_array): New variable.
8481         (init_rtl): Update for mode_wider_mode type change.
8482
8483         * rtl.h (mode_wider_mode): Change type to unsigned char.
8484         (mode_mask_array): Declare.
8485         (GET_MODE_MASK): Use mode_mask_array.
8486
8487 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
8488
8489         * calls.c (expand_call) : Encapsulate code into 
8490         copy_blkmode_from_reg.
8491         * expr.c (copy_blkmode_from_reg): New function.
8492         * expr.h (copy_blkmode_from_reg): New function.
8493         * integrate.c (function_cannot_inline_p): We can inline
8494         these now.
8495         (expand_inline_function): Use copy_blkmode_from_reg
8496         if needed.  Avoid creating BLKmode REGs.
8497         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
8498         object.
8499
8500 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
8501
8502         * config/v850/v850.c: Add function prototypes.
8503         Add support for v850 special data areas.
8504
8505         * config/v850/v850.h: Add support for v850 special data areas.
8506         
8507         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
8508         HANDLE_PRAGMA_PACK_PUSH_POP.
8509         (push_alignment): New function: Cache an alignment requested
8510         by a #pragma pack(push,<n>).
8511         (pop_alignment): New function: Pop an alignment from the
8512         alignment stack.
8513         (insert_pack_attributes): New function: Generate __packed__
8514         and __aligned__ attributes for new decls whilst a #pragma pack
8515         is in effect. 
8516         (add_weak): New function: Cache a #pragma weak directive.
8517         (handle_pragma_token): Document calling conventions.  Add
8518         support for #pragma pack(push,<n>) and #pragma pack (pop).
8519
8520         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
8521         are defined enable HANDLE_PRAGMA_PACK.
8522         Move 'struct weak_syms' here (from varasm.c).
8523         Add pragma states for push and pop pragmas.
8524
8525         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
8526         if it is defined.
8527
8528         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
8529         HANDLE_GENERIC_PRAGMAS.
8530         
8531         * varasm.c: Move definition of 'struct weak_syms' into
8532         c-pragma.h. 
8533         (handle_pragma_weak): Deleted.
8534
8535         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8536
8537         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
8538
8539         * c-decl.c (start_function): Add invocation of
8540         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
8541
8542         * tm.texi: Remove description of non-existant macro
8543         SET_DEFAULT_SECTION_NAME.
8544         
8545         (HANDLE_SYSV_PRAGMA): Document.
8546         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
8547
8548 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
8549
8550         * config.sub: Recognize i[34567]86-pc-udk as new target.
8551         * configure.in: Likewise.
8552         * config/i386/t-udk: New file.
8553         * config/i386/udk.h: New file.
8554
8555 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
8556
8557         * reorg.c (check_annul_list_true_false): Remove unused variables.
8558         (steal_delay_list_from_target): Add missing "used_annul" variable.
8559         (try_merge_delay_insns): Close out half formed comment.
8560
8561 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
8562
8563         * cpplib.c (macroexpand): If arg->raw_before or
8564         arg->raw_after, remove any no-reexpansion escape at the
8565         beginning of the pasted token.  Correct handling of whitespace
8566         markers and no-reexpand markers at the end if arg->raw_after.
8567
8568         * toplev.c (documented_lang_options): Recognize -include,
8569         -imacros, -iwithprefix, -iwithprefixbefore.
8570         * cpplib.c (cpp_start_read): Process -imacros and -include
8571         switches at the same time and in command-line order, after
8572         initializing the dependency-output code.  Emit properly nested
8573         #line directives for them.  Emit a #line for the main file
8574         before processing these switches, and don't do it again
8575         afterward.
8576
8577 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
8578
8579         * function.c (purge_addressof_1): Use bitfield manipulation
8580         routines to handle mem mode < reg mode.
8581
8582 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
8583
8584         * reorg.c (try_merge_delay_insns): Account for resources referenced
8585         in each instruction in INSN's delay list before trying to eliminate
8586         useless instructions.  Similarly when looking at a trial insn's delay
8587         slots.
8588
8589         * reorg.c (check_annul_list_true_false): New function.
8590         (steal_delay_list_from_{target,fallthrough}): Call it and also
8591         refine tests for when we may annul if already filled a slot.
8592         (fill_slots_from_thread): Likewise.
8593         (delete_from_delay_slot): Return newly-created thread.
8594         (try_merge_delay_isns): Use its new return value.
8595
8596 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
8597
8598         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
8599         used to compute a giv or as some other non-counting use.
8600
8601 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8602
8603         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
8604         * local-alloc.c (find_free_reg): Use it.
8605         * global.c (find_reg): Likewise.
8606         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
8607
8608         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
8609         * caller-save.c (init_caller_save): Use it.
8610         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
8611
8612 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
8613
8614         * configure.in: Add --enable-cpplib option which uses cpplib
8615         for cpp, but doesn't link cpplib into cc1.  Make help text
8616         capitalization consistent.
8617         * configure: Rebuilt.
8618
8619 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
8620
8621         * function.c (gen_mem_addressof): If the address REG is
8622         REG_USERVAR_P make the new REG be so also.
8623         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
8624         in an attempt to clarify slightly.
8625
8626 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
8627
8628         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
8629         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
8630
8631 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
8632
8633         * toplev.c:  Fix last patch.
8634
8635 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
8636
8637         * loop.c (get_condition): Fix typo in May 9 change.
8638
8639 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8640
8641         * invoke.texi (-fexceptions): Merge 2 different descriptions.
8642
8643 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8644
8645         * toplev.c (documented_lang_options): Spelling corrections.
8646
8647 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8648
8649         * configure.in: new flags --with-ld and --with-as, equivalent
8650         to setting LD and AS environment variables.  Test whether
8651         specified arguments are GNU commands, and report them with
8652         checking messages.  Use the specified AS for configure
8653         tests too.
8654         * configure: ditto
8655         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
8656         * config.in: ditto
8657         * gcc.c (find_a_file): when looking for `as' and `ld', return
8658         the DEFAULT program if it exists
8659         * collect2.c (main): use DEFAULT_LINKER if it exists
8660
8661         * gcc.c (find_a_file): the test for existence of a full
8662         pathname was reversed
8663
8664 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
8665
8666         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
8667         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
8668
8669 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
8670
8671         * tree.h (TYPE_BINFO): Document.
8672
8673 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
8674
8675         * i386-coff.h (dbxcoff.h): Added.
8676
8677 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
8678
8679         * toplev.c:  fix bad patch around flag_data_sections.
8680
8681 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
8682
8683         * reload1.c (reload): Use reload_address_index_reg_class and 
8684         reload_address_base_reg_class when setting
8685         caller_save_spill_class.  (Patch generated by Jim Wilson:
8686         wilson@cygnus.com).
8687
8688 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
8689
8690         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
8691         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
8692         * expr.c (store_field): Add alias_set parameter.  Set the
8693         MEM_ALIAS_SET accordingly, if the target is a MEM.
8694         (expand_assignment): Use it.
8695         (store_constructor_field): Pass 0.
8696         (expand_expr): Likewise.
8697
8698 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
8699  
8700         * flags.h:  Add flag_data_sections.
8701         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
8702         (compile_file):  Error if flag_data_sections not supported.
8703         * varasm.c (assemble_variable):  Handle flag_data_sections.
8704         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
8705         * config/mips/elf.h:  Likewise.
8706         * config/mips/elf64.h:  Likewise.
8707         * invoke.texi:  Describe -fdata-sections.
8708  
8709 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
8710
8711         * invoke.texi (-ffloat-store): Clarify that this option
8712         does not affect intermediate results -- only variables.
8713
8714 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
8715
8716         * cpp.texi: Update for Fortran usage from Craig.
8717
8718 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8719
8720         * rs6000.c (function_arg_boundary): Revert accidental change on
8721         September 18.
8722
8723 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
8724
8725         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
8726         (output_mi_thunk): Declare.
8727
8728         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
8729         (output_function_profiler): Use r12 for temp, instead of r11 so
8730         that we preserve the static chain register.
8731         
8732 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
8733
8734         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
8735
8736 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8737
8738         * sh.c (gen_shl_sext): Fix case 5.
8739
8740 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8741
8742         * reload1.c (reload_combine): Re-add line that got accidentally lost.
8743
8744 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8745
8746         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
8747         accessing variables until they are initialized via va_arg().
8748
8749 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8750
8751         * reload1.c (reload_combine): Initialize set before using.
8752
8753 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
8754
8755         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
8756         won't be emitting.
8757
8758 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
8759
8760         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
8761         operand3 with mask before using it.  Patch provided by Jim Wilson.
8762
8763 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
8764
8765         * config/sparc/sparc.c (function_value): Perform the equivalent of
8766         PROMOTE_MODE for ARCH64.
8767         (eligible_for_epilogue_delay): Allow DImode operations in delay
8768         slot of a return for ARCH64.
8769
8770 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8771
8772         * sh.md (sqrtsf2): Fix mode of sqrt.
8773
8774 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8775
8776         * reload1.c (choose_reload_regs): Also try inheritance when
8777         reload_in is a stack slot of a pseudo, even if we already got a
8778         reload reg.
8779
8780 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8781
8782         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
8783         (reload_cse_regs): New function body: call reload_cse_regs_1,
8784         reload_combine, reload_cse_move2add.
8785         When doing expensive_optimizations, call reload_cse_regs_1 a
8786         second time after reload_cse_move2add.
8787         (reload_combine, reload_combine_note_store): New functions.
8788         (reload_combine_note_use): New function.
8789         (reload_cse_move2add, move2add_note_store): New functions.
8790
8791 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8792
8793         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
8794         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
8795
8796         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
8797         more than 3 such reloads.
8798
8799         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
8800         RELOAD_FOR_X_ADDR_ADDR reload.
8801
8802 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8803
8804         * expr.c (store_constructor): When initializing a field that is smaller
8805         than a word, at the start of a word, try to widen it to a full word.
8806
8807         * cse.c (cse_insn): When we are about to change a register,
8808         remove any invalid references to it.
8809
8810         (remove_invalid_subreg_refs): New function.
8811         (mention_regs): Special treatment for SUBREGs.
8812         (insert_regs): Don't strip SUBREG for call to mention_regs.
8813         Check if reg_tick needs to be bumped up before that call.
8814         (lookup_as_function): Try to match known word_mode constants when
8815         looking for a norrower constant.
8816         (canon_hash): Special treatment for SUBREGs.
8817
8818 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8819
8820         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
8821         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
8822         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
8823         and offsets in actual stack trampoline code so they match the
8824         commentary and actually work.
8825
8826 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
8827
8828         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
8829         tmake_file.
8830         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
8831         tmake_file.  Set extra_parts to needed crt objects.
8832         * configure: Rebuilt.
8833         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
8834         (TARGET_DEFAULT): Set if default is v9 or ultra.
8835         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
8836         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
8837         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
8838         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
8839         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
8840         (TARGET_VERSION): Define.
8841         (MULTILIB_DEFAULT): Define.
8842         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
8843         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
8844         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
8845         appropriately.
8846         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
8847         * config/sparc/sparc.c (sparc_override_options): If arch and
8848         pointer size disagree, emit diagnostic and fix it up.  If
8849         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
8850         V8PLUS in 64-bit mode.
8851         * config/sparc/t-linux64: New file.
8852         * config/sparc/t-sol2-64: New file.
8853         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
8854         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
8855         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
8856         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
8857         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
8858         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
8859         Define.
8860         (STARTFILE_SPEC): Set approriately based upon those.
8861         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
8862         disposition of DEFAULT_ARCH32_P.
8863         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
8864         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
8865         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
8866         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
8867         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
8868         arch64/v9.
8869         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
8870         
8871 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
8872
8873         * rtl.h (init_virtual_regs): New function.
8874         * emit-rtl.c (init_virtual_regs): Define.
8875         (insn_emit): Use it.
8876         * integrate.c (save_for_inline_copying): Likewise.
8877
8878 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
8879
8880         * config/arm/thumb.h: The following patches were made by Jim Wilson:
8881         (enum reg_class): Add NONARG_LO_REGS support.
8882         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
8883         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
8884         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
8885         completes.  Re-enable HImode REG+OFFSET addresses.
8886         (LEGITIMIZE_RELOAD_ADDRESS): Define.
8887
8888         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
8889
8890 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
8891
8892         * alpha.c (get_aligned_mem): Revert Sep 20 change.
8893         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
8894         (alpha_align_insns): Properly calculate initial offset wrt max_align.
8895
8896 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
8897
8898         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
8899         jumps as a single entity, taking into account the size of the
8900         table.
8901
8902 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8903
8904         * tree.def (SWITCH_EXPR): New tree node definition.
8905
8906 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
8907
8908         * version.c: Bump for snapshot.
8909
8910 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
8911
8912         * version.c: Bump for snapshot.
8913
8914 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
8915
8916         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
8917         NetBSD.
8918
8919 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
8920
8921         * Revert this patch.
8922         * reload.c (find_reloads): Do not replace a pseudo with
8923         (MEM (reg_equiv_addr)) in the initializing insn for the
8924         pseudo.
8925
8926 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
8927
8928         * final.c (final_scan_insn): Disable tracking CC across branches.
8929
8930 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
8931
8932         * expr.h (eh_rtime_match_libfunc): New extern declaration.
8933         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
8934         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
8935         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
8936         NULL. Only include <stdio.h> if inhibit_libc is not defined.
8937
8938 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
8939
8940         * toplev.c (rest_of_compilation): Skip compiling anything with
8941         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
8942
8943 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
8944
8945         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
8946         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
8947         use in_libcall_block.
8948         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
8949         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
8950         to INSN.
8951
8952 Mon Sep 21 14:02:23 1998
8953
8954         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
8955         typo in no-fancy-math-387 description.
8956
8957 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
8958
8959         * version.c: Bump for snapshot.
8960
8961 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
8962
8963         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
8964
8965 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
8966
8967         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
8968         documented in install.texi.
8969         (TARGET_OPTIONS) Likewise.
8970
8971 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
8972
8973         * version.c: Bump for snapshot.
8974
8975 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
8976
8977         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
8978         * cccp.c (main): Likewise.
8979
8980         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
8981         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
8982         macro-use bugs.
8983
8984 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
8985
8986         * Makefile.in (LIBS):  Link in libiberty.a.
8987         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
8988
8989 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
8990
8991         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
8992         it to update bb boundaries.  Update caller.
8993         * function.c (reposition_prologue_and_epilogue_notes): Update
8994         bb boundaries wrt the moved note.
8995
8996 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
8997         
8998         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
8999         problems.
9000         * configure: Regenerate.
9001
9002 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
9003
9004         * alpha.c (alpha_sr_alias_set): New variable.
9005         (override_options): Set it.
9006         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
9007         (mode_mask_operand): Fix signed-unsigned comparision warning.
9008         (alpha_expand_block_move): Likewise.
9009         (print_operand): Likewise.
9010         (get_aligned_mem): Use change_address.
9011         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
9012         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
9013         (alphaev4_next_nop, alphaev5_next_nop): New functions.
9014         (alpha_align_insns): Remade from old alphaev5_align_insns
9015         to handle multiple processors.
9016         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
9017         * output.h (label_to_alignment): Prototype.
9018
9019         * tree.c (new_alias_set): New function.
9020         * tree.h (new_alias_set): Declare it.
9021         * c-common.c (c_get_alias_set): Use it.
9022
9023 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
9024
9025         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
9026         to an ABS expr, convert an unsigned input to signed.
9027         
9028 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
9029
9030         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
9031
9032 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9033
9034         * configure.in: Add support for c4x targets.
9035         * configure: Rebuilt.
9036
9037 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
9038
9039         * combine.c (distribute_notes): If an insn is a cc0 user, only
9040         delete it if we can also delete the cc0 setter.
9041
9042 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
9043
9044         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
9045         (invert_truthvalue): Enable truthvalue inversion for
9046         floating-point operands if -ffast-math.
9047
9048 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
9049                          
9050         * configure.in: Disable collect2 for nextstep.  Instead use
9051         crtbegin/crtend.
9052         * configure: Rebuilt.
9053         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
9054         (ENDFILE_SPEC): Define.
9055         (OBJECT_FORMAT_MACHO): Define.
9056         (EH_FRAME_SECTION_ASM_OP): Define.
9057         * crtstuff.c: Handle MACHO.
9058
9059 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
9060
9061         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
9062
9063 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
9064
9065         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
9066         (_fpadd_parts): Get sign right for 0.
9067
9068 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9069
9070         * ginclude/varargs.h: Add support for C4x target.
9071         * ginclude/stdargs.h: Likewise.
9072
9073 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
9074
9075         * alpha.c (alpha_return_addr): SET should be VOIDmode.
9076         (alpha_emit_set_long_const): Rewrite to be callable from reload
9077         and 32-bit hosts.
9078         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
9079         * alpha.md (movdi): Likewise.
9080
9081 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
9082
9083         * arm.c (add_constant): New parameter address_only, change caller.
9084         Set it non-zero if taking the address of an item in the pool.
9085         (arm_reorg): Handle cases where we need the address of an item in
9086         the pool.
9087
9088         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
9089         a memory address.
9090         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
9091         memory addresses that are not in standard canonical form.
9092
9093 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
9094
9095         * README.C4X: New file with information about the c4x ports.
9096         * ginclude/va-c4x.h: New file for c4x varargs support.
9097         * config/c4x: New directory with c4x port files.
9098
9099 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
9100
9101         * reload.c (find_reloads): Do not replace a pseudo with 
9102         (MEM (reg_equiv_addr)) in the initializing insn for the
9103         pseudo.
9104
9105 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9106
9107         * toplev.c (rest_of_compilation): Set bct_p on second call to
9108         loop_optimize.
9109         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
9110         bct_p.
9111         (strength_reduce): Only call analyze_loop_iterations and
9112         insert_bct if bct_p set.
9113         (check_dbra_loop): Fix typo.
9114         (insert_bct): Use word_mode instead of SImode.
9115         (instrument_loop_bct): Likewise.  Do not delete iteration count
9116         condition code generation insn.  Initialize iteration count before
9117         loop start.
9118         * rtl.h (loop_optimize): Update prototype.
9119
9120         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
9121         not doubleword aligned.
9122
9123         * rs6000.c (optimization_options): New function.
9124         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
9125         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
9126         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
9127         first; cr1 can be used for FP record condition insns.
9128
9129 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
9130
9131         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
9132         PREDICATE_CODES.
9133
9134         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
9135         patterns.
9136
9137         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
9138         operators.
9139         (block_move_call): New function: Call a library routine to copy a
9140         block of memory.
9141         (m32r_expand_block_move): New function: Expand a "movstrsi"
9142         pattern into a sequence of insns.
9143         (m32r_output_block_move): New function: Expand a
9144         "movstrsi_internal" pattern into a sequence of assembler opcodes.
9145         (m32r_block_immediate_operand): New function: Return true if the
9146         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
9147         
9148 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
9149
9150         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
9151         re-align some code.
9152         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
9153
9154 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9155
9156         * regmove.c (copy_src_to_dest): Check that modes match.
9157
9158 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
9159
9160         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
9161
9162 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
9163
9164         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
9165         narrower than FLOAT_REGS.
9166
9167 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9168
9169         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
9170         * cccp.c: ditto
9171         * Makefile.in (old_gxx_include_dir): removed
9172
9173 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
9174
9175         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
9176         new specification.
9177
9178         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
9179         (sh_handle_pragma): Change function arguments to match new
9180         specification for HANDLE_PRAGMA. 
9181
9182 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9183
9184         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
9185         `unsigned char'.
9186         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
9187         When generating output, initialize missing struct member to zero.
9188
9189 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9190
9191         * regmove.c (copy_src_to_dest): Don't copy if that requires
9192         (a) new register(s).
9193
9194 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9195
9196         * global.c (reg_allocno): Now static.
9197         * reload1.c (reg_allocno): Delete declaration.
9198         (order_regs_for_reload): Take no arguments.  Don't treat regs
9199         allocated by global differently than those allocated by local-alloc.
9200
9201 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
9202
9203         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
9204         condition, fix format strings.
9205         (output_function_epilogue): Likewise.
9206
9207         * m68k/m68k.c: Don't include <stdlib.h> directly.
9208
9209 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
9210
9211         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
9212         mem_first_set, mem_last_set; because 0 can be a CUID.
9213         (oprs_unchanged_p): Use new definition.
9214         (record_last_reg_set_info): Likewise.
9215         (record_last_mem_set_info): Likewise.
9216         (compute_hash_table): Likewise.
9217
9218 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
9219
9220         * rs6000.c (output_epilogue): Handle Chill.
9221
9222         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
9223         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
9224
9225         * combine.c (make_extraction): If no mode is specified for
9226         an operand of insv, extv, or extzv, default it to word_mode.
9227         (simplify_comparison): Similarly.
9228         * expmed.c (store_bit_field): Similarly.
9229         (extract_bit_field): Similarly.
9230         * function.c (fixup_var_regs_1): Similarly.
9231         * recog.c (validate_replace_rtx_1): Similarly.
9232         * mips.md (extv, extzv, insv expanders): Default modes for most
9233         operands.  Handle TARGET_64BIT.
9234         (movdi_uld, movdi_usd): New patterns.
9235
9236         * pa.c (emit_move_sequence): Do not replace a pseudo with its
9237         equivalent memory location unless we have been provided a scratch
9238         register.  Similarly do not call find_replacement unless a
9239         scratch register has been provided.
9240
9241 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9242
9243         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
9244         return FLOAT_REGS.
9245
9246 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
9247
9248         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
9249         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
9250         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
9251         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
9252         * c-decl.c (init_decl_processing): Update accordingly.
9253         * expr.c (expand_builtin): Likewise.
9254
9255         * rtl.h (global_rtl): Add cfa entry.
9256         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
9257         (LAST_VIRTUAL_REGISTER): Update.
9258         * emit-rtl.c (global_rtl): Add cfa entry.
9259         (init_emit): Initialize it.
9260         * function.c (cfa_offset): New.
9261         (instantiate_virtual_regs): Initialize it.
9262         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
9263         (expand_function_end): Call expand_eh_return.
9264         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
9265
9266         * except.c (current_function_eh_stub_label): Kill.
9267         (current_function_eh_old_stub_label): Likwise; update all references.
9268         (expand_builtin_set_return_addr_reg): Kill.
9269         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
9270         (expand_builtin_set_eh_regs): Kill.
9271         (eh_regs): Produce a third reg for the actual handler address.
9272         (eh_return_context, eh_return_stack_adjust): New.
9273         (eh_return_handler, eh_return_stub_label): New.
9274         (init_eh_for_function): Initialize them.
9275         (expand_builtin_eh_return, expand_eh_return): New.
9276         * except.h: Update prototypes.
9277         * flow.c (find_basic_blocks_1): Update references to the stub label.
9278         * function.h (struct function): Kill stub label elements.
9279
9280         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
9281         register number is one that would be in the previous window.
9282         Provide a dummy definition for non-windowed targets.
9283         (get_reg_addr): New function.
9284         (get_reg, put_reg, copy_reg): Use it.
9285         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
9286         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
9287
9288         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
9289         (alpha_init_expanders): Initialize it.
9290         (alpha_expand_epilogue): Use it.
9291         * alpha.h: Declare it.
9292         * alpha.md (eh_epilogue): New.
9293
9294         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
9295         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
9296
9297 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
9298
9299         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
9300         flag bit mask.
9301
9302 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
9303
9304         * except.h (struct eh_entry): Add false_label field.
9305         (end_catch_handler): Add prototype.
9306         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
9307         (start_catch_handler): When using old style exceptions, issue
9308         runtime typematch code before continuing with the handler.
9309         (end_catch_handler): New function, generates label after handler
9310         if needed by older style exceptions.
9311         (expand_start_all_catch): No need to check for new style exceptions.
9312         (output_exception_table_entry): Only output the first handler label
9313         for old style exceptions.
9314         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
9315         mechanism into one function, if a runtime matcher is provided.
9316
9317 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
9318
9319         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
9320
9321 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
9322
9323         * integrate.c (copy_decl_list): Fix typo.
9324
9325 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9326
9327         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
9328         attribute.
9329
9330 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
9331
9332         * version.c: Bump for snapshot.
9333
9334 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
9335
9336         * version.c: Bump for snapshot.
9337
9338 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
9339
9340         * version.c: Bump for snapshot.
9341
9342 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9343
9344         * invoke.texi (C Dialect Options): Put back missing @end itemize.
9345
9346 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9347
9348         * configure.in: remove usage of `!' to negate the result of a
9349         command; some common shells do not support it
9350
9351 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9352
9353         * configure.in: in sparc9-sol2 config, use 'if test' not
9354         brackets.
9355         * configure: Rebuilt.
9356
9357         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
9358         CM_MEDANY.
9359         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
9360         (CPP_CPU_DEFAULT_SPEC): Likewise.
9361         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
9362         for arch64 libfuncs.
9363         
9364         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
9365         for operand zero.
9366
9367 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9368
9369         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
9370
9371         * collect2.c: Don't declare `sys_siglist' here.
9372         (my_strsignal): Prototype and define new function.  Use it in
9373         place of `sys_siglist' hacks.
9374
9375         * mips_tfile.c:  Likewise.
9376
9377         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
9378         (GCC_NEED_DECLARATIONS): Likewise.
9379
9380         * system.h (strsignal): Prototype it, if necessary.
9381         (sys_siglist): Declare it, if necessary.
9382
9383 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9384
9385         * loop.c (move_movables): While removing insn sequences, preserve
9386         the next pointer of the most recently deleted insn when we skip
9387         over a NOTE.
9388
9389 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
9390
9391         * objc/config-lang.in: Do not output the name of the selected
9392         thread file when building the front-end.  The Makefile for the
9393         runtime library will do this.
9394
9395         * objc/Make-lang.in: Do not build the runtime library or install
9396         the Objective C header files.  The Makefile for the runtime
9397         library will do this.
9398
9399         * objc/Makefile.in (all.indirect): Only build the front-end.
9400         (compiler): Rename to `frontend'.
9401         (obj-runtime): Remove target.
9402         (copy-headers): Likewise.
9403         (clean): No need to remove `libobjc.a' any longer.
9404
9405 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
9406
9407         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
9408         supported with -mcpu=xxx.
9409
9410 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9411
9412         * flow.c (mark_set_1): Recognize multi-register structure return
9413         values in CALL insns.
9414         (mark_used_regs): Likewise.
9415         (count_reg_sets_1): Likewise.
9416         (count_reg_references): Likewise.
9417         * rtlanal.c (note_stores): Likewise.
9418         (reg_overlap_mentioned_p): Likewise.
9419         * haifa-sched.c (check_live_1): Likewise.
9420         (update_live_1): Likewise.
9421         (sched_analyze_1): Likewise.
9422         (sched_note_set): Likewise.
9423         (birthing_insn_p): Likewise.
9424         (attach_deaths): Likewise.
9425
9426         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
9427
9428
9429 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
9430
9431         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
9432
9433 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9434
9435         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
9436
9437 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9438
9439         * configure.in: Add check for GAS subsection -1 support.
9440         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
9441         * configure config.in: Rebuilt.
9442         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
9443         SImode is subsection -1 works, else use DImode.
9444         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
9445         subsection -1 works.
9446         * config/sparc/sparc.c (sparc_output_addr_vec,
9447         sparc_output_addr_diff_vec): Use them if defined.
9448
9449 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
9450
9451         * tree.h (DECL_ORIGIN): New macro.
9452         * integrate.c (copy_and_set_decl_abstract_origin): New function.
9453         (copy_decl_list): Use it.
9454         (integrate_parm_decls): Likewise.
9455         (integrate_decl_tree): Likewise.
9456         * dwarf2out.c (decl_ultimate_origin): Simplify.
9457         * dwarfout.c (decl_ultimate_origin): Likewise.
9458         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
9459         (pushdecl): Likewise.
9460
9461 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
9462
9463         * config/rs6000/rs6000.c (output_epilog): Add Java support.
9464
9465 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
9466
9467         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
9468
9469 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
9470
9471         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
9472         empty or has a single entry.
9473
9474         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
9475         before calling reg_to_stack.
9476
9477 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
9478
9479         * alpha.c (alphaev5_insn_pipe): Abort on default case.
9480         (alphaev5_next_group): Swallow CLOBBERs and USEs.
9481
9482         * c-tree.h (warn_long_long): Declare it.
9483
9484 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
9485
9486         * emit-rtl.c (gen_lowpart_common): Disable optimization of
9487         initialized float-int union if the value is a NaN.
9488
9489 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
9490
9491         * c-lex.c (real_yylex): Don't warn about long long constants if 
9492         we're allowing long long
9493
9494 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9495
9496         * except.h (current_function_eh_stub_label): Declare.
9497         (current_function_eh_old_stub_label): Declare.
9498         * function.h (struct function): New members eh_stub_label and
9499         eh_old_stub_label.
9500         * except.c (current_function_eh_stub_label): New variable.
9501         (current_function_eh_old_stub_label): New variable.
9502         (init_eh_for_function): Clear them.
9503         (save_eh_status): Save them.
9504         (restore_eh_status): Restore them.
9505         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
9506         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
9507         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
9508         make an edge from the block that contains it to the block starting
9509         with the label if this label is one of the eh stub labels.
9510         If eh stub labels exist, show they are reachable from the last block
9511         in the function.
9512
9513         * reload1.c (reload): Break out several subroutines and make some
9514         variables global.
9515         (calculate_needs_all_insns): New function, broken out of reload.
9516         (calculate_needs): Likewise.
9517         (find_reload_regs): Likewise.
9518         (find_group): Likewise.
9519         (find_tworeg_group): Likewise.
9520         (something_needs_reloads): New global variable, formerly in reload.
9521         (something_needs_elimination): Likewise.
9522         (caller_save_spill_class): Likewise.
9523         (caller_save_group_size): Likewise.
9524         (max_needs): Likewise.
9525         (group_size): Likewise.
9526         (max_groups): Likewise.
9527         (max_nongroups): Likewise.
9528         (group_mode): Likewise.
9529         (max_needs_insn): Likewise.
9530         (max_groups_insn): Likewise.
9531         (max_nongroups_insn): Likewise.
9532         (failure): Likewise.
9533
9534         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
9535
9536 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
9537
9538         * loop.c (load_mems): Copy rtx for output mem.
9539
9540 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
9541
9542         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
9543         mips1 or mips2 either.
9544
9545 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
9546
9547         * pa.c (pa_reorg): New marking scheme for jumps inside switch
9548         tables.
9549         (pa_adjust_insn_length): Update to work with new marking scheme
9550         for jumps inside switch tables. 
9551         * pa.md (switch_jump): Remove pattern.
9552         (jump): Handle jumps inside jump tables.
9553
9554         * Makefile.in (profile.o): Depend on insn-config.h
9555
9556 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
9557
9558         * iris6.h (DWARF2_UNWIND_INFO): Undef.
9559
9560 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9561
9562         Add preliminary native sparcv9 Solaris support.
9563         * configure.in: Recognize sparv9-*-solaris2*
9564         * configure: rebuilt
9565         * config.sub: Recognize sparcv9 just like sparc64.
9566         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
9567         config/sparc/sol2-cn.asm: Macroize so it can be shared between
9568         32-bit and 64-bit Solaris systems.
9569         * config/sparc/t-sol2: Assemble those with cpp.
9570         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
9571         (*TF*_LIBCALL): If ARCH64 use V9 names.
9572         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
9573
9574 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9575
9576         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
9577         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
9578         not doing pic.
9579         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
9580         Pmode.
9581         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
9582         to Pmode if CASE_VECTOR_MODE is something else.
9583
9584 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
9585
9586         * prefix.c (update_path): Correctly handle cases where PATH is
9587         a substring of the builtin prefix, but specifies a different
9588         directory location.
9589
9590 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
9591
9592         * expr.c: Corrected comment about what MOVE_RATIO does.
9593         * config/alpha/alpha.h: Ditto.
9594         * config/1750a/1750a.h: Ditto.
9595         * config/clipper/clipper.h: Ditto.
9596         * config/i386/i386.h: Ditto.
9597
9598 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
9599
9600         * configure.in (m68k-next-nextstep3*): Use collect2.
9601         Similarly for x86 NeXT configurations.
9602         * configure: Rebuilt.
9603
9604 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
9605
9606         * configure.in: Don't assume srcdir is .../gcc
9607         * configure: Rebuilt.
9608
9609 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
9610
9611         * global.c: Update comments.
9612         (global_alloc): Assign allocation-numbers
9613         even for registers allocated by local_alloc in case
9614         they are later spilled and retry_global_alloc is called.
9615         (mark_reg_store, mark_reg_clobber,
9616         mark_reg_conflicts, mark_reg_death): Always record a
9617         conflict with a pseudo register even if it has been
9618         assigned to a hard register.
9619         (dump_conflicts): Don't list pseudo registers already assigned to
9620         a hard register as needing to be allocated, but do list their
9621         conflicts.
9622         * local-alloc.c: Update comment.
9623
9624 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
9625
9626         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
9627         * configure: Rebuilt.
9628
9629 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
9630
9631         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
9632         missing 'c'.
9633         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
9634         for all targets that set -msoft-float.
9635
9636 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9637
9638         * toplev.c (print_switch_values): Make static to match prototype.
9639
9640 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
9641
9642         * configure.in: If we are unable to find the "gnatbind" program,
9643         then do not configure the ada subdir.
9644         * configure: Rebuilt.
9645
9646 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
9647
9648         * version.c: Bump for snapshot.
9649
9650 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
9651
9652         * version.c: Bump for snapshot.
9653
9654 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9655
9656         * Makefile.in (toplev.o): Depend on $(EXPR_H).
9657         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
9658
9659         * gansidecl.h: Define ATTRIBUTE_NORETURN.
9660
9661         * genattrtab.c: Have insn-attrtab.c include toplev.h.
9662
9663         * genextract.c: Have insn-extract.c include toplev.h.
9664
9665         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
9666
9667         * toplev.c: Include expr.h.
9668         (really_sorry, fancy_abort): Remove prototypes.
9669         (set_target_switch): Add argument in prototype.
9670         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
9671         (v_really_sorry): Likewise.
9672         (print_version, print_single_switch, print_switch_values): Make
9673         static and add prototype arguments.
9674         (decl_printable_name): Add prototype arguments.
9675         (lang_expand_expr_t): New typedef.
9676         (lang_expand_expr): Declare as a lang_expand_expr_t.
9677         (incomplete_decl_finalize_hook): Add prototype argument.
9678         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
9679         (botch): Likewise for variable `s'.
9680         (rest_of_type_compilation): Mark variables `type' and `toplev'
9681         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
9682         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
9683         (display_help): Make variable `i' an `unsigned long'.
9684         (main): Remove unused parameter `envp'.
9685         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
9686         Cast -1 when comparing it with a `size_t'.
9687
9688         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
9689         prototype with ATTRIBUTE_NORETURN.
9690         (fatal_insn_not_found, fatal_insn, really_sorry,
9691         push_float_handler, pop_float_handler): Add prototypes.
9692         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
9693         (do_abort, botch): Add prototypes.
9694         
9695 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
9696
9697         * final.c (final): If a label is reached only from a single jump,
9698         call NOTICE_UPDATE_CC on the jump and its predecessor before
9699         emitting the insn after the label.
9700         
9701         * i386.h: Add AMD K6 support.
9702         Change TARGET_* macros to use table lookup.
9703         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
9704         (ADJUST_COST): Change definition to call function in i386.c.
9705         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
9706         * i386.c: Add AMD K6 support.
9707         Add constants for feature tests used by TARGET_* macros.
9708         (split_di): If before reload, call gen_lowpart and gen_highpart.
9709         (x86_adjust_cost): New function.
9710         (put_jump_code): New function.
9711         (print_operand): New codes 'D' and 'd'.
9712         * i386.md: New insn types.  New insn attribute "memory".
9713         Redefine scheduling parameters to use new types and add AMD K6
9714         support.  Explicitly set type of most insns.
9715         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
9716         Pro and K6 prefer movl $1,reg to incl reg.
9717         (adddi3, subdi3): Set cc_status.
9718         (DImode shift patterns): Change label counters from HOST_WIDE_INT
9719         to int; x86 can't have more than 2^31 DImode shifts per file.
9720         (setcc): Combine all setcc patterns.  Allow writing memory.
9721         Combine all jump patterns using match_operator.
9722         (*bzero): Name pattern.  Emit mutliple stos instructions when that
9723         is faster than rep stos.
9724         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
9725         add define_split.
9726
9727 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
9728
9729         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
9730         linking.
9731
9732 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
9733
9734         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
9735         not whatever we're generating now.
9736
9737         * alpha.c (set_frame_related_p, FRP): New.
9738         (alpha_expand_prologue): Mark frame related insns.
9739         (alpha_expand_epilogue): Likewise, but with a null FRP.
9740         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
9741         * alpha.md (exception_receiver): New.
9742         * alpha/crtbegin.asm (.eh_frame): New beginning.
9743         (__do_frame_setup, __do_frame_takedown): New.
9744         * alpha/crtend.asm (.eh_frame): New ending.
9745         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
9746         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
9747         (ASM_FILE_START): Don't emit .file for dwarf2.
9748
9749         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
9750         * rtl.c (reg_note_name): Likewise.
9751         * rtl.texi (REG_NOTES): Likewise.
9752         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
9753         without an offset.
9754
9755 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
9756
9757         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
9758         * i386.md (movsf, movdf, movxf): Validate memory address returned
9759         from force_const_mem.  Kill useless REG_EQUAL setting code.
9760
9761 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
9762
9763         * m68k.md (zero_extendsidi2): Fix typo.
9764
9765 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
9766
9767         * configure.in: Removed references to the removed file
9768         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
9769         * arm*-*-netbsd* and ns32k-*-netbsd*.
9770         * config/i386/xm-netbsd.h: Removed unnecessary file.
9771         * config/m68k/xm-netbsd.h: Likewise.
9772         * config/sparc/xm-netbsd.h: Likewise.
9773         * config/mips/xm-netbsd.h: Likewise.
9774
9775 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
9776
9777         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
9778         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
9779
9780         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
9781         for exact section attributions.
9782
9783         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
9784         runtime.
9785         * i386/crtdll.h (CPP_PREDEFINES): Define.
9786
9787 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
9788
9789         * m68k.md (5200 movqi): Do not allow byte sized memory references
9790         using address regs.
9791         * m68k.c (output_move_qimode): Do not use byte sized operations on
9792         address registers.
9793
9794         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
9795         explicit rules for building.  Similarly for alloca, vfprintf,
9796         choose-temp and mkstemp, getopt, getopt1, and obstack.
9797         (INCLUDES): Add $(srcdir)/../include.
9798         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
9799         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
9800
9801 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
9802
9803         * gcc.c (do_spec_1): [case 'o'] Account for
9804         lang_specific_extra_outfiles.
9805         (main): Correctly clear all slots in outfiles for
9806         lang_specific_extra_outfiles.  Set input_file_number before
9807         calling lang_specific_pre_link.
9808
9809 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
9810
9811         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
9812
9813 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9814
9815         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
9816         cases, use xword.
9817         (sparc_output_deferred_case_vectors): If no work to do, return.
9818         Fix thinko in Sept 1 change.
9819
9820 1998-09-03  SL Baur  <steve@altair.xemacs.org>
9821
9822         * Makefile.in: add semicolon in BISON definition for portability.
9823
9824 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
9825
9826         * config/nextstep.c (handle_pragma): Correct name of third
9827         argument.
9828
9829 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
9830
9831         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
9832         * config/m32r/m32r.h: Make register 17 be fixed.
9833         * config/m32r/m32r.c: Use SImode for cc operations.
9834
9835 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
9836
9837         * invoke.texi (Warning Options): Add -Wnon-template-friend
9838         documentation.
9839
9840 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
9841
9842         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
9843
9844 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
9845
9846         * rs6000.md (movsf): Disable explicit secondary-reload-like
9847         functionality if TARGET_POWERPC64.
9848         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
9849         functionality.
9850
9851 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
9852
9853         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
9854         and term.h from fixinc.wrap.
9855
9856 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9857
9858         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
9859         safe to include both string.h and strings.h together.
9860         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
9861         which headers to search for function declarations.  Continue to
9862         prefer string.h over strings.h when both are not acceptable.
9863
9864         * acconfig.h (STRING_WITH_STRINGS): Add stub.
9865
9866         * configure.in: Call GCC_HEADER_STRING.
9867
9868         * system.h: Test STRING_WITH_STRINGS when deciding which headers
9869         to include.  Continue to prefer string.h over strings.h when both
9870         are not acceptable.
9871
9872 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9873
9874         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
9875         not assume top 32-bits of symbolic addresses are zero if
9876         flag_pic.
9877
9878 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
9879
9880         * ginclude/va-alpha.h: Protect entire second portion of the
9881         file against double inclusion.
9882
9883 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
9884
9885         Added support for the Boehm's garbage collector.
9886         * configure.in: Handle --enable-objc-gc.
9887         * configure: Rebuilt.
9888         * Makefile.in (CHECK_TARGETS): Add check-objc.
9889         (check-objc): New rule.
9890         * objc/Make-lang.in: Build a different Objective-C library that
9891         runs with the Boehm's collector.
9892         * objc/encoding.c (objc_round_acc_size_for_types): New function.
9893         * objc/encoding.c: Correctly compute the size of compound types in
9894         the presence of bitfields. Skip the variable name of the type if
9895         any. Added support for long long.
9896         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
9897         (_F_GCINVISIBLE): New mask.
9898         * objc/gc.c: New file. Compute the type memory mask associated with
9899         a class based on the runtime information.
9900         * objc/misc.c: Added the hooks that use the Boehm's collector
9901         allocation functions.
9902         * objc/objc-act.c (build_class_template): Generate a new class
9903         member (gc_object_type) to hold the class' type memory mask.
9904         (build_shared_structure_initializer): Initialize the new member to
9905         NULL.
9906         (encode_complete_bitfield): New function. Generate the new
9907         encoding.
9908         (encode_field_decl): Generate the new encoding only for the GNU
9909         runtime.
9910         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
9911         long long types.
9912         (class_get_gc_object_type): New function to mark a pointer instance
9913         variable as a weak pointer.
9914         * objc/objc-features.texi: New file.
9915         * objc/objc.h (gc_object_type): New class member.
9916         * objc/objects.c (class_create_instance): Create a typed memory
9917         object when compiled with Boehm's collector support.
9918         * objc/sendmsg.c (__objc_init_install_dtable): Call
9919         __objc_send_initialize instead of setting the initialize flag.
9920         (__objc_send_initialize): Call __objc_generate_gc_type_description
9921         to generate the class type memory mask. Rewrite the code that
9922         sends the +initialize so that it is called only once (bug report
9923         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
9924         * testsuite/objc: New testsuite for Objective-C type encoding.
9925         * testsuite/lib/objc-torture.exp: New file.
9926         * testsuite/lib/objc.exp: New file.
9927
9928 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
9929
9930         * jump.c (jump_optimize): In if/then/else transformations, add
9931         another call to modified_between_p for the jump insn.
9932
9933 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
9934
9935         * fix-header.c (symlink): Treat like readlink.
9936
9937 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9938
9939         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
9940         as FT_float.
9941
9942 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
9943
9944         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
9945         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
9946         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
9947         
9948         * config/nextstep.c (handle_pragma): Take three arguments, as per
9949         the new HANDLE_PRAGMA macro specification.
9950         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
9951         per the new HANDLE_PRAGMA macro specification.
9952         * config/i960/i960.c (process_pragma): Take three arguments, as
9953         per the new HANDLE_PRAGMA macro specification.
9954
9955 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
9956
9957         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
9958         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
9959         if unknown pragmas are encountered.
9960         (handle_sysv_pragma): Interpret return code from
9961         handle_pragma_token ().  Return success/failure indication rather
9962         than next unprocessed character. 
9963         (pragma_getc): New function: retrieves characters from the
9964         input stream.  Defined when HANDLE_PRAGMA is enabled.
9965         (pragma_ungetc): New function: replaces characters back into the
9966         input stream.  Defined when HANDLE_PRAGMA is enabled.
9967         
9968         * c-pragma.c (handle_pragma_token): Return success/failure status
9969         of the parse.
9970         
9971         * c-pragma.h: Change prototype of handle_pragma_token().
9972
9973         * varasm.c: (handle_pragma_weak): Only create this function if
9974         HANDLE_PRAGMA_WEAK is defined.
9975
9976         * c-common,c (decl_attributes): If defined call the expression
9977         contained within the INSERT_ATTRIBUTES macro before adding
9978         attributes to a decl.
9979
9980         * tm.texi (HANDLE_PRAGMA): Document the new verion of
9981         HANDLE_PRAGMA, which takes three arguments.
9982         (INSERT_ATTRIBUTES): Document this new macro.  
9983
9984         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
9985         new INSERT_ATTRIBUTES macro.
9986
9987 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9988
9989         * config/sparc/sparc.md (movdf): Only generate special RTL for
9990         LABEL_REFs when PIC.
9991         (move_label_di): Remove
9992         (movdi_pic_label_ref, movdi_high_pic_label_ref,
9993         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
9994         references when PIC.
9995         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
9996         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
9997         output an .xword for all 64-bit cases.
9998         
9999 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10000
10001         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
10002         alignment, use FUNCTION_BOUNDARY instead.
10003         (sparc_output_deferred_case_vectors): Likewise.
10004
10005 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10006
10007         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
10008         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
10009
10010 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
10011
10012         * alpha/va_list.h: New file.
10013         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
10014
10015 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
10016
10017         * NEWS: Add SCO Openserver and Unixware 7 notes.
10018
10019         * NEWS: Fix typos.
10020
10021 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
10022
10023         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
10024         (record_constant_1): Handle RANGE_EXPR.
10025
10026 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
10027
10028         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
10029         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
10030         and NOTE_INSN_RANGE_END specially.
10031         (reemit_notes): Likewise.
10032
10033 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10034
10035         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
10036         (ultrasparc_sched_init): Remove unneeded &.
10037
10038 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10039
10040         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
10041         for m68020-60, to prevent the use of fintrz.
10042
10043 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
10044
10045         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
10046         even in stage1. 
10047         * Makefile.in: Likewise.
10048         * configure: Regenerated.
10049
10050 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
10051
10052         * configure.in (gxx_include_dir): Changed to
10053         '${prefix}/include/g++'-${libstdcxx_interface}.
10054         * configure: Rebuilt.
10055
10056 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
10057
10058         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
10059         consistent.
10060         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
10061         *sequences* *below* which scalar moves will be used.
10062
10063 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
10064
10065         * collect2.c (mktemp): Delete unused declaration.
10066
10067         * config/xm-netbsd.h: Remove unnecessary file.
10068         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
10069         file anymore, it is not needed.
10070
10071 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
10072
10073         * convert.c (convert_to_integer): Issue an error on conversions to
10074         incomplete types.
10075
10076 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
10077
10078         * Makefile.in: Add lang_tree_files and gencheck.h.
10079         * configure.in: Generate them.
10080         * gencheck.c: Include gencheck.h.
10081
10082 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10083
10084         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
10085         movdi_lo_sum_pic and movdi_high_pic and make visible.
10086         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
10087         emit these when Pmode is not SImode.
10088         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
10089
10090 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10091
10092         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
10093         .linkonce directive after the first time.
10094
10095 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
10096
10097         * m68k.md (beq0_di): Generate correct (and more efficient) code when
10098         the clobbered operand overlaps with an input.
10099         (bne0_di): Similarly.
10100
10101         * Makefile.in (INSTALL): Remove "--no-header" argument.
10102
10103         * NEWS: Various updates.
10104
10105 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10106
10107         * config/sparc/sparc.c (arith_operand, const64_operand,
10108         const64_high_operand, arith_double_4096_operand): Mark mode as
10109         unused.
10110         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
10111         callers changed.
10112         (sparc_emit_set_const64): Remove unused variable i.
10113         (sparc_splitdi_legitimate): Likewise for addr_part.
10114         (ultra_code_from_mask): Likewise for mask.
10115         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
10116         reverse return values so it matches usage and comments.
10117         (ultra_flush_pipeline): Likewise.
10118         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
10119         this_type, and allow loads and stores of differing FP modes as
10120         they do not create a conflict.
10121         (ultra_find_type): Initialize fpmode to SFmode, fix
10122         parenthesization thinkos in large conditional.
10123         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
10124         Init free_slot_mask after ultra_cur_hist is reset, not before.
10125         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
10126         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
10127         use ultra_flush_pipeline instead, then re-init group pointer.
10128         Fix statement with no effect.  If no progress made in, and no
10129         instructions scheduled at all, advance to new pipeline cycle else
10130         we get into an endless loop.
10131         (ultrasparc_adjust_cost): Remove previous arg.
10132         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
10133         
10134 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
10135
10136         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
10137         code.  Use reg_overlap_mentioned_p to detect when source and
10138         destination overlap.
10139         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
10140
10141 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
10142
10143         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
10144         COMPARISON_VAL, into invariant_p.
10145
10146 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10147
10148         * regmove.c (regclass_compatible_p): New function.
10149         (regmove_optimize): Use it.
10150
10151         Use NREGS parameter insted of calling max_reg_num.
10152
10153         (fixup_match_1): Don't use code = MINUS when later tieing with
10154         a hard register is likely.
10155
10156 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10157
10158         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
10159         COMPARISON_VAL was normalized.
10160
10161 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
10162
10163         * loop.c (check_dbra_loop): The loop ending comparison value
10164         must be an invariant or we can not reverse the loop.
10165
10166         * loop.c (scan_loop): Count down from max_reg_num - 1 to
10167         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
10168         of the loop.
10169         (load_mems_and_recount_loop_regs_set): Likewise.
10170
10171         * i386.c (print_operand): Remove obsolete 'c' docs.
10172
10173 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
10174
10175         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
10176         * frame.c (init_object_mutex): New function.
10177         (init_object_mutex_once): Likewise.
10178         (find_fde): Call it.
10179         (__register_frame_info): Likewise.
10180         (__register_frame_info_table): Likewise.
10181         (__deregister_frame_info): Likewise.
10182
10183 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
10184
10185         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
10186
10187 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10188
10189         * loop.c (check_dbra_loop): Enable code for reversal
10190         of some loops without a known constant loop end.
10191
10192 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
10193
10194         * haifa-sched.c (last_clock_var): New.
10195         (schedule_block): Initialize it.
10196         (schedule_insn): Use it to fill insn modes with issue information.
10197
10198         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
10199         Tag trapb and next insn with TImode.
10200         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
10201         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
10202         Invoke alphaev5_align_insns as appropriate.
10203         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
10204         (MD_SCHED_VARIABLE_ISSUE): New.
10205         * alpha.md (attr type): Add multi.
10206         (define_asm_attributes): New.
10207         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
10208         (arg_home): Likewise.
10209         (fnop, unop, realign): New.
10210
10211 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
10212
10213         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
10214         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
10215
10216         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
10217         (rs6000-ibm-aix4.[12]*): Likewise.
10218         * configure: Regnerate.
10219
10220 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
10221
10222         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
10223         already contains the return address.
10224
10225 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
10226
10227         * calls.c (expand_call): Use bitfield instructions to extract/deposit
10228         word sized hunks when loading unaligned args into registers.
10229
10230         * haifa-sched.c (sched_analyze_insn): Only create scheduling
10231         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
10232
10233         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
10234
10235 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10236
10237         * loop.c (check_dbra_loop): Add some code that would allow reversal
10238         of some loops without a known constant loop end if it were enabled.
10239
10240 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10241
10242         * mips.md (lshrsi3_internal2+2): Fix type-o.
10243
10244 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10245
10246         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
10247         correctly with regards to stdio.h.
10248         
10249         * calls.c: Remove stdarg.h/varargs.h.
10250         * cccp.c: Likewise.
10251         * cexp.y: Likewise.
10252         * combine.c: Likewise.
10253         * cpperror.c: Likewise.
10254         * cpplib.c: Likewise.
10255         * cpplib.h: Likewise.
10256         * doprint.c: Likewise.
10257         * emit-rtl.c: Likewise.
10258         * final.c: Likewise.
10259         * fix-header.c: Likewise.
10260         * gcc.c: Likewise.
10261         * genattr.c: Likewise.
10262         * genattrtab.c: Likewise.
10263         * gencodes.c: Likewise.
10264         * genconfig.c: Likewise.
10265         * genemit.c: Likewise.
10266         * genextract.c: Likewise.
10267         * genflags.c: Likewise.
10268         * genopinit.c: Likewise.
10269         * genoutput.c: Likewise.
10270         * genpeep.c: Likewise.
10271         * genrecog.c: Likewise.
10272         * mips-tfile.c: Likewise.
10273         * prefix.c: Likewise.
10274         * protoize.c: Likewise.
10275         * regmove.c: Likewise.
10276         * toplev.c: Likewise.
10277         * tree.c: Likewise.
10278
10279 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10280
10281         * config/sparc/sparc.c (sparc_override_options): If not
10282         TARGET_FPU, turn off TARGET_VIS.
10283         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
10284         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
10285         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
10286         (movdi_insn_sp64): Add VIS fzero alternative.
10287         (clear_sf, clear_df): New VIS patterns.
10288         (movsf, movdf expanders): Allow fp_zero_operand flat out when
10289         TARGET_VIS.
10290         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
10291         
10292 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
10293
10294         * loop.c (n_times_set, n_times_used, may_not_optimize,
10295         reg_single_usage): Convert to varrays.  All uses changed.
10296         (insert_loop_mem): Return a value.
10297         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
10298         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
10299         necessary.
10300
10301 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
10302
10303         * From Alexandre:
10304         * configure.in: Do not set thread_file to "irix" since no such
10305         support exists yet.
10306
10307         * sparc.md (float abs/neg splits): Check reload_completed before
10308         calling alter_subreg.
10309
10310 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10311
10312         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
10313         function.
10314         * config/sparc/sparc.h: Declare it.
10315         * config/sparc/sparc.md (float abs/neg splits): Use it.
10316         (all other splits): Handle SUBREGs properly where necessary.
10317         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
10318
10319 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
10320
10321         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
10322         an insn on the unfilled_slots_list that has no delay slots.
10323         (fill_eager_delay_slots): Similarly.
10324
10325 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
10326
10327         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
10328         as an ordinary operand.
10329
10330 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
10331
10332         * tree.c (valid_machine_attribute): Don't apply attributes to both
10333         decl and type.
10334
10335 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
10336
10337         * reload.c (operands_match_p): Handle rtvecs.
10338
10339         * i386.c (legitimate_pic_address_disp_p): New.
10340         (legitimate_address_p): Use it.
10341         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
10342         Handle constant pool symbols just like statics.
10343         (emit_pic_move): Use Pmode not SImode for clarity.
10344         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
10345         [UNSPEC]: New, handling what we killed above.
10346         [PLUS]: Detect and abort on invalid symbol arithmetic.
10347         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
10348
10349 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
10350
10351         * alias.c: Include output.h.
10352         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
10353         different if we're in a varargs function.
10354         * Makefile.in (alias.o): Depend on output.h
10355         
10356 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10357
10358         * sh.h (GIV_SORT_CRITERION): Delete.
10359
10360 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
10361
10362         * regclass.c (regclass): Use xmalloc/free instead of alloca.
10363         * stupid.c (stupid_life_analysis): Ditto.
10364         * reload1.c (reload): Ditto.
10365
10366 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10367
10368         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
10369         arith_double_4096_operand, arith_double_add_operand): New
10370         predicates.
10371         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
10372         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
10373         them to transform add/sub 4096 into add/sub -4096.
10374
10375 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10376
10377         * loop.c (scan_loop): Allocate some slop to handle pseudos
10378         generated by move_movables.
10379         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
10380         here too.
10381
10382 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
10383
10384         * tree.def (DECL_RESULT): Correct documentation.
10385
10386 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10387
10388         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
10389         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
10390         conflicts will all RELOAD_FOR_OUTPUT reloads.
10391
10392         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
10393         loads the function result, substitute with a USE.
10394
10395 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10396
10397         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
10398         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
10399         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
10400         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
10401         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
10402         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
10403         operand. 
10404         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
10405         'o' to 'm' for GPR variant constraints.
10406
10407 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
10408
10409         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
10410
10411         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
10412
10413         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
10414         when the source and destination overlap.
10415
10416         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
10417         clash with global type.
10418
10419 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
10420
10421         * fixinc.irix: Add curses.h handling from fixinc.wrap.
10422
10423         * c-common.c (combine_strings): Also set TREE_READONLY.
10424         Change warn_write_strings to flag_const_strings.
10425         * c-decl.c, c-tree.h: Likewise.
10426
10427 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10428
10429         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
10430         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
10431         sequence, use SET/IOR instead so CSE can see it.
10432         * config/sparc/sparc.md (movhi_const64_special,
10433         movsi_const64_special): New patterns necessitated by that change.
10434         (movhi_high): Remove.
10435         (movhi_lo_sum): Change to match an IOR.
10436         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
10437         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
10438         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
10439         (movdf splits): Allow when not V9 or when not ARCH64 and integer
10440         registers are involved.
10441         (snesi_zero_extend split): Remove reload_completed test.
10442         (unnamed plus and minus zero_extend sidi splits): Add it.
10443
10444 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
10445
10446         * extend.texi: Remove description of extension to explicit
10447         instantiation that is now endorsed by standard C++.
10448
10449 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10450
10451         * config/arc/arc.c (arc_initialize_pic): Remove.
10452         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
10453         nothing on any platform and is invoked by no-one, it does not even
10454         appear in the documentation.
10455         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
10456         * config/sparc/sparc.c (initialize_pic): Likewise.
10457         (find_addr_reg): Remove this as well, no longer referenced after
10458         my rewrite.
10459
10460 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
10461
10462         * recog.c (validate_replace_rtx_group): New function.
10463         * recog.h (validate_replace_rtx_group): Declare it.
10464         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
10465         the entire group of substitutions.
10466
10467 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
10468
10469         * loop.c (load_mems): Fix initializers.
10470
10471 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10472
10473         * config/sparc/sparc.md (TFmode splits): Handle destination
10474         registers being referenced in the address correctly.
10475
10476         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
10477         TREE_UNSIGNED, when bitsize of type's mode is larger than
10478         HOST_BITS_PER_WIDE_INT.
10479
10480 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
10481
10482         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
10483         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
10484         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
10485         macros.
10486         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
10487         EXIT_BLOCK_EXPR.
10488
10489 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
10490
10491         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
10492         * h8300.h (TINY_DATA_NAME_P): Likewise.
10493         (STRIP_NAME_ENCODING): Handle '&'.
10494
10495         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
10496         register (it could be accessed via an outer SUBREG).
10497         (REG_OK_FOR_BASE_P): Likewwise.
10498         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
10499
10500         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
10501         bogus rtl.
10502
10503         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
10504
10505 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10506
10507         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
10508         must be offsettable so the splits can be made.
10509
10510 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
10511
10512         * config/i386/winnt.c: Include system.h, not stdio.h to get
10513         sys/param.h pulled in before rtl.h in case the system defines MIN
10514         and MAX.
10515
10516 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10517
10518         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
10519
10520 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
10521
10522         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
10523         arrays of bits.
10524         * cpplib.c (cpp_define): Handle macros with parameters.
10525
10526 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10527
10528         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
10529         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
10530         and DImode 64-bit.  Use llong for minimal-toc SFmode and
10531         SYMBOL_REF / LABEL_REF 64-bit.
10532         (output_function_profiler): Use llong for profiler label and ld to
10533         load 64-bit label address.
10534
10535 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
10536
10537         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
10538         OFFSET addressing.
10539
10540 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
10541
10542         * version.c: Bump for snapshot.
10543
10544 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
10545
10546         * version.c: Bump for snapshot.
10547
10548 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
10549
10550         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
10551
10552 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
10553
10554         * tm.texi (Misc): Fix typo "teh".
10555
10556         * tm.texi (PIC): Fix typo "PPIC".
10557
10558         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
10559         effect when -O2 and higher.
10560         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
10561
10562 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
10563
10564         * regclass.c: Changed register set documentation to be consistent
10565         with GCC behaviour.
10566
10567         * final.c (final_start_function) Removed redundant test for
10568         call_fixed_regs.
10569
10570 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
10571
10572         * rtl.h (rtx_function): New type.
10573         (for_each_rtx): New function.
10574         * rtlanal.c (for_each_rtx): Define it.
10575         
10576         * recog.c (change_t): New type.
10577         (change_objects, change_old_codes, change_locs, change_olds):
10578         Replace with ...
10579         (changes): New variable.
10580         (validate_change): Dynamically allocate room for more changes, if
10581         necessary.  Uses changes array instead of change_objects, etc.
10582         (apply_change_group):  Use changes array instead of
10583         change_objects, etc.
10584         
10585         * loop.c (loop_mem_info): New type.
10586         (loop_mems): New variable.
10587         (loop_mems_idx): Likewise.
10588         (looop_mems_allocated): Likewise.
10589         (scan_loop): Remove nregs parameter.
10590         (next_insn_in_loop): New function.
10591         (load_mems_and_recount_loop_regs_set): Likewise.
10592         (load_mems): Likewise.
10593         (insert_loop_mem): Likewise.
10594         (replace_loop_mem): Likewise.
10595         (replace_label): Likewise.
10596         (INSN_IN_RANGE_P): New macro.
10597         (loop_optimize): Don't pass max_reg_num() to scan_loop.
10598         (scan_loop): Remove nregs parameter, compute it after any new
10599         registers are created by load_mems.  Use INSN_IN_RANGE_P and
10600         next_insn_in_loop rather than expanding them inline.  Call
10601         load_mems to load memory into pseudos, if appropriate.
10602         (prescan_loop): Figure out whether or not there are jumps from the
10603         loop to targets other than the label immediately following the
10604         loop.  Call insert_loop_mem to notice all the MEMs used in the
10605         loop, if it could be safe to pull MEMs into REGs for the duration
10606         of the loop.
10607         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
10608
10609 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
10610
10611         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
10612
10613 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10614
10615         * config/sparc/sparc.c (finalize_pic): Check for the correct
10616         nonlocal_goto_receiver UNSPEC number.
10617         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
10618         making note of this dependency existing in sparc.c
10619         (negtf2_notv9 split): Give NEG SFmode.
10620         (negsf2): Fix insn output string.
10621         
10622 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
10623
10624         * c-common.c (decl_attributes): Issue an error if the argument
10625         to alias is not a string.
10626
10627 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
10628
10629         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
10630         pending memory flush list.
10631
10632         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
10633         notes.
10634         (try_combine): Allow combining insns with REG_LIBCALL notes.
10635
10636         * expr.c (emit_block_move): Do not call memcpy as a libcall
10637         instead build up a CALL_EXPR and call it like any other
10638         function.
10639         (clear_storage): Similarly for memset.
10640
10641         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
10642         on notes.
10643
10644         * Makefile.in (cplus-dem.o): Provide explicit rules for building
10645         cplus-dem.o
10646
10647         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
10648         and REG_LIVE_LENGTH as successful substitutions are made.
10649
10650 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10651
10652         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
10653         statement after end of loop label.
10654
10655 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10656
10657         * config/sparc/sparc.c (ultra_types_avail): New variable.
10658         (ultra_build_types_avail): New function to record mask of insn
10659         types in ready list at this cycle.
10660         (ultrasparc_sched_reorder): Call it.
10661         (ultra_find_type): Use it to quicken the search.  Also simplif
10662         dependency check, don't use rtx_equal_p because we know exactly
10663         what we are looking for.
10664
10665 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
10666
10667         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
10668         for architecture v4.
10669
10670 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10671
10672         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
10673         gen_compare_reg.
10674         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
10675         movdf_const_intreg and helper splits): New patterns to move float
10676         constants into integer registers.
10677         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
10678         splits.
10679
10680 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
10681
10682         * From Graham
10683         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
10684         to itype.
10685         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
10686
10687         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
10688         a BASE_REGS register is needed as an intermediate when copying
10689         a symbolic value into any register class other than BASE_REGS.
10690
10691         * expr.c (move_by_pieces): No longer static.  Remove prototype.
10692         * rtl.h (move_by_pieces): Add extern prototype.
10693         * mips.c (expand_block_move): Handle aligned straight line copy by
10694         calling move_by_pieces.
10695
10696         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
10697         and VAR_DECLs.
10698
10699 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
10700
10701         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
10702         jumps out of the loop to be treated as part of the exit test.
10703
10704 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10705                           Jeff Law <law@cygnus.com>
10706
10707         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
10708         * cplus-dem.c: Delete.
10709
10710         * Makefile.in (fold-const.o): depend on $(RTL_H).
10711
10712         * fold-const.c: Include rtl.h to get the prototype for
10713         `set_identifier_local_value'.
10714
10715         * loop.c (express_from_1): Remove unused variable `tmp'.
10716         (combine_givs): cast the first argument of bzero to char *.
10717
10718         * toplev.c (display_help): Remove unused variable `looking_for_start'.
10719
10720         * c-decl.c (init_decl_processing): Remove unneeded &.
10721
10722         * alpha.h (alpha_initialize_trampoline): Provide prototype.
10723         
10724         * except.c (set_exception_lang_code, set_exception_version_code):
10725         Change parameter from `short' to `int' to avoid using a gcc
10726         extension.
10727
10728         * except.h (set_exception_lang_code, set_exception_version_code):
10729         Likewise for prototypes.
10730
10731         * flow.c (count_reg_references): Remove unused variables `regno'
10732         and `i'.
10733
10734         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
10735
10736         * prefix.c (translate_name): Cast the result of `alloca'.
10737
10738         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
10739
10740 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
10741
10742         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
10743         Include "toplev.h".
10744         (valid_dbcc_comparison_p): Mark mode argument as unused.
10745         (symbolic_operand): Likewise.
10746         (legitimize_pic_address): Likewise.
10747         (const_uint32_operand): Likewise.
10748         (const_sint32_operand): Likewise.
10749         * sched.c [!INSN_SCHEDULING]: Define only dummy function
10750         schedule_insns and comment out rest of file.
10751
10752         * m68k.c (output_move_simode_const): Use subl to move a zero into an
10753         address register.
10754         (output_move_[hq]imode): Likewise.
10755
10756 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
10757
10758         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
10759         * invoke.texi: Corresponding changes.
10760
10761 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
10762
10763         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
10764
10765 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10766
10767         * config/sparc/sparc.c (ultra_code_from_mask,
10768         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
10769         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
10770         ultrasparc_sched_init, ultrasparc_variable_issue,
10771         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
10772         functions to describe UltraSPARC pipeline exactly to Haifa.
10773         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
10774         as there is nothing the scheduler can do about it.  Indicate that
10775         REG_DEP_OUTPUT's collide.  Fixup formatting.
10776         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
10777         divide costs on Ultra for DImode.
10778         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
10779         Define.
10780         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
10781         ieuN and add call_no_delay_slot to type list.
10782         (cti function unit): New unit for branches on UltraSPARC.
10783         (subx/addx insns): Set type to misc.
10784         (sidi zero/sign extension insns on arch64): Set type to shift.
10785         (sign_extendhidi2_insn): Set type to sload.
10786
10787 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
10788
10789         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
10790         (output_epilog): Use if != 0 for offset.
10791         (rs6000_fatal_bad_address): Prepare for Intl.
10792         * rs6000.h (rs6000_fatal_bad_address): Declare.
10793         * rs6000.md (movsfcc, movdfcc): Use else if.
10794         (elf_high): Use {liu|lis}.
10795         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
10796         (movsi): Use rs6000_fatal_bad_address.
10797         
10798 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
10799
10800         * reload.c (find_equiv_reg): Reject equivalences separated
10801         by a volatile instruction.
10802
10803 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
10804
10805         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
10806
10807 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
10808
10809         * alpha.md (movsicc): Fix mode mismatch.
10810
10811 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
10812
10813         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
10814         return type.
10815         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
10816
10817 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10818
10819         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
10820         write-only modifier from operand 1 constraint.
10821
10822 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10823
10824         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
10825         emitting a XOR of -1 at the end, emit a NOT instead for combine's
10826         sake.
10827         (sparc_emit_set_const64): Likewise, also when computing trailing
10828         bits do not negate low_bits and make fast_int an int.
10829
10830 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
10831
10832         * loop.c (add_label_notes): Do not ignore references to labels
10833         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
10834         * gcse.c (add_label_notes): Similarly.
10835
10836         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
10837
10838         * m68k.md (adddi_dilshr32): One of the operands must be a register.
10839         (adddi_dishl32): Similarly.
10840
10841 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
10842
10843         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
10844         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
10845         * cse.c (cse_basic_block): Add parens to shut up warnings.
10846
10847 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10848
10849         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
10850         sparc_emit_set_const64_longway, const64_is_2insns,
10851         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
10852         in 64-bit constant formation.
10853         * config/sparc/sparc.md (snesi_zero_extend split): Generate
10854         rtl for addx not subx.
10855         (define_insn movdi_const64_special): Make available even when
10856         HOST_BITS_PER_WIDE_INT is not 64.
10857         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
10858         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
10859         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
10860         instances of operand 1 inside a QI subreg.
10861         (xordi3_sp64_dbl): Remove '%' constraint for op1.
10862         (one_cmpldi2_sp64): Fix output string.
10863         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
10864         alternative case.
10865         (unnamed arch64 ashift DI): Truncate shift count if greater than
10866         63, not 31.
10867
10868 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10869
10870         * expr.c (store_expr): Don't optimize away load-store pair
10871         when either source or destination have a side effect.
10872
10873 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
10874
10875         * genrecog.c (add_to_sequence): Fatal error if the modes of the
10876         operands of SET are incompatible.
10877
10878         * alpha.md: Fix max and min patterns so modes of SET operands match.
10879
10880 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
10881
10882         * configure.in: Avoid [[ by using test and changequote.
10883         * configure: Rebuild.
10884
10885 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10886
10887         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
10888
10889         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
10890         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
10891         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
10892         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
10893         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
10894         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
10895         Fix mismatching modes in SET operands.
10896         (conditional move patterns): Fix formatting.
10897         (unnamed subx arch64 pattern): Remove duplicate insn.
10898         
10899 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10900
10901         * config/sparc/sparc.c (const64_operand, const64_high_operand):
10902         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
10903         (input_operand): Fixup test for what we accept for constant
10904         integers.
10905         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
10906         set VOIDmode.
10907         (safe_constDI): Remove.
10908         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
10909         gen_safe_XOR64): New functions.
10910         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
10911         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
10912         them.
10913         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
10914         available when HOST_BITS_PER_WIDE_INT is not 64.
10915         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
10916         move before movdi_insn_sp64 pattern.
10917         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
10918         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
10919         symbolic_operand as predicate for second operand.
10920         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
10921         expander): Give set VOIDmode.
10922         
10923 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10924
10925         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
10926
10927 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
10928
10929         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
10930
10931 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
10932
10933         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
10934         point.
10935         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
10936
10937 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
10938
10939         * install.texi: Various SCO OpenServer tweaks.
10940
10941 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
10942
10943         * reload1.c (eliminate_regs_in_insn): Handle another case when
10944         eliminating the frame pointer to the hard frame pointer.  Add
10945         missing ep->to_rtx check to one existing case.
10946
10947         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
10948
10949 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
10950
10951         * tree.h: De-conditionalize init_priority code.
10952
10953         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
10954         * collect2.c (NM_FLAGS): Change from -p to -n.
10955
10956         * configure.in: Turn on collect2 for mipstx39-elf.
10957         Handle use_collect2=no properly.
10958
10959         * c-common.c: De-conditionalize init_priority code.
10960         * collect2.c (extract_init_priority, sort_ids): New fns.
10961         (main): Call sort_ids.
10962         Move sequence_number to file scope.
10963
10964         * configure.in: Handle --enable-init-priority.
10965         * c-common.c (attrs): Add A_INIT_PRIORITY.
10966         (init_attributes, decl_attributes): Likewise.
10967         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
10968         * tree.c (get_file_function_name_long): Split out...
10969         (get_file_function_name): ...from here.
10970
10971 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
10972
10973         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
10974         accessing nodes.
10975
10976 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
10977
10978         * toplev.c (display_help): Add braces to shut up warnings.
10979         * tree.c (simple_cst_equal): Likewise.
10980
10981         * fold-const.c (non_lvalue): Don't deal with null pointer 
10982         constants here.
10983         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
10984
10985         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
10986         of any size to a pointer.
10987
10988 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
10989
10990         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
10991
10992 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
10993
10994         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
10995         which will be saved.
10996         * mn10300.md (prologue insn): Only save registers which need saving.
10997         (epilogue insn): Similarly.
10998
10999         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
11000         optimizations.
11001
11002 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
11003
11004         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
11005         VAR_DECL's in gp addressable sections.
11006
11007 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
11008
11009         * sparc.c: Change return <exp> to <exp>; return; in functions
11010         returning void.
11011         * sparc.md: Add empty semicolon statement after final label in
11012         move expanders.
11013
11014 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11015
11016         * config/sparc/sparc.md (define_insn addx_extend): Rename to
11017         addx_extend_sp64, only allow when TARGET_ARCH64.
11018         (define_insn addx_extend_sp32 and split): Version that works when
11019         not TARGET_ARCH64.
11020         (define_insn subx_extend): Likewise.
11021         (define_split adddi3 and subdi3 with zero extension): Fixup and
11022         correct bugs when not TARGET_ARCH64.
11023
11024 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
11025
11026         * except.c (set_exception_lang_code, set_exception_version_code):
11027         Use prototype-style definition if __STDC__, to match declaration
11028         in except.h.
11029
11030         * genemit.c: Change FAIL and DONE macros not to use loops.
11031
11032 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
11033
11034         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
11035         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
11036
11037         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
11038
11039 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
11040
11041         * README.g77: Update from Craig.
11042
11043 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11044
11045         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
11046         type HOST_WIDE_INT.
11047         (safe_constDI sparc_emit_set_const64_quick1,
11048         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
11049         analyze_64bit_constant, const64_is_2insns,
11050         create_simple_focus_bits): Fix some bugs when compiled on real
11051         64-bit hosts.
11052         (function_arg_record_value_3, function_arg_record_value_2,
11053         function_arg_record_value): Add fully prototyped forward decls.
11054         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
11055         to cmpsi_insn and use on both 64 and 32 bit targets.
11056         (define_insn cmpsi_insn_sp64): Remove.
11057         (define_expand zero_extendsidi2): Allow for 32-bit target too.
11058         (define_insn zero_extendsidi2_insn): Rename to
11059         zero_extendsidi2_insn_sp64.
11060         (define_insn zero_extendsidi2_insn_sp32): New pattern and
11061         assosciated forced split for it.
11062
11063         * config/sparc/sparc.c (const64_operand, const64_high_operand):
11064         New predicates.
11065         * config/sparc/sparc.h: Declare them.
11066         (PREDICATE_CODES): Add them.
11067         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
11068         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
11069
11070 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
11071
11072         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
11073         in v9 case as the latter makes the Solaris assembler crash.
11074
11075 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11076
11077         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
11078         for TFmode when !v9.  We require offsettable memory addresses.
11079         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
11080         DFmode register number conversions.
11081         * config/sparc/sparc.md (define_split DFmode moves): If register
11082         is a SUBREG do alter_subreg on it before using.
11083         (define_expand movtf): Fixup comment about alignment on v9.
11084         (define_split TFmode moves): Don't use gen_{high,low}part, create
11085         explicit SUBREGs instead.
11086
11087 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
11088
11089         * Makefile.in (mbchar.o): Depend on mbchar.c.
11090
11091 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11092                           Richard Henderson  <rth@cygnus.com>
11093         
11094         Rewrite Sparc backend for better code generation and
11095         improved sparc64 support.
11096         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
11097         zero.
11098         * config/sparc/sysv4.h: Likewise.
11099         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
11100         move_operand, v8plus_regcmp_op, emit_move_sequence,
11101         singlemove_string, doublemove_string, mem_aligned_8,
11102         output_move_double, output_move_quad, output_fp_move_double,
11103         move_quad_direction, output_fp_move_quad, output_scc_insn):
11104         Remove.
11105         (small_int_or_double): New predicate.
11106         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
11107         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
11108         old pic_{sethi,lo_sum}_si patterns.
11109         (mem_min_alignment): New generic function to replace
11110         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
11111         available and can test for arbitrary alignments.  All callers
11112         changed.
11113         (save_regs, restore_regs, build_big_number,
11114         output_function_prologue, output_cbranch, output_return,
11115         sparc_flat_save_restore, sparc_flat_output_function_prologue,
11116         sparc_flat_output_function_epilogue): Prettify
11117         insn output.
11118         (output_function_epilogue): Likewise and add code to output
11119         deferred case vectors.
11120         (output_v9branch): Likewise, add new arg INSN and use it to tack
11121         on branch prediction settings.  All callers changed.
11122         (print_operand): Likewise and output %l44 for LO_SUMs when
11123         TARGET_CM_MEDMID.
11124         (sparc_splitdi_legitimate): New function to make sure DImode
11125         splits can be run properly when !arch64.
11126         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
11127         Reformat example code in comments.
11128         (set_extends): Remove UNSPEC/v8plus_clear_high case.
11129         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
11130         of deferred case vectors we need to output.
11131         (sparc_defer_case_vector): Record a case vector.
11132         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
11133         sparc_output_deferred_case_vectors): New functions to output them.
11134         (sparc_emit_set_const32): New function to form 32-bit constants in
11135         registers when that requires more than one instruction.
11136         (safe_constDI, sparc_emit_set_const64_quick1,
11137         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
11138         analyze_64bit_constant, const64_is_2insns,
11139         create_simple_focus_bits, sparc_emit_set_const64): New functions
11140         which do the same for 64-bit constants when arch64.
11141         (sparc_emit_set_symbolic_const64): New function to emit address
11142         loading for all code models on v9.
11143         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
11144         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
11145         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
11146         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
11147         inaccuracies in comments, add symbolic and text_segment operands
11148         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
11149         GENERAL_REGS in these cases as a temp REG is needed to load these
11150         addresses into a register properly.
11151         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
11152         is no longer used.
11153         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
11154         quads are guarenteed to have 16-byte alignment.
11155         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
11156         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
11157         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
11158         deferred case vector implementation.
11159         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
11160         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
11161         Generate "internal label - label" instead of "label - 1b".
11162         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
11163         (PREDICATE_CODES): Remove sparc_operand, move_operand,
11164         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
11165         zero_operand.
11166         (doublemove_string, output_block_move, output_fp_move_double,
11167         output_fp_move_quad, output_move_double, output_move_quad,
11168         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
11169         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
11170         (sparc_emit_set_const32, sparc_emit_set_const64,
11171         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
11172         mem_min_alignment, small_int_or_double): Add externs.
11173         * config/sparc/sparc.md: Document the many uses of UNSPEC and
11174         UNSPEC_VOLATILE in this backend.
11175         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
11176         unary to types which execute in it.
11177         (define_function_unit ieu_shift): Rename to ieu0.
11178         (define_function_unit ieu1): New, executes compare, call, and
11179         uncond_branch type insns.
11180         (define_function_units for type fdivs, fdivd, fsqrt): These
11181         execute in the fpu multiply unit not the adder on UltraSparc.
11182         (define_expand cmpdi): Disallow TARGET_V8PLUS.
11183         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
11184         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
11185         allows the arith_double_operand predicate and rHI constraint when
11186         TARGET_ARCH64.
11187         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
11188         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
11189         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
11190         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
11191         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
11192         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
11193         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
11194         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
11195         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
11196         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
11197         sign_extendqihi2_insn, sign_extendqisi2_insn,
11198         sign_extendqidi2_insn, sign_extendhidi2_insn,
11199         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
11200         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
11201         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
11202         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
11203         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
11204         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
11205         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
11206         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
11207         smulsi3_highpart_v8plus, unnamed subreg mult,
11208         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
11209         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
11210         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
11211         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
11212         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
11213         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
11214         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
11215         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
11216         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
11217         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
11218         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
11219         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
11220         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
11221         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
11222         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
11223         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
11224         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
11225         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
11226         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
11227         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
11228         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
11229         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
11230         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
11231         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
11232         call_address_untyped_struct_value_sp32,
11233         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
11234         call_value_symbolic_sp32, call_value_address_sp64,
11235         call_value_symbolic_sp64, branch_sp32, branch_sp64,
11236         flush_register_windows, goto_handler_and_restore,
11237         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
11238         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
11239         return_addsi, return_di, return_adddi, return_sf, all call+jump
11240         peepholes, trap, unnamed trap insns): Prettify output strings.
11241         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
11242         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
11243         Likewise and force + implement splits for integer cases.
11244         (define_insn return_sf_no_fpu): Likewise and allow to match when
11245         no-fpu because of our subreg SFmode splits.
11246         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
11247         zero_extendqidi2_insn, zero_extendhidi2_insn,
11248         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
11249         input_operand for second operand.
11250         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
11251         reg_or_0_operand for operand 2 so new splits can use it.
11252         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
11253         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
11254         too.
11255         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
11256         CONST_DOUBLEs for operand 2.
11257         (define_insn move_label_di): Likewise and label distance
11258         optimization because it no longer works with new deferred case
11259         vector scheme.  To be revisited.
11260         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
11261         and allow reg_or_0_operand and J constraint for second operand.
11262         (define_insn jump): Set branch predict taken on V9.
11263         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
11264         new deferred case vector scheme.
11265         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
11266         (define_insn negdi2_sp32): Force + implement splits.
11267         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
11268         one_cmplsi2_not_liveg0 respectively, and create expander of original
11269         names which emit special rtl for TARGET_LIVE_G0.
11270         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
11271         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
11272         gen_compare_reg, FAIL instead.
11273         (define_insn sgtu, sleu): Likewise and check gen_s*() return
11274         values when trying to reverse condition codes, if they FAIL then
11275         do likewise.
11276         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
11277         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
11278         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
11279         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
11280         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
11281         set output string to # to indicate they are mandatory splits.
11282         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
11283         pic_sethi_di, move_pic_label_si): Remove.
11284         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
11285         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
11286         place.
11287         (define_expand movsi_pic_label_ref, define_insn
11288         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
11289         expander and insns to handle PIC label references and deferred
11290         case vectors.
11291         (define_insn get_pc_via_rdpc): Comment out as it is no longer
11292         used.
11293         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
11294         Rewrite to not use emit_move_sequence, make use of new constant
11295         formation code, and new splits for all multi-insn cases.
11296         (define_insn movqi_insn): Remove sethi case, it can never happen.
11297         Use reg_or_zero_operand instead of const0_rtx explicit test,
11298         use input_operand instead of move_operand for source, and use
11299         general_operand now for dest.
11300         (define_insn movhi_insn): Similar but leave sethi case.
11301         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
11302         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
11303         movhi_lo_sum respectively, prettify output string.
11304         (define_insn movsi_zero_liveg0): New pattern to put zero into a
11305         register when needed on TARGET_LIVE_G0.
11306         (define_insn movsi_insn): Use general_operand and input_operand
11307         for dest and src respectively.  Simplify applicability test.
11308         Prettify output strings, and add clr alternative for J
11309         constraint.
11310         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
11311         deprecated std and reg-reg DI moves): Remove and...
11312         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
11313         implementation which uses forced splits for all non-single insn
11314         cases.
11315         (define_split DI move cases on !arch64): New splits to handle all
11316         situations of 64-bit double register DImode on 32bit, and
11317         unaligned registers and memory addresses for all subtargets.
11318         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
11319         Remove.
11320         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
11321         input_operand for dest and src respectively, prettify output
11322         strings.
11323         (define_insn movdf_insn, movdf_no_e_insn, store_df,
11324         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
11325         and...
11326         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
11327         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
11328         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
11329         movtf_no_e_insn_sp64) Replace with new
11330         implementation which uses forced splits for all non-single insn
11331         cases.
11332         (define_split DF move cases): New splits in similar vein to DI
11333         move counterparts.
11334         (define_insn sethi_di_medlow, sethi_di_medium_pic,
11335         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
11336         movdi_sp64_insn): Remove old v9 code model and constant loading
11337         support insns and..
11338         (define_insn pic_lo_sum_di, pic_sethi_di,
11339         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
11340         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
11341         embmedany_sethi, embmedany_losum, embmedany_brsum,
11342         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
11343         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
11344         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
11345         scheme, using unspecs, secondary reloads, and one to one sparc
11346         insn to rtl insn mapping for better scheduling and code gen.
11347         (define_expand reload_indi, reload_outdi): Reload helpers for
11348         MEDANY and EMBMEDANY symbol address loading cases which require a
11349         temporary register.
11350         (define_expand movsicc): Remove v8plus_regcmp cases.
11351         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
11352         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
11353         cmp_diqi_trunc_set): New patterns used by some of the new scc
11354         splits on arch64.
11355         (define_insn xordi3_sp64_dbl): New pattern used for constant
11356         formation when crossing from 32-bit targets.
11357         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
11358         split): Remove.
11359         (define_insn addx, subx): Make visible and prettify.
11360         (define_insn adddi3_insn_sp32): Likewise and force split.
11361         (define_insn addx_extend, subx_extend, unnamed): New patterns for
11362         64bit scc split usage.
11363         (define_insn unnamed plusDI zero_extend, unnamed minusDI
11364         zero_extend, subdi3): Force and implement splits.
11365         
11366         * final.c (final_scan_insn): Don't output labels if target
11367         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
11368         instead.
11369         
11370         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
11371         don't forget to walk inside SEQUENCESs too as these are what the
11372         delay slot scheduler will create.
11373         
11374 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
11375
11376         * alpha.md (extxl+1,+2): New patterns to work around
11377         combine lossage.
11378
11379 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
11380
11381         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
11382         caused bad assembly code to be generated.
11383
11384 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
11385
11386         * netbsd.h: Fix typo.
11387
11388 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
11389
11390         * config.sub: Fix typo.
11391
11392 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
11393
11394         * invoke.texi (Environment Variables): Typo: Change "ascpects"
11395         into "aspects".
11396         (Running Protoize): Typo: Change "ther" into "other".
11397
11398 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
11399
11400         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
11401         * m68k/netbsd.h: Likewise.
11402         * ns32k/netbsd.h: Likewise.
11403         * sparc/netbsd.h: Likewise.
11404
11405 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
11406
11407         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
11408         * ginclude/va-clipper.h (va_list): Likewise.
11409
11410 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
11411
11412         * rs6000.c (rs6000_override_options): If big endian and -Os, use
11413         load/store multiple instructions unless user overrides.
11414
11415 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
11416
11417         * ns32k/netbsd.h: Fix typo.
11418
11419 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
11420
11421         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
11422         labels with .debugsym if no parallel insns.
11423
11424 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
11425
11426         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
11427         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
11428
11429 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
11430
11431         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
11432         (AR_FOR_TARGET): Define.
11433
11434 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
11435
11436         * dyn-string.h: New file.
11437         * dyn-string.c: Likewise.
11438         * Makefile.in (OBJS): Add dyn-string.o.
11439         (dwarf2out.o): Add dyn-string.h dependency.
11440         (dyn-string.o): List dependencies.
11441         * dwarf2out.c: Include dyn-string.h.
11442         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
11443         (addr_const_to_string): Take a dyn_string_t, not a char* as a
11444         prototype.  Use dyn_string_append rather than strcat, throughout.
11445         (addr_to_string): Use dyn_string_t.
11446
11447 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
11448
11449         Function entry/exit profiling instrumentation:
11450         * expr.h (profile_function_entry_libfunc,
11451         profile_function_exit_libfunc): Declare new variables.
11452         * optabs.c: Define them here.
11453         (init_optabs): Initialize them.
11454         * tree.h (struct tree_decl): New flag
11455         no_instrument_function_entry_exit.
11456         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
11457         * c-decl.c (duplicate_decls): Merge it.
11458         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
11459         (init_attributes): Use it for "no_instrument_function".
11460         (decl_attributes): Handle it, for functions that have not yet been
11461         compiled.  Set decl flag.
11462         * flags.h (flag_instrument_function_entry_exit): Declare new
11463         variable.
11464         * toplev.c (flag_instrument_function_entry_exit): Define it here.
11465         (f_options): New option "instrument-functions".
11466         * function.h (struct function): New field instrument_entry_exit.
11467         * function.c (current_function_instrument_entry_exit): New
11468         variable.
11469         (push_function_context_to, pop_function_context_from): Save and
11470         restore.
11471         (expand_function_start): Set current_ variable, maybe emit return
11472         label and entry profile call.
11473         (expand_function_end): Maybe emit exit profile call.
11474
11475 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
11476
11477         * i386.md (movqi): When optimizing a load of (const_int 1) into a
11478         NON_QI_REG_P, pretend the register is SImode.
11479
11480 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
11481
11482         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
11483         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
11484         manufacturer id for ns32k.
11485         * configure: Regenerated.
11486         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
11487         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
11488         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
11489         * config/m68k/netbsd.h: Same.
11490         * config/ns32k/netbsd.h: Same.
11491         * config/sparc/netbsd.h: Same.
11492
11493 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
11494
11495         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
11496         or UNROLL_COMPLETELY loop that starts with a jump to its
11497         exit code.
11498
11499 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
11500
11501         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
11502         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
11503         (print_operand, case 'B'): Don't fall through.
11504         (print_operand, case 'S'): Correct mask begin/end computation.
11505         Use HOST_BITS_PER_WIDE_INT.
11506         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
11507         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
11508         * rs6000/aix41.h (CPP_PREDEFINES): Same.
11509         * rs6000/aix43.h (CPP_PREDEFINES): Same.
11510
11511 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
11512
11513         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
11514         constraint from second alternative.
11515
11516 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
11517
11518         * configure.in: Fix --without/--disable cases for local-prefix, 
11519         gxx-include-dir and checking.
11520
11521 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11522
11523         * configure.in (enable_haifa): Set by default for sparc64 too.
11524         configure: Rebuilt.
11525
11526 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
11527
11528         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
11529         * i386/winnt.c (associated_type): New fn.
11530         (i386_pe_valid_type_attribute_p): New fn.
11531         (i386_pe_check_vtable_importexport): Remove.
11532         (i386_pe_dllexport_p): Use associated_type.
11533         (i386_pe_dllimport_p): Likewise.
11534
11535         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
11536         * i386.c (i386_valid_type_attribute_p): Also accept
11537         attributes for METHOD_TYPEs.
11538
11539 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
11540
11541         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
11542
11543 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
11544
11545         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
11546
11547         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
11548         them from generating a new base name for each occurence of
11549         a specific suffix.
11550
11551 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
11552
11553         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
11554         SUBREG, MEM.
11555         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
11556
11557
11558
11559         * cplus-dem.c (type_kind_t): New type.
11560         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
11561         on this paramter, rather than demangling the type again.
11562         (demangle_integral_value): Pass tk_integral.
11563         (demangle_template_: Pass the value returned from do_type.
11564         (do_type): Return a type_kind_t.  Pass tk_integral to
11565         demangle_template_value_parm for array bounds.
11566         (demangle_fund_type): Likewise.
11567         
11568 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
11569
11570         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
11571         identical.
11572
11573 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
11574
11575         * pa.c (move_operand): Accept CONSTANT_P_RTX.
11576
11577 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
11578
11579         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
11580
11581         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
11582         index conversion.
11583
11584 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
11585
11586         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
11587         (DEBUGGER_ARG_OFFSET): Likewise.
11588
11589         * mn10300.md (movsf): Remove last change.  Not needed.
11590
11591 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
11592
11593         * c-lex.c (yylex): Fix boundary conditions in character literal and
11594         string literal loops.
11595
11596 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
11597
11598         * longlong.h (count_leading_zeros): Sparclite scan instruction was
11599         being invoked incorrectly.
11600
11601         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
11602         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
11603         Add -pg support. 
11604         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
11605         * configure.in: Added i[34567]86-*-win32
11606         * config.sub: Ditto.
11607         * configure: Rebuilt.
11608         
11609 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
11610
11611         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
11612         the frame pointer and compiling PIC code and reload has not completed.
11613
11614         * i386.c (output_to_reg): Add code to emulate non-popping DImode
11615         case.
11616
11617 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
11618
11619         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
11620
11621 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
11622
11623         * Makefile.in (install-info): Only try to update the info
11624         directory file if it exists in the first place.
11625
11626 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
11627
11628         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
11629
11630 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
11631
11632         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
11633         CONST_DOUBLE source.
11634
11635 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
11636
11637         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
11638         strings as the insertion of USER_LABEL_PREFIX.
11639         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
11640         valid code.
11641         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
11642         calls. 
11643
11644 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
11645
11646         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
11647         already defined type.
11648
11649 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
11650
11651         * expr.c (check_max_integer_computation_mode): Allow conversions
11652         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
11653         (expand_expr): Likewise.
11654
11655 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11656
11657         * expr.c (expand_expr): Expand RETURN_EXPR.
11658
11659 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
11660
11661         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
11662
11663 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
11664
11665         * dwarf2out.c (output_aranges):  Call stripattributes
11666         for TEXT_SECTION references.
11667         (output_line_info): Likewise.
11668
11669 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11670
11671         * profile.c (branch_prob): Call allocate_reg_info after outputting
11672         profile rtl in instrument_arcs.
11673
11674 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
11675
11676         * fixinc.irix (math.h): Install wrapper instead of copying.
11677
11678 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
11679
11680         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
11681         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
11682         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
11683         lang_flag_0. Added documentation in the flag table.
11684
11685 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
11686
11687         * cccp.c (do_include): Fix vax c style include handling.
11688
11689 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
11690
11691         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
11692
11693 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
11694
11695         * fold-const.c (non_lvalue): Don't deal with null pointer 
11696         constants here.
11697         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
11698
11699 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
11700
11701         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
11702         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
11703         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
11704         (u_short_cint_operand): Same.
11705         (reg_or_cint_operand): Same.
11706         (logical_operand): Same.
11707         (input_operand): Same.
11708         (reg_or_short_operand): Use u_short_cint_operand.
11709
11710 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
11711
11712         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
11713         but keep the insns and splits.  Adjust so when the ultimate destination
11714         is memory, use cvtql.
11715
11716 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
11717
11718         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
11719
11720 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
11721
11722         * gcc.c (do_spec): Call "error" not "warning".
11723
11724         * configure.in: Fix minor problems with gas feature detection code.
11725         * configure: Rebuilt.
11726
11727         * gcc.c (do_spec): Issue a warning for '%[]' usage.
11728
11729         * Undo this change.
11730         * gcc.c: Delete %[spec] support.
11731         (do_spec_1, case '('): Likewise.
11732         (do_spec_1, case '['): Call error.
11733
11734 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
11735
11736         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
11737         (CPP_SUBTARGET_SPEC): Default to empty string.
11738         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
11739         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
11740         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
11741         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
11742         (LIB_SPEC): Tidy.
11743         * alpha/linux.h (CPP_PREDEFINES): Tidy.
11744         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
11745         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
11746         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
11747         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
11748         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
11749         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
11750         * alpha/vxworks.h: Likewise.
11751
11752 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
11753
11754         * mips.md (reload_outsi): Added missing REGNO call.
11755         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
11756         function pointer.
11757         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
11758         another match_operator and compare the codes.
11759
11760         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
11761
11762         * MIPS multiply pattern fixes:
11763         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
11764         Add union classes for HI, LO, or HILO plus general registers.
11765         (GENERATE_MADD): Deleted.
11766         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
11767         Add TARGET_MAD to condition.
11768         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
11769         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
11770         "*d" for accumulator, to give preference to LO initially but not
11771         during reload.
11772
11773 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
11774
11775         * configure.in (enable_c_mbchar): New configure option.
11776         (extra_cpp_objs): Always available now.
11777
11778         * cexp.y (mbchar.h): #include it.
11779         (yylex): Handle Multibyte characters in character literals.
11780
11781         * cccp.c (mbchar.h): #include it.
11782         (main): Set character set based on LANG environment variable.
11783         (rescan): Handle multibyte characters in comments.
11784         (skip_if_group): See above.
11785         (validate_else): See above.
11786         (skip_to_end_of_comment): See above.
11787         (macarg1): See above.
11788         (discard_comments): See above.
11789         (rescan): Handle multibyte characters in string and character literals.
11790         (collect_expansion): See above.
11791         (skip_quoted_string): See above.
11792         (macroexpand): See above.
11793         (macarg1): See above.
11794         (discard_comments): See above.
11795         (change_newlines): See above.
11796
11797         * c-lex.c (mbchar.h): #include it.
11798         (GET_ENVIRONMENT): New macro.
11799         (init_lex): Set character set based on LANG environment variable.
11800         (yylex): Handle multibyte characters in character literals.
11801         (yylex): Handle multibyte characters in string literals.
11802
11803         * Makefile.in (mbchar.o): New target.
11804         (cccp$(exeext)): @extra_cpp_objs@ is always available.
11805         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
11806
11807         * mbchar.[ch]: New files for multibyte character handling.
11808
11809 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11810
11811         * jump.c (jump_optimize): When simplifying noop moves and
11812         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
11813         the PUSHes to rewrite in second loop as we did in the first.
11814
11815 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11816
11817         * cplus-dem.c (demangle_nested_args): Make function definition
11818         static to match the prototype.
11819
11820 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
11821
11822         * alloca.c: Respect USE_C_ALLOCA.
11823         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
11824         * gengenrtl.c (xmalloc): Likewise.
11825
11826 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
11827
11828         * loop.h (struct induction): Add no_const_addval.
11829         * loop.c (the_movables, reg_address_cost): New variables.
11830         (init_loop): Init reg_address_cost.
11831         (loop_optimize): Call end_alias_analysis.
11832         (scan_loop): Init the_movables.
11833         (record_giv): Init induction->no_const_addval.
11834         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
11835         [REG]: Rearrange loop search test to catch more cases.
11836         (general_induction_var): Return success not benefit; take an extra
11837         argument for that.  Change all callers.
11838         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
11839         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
11840         [default]: Search the_movables for additional combinations.
11841         (sge_plus_constant, sge_plus): New functions.
11842         (express_from_1): New function.
11843         (express_from): Always define.  Rewrite using express_from_1.
11844         (combine_givs_p): Handle more cases.  Ignore address cost.
11845         (cmp_combine_givs_stats): New function.
11846         (combine_givs_used_once, combine_givs_benefit_from): New functions.
11847         (combine_givs): Rewrite to do best-fit combination.
11848
11849         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
11850         (fold): Do a complete (A*C)+(B*C) association check.
11851
11852 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
11853
11854         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
11855
11856 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
11857
11858         * mn10300.c (MODES_TIEABLE_P): Fix typo.
11859
11860 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
11861
11862         * tree.c (valid_machine_attribute): Only create a new type variant if
11863         there is a decl to use it.
11864
11865 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
11866
11867         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
11868         a suffix.
11869
11870 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
11871
11872         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
11873         be deleted" 
11874
11875 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
11876
11877         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
11878         Simplify tests for clearing an address register.
11879         (expand_prologue): Corresponding changes.
11880
11881         * mn10300.md (movXX patterns): Make sure the destination is an
11882         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
11883         (logical patterns): Split into expanders + patterns
11884         (zero and sign extension patterns): Similarly.
11885         (shift patterns): Similarly.
11886
11887 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
11888
11889         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
11890         for the sequence, recording base values.
11891
11892 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
11893
11894         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
11895
11896 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
11897
11898         * gcc.c: Remove ANSI-C ism from --help code.
11899
11900         * toplev.c: Support --help with USE_CPPLIB.
11901
11902 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
11903
11904         * configure.in: Rework gas feature code to work with symlink based
11905         source trees.
11906
11907         * extend.texi: Clarify some issues related to local variables
11908         assigned to explicit registers.
11909
11910         * mn10300.md (mulsi): Turn into expander + pattern.
11911
11912         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
11913         alternative.
11914
11915 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
11916
11917         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
11918
11919 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
11920
11921         * version.c: Bump again to distinguish mainline tree from the
11922         egcs-1.1 branch.
11923
11924 See ChangeLog.0 for earlier changes.
11925
11926 Local Variables:
11927 add-log-time-format: current-time-string
11928 End: