OSDN Git Service

* calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
2
3         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
4         allocate memory that will live beyond this function.
5         (expand_call): Free it here.
6
7 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
8
9         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
10         integer data not destined for fp regs.
11         (LEGITIMIZE_RELOAD_ADDRESS): New.
12
13 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
14                           Richard Henderson  <rth@cygnus.com>
15
16         Support for Hypersparc and Sparclite86x:
17         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
18         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
19         (ASM_CPU32_DEFAULT_SPEC): Likewise.
20         (TARGET_CPU_DEFAULT): Likewise.
21         (enum processor_type): Likewise.
22         (CPP_ENDIAN_SPEC): Handle little endian data.
23         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
24         (ADJUST_COST): Call sparc_adjust_cost.
25         * sparc.c (sparc_override_options): Fix up for the new targets.
26         (supersparc_adjust_cost): Make static.
27         (hypersparc_adjust_cost): New.
28         (ultrasparc_adjust_cost): Make static.
29         (sparc_adjust_cost): New.
30         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
31         (function_unit): Add hypersparc scheduling rules.
32
33         * configure.in (with_cpu handler): Recognize hypersparc.
34
35 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
36
37         * config/c4x/c4x.c: Added space after negation operator.
38         * config/c4x/c4x.h: Likewise.
39         * config/c4x/c4x.md: Likewise.
40
41 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
42
43         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
44
45 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
46
47         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
48         when a test can't be performed due to limited width of
49         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
50         Fix UDIV case for cases where the first operand has the highest bit
51         set.
52
53 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
54
55         * pa.h (reg_class): Add FPUPPER_REGS.
56         (REG_CLASS_NAMES): Similarly.
57         (REG_CLASS_CONTENTS): Similarly
58         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
59         (FP_REG_CLASS_P): Likewise.
60         (REG_CLASS_FROM_LETTER): Similarly.
61         (CLASS_MAX_NREGS): Similarly.
62
63 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
64
65         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
66         for a typedef of bool.  Make sure to have a copy of the file is
67         in place before we look to fix it.  Fix typo in variable name to
68         FILE.
69
70 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
71
72         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
73         value_mode for the return mode.
74
75 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
76
77         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
78         debugging as default.
79
80         * config/tm-dwarf2.h: New file.
81
82 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
83
84         * h8300.h (ASM_OUTPUT_LABELREF): Define.
85
86         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
87         * local-alloc.c (update_equiv_regs): Corresponding changes.
88         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
89
90         * calls.c (special_function_p): Push alloca test inside the large
91         conditional which excludes functions not at file scope or not
92         extern.  
93
94         * calls.c (special_function_p): New function broken out of
95         expand_call.
96         (precompute_register_parameters): Likewise.
97         (store_one_arg): Likewise.
98         (store_unaligned_argumetns_into_pseudos): Likewise.
99         (save_fixed_argument_area): Likewise.
100         (restore_fixed_argument_area): Likewise.
101         (expand_call): Corresponding changes.
102         
103 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
104
105         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
106         handling.
107         (const_sint32_operand): Likewise.
108
109 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
110
111         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
112         is a macro when deciding if we can use `jmp_buf' in prototypes.
113
114 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
115
116         * config/c4x/c4x.md (addqi3): If the destination operand is
117         a hard register other than an extended precision register,
118         emit addqi3_noclobber.
119         (*addqi3_noclobber_reload): New pattern added so that reload
120         will recognise a store of a pseudo, equivalent to the sum
121         of the frame pointer and a constant, as an add insn.
122
123 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net.
124
125         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
126         * configure: Rebuilt.
127         * i386/xm-go32.h: Define LIBSTDCXX.
128         * i386/x-go32: New.
129         * i386/go32.h (MD_EXEC_PREFIX): Define.
130         (FILE_NAME_ABSOLUTE_P): Define.
131         (LINK_COMMAND_SPEC): Define.
132
133 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
134
135         * expr.c (store_expr): If the lhs is a memory location pointed
136         to be a postincremented (or postdecremented) pointer, always
137         force the rhs to be evaluated into a pseudo.
138
139 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
140
141         * real.c (mtherr): Print more reasonable warning messages.
142
143 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
144
145         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
146
147         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
148         (new_include_prefix): Constify char* parameters.
149
150         * cppfiles.c (read_name_map): Likewise.
151         (append_include_chain): Likewise.  Also, use a writable char* copy
152         of parameter `dir' which we then modify, rather than using the
153         parameter itself to store the new writable string.
154         (remap_filename): Constify some variables.  Also, use a writable
155         char* to store an allocated string which we will be modifying.
156
157         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
158         (cpp_start_read): Constify variable `str'.
159
160         * cpplib.h (append_include_chain): Constify a char* parameter.
161
162         * gcc.c Include prefix.h, don't prototype prefix.c functions.
163         (add_prefix, save_string): Constify char* parameters.
164         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
165
166         * prefix.c: Include prefix.h.
167         (get_key_value, translate_name, save_string, update_path,
168         set_std_prefix): Constify various char* parameters and variables.
169         (save_string): Use xmalloc, not malloc.
170         (translate_name): Use a writable temporary variable to create and
171         modify a string before setting it to a const char*.
172         
173         * prefix.h: New file to prototype functions exported from prefix.c.
174
175 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
176
177         * cpplib.c (skip_if_group): Split out the logic that handles
178         directive recognition to its own function.  Don't use
179         parse markers; use a bare pointer into the buffer.  Use
180         copy/skip_rest_of_line instead of doing it by hand.  Remove
181         `return on any directive' mode which was never used, and take
182         only one argument.
183         (consider_directive_while_skipping): New function, subroutine
184         of skip_if_group.  Logic streamlined a bit.
185         (conditional_skip, do_elif, do_else): Call skip_if_group with
186         only one argument.
187
188 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
189
190         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
191         error.
192
193 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
194
195         * extend.texi (Bound member functions): Document.
196
197 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
198
199         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
200         lang_to_string, type_to_string): Make return type const char*.
201         (print_symbol): Apply `const' keyword to a char*.
202         (print_file_desc): Cast structure member `crfd' to ulong when
203         comparing against one.
204
205         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
206         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
207         (progname, input_name): Apply `const' keyword to a char*.
208         Don't redundantly include sys/stat.h.
209         (alloc_info): Apply `const' keyword to a char*.
210         (st_to_string, sc_to_string): Likewise.
211         (hash_string): Cast variable `hash_string' to a symint_t when
212         comparing against one.
213         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
214         Likewise cast it to long when comparing against one.
215         (add_local_symbol): Apply `const' keyword to a char*.
216         (add_ext_symbol): Likewise.
217         (add_unknown_tag): Likewise.
218         (add_procedure): Cast a printf-style field width to an int.
219         (add_file): Cast PAGE_USIZE to long when comparing against one
220         (parse_begin): Cast a printf-style field width to an int.
221         (parse_bend): Likewise.
222         (parse_def): Likewise.
223         (parse_end): Likewise.
224         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
225         (parse_stabs_common): Fix format specifier.
226         (parse_input): Change type of variable `i' to Size_t.
227         (write_object): Fix arguments to match format specifiers.
228         Cast variable `num_write' to long when comparing against one.
229         (read_seek): Cast variable `sys_read' to symint_t when comparing
230         against one.  Fix arguments to match format specifiers.  Cast
231         variable `size' to long when comparing against one.
232         (copy_object): Cast result of `sizeof' to int when comparing
233         against one.  Fix arguments to match format specifiers.  Cast
234         variable `ifd' to long when comparing against a signed value.
235         Likewise, likewise.
236         
237 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
238
239         * c-common.c (decl_attributes): Allow applying attribute `unused'
240         on a LABEL_DECL.
241
242         * c-parse.in (label): Parse attributes after a label, and call
243         `decl_attributes' to handle them.
244
245         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
246
247         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
248         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
249
250         * invoke.texi: Note that labels can be marked `unused'.
251
252 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
253
254         * version.c: Bump for snapshot.
255
256 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
257
258         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
259         RTL for a compare/jump sequence.
260         
261 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
262
263         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
264         for a target with HAVE_cc0 defined.
265         (emit_cmp_and_jump_insns): New function.
266         * expr.h (emit_cmp_and_jump_insns): Prototype it.
267         * loop.c (check_dbra_loop): Use it to replace calls
268         to emit_cmp_insn and emit_jump_insn and to canonicalise
269         the comparison if necessary.
270         * unroll.c (unroll_loop): Likewise.
271
272 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
273
274         * fixincludes (sys/utsname.h): Provide forward declaration of
275         struct utsname on Ultrix V4.[35].
276
277         * mips.md (div_trap): Use local labels instead of dot-relative
278         branches.
279
280 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
281
282         * pa.md (branch, negated branch): Handle (const_int 0) as first
283         source operand.
284         * pa.c (output_cbranch): Likewise.
285
286 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@mhpcc.edu>
287
288         * rs6000.c (rs6000_stack_info): Undo spurious part of last
289         change.
290
291 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
292
293         * extend.texi (__builtin_constant_p): Add missing @smallexample.
294
295 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
296
297         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
298
299 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
300
301         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
302         (adddi_dishl32): Similarly.
303
304         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
305         for each insn in the skipped block.
306
307         * reload1.c (reload_as_needed): Verify that the insn satisfies its
308         constraints after replacing a register address with an autoincrement
309         address for reload inheritance purposes.
310
311         * i386.md (doubleword shifts): Avoid namespace pollution.
312
313 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
314
315         * configure.in (FreeBSD ELF): Needs special crt files.
316
317 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
318
319         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
320
321 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
322
323         * loop.c (check_dbra_loop): While reversing the loop, if the
324         comparison value has a VOID mode use the mode of the other operand
325         to compute the mask.
326
327 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
328
329         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
330         avoid warnings in compiling explow.c.
331
332         (patch from Ken Raeburn, raeburn@cygnus.com)
333         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
334         fpmem_offset.  Compute total size after that, and then
335         rs6000_fpmem_offset using both values.
336
337 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
338
339         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
340         the future; indeed that already happens in some cases.
341
342 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
343
344         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
345         (arith_operand): Remove constant_p_rtx handling.
346         (const64_operand, const64_high_operand): Likewise.
347         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
348         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
349         (small_int_or_double, uns_small_int, zero_operand): Likewise.
350         * sparc.h (PREDICATE_CODES): Likewise.
351
352         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
353
354 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
355
356         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
357         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
358         consider constant CONSTRUCTOR constant and to defer some cases
359         to cse.
360         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
361         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
362
363 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
364
365         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
366         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
367
368         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
369         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
370         (sext_add_operand, and_operand, or_operand): Likewise.
371         (reg_or_cint_operand, some_operand, input_operand): Likewise.
372         * alpha.h (PREDICATE_CODES): Likewise.
373
374 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
375
376         * version.c: Bump for snapshot.
377
378 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
379
380         * gengenrtl.c (gencode): Always use bzero to clear memory instead
381         of dangerous casts and stores.
382
383         * Makefile.in (compare, gnucompare): Add missing else true clauses.
384
385 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
386
387         * alpha.md (builtin_longjmp): Add missing "DONE".
388
389 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
390
391         * gcc.c (execute): Enable -pipe with win32.
392
393 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
394
395         * config/arm/t-arm-elf: Add multiplib option for leading
396         underscores.
397
398         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
399         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
400
401         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
402         than variable 'reload_address_base_reg_class'.  [Note this
403         change is unrelated to the others in this patch].
404
405         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
406         leading underscore.
407
408 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
409
410         * alias.c (record_alias_subset): Remove ignored `&'.
411         (init_alias_once): Likewise.
412
413         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
414
415         * config/mips/mips.c (mips_asm_file_end): Cast the result of
416         fwrite to `int' when comparing against one.
417
418         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
419         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
420
421         * cse.c (rehash_using_reg): Change type of variable `i' to
422         unsigned int.
423
424         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
425         assigning it to one.
426
427         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
428
429         * final.c (final_scan_insn): Likewise for variable `i'.
430         (output_asm_insn): Cast a char to unsigned char when used as an
431         array index.
432
433         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
434         assigning it to one.
435
436         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
437
438         * recog.c (preprocess_constraints): Cast a char to unsigned char
439         when used as an array index.
440
441         * regmove.c (find_matches): Likewise.
442
443         * reload1.c (calculate_needs): Add default case in switch.
444         (eliminate_regs_in_insn): Initialize variable `offset'.
445         (set_offsets_for_label): Change type of variable `i' to unsigned.
446         (reload_as_needed): Wrap variable `i' in macro check on
447         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
448
449         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
450         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
451         when comparing against one.
452
453         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
454         unsigned when comparing against one.  Likewise for
455         GET_MODE_ALIGNMENT().
456         (layout_record): Cast record_align to int when comparing against a
457         signed value. 
458         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
459         signed value.
460
461         * tree.c (get_identifier): Cast variable `len' to unsigned when
462         comparing against one.
463         (maybe_get_identifier): Likewise
464
465 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
466
467         * toplev.c (rest_of_compilation): Do not set reload_completed.
468         * reload1.c (reload): Set reload_completed before calling
469         cleanup_subreg_operands.
470
471 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
472
473         * reload1.c (emit_reload_insns): Check `set' not null before use.
474
475 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
476
477         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
478         'int'. 
479
480 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
481
482         * halfpic.c (half_pic_encode): Delete redundant code.
483
484 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
485
486         * toplev.c (main): Delete handling of -dM as a preprocessor
487         option.
488
489 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
490
491         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
492         -dI, which are handled by the preprocessor.
493
494 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
495
496         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
497         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
498
499 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
500
501         * version.c: Bump for snapshot.
502
503 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
504
505         * version.c: Bump for snapshot.
506
507 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
508
509         * version.c: Bump for snapshot.
510
511 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
512
513         * genattr.c (fatal): Qualify a char* with the `const' keyword.
514         
515         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
516         write_unit_name, write_eligible_delay, expand_units,
517         make_length_attrs, write_attr_case, find_attr,
518         make_internal_attr): Likewise.
519         * gencheck.c (tree_codes): Likewise.
520         * gencodes.c (fatal): Likewise.
521         * genconfig.c (fatal): Likewise.
522         * genemit.c (fatal): Likewise.
523         * genextract.c (fatal, walk_rtx, copystr): Likewise.
524         * genflags.c (fatal): Likewise.
525         * genopinit.c (fatal, optabs, gen_insn): Likewise.
526         * genoutput.c (fatal, error, predicates): Likewise.
527         * genpeep.c (fatal): Likewise.
528         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
529         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
530
531 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
532
533         * configure.in (with-fast-fixincludes): Fix whitespace.
534         * configure: Rebuilt.
535
536         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
537         asm() etc. function declarations in __DECC.
538
539 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
540
541         * expr.c (emit_move_insn_1): Only emit a clobber if the target
542         is a pseudo register.
543
544 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
545
546         * gcse.c: Include expr.h in order to get the prototype for
547         get_condition() which is used in delete_null_pointer_checks(). 
548
549 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
550
551         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
552
553 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
554
555         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
556         (ALL_CFLAGS): Delete SCHED_CFLAGS.
557
558 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
559
560         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
561         ';').
562
563 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
564
565         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
566         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
567         optimizations from the combiner.
568
569 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
570
571         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
572
573 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
574
575         * toplev.c (main): Disable optimize_size if a specific
576         optimization level is requested.  Always set optimization
577         level to 2 if -Os is specified.
578
579 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
580
581         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
582         cpplib.
583         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
584         initialize it using fname.
585
586 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
587
588         * cpplib.c (do_include): Treat #include_next in the
589         primary source file as #include plus warning.  Treat
590         #include_next in a file included by absolute path as an
591         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
592
593 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
594
595         * cccp.c: Don't define MIN/MAX anymore.
596         * cpplib.c: Likewise.
597         * machmode.h: Likewise.
598         * system.h: Provide definitions for MIN/MAX.
599
600 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
601
602         * fix-header.c: Don't define xstrdup here.
603
604 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
605
606         * loop.c (consec_sets_giv): New argument last_consec_insn.
607         (strength_reduce): Provide / use it.
608
609 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
610
611         * loop.h (loop_info): New field 'vtop'.
612         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
613         scanning loop for vtop.
614         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
615         (loop_iterations): Use them to determine if loop has a constant
616         number of iterations.  Set loop_info->vtop.  Don't subtract
617         common reg term from initial_value and final_value if have a
618         do-while loop.
619
620 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
621
622         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
623
624         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
625
626         * mn10200.md (abssf2, negsf2): New expanders.
627
628         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
629
630 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
631
632         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
633         replaced by a CONCAT whoes components do not have the same
634         mode as the original SUBREG, use a new SUBREG to restore the
635         mode. 
636
637         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
638         multiword complex values.
639
640 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
641
642         * cppalloc.c: Add xstrdup here.
643         * cpplib.h: Remove savestring prototype.
644         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
645           throughout. 
646         * cppfiles.c: s/savestring/xstrdup/ throughout.
647
648 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
649
650         * cpplib.c: Make all directive handlers read their own
651           arguments.
652           (struct directive): Remove last two arguments from FUNC
653           member prototype. Remove `command_reads_line' member
654           entirely.
655           (directive_table): Remove initializations of
656           command_reads_line flag.  Pretty-print.
657           (eval_if_expression, do_define, do_line, do_include,
658           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
659           do_else, do_elif, do_sccs, do_assert, do_unassert,
660           do_warning): Take only two args.
661
662           (cpp_define): Call do_define with two args and the text to
663           define stuffed into a buffer.
664           (make_assertion): Call do_assert with two args.
665           (handle_directive): Call do_line with two args. Call
666           kt->func with two args.  Remove command_reads_line
667           processing.
668           (do_define, do_undef, do_error, do_warning, do_pragma,
669           do_sccs): Read the rest of the line here.
670           (do_ident): Gobble rest of line, as cccp does.
671           (cpp_undef): New function.
672           (cpp_start_read): Call cpp_undef instead of do_undef.
673
674 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
675
676         * cpphash.h (union hash_value): Remove `keydef' member, add a
677           `struct hashnode *aschain' member for #assert.  
678
679           * cpplib.c (struct tokenlist_list, struct
680           assertion_hashnode): Delete structure definitions.
681           (assertion_install, assertion_lookup, delete_assertion,
682           check_assertion, compare_token_lists, reverse_token_list,
683           read_token_list, free_token_list): Delete functions.
684           (parse_assertion): New function.  
685           (cpp_cleanup): Don't destroy the assertion_hashtable.
686
687           (do_assert): Gut and rewrite.  #assert foo (bar) places
688           entries for `#foo' and `#foo(bar)' in the macro hash table,
689           type T_ASSERT.  The value union's `aschain' member is used
690           to chain all answers for a given predicate together.
691           (do_unassert): Also rewritten.  Take an un-asserted
692           answer off the chain from its predicate and call
693           delete_macro on the hashnode, or walk a predicate chain
694           calling delete_macro on all the entries.
695           (cpp_read_check_assertion): Simply call parse_assertion to
696           get the canonical assertion name, and look that up in the
697           hash table.
698
699         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
700         Removed.
701
702         * cpphash.c (install): Use bcopy instead of an explicit loop
703           to copy the macro name.
704
705         * cppexp.c (cpp_lex): Convert the result of
706           cpp_read_check_assertion to a `struct operation' directly;
707           don't go through parse_number.
708
709 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
710
711         * loop.h (struct induction): Delete times_used member.
712         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
713         (n_times_used): Rename to n_times_set.  Changed all users.
714         (scan_loop): Free reg_single_usage before strength reduction.
715         (record_giv, combine_givs): Remove handling of times_used member.
716         (combine_givs_used_once): Rename to:
717         (combine_givs_used_by_other) .  Changed all callers.
718
719 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
720
721         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
722         instead of TREE_CODE_CLASS == 't'.
723         (gen_type_die): Likewise.
724         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
725
726 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
727
728         * real.c (endian): Disable last change unless
729         HOST_BITS_PER_WIDE_INT is greater than 32.
730
731 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
732
733         * output.h (force_data_section): New prototype.
734         * varasm.c (force_data_section): New function to force the
735         data section, regardless of what in_section thinks.
736         * dwarf2out.c (output_call_frame_info): Call force_data_section
737         since varasm may not realize we've changes sections.
738
739 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
740
741         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
742           after completeing reload.
743
744         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
745           deleted after reload.
746
747 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
748
749         * rtl.h (multiple_sets): Fix prototype.
750         * rtlanal.c (multiple_sets): Fix return type.
751
752 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
753
754         * version.c: Bump for snapshot.
755
756 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
757
758         * version.c: Bump for snapshot.
759
760 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
761
762         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
763
764 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
765
766         * rtl.h (recompute_reg_usage): Add second argument.
767         * flow.c (recompute_reg_usage): Likewise.
768         * toplev.c (rest_of_compilation): Supply second argument to
769         recompute_reg_usage.
770
771         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
772         after reload.
773
774 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
775
776         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
777         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
778         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
779         mcpu32 or m5200.
780
781         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
782
783         * rtlanal.c (multiple_sets): New function.
784         * rtl.h (multiple_sets): Declare it.
785         * local-alloc.c (wipe_dead_reg): Use it.
786         * global.c (global_conflicts): Likewise.
787
788 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
789
790         * global.c (record_conflicts): Don't use an array of shorts to
791         store an array of ints.
792         (global_conflicts): Likewise.
793
794 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
795
796         * alpha.c (alpha_expand_block_move): mode_for_size expects
797         bits, not bytes.  Infer extra alignment from addressof.
798
799 1998-12-11  Michael Meissner  <meissner@cygnus.com>
800
801         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
802         .sbss section, not .sdata.
803
804 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
805
806         * cccp.c: Do not #include <sys/stat.h> here; this is already done
807         by "system.h".
808         * collect2.c: Likewise.
809         * cpplib.h: Likewise.
810         * gcc.c: Likewise.
811         * gcov.c: Likewise.
812         * getpwd.c: Likewise.
813         * protoize.c: Likewise.
814         * toplev.c: Likewise.
815
816         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
817         and don't try to define it here.
818         * Makefile.in (cppmain.o): Depend on machmode.h.
819         (cpplib.o): Likewise.
820         (cpperror.o): Likewise.
821         (cppexp.o): Likewise.
822         (cppfiles.o): Likewise.
823         (cpphash.o): Likewise.
824         (cppalloc.o): Likewise.
825         (fix-header.o): Likewise.
826         (scan-decls.o): Likewise.
827
828 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
829
830         * sh.c (print_operand): lookup interrupt_handler attribute instead
831         of relying on static variable. 
832         * (calc_live_regs): Likewise.
833         * (sh_pragma_insert_attributes): Create interrupt_handler
834         attribute if a pragma was specified
835         * (sh_valid_machine_decl_attribute): Don't set static flag.
836         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
837
838 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
839
840         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
841         to determine if a register is live at a jump destination.
842         Everything is dead at a BARRIER.
843
844 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
845
846         * cse.c (simplify_unary_operation): Sign-extend constants when
847         they have the most significant bit set for the target.
848         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
849         host.
850         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
851         HOST_WIDE_INT temporary before negating it.
852         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
853
854 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
855
856         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
857         #if USE_CPPLIB.
858
859 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
860
861         * collect2.h: New header file for prototypes.
862
863         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
864
865         * collect2.c: Include collect2.h.
866         * tlink.c: Likewise.
867
868 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
869
870         * flow.c: Update some comments.
871
872 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
873
874         * objc/objc-act.c (cpp_initialized): Removed.
875         (lang_init_options): Initialize cpplib.
876         (lang_decode_option): Move initialization of cpplib to
877         lang_init_options.
878         * c-lang.c: (parse_options,parse_in): Added.
879         (lang_init_options): Initialized cpplib here.
880         * c-decl.c (parse_options,cpp_initialized): Removed.
881         (c_decode_option): Move initialization of cpplib to
882         lang_init_options.
883
884 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
885
886         * reload1.c (reload_combine, reload_combine_note_store):
887         Make STORE_RUID always valid.
888         (reload_combine): Check if BASE is clobbered too early.
889
890 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
891
892         * reload.c (find_reloads): Display the insn that cannot be
893         reloaded. 
894
895 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
896
897         * cccp.c (create_definition): Fix end of bufer logic.
898
899 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
900
901         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
902         pointer parameters changed to use the PARAMS() macro.
903
904 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
905
906         * except.h (struct handler_info): Add handler_number field.
907         * except.c (gen_exception_label): EH labels no longer need to be
908         on the permanent obstack.
909         (get_new_handler): Set the label number field.
910         (output_exception_table_entry): Regenerate handler label reference 
911         from the label number field.
912         (init_eh): Remove a blank line.
913         * integrate.c (get_label_from_map): Labels no longer need to be
914         on the permanent obstack.
915
916 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
917
918         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
919         only when OUTER_CODE is SET.
920
921 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
922
923         * loop.c (strength_reduce): If scan_start points to the loop exit
924         test, be wary of subversive use of gotos inside expression statements.
925         Don't set maybe_multiple for a backward jump that does not
926         include the label under consideration into its range.
927         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
928
929 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
930
931         * explow.c (plus_constant_wide): Don't immediately return with
932         result of recursive call.
933
934 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
935
936         * eh-common.h (struct eh_context): Add table_index for rethrows.
937
938         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
939         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
940         processed when inlined or unrolled (ie duplicated in some way).
941
942         * rtl.c (reg_note_name): Add strings for new reg_note enums.
943
944         * expr.h (rethrow_libfunc): New library decl.
945
946         * optabs.c (rethrow_libfunc): Initialize.
947
948         * except.h (struct eh_entry): Add new field 'rethrow_label'.
949         (new_eh_region_entry): No longer exported from except.c.
950         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
951         different prototype.
952         (rethrow_symbol_map, rethrow_used): New exported functions.
953         (eh_region_from_symbol): New exported function.
954
955         * except.c (create_rethrow_ref): New function to create a single
956         SYMBOL_REF for a rethrow region.  
957         (push_eh_entry): Initialize a rethrow ref.
958         (func_eh_entry): Add a rethrow_label field.
959         (new_eh_region_entry): Make static, and initialize the rethrow entry.
960         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
961         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
962         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
963         a region into an appropriate new symbol.
964         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
965         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
966         (end_catch_handler): Emit a barrier for new-exceptions since 
967         control can never drop through the end of a catch block.
968         (expand_end_all_catch): new-exceptions never fall through a catch 
969         block.
970         (expand_rethrow): use __rethrow routine for new exceptions.
971         (output_exception_table_entry): Generate rethrow labels, if needed.
972         (output_exception_table): Generate start and end rethrow labels.
973         (init_eh): Create rethrow symbols for beginning and end of table.
974         (scan_region): Don't eliminate EH regions which are the targets of
975         rethrows.
976
977         * flow.c (make_edges): Add different edges for rethrow calls, 
978         identified by having the REG_EH_RETHROW reg label.
979         (delete_unreachable_blocks): Don't delete regions markers which are 
980         the target of a rethrow.
981
982         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
983         allow save_for_inline_copying to call duplicate_eh_handlers.
984         (save_for_inline_copying): Call duplicate_eh_handlers instead of
985         exposing internal details of exception regions.
986         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
987         (expand_inline_function_eh_labelmap):  New callback routine to 
988         allow expand_inline_function to call duplicate_eh_handlers.
989         (expand_inline_function): Call duplicate_eh_handlers instead of
990         exposing internal details of exception regions.
991         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
992         flag is set.
993
994         * libgcc2.c (find_exception_handler): Generalize to enable it to
995         pick up processing where it left off last time for a rethrow.
996         (__unwinding_cleanup): New function. debug hook which is called before
997         unwinding when __throw finds there is nothing but cleanups left.
998         (throw_helper): Common parts of __throw extracted out for reuse.
999         (__throw): Common parts moved to throw_helper.
1000         (__rethrow): New function for performing rethrows.
1001
1002 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
1003
1004         * reload1.c (current_function_decl): Tweak declaration.
1005
1006 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
1007
1008         * c-decl.c (flag_isoc9x): Default off.
1009         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
1010         * cccp.c (print_help, main): Likewise.
1011         * gcc.c (default_compilers): Update for -std=gnu*.
1012
1013 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
1014
1015         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
1016         * demangle.h: Deleted.
1017
1018         * reload1.c (current_function_decl): Declare.
1019
1020 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1021
1022         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
1023
1024 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1025
1026         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
1027
1028 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
1029
1030         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
1031         and fputs_unlocked.
1032         * configure: Rebuilt.
1033         * system.h: If the *_unlocked functions are available use them
1034         instead of the locked counterparts by defining macros.
1035         * config.in: Regenerated.
1036
1037 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
1038
1039         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
1040         wrong and should only be used for dump related things, not
1041         debugging information, instead main_input_filename should be used.
1042         Also, reuse output_file_directive if possible.
1043         * i386/aix386ng.h (ASM_FILE_START): Likewise.
1044         * i386/isc.h (ASM_FILE_START): Likewise.
1045         * i386/win-nt.h (ASM_FILE_START): Likewise.
1046         * i386/sun386.h (ASM_FILE_START): Likewise.
1047
1048 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
1049
1050         * configure.in (mips*-*-linux*): Handle big and little endian
1051         systems.
1052         * configure: Rebuilt.
1053
1054 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
1055
1056         * emit-rtl.c: Fix typo.
1057
1058 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
1059
1060         * reload1.c (eliminate_regs): Don't do anything, if we're not
1061         generating code.
1062
1063 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
1064
1065         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
1066         Add comment.
1067         * mips/mips.c (mips_select_section): Add comment.
1068
1069 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
1070
1071         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
1072         characters in file names in #line to be consistent with #include
1073         handling.  We support escape prcessing in the # 1 "..." version of
1074         the command.  See also support in cp/lex.c.
1075         (handle_directive): Likewise.
1076         (do_line): Likewise.
1077         
1078 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1079
1080         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
1081           so it'll work on non-ASCII platforms.  Always consider $ an
1082           identifier character.  Take no arguments.
1083           (cpp_reader_init): Call initialize_char_syntax with no
1084           arguments.
1085           (cpp_start_read): Don't call initialize_char_syntax again.
1086           Clear is_idchar['$'] and is_idstart['$'] if not
1087           opts->dollars_in_ident.
1088
1089         * cpplib.h (struct cpp_reader): Replace void *data element by
1090           cpp_options *opts.  Rearrange elements to make gdb printout
1091           less annoying (put buffer stack at end).
1092           (CPP_OPTIONS): Get rid of now-unnecessary cast.
1093
1094         * cppmain.c: s/data/opts/ when initializing cpp_reader
1095           structure.
1096         * c-decl.c: Likewise.
1097         * objc/objc-act.c: Likewise.
1098         * fix-header.c: Likewise.
1099
1100 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1101
1102         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
1103         with a struct file_name_list pointer.
1104         (struct cpp_reader): Add pointer to chain of `actual
1105         directory' include searchpath entries.
1106         (struct file_name_list): Add *alloc pointer for the sake of
1107         the actual-directory chain.
1108
1109         Move definition of HOST_WIDE_INT here.
1110         (cpp_parse_escape): Change prototype to match changes in
1111         cppexp.c.
1112
1113         * cppfiles.c (actual_directory): New function.
1114         (finclude): Use it to initialize the buffer's actual_dir
1115         entry.
1116         (find_include_file): We don't need to fix up max_include_len
1117         here.
1118
1119         * cpplib.c (do_include): Don't allocate a file_name_list on
1120         the fly for current directory "" includes, use the one that's
1121         been preallocated in pfile->buffer->actual_dir.  Hoist out
1122         duplicate code from the search_start selection logic.
1123         (cpp_reader_init): Initialize pfile->actual_dirs.
1124
1125         Remove definition of HOST_WIDE_INT.  Change calls
1126         to cpp_parse_escape to match changes in cppexp.c (note
1127         hardcoded MASK, which is safe since this is the source
1128         character set).
1129
1130         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
1131         to handle wide character constants in #if directives.  The
1132         function now returns a HOST_WIDE_INT, and takes a third
1133         argument which is a binary mask for all legal values (0x00ff
1134         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
1135         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
1136         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
1137
1138 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
1139
1140         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
1141
1142 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1143
1144         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
1145         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
1146         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
1147
1148 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
1149
1150         * final.c (output_asm_name): Use tabs to seperate comments from
1151         assembly text.
1152         
1153         Include instruction lengths (if defined) in output.
1154
1155 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1156
1157         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
1158         in the loop_info structure.
1159         
1160 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
1161  
1162         * configure.in:  (arm*-*-ecos-elf):  New target.
1163         * configure:  Regenerated.
1164         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
1165         * config/arm/ecos-elf.h:  New file.
1166         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
1167         for redefinition.
1168  
1169 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1170
1171         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
1172
1173 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
1174
1175         * version.c: Bump for snapshot.
1176
1177 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1178
1179         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
1180         as needed.
1181
1182 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
1183
1184         * version.c: Bump for snapshot.
1185
1186 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1187
1188         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
1189         compressed reports are ok and preferred over URLs
1190
1191 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
1192
1193         * invoke.texi (Warning Options): Soften the tone of -pedantic
1194
1195 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
1196
1197         * print-rtl.c (print_rtx): Add prototype.
1198
1199         * unroll.c (iteration_info): Make it static.
1200
1201 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
1202
1203         * alias.c (memrefs_conflict_p): A second ANDed address
1204         disables the aligned address optimization.
1205
1206 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
1207
1208         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
1209         in -c << n case.
1210
1211 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
1212
1213         * i960.h (BOOL_TYPE_SIZE): Define.
1214
1215 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1216
1217         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
1218         from old valid_parallel_operands_4.
1219         (valid_parallel_operands_4): Check that operands for 4 operand
1220         parallel insns are valid, excluding load/store insns.
1221         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
1222         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
1223         valid_parallel_load_store instead of valid_parallel_operands_4.
1224         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
1225         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
1226         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
1227         *notqi_movqi_clobber): Use valid_parallel_operands_4.
1228         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
1229         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
1230         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
1231
1232 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1233
1234         * config/c4x/c4x.c (iteration_info): Delete extern.
1235
1236 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
1237
1238         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
1239
1240         * final.c (cleanup_subreg_operands): Delete some unused code.
1241
1242         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
1243         (struct insn_alternative): New structure definition.
1244         (recog_op_alt): Declare variable.
1245         (preprocess_constraints): Declare function.
1246         * recog.c (recog_op_alt): New variable.
1247         (extract_insn): Verify number of alternatives is in range.
1248         (preprocess_constraints): New function.
1249         * reg-stack.c: Include recog.h.
1250         (constrain_asm_operands): Delete.
1251         (get_asm_operand_lengths): Delete.
1252         (get_asm_operand_n_inputs): New function.
1253         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
1254         N_OUTPUTS args.  All callers changed.
1255         Compute number of inputs and outputs here by calling
1256         get_asm_operand_n_inputs.
1257         Instead of constrain_asm_operands, call extract_insn,
1258         constrain_operands and preprocess_constaints.  Use information
1259         computed by these functions throughout.
1260         (record_reg_life): Delete code that is unused due to changes in
1261         record_asm_reg_life.
1262         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
1263         N_INPUTS and N_OUTPUTS args.  All callers changed.
1264         Similar changes as in record_asm_reg_life.
1265         (subst_stack_regs): Move n_operands declaration into the if statement
1266         where it's used.
1267         Delete code that is unused due to changes in subst_asm_stack_regs.
1268         * stmt.c (expand_asm_operands): Verify number of alternatives is in
1269         range.
1270         * Makefile.in (reg-stack.o): Depend on recog.h.
1271
1272 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
1273
1274         * except.c (set_exception_version_code): Argument is an "int".
1275
1276 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
1277
1278         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
1279         * configure: Rebuilt.
1280
1281 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
1282
1283         * configure.in (mipsel-*-linux*): New target.
1284         * mips/linux.h: New file, based on other Linux targets.
1285
1286 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
1287
1288         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
1289         runs in the context of the deleter, not the deletee, so we must
1290         use taskVarGet to find the correct memory to free.
1291         (__gthread_key_create): Initialize the task
1292         variable subsystem so that the task variable is still active when
1293         the delete hook is run.
1294
1295 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1296
1297         * pdp11.h: Use optimize_size for space optimizations.
1298         * pdp11.c: Likewise.
1299         * pdp11.md: Likewise.
1300
1301         * pdp11.h (TARGET_40_PLUS): Fix typo.
1302
1303 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
1304
1305         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
1306         qty lifetimes.
1307
1308 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1309
1310         * alias.c (addr_side_effect_eval): New function.
1311         (memrefs_conflict_p): Use it.
1312         * rtl.h (addr_side_effect_eval): Prototype it.
1313
1314 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1315
1316         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
1317
1318 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
1319
1320         * reload.c (find_reloads): When force const to memory, put result
1321         in substed_operand not *recog_operand_loc.
1322
1323 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
1324
1325         * c-lex.c: Fix indentation from last patch.
1326         Remove trailing whitespace.
1327         * real.c: Likewise.
1328
1329 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
1330
1331         * flow.c (delete_block): Call set_last_insn after we have reset
1332         NEXT_INSN (kept_tail).
1333
1334 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
1335
1336         * mips.md (trap_if): Use "$0" for the value zero.
1337
1338 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
1339                           Stephen L Moshier  <moshier@world.std.com>
1340                           Richard Henderson  <rth@cygnus.com>
1341
1342         * c-common.c (declare_function_name): Declare predefinied variable
1343         `__func__'.
1344
1345         * c-decl.c (flag_isoc9x): Set to 1 by default.
1346         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
1347         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
1348
1349         * c-parse.in: Allow constructors in ISO C 9x.
1350         Rewrite designator list handling.
1351         Allow [*] parameters.
1352         Don't warn about comma at end of enum definition for ISO C 9x.
1353
1354         * cccp.c (c9x): New variable.
1355         (rest_extension): New variable.
1356         (print_help): Document new -std= option.
1357         (main): Recognize -std= option.  Set c9x appropriately.
1358         (create_definition): Recognize ISO C 9x vararg macros.
1359
1360         * gcc.c (default_compilers): Adjust specs for -std options.
1361         (option_map): Add --std.
1362         (display_help): Document -std.
1363
1364         * toplev.c (documented_lang_options): Add -std and remove
1365         -flang-isoc9x.
1366         
1367         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
1368         or REAL_VALUE_HTOF based on base of the constants.
1369         * fold-const.c (real_hex_to_f): New function.  Replacement function
1370         for hex FP conversion if REAL_ARITHMETIC is not defined.
1371         * real.c (asctoeg): Add handling of hex FP constants.
1372         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
1373         real_hex_to_f.
1374
1375 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
1376
1377         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
1378         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
1379         expansion.  Use hi/lo as destination register.
1380         (div_trap): New.
1381         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
1382         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
1383         Avoid as macro expansion.  Use hi/lo as destination register. 
1384
1385         * mips.h (MASK_CHECK_RANGE_DIV): New.
1386         (MASK_NO_CHECK_ZERO_DIV): New.
1387         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
1388         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
1389         return address for leaf functions out of r31 to support
1390         builtin_return_address. 
1391         
1392 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1393
1394         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
1395         NEXT_INSN(x) to check insn x.
1396         
1397 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
1398
1399         * flow.c (delete_block): Call set_last_insn if we end up deleting the
1400         last insn in the rtl chain.
1401
1402         * reload1.c (reload): Do not set reload_completed or split insns
1403         here.  Instead...
1404         * toplev.c (rest_of_compilation): Set reload_completed after
1405         reload returns.  Split insns after reload_cse has run.
1406
1407 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
1408
1409         * final.c (final_scan_insn): Abort if block_depth falls below 0.
1410
1411 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
1412
1413         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
1414
1415 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
1416
1417         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
1418         use of user-label_prefix.
1419
1420 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1421
1422         * reload1.c (emit_reload_insns): Clear spill_reg_store
1423         when doing a new non-inherited reload from the same pseudo.
1424
1425         * local-alloc.c (function_invariant_p): New function.
1426         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
1427         to decide if an equivalence should be recorded.
1428         * reload1.c (num_eliminable_invariants): New static variable.
1429         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
1430         to decide if an equivalence should be recorded.
1431         Unshare PLUS.
1432         (calculate_needs_all_insns): Skip insns that only set an equivalence.
1433         Take num_eliminable_invariants into account when deciding
1434         if register elimination should be done.
1435         (reload_as_needed): Take num_eliminable_invariants into account
1436         when deciding if register elimination should be done.
1437         (eliminate_regs): Handle non-constant reg_equiv_constant.
1438         * rtl.h (function_invariant_p): Declare.
1439
1440 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
1441
1442         * version.c: Bump for snapshot.
1443
1444 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
1445
1446         * version.c: Bump for snapshot.
1447
1448 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
1449
1450         * except.c (add_new_handler): Complain about additional handlers
1451         after one that catches everything.
1452
1453 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
1454
1455         * configure.in (alpha*-*-netbsd): Fix typo.
1456         * configure: Rebuilt.
1457
1458 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1459
1460         * system.h: Include libiberty.h.
1461
1462         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
1463         function `concat' from fixed parameters to variable parameters,
1464         as is done in libiberty.  All callers of concat/concat3
1465         changed to use the new `concat' with variable args.
1466
1467         * cccp.c: Remove things made redundant by libiberty.h and/or
1468         conform to libiberty standards.
1469         * cexp.y: Likewise.
1470         * collect2.c: Likewise.
1471         * config/1750a/1750a.h: Likewise.
1472         * cppalloc.c: Likewise.
1473         * cppexp.c: Likewise.
1474         * cppfiles.c: Likewise.
1475         * cpphash.c: Likewise.
1476         * cpplib.c: Likewise.
1477         * dyn-string.c: Likewise.
1478         * fix-header.c: Likewise.
1479         * gcc.c: Likewise.
1480         * gcov.c: Likewise.
1481         * genattr.c: Likewise.
1482         * genattrtab.c: Likewise.
1483         * gencheck.c: Likewise.
1484         * gencodes.c: Likewise.
1485         * genconfig.c: Likewise.
1486         * genemit.c: Likewise.
1487         * genextract.c: Likewise.
1488         * genflags.c: Likewise.
1489         * gengenrtl.c: Likewise.
1490         * genopinit.c: Likewise.
1491         * genoutput.c: Likewise.
1492         * genpeep.c: Likewise.
1493         * genrecog.c: Likewise.
1494         * getpwd.c: Likewise.
1495         * halfpic.c: Likewise.
1496         * hash.c: Likewise.
1497         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
1498         in NEED_DECLARATION_* macros.
1499
1500         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
1501         conform to libiberty standards.
1502         (fatal): Fix const-ification of variable `format' in
1503         !ANSI_PROTOTYPES case.
1504
1505         * prefix.c: Remove things made redundant by libiberty.h and/or
1506         conform to libiberty standards.
1507
1508         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
1509         conflicting with function `spaces' from libiberty.
1510
1511         * profile.c: Remove things made redundant by libiberty.h and/or
1512         conform to libiberty standards.
1513         * protoize.c: Likewise.
1514         * rtl.h: Likewise.
1515         * scan.h: Likewise.
1516         * tlink.c: Likewise.
1517         * toplev.c: Likewise.
1518         * toplev.h: Likewise.
1519         * tree.h: Likewise.
1520
1521 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1522
1523         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
1524
1525 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1526
1527         * README.C4X: Updated URLs.
1528         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
1529         (valid_parallel_operands_5): Remove unused variable.
1530
1531 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1532
1533         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
1534
1535 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
1536
1537         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
1538         which can be configured.
1539         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
1540         (Makefile): Pass actual LANGUAGES through the environment when
1541         re-configuring.
1542         (cstamp-h): Likewise.
1543         (config.status): Likewise.
1544
1545         * configure.in (enable_languages): Add new configuration parameter
1546         "--enable-languages=lang1,lang2,...".
1547         (${srcdir}/*/config-lang.in): Change handling to configure only
1548         those directories, that the user might have enabled; default to
1549         "all" existing languages.
1550         * configure: Regenerate.
1551
1552 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
1553
1554         * rtlanal.c (regs_set_between_p): New function.
1555         * rtl.h (regs_set_between_p): Prototype it.
1556         * jump.c (jump_optimize): Use it instead of modified_between_p
1557         in the Sep 2 change.
1558
1559 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
1560                           Matthias Pfaller  <leo@dachau.marco.de>
1561
1562         * invoke.texi (Option Summary, NS32K Options): add description
1563         of NS32K specific options.
1564
1565         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
1566         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
1567         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
1568         negdf2, absdf2): Use l instead of f since the double class and
1569         float class are no longer the same.
1570         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
1571         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
1572         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
1573         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
1574         fixed.
1575         (cmpsi, cmphi, cmpqi): use general_operand instead of
1576         non_immediate_operand. Removes erroneous assumption that can't
1577         compare constants.
1578         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
1579         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
1580         constants.
1581         (movstrsi, movstrsi1, movstrsi2): completely new block move
1582         scheme.
1583         (...): Patterns to exploit multiply-add instructions.
1584         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
1585         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
1586         patterns to exploit extended divide insns.
1587         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
1588         etc patterns.
1589
1590         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
1591         float return values as well as simple scalar floats.
1592         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
1593         support new flag to denote 32381 fpu.
1594         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
1595         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
1596         compling for 32381.
1597         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
1598         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
1599         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
1600         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
1601         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
1602         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
1603         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
1604         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
1605         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
1606         fpu registers and special register classes for new 32381
1607         instructions dotf and polyf.
1608         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
1609         be tieable.
1610         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
1611         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
1612         required.
1613         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
1614         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
1615         (REGISTER_MOVE_COST): move code to register_move_cost function for
1616         ease of coding and debugging.
1617         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
1618         LONG_FLOAT_REGO is likely spilled but not caught by default
1619         definition.
1620         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
1621         instead of hard coded numbers in range check.
1622         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
1623         (...): Add prototypes for functions in ns32k.c but disable because
1624         of problems when ns32k.h is included in machine independant files.
1625         
1626         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
1627         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
1628         hard_regno_mode_ok, secondary_reload_class,
1629         print_operand, print_operand_address): new register scheme to
1630         include 32381 fpu registers and special register classes for new
1631         32381 instructions dotf and polyf.
1632         (gen_indexed_expr): Make static to keep namespace clean.
1633         (check_reg): remove since never called.
1634         (move_tail, expand_block_move): helper functions for "movstrsi"
1635         block move insn.
1636         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
1637         Increase cost of moves which go via memory.
1638         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
1639         (CPP_PREDEFINES): nolonger predefine "unix".
1640
1641         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
1642         Remove erroneous %$. print_operand() can work out from the rtx is
1643         an immediate prefix is required.
1644
1645         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
1646         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
1647         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
1648         convention.
1649         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
1650         pic operands.
1651
1652         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
1653         Correct handling of pic operands.
1654         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
1655         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
1656         -mrtd calling convention.
1657
1658 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
1659
1660         * gcc.c (option_map): Recognize --output-class-directory.
1661
1662 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1663
1664         * loop.h (precondition_loop_p): Added new mode argument.
1665         * unroll.c (precondition_loop_p): Likewise.
1666         (approx_final_value): Function deleted and subsumed
1667         into loop_iterations.
1668         (loop_find_equiv_value): New function.
1669         (loop_iterations): Use loop_find_equiv_value to find increments
1670         too large to be immediate constants.  Also use it to find terms
1671         common to initial and final iteration values that can be removed.
1672
1673 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1674
1675         * loop.h (struct loop_info): Define new structure.
1676         (precondition_loop_p): Added prototype.
1677         (unroll_loop): Added new argument loop_info to prototype.
1678         (final_biv_value, final_giv_value): Added new argument n_iterations
1679         to prototype.
1680         * loop.c (strength_reduce): Declare new structure loop_iteration_info
1681         and new pointer loop_info.
1682         (loop_n_iterations): Replace global variable by element in 
1683         loop_info structure.
1684         (check_final_value): New argument n_iterations.
1685         (insert_bct): New argument loop_info.
1686         (loop_unroll_factor): Replace global array by element in 
1687         loop_info structure.
1688         (loop_optimize): Remove code to allocate and initialise 
1689         loop_unroll_factor_array.
1690         * unroll.c (precondition_loop_p):  No longer static since
1691         used by branch on count optimization.
1692         (precondition_loop_p, unroll_loop): New argument loop_info.
1693         (final_biv_value, final_giv_value, find_splittable_regs): New
1694         argument n_iterations.
1695         (loop_iteration_var, loop_initial_value, loop_increment, 
1696         loop_final_value, loop_comparison_code, loop_unroll_factor): 
1697         Replaced global variables by loop_info structure.
1698         (loop_unroll_factor): Replace global array by element in
1699         loop_info structure.
1700
1701 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1702
1703         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
1704         when loop reversed.
1705
1706         * unroll.c (precondition_loop_p): Return loop_initial_value
1707         for initial_value instead of loop_iteration_var.
1708
1709 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1710
1711         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
1712         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
1713         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
1714         to output the instruction sequences.
1715         (rpts): Delete.
1716         (rptb_top): Provide alternatives to use any register or memory
1717         for loop counter.
1718         (rptb_end):  Emit use of operands rather than assigning them
1719         explicitly to the RS and RE registers.
1720
1721 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1722
1723         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
1724         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
1725         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
1726         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
1727         c4x_merge_notes, c4x_parallel_process, 
1728         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
1729         c4x_combine_parallel): Delete.
1730
1731 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1732
1733         * config/c4x/c4x.c: (c4x_override_options): For compatibility
1734         with old target options clear flag_branch_on_count_reg if
1735         -mno-rptb specified and set flag_argument_alias is -mno-aliases
1736         specified.
1737         (c4x_output_cbranch): Handle a sequence of insns rather than a
1738         single insn.
1739         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
1740         has not been allocated as the loop counter.
1741         (c4x_address_conflict): Do not allow two volatile memory references.
1742         (valid_parallel_operands_4, valid_parallel_operands_5,
1743         valid_parallel_operands_6): Reject pattern if the register destination
1744         of the first set is used as part of an address in the second set.
1745
1746 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1747
1748         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
1749         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
1750         is no longer enabled if PARALLEL_MPY_FLAG set.
1751         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
1752         (REG_CLASS_CONTENTS): Add braces around initializers.
1753         (HAVE_MULTIPLE_PACK): Define.
1754         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
1755         REAL_VALUE_TO_DECIMAL.
1756         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
1757         REAL_VALUE_TO_DECIMAL.
1758         (ar0_reg_operand): Add prototype.
1759         (ar0_mem_operand): Likewise.
1760         (ar1_reg_operand): Likewise.
1761         (ar1_mem_operand): Likewise.
1762         (ar2_reg_operand): Likewise.
1763         (ar2_mem_operand): Likewise.
1764         (ar3_reg_operand): Likewise.
1765         (ar3_mem_operand): Likewise.
1766         (ar4_reg_operand): Likewise.
1767         (ar4_mem_operand): Likewise.
1768         (ar5_reg_operand): Likewise.
1769         (ar5_mem_operand): Likewise.
1770         (ar6_reg_operand): Likewise.
1771         (ar6_mem_operand): Likewise.
1772         (ar7_reg_operand): Likewise.
1773         (ar7_mem_operand): Likewise.
1774         (ir0_reg_operand): Likewise.
1775         (ir0_mem_operand): Likewise.
1776         (ir1_reg_operand): Likewise.
1777         (ir1_mem_operand): Likewise.
1778         (group1_reg_operand): Likewise.
1779         (group1_mem_operand): Likewise.
1780         (ir1_reg_operand): Likewise.
1781         (arx_reg_operand): Likewise.
1782         (not_rc_reg): Likewise.
1783         (not_modify_reg): Likewise.
1784         (c4x_group1_reg_operand): Remove prototype.
1785         (c4x_group1_mem_operand): Likewise.
1786         (c4x_arx_reg_operand): Likewise.
1787
1788 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
1789
1790         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
1791         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
1792
1793 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1794
1795         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
1796         during reload.
1797
1798 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1799
1800         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
1801         unless FMOVD_WORKS is defined.
1802
1803 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
1804
1805         * regclass.c (init_reg_sets): Move code that calculates tables
1806         dependent on reg_class_contents from here...
1807         (init_reg_sets_1): To here.
1808
1809 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1810
1811         * cpplib.h: Delete struct import_file.  Add ihash element to
1812         struct cpp_buffer.  Delete dont_repeat_files and
1813         import_hash_table elements from cpp_reader; change
1814         all_include_files to a hash table.  Delete all foobar_include
1815         / last_foobar_include elements from struct cpp_options; put
1816         back four such: quote_include, bracket_include,
1817         system_include, after_include.  Redo struct file_name_list
1818         completely.  Add new structure type include_hash.  Add
1819         prototypes for merge_include_chains and include_hash.  Change
1820         prototypes for finclude, find_include_file, and
1821         append_include_chain to match changes below.
1822
1823         * cppfiles.c (simplify_pathname, include_hash,
1824         remap_filename, merge_include_chains): New functions.
1825         (add_import, lookup_import, open_include_file): Removed.
1826         (INO_T_EQ): Define this (copied from cccp.c).
1827         (hack_vms_include_specification): Remove all calls and #if 0
1828         out the definition.  It was being called incorrectly and at
1829         the wrong times.  Until a VMSie can look at this, it's better
1830         to not pretend to support it.
1831         (append_include_chain): Change calling convention; now takes
1832         only one directory at a time, and sets up the data structure
1833         itself.
1834         (redundant_include_p): Rewritten - this is now used for all
1835         include redundancy, whether by #ifndef, #import, or #pragma
1836         once.  Looks up things in the include hash table.
1837         (file_cleanup): Decrement pfile->system_include_depth here if
1838         it's >0.
1839         (find_include_file): Calling convention changed; now passes
1840         around a struct include_hash instead of 3 separate parameters.
1841         Guts ripped out and replaced with new include_hash mechanism.
1842         (finclude): Calling convention changed as for
1843         find_include_file.  Error exits pulled out-of-line.  Reformat.
1844         (safe_read): Return a long, not an int.
1845         (deps_output): Don't recurse.
1846
1847         * cpplib.c (is_system_include): Deleted.
1848         (path_include): Fix up call to append_include_chain.
1849         (do_include): Fix up calls to find_include_file and finclude.
1850         Clean up dependency output a bit.  Shorten obnoxiously lengthy
1851         #import warning message.  Don't decrement
1852         pfile->system_include_depth here.
1853         (do_pragma): Understand the include_hash structure.  Reformat.
1854         (do_endif): Correct handling of control macros.  Understand
1855         the include_hash.
1856         (cpp_start_read): Fix up calls to finclude.  Call
1857         merge_include_chains.
1858         (cpp_handle_option): Fix up calls to append_include_chain.
1859         Understand the four partial include chains.
1860         (cpp_finish): Add debugging code (#if 0-ed out) for the
1861         include_hash.
1862         (cpp_cleanup): Free the include_hash, not the import hash and
1863         the all_include and dont_repeat lists which no longer exist.
1864
1865 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
1866
1867         * toplev.c (no_new_pseudos): Define.
1868         (rest_of_compilation):  Set no_new_pseudos as needed.
1869         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
1870         if no_new_pseudos is set.
1871         * rtl.h (no_new_pseudos): Declare it.
1872         * reload1.c (reload): Update comments.
1873         * md.texi: Corresponding changes.
1874
1875 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
1876
1877         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
1878         (choose_reload_regs): Rename it here as well.  When computing it,
1879         also merge in used hardregs.
1880
1881 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1882
1883         * gcc.c: Split out Objective-C specs to...
1884         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
1885         aware.
1886
1887         * c-lex.c (init_parse): Always initialize the filename global.
1888         * objc/objc-act.c (lang_init): Always call check_newline at
1889         beginning of file.
1890
1891 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
1892
1893         * reload1.c (reload): Remove unused variable.
1894         (reload_reg_free_for_value_p): Add missing parameter definition.
1895
1896         * jump.c (jump_optimize): Remove unused variable.
1897
1898 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
1899
1900         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
1901
1902         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
1903         runtime selectable.
1904         * expr.c (move_by_pieces): Similarly.
1905         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
1906         * flow.c (find_auto_inc): Similarly.
1907         (try_pre_increment): Similarly.
1908         * loop.c (strength_reduce): Similarly.
1909         * regclass.c (auto_inc_dec_reg_p): Similarly.
1910         * regmove.c (try_auto_increment): Similarly.
1911         (fixup_match_1): Similarly.
1912         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
1913         (HAVE_PRE_DECREMENT): Similarly.
1914         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
1915         * Corresponding changes to all target header files.
1916         * tm.texi: Update docs for autoinc addressing modes.
1917
1918 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
1919
1920         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
1921         * configure: Rebuild.
1922         * config/elfos.h: New file.
1923         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
1924         config/m68k/t-m68kelf: New file.
1925         
1926 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
1927
1928         * Makefile.in (HOST_AR): Define.
1929         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
1930         (libcpp.a): Use the host tools explicitly.
1931         (STAGESTUFF): Add libcpp.a.
1932
1933 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
1934
1935         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
1936         to source and destination registers.
1937
1938 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
1939
1940         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
1941         The strategy we now use is to pre allocate the top_elt along
1942         with the EH context so that each thread has its own top_elt.
1943         This is necessary as the dynmanic cleanup chain is used on the
1944         top element of the stack and each thread MUST have its own.
1945         (eh_context_static): Likewise.
1946         (new_eh_context): Likewise.
1947         (__sjthrow): Likewise.
1948
1949 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
1950
1951         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
1952         * i386.md (prologue_get_pc): Remove unused variable.
1953
1954 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
1955
1956         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
1957
1958 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
1959
1960         * Makefile.in (OBJS): Add graph.o
1961         (graph.o): New dependency list.
1962         * flags.h: Declare dump_for_graph and define graph_dump_types type.
1963         * print-rtl.c (dump_for_graph): Define new variable.
1964         (print_rtx): Rewrite to allow use in graph dumping functions.
1965         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
1966         finish_graph_dump_file.
1967         Define graph_dump_format.
1968         (compile_file): If graph dumping is enabled also clear these files.
1969         Finish graph dump files.
1970         (rest_of_compilation): Also dump graph information if enabled.
1971         (main): Recognize -dv to enabled VCG based graph dumping.
1972         * graph.c: New file.  Graph dumping functions.
1973
1974 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
1975
1976         * configure.in: Look for <sys/stat.h>.
1977         * system.h: Include it before substitute S_ISREG definitions.
1978
1979 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
1980
1981         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
1982         * config/mips/iris6.h: Same.
1983         * config/mips/mips.md: Same.
1984         * config/mips/mips.c: Same; also add "-mabi=o64" option.
1985         * config/mips/mips.h: Same; also define ABI_O64.
1986
1987 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1988
1989         *  configure.in: Use AC_PREREQ(2.12.1).
1990
1991 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
1992
1993         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
1994         * cpplib.c, gcc.c: Likewise.
1995         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
1996
1997 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
1998
1999         * local-alloc.c (local_alloc): Use malloc not alloca for
2000         reg_qty, reg_offset, ref_next_in_qty.
2001
2002 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2003
2004         * caller-save.c (insert_one_insn): Initialize the live_before and
2005         live_after register sets.
2006
2007         Add SH4 support:
2008
2009         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
2010         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
2011         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
2012         (fp_reg_names, assembler_dialect): New variables.
2013         (print_operand_address): Handle SUBREGs.
2014         (print_operand): Added 'o' case.
2015         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
2016         Name of FP registers depends on mode.
2017         (expand_block_move): Emit different code for SH4 hardware.
2018         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
2019         (from_compare): Likewise.
2020         (add_constant): New argument last_value.  Changed all callers.
2021         (find_barrier): Don't try HImode load for FPUL_REG.
2022         (machine_dependent_reorg): Likewise.
2023         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
2024         (gen_far_branch): Emit a barrier after the new jump.
2025         (barrier_align): Don't trust instruction lengths before
2026         fixing up pcloads.
2027         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
2028         Use auto-inc addressing for fp registers if doubles need to
2029         be loaded in two steps.
2030         Set sh_flag_remove_dead_before_cse.
2031         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
2032         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
2033         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
2034         Support for FIRST_XD_REG .. LAST_XD_REG.
2035         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
2036         (sh_expand_epilogue): Likewise.
2037         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
2038         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
2039         (arith_reg_operand): FPUL_REG is OK for SH4.
2040         (fp_arith_reg_operand, fp_extended_operand) New functions.
2041         (tertiary_reload_operand, fpscr_operand): Likewise.
2042         (commutative_float_operator, noncommutative_float_operator): Likewise.
2043         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
2044         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
2045         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
2046         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
2047         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
2048         (CONDITIONAL_REGISTER_USAGE): Likewise.
2049         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
2050         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
2051         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
2052         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
2053         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
2054         to -1 and sh_flag_remove_dead_before_cse to 1.
2055         (ASSEMBLER_DIALECT): Define to assembler_dialect.
2056         (assembler_dialect, fp_reg_names): Declare.
2057         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
2058         Hide names of registers that are not accessible.
2059         (CACHE_LOG): Take TARGET_CACHE32 into account.
2060         (LOOP_ALIGN): Take TARGET_HARWARD into account.
2061         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
2062         (FIRST_PSEUDO_REGISTER: Now 49.
2063         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
2064         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
2065         (HARD_REGNO_MODE_OK): Update.
2066         (enum reg_class): Add DF_REGS and FPSCR_REGS.
2067         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
2068         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
2069         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
2070         (NPARM_REGS): Eight floating point parameter registers on SH4.
2071         (BASE_RETURN_VALUE_REG): SH4 also passes double values
2072         in floating point registers.
2073         (GET_SH_ARG_CLASS) Likewise.
2074         Complex float types are also returned in float registers.
2075         (BASE_ARG_REG): Complex float types are also passes in float registers.
2076         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
2077         (LIBCALL_VALUE): Remove trailing semicolon.
2078         (ROUND_REG): Round when double precision value is passed in floating
2079         point register(s).
2080         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
2081         passed on the stack.
2082         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
2083         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
2084         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
2085         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
2086         (MODE_DISP_OK_8): Not for SH4 DFmode.
2087         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
2088         Allow indexed addressing for PSImode after reload.
2089         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
2090         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
2091         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
2092         (DOUBLE_TYPE_SIZE): 64 for SH4.
2093         (RTX_COSTS): Add PLUS case.
2094         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
2095         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
2096         MAC_REGS, PR_REGS, DF_REGS.
2097         (REGISTER_NAMES): Use fp_reg_names.
2098         (enum processor_type): Add PROCESSOR_SH4.
2099         (sh_flag_remove_dead_before_cse): Declare.
2100         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
2101         (PREDICATE_CODES): Add binary_float_operator,
2102         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
2103         fpscr_operand, noncommutative_float_operator.
2104         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
2105         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
2106         * sh.md (attribute cpu): Add value sh4.
2107         (attrbutes fmovd, issues): Define.
2108         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
2109         (function units memory, int, mpy, fp): Make dependent on issue rate.
2110         (function units issue, single_issue, load_si, load): Define.
2111         (function units load_store, fdiv, gp_fpul): Define.
2112         (attribute hit_stack): Provide proper default.
2113         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
2114         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
2115         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
2116         (mulsi3_call): Now uses match_operand for function address.
2117         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
2118         REG_RETVAL notes.
2119         (push, pop, push_e, pop_e): Now define_expands.
2120         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
2121         (movsi_ie): Added y/i alternative.
2122         (ic_invalidate_line_i, movdf_i4): New insns.
2123         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
2124         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
2125         (movdf): Add special code for SH4.
2126         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
2127         (call_valuei, calli, call_value): Likewise.
2128         (movsf): Emit no-op move.
2129         (mov_nop, movsi_y): New insns.
2130         (blt, sge): generalize to handle DFmode.
2131         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
2132         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
2133         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
2134         (fpu_switch0, fpu_switch1, movpsi): New expanders.
2135         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
2136         (toggle_sz): New insn.
2137         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
2138         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
2139         (macsf3): Make use of fpscr visible.  Disable for SH4.
2140         (floatsisf2): Make use of fpscr visible.
2141         (floatsisf2_i4): New insn.
2142         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
2143         (ieee_ccmpeqsf_t): Likewise.
2144         (fix_truncsfsi2): Emit different code for SH4.
2145         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
2146         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
2147         (negsf2, sqrtsf2, abssf2): Now expanders.
2148         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
2149         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
2150         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
2151         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
2152         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
2153         (fix_truncdfsi2_i4_2+1): New splitters.
2154         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
2155         (extendsfdf2, truncdfsf2): New expanders.
2156         (truncdfsf2_i4): New insn.
2157         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
2158         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
2159         * float-sh.h: When testing for __SH3E__, also test for
2160         __SH4_SINGLE_ONLY__ .
2161         * va-sh.h (__va_freg): Define to float.
2162         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
2163         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
2164         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
2165         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
2166          __SH4_SINGLE__.
2167         (TARGET_SH4_P): Define.
2168         (va_arg): Use it.
2169
2170         * sh.md (movdf_k, movsf_i): Tweak the condition so that
2171         init_expr_once is satisfied about the existence of load / store insns.
2172
2173         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
2174         change m constraint in source operand to mr / mf .
2175
2176         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
2177
2178         * (__VA_REEF): Define.
2179         (__va_arg_sh1): Use it.
2180
2181         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
2182
2183 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
2184
2185         * i386/dgux.c (struct option): Add new "description field".
2186         * m88k/m88k.c (struct option): Likewise.
2187
2188 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
2189
2190         * version.c: Bump for snapshot.
2191
2192 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
2193
2194         * regmove.c (regmove_profitable_p): Use return value of find_matches
2195         properly.
2196
2197 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
2198
2199         * version.c: Bump for snapshot.
2200
2201 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
2202
2203         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
2204         without reload having been called earlier.
2205
2206         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
2207         addressing modes.
2208         (v850_reorg): Similarly.
2209
2210         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
2211
2212 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2213
2214         * loop.c (move_movables): Start of libcall might be new loop start.
2215
2216 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2217
2218         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
2219
2220 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2221
2222         * function.c (nonlocal_goto_handler_slots): Renamed from
2223         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
2224         (push_function_context_to): Adjust for this change.
2225         (pop_function_context_from): Likewise.
2226         (init_function_start): Likewise.
2227         (expand_function_end): Likewise.
2228         * function.h (struct function): Likewise.
2229         * calls.c (expand_call): Likewise.
2230         * explow.c (allocate_dynamic_stack_space): Likewise.
2231         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
2232         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
2233         label.
2234         (expand_goto): When doing a nonlocal goto, find corresponding handler
2235         slot for it.  Don't put the label address in the static chain register.
2236         (expand_end_bindings): Break out nonlocal goto handling code into
2237         three new functions.
2238         (expand_nl_handler_label, expand_nl_goto_receiver,
2239         expand_nl_goto_receivers): New static functions, broken out of
2240         expand_end_bindings and adapted to create one handler per nonlocal
2241         label.
2242         * function.c (delete_handlers): Delete insn if it references any of
2243         the nonlocal goto handler slots.
2244         * i960.md (nonlocal_goto): Comment out code that modifies
2245         static_chain_rtx.
2246         * sparc.md (nonlocal_goto): Likewise.
2247         (goto_handler_and_restore_v9): Comment out.
2248         (goto_handler_and_restore_v9_sp64): Comment out.
2249
2250 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2251
2252         * expr.c (STACK_BYTES): Delete unused macro.
2253         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
2254         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2255         (expand_call): Likewise.
2256         (emit_library_call): Likewise.
2257         (emit_library_call_value): Likewise.
2258         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
2259         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2260         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
2261         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
2262         (allocate_dynamic_stack_space): Likewise.
2263         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
2264         (STACK_BOUNDARY): Update description to reflect the new situation.
2265
2266 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
2267
2268         * reorg.c (relax_delay_slots): When optimizing for code size, if a
2269         return with a filled delay slot is followed by a return with an
2270         unfilled delay slot, delete the first return and reemit the insn
2271         that was previously in its delay slot.
2272
2273         * i860.c (single_insn_src_p): Add missing parens.
2274         * ginclude/math-3300.h: Likewise.
2275
2276 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
2277
2278         * regclass.c (init_reg_sets_1): Add prototype.
2279         (init_reg_modes): Likewise.
2280
2281 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
2282
2283         * c-common.c: Change warning messages to say `comparison is
2284         always true' or `comparison is always false' instead of the
2285         confusing `is always 0', `is always 1'.
2286
2287 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
2288
2289         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
2290         break instead of return (which loses closing '>').
2291
2292 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
2293
2294         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
2295         standard 387 constants.
2296
2297         * i386.md (jump): Explicitly set "memory" attribute.
2298         (indirect_jump, prologue_set_stack_ptr): Likewise.
2299         (prologue_get_pc_and_set_got, pop): Likewise.
2300         (allocate_stack_worder, blockage, return_internal): Likewise.
2301         (return_pop_internal, nop): Likewise.
2302         (epilogue_set_stack_ptr, leave): Likewise.
2303
2304 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
2305
2306         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
2307
2308 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2309
2310         * reload1.c (reload_reg_free_for_value_p):
2311         Early auto_inc reloads don't conflict with outputs.
2312
2313 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2314
2315         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
2316         Instead call AC_HEADER_SYS_WAIT.
2317
2318         * collect2.c: Don't provide defaults for sys/wait.h macros.
2319         * gcc.c: Likewise.
2320         * protoize.c: Likewise.  Also, don't include sys/wait.h.
2321
2322         * system.h: Include sys/wait.h and provide macro defaults.
2323
2324 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2325
2326         * Makefile.in (mandir): Set to @mandir@.
2327         (man1dir): New variable to hold the former value of $(mandir).
2328         Replace all uses of $(mandir) by $(man1dir).
2329
2330 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
2331
2332         * reload.c (find_reloads_address_part): If have a CONST_INT, create
2333         a new one before passing it to force_const_mem.
2334
2335         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
2336         find_reloads_address call.
2337
2338 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2339
2340         * expr.c (store_expr): Don't generate load-store pair
2341         if TEMP is identical (according to ==) with TARGET.
2342
2343 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2344
2345         * reload1.c (reload_reg_free_for_value_p): When considered reload
2346         has an output, matching inputs are not sufficient to avoid conflict.
2347
2348 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
2349
2350         * hash.h (hash_table_key): New type.
2351         (hash_entry): Change `string' field to generic `key'.
2352         (hash_table): Add `comp' and `hash' functions.
2353         (hash_table_init): Take them as input.
2354         (hash_table_init_n): Likewise.
2355         (hash_lookup): Modify for generic keys.
2356         (hash_newfunc): Likewise.
2357         (hash_traverse): Likewise.
2358         (string_hash): New function.
2359         (string_compare): Likewise.
2360         (string_copy): Likewise.
2361         * hash.c (hash_table_init_n): Modify for generic keys.
2362         (hash_table_init): Likewise.
2363         (hash_lookup): Likewise.
2364         (hash_newfunc): Likewise.
2365         (hash_traverse): Likewise.
2366         (string_hash): Split out from hash_lookup.
2367         (string_compare): New function.
2368         (string_copy): Split out from hash_lookup.
2369         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
2370         tables.
2371         (symbol_hash_lookup): Likewise.
2372         (file_hash_newfunc): Likewise.
2373         (file_hash_lookup): Likewise.
2374         (demangled_hash_newfunc): Likewise.
2375         (demangled_hash_lookup): Likewise.
2376         (tlink_int): Likewise.
2377         (read_repo_file): Likewise.
2378         (recompile_files): Likewise.
2379         (demangle_new_symbols): Likewise.
2380         (scan_linker_output): Likewise.
2381         
2382 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2383
2384         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
2385
2386 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2387
2388         * rs6000.c (output_mi_thunk): Improve test for local branch.
2389
2390 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2391
2392         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
2393
2394 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2395
2396         * reload1.c (reload_reg_free_before_p): Delete.
2397         Changed all callers to use reload_reg_free_for_value_p instead.
2398         (reload_reg_free_for_value_p): Handle more reload types.
2399         A RELOAD_FOR_INPUT doesn't conflict with its
2400         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
2401         Add special case for OUT == const0_rtx.
2402         Added ignore_address_reloads argument.  Changed all callers.
2403
2404 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
2405
2406         * toplev.c (compile_file): Don't pedwarn about undefined static
2407         functions just because we passed -Wunused.
2408
2409 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2410
2411         * function.c (purge_addressof_1): Unshare rtl created by
2412         store_bit_field.
2413
2414 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2415
2416         * regmove.c (regmove_optimize): Don't do anything but
2417         optimize_reg_copy[123] when flag_regmove is not set.
2418
2419 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
2420
2421         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
2422         value in paradoxical SImode result, rather than truncating midpoint.
2423
2424 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
2425
2426         * alpha.c (reg_not_elim_operand): New.
2427         * alpha.h (PREDICATE_CODES): Add it.
2428         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
2429         for the multiplicand.
2430
2431 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2432
2433         * rs6000.md (movsf): Remove explicit secondary-reload-like
2434         functionality.  Only truncate SFmode store if in FPR.
2435         (movsf splitters): Combine const_double splitters.
2436         (movsf_hardfloat): Add GPR support.
2437
2438 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
2439
2440         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
2441         deprecate -mlive-g0 and -mbroken-saverestore.
2442         * t-splet (MULTILIB_OPTIONS): Likewise.
2443         
2444         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
2445         in a leaf function.  Clarify total_size/extra_size relationship.
2446
2447 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
2448
2449         * i386/cygwin32.asm: Delete.
2450         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
2451         * i386/cygwin32.h: Delete.
2452         * i386/cygwin.h: New file, renamed from cygwin32.h.
2453         * i386/t-cygwin32: Delete.
2454         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
2455         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
2456         * i386/x-cygwin32: Delete.
2457         * i386/x-cygwin: New file, renamed from x-cygwin32.
2458         * i386/xm-cygwin32: Delete.
2459         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
2460         renamed cygwin_ funcs for path translations.
2461         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
2462         * i386/winnt.c: Remove "32" from comment about cygwin.
2463         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
2464         * rs6000/cygwin32.h: Delete.
2465         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
2466         -D__CYGWIN__ to CPP_PREDEFINES.
2467         * rs6000/x-cygwin32: Delete.
2468         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
2469         * rs6000/xm-cygwin32: Delete.
2470         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
2471
2472         * configure.in: Check for cygwin* instead of cygwin32.  Account
2473         for the rename of cygwin-related config files to lose the "32"s.
2474         * configure: Regenerate.
2475
2476         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
2477         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
2478
2479 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
2480
2481         * Makefile.in (JAVAGC): New macro.
2482         * configure: Rebuilt.
2483         * configure.in: Recognize --enable-java-gc argument.  Subst
2484         `JAVAGC' variable.
2485
2486 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2487
2488         Handle equivalences that have been obscured by gcse:
2489
2490         * reload1.c (reload): Handle equivalences set up in multiple places.
2491         * local-alloc.c (reg_equiv_init_insns): New variable.
2492         (no_equiv): New function.
2493         (update_equiv_regs): Handle equivalences set up in multiple places.
2494         Don't ignore an insn just because its destination is likely to be
2495         spilled.
2496
2497 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
2498
2499         * except.c (expand_eh_return): Readd force_operand call lost in
2500         Sept 15 change.
2501
2502 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2503
2504         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
2505
2506 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2507
2508         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
2509
2510 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2511
2512         * regmove.c (regmove_optimize): Fix error in last change.
2513
2514 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
2515
2516         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
2517         offset in the .mask pseudo to compensate for frame pointer adjustments.
2518         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
2519         word swap arguments moved to/from FP registers.
2520         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
2521         
2522 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
2523
2524         * version.c: Bump for snapshot.
2525
2526 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
2527
2528         * version.c: Bump for snapshot.
2529
2530 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
2531
2532         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
2533         times, then it can not be completely replaced.
2534
2535 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
2536
2537         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
2538
2539 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2540
2541         * gansidecl.h: Prepend a "G" to the macro wrapping this file
2542         (to distinguish it from the macro wrapping ansidecl.h.)
2543         Include libiberty's ansidecl.h.  Remove all redundant definitions.
2544         Define the PROTO() style macros in terms of the PARAMS() ones.
2545
2546         
2547         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
2548         __STDC__, when deciding whether to use ANSI variable args.
2549         (emit_library_call_value): Likewise.
2550
2551         * cccp.c (error): Likewise.
2552         (warning): Likewise.
2553         (error_with_line): Likewise.
2554         (warning_with_line): Likewise.
2555         (pedwarn): Likewise.
2556         (pedwarn_with_line): Likewise.
2557         (pedwarn_with_file_and_line): Likewise.
2558         (fatal): Likewise.
2559
2560         * cexp.y (error): Likewise.
2561         (pedwarn): Likewise.
2562         (warning): Likewise.
2563
2564         * collect2.c (fatal_perror): Likewise.
2565         (fatal): Likewise.
2566         (error): Likewise.
2567
2568         * combine.c (gen_rtx_combine): Likewise.
2569
2570         * cpperror.c (cpp_message): Likewise.
2571         (cpp_fatal): Likewise.
2572
2573         * cpplib.c (cpp_error): Likewise.
2574         (cpp_warning): Likewise.
2575         (cpp_pedwarn): Likewise.
2576         (cpp_error_with_line): Likewise.
2577         (cpp_warning_with_line): Likewise.
2578         (cpp_pedwarn_with_line): Likewise.
2579         (cpp_pedwarn_with_file_and_line): Likewise.
2580
2581         * cpplib.h: Don't define PARAMS() macro.
2582
2583         * demangle.h: Likewise.
2584
2585         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
2586         when deciding whether to use ANSI variable args.
2587
2588         * emit-rtl.c (gen_rtx): Likewise.
2589         (gen_rtvec): Likewise.
2590
2591         * final.c (asm_fprintf): Likewise.
2592
2593         * fix-header.c (cpp_message): Likewise.
2594         (fatal): Likewise.
2595         (cpp_fatal): Likewise.
2596
2597         * gcc.c (concat): Likewise.
2598         (fatal): Likewise.
2599         (error): Likewise.
2600
2601         * genattr.c (fatal): Likewise.
2602
2603         * genattrtab.c (attr_rtx): Likewise.
2604         (attr_printf): Likewise.
2605         (fatal): Likewise.
2606
2607         * gencodes.c (fatal): Likewise.
2608
2609         * genconfig.c (fatal): Likewise.
2610
2611         * genemit.c (fatal): Likewise.
2612
2613         * genextract.c (fatal): Likewise.
2614
2615         * genflags.c (fatal): Likewise.
2616
2617         * genopinit.c (fatal): Likewise.
2618
2619         * genoutput.c (fatal): Likewise.
2620         (error): Likewise.
2621
2622         * genpeep.c (fatal): Likewise.
2623
2624         * genrecog.c (fatal): Likewise.
2625
2626         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
2627         deciding whether to declare `tree_node' and `rtx_def'.
2628
2629         * hash.h: Don't define stuff we get from gansidecl.h.
2630
2631         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
2632         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2633         whether to use ANSI variable args.
2634         (error): Likewise.
2635
2636         * prefix.c (concat): Likewise.
2637
2638         * scan.h: Likewise.
2639
2640         * system.h: Likewise.
2641
2642         * toplev.c (error_with_file_and_line): Likewise.
2643         (error_with_decl): Likewise.
2644         (error_for_asm): Likewise.
2645         (error): Likewise.
2646         (fatal): Likewise.
2647         (warning_with_file_and_line): Likewise.
2648         (warning_with_decl): Likewise.
2649         (warning_for_asm): Likewise.
2650         (warning): Likewise.
2651         (pedwarn): Likewise.
2652         (pedwarn_with_decl): Likewise.
2653         (pedwarn_with_file_and_line): Likewise.
2654         (sorry): Likewise.
2655         (really_sorry): Likewise.
2656
2657         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
2658         whether to declare `tree_node' and `rtx_def'.
2659
2660         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
2661         deciding whether to use ANSI variable args.
2662         (build_nt): Likewise.
2663         (build_parse_node): Likewise.
2664
2665 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
2666
2667         * version.c: Bump for snapshot.
2668
2669 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2670
2671         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
2672
2673 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2674
2675         * collect2.c (main, case 'b'): Use else if.
2676
2677 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2678
2679         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
2680         Arrange to include gansidecl.h in {ht}config.h & tm.h just
2681         before the config/ directory headers.
2682         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
2683         gansidecl.h in the list of dependencies.
2684
2685         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
2686         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
2687         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
2688         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
2689         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
2690         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
2691         Likewise.
2692
2693         * cccp.c: Don't include gansidecl.h.
2694         * cexp.y: Likewise.
2695         * collect2.c: Likewise.
2696         * config/c4x/c4x.c: Likewise.
2697         * config/v850/v850.h: Likewise.
2698         * cppalloc.c: Likewise.
2699         * cpperror.c: Likewise.
2700         * cppexp.c: Likewise.
2701         * cppfiles.c: Likewise.
2702         * cpphash.c: Likewise.
2703         * cpplib.c: Likewise.
2704         * cppmain.c: Likewise.
2705         * cppulp.c: Likewise.
2706         * demangle.h: Likewise.
2707         * doprint.c: Likewise.
2708         * dyn-string.c: Likewise.
2709         * eh-common.h: Likewise.
2710         * fix-header.c: Likewise.
2711         * frame.c: Likewise.
2712         * gcc.c: Likewise.
2713         * gcov.c: Likewise.
2714         * gen-protos.c: Likewise.
2715         * gencheck.c: Likewise.
2716         * halfpic.h: Likewise.
2717         * hash.c: Likewise.
2718         * machmode.h: Likewise.
2719         * mbchar.c: Likewise.
2720         * prefix.c: Likewise.
2721         * protoize.c: Likewise.
2722         * recog.h: Likewise.
2723         * rtl.h: Likewise.
2724         * scan-decls.c: Likewise.
2725         * tree.h: Likewise.
2726         * varray.h: Likewise.
2727         
2728 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
2729
2730         * i386.md (call_value_pop): If we're not popping anything,
2731         defer to call_value.
2732         (call_pop): Likewise defer to call.
2733
2734 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
2735
2736         * function.c (purge_addressof): Clear purge_addressof_replacements
2737         only after processing the whole function.
2738
2739 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
2740
2741         * reload1.c (reload): If we can not perform a particular elimination
2742         when we thought we could earlier, then we must always iterate through
2743         the loop at least one more time.
2744
2745 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
2746
2747         * alpha.c (add_operand): Simplify the CONST_INT match.
2748         (sext_add_operand): Correct typo in comparison by using
2749         CONST_OK_FOR_LETTER_P.
2750         * alpha.md (s?addq): Use sext_add_operand to allow the negative
2751         constant alternatives to be generated.
2752         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
2753         small constants, since the hw instructions do.
2754
2755 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2756
2757         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
2758         previous insn to store directly into our reload register, make sure
2759         that if the source of the previous insn is a reload register, its
2760         spill_reg_store and spill_reg_stored_to values are cleared.
2761
2762 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@mhpcc.edu>
2763
2764         * rs6000.md (floatunssidf2_internal splitter): Use base register
2765         operand, not hard-coded SP.
2766
2767 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2768
2769         * jump.c (calculate_can_reach_end): Fix thinko.
2770
2771 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
2772
2773         * reorg.c (fill_simple_delay_slots): Fix typo.
2774
2775         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
2776
2777 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
2778
2779         * i386.md (extendsidi2): Use # in the output template.
2780         (extendsidi splitters): New splitters.
2781
2782 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
2783
2784         * configure.in: Use unknown-elf.h as tm_file for arm-elf
2785         configuarions.
2786         * configure: Regenerate.
2787
2788 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2789
2790         * jump.c (init_label_info, delete_barrier_successors,
2791         mark_all_labels, delete_unreferenced_labels,
2792         delete_noop_moves, calculate_can_reach_end): New functions broken
2793         out of jump_optimize.
2794         (jump_optimize): Use them.
2795
2796 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
2797
2798         * except.c (expand_fixup_region_end): Make sure outer context labels
2799         are not issued in an inner context during cleanups.
2800
2801 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
2802
2803         * alpha.md (addsi3, subsi3): No new temporaries once cse is
2804         no longer expected.
2805
2806 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
2807
2808         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
2809         to expose this midpoint to CSE.
2810
2811 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
2812
2813         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
2814
2815 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2816
2817         * configure.in: Bring over gcc2 change of Nov 19 1997.
2818
2819 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
2820
2821         * toplev.c (output_lang_identify): Make definition dependent on
2822         ASM_IDENTIFY_LANGUAGE.
2823
2824         * print-rtl.c (spaces): Make static.
2825
2826 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
2827
2828         * extend.texi: Clarify proper uses for register clobbers in asms.
2829
2830 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2831
2832         * recog.h (enum op_type): Define.
2833         (constrain_operands): Adjust prototype.
2834         (recog_op_type): Declare new variable.
2835         * recog.c (recog_op_type): New variable.
2836         (insn_invalid_p): Allow modifying an asm statement after reload.
2837         (extract_insn): Set up recog_op_type.
2838         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
2839         Don't compute operand types, use recog_op_type.
2840         Use the information computed by extract_insn instead of the previous
2841         method of finding it by insn code number.
2842         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
2843         * reorg.c (fill_slots_from_thread): Likewise.
2844         * reload1.c (reload_as_needed): Likewise.
2845         (gen_reload): Likewise.
2846         (inc_for_reload): Likewise.
2847         (reload_cse_simplify_operands): Likewise.
2848         Use the information computed by extract_insn instead of the previous
2849         method of finding it by insn code number.
2850         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
2851         insn_extract.
2852         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
2853         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
2854         Use the information computed by extract_insn instead of the previous
2855         method of finding it by insn code number.
2856         * regmove.c (find_matches): Likewise.  Change meaning of the return
2857         value to be nonzero if the optimization can be performed, zero if
2858         not.  All callers changed.
2859         Shorten some variable names to fix formatting problems.
2860         (regmove_optimize): Shorten some variable names to fix formatting
2861         problems.
2862         Use the information computed by extract_insn instead of the previous
2863         method of finding it by insn code number.
2864         * regclass.c (scan_one_insn): Likewise.
2865         (record_reg_classes): Don't compute operand types, use recog_op_type.
2866         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
2867         recog_constraints instead.
2868
2869 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
2870
2871         * rtl.h (flow2_completed): Declare.
2872         * flow.c (flow2_completed): Definition.
2873         * toplev.c (rest_of_compilation): Set and clear flow2_completed
2874         as necessary.
2875
2876 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
2877
2878         * Makefile.in (libcpp.a): Ranlib libcpp.a
2879
2880         * cppulp.c (user_label_prefix): Initialize.
2881         
2882 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
2883
2884         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
2885         at a RETURN if current_function_sp_is_unchanging is set.
2886
2887 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
2888
2889         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
2890
2891 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
2892
2893         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
2894         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
2895         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
2896         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
2897         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
2898         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
2899         to __CYGWIN32__.
2900         (LIB_SPEC): Handle -mno-cyginw option.
2901         (LINK_SPEC): Handle -mdll.
2902
2903 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
2904
2905         * reload.c (find_reloads): Fix test for usage by other reload
2906         to handle secondary reloads properly.
2907
2908 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2909
2910         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
2911         intermediate structure which has exactly the members provided by
2912         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
2913         static intermediate structure.
2914         
2915         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
2916         from the intermediate structure.  Do the same analogous fix in
2917         the case where ELIMINABLE_REGS is not defined.
2918
2919 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
2920
2921         * pa.h (SELECT_SECTION): Fix thinko.
2922
2923 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
2924
2925         * dwarf2out.c (output_call_frame_info): Comments on last change.
2926
2927 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
2928
2929         * arm.c (add_constant): When taking the address of an item in the
2930         pool, get the mode of the item addressed.
2931
2932         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
2933         contain a SET or a PARALLEL, don't consider it for conditional
2934         execution.
2935
2936         Restore ABI compatibility for NetBSD.
2937         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
2938         arm.h
2939         (RETURN_IN_MEMORY): Likewise.
2940
2941 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
2942
2943         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
2944         (m32r_output_block_move): Rewrite bytes < 4 handling.
2945
2946 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2947
2948         * configure.in: Call AC_FUNC_VFORK.
2949
2950         * collect2.c: Define VFORK_STRING as a printable string for
2951         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
2952         defined, include vfork.h.  If VMS is defined, define vfork()
2953         appropriately.  Remove vfork check on USG, we're using autoconf.
2954         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
2955         checking locally what string to pass.
2956         (scan_prog_file): Likewise.
2957         (scan_libraries): Likewise.
2958
2959         * gcc.c: Remove vfork check on USG, we're using autoconf.
2960         Besides, no calls to vfork/fork occur in this file.
2961
2962         * protoize.c: Likewise.
2963
2964 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2965
2966         * configure.in (DEFAULT_LINKER): renamed from LD
2967         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
2968         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
2969         * configure: rebuilt
2970
2971 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
2972
2973         * BUGS: fix the regexp for `more' to find the appropriate node.
2974         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
2975
2976         * BUGS: added link to the WWW FAQ
2977
2978 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
2979
2980         * version.c: Bump for snapshot.
2981
2982 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
2983
2984         * From Christian Gafton:
2985         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
2986         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
2987         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
2988
2989 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
2990
2991         * c-common.c (c_get_alias_set): Allow all type-punning through
2992         unions.  Don't get confused about the type of a bit-field, despite
2993         the antics of build_modify_expr.
2994
2995 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
2996
2997         * fixinc.sco: Paramaterize #include_next values.
2998         * fixinc/fixinc.sco: Likewise.
2999
3000 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
3001
3002         * toplev.c (rest_of_compilation): No longer set reload_completed.
3003         * reload1.c (reload): Set it here.  Perform instruction splitting
3004         after reload has completed if we will be running the scheduler
3005         again.
3006
3007 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
3008
3009         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
3010         EH region if exceptions are enabled and we're performing cross
3011         jump optimizations.
3012         (find_cross_jump): Exit loop if the insns are in different EH regions.
3013
3014 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
3015
3016         * dwarf2out.c (output_call_frame_info): Use
3017         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
3018
3019 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3020
3021         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
3022         * c-common.c (check_format_info): Don't check for the 'x'
3023         format character twice, instead check for 'x' and 'X'
3024
3025 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
3026
3027         * configure.in (assembler features): Also make gas is configured if
3028         we find it in the souce tree.
3029
3030 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
3031
3032         * i386.c (i386_comp_type_attributes): Compare whether the 
3033         attributes are defined, not their tree nodes.
3034
3035 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
3036
3037         * configure.in (gxx_include_dir): bitten by autoconf quoting
3038         characters :-(
3039         * configure: rebuilt
3040
3041 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3042
3043         * configure.in: Ignore non-absolute value in $AS.
3044
3045 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
3046
3047         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
3048
3049 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
3050
3051         * configure.in (msdosdjgpp): Set exeext and target_alias.
3052
3053 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3054
3055         * flow.c (XNMALLOC): New macro.
3056         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
3057         static variables.
3058         (add_edge, add_edge_to_label): New static functions.
3059         (free_bb_memory): New function.
3060         (flow_delete_insn): Delete function.
3061         (basic_block_drops_in): Delete variable.
3062         (find_basic_blocks): Allocate and initialize basic_block_head,
3063         basic_block_succ.  Don't allocate basic_block_drops_in.
3064         Call free_bb_memory at the beginning.
3065         (find_basic_blocks_1): Don't do multiple passes.
3066         Delete code to compute basic_block_drops_in.
3067         After calling make_edges, mark blocks reached by current block live.
3068         Update test for unreachable live blocks.
3069         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
3070         changed.
3071         Simplify to call add_edge_to_label when a LABEL_REF is found.
3072         (make_edges): Simplify to call add_edge_to_label instead of
3073         mark_label_ref most of the time.
3074         Compute here whether control drops into the next block.
3075         (delete_unreachable_blocks): Return void.  All callers changed.
3076         Delete unreachable blocks in reverse order.
3077         After deleting all unreachable blocks, renumber the remaining ones
3078         and update n_basic_blocks.
3079         (delete_block): Speed up deletion a bit.
3080         Don't set basic_block_drops_in for deleted blocks.
3081         (free_basic_block_vars): Don't free basic_block_drops_in.
3082         (life_analysis_1): Update to use new edge representation.
3083         (dump_flow_info): Delete code to print basic block info; call
3084         dump_bb_data instead.
3085         (compute_preds_succs): Delete code to recompute basic_block_drops_in
3086         and uid_block_number.
3087         Simply copy the previously computed cfg.
3088         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
3089         Print register lifetime information if LIVE_INFO is nonzero.
3090         * basic-block.h (dump_bb_data): Adjust prototype.
3091         * gcse.c (gcse_main): Update call to dump_bb_data.
3092         * rtl.h (free_bb_memory): Declare.
3093         * toplev.c (rest_of_compilation): Call free_bb_memory.
3094
3095         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
3096         (update_eliminable_offsets): Don't compute it.
3097         (set_initial_elim_offsets): Don't initialize it.
3098         Break out some code into set_initial_label_offsets so the rest of
3099         this function can be called from reload_as_needed.
3100         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
3101         ELIMINABLE_REGS isn't.
3102         (set_initial_label_offsets): New function, broken out of
3103         set_initial_elim_offsets.
3104         (set_offsets_for_label): New function, broken out of set_label_offsets
3105         and reload_as_needed.
3106         (reload): Call the two new functions.
3107         (reload_as_needed): Call set_initial_elim_offsets instead of
3108         duplicating the code.  Likewise for set_offsets_for_label.
3109
3110         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
3111         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
3112         any hard reg, reg_reloaded_dead contains valid data.
3113
3114 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
3115
3116         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
3117         "stdcall" and "cdecl" attributes.
3118
3119 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
3120
3121         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
3122         handle deleted no-op moves of hard registers.
3123         * haifa-sched.c (update_flow_info): Likewise.
3124
3125 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
3126
3127         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
3128         of the sequences to reload the HILO register which do not actually
3129         reference HILO.
3130
3131 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
3132
3133         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
3134
3135 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
3136
3137         * except.c (emit_eh_context): Make the EH context register stay alive
3138         at -O0 so stupid.c doesn't get confused.
3139
3140 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3141
3142         * emit-rtl.c (try_split): Do not try to split a BARRIER.
3143
3144 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
3145                           Jeffrey A Law  (law@cygnus.com)
3146
3147         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
3148         (zero_extendsidi2): Use # in output template and handle completely by
3149         splits.
3150         (zero_extend splitters): New define_splits.
3151         (ashiftrt_32): New pattern.
3152
3153 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
3154
3155         * tree.c (append_random_chars): New fn.
3156         (get_file_function_name_long): Use it.
3157
3158 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
3159
3160         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
3161         (LIBCPP_OBJS): New.  Add cppulp.o.
3162         (cppmain, fix-header): Depend on and use libcpp.a.
3163         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
3164         of the individual object files.
3165         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
3166         last.
3167
3168         * cccp.c (user_label_prefix): New.
3169         (main): Set it off -f*leading-underscore.
3170         (special_symbol): Use it.
3171         * cpplib.c (special_symbol): Likewise.
3172         (cpp_handle_option): Handle -f*leading-underscore.
3173         * cppulp.c: New file.
3174
3175         * output.h (user_label_prefix): Declare it.
3176         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
3177         * toplev.c (f_options, main): Handle -f*leading-underscore.
3178
3179         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
3180         referencing USER_LABEL_PREFIX directly.
3181         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
3182         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
3183         * final.c (asm_fprintf): Use user_label_prefix instead.
3184         * arm/thumb.c (thumb_print_operand): Likewise.
3185
3186         * gcc.c (default_compilers): Pass -f*leading-underscore on to
3187         cpp wherever appropriate.
3188
3189 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
3190
3191         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
3192         specific compiler switches.
3193
3194 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
3195
3196         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
3197         of rtl.h.
3198
3199 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3200
3201         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
3202         structure which has exactly the members provided by EXTRA_SPECS.
3203         Xmalloc() the real `extra_specs', and initialize it from this
3204         intermediate structure.
3205
3206         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
3207
3208         * mips.h  (EXTRA_SPECS): Likewise.
3209
3210         * sparc.h (EXTRA_SPECS): Likewise.
3211
3212 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3213     
3214         * function.c (purge_addressof_1): Instead of aborting when a
3215         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
3216         work just put the ADDRESSOF on stack.  Otherwise remember all such
3217         successfull replacements, so that exactly the same replacements
3218         can be made on the REG_NOTEs.  Remove the special case for CALL
3219         insns again.
3220         (purge_addressof_replacements): New variable.
3221         (purge_addressof): Clear it at end.
3222
3223 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3224
3225          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
3226            (lang_init): Call check_newline always.
3227          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
3228            cpp_start_read, set yy_cur and yy_lim to read from
3229            parse_in.token_buffer, so that we'll see the first #line
3230            directive.
3231          * cpplib.c (cpp_start_read): finclude the main input file
3232            before processing -include/-imacros.  Process -imacros and
3233            -include separately, and handle -include by stacking a
3234            buffer for the file in question as if it'd been #included.
3235          * toplev.c (documented_lang_options) Recognize -H when
3236            USE_CPPLIB is on.
3237
3238 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3239
3240          * cpplib.c: Merge do_once into do_pragma.  Break file handling
3241            code out of do_include.
3242            Move append_include_chain, deps_output,
3243            file_cleanup, redundant_include_p, import_hash,
3244            lookup_import, add_import, read_filename_string, read_name_map,
3245            open_include_file, finclude, safe_read to cppfiles.c.
3246            Move prototypes for deps_output, append_include_chain,
3247            finclude to cpplib.h.  Move definition of struct
3248            file_name_list there also.
3249
3250          * cppfiles.c: New file.  Contains all the above functions
3251            broken out of cpplib.c; also hack_vms_include_specification
3252            from cccp.c and find_include_file, a new function broken out of
3253            do_include.
3254
3255          * Makefile.in (cppmain): Depend on cppfiles.o.
3256            (fix-header): Likewise.
3257            (cppfiles.o): New target.
3258          * configure.in (--enable-c-cpplib): Add cppfiles.o to
3259            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
3260
3261 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
3262
3263         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
3264         if pending_types is non-zero.
3265         (dwarfout_finish): Verify pending_types is zero before finishing.
3266
3267 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
3268
3269         * expr.c (convert_move): Use shifts to perform the move if a
3270         suitable extend pattern cannot be found.  Code written by
3271         Richard Henderson <rth@cygnus.com>.
3272
3273 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3274
3275         * regclass.c (renumber, regno_allocated): New static variables, moved
3276         out of allocate_reg_info.
3277         (allocate_reg_info): Move these two variables outside the function.
3278         Move code to free memory into new function free_reg_info.
3279         (free_reg_info): New function, broken out of allocate_reg_info.
3280         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
3281         * rtl.h (allocate_reg_info): Don't declare.
3282         (free_reg_info): Declare.
3283
3284         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
3285
3286 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
3287
3288         * toplev.c (compile_file): Temporarily revert last change.
3289
3290 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
3291
3292         * c-typeck.c (convert_for_assignment): Parenthesize.
3293
3294 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3295
3296         * reload1.c (delete_output_reload): Avoid ambigous else.
3297
3298 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
3299
3300         * toplev.c (compile_file): Call allocate_reg_info to free register
3301         table memory.
3302         * rtl.h (allocate_reg_info): Declare.
3303
3304         * PROJECTS: Remove entry for local spilling.
3305
3306         * final.c (cleanup_subreg_operands): New function.
3307         (final_scan_insn): Use it.
3308         (alter_subreg): Clear the "used" field when we turn a SUBREG into
3309         a REG.
3310         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
3311         operands when reload has finished.
3312         * reload.h (cleanup_subreg_operands): Declare..
3313         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
3314         reload.  Handled in reload itself.
3315
3316 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3317
3318         * reload1.c (verify_initial_offsets): New function.
3319         (reload): Call it after reload_as_needed.  Also verify that the frame
3320         size stays constant during reload_as_needed.
3321         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
3322
3323         * reload.h (struct insn_chain): Add need_operand_change element.
3324         * reload1.c (new_insn_chain): Clear it.
3325         (calculate_needs_all_insns): Set it; don't overload need_reload.
3326         (reload_as_needed): Use it.
3327
3328         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
3329         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
3330         and reload_address_index_reg_class.
3331         (find_reloads_address_1): Likewise.
3332         * reload.h (reload_address_base_reg_class,
3333         reload_address_index_reg_class): Don't declare.
3334         * reload1.c (reg_old_renumber, pseudo_previous_regs,
3335         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
3336         (used_spill_regs): Now static.
3337         (reload_address_base_reg_class, reload_address_index_reg_class,
3338         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
3339         basic_block_needs, max_needs, group_size, group_mode, max_groups,
3340         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
3341         forbidden_regs):
3342         Deleted variables.
3343         (init_reload): Delete code to compute base/index reg classes.
3344         (reload): Delete variable J.
3345         Delete code to manage basic_block_needs.
3346         Don't compute regs_explicitly_used.
3347         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
3348         pseudo_previous_regs.
3349         Initialize bad_spill_regs_global.
3350         Don't call order_regs_for_reload here.
3351         Don't initialize spill_reg_order and n_spills.
3352         Don't forbid explicitly used regs to be used for spill regs.
3353         Change main loop to infinite loop, with explicit break statements.
3354         Make SOMETHING_CHANGED variable local to that loop.
3355         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
3356         max_groups_insn, max_nongroups_insn, group_size, group_mode.
3357         Make sure spilled_speudos is cleared before calling spill_hard_reg or
3358         new_spill_reg.
3359         Don't call dump_needs.
3360         Delete code to reset potential_reload_regs.
3361         Delete code to terminate loop conditional on the global needs variables
3362         showing no further needs.
3363         (calculate_needs_all_insns): Return void.  All callers changed.
3364         Initialize somehing_needs_elimination here, not in reload.
3365         Delete avoid_return_reg kludge.
3366         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
3367         All callers changed.
3368         Initialize the group_mode and group_size elements of the arg CHAIN.
3369         Delete code to manage basic_block_needs.
3370         Operate on elements of CHAIN instead of global variables.
3371         Delete avoid_return_reg kludge.
3372         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
3373         All callers changed.
3374         Operate on elements of CHAIN instead of global variables.
3375         Delete special SMALL_REGISTER_CLASSES code.
3376         Delete spill_failure code; now in new_spill_reg.
3377         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
3378         All callers changed.
3379         Operate on elements of CHAIN instead of global variables.
3380         (maybe_mark_pseudo_spilled): New static function.
3381         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
3382         All callers changed.
3383         Operate on elements of CHAIN instead of global variables.
3384         Call order_regs_for_reload here, not in reload.
3385         Initialize spill_reg_order and n_spills.
3386         Simplify test whether an asm insn is involved.
3387         Delete spill_failure code; now in new_spill_reg.
3388         Call maybe_mark_pseudo_spilled for everything marked as live in
3389         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
3390         used_spill_regs.
3391         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
3392         compiler from optimizing this function (now unused) away.
3393         Operate on elements of CHAIN instead of global variables.
3394         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
3395         changed.
3396         Operate on elements of CHAIN instead of global variables.
3397         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
3398         take CHAIN arg.  All callers changed.
3399         Operate on elements of CHAIN instead of global variables.
3400         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
3401         CHAIN, NONGROUP args.  Return void.  All callers changed.
3402         Verify caller isn't trying to spill a pseudo.
3403         Simplify test for illegal reg, just use bad_spill_regs.
3404         Generate better error messages.
3405         Operate on elements of CHAIN instead of global variables.
3406         Mark spilled register in CHAIN's used_spill_regs element.
3407         Don't call spill_hard_reg.
3408         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
3409         Mark spilled hard regs in bad_spill_regs_global.
3410         Mark affected pseudos in spilled_pseudos, but don't spill them.
3411         (ior_hard_reg_set): New static function.
3412         (finish_spills): Return int.  All callers changed.
3413         Compute spill_reg_order, n_spills and spill_regs here.  Also update
3414         regs_ever_live for regs used as spills.
3415         For every pseudo in spilled_pseudos, spill it and mark the previous
3416         hard reg it had in pseudo_previous_regs.  Compute which hard regs
3417         arseudo): New static function.
3418         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
3419         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
3420         hard registers explicitly used across the current insn into the set.
3421         Compute hard_reg_n_uses taking only pseudos live across this insn
3422         into account.
3423         Tweak sorting of potential_reload_regs.
3424         (compare_spill_regs): Delete function.
3425         (reload_as_needed): Don't sort the spill_regs array, it's computed
3426         in proper order in finish_spills.
3427         Delete avoid_return_reg kludge.
3428         Delete code to manage basic_block_needs.
3429         (allocate_reload_reg): Minor speed/readability tweaks.
3430         Operate on elements of CHAIN instead of global variables.
3431         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
3432         Delete avoid_return_reg kludge.
3433         Initialize reload_reg_used from CHAIN's used_spill_regs element.
3434         Delete unused label FAIL.
3435         (reload_combine): Replce reload_address_index_reg_class with
3436         INDEX_REGS.
3437         Don't use used_spill_regs to determine information about lifetime of
3438         hard regs.
3439
3440 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
3441         
3442         * toplev.c (display_help): Ignore empty target specific
3443         options, and if -W is also specified on the command line then
3444         display undocumented options.
3445
3446         * config/arm/arm.c: Updated with changes in devo sources.
3447         * config/arm/arm.h: Updated with changes in devo sources.
3448         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
3449         * config/arm/lib1thumb.asm: Add ELF support.
3450
3451 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3452
3453         * collect2.c (aix64_flag): New variable.
3454         (main, case 'b'): Parse it.
3455         (GCC_CHECK_HDR): object magic number must match mode.
3456         (scan_prog_file): Only check for shared object if valid header.
3457         Print debugging if header/mode mismatch.
3458
3459 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
3460
3461         Added support for arm-elf-linux configuration, submitted by Philip
3462         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
3463         code developed by Catherine Moore <clm@cygnus.com>.  The following
3464         files are affected: 
3465
3466         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
3467         targets. 
3468
3469         * configure: Regenerated.
3470         
3471         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
3472         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
3473         definitions conditional on their not having been already defined.
3474
3475         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
3476         and .type directives, and add "(PLT)" qualification to function
3477         calls.
3478
3479         * config/arm/linux.h: Deleted.  This file is now superceeded by
3480         either linux-elf.h or linux-aout.h.
3481
3482         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
3483         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
3484         support).
3485         Move definitions from old linux.h file here.
3486         
3487         * config/arm/elf.h: New file.  Generic ARM/ELF support.
3488         
3489         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
3490         
3491         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
3492         
3493         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
3494         using the 26bit APCS.
3495         
3496         * config/arm/unknown-elf.h: New file.  Support for OS'es other
3497         than Linux with ELF.
3498
3499         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
3500         builds.
3501         
3502         * config/arm/coff.h: Include aout.h for basic assembler macros.
3503         Add support for -mstructure_size_boundary=<n> command line option.
3504         
3505         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
3506         command line option.  Make macro definitions conditional on their
3507         not having been already defined. 
3508
3509         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
3510         command line option.
3511
3512         
3513 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
3514
3515         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
3516         has been changed to not include a newline. Use this macro instead.
3517         (output_enumeral_list, const_value_attribute, name_attribute,
3518         comp_dir_attribute, prototyped_attribute, producer_attribute,
3519         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
3520         dwarfout_file_scope_decl, generate_new_sfname_entry,
3521         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
3522         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
3523
3524 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
3525
3526         * combine.c (subst): Process the inputs to a parallel asm_operands
3527         only once.
3528
3529 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
3530
3531         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
3532
3533 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
3534
3535         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
3536
3537 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
3538
3539         * version.c: Bump for snapshot.
3540
3541 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
3542
3543         * stmt.c (expand_fixup): Set fixup->before_jump to a
3544         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
3545
3546 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3547
3548         * Makefile.in (recog.o): Depend on toplev.h.
3549         (insn-emit.o): Depend on recog.h.
3550         (insn-peep.o): Depend on recog.h and insn-config.h.
3551
3552         * combine.c (simplify_set): Remove unused variable `scratches'.
3553
3554         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
3555         and `idx' in macro conditional controlling their use.
3556
3557         * genemit.c (main): Make the generated output file include
3558         recog.h.  Don't have it declare `insn_operand_constraint', since
3559         we get it from recog.h.
3560
3561         * genpeep.c (main): Make the generated output file include
3562         insn-config.h and recog.h.
3563
3564         * recog.c: Include toplev.h.
3565         (extract_insn): Remove unused variable `p'.
3566
3567         * regclass.c (fix_register): Add missing braces around initializer
3568         for `what_option'.
3569         (allocate_reg_info): Move variable `i' into the scope where it is
3570         used.  Change its type to `size_t'.
3571
3572 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3573
3574         * reload.c (push_reload): When merging reloads, make sure
3575         that reload_in_reg and reload_in are from the same reload in
3576         all cases.
3577
3578 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
3579
3580         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
3581         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
3582
3583 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@mhpcc.edu>
3584
3585         * loop.c (loop_has_tablejump): New variable.
3586         (prescan_loop): Scan for it.
3587         (insert_bct): Replace explicit scan with use of it.
3588         * regclass.c (regclass): Restore loop variable j.
3589         (record_reg_classes): Deterine op_types modifiers and initialize
3590         classes[i] before matching constraints.  Handle matching
3591         constraints 5-9.
3592         
3593 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
3594
3595         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
3596         subreg support.
3597
3598 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3599
3600         * mips.h (EXTRA_SPECS): Add missing initializers.
3601
3602 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3603
3604         * sparc.h (EXTRA_SPECS): Add missing initializers.
3605         (sparc_defer_case_vector): Provide a prototype.
3606
3607         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
3608         comparing it to the result of a pointer subtraction.
3609
3610 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3611
3612         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
3613         the argument to (unsigned char).
3614
3615         * alpha.h (EXTRA_SPECS): Add missing initializers.
3616         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
3617         format specifier.
3618
3619 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
3620
3621         * flow.c (life_analysis_1): Enable "rescan" code after reload.
3622         (propagate_block): Delete dead code after reload.
3623
3624         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
3625         back Oct 15, 1998 change.  
3626         * haifa-sched.c (update_flow_info): Likewise.
3627         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
3628
3629         * mn10200.md (truncated shift): Accept constant inputs too.
3630
3631 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
3632
3633         * machmode.h (mode_mask_array): No longer const.
3634         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
3635
3636 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
3637
3638         * frame.c: Somewhat explain `FDE'.
3639         Suggested by Brendan Kehoe
3640
3641 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
3642
3643         * expr.c (pending_chain): Move up.
3644         (save_expr_status): Do save pending_chain.
3645         (restore_expr_status): And restore it.
3646         * function.h (struct function): Add pending_chain.
3647
3648 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3649
3650         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
3651         did not match the code.
3652
3653 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3654
3655         * regclass.c (regclass): Break out some code into new function
3656         scan_one_insn, and into regclass_init.
3657         (init_cost): New static variable, moved out of regclass.
3658         (regclass_init): Initialize it here, not in .
3659         (scan_one_insn): New static function, broken out of regclass.
3660         * recog.c (apply_change_group): Break out some code into new
3661         function insn_invalid_p.
3662         (insn_invalid_p): New static fn, broken out of apply_change_group.
3663
3664 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
3665
3666         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
3667         reg_reloaded_contents matches incremented pseudo.
3668
3669         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
3670
3671 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3672
3673         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
3674         addressing modes with side effects.  These are currently
3675         placeholders for the C4x target.
3676
3677 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3678
3679         * loop.c (express_from): Make sure that when generating a PLUS of
3680         a PLUS, any constant expression appears on the outermost PLUS.
3681
3682 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
3683
3684         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
3685         works if "$(srcdir)" != ".".
3686
3687 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
3688
3689         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
3690         existing SUBREG if we can, otherwise abort.
3691
3692 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
3693
3694         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
3695         `restrict' is applied to a non-pointer variable.
3696
3697 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
3698
3699         * invoke.texi: Document -flang-isoc9x.
3700
3701         * Makefile.in (OBJS): Add splay-tree.o.
3702         (c-common.o): Depend on rtl.h.
3703         (splay-tree.o): List dependencies and provide build rule.
3704         
3705         * rtl.h (record_alias_subset): New function.
3706         * alias.c: Include splay-tree.h.
3707         (alias_set_entry): New type.
3708         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
3709         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
3710         (mems_in_disjoin_alias_sets_p): New function.
3711         (alias_set_compare): Likewise.
3712         (insert_subset_children): Likewise.
3713         (get_alias_set_entry): Likewise.
3714
3715         * tree.h (TYPE_RESTRICT): New macro.
3716         (TYPE_UNQUALIFIED): New manifest constant.
3717         (TYPE_QUAL_CONST): Likewise
3718         (TYPE_QUAL_VOLATILE): Likewise.
3719         (TYPE_QUAL_RESTRICT): Likewise.
3720         (tree_type): Add restrict_flag.  Reduce count of free bits.
3721         (DECL_POINTER_ALIAS_SET): New macro.
3722         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
3723         (tree_decl): Add pointer_alias_set.
3724         (build_qualified_type): New function.
3725         (build_type_variant): Define in terms of build_qualified_type.
3726         * tree.c (set_type_quals): New function.
3727         (make_node): Initializae DECL_POINTER_ALIAS_SET.
3728         (build_type_attribute_variant): Use build_qualified_type and
3729         set_type_quals.
3730         (build_type_variant): Rename, and modify, to become...
3731         (build_qualified_type): New function.
3732         (build_complex_type): Use set_type_quals.
3733
3734         * c-tree.h (C_TYPE_OBJECT_P): New macro.
3735         (C_TYPE_FUNCTION_P): Likewise.
3736         (C_TYPE_INCOMPLETE_P): Likewise.
3737         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
3738         (c_apply_type_quals_to_decl): New function.
3739         (c_build_qualified_type): New function.
3740         (c_build_type_variant): Define in terms of c_build_qualified_type.
3741         (flag_isoc9x): Declare.
3742         * c-typeck.c (qualify_type): Use c_build_qualified_type.
3743         (common_type): Change to use TYPE_QUALS.
3744         (comptypes): Likewise.
3745         (convert_for_assignment): Likewise.
3746         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
3747         * c-decl.c (flag_isoc9x): Define.
3748         (c_decode_option): Handle -flang-isoc9x.
3749         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
3750         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
3751         * c-lex.c (init_lex): Deal with restrict.
3752         (init_lex): Don't treat restrict as a reserved word in
3753         -traditional mode, or without -flang-isoc9x.
3754         * c-lex.h (rid): Add RID_RESTRICT.
3755         * c-parse.gperf (restrict, __restrict, __restrict__): Make
3756         equivalent to RID_RESTRICT.
3757         * c-parse.in (TYPE_QUAL): Update comment.
3758         * c-common.c: Include rtl.h.
3759         (c_find_base_decl): New function.
3760         (c_build_type_variant): Rename, and modify, to become ...
3761         (c_build_qualified_type): New function.
3762         (c_apply_type_quals_to_decl): Likewise.
3763         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
3764         a particular alias set for the reference.
3765         * toplev.c (documented_lang_options): Add -flang-isoc9x.
3766
3767 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
3768
3769         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
3770         command line switches.
3771
3772 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
3773
3774         * reload.c (loc_mentioned_in_p): Add missing braces to bind
3775         else to correct if.
3776
3777 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
3778
3779         * gcc.c (option_map): Added --classpath and --CLASSPATH.
3780
3781 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
3782
3783         * regclass.c (fix_register): Add error message.
3784         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
3785           new error message.
3786
3787 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3788
3789         * c-decl.c (warn_missing_noreturn): New global variable.
3790         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
3791         (finish_function): Implement missing noreturn warning.
3792
3793         * c-tree.h (warn_missing_noreturn): Declare extern.
3794
3795         * invoke.texi: Document new flags.
3796
3797         * toplev.c (documented_lang_options): Add description.
3798
3799 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3800
3801         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
3802         loop optimization stable for the C4x.
3803         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
3804         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
3805         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
3806         loop optimization).
3807         (c4x_address_conflict): Be more paranoid when packing a volatile
3808         memref in a parallel load/store.
3809
3810 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3811
3812         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
3813         repeat_block_filler): Deleted.
3814         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
3815         Condition code not set if destination register from 'c' class.
3816         (*subbqi3_carry_clobber): Fix typo.
3817
3818 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3819
3820         * reorg.c (steal_delay_list_from_target) Check for insns that
3821         modify the condition codes and effect the direction of the jump
3822         in the sequence.
3823
3824 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
3825
3826         * function.c (purge_addressof_1): Replace call to
3827         emit_insns_before() with emit_insn_before().
3828
3829 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
3830
3831         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
3832
3833 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
3834
3835         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
3836
3837 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
3838
3839         * gcse.c (compute_hash_table): Correctly identify hard regs which are
3840         clobbered across calls.
3841
3842         * loop.c (scan_loop): Be more selective about what invariants are
3843         moved out of a loop.
3844
3845 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
3846
3847         * version.c: Bump for snapshot.
3848
3849 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
3850
3851         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
3852         static eh_context structure.
3853
3854 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
3855
3856         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
3857         callers changed.
3858         (try_combine): Don't update max_scratch.
3859         * flow.c (max_scratch, num_scratch): Delete variables.
3860         (life_analysis_1): Don't initialize max_scratch.
3861         (propagate_block): Don't update max_scratch.
3862         (mark_set_1): Don't increment num_scratch.
3863         * regs.h (max_scratch): Delete declaration.
3864
3865 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
3866
3867         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
3868         is nonzero.  This is temporary!
3869
3870         * sched.c (update_flow_info): Handle death notes made invalid by
3871         instruction splitting.  Partially reverts Oct 15, 1998 patch.
3872         * haifa-sched.c (update_flow_info): Likewise.
3873
3874 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
3875
3876         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
3877         if it has a nonzero DECL_INITIAL.
3878
3879 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3880
3881         * Makefile.in (flow.o): Depend on recog.h.
3882
3883         * cpplib.h (directive_table): Add missing initializiers.
3884         (finclude): Change type of variable `bsize' to size_t.
3885         
3886         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
3887
3888         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
3889
3890         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
3891         `int' when comparing against one.
3892         (cpp_file_line_for_message): Mark parameter `pfile' with
3893         ATTRIBUTE_UNUSED.
3894         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
3895
3896         * flow.c: Include recog.h.
3897         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
3898
3899         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
3900         `f' with ATTRIBUTE_UNUSED.
3901         (reposition_prologue_and_epilogue_notes): Likewise.
3902
3903         * genopinit.c (gen_insn): Cast argument of ctype functions to
3904         `unsigned char'.
3905
3906         * haifa-sched.c: Include recog.h.
3907         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
3908         comparing against one.
3909
3910         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
3911
3912         * mips-tfile.c (parse_end): Cast the argument of ctype function to
3913         `unsigned char'.
3914         (parse_ent): Likewise.
3915         (parse_input): Likewise.
3916
3917         * optabs.c (init_libfuncs): Likewise.
3918
3919         * protoize.c (find_rightmost_formals_list): Likewise.
3920
3921         * recog.h (const_double_operand): Fix typo in prototype.
3922
3923         * tlink.c (scan_linker_output): Cast the argument of ctype
3924         function to `unsigned char'.
3925
3926         * toplev.c (check_lang_option): Cast the result of `strlen' to
3927         `int' when comparing against one.
3928
3929 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
3930
3931         * gcse.c (dump_cuid_table): Correct typo.
3932
3933 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
3934
3935         * toplev.c (display_help): Prepend '-m' to target specific
3936         options. 
3937         (check_lang_option): Ignore text after end of first word of a
3938         language specific option.
3939
3940 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
3941
3942         * reload1.c (reg_used_by_pseudo): New static variable.
3943         (choose_reload_regs): Initialize it.
3944         Use it instead of testing spill_reg_order to determine whether a
3945         pseudo is live in a hard register across the current insn.
3946         Fix a typo in a reference to reload_reg_rtx.
3947
3948         * flow.c (propagate_block): Replace code that computes and uses
3949         regs_sometimes_live with simpler code that just walks the set of
3950         currently live registers.
3951
3952         * Makefile.in (insn-extract.o): Fix dependencies.
3953         * genextract.c (main): Generate includes for insn-config.h and
3954         recog.h.
3955         Delete generation of declarations which are now in recog.h.
3956         * genrecog.c (main): Delete generation of definitions which are
3957         now in recog.c.
3958         * local-alloc.c (block_alloc): Use extract_insn and the variables
3959         it sets up instead of looking up values by insn_code.
3960         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
3961         recog_dup_num): Define here instead of generating the definition in
3962         genrecog.c.
3963         (recog_n_operands, recog_n_dups, recog_n_alternatives,
3964         recog_operand_mode, recog_constraints, recog_operand_address_p):
3965         New variables.
3966         (extract_insn): New function.
3967         * recog.h (extract_insn): Declare function.
3968         (which_alternative, recog_n_operands, recog_n_dups,
3969         recog_n_alternatives, recog_operand_mode, recog_constraints,
3970         recog_operand_address_p): Declare variables.
3971         * regclass.c (n_occurrences): New static function.
3972         * reload.c (n_occurrences): Delete function.
3973         (find_reloads): Use extract_insn.
3974         * reload.h (n_occurrences): Delete declaration.
3975
3976 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
3977
3978         * reload1.c (reload_as_needed): Fix test for when to call
3979         update_eliminable_offsets.
3980
3981 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
3982
3983         Fix consistency problems with reg_equiv_{mem,address};
3984         Improve reload inheritance;
3985
3986         * reload.c (reload_out_reg): New variable.
3987         (loc_mentioned_in_p, remove_address_replacements): New functions.
3988         (remove_replacements): Deleted.
3989         (push_reload): Set reload_out_reg[i].
3990         When merging, also set reload_{in,out}_reg[i], and remove
3991         duplicate address reloads.
3992         (combine_reloads): Copy reload_out_reg[i].
3993         (find_reloads): Do make_memloc substitution also when
3994         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
3995         are both nonzero.
3996         Include *recog_operand_loc in commutativity operand changes.
3997         Generate optional output reloads.
3998         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
3999         processing operands.  Call make_memloc in reg_equiv_address code.
4000         Set *recog_operand_loc only after processing operands, and only
4001         if replace is true.  Return a value.
4002         When changing address reload types for operands that didn't get
4003         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
4004         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
4005         Don't emit USEs for pseudo SUBREGs when not replacing.
4006         (find_reloads_address): Do make_memloc substitution also when
4007         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
4008         are both nonzero.
4009         (find_reloads_toplev): Likewise.
4010         Call make_memloc in reg_equiv_address code.
4011         (debug_reload_to_stream): Add code to output reload_out_reg.
4012         (make_memloc): Delete local variable i, ifdefed out code, and
4013         references to memlocs and n_memlocs.
4014         (memlocs, n_memlocs): Delete.
4015         (push_secondary_reload): Clear reload_out_reg.
4016         (find_reloads_address_1): Provide memrefloc argument to all calls
4017         to find_reloads_address.
4018         In AUTO_INC code, handle non-directly addressable equivalences properly.
4019         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
4020         (find_reloads): Add return type.
4021         (remove_address_replacements, deallocate_reload_reg): Declare.
4022         * reload1.c (num_not_at_initial_offset): No longer static.
4023         (delete_address_reloads, delete_address_reloads_1): Likewise.
4024         (deallocate_reload_reg): New function.
4025         (spill_reg_stored_to): New array.
4026         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
4027         (eliminate_regs_in_insn): Move assignments of previous_offset and
4028         max_offset fields, and recalculation of num_not_at_initial_offset
4029         into new static function:
4030         (update_eliminable_offsets) .
4031         (reload_as_needed): Call update_eliminable_offsetss after calling
4032         find_reloads.
4033         Call forget_old_reloads_1 with contents of reloaded auto_inc
4034         expressions if the actual addressing can't be changed to match the
4035         auto_inc.
4036         (choose_reload_regs): For inheritance, replace
4037         reload_reg_free_before_p test with reload_reg_used_at_all test, and
4038         remove stand-alone reload_reg_used_at_all test.
4039         Use reload_out_reg to determine which reload regs have output reloads.
4040         Treat reload_override_in more similar to inherited reloads.
4041         Handle (subreg (reg... for inheritance.
4042         For flag_expensive_optimizations, add an extra pass to remove
4043         unnecessary reloads from known working inheritance.
4044         Delete obsolete code for pseudos replaced with MEMs.
4045         Handle inheritance from auto_inc expressions.
4046         (emit_reload_insns): If reload_in is a MEM, set OLD to 
4047         reload_in_reg[j].
4048         Don't reload directly from oldequiv; if it's a pseudo with a
4049         stack slot, use reload_in[j].
4050         Check that reload_in_reg[j] is a MEM before replacing reload_in
4051         from reg_reloaded_contents.
4052         Include non-spill registers in reload inheritance processing.
4053         Also try to use reload_out_reg to set spill_reg_store /
4054         reg_last_reload_reg.
4055         In code to set new_spill_reg_store, use single_set to find out if
4056         there is a single set.
4057         Add code that allows to delete optional output reloads.
4058         Add code to allow deletion of output reloads that use no spill reg.
4059         At the end, set reload_override_in to oldequiv.
4060         Also call delete_output_reload if reload_out_reg is equal to old
4061         in oldequiv code.
4062         Add code to call delete_output_reload for stores with no matching load.
4063         Set / use spill_reg_stored_to.
4064         Handle case where secondary output reload uses a temporary, but
4065         actual store isn't found.
4066         When looking for a store of a value not loaded in order to call
4067         delete_output_reload, count_occurences should return 0 for no
4068         loads; but discount inherited input reloadill_reg_stored_to.
4069         Do checks for extra uses of REG.  Changed all
4070         callers.
4071         Use delete_address_reloads.
4072         (reload): Take return value of find_reloads into account.
4073         If a no-op set needs more than one reload, delete it.
4074         (reload_reg_free_before_p): RELOAD_FOR_INPUT
4075         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
4076         for the same operand.
4077         (clear_reload_reg_in_use): Check for other reloads that keep a
4078         register in use.
4079         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
4080         RELOAD_FOR_OPADDR_ADDR.
4081         Take into account when an address address reload is only needed
4082         for the address reload we are considering.
4083         (count_occurrences): Use rtx_equal_p for MEMs.
4084         (inc_for_reload): Return instruction that stores into RELOADREG.
4085         New argument two, IN, and rtx.  Changed all callers.
4086         (calculate_needs_all_insns, reload_as_needed):
4087         Don't clear after_call for a CLOBBER.
4088         Keep track of how many hard registers need to be copied from
4089         after_call, and don't clear after_call before we have seen
4090         that much copies, or we see a different instruction.
4091
4092 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
4093
4094         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
4095         after reload has completed.
4096
4097 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
4098
4099         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
4100         a macro name and the next token with a single blank if that whitespace
4101         is in a macro buffer and the next token is not '('.
4102
4103 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
4104
4105         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
4106         (rescan): Ditto.
4107         (skip_if_group): Ditto.
4108         (skip_to_end_of_comment): Ditto.
4109         (macarg1): Ditto.
4110         (discard_comments): Ditto.
4111         (change_newlines): Ditto.
4112
4113 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
4114
4115         * c-lex.c (yylex): Fix unaligned access of wchar_t.
4116
4117 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
4118
4119         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
4120         (TARGET_OPTIONS): Add --help documentation.
4121
4122 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4123
4124         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
4125
4126 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
4127         
4128         * fixinc/* Moved in from ../contrib directory in preparation
4129         for integrating it into the normal build process.  In particular,
4130         fixinc/Makefile.in must be config-ed into the build directory
4131         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
4132         ./configure.in will be "in the mail" momentarily.
4133
4134 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
4135
4136         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
4137         accidently walk into the free list.  Comment how that can happen.
4138         (invalidate): Fix indentation.
4139
4140 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4141                          Jeffrey A Law  (law@cygnus.com)
4142
4143         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
4144         reload.  Never perform rescans of the insn chain after reload.
4145         (propagate_block): Do not delete insn or create new autoinc addressing
4146         modes after reload.
4147
4148         * jump.c (jump_optimize): Unconditionally use the code that was
4149         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
4150         * reload1.c (reload): When reloading is finished, delete all
4151         REG_DEAD and REG_UNUSED notes.
4152         (emit_reload_insns): Delete all code that was conditional on
4153         PRESERVE_DEATH_INFO_REGNO_P.
4154         (no_longer_dead_regs): Delete variable.
4155         (reload_cse_delete_death_notes): Delete function.
4156         (reload_cse_no_longer_dead): Delete function.
4157         (reload_cse_regs_1): Delete all code to handle deletion of death
4158         notes.
4159         (reload_cse_noop_set_p): Likewise.
4160         (reload_cse_simplify_set): Likewise.
4161         (reload_cse_simplify_operands): Likewise.
4162         (reload_cse_move2add): Likewise.
4163         * reorg.c (used_spill_regs): Delete declaration.
4164         (max_label_num_after_reload): Delete declaration.
4165         (find_dead_or_set_registers): Don't assume that spill regs are
4166         dead at a CODE_LABEL.
4167         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
4168         even after reload.
4169         * sched.c (sched_analyze_insn): Likewise.
4170         (update_flow_info): Likewise.
4171         * haifa-sched.c (sched_analyze_insn): Likewise.
4172         (update_flow_info): Likewise.
4173         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
4174         * toplev.c (max_label_num_after_reload): Delete variable.
4175         (rest_of_compilation): Don't set max_label_num_after_reload.
4176         Call life_analysis after reload_cse_regs if optimizing.
4177         * config/gmicro/gmicro.h: Delete comment referring to
4178         PRESERVE_DEATH_INFO_REGNO_P.
4179         * config/i386/i386.h: Likewise.
4180         * config/m88k/m88k.h: Likewise.
4181         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
4182         * config/sh/sh.h: Likewise.
4183
4184 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4185
4186         * loop.c (strength_reduce): Restore marking bct_p as
4187         ATTRIBUTE_UNUSED.
4188         * rs6000.c (optimization_options): Change #ifdef HAIFA to
4189         HAVE_decrement_and_branch_on_count.
4190         (small_data_operand): Remove TARGET_ELF condition for marking
4191         parameters ATTRIBUTE_UNUSED.
4192         
4193 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
4194
4195         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
4196         (SELECT_SECTION): Resync with svr4.h.
4197
4198 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4199
4200         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
4201         ATTRIBUTE_UNUSED.
4202
4203 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
4204
4205         * c-pragma.c (handle_pragma_token): Test for null tree before
4206         dereferencing TREE_CODE.
4207
4208 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4209
4210         * config/c4x/c4x.c: Convert to use GEN_INT.
4211         (c4x_parallel_process): Rework to handle new repeat loop structure.
4212
4213         * config/c4x/c4x.md: Convert to use GEN_INT. 
4214         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
4215         (decrement_and_branch_on_count): Likewise.
4216
4217         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
4218         loop.c has the desired functionality.
4219         (rc_reg_operand): New prototype.
4220
4221         * config/c4x/t-c4x: Can now build all front ends.
4222
4223 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
4224
4225         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
4226
4227 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
4228
4229         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
4230         * config/t-rtems: Do not install assert.h -- use newlib's.
4231
4232 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4233
4234         * combine.c (combine_instructions): When finished, call init_recog.
4235         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
4236
4237 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
4238
4239         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
4240
4241 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4242
4243         * cppalloc.c (memory_full): Mark function prototype with
4244         ATTRIBUTE_NORETURN.
4245
4246         * demangle.h (collect_exit): Likewise.
4247
4248         * fix-header.c (v_fatal, fatal): Likewise.
4249
4250         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
4251         Likewise.
4252
4253         * gcov.c (print_usage): Likewise.
4254
4255         * genattr.c (fatal, fancy_abort): Likewise.
4256
4257         * genattrtab.c (fatal, fancy_abort): Likewise.
4258
4259         * gencodes.c (fatal, fancy_abort): Likewise.
4260
4261         * genconfig.c (fatal, fancy_abort): Likewise.
4262
4263         * genemit.c (fatal, fancy_abort): Likewise.
4264
4265         * genextract.c (fatal, fancy_abort): Likewise.
4266
4267         * genflags.c (fatal, fancy_abort): Likewise.
4268
4269         * genopinit.c (fatal, fancy_abort): Likewise.
4270
4271         * genoutput.c (fatal, fancy_abort): Likewise.
4272
4273         * genpeep.c (fatal, fancy_abort): Likewise.
4274
4275         * genrecog.c (fatal, fancy_abort): Likewise.
4276
4277         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
4278         __sjpopnthrow, __throw): Likewise.
4279
4280         * objc/objc-act.c (objc_fatal): Likewise.
4281
4282         * protoize.c (usage, aux_info_corrupted,
4283         declare_source_confusing): Likewise.
4284
4285         * rtl.c (dump_and_abort): Likewise.
4286
4287         * rtl.h (sets_cc0_p): Likewise.
4288
4289         * toplev.c (float_signal, pipe_closed): Likewise.
4290         
4291 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4292
4293         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
4294         when generating the decision tree for the general case.
4295
4296         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
4297         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
4298
4299 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4300
4301         * Makefile.in (sched.o): Depend on recog.h.
4302
4303         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
4304         (unsigned) when comparing against one.
4305         (find_base_value): Likewise.
4306         (record_base_value): Cast variable `regno' to (unsigned) when
4307         comparing against one.  Cast the result of REGNO() macro to
4308         (unsigned) when comparing against one.
4309         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
4310         unsigned.
4311         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
4312         variable where an unsigned index is needed.
4313
4314         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
4315         before comparing against one.
4316
4317         * collect2.c: Add prototypes for functions `error', `fatal' and
4318         `fatal_perror'.  Make these functions take variable arguments
4319         instead of faking it with a fixed number of args.
4320         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
4321         char).
4322
4323         * combine.c (can_combine_p): Mark parameter `pred' with
4324         ATTRIBUTE_UNUSED.
4325         (find_split_point): Cast variable `src' to (unsigned
4326         HOST_WIDE_INT) when comparing against one.
4327         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
4328         (simplify_logical): Likewise.
4329         (force_to_mode): Cast result of INTVAL() macro to (unsigned
4330         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
4331         HOST_WIDE_INT) in shift.
4332         (simplify_and_const_int): Cast result of INTVAL() macro to
4333         `unsigned HOST_WIDE_INT' when comparing against one.
4334         (merge_outer_ops): Cast variable const0 to `unsigned
4335         HOST_WIDE_INT' when comparing against the result of
4336         GET_MODE_MASK() macro.
4337         (simplify_comparison): Likewise for variable `c0'.  Cast variable
4338         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
4339         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
4340         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
4341         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
4342         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
4343         comparing against one.
4344         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
4345
4346         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
4347         macro to `unsigned HOST_WIDE_INT' when comparing against one.
4348         (output_block_move): Cast `sizeof' expression to (int) when
4349         comparing against one.
4350         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
4351         against one.
4352         (save_restore_insns): Cast `base_offset' to `long' to match format
4353         specifier in fprintf.
4354
4355         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
4356         to `enum machine_mode'.
4357
4358         * flow.c (life_analysis_1): Remove unused variable `insn'.
4359
4360         * gcc.c (translate_options): Move variables `j' and `k' into the
4361         scope in which they are used.  Change their types to `size_t'.
4362         (set_spec): Cast the argument of ctype macro to `unsigned char'.
4363         (read_specs): Likewise.
4364         (process_command): Cast `sizeof' to (int) when comparing against one.
4365         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
4366         (handle_braces): Cast both sides of `==' expression to `long' to
4367         ensure sign matching.
4368         (main): Cast variable `i' to `int' when comparing against one.
4369
4370         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
4371         int to size_t.  Cast variable `i' to size_t when comparing against
4372         one.
4373
4374         * genattrtab.c (convert_set_attr_alternative): Remove unused
4375         parameter `insn_code'.  All callers changed.
4376         (convert_set_attr): Likewise.
4377
4378         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
4379         size_t when comparing against one.  Likewise for variable `len'.
4380
4381         * global.c (global_alloc): Cast variable `max_regno' to size_t
4382         when comparing against one.  Likewise for variable `max_allocno'.
4383
4384         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
4385
4386         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
4387         `set' with ATTRIBUTE_UNUSED.
4388         (find_free_reg): Cast `sizeof' expression to (int) when comparing
4389         against one.
4390
4391         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
4392         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
4393         (get_condition): Cast variable `const_val' to `unsigned
4394         HOST_WIDE_INT' when comparing against one.  Cast unsigned
4395         expression to HOST_WIDE_INT when comparing against one.
4396         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
4397         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
4398         `unsigned' when comparing against one.
4399
4400         * protoize.c (is_id_char): Change type of parameter `ch' to
4401         unsigned char.
4402         (munge_compile_params): Cast argument of ctype macro to (const
4403         unsigned char).
4404         (process_aux_info_file): Cast variable `aux_info_size' to int when
4405         comparing against one.
4406         (forward_to_next_token_char): Cast argument of ctype macro to
4407         `const unsigned char'.
4408         (edit_formals_lists): Likewise.
4409         (find_rightmost_formals_list): Likewise.
4410         (add_local_decl): Likewise.
4411         (add_global_decls): Likewise.
4412         (edit_fn_definition): Likewise.
4413         (do_cleaning): Likewise.
4414         (scan_for_missed_items): Likewise.
4415         (edit_file): Cast variable `orig_size' to (int) when comparing
4416         against one.
4417         (main): Cast argument of ctype macro to `const unsigned char'.
4418
4419         * recog.c (const_int_operand): Mark parameter `mode' with
4420         ATTRIBUTE_UNUSED.
4421
4422         * regclass.c (record_reg_classes): Change type of variable `c' to
4423         `unsigned char'.  Cast `char' array index to `unsigned char'.
4424
4425         * reload.c (push_secondary_reload): Cast argument to
4426         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
4427
4428         * reload1.c (calculate_needs): Cast `char' array index to
4429         `unsigned char'.
4430         (set_label_offsets): Change type of variable `i' to unsigned int.
4431         Cast result of XVECLEN() macro to unsigned when comparing against
4432         one.
4433         (mark_not_eliminable): Change type of variable `i' to unsigned.
4434         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
4435         when comparing against one.
4436         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
4437         comparing against one.
4438         (choose_reload_regs): Hide unused label `fail'.
4439         (reload_cse_simplify_operands): Cast `char' array index to
4440         `unsigned char'.
4441         (reload_combine_note_store): Mark parameter `set' with
4442         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
4443         against one.
4444         (reload_cse_move2add): Remove unused variable `src2'.
4445
4446         * sched.c: Include recog.h.
4447         (sched_note_set): Remove unused parameter `b'.  All callers
4448         changed.
4449         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
4450         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
4451         when comparing against one.
4452
4453         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
4454         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
4455         comparing against one.
4456
4457         * unroll.c (precondition_loop_p): Remove unused parameter
4458         `loop_end'.  All callers changed.
4459
4460 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4461
4462         * reload1.c (maybe_fix_stack_asms): New static function.
4463         (reload): Call it.
4464
4465         * reload.h (compute_use_by_pseudos): Declare.
4466
4467         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
4468         (something_needs_reloads): Delete variable.
4469         (finish_spills): New function.
4470         (compute_use_by_pseudos): New function.
4471
4472         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
4473         Use the reload_insn_chain instead of walking the rtl directly.
4474
4475         (reload): Allocate and free spilled_pseudos.
4476         Ensure that all calls of spill_hard_reg are followed by a call to
4477         finish_spills.
4478         Use the insns_need_reload list instead of something_needs_reloads
4479         to find out if reload_as_needed must be called.
4480         Clear unused_insn_chains at the end.
4481
4482         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
4483         changed.
4484         Delete code to keep track of current basic block.
4485         Walk reload_insn_chain instead of the rtl structure.  Build the
4486         insns_need_reload chain.
4487         Remember which insns need reloading/elimination by setting the
4488         appropriate fields in struct insn_chain, not by putting modes on the
4489         insn.
4490
4491         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
4492         arg INSN.  All callers changed.
4493         Delete declaration of struct needs.
4494         Don't set something_needs_reloads.
4495         Record insn needs in the CHAIN argument.
4496
4497         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
4498
4499         (reload_as_needed): Lose FIRST arg.  All callers changed.
4500         Walk the reload_insn_chain instead of the rtx structure.
4501         Delete code to keep track of current basic block.
4502         Rename one of the NEXT variables to OLD_NEXT.
4503
4504         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
4505         callers changed.
4506         (choose_reload_regs): Likewise.
4507
4508         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
4509         callers changed.
4510         
4511         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
4512         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
4513         (hard_regs_live, hard_regs_need_restore): Delete variables.
4514         (n_regs_saved): Now static.
4515         (referenced_regs, this_insn_sets): New variables.
4516
4517         (setup_save_areas): Restructure the code a bit.
4518
4519         (restore_referenced_regs): Delete function.
4520         (mark_referenced_regs): New function, similar to the old
4521         restore_referenced_regs, but mark registers in referenced_regs.
4522
4523         (clear_reg_live): Delete function.
4524         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
4525         Only mark registers in this_insn_sets.
4526
4527         (save_call_clobbered_regs): Rework this function to walk the
4528         reload_insn_chain instead of using the list of instructions directly.
4529         Delete code to keep track of register lives, compute live regs on the
4530         fly from information in the chain.
4531         Instead of calling restore_referenced_regs, use mark_referenced_regs,
4532         then walk the set it computes and call insert_restore as appropriate.
4533
4534         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
4535         callers changed.
4536         Restructure the code a bit.  Test hard_regs_saved instead of
4537         hard_regs_need_restore.
4538         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
4539         args.  All callers changed.
4540         Restructure the code a bit.  Use TO_SAVE to determine which regs to
4541         save instead of more complicated test.
4542         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
4543         callers changed.
4544         Create a new insn_chain structure for the new insn and place it
4545         into the chain.
4546
4547         * rtl.texi: Update documentation to reflect that reload no longer
4548         puts modes on the insns.
4549
4550 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4551
4552         * function.c (purge_addressof_1): Force the first argument of a
4553         CALL insn to memory.
4554
4555 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
4556
4557         * rtl.h: Delete duplicate prototypes.  Add some missing
4558         prototypes.
4559         * rtlanal.c: (for_each_rtx): Formatting tweak.
4560
4561 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4562
4563         * real.c (emdnorm and etoasc): Disable round to even for c4x target
4564         to be compatible with TI compiler.
4565
4566         * Makefile.in (USER_H): Add va-c4x.h to definition.
4567
4568 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
4569
4570         * function.c (purge_addressof_1): Fix typo in inequality: do
4571         bitfield optimization for equal mode sizes.
4572         * expmed.c (store_bit_field): Don't take subregs of subregs in
4573         the movstrict case.  Tidy a potential problem in the multi-word case.
4574         (extract_bit_field): Likewise.
4575
4576 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4577
4578         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
4579         function.
4580         Compute max_uid_for_flow by calling get_max_uid after the scan.
4581         (find_basic_blocks_1): Don't emit NOPs here.
4582
4583 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
4584
4585         * alias.c (base_alias_check): Accept new args for the modes of the
4586         two references.  Use them to determine if an AND can overlap.  Update
4587         all callers.
4588         (memrefs_conflict_p): Assume sizes are aligned, and uses them
4589         to determine if an AND can overlap.
4590
4591 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
4592
4593         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
4594         check.  Add comment to document problems with TARGET_SUN_FPA version
4595         of this macro.
4596         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
4597
4598 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4599
4600         * Makefile.in (gencheck.o): Depend on gansidecl.h.
4601
4602         * c-common.c (print_char_table): Add missing initializers.
4603         (scan_char_table): Likewise.
4604         (time_char_table): Likewise.
4605
4606         * c-decl.c (c_decode_option): Mark parameter `argc' with
4607         ATTRIBUTE_UNUSED.
4608         (declare_parm_level): Mark parameter `definition_flag' with
4609         ATTRIBUTE_UNUSED.
4610
4611         * c-lex.c (readescape): Use `(unsigned)1' in shift.
4612         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
4613         against one.
4614
4615         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
4616         callers changed.
4617         (emit_call_1): Mark parameters `fndecl' and `funtype' with
4618         ATTRIBUTE_UNUSED.
4619         (expand_call): Cast result of MIN() to (unsigned int) when
4620         comparing against an unsigned value.
4621
4622         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
4623         callers changed.
4624         (make_definition): Remove unused parameter `op'.  All callers
4625         changed.
4626         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
4627         comparing against the result of pointer arithmetic.
4628
4629         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
4630         when comparing against one.
4631
4632         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
4633         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
4634         one.
4635         (output_die): Move variable `i' into the scope in which it is
4636         used.  Change its type to `unsigned'.
4637         (output_die): Cast the result of `strlen' to (int) when passing it
4638         to ASM_OUTPUT_ASCII().
4639         (output_pubnames): Likewise.
4640         (output_line_info): Likewise.
4641
4642         * emit-rtl.c (global_rtl): Add missing initializers.
4643
4644         * explow.c (promote_mode): Mark parameter `for_call' with
4645         ATTRIBUTE_UNUSED.
4646
4647         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
4648         `unsigned HOST_WIDE_INT' when comparing against one.
4649         (synth_mult): Change type of variable `cost' to int.
4650         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
4651
4652         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
4653         when comparing against one.
4654         (get_inner_reference): Change variable `alignment' to unsigned.
4655         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
4656         int) when comparing against one.
4657         (expand_builtin_setjmp): Change type of variable `i' to size_t.
4658
4659         * fold-const.c (div_and_round_double): Cast BASE to
4660         (HOST_WIDE_INT) when comparing against one.
4661
4662         * gencheck.c: Include gansidecl.h.
4663         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
4664
4665         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
4666         `tcode' with ATTRIBUTE_UNUSED.
4667
4668         * real.c (edivm): Cast constant value to (unsigned long) in
4669         expression compared against an unsigned value.
4670
4671         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
4672         comparing against one.
4673         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
4674         when comparing against one.
4675
4676         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
4677         (unsigned int) when comparing against one.  Likewise for
4678         GET_MODE_BITSIZE.
4679         (smallest_mode_for_size): Likewise.
4680         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
4681         (restore_storage_status): Likewise.
4682         
4683         * toplev.c (debug_args): Add missing initializer.
4684         (f_options): Spelling correction.  Add missing initializers.
4685         (documented_lang_options): Likewise.
4686         (debug_end_source_file): Mark parameter `lineno' with
4687         ATTRIBUTE_UNUSED.
4688
4689         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
4690         `decl' and `type' with ATTRIBUTE_UNUSED.
4691
4692         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
4693         when comparing against one.
4694         (assemble_variable): Mark parameter `top_level' with
4695         ATTRIBUTE_UNUSED.
4696         (assemble_external_libcall): Mark parameter `fun' with
4697         ATTRIBUTE_UNUSED.
4698         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
4699         ATTRIBUTE_UNUSED.
4700
4701 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
4702
4703         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
4704         Replace use of r5 with use of r19.
4705
4706         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
4707
4708         * config/v850/v850.c (compute_register_save_size): Allow for the
4709         fact that helper functions save all registers, not just those used
4710         by the function.
4711         
4712         Replace constant 31 with macro LINK_POINTER_REGNUM.
4713
4714         * config/v850/v850.md: Use 'indirect_operand' rather than
4715         'memory_operand' for bit test/set/clear patterns.
4716
4717 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
4718
4719         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
4720         * varasm.c (assemble_start_function et al): Don't call
4721         ASM_GLOBALIZE_LABEL for weak symbols.
4722
4723 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
4724
4725         * cse.c (equiv_constant): Check for NULL return from
4726         gen_lowpart_if_possible().
4727
4728 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
4729
4730         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
4731
4732         * collect2.c (main): Pass -EL/-EB through to the compiler.
4733
4734 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4735         
4736         * expr.c (push_block): Handle targets where the stack grows
4737         to higher addresses, but args grow to lower addresses and
4738         ACCUMULATE_OUTGOING_ARGS is not defined.
4739
4740 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
4741
4742         * config/v850/v850.c (print_operand):  Extend meaning
4743         of 'c' operands to support .vtinherit.
4744
4745 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4746
4747         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
4748         Added ATTRIBUTE_UNUSED to unused function arguments.
4749         (rc_reg_operand): New predicate.
4750         (c4x_rptb_insert): New function.
4751         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
4752         (c4x_optimization_options): New function.
4753
4754         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
4755          (decrement_and_branch_on_count): New pattern.
4756          (rptb_top): Modified pattern to work with BCT optimization.
4757         
4758         * config/c4x/c4x.h (RC_REG): New register class.
4759         (rc_reg_operand): Define prototype.
4760         (IS_RC_REG): New macro.
4761         (IS_RC_OR_PSEUDO_REG): New macro.
4762         (IS_RC_OR_PSEUDO_REGNO): New macro.
4763         (OPTIMIZATION_OPTIONS): Define.
4764
4765 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
4766
4767         * collect2.c (extract_init_priority): No priority is 65535.
4768
4769 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
4770         
4771         * Makefile.in (build_tooldir): new variable, same as old
4772         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
4773         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
4774         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
4775         
4776         * configure.in (gxx_include_dir): set default based on unlibsubdir
4777         * Makefile.in (tooldir): ditto
4778         (cccp.o, cpplib.o): use unlibsubdir implicitly through
4779         gxx_include_dir, includedir and tooldir
4780         (protoize.o, unprotoize.o): ditto
4781         
4782 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
4783
4784         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
4785
4786         * config/arm/thumb.c (thumb_override_options): Add warning about
4787         PIC code not being supported just yet.
4788
4789 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
4790
4791         * flow.c: Update comment.
4792         (notice_stack_pointer_modification): New static function.
4793         (record_volatile_insns): Use it.
4794         (mark_regs_live_at_end): Mark the stack pointer as alive
4795         at the end of the function if current_function_sp_is_unchanging
4796         is set.
4797         (life_analysis_1): Set current_function_sp_is_unchanging.
4798         * function.c: Define it.
4799         (init_function_start): Initialize it.
4800         * output.h: Declare it.
4801         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
4802         the stack pointer as alive at the end of the function if
4803         current_function_sp_is_unchanging is set.
4804         * i386.c (ix86_epilogue): Optimize the restoring
4805         of the stack pointer.
4806
4807 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
4808
4809         * version.c: Bump for snapshot.
4810
4811 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
4812
4813         * c-pragma.c (handle_pragma_token): If passed a token instead
4814         of a tree, use that as the pack value.
4815
4816 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
4817
4818         * flow.c (find_basic_blocks_1): Fix prototype.
4819
4820 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
4821
4822         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
4823         (struct tree_decl): New fields no_check_memory_usage.
4824         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
4825         (init_attributes): Register it as a new attribute.
4826         (decl_attributes): Set flags on functions given that attribute.
4827         * c-decl.c (duplicate_decls): Merge new attribute.
4828         * expr.h (current_function_check_memory_usage): Declare new var.
4829         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
4830         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
4831         current_function_check_memory_usage.
4832         * function.h: Add field to struct function.
4833         * function.c (current_function_check_memory_usage): Define it.
4834         (push_function_context_to, pop_function_context_from): Save and
4835         restore it.
4836         (expand_function_start): Set it, based on global flag and function
4837         attribute.
4838
4839         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
4840         check non-automatic variables, to permit detection of writes to
4841         read-only locations in embedded systems without memory management.
4842         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
4843         when emitting chkr_set_right_libfunc call, even if the argument is
4844         BLKmode or variable-sized; don't abort.
4845
4846         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
4847         symbols in Pmode, not VOIDmode.
4848
4849 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4850
4851         * cppexp.c: When forcing unsigned comparisons, cast both sides
4852         of the operation.
4853
4854         * cpphash.h: Move static declaration of hashtab[]...
4855         * cpphash.c: ...here.
4856
4857         * cpplib.c: Cast difference of two pointers to size_t before
4858         comparing it to size_t.  Cast signed to unsigned
4859         before comparing to size_t. (FIXME: struct argdata should use
4860         unsigned buffer sizes.)
4861         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
4862         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
4863         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
4864         size_t before comparison.
4865
4866 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
4867
4868         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
4869         (find_basic_blocks_1): Similarly.
4870         * output.h (find_basic_blocks): Fix prototype.
4871         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
4872         find_basic_blocks anymore.
4873
4874 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
4875
4876         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
4877         (sbitmap_free, sbitmap_vector_free): New macros.
4878         * output.h (rtl_dump_file): Declare.
4879
4880 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
4881
4882         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
4883
4884 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4885
4886         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
4887         (DFtype): Likewise.
4888         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
4889         (divide): Remove unused variable `tmp'.
4890         (si_to_float): Cast numeric constant to (SItype) before comparing
4891         it against one.
4892
4893 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
4894
4895         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
4896         * gcc.c (add_preprocessor_option): Correct typo when allocating
4897         memory, sizeof() argument had one too many `*'.
4898         (add_assembler_option): Likewise.
4899         (add_linker_option): Likewise.
4900         * gcov.c (output_data): Likewise.
4901         * local-alloc.c (memref_used_between_p): Likewise.
4902         (update_equiv_regs): Likewise.
4903         * loop.c (strength_reduce): Likewise.
4904         * reg-stack.c (record_asm_reg_life): Likewise.
4905         (subst_asm_stack_reg): Likewise.
4906         * reorg.c (dbr_schedule): Likewise.
4907
4908 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
4909
4910         * flow.c (life_analysis_1): Break out some functions.
4911         (find_basic_blocks_1): Likewise.  Also move some variables out and
4912         make them static.
4913         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
4914         new static var nonlocal_label_list with it.
4915         (active_eh_region, nested_eh_region, label_value_list,
4916         nonlocal_label_list): New static variables.
4917         (make_edges, delete_unreachable_blocks, delete_block): New static
4918         functions, broken out of find_basic_blocks_1.
4919         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
4920         noop_move_p): New static functions, broken out of life_analysis_1.
4921
4922 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
4923
4924         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
4925         Take extra care for op0 now possibly being a subreg.
4926         (extract_bit_field): Likewise.
4927         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
4928         the reg to memory if there is no equal sized integral mode.
4929         * stor-layout.c (int_mode_for_mode): New function.
4930         * machmode.h: Prototype it.
4931
4932 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
4933
4934         * global.c (build_insn_chain): Verify no real insns exist past the
4935         end of the last basic block, then exit the loop.
4936
4937 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4938
4939         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
4940
4941 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
4942
4943         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
4944
4945 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@mhpcc.edu>
4946
4947         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
4948
4949 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
4950
4951         * flow.c (find_basic_blocks): Correctly determine when a call
4952         is within an exception region.
4953
4954 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
4955
4956         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
4957
4958         * cpplib.h: Protect from multiple inclusions.
4959         * cpplib.c: Fix minor formatting problems.
4960
4961         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
4962
4963         * jump.c (jump_optimize): Revert accidental patch.
4964
4965         * Makefile.in (cpplib.o): Use unlibsubdir.
4966
4967 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
4968
4969         * loop.c (get_condition): Allow combine when either compare is
4970         VOIDmode.
4971
4972 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
4973
4974         * version.c: Bump for snapshot.
4975
4976 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
4977
4978         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
4979         (init_lex): Initialize ridpointers[RID_BYREF].
4980         * c-lex.h (enum rid): Add RID_BYREF.
4981         * c-parse.gperf: Add RID_BYREF as a type qualifier.
4982         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
4983         (encode_type_qualifiers): Similarly
4984         * c-gperf.h: Rebuilt.
4985
4986 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
4987
4988         * c-common.c (type_for_mode): Only return TItype nodes when
4989         HOST_BITS_PER_WIDE_INT is >= 64 bits.
4990         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
4991         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
4992         (init_decl_processing): Only create TItype nodes when
4993         HOST_BITS_PER_WIDE_INT is >= 64 bits.
4994         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
4995         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
4996
4997 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
4998
4999         * stmt.c (n_occurrences): New static function.
5000         (expand_asm_operands): Verify that all constrains match in the
5001         number of alternatives.
5002         Verify that '+' or '=' are at the beginning of an output constraint.
5003         Don't allow '&' for input operands.
5004         Verify that '%' isn't written for the last operand.
5005         * reload.c (find_reloads): Abort if an asm is found with invalid
5006         constraints; all possible problems ought to be checked for earlier.
5007
5008 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
5009
5010         * flags.h (flag_branch_on_count_reg): Always declare 
5011         * toplev.c (flag_branch_on_count_reg): Likewise.
5012         * toplev.c: Fix typos.
5013
5014         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
5015         (toc4x): Similarly.
5016
5017 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
5018
5019         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
5020         max_uids_for_flow.
5021         (find_basic_blocks_1): Add a nop to the end of a basic block when
5022         a trailing call insn does not have abnormal control flow.
5023         * gcse.c (pre_transpout): New variable.
5024         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
5025         (compute_pre_transpout): Calculate it.
5026         (compute_pre_ppinout): Use it to eliminate impossible placements
5027         due to abnormal control flow through calls.
5028         (compute_pre_data): Call compute_pre_transpout.
5029
5030 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5031
5032         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
5033
5034 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
5035
5036         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
5037         and matching define_insns): Tack on a `use' of the table label, so
5038         flow analysis will recognize a tablejump.
5039
5040 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
5041
5042         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
5043         always end basic blocks for abnormal edge reasons.
5044
5045 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
5046
5047         * config/i386/i386.h: Remove definition of
5048         HANDLE_PRAGMA_PACK_PUSH_POP.
5049         
5050         * config/i386/go32.h: Add definition of
5051         HANDLE_PRAGMA_PACK_PUSH_POP.
5052         
5053         * config/i386/win32.h: Add definition of
5054         HANDLE_PRAGMA_PACK_PUSH_POP.
5055         
5056         * config/i386/cygwin32.h: Add definition of
5057         HANDLE_PRAGMA_PACK_PUSH_POP.
5058
5059         * c-pragma.c (insert_pack_attributes): Do not insert
5060         attributes unless #pragma pack(push,<n>) is in effect.
5061
5062 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
5063
5064         * expr.c (emit_group_store): Handle a PARALLEL destination.
5065
5066 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
5067
5068         * gcse.c (pre_insert_insn): When a call ends a bb, insert
5069         the new insns before the argument regs are loaded.
5070
5071 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5072
5073         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
5074         (c-parse.gperf): Update comments describing invocation flags.
5075         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
5076
5077 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
5078
5079         * reload1.c (reload): Call free before clobbering the memory
5080         locations or constants pointers.
5081
5082 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5083
5084         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
5085         for efficiency by checking whether we need to modify the current
5086         stack permission at all.
5087         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
5088         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
5089         __enable_execute_stack libcall here too if
5090         TRANSFER_FROM_TRAMPOLINE is defined.
5091         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
5092         IN_LIBGCC2.
5093
5094 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
5095
5096         * Makefile.in (DRIVER_DEFINES): Remove last change.
5097         
5098 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5099
5100         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
5101         insns we're going to copy.
5102         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
5103
5104         * loop.c (count_one_set): Add prototype.
5105
5106         * caller-save.c (restore_referenced_regs): Lose mode argument.
5107         (insert_save): Lose mode argument.
5108         (insert_restore): Lose mode argument.
5109         (insert_one_insn): Lose mode argument.
5110         (save_call_clobbered_regs): Lose mode argument.
5111         (setup_save_areas): Take no argument and return void.  All callers
5112         changed.
5113         Don't verify validity of memory addresses.
5114         * reload.h (setup_save_ares): Adjust prototype.
5115         (save_call_clobbered_regs): Likewise.
5116         * reload1.c (delete_caller_save_insns): New function.
5117         (caller_save_spill_class): Delete variable.
5118         (caller_save_group_size): Delete variable.
5119         (reload): Call setup_save_areas and save_call_clobbered_regs
5120         in the main loop, before calling calculate_needs_all_insns.
5121         Don't call save_call_clobbered_regs after the loop.
5122         Call delete_caller_save_insns at the end of an iteration if
5123         something changed.
5124         Delete code to manage caller_save_spill_class.
5125         Emit the final note before setting reload_first_uid.
5126         Simplify test that determines whether reload_as_needed gets run.
5127         (calculate_needs): Delete code to manage caller_save_spill_class.
5128
5129 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
5130
5131         * collect2.c (main): Initialize ld_file_name.
5132
5133 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
5134  
5135         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
5136         check for flag_function_sections.
5137
5138 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5139
5140         * cse.c (insert_regs): Fix bug in Sep 24 change.
5141
5142 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5143
5144         * flags.h (flag_dump_unnumbered): Declare.
5145         * toplev.c (flag_dump_unnumbered): Don't declare.
5146         * print-rtl.c (flags.h): Include.
5147         (print_rtl_single): Add return value.
5148         * rtl.h (print_rtl_single): Update declaration.
5149         * flow.c (flag_dump_unnumbered): Don't declare.
5150         (print_rtl_with_bb): Use return value of print_rtl_single.
5151
5152 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5153
5154         * loop.c (count_one_set): New static function, broken out of
5155         count_loop_regs_set
5156         (count_loop_regs_set): Call it.
5157         * global.c (mark_reg_store): Handle clobbers here by not calling
5158         set_preference.
5159         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
5160         is in fact a clobber.
5161         * integrate.c (process_reg_param): New function, broken out of
5162         expand_inline_function.
5163         (expand_inline_function): Call it.
5164
5165
5166         * i386.md (addsidi3_1): Delete unused variable temp.
5167         (addsidi3_2): Likewise.
5168         (clstrstrsi): Delete unused variable addr1.
5169
5170         * rtl.h: Don't declare any functions also declared in recog.h.
5171
5172         * Makefile.in (stupid.o): Update dependencies.
5173         (global.o): Likewise.
5174
5175         * global.c: Include reload.h
5176         (reg_becomes_live): New function.
5177         (reg_dies): New function.
5178         (build_insn_chain): New function.
5179         (global_alloc): Call build_insn_chain before calling reload.
5180
5181         * reload.h (struct needs): New structure definition.
5182         (struct insn_chain): Likewise.
5183         (reload_insn_chain): Declare variable.
5184         (new_insn_chain): Declare function.
5185
5186
5187         * reload1.c (reload_startobj): New variable.
5188         (reload_insn_chain): New variable.
5189         (unused_insn_chains): New variable.
5190         (new_insn_chain): New function.
5191         (init_reload): Initialize reload_startobj, not reload_firstobj.
5192         (reload): Initialize reload_firstobj.
5193         Before returning, free everything on the reload_obstack.
5194
5195         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
5196         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
5197         current_chain): New variables.
5198         (reg_where_born): Delete variable.
5199         (REG_WHERE_BORN): New macro.
5200         (find_clobbered_regs): New function.
5201         (stupid_life_analysis): Don't allocate/free reg_where_born.
5202         Allocate and free reg_where_born_exact, reg_where_born_clobber,
5203         reg_where_dead_chain.
5204         Use REG_WHERE_BORN instead of reg_where_born.
5205         While processing the insns, build the reload_insn_chain with
5206         information about register lifetimes.
5207         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
5208         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
5209         changed.
5210         Compute and information about birth and death of pseudo registers in
5211         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
5212         Delete code to set elements of reg_where_born.  
5213
5214 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5215
5216         * tree.def (GOTO_EXPR): Modified documentation.
5217         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
5218         goto.
5219
5220 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5221
5222         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
5223         loop_final_value, loop_comparison_code): No longer static.
5224         (unroll_loop): Delete loop_start_value update.
5225         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
5226         loop_final_value, loop_comparison_code): Extern.
5227         (loop_start_value): Delete extern.
5228         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
5229         loop_comparison_value, loop_comparison_code): Delete.
5230         (loop_optimize): Remove initialization for deleted variables.
5231         (strength_reduce): Delete analyze_loop_iterations call.  Only call
5232         insert_bct if flag_branch_count_on_reg set.
5233         (analyze_loop_iterations): Delete.
5234         (insert_bct): Remove iteration count calculation.  Move checks for
5235         viable BCT optimization to here.  Obtain iteration count from
5236         loop_iterations and correct for unrolling.  Check for enough
5237         iteration to be beneficial.  Comment out runtime iteration count
5238         case.
5239         (insert_bct): Print iteration count in dump file.  Remove
5240         loop_var_mode and use word_mode directly.
5241
5242         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
5243         * rs6000.c (rs6000_override_options): Use it.
5244         (optimization_options): Enable use of flag_branch_on_count_reg.
5245         * rs6000.md (define_function_unit): Describe 604e.
5246
5247 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5248
5249         * loop.c (move_movables): Corrected threshold calculation for
5250         moved_once registers.
5251
5252 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5253
5254         * loop.c (combine_givs_p): Fix test for identical givs.
5255
5256 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
5257
5258         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
5259         call abort if the function is already defined.
5260
5261 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
5262
5263         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
5264         truncation is not a no-op.
5265
5266 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
5267
5268         * version.c: Bump for snapshot.
5269
5270 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
5271
5272         * version.c: Bump for snapshot.
5273
5274 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
5275
5276         * expmed.c (expand_divmod): Don't widen for computing remainder
5277         if we seem to have a divmod pattern for needed mode.
5278
5279 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5280
5281         * cpplib.c (macroexpand): Correct off-by-one error in handling
5282         of escapes.
5283
5284 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
5285
5286         * combine.c (expand_field_assignment): Don't do bitwise operations
5287         on MODE_FLOAT; pun to MODE_INT if possible.
5288
5289 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
5290                           scott snyder  <snyder@d0sgif.fnal.gov>
5291
5292         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
5293         linker.  Recognize mangled names in quotes.
5294
5295 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5296
5297         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
5298         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
5299         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
5300         (lshrsi3_extend, lshrsi3_extend2): Ditto.
5301
5302 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5303
5304         * function.c (purge_addressof_1): If trying to take a sub-word
5305         integral piece of a floating point mode, put it on the stack.
5306
5307 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
5308
5309         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
5310
5311 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
5312
5313         * PROJECTS: Remove template friends.
5314
5315         * collect2.c (sort_ids): Remove unused variable.
5316
5317         * tm.texi (MATH_LIBRARY): Document.
5318         (NEED_MATH_LIBRARY): Remove.
5319
5320         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
5321         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
5322
5323 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
5324
5325         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
5326         last_end to 0x7fffffff.
5327
5328 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5329
5330         * function.c (purge_addressof_1): Do not perform endianness
5331         corrections on bitpos, who we call will do it for us.
5332
5333 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
5334
5335         * h8300.c (WORD_REG_USED): Fix typo.
5336         (initial_offset): Use WORD_REG_USED.
5337
5338         * h8300.c (handle_pragma): Fix typo.
5339
5340 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5341
5342         * caller-save.c (insert_save_restore): Break this function up
5343         into new functions insert_restore, insert_save and insert_one_insn.
5344         All callers changed.
5345         (insert_restore): New function, mostly broken out of
5346         insert_save_restore.
5347         (insert_save): Likewise.
5348         (insert_one_insn): Likewise.
5349         (restore_referenced_regs): New argument BLOCK.  All callers changed.
5350         (save_call_clobbered_regs): Don't keep track of basic block boundaries
5351         in this function, do it in insert_one_insn instead.
5352
5353         * reload1.c (reload): Break out some more pieces into separate
5354         functions.
5355         (dump_needs): New function, broken out of reload.
5356         (set_initial_elim_offsets): Likewise.
5357         (init_elim_table): Likewise.
5358         (update_eliminables): Likewise.
5359
5360         * global.c (global_alloc): Delete code to manage the scratch_list.
5361         * local-alloc.c (qty_scratch_rtx): Delete.
5362         (scratch_block): Delete.
5363         (scratch_list): Delete.
5364         (scratch_list_length): Delete.
5365         (scratch_index): Delete.
5366         (alloc_qty_for_scratch): Delete.
5367         (local-alloc): Update initialization of max_qty.
5368         Delete code to manage the scratch list.
5369         Delete code to allocate/initialize qty_scratch_rtx.
5370         (block_alloc): Don't allocate quantities for scratches.
5371         Delete code to manage the scratch list.
5372         * regs.h (scratch_list): Delete declaration.
5373         (scratch_block): Delete declaration.
5374         (scratch_list_length): Delete declaration.
5375         * reload1.c (reload): Delete code to manage the scratch list.
5376         (spill_hard_reg): Likewise.
5377         (mark_scratch_live): Delete.
5378
5379         * recog.c (alter_subreg): Delete declaration.
5380
5381 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
5382
5383         * Makefile.in (cccp.o): Fix typo in last patch.
5384
5385 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5386
5387         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
5388         * config/sh/lib1funcs.asm (___set_fpscr): Add.
5389
5390 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
5391
5392         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
5393         NULL_RTX as an argument.
5394
5395         * Makefile.in (unlibsubdir): Define.
5396         (DRIVER_DEFINES): Use unlibsubdir.
5397         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
5398         (stmp-fixinc): Similarly.
5399
5400 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
5401
5402         * regmove.c (regmove_optimize): Add variable old_max_uid.
5403         At the end of the function, update basic_block_end.
5404
5405 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5406
5407         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
5408         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
5409         arbitrary constant.
5410
5411 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
5412
5413         * config/arm/arm.c: Improve interworking support.
5414
5415 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5416
5417         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
5418         copied from reload_out[r] .
5419
5420 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
5421
5422         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
5423         with more than three size ranges.
5424
5425         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
5426
5427         * rtl.c (mode_name): Add a null string at the end of the array.
5428         (mode_wider_mode): Change type to unsigned char.
5429         (mode_mask_array): New variable.
5430         (init_rtl): Update for mode_wider_mode type change.
5431
5432         * rtl.h (mode_wider_mode): Change type to unsigned char.
5433         (mode_mask_array): Declare.
5434         (GET_MODE_MASK): Use mode_mask_array.
5435
5436 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
5437
5438         * calls.c (expand_call) : Encapsulate code into 
5439         copy_blkmode_from_reg.
5440         * expr.c (copy_blkmode_from_reg): New function.
5441         * expr.h (copy_blkmode_from_reg): New function.
5442         * integrate.c (function_cannot_inline_p): We can inline
5443         these now.
5444         (expand_inline_function): Use copy_blkmode_from_reg
5445         if needed.  Avoid creating BLKmode REGs.
5446         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
5447         object.
5448
5449 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
5450
5451         * config/v850/v850.c: Add function prototypes.
5452         Add support for v850 special data areas.
5453
5454         * config/v850/v850.h: Add support for v850 special data areas.
5455         
5456         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
5457         HANDLE_PRAGMA_PACK_PUSH_POP.
5458         (push_alignment): New function: Cache an alignment requested
5459         by a #pragma pack(push,<n>).
5460         (pop_alignment): New function: Pop an alignment from the
5461         alignment stack.
5462         (insert_pack_attributes): New function: Generate __packed__
5463         and __aligned__ attributes for new decls whilst a #pragma pack
5464         is in effect. 
5465         (add_weak): New function: Cache a #pragma weak directive.
5466         (handle_pragma_token): Document calling conventions.  Add
5467         support for #pragma pack(push,<n>) and #pragma pack (pop).
5468
5469         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
5470         are defined enable HANDLE_PRAGMA_PACK.
5471         Move 'struct weak_syms' here (from varasm.c).
5472         Add pragma states for push and pop pragmas.
5473
5474         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
5475         if it is defined.
5476
5477         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
5478         HANDLE_GENERIC_PRAGMAS.
5479         
5480         * varasm.c: Move definition of 'struct weak_syms' into
5481         c-pragma.h. 
5482         (handle_pragma_weak): Deleted.
5483
5484         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5485
5486         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
5487
5488         * c-decl.c (start_function): Add invocation of
5489         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
5490
5491         * tm.texi: Remove description of non-existant macro
5492         SET_DEFAULT_SECTION_NAME.
5493         
5494         (HANDLE_SYSV_PRAGMA): Document.
5495         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
5496
5497 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
5498
5499         * config.sub: Recognize i[34567]86-pc-udk as new target.
5500         * configure.in: Likewise.
5501         * config/i386/t-udk: New file.
5502         * config/i386/udk.h: New file.
5503
5504 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
5505
5506         * reorg.c (check_annul_list_true_false): Remove unused variables.
5507         (steal_delay_list_from_target): Add missing "used_annul" variable.
5508         (try_merge_delay_insns): Close out half formed comment.
5509
5510 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5511
5512         * cpplib.c (macroexpand): If arg->raw_before or
5513         arg->raw_after, remove any no-reexpansion escape at the
5514         beginning of the pasted token.  Correct handling of whitespace
5515         markers and no-reexpand markers at the end if arg->raw_after.
5516
5517         * toplev.c (documented_lang_options): Recognize -include,
5518         -imacros, -iwithprefix, -iwithprefixbefore.
5519         * cpplib.c (cpp_start_read): Process -imacros and -include
5520         switches at the same time and in command-line order, after
5521         initializing the dependency-output code.  Emit properly nested
5522         #line directives for them.  Emit a #line for the main file
5523         before processing these switches, and don't do it again
5524         afterward.
5525
5526 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
5527
5528         * function.c (purge_addressof_1): Use bitfield manipulation
5529         routines to handle mem mode < reg mode.
5530
5531 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
5532
5533         * reorg.c (try_merge_delay_insns): Account for resources referenced
5534         in each instruction in INSN's delay list before trying to eliminate
5535         useless instructions.  Similarly when looking at a trial insn's delay
5536         slots.
5537
5538         * reorg.c (check_annul_list_true_false): New function.
5539         (steal_delay_list_from_{target,fallthrough}): Call it and also
5540         refine tests for when we may annul if already filled a slot.
5541         (fill_slots_from_thread): Likewise.
5542         (delete_from_delay_slot): Return newly-created thread.
5543         (try_merge_delay_isns): Use its new return value.
5544
5545 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
5546
5547         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
5548         used to compute a giv or as some other non-counting use.
5549
5550 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5551
5552         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
5553         * local-alloc.c (find_free_reg): Use it.
5554         * global.c (find_reg): Likewise.
5555         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
5556
5557         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5558         * caller-save.c (init_caller_save): Use it.
5559         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
5560
5561 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5562
5563         * configure.in: Add --enable-cpplib option which uses cpplib
5564         for cpp, but doesn't link cpplib into cc1.  Make help text
5565         capitalization consistent.
5566         * configure: Rebuilt.
5567
5568 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
5569
5570         * function.c (gen_mem_addressof): If the address REG is
5571         REG_USERVAR_P make the new REG be so also.
5572         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
5573         in an attempt to clarify slightly.
5574
5575 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
5576
5577         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
5578         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
5579
5580 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
5581
5582         * toplev.c:  Fix last patch.
5583
5584 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
5585
5586         * loop.c (get_condition): Fix typo in May 9 change.
5587
5588 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
5589
5590         * invoke.texi (-fexceptions): Merge 2 different descriptions.
5591
5592 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5593
5594         * toplev.c (documented_lang_options): Spelling corrections.
5595
5596 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5597
5598         * configure.in: new flags --with-ld and --with-as, equivalent
5599         to setting LD and AS environment variables.  Test whether
5600         specified arguments are GNU commands, and report them with
5601         checking messages.  Use the specified AS for configure
5602         tests too.
5603         * configure: ditto
5604         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
5605         * config.in: ditto
5606         * gcc.c (find_a_file): when looking for `as' and `ld', return
5607         the DEFAULT program if it exists
5608         * collect2.c (main): use DEFAULT_LINKER if it exists
5609
5610         * gcc.c (find_a_file): the test for existence of a full
5611         pathname was reversed
5612
5613 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
5614
5615         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
5616         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
5617
5618 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
5619
5620         * tree.h (TYPE_BINFO): Document.
5621
5622 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
5623
5624         * i386-coff.h (dbxcoff.h): Added.
5625
5626 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
5627
5628         * toplev.c:  fix bad patch around flag_data_sections.
5629
5630 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
5631
5632         * reload1.c (reload): Use reload_address_index_reg_class and 
5633         reload_address_base_reg_class when setting
5634         caller_save_spill_class.  (Patch generated by Jim Wilson:
5635         wilson@cygnus.com).
5636
5637 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
5638
5639         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
5640         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
5641         * expr.c (store_field): Add alias_set parameter.  Set the
5642         MEM_ALIAS_SET accordingly, if the target is a MEM.
5643         (expand_assignment): Use it.
5644         (store_constructor_field): Pass 0.
5645         (expand_expr): Likewise.
5646
5647 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
5648  
5649         * flags.h:  Add flag_data_sections.
5650         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
5651         (compile_file):  Error if flag_data_sections not supported.
5652         * varasm.c (assemble_variable):  Handle flag_data_sections.
5653         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
5654         * config/mips/elf.h:  Likewise.
5655         * config/mips/elf64.h:  Likewise.
5656         * invoke.texi:  Describe -fdata-sections.
5657  
5658 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
5659
5660         * invoke.texi (-ffloat-store): Clarify that this option
5661         does not affect intermediate results -- only variables.
5662
5663 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
5664
5665         * cpp.texi: Update for Fortran usage from Craig.
5666
5667 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@mhpcc.edu>
5668
5669         * rs6000.c (function_arg_boundary): Revert accidental change on
5670         September 18.
5671
5672 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
5673
5674         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
5675         (output_mi_thunk): Declare.
5676
5677         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
5678         (output_function_profiler): Use r12 for temp, instead of r11 so
5679         that we preserve the static chain register.
5680         
5681 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
5682
5683         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
5684
5685 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5686
5687         * sh.c (gen_shl_sext): Fix case 5.
5688
5689 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5690
5691         * reload1.c (reload_combine): Re-add line that got accidentally lost.
5692
5693 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5694
5695         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
5696         accessing variables until they are initialized via va_arg().
5697
5698 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5699
5700         * reload1.c (reload_combine): Initialize set before using.
5701
5702 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
5703
5704         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
5705         won't be emitting.
5706
5707 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
5708
5709         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
5710         operand3 with mask before using it.  Patch provided by Jim Wilson.
5711
5712 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5713
5714         * config/sparc/sparc.c (function_value): Perform the equivalent of
5715         PROMOTE_MODE for ARCH64.
5716         (eligible_for_epilogue_delay): Allow DImode operations in delay
5717         slot of a return for ARCH64.
5718
5719 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5720
5721         * sh.md (sqrtsf2): Fix mode of sqrt.
5722
5723 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5724
5725         * reload1.c (choose_reload_regs): Also try inheritance when
5726         reload_in is a stack slot of a pseudo, even if we already got a
5727         reload reg.
5728
5729 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5730
5731         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
5732         (reload_cse_regs): New function body: call reload_cse_regs_1,
5733         reload_combine, reload_cse_move2add.
5734         When doing expensive_optimizations, call reload_cse_regs_1 a
5735         second time after reload_cse_move2add.
5736         (reload_combine, reload_combine_note_store): New functions.
5737         (reload_combine_note_use): New function.
5738         (reload_cse_move2add, move2add_note_store): New functions.
5739
5740 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5741
5742         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
5743         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
5744
5745         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
5746         more than 3 such reloads.
5747
5748         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
5749         RELOAD_FOR_X_ADDR_ADDR reload.
5750
5751 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5752
5753         * expr.c (store_constructor): When initializing a field that is smaller
5754         than a word, at the start of a word, try to widen it to a full word.
5755
5756         * cse.c (cse_insn): When we are about to change a register,
5757         remove any invalid references to it.
5758
5759         (remove_invalid_subreg_refs): New function.
5760         (mention_regs): Special treatment for SUBREGs.
5761         (insert_regs): Don't strip SUBREG for call to mention_regs.
5762         Check if reg_tick needs to be bumped up before that call.
5763         (lookup_as_function): Try to match known word_mode constants when
5764         looking for a norrower constant.
5765         (canon_hash): Special treatment for SUBREGs.
5766
5767 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
5768
5769         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
5770         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
5771         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
5772         and offsets in actual stack trampoline code so they match the
5773         commentary and actually work.
5774
5775 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
5776
5777         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
5778         tmake_file.
5779         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
5780         tmake_file.  Set extra_parts to needed crt objects.
5781         * configure: Rebuilt.
5782         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
5783         (TARGET_DEFAULT): Set if default is v9 or ultra.
5784         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
5785         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
5786         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
5787         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
5788         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
5789         (TARGET_VERSION): Define.
5790         (MULTILIB_DEFAULT): Define.
5791         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
5792         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
5793         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
5794         appropriately.
5795         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
5796         * config/sparc/sparc.c (sparc_override_options): If arch and
5797         pointer size disagree, emit diagnostic and fix it up.  If
5798         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
5799         V8PLUS in 64-bit mode.
5800         * config/sparc/t-linux64: New file.
5801         * config/sparc/t-sol2-64: New file.
5802         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
5803         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
5804         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
5805         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
5806         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
5807         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
5808         Define.
5809         (STARTFILE_SPEC): Set approriately based upon those.
5810         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
5811         disposition of DEFAULT_ARCH32_P.
5812         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
5813         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
5814         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
5815         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
5816         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
5817         arch64/v9.
5818         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
5819         
5820 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
5821
5822         * rtl.h (init_virtual_regs): New function.
5823         * emit-rtl.c (init_virtual_regs): Define.
5824         (insn_emit): Use it.
5825         * integrate.c (save_for_inline_copying): Likewise.
5826
5827 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
5828
5829         * config/arm/thumb.h: The following patches were made by Jim Wilson:
5830         (enum reg_class): Add NONARG_LO_REGS support.
5831         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
5832         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
5833         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
5834         completes.  Re-enable HImode REG+OFFSET addresses.
5835         (LEGITIMIZE_RELOAD_ADDRESS): Define.
5836
5837         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
5838
5839 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
5840
5841         * alpha.c (get_aligned_mem): Revert Sep 20 change.
5842         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
5843         (alpha_align_insns): Properly calculate initial offset wrt max_align.
5844
5845 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
5846
5847         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
5848         jumps as a single entity, taking into account the size of the
5849         table.
5850
5851 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
5852
5853         * tree.def (SWITCH_EXPR): New tree node definition.
5854
5855 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
5856
5857         * version.c: Bump for snapshot.
5858
5859 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
5860
5861         * version.c: Bump for snapshot.
5862
5863 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
5864
5865         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
5866         NetBSD.
5867
5868 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
5869
5870         * Revert this patch.
5871         * reload.c (find_reloads): Do not replace a pseudo with
5872         (MEM (reg_equiv_addr)) in the initializing insn for the
5873         pseudo.
5874
5875 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
5876
5877         * final.c (final_scan_insn): Disable tracking CC across branches.
5878
5879 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
5880
5881         * expr.h (eh_rtime_match_libfunc): New extern declaration.
5882         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
5883         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
5884         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
5885         NULL. Only include <stdio.h> if inhibit_libc is not defined.
5886
5887 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
5888
5889         * toplev.c (rest_of_compilation): Skip compiling anything with
5890         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
5891
5892 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
5893
5894         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
5895         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
5896         use in_libcall_block.
5897         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
5898         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
5899         to INSN.
5900
5901 Mon Sep 21 14:02:23 1998
5902
5903         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
5904         typo in no-fancy-math-387 description.
5905
5906 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
5907
5908         * version.c: Bump for snapshot.
5909
5910 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
5911
5912         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
5913
5914 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
5915
5916         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
5917         documented in install.texi.
5918         (TARGET_OPTIONS) Likewise.
5919
5920 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
5921
5922         * version.c: Bump for snapshot.
5923
5924 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
5925
5926         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
5927         * cccp.c (main): Likewise.
5928
5929         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
5930         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
5931         macro-use bugs.
5932
5933 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
5934
5935         * Makefile.in (LIBS):  Link in libiberty.a.
5936         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
5937
5938 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
5939
5940         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
5941         it to update bb boundaries.  Update caller.
5942         * function.c (reposition_prologue_and_epilogue_notes): Update
5943         bb boundaries wrt the moved note.
5944
5945 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
5946         
5947         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
5948         problems.
5949         * configure: Regenerate.
5950
5951 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
5952
5953         * alpha.c (alpha_sr_alias_set): New variable.
5954         (override_options): Set it.
5955         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
5956         (mode_mask_operand): Fix signed-unsigned comparision warning.
5957         (alpha_expand_block_move): Likewise.
5958         (print_operand): Likewise.
5959         (get_aligned_mem): Use change_address.
5960         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
5961         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
5962         (alphaev4_next_nop, alphaev5_next_nop): New functions.
5963         (alpha_align_insns): Remade from old alphaev5_align_insns
5964         to handle multiple processors.
5965         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
5966         * output.h (label_to_alignment): Prototype.
5967
5968         * tree.c (new_alias_set): New function.
5969         * tree.h (new_alias_set): Declare it.
5970         * c-common.c (c_get_alias_set): Use it.
5971
5972 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
5973
5974         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
5975         to an ABS expr, convert an unsigned input to signed.
5976         
5977 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
5978
5979         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
5980
5981 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5982
5983         * configure.in: Add support for c4x targets.
5984         * configure: Rebuilt.
5985
5986 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
5987
5988         * combine.c (distribute_notes): If an insn is a cc0 user, only
5989         delete it if we can also delete the cc0 setter.
5990
5991 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
5992
5993         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
5994         (invert_truthvalue): Enable truthvalue inversion for
5995         floating-point operands if -ffast-math.
5996
5997 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
5998                          
5999         * configure.in: Disable collect2 for nextstep.  Instead use
6000         crtbegin/crtend.
6001         * configure: Rebuilt.
6002         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
6003         (ENDFILE_SPEC): Define.
6004         (OBJECT_FORMAT_MACHO): Define.
6005         (EH_FRAME_SECTION_ASM_OP): Define.
6006         * crtstuff.c: Handle MACHO.
6007
6008 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
6009
6010         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
6011
6012 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
6013
6014         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
6015         (_fpadd_parts): Get sign right for 0.
6016
6017 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6018
6019         * ginclude/varargs.h: Add support for C4x target.
6020         * ginclude/stdargs.h: Likewise.
6021
6022 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
6023
6024         * alpha.c (alpha_return_addr): SET should be VOIDmode.
6025         (alpha_emit_set_long_const): Rewrite to be callable from reload
6026         and 32-bit hosts.
6027         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
6028         * alpha.md (movdi): Likewise.
6029
6030 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
6031
6032         * arm.c (add_constant): New parameter address_only, change caller.
6033         Set it non-zero if taking the address of an item in the pool.
6034         (arm_reorg): Handle cases where we need the address of an item in
6035         the pool.
6036
6037         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
6038         a memory address.
6039         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
6040         memory addresses that are not in standard canonical form.
6041
6042 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
6043
6044         * README.C4X: New file with information about the c4x ports.
6045         * ginclude/va-c4x.h: New file for c4x varargs support.
6046         * config/c4x: New directory with c4x port files.
6047
6048 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
6049
6050         * reload.c (find_reloads): Do not replace a pseudo with 
6051         (MEM (reg_equiv_addr)) in the initializing insn for the
6052         pseudo.
6053
6054 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6055
6056         * toplev.c (rest_of_compilation): Set bct_p on second call to
6057         loop_optimize.
6058         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
6059         bct_p.
6060         (strength_reduce): Only call analyze_loop_iterations and
6061         insert_bct if bct_p set.
6062         (check_dbra_loop): Fix typo.
6063         (insert_bct): Use word_mode instead of SImode.
6064         (instrument_loop_bct): Likewise.  Do not delete iteration count
6065         condition code generation insn.  Initialize iteration count before
6066         loop start.
6067         * rtl.h (loop_optimize): Update prototype.
6068
6069         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
6070         not doubleword aligned.
6071
6072         * rs6000.c (optimization_options): New function.
6073         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
6074         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
6075         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
6076         first; cr1 can be used for FP record condition insns.
6077
6078 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
6079
6080         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
6081         PREDICATE_CODES.
6082
6083         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
6084         patterns.
6085
6086         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
6087         operators.
6088         (block_move_call): New function: Call a library routine to copy a
6089         block of memory.
6090         (m32r_expand_block_move): New function: Expand a "movstrsi"
6091         pattern into a sequence of insns.
6092         (m32r_output_block_move): New function: Expand a
6093         "movstrsi_internal" pattern into a sequence of assembler opcodes.
6094         (m32r_block_immediate_operand): New function: Return true if the
6095         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
6096         
6097 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6098
6099         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
6100         re-align some code.
6101         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
6102
6103 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6104
6105         * regmove.c (copy_src_to_dest): Check that modes match.
6106
6107 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
6108
6109         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
6110
6111 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
6112
6113         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
6114         narrower than FLOAT_REGS.
6115
6116 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6117
6118         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
6119         * cccp.c: ditto
6120         * Makefile.in (old_gxx_include_dir): removed
6121
6122 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
6123
6124         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
6125         new specification.
6126
6127         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
6128         (sh_handle_pragma): Change function arguments to match new
6129         specification for HANDLE_PRAGMA. 
6130
6131 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6132
6133         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
6134         `unsigned char'.
6135         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
6136         When generating output, initialize missing struct member to zero.
6137
6138 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6139
6140         * regmove.c (copy_src_to_dest): Don't copy if that requires
6141         (a) new register(s).
6142
6143 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6144
6145         * global.c (reg_allocno): Now static.
6146         * reload1.c (reg_allocno): Delete declaration.
6147         (order_regs_for_reload): Take no arguments.  Don't treat regs
6148         allocated by global differently than those allocated by local-alloc.
6149
6150 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
6151
6152         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
6153         condition, fix format strings.
6154         (output_function_epilogue): Likewise.
6155
6156         * m68k/m68k.c: Don't include <stdlib.h> directly.
6157
6158 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
6159
6160         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
6161         mem_first_set, mem_last_set; because 0 can be a CUID.
6162         (oprs_unchanged_p): Use new definition.
6163         (record_last_reg_set_info): Likewise.
6164         (record_last_mem_set_info): Likewise.
6165         (compute_hash_table): Likewise.
6166
6167 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
6168
6169         * rs6000.c (output_epilogue): Handle Chill.
6170
6171         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
6172         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
6173
6174         * combine.c (make_extraction): If no mode is specified for
6175         an operand of insv, extv, or extzv, default it to word_mode.
6176         (simplify_comparison): Similarly.
6177         * expmed.c (store_bit_field): Similarly.
6178         (extract_bit_field): Similarly.
6179         * function.c (fixup_var_regs_1): Similarly.
6180         * recog.c (validate_replace_rtx_1): Similarly.
6181         * mips.md (extv, extzv, insv expanders): Default modes for most
6182         operands.  Handle TARGET_64BIT.
6183         (movdi_uld, movdi_usd): New patterns.
6184
6185         * pa.c (emit_move_sequence): Do not replace a pseudo with its
6186         equivalent memory location unless we have been provided a scratch
6187         register.  Similarly do not call find_replacement unless a
6188         scratch register has been provided.
6189
6190 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6191
6192         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
6193         return FLOAT_REGS.
6194
6195 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
6196
6197         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
6198         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
6199         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
6200         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
6201         * c-decl.c (init_decl_processing): Update accordingly.
6202         * expr.c (expand_builtin): Likewise.
6203
6204         * rtl.h (global_rtl): Add cfa entry.
6205         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
6206         (LAST_VIRTUAL_REGISTER): Update.
6207         * emit-rtl.c (global_rtl): Add cfa entry.
6208         (init_emit): Initialize it.
6209         * function.c (cfa_offset): New.
6210         (instantiate_virtual_regs): Initialize it.
6211         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
6212         (expand_function_end): Call expand_eh_return.
6213         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
6214
6215         * except.c (current_function_eh_stub_label): Kill.
6216         (current_function_eh_old_stub_label): Likwise; update all references.
6217         (expand_builtin_set_return_addr_reg): Kill.
6218         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
6219         (expand_builtin_set_eh_regs): Kill.
6220         (eh_regs): Produce a third reg for the actual handler address.
6221         (eh_return_context, eh_return_stack_adjust): New.
6222         (eh_return_handler, eh_return_stub_label): New.
6223         (init_eh_for_function): Initialize them.
6224         (expand_builtin_eh_return, expand_eh_return): New.
6225         * except.h: Update prototypes.
6226         * flow.c (find_basic_blocks_1): Update references to the stub label.
6227         * function.h (struct function): Kill stub label elements.
6228
6229         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
6230         register number is one that would be in the previous window.
6231         Provide a dummy definition for non-windowed targets.
6232         (get_reg_addr): New function.
6233         (get_reg, put_reg, copy_reg): Use it.
6234         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
6235         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
6236
6237         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
6238         (alpha_init_expanders): Initialize it.
6239         (alpha_expand_epilogue): Use it.
6240         * alpha.h: Declare it.
6241         * alpha.md (eh_epilogue): New.
6242
6243         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
6244         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
6245
6246 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
6247
6248         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
6249         flag bit mask.
6250
6251 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6252
6253         * except.h (struct eh_entry): Add false_label field.
6254         (end_catch_handler): Add prototype.
6255         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
6256         (start_catch_handler): When using old style exceptions, issue
6257         runtime typematch code before continuing with the handler.
6258         (end_catch_handler): New function, generates label after handler
6259         if needed by older style exceptions.
6260         (expand_start_all_catch): No need to check for new style exceptions.
6261         (output_exception_table_entry): Only output the first handler label
6262         for old style exceptions.
6263         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
6264         mechanism into one function, if a runtime matcher is provided.
6265
6266 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
6267
6268         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
6269
6270 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
6271
6272         * integrate.c (copy_decl_list): Fix typo.
6273
6274 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6275
6276         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
6277         attribute.
6278
6279 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
6280
6281         * version.c: Bump for snapshot.
6282
6283 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
6284
6285         * version.c: Bump for snapshot.
6286
6287 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
6288
6289         * version.c: Bump for snapshot.
6290
6291 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6292
6293         * invoke.texi (C Dialect Options): Put back missing @end itemize.
6294
6295 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6296
6297         * configure.in: remove usage of `!' to negate the result of a
6298         command; some common shells do not support it
6299
6300 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6301
6302         * configure.in: in sparc9-sol2 config, use 'if test' not
6303         brackets.
6304         * configure: Rebuilt.
6305
6306         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
6307         CM_MEDANY.
6308         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
6309         (CPP_CPU_DEFAULT_SPEC): Likewise.
6310         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
6311         for arch64 libfuncs.
6312         
6313         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
6314         for operand zero.
6315
6316 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6317
6318         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
6319
6320         * collect2.c: Don't declare `sys_siglist' here.
6321         (my_strsignal): Prototype and define new function.  Use it in
6322         place of `sys_siglist' hacks.
6323
6324         * mips_tfile.c:  Likewise.
6325
6326         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
6327         (GCC_NEED_DECLARATIONS): Likewise.
6328
6329         * system.h (strsignal): Prototype it, if necessary.
6330         (sys_siglist): Declare it, if necessary.
6331
6332 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6333
6334         * loop.c (move_movables): While removing insn sequences, preserve
6335         the next pointer of the most recently deleted insn when we skip
6336         over a NOTE.
6337
6338 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
6339
6340         * objc/config-lang.in: Do not output the name of the selected
6341         thread file when building the front-end.  The Makefile for the
6342         runtime library will do this.
6343
6344         * objc/Make-lang.in: Do not build the runtime library or install
6345         the Objective C header files.  The Makefile for the runtime
6346         library will do this.
6347
6348         * objc/Makefile.in (all.indirect): Only build the front-end.
6349         (compiler): Rename to `frontend'.
6350         (obj-runtime): Remove target.
6351         (copy-headers): Likewise.
6352         (clean): No need to remove `libobjc.a' any longer.
6353
6354 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
6355
6356         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
6357         supported with -mcpu=xxx.
6358
6359 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6360
6361         * flow.c (mark_set_1): Recognize multi-register structure return
6362         values in CALL insns.
6363         (mark_used_regs): Likewise.
6364         (count_reg_sets_1): Likewise.
6365         (count_reg_references): Likewise.
6366         * rtlanal.c (note_stores): Likewise.
6367         (reg_overlap_mentioned_p): Likewise.
6368         * haifa-sched.c (check_live_1): Likewise.
6369         (update_live_1): Likewise.
6370         (sched_analyze_1): Likewise.
6371         (sched_note_set): Likewise.
6372         (birthing_insn_p): Likewise.
6373         (attach_deaths): Likewise.
6374
6375         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
6376
6377
6378 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
6379
6380         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
6381
6382 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6383
6384         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
6385
6386 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
6387
6388         * configure.in: Add check for GAS subsection -1 support.
6389         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
6390         * configure config.in: Rebuilt.
6391         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
6392         SImode is subsection -1 works, else use DImode.
6393         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
6394         subsection -1 works.
6395         * config/sparc/sparc.c (sparc_output_addr_vec,
6396         sparc_output_addr_diff_vec): Use them if defined.
6397
6398 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
6399
6400         * tree.h (DECL_ORIGIN): New macro.
6401         * integrate.c (copy_and_set_decl_abstract_origin): New function.
6402         (copy_decl_list): Use it.
6403         (integrate_parm_decls): Likewise.
6404         (integrate_decl_tree): Likewise.
6405         * dwarf2out.c (decl_ultimate_origin): Simplify.
6406         * dwarfout.c (decl_ultimate_origin): Likewise.
6407         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
6408         (pushdecl): Likewise.
6409
6410 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
6411
6412         * config/rs6000/rs6000.c (output_epilog): Add Java support.
6413
6414 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
6415
6416         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
6417
6418 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
6419
6420         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
6421         empty or has a single entry.
6422
6423         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
6424         before calling reg_to_stack.
6425
6426 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
6427
6428         * alpha.c (alphaev5_insn_pipe): Abort on default case.
6429         (alphaev5_next_group): Swallow CLOBBERs and USEs.
6430
6431         * c-tree.h (warn_long_long): Declare it.
6432
6433 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
6434
6435         * emit-rtl.c (gen_lowpart_common): Disable optimization of
6436         initialized float-int union if the value is a NaN.
6437
6438 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
6439
6440         * c-lex.c (real_yylex): Don't warn about long long constants if 
6441         we're allowing long long
6442
6443 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6444
6445         * except.h (current_function_eh_stub_label): Declare.
6446         (current_function_eh_old_stub_label): Declare.
6447         * function.h (struct function): New members eh_stub_label and
6448         eh_old_stub_label.
6449         * except.c (current_function_eh_stub_label): New variable.
6450         (current_function_eh_old_stub_label): New variable.
6451         (init_eh_for_function): Clear them.
6452         (save_eh_status): Save them.
6453         (restore_eh_status): Restore them.
6454         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
6455         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
6456         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
6457         make an edge from the block that contains it to the block starting
6458         with the label if this label is one of the eh stub labels.
6459         If eh stub labels exist, show they are reachable from the last block
6460         in the function.
6461
6462         * reload1.c (reload): Break out several subroutines and make some
6463         variables global.
6464         (calculate_needs_all_insns): New function, broken out of reload.
6465         (calculate_needs): Likewise.
6466         (find_reload_regs): Likewise.
6467         (find_group): Likewise.
6468         (find_tworeg_group): Likewise.
6469         (something_needs_reloads): New global variable, formerly in reload.
6470         (something_needs_elimination): Likewise.
6471         (caller_save_spill_class): Likewise.
6472         (caller_save_group_size): Likewise.
6473         (max_needs): Likewise.
6474         (group_size): Likewise.
6475         (max_groups): Likewise.
6476         (max_nongroups): Likewise.
6477         (group_mode): Likewise.
6478         (max_needs_insn): Likewise.
6479         (max_groups_insn): Likewise.
6480         (max_nongroups_insn): Likewise.
6481         (failure): Likewise.
6482
6483         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
6484
6485 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
6486
6487         * loop.c (load_mems): Copy rtx for output mem.
6488
6489 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
6490
6491         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
6492         mips1 or mips2 either.
6493
6494 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
6495
6496         * pa.c (pa_reorg): New marking scheme for jumps inside switch
6497         tables.
6498         (pa_adjust_insn_length): Update to work with new marking scheme
6499         for jumps inside switch tables. 
6500         * pa.md (switch_jump): Remove pattern.
6501         (jump): Handle jumps inside jump tables.
6502
6503         * Makefile.in (profile.o): Depend on insn-config.h
6504
6505 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
6506
6507         * iris6.h (DWARF2_UNWIND_INFO): Undef.
6508
6509 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6510
6511         Add preliminary native sparcv9 Solaris support.
6512         * configure.in: Recognize sparv9-*-solaris2*
6513         * configure: rebuilt
6514         * config.sub: Recognize sparcv9 just like sparc64.
6515         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
6516         config/sparc/sol2-cn.asm: Macroize so it can be shared between
6517         32-bit and 64-bit Solaris systems.
6518         * config/sparc/t-sol2: Assemble those with cpp.
6519         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
6520         (*TF*_LIBCALL): If ARCH64 use V9 names.
6521         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
6522
6523 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
6524
6525         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
6526         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
6527         not doing pic.
6528         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
6529         Pmode.
6530         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
6531         to Pmode if CASE_VECTOR_MODE is something else.
6532
6533 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
6534
6535         * prefix.c (update_path): Correctly handle cases where PATH is
6536         a substring of the builtin prefix, but specifies a different
6537         directory location.
6538
6539 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
6540
6541         * expr.c: Corrected comment about what MOVE_RATIO does.
6542         * config/alpha/alpha.h: Ditto.
6543         * config/1750a/1750a.h: Ditto.
6544         * config/clipper/clipper.h: Ditto.
6545         * config/i386/i386.h: Ditto.
6546
6547 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
6548
6549         * configure.in (m68k-next-nextstep3*): Use collect2.
6550         Similarly for x86 NeXT configurations.
6551         * configure: Rebuilt.
6552
6553 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
6554
6555         * configure.in: Don't assume srcdir is .../gcc
6556         * configure: Rebuilt.
6557
6558 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
6559
6560         * global.c: Update comments.
6561         (global_alloc): Assign allocation-numbers
6562         even for registers allocated by local_alloc in case
6563         they are later spilled and retry_global_alloc is called.
6564         (mark_reg_store, mark_reg_clobber,
6565         mark_reg_conflicts, mark_reg_death): Always record a
6566         conflict with a pseudo register even if it has been
6567         assigned to a hard register.
6568         (dump_conflicts): Don't list pseudo registers already assigned to
6569         a hard register as needing to be allocated, but do list their
6570         conflicts.
6571         * local-alloc.c: Update comment.
6572
6573 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
6574
6575         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
6576         * configure: Rebuilt.
6577
6578 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
6579
6580         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
6581         missing 'c'.
6582         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
6583         for all targets that set -msoft-float.
6584
6585 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6586
6587         * toplev.c (print_switch_values): Make static to match prototype.
6588
6589 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
6590
6591         * configure.in: If we are unable to find the "gnatbind" program,
6592         then do not configure the ada subdir.
6593         * configure: Rebuilt.
6594
6595 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
6596
6597         * version.c: Bump for snapshot.
6598
6599 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
6600
6601         * version.c: Bump for snapshot.
6602
6603 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6604
6605         * Makefile.in (toplev.o): Depend on $(EXPR_H).
6606         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
6607
6608         * gansidecl.h: Define ATTRIBUTE_NORETURN.
6609
6610         * genattrtab.c: Have insn-attrtab.c include toplev.h.
6611
6612         * genextract.c: Have insn-extract.c include toplev.h.
6613
6614         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
6615
6616         * toplev.c: Include expr.h.
6617         (really_sorry, fancy_abort): Remove prototypes.
6618         (set_target_switch): Add argument in prototype.
6619         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
6620         (v_really_sorry): Likewise.
6621         (print_version, print_single_switch, print_switch_values): Make
6622         static and add prototype arguments.
6623         (decl_printable_name): Add prototype arguments.
6624         (lang_expand_expr_t): New typedef.
6625         (lang_expand_expr): Declare as a lang_expand_expr_t.
6626         (incomplete_decl_finalize_hook): Add prototype argument.
6627         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
6628         (botch): Likewise for variable `s'.
6629         (rest_of_type_compilation): Mark variables `type' and `toplev'
6630         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
6631         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
6632         (display_help): Make variable `i' an `unsigned long'.
6633         (main): Remove unused parameter `envp'.
6634         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
6635         Cast -1 when comparing it with a `size_t'.
6636
6637         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
6638         prototype with ATTRIBUTE_NORETURN.
6639         (fatal_insn_not_found, fatal_insn, really_sorry,
6640         push_float_handler, pop_float_handler): Add prototypes.
6641         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
6642         (do_abort, botch): Add prototypes.
6643         
6644 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
6645
6646         * final.c (final): If a label is reached only from a single jump,
6647         call NOTICE_UPDATE_CC on the jump and its predecessor before
6648         emitting the insn after the label.
6649         
6650         * i386.h: Add AMD K6 support.
6651         Change TARGET_* macros to use table lookup.
6652         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
6653         (ADJUST_COST): Change definition to call function in i386.c.
6654         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
6655         * i386.c: Add AMD K6 support.
6656         Add constants for feature tests used by TARGET_* macros.
6657         (split_di): If before reload, call gen_lowpart and gen_highpart.
6658         (x86_adjust_cost): New function.
6659         (put_jump_code): New function.
6660         (print_operand): New codes 'D' and 'd'.
6661         * i386.md: New insn types.  New insn attribute "memory".
6662         Redefine scheduling parameters to use new types and add AMD K6
6663         support.  Explicitly set type of most insns.
6664         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
6665         Pro and K6 prefer movl $1,reg to incl reg.
6666         (adddi3, subdi3): Set cc_status.
6667         (DImode shift patterns): Change label counters from HOST_WIDE_INT
6668         to int; x86 can't have more than 2^31 DImode shifts per file.
6669         (setcc): Combine all setcc patterns.  Allow writing memory.
6670         Combine all jump patterns using match_operator.
6671         (*bzero): Name pattern.  Emit mutliple stos instructions when that
6672         is faster than rep stos.
6673         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
6674         add define_split.
6675
6676 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
6677
6678         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
6679         linking.
6680
6681 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
6682
6683         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
6684         not whatever we're generating now.
6685
6686         * alpha.c (set_frame_related_p, FRP): New.
6687         (alpha_expand_prologue): Mark frame related insns.
6688         (alpha_expand_epilogue): Likewise, but with a null FRP.
6689         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
6690         * alpha.md (exception_receiver): New.
6691         * alpha/crtbegin.asm (.eh_frame): New beginning.
6692         (__do_frame_setup, __do_frame_takedown): New.
6693         * alpha/crtend.asm (.eh_frame): New ending.
6694         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
6695         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
6696         (ASM_FILE_START): Don't emit .file for dwarf2.
6697
6698         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
6699         * rtl.c (reg_note_name): Likewise.
6700         * rtl.texi (REG_NOTES): Likewise.
6701         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
6702         without an offset.
6703
6704 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
6705
6706         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
6707         * i386.md (movsf, movdf, movxf): Validate memory address returned
6708         from force_const_mem.  Kill useless REG_EQUAL setting code.
6709
6710 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
6711
6712         * m68k.md (zero_extendsidi2): Fix typo.
6713
6714 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
6715
6716         * configure.in: Removed references to the removed file
6717         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
6718         * arm*-*-netbsd* and ns32k-*-netbsd*.
6719         * config/i386/xm-netbsd.h: Removed unnecessary file.
6720         * config/m68k/xm-netbsd.h: Likewise.
6721         * config/sparc/xm-netbsd.h: Likewise.
6722         * config/mips/xm-netbsd.h: Likewise.
6723
6724 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
6725
6726         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
6727         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
6728
6729         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
6730         for exact section attributions.
6731
6732         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
6733         runtime.
6734         * i386/crtdll.h (CPP_PREDEFINES): Define.
6735
6736 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
6737
6738         * m68k.md (5200 movqi): Do not allow byte sized memory references
6739         using address regs.
6740         * m68k.c (output_move_qimode): Do not use byte sized operations on
6741         address registers.
6742
6743         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
6744         explicit rules for building.  Similarly for alloca, vfprintf,
6745         choose-temp and mkstemp, getopt, getopt1, and obstack.
6746         (INCLUDES): Add $(srcdir)/../include.
6747         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
6748         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
6749
6750 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
6751
6752         * gcc.c (do_spec_1): [case 'o'] Account for
6753         lang_specific_extra_outfiles.
6754         (main): Correctly clear all slots in outfiles for
6755         lang_specific_extra_outfiles.  Set input_file_number before
6756         calling lang_specific_pre_link.
6757
6758 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
6759
6760         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
6761
6762 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6763
6764         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
6765         cases, use xword.
6766         (sparc_output_deferred_case_vectors): If no work to do, return.
6767         Fix thinko in Sept 1 change.
6768
6769 1998-09-03  SL Baur  <steve@altair.xemacs.org>
6770
6771         * Makefile.in: add semicolon in BISON definition for portability.
6772
6773 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
6774
6775         * config/nextstep.c (handle_pragma): Correct name of third
6776         argument.
6777
6778 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
6779
6780         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
6781         * config/m32r/m32r.h: Make register 17 be fixed.
6782         * config/m32r/m32r.c: Use SImode for cc operations.
6783
6784 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
6785
6786         * invoke.texi (Warning Options): Add -Wnon-template-friend
6787         documentation.
6788
6789 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
6790
6791         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
6792
6793 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@mhpcc.edu>
6794
6795         * rs6000.md (movsf): Disable explicit secondary-reload-like
6796         functionality if TARGET_POWERPC64.
6797         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
6798         functionality.
6799
6800 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
6801
6802         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
6803         and term.h from fixinc.wrap.
6804
6805 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6806
6807         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
6808         safe to include both string.h and strings.h together.
6809         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
6810         which headers to search for function declarations.  Continue to
6811         prefer string.h over strings.h when both are not acceptable.
6812
6813         * acconfig.h (STRING_WITH_STRINGS): Add stub.
6814
6815         * configure.in: Call GCC_HEADER_STRING.
6816
6817         * system.h: Test STRING_WITH_STRINGS when deciding which headers
6818         to include.  Continue to prefer string.h over strings.h when both
6819         are not acceptable.
6820
6821 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6822
6823         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
6824         not assume top 32-bits of symbolic addresses are zero if
6825         flag_pic.
6826
6827 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
6828
6829         * ginclude/va-alpha.h: Protect entire second portion of the
6830         file against double inclusion.
6831
6832 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
6833
6834         Added support for the Boehm's garbage collector.
6835         * configure.in: Handle --enable-objc-gc.
6836         * configure: Rebuilt.
6837         * Makefile.in (CHECK_TARGETS): Add check-objc.
6838         (check-objc): New rule.
6839         * objc/Make-lang.in: Build a different Objective-C library that
6840         runs with the Boehm's collector.
6841         * objc/encoding.c (objc_round_acc_size_for_types): New function.
6842         * objc/encoding.c: Correctly compute the size of compound types in
6843         the presence of bitfields. Skip the variable name of the type if
6844         any. Added support for long long.
6845         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
6846         (_F_GCINVISIBLE): New mask.
6847         * objc/gc.c: New file. Compute the type memory mask associated with
6848         a class based on the runtime information.
6849         * objc/misc.c: Added the hooks that use the Boehm's collector
6850         allocation functions.
6851         * objc/objc-act.c (build_class_template): Generate a new class
6852         member (gc_object_type) to hold the class' type memory mask.
6853         (build_shared_structure_initializer): Initialize the new member to
6854         NULL.
6855         (encode_complete_bitfield): New function. Generate the new
6856         encoding.
6857         (encode_field_decl): Generate the new encoding only for the GNU
6858         runtime.
6859         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
6860         long long types.
6861         (class_get_gc_object_type): New function to mark a pointer instance
6862         variable as a weak pointer.
6863         * objc/objc-features.texi: New file.
6864         * objc/objc.h (gc_object_type): New class member.
6865         * objc/objects.c (class_create_instance): Create a typed memory
6866         object when compiled with Boehm's collector support.
6867         * objc/sendmsg.c (__objc_init_install_dtable): Call
6868         __objc_send_initialize instead of setting the initialize flag.
6869         (__objc_send_initialize): Call __objc_generate_gc_type_description
6870         to generate the class type memory mask. Rewrite the code that
6871         sends the +initialize so that it is called only once (bug report
6872         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
6873         * testsuite/objc: New testsuite for Objective-C type encoding.
6874         * testsuite/lib/objc-torture.exp: New file.
6875         * testsuite/lib/objc.exp: New file.
6876
6877 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
6878
6879         * jump.c (jump_optimize): In if/then/else transformations, add
6880         another call to modified_between_p for the jump insn.
6881
6882 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
6883
6884         * fix-header.c (symlink): Treat like readlink.
6885
6886 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6887
6888         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
6889         as FT_float.
6890
6891 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
6892
6893         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
6894         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
6895         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
6896         
6897         * config/nextstep.c (handle_pragma): Take three arguments, as per
6898         the new HANDLE_PRAGMA macro specification.
6899         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
6900         per the new HANDLE_PRAGMA macro specification.
6901         * config/i960/i960.c (process_pragma): Take three arguments, as
6902         per the new HANDLE_PRAGMA macro specification.
6903
6904 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
6905
6906         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
6907         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
6908         if unknown pragmas are encountered.
6909         (handle_sysv_pragma): Interpret return code from
6910         handle_pragma_token ().  Return success/failure indication rather
6911         than next unprocessed character. 
6912         (pragma_getc): New function: retrieves characters from the
6913         input stream.  Defined when HANDLE_PRAGMA is enabled.
6914         (pragma_ungetc): New function: replaces characters back into the
6915         input stream.  Defined when HANDLE_PRAGMA is enabled.
6916         
6917         * c-pragma.c (handle_pragma_token): Return success/failure status
6918         of the parse.
6919         
6920         * c-pragma.h: Change prototype of handle_pragma_token().
6921
6922         * varasm.c: (handle_pragma_weak): Only create this function if
6923         HANDLE_PRAGMA_WEAK is defined.
6924
6925         * c-common,c (decl_attributes): If defined call the expression
6926         contained within the INSERT_ATTRIBUTES macro before adding
6927         attributes to a decl.
6928
6929         * tm.texi (HANDLE_PRAGMA): Document the new verion of
6930         HANDLE_PRAGMA, which takes three arguments.
6931         (INSERT_ATTRIBUTES): Document this new macro.  
6932
6933         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
6934         new INSERT_ATTRIBUTES macro.
6935
6936 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6937
6938         * config/sparc/sparc.md (movdf): Only generate special RTL for
6939         LABEL_REFs when PIC.
6940         (move_label_di): Remove
6941         (movdi_pic_label_ref, movdi_high_pic_label_ref,
6942         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
6943         references when PIC.
6944         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
6945         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
6946         output an .xword for all 64-bit cases.
6947         
6948 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6949
6950         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
6951         alignment, use FUNCTION_BOUNDARY instead.
6952         (sparc_output_deferred_case_vectors): Likewise.
6953
6954 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6955
6956         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
6957         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
6958
6959 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
6960
6961         * alpha/va_list.h: New file.
6962         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
6963
6964 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
6965
6966         * NEWS: Add SCO Openserver and Unixware 7 notes.
6967
6968         * NEWS: Fix typos.
6969
6970 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
6971
6972         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
6973         (record_constant_1): Handle RANGE_EXPR.
6974
6975 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
6976
6977         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
6978         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
6979         and NOTE_INSN_RANGE_END specially.
6980         (reemit_notes): Likewise.
6981
6982 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6983
6984         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
6985         (ultrasparc_sched_init): Remove unneeded &.
6986
6987 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6988
6989         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
6990         for m68020-60, to prevent the use of fintrz.
6991
6992 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
6993
6994         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
6995         even in stage1. 
6996         * Makefile.in: Likewise.
6997         * configure: Regenerated.
6998
6999 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
7000
7001         * configure.in (gxx_include_dir): Changed to
7002         '${prefix}/include/g++'-${libstdcxx_interface}.
7003         * configure: Rebuilt.
7004
7005 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
7006
7007         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
7008         consistent.
7009         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
7010         *sequences* *below* which scalar moves will be used.
7011
7012 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
7013
7014         * collect2.c (mktemp): Delete unused declaration.
7015
7016         * config/xm-netbsd.h: Remove unnecessary file.
7017         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
7018         file anymore, it is not needed.
7019
7020 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
7021
7022         * convert.c (convert_to_integer): Issue an error on conversions to
7023         incomplete types.
7024
7025 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
7026
7027         * Makefile.in: Add lang_tree_files and gencheck.h.
7028         * configure.in: Generate them.
7029         * gencheck.c: Include gencheck.h.
7030
7031 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7032
7033         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
7034         movdi_lo_sum_pic and movdi_high_pic and make visible.
7035         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
7036         emit these when Pmode is not SImode.
7037         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
7038
7039 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
7040
7041         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
7042         .linkonce directive after the first time.
7043
7044 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
7045
7046         * m68k.md (beq0_di): Generate correct (and more efficient) code when
7047         the clobbered operand overlaps with an input.
7048         (bne0_di): Similarly.
7049
7050         * Makefile.in (INSTALL): Remove "--no-header" argument.
7051
7052         * NEWS: Various updates.
7053
7054 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7055
7056         * config/sparc/sparc.c (arith_operand, const64_operand,
7057         const64_high_operand, arith_double_4096_operand): Mark mode as
7058         unused.
7059         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
7060         callers changed.
7061         (sparc_emit_set_const64): Remove unused variable i.
7062         (sparc_splitdi_legitimate): Likewise for addr_part.
7063         (ultra_code_from_mask): Likewise for mask.
7064         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
7065         reverse return values so it matches usage and comments.
7066         (ultra_flush_pipeline): Likewise.
7067         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
7068         this_type, and allow loads and stores of differing FP modes as
7069         they do not create a conflict.
7070         (ultra_find_type): Initialize fpmode to SFmode, fix
7071         parenthesization thinkos in large conditional.
7072         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
7073         Init free_slot_mask after ultra_cur_hist is reset, not before.
7074         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
7075         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
7076         use ultra_flush_pipeline instead, then re-init group pointer.
7077         Fix statement with no effect.  If no progress made in, and no
7078         instructions scheduled at all, advance to new pipeline cycle else
7079         we get into an endless loop.
7080         (ultrasparc_adjust_cost): Remove previous arg.
7081         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
7082         
7083 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
7084
7085         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
7086         code.  Use reg_overlap_mentioned_p to detect when source and
7087         destination overlap.
7088         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
7089
7090 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
7091
7092         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
7093         COMPARISON_VAL, into invariant_p.
7094
7095 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7096
7097         * regmove.c (regclass_compatible_p): New function.
7098         (regmove_optimize): Use it.
7099
7100         Use NREGS parameter insted of calling max_reg_num.
7101
7102         (fixup_match_1): Don't use code = MINUS when later tieing with
7103         a hard register is likely.
7104
7105 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7106
7107         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
7108         COMPARISON_VAL was normalized.
7109
7110 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
7111
7112         * loop.c (check_dbra_loop): The loop ending comparison value
7113         must be an invariant or we can not reverse the loop.
7114
7115         * loop.c (scan_loop): Count down from max_reg_num - 1 to
7116         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
7117         of the loop.
7118         (load_mems_and_recount_loop_regs_set): Likewise.
7119
7120         * i386.c (print_operand): Remove obsolete 'c' docs.
7121
7122 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
7123
7124         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
7125         * frame.c (init_object_mutex): New function.
7126         (init_object_mutex_once): Likewise.
7127         (find_fde): Call it.
7128         (__register_frame_info): Likewise.
7129         (__register_frame_info_table): Likewise.
7130         (__deregister_frame_info): Likewise.
7131
7132 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
7133
7134         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
7135
7136 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7137
7138         * loop.c (check_dbra_loop): Enable code for reversal
7139         of some loops without a known constant loop end.
7140
7141 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
7142
7143         * haifa-sched.c (last_clock_var): New.
7144         (schedule_block): Initialize it.
7145         (schedule_insn): Use it to fill insn modes with issue information.
7146
7147         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
7148         Tag trapb and next insn with TImode.
7149         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
7150         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
7151         Invoke alphaev5_align_insns as appropriate.
7152         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
7153         (MD_SCHED_VARIABLE_ISSUE): New.
7154         * alpha.md (attr type): Add multi.
7155         (define_asm_attributes): New.
7156         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
7157         (arg_home): Likewise.
7158         (fnop, unop, realign): New.
7159
7160 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
7161
7162         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
7163         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7164
7165         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
7166         (rs6000-ibm-aix4.[12]*): Likewise.
7167         * configure: Regnerate.
7168
7169 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
7170
7171         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
7172         already contains the return address.
7173
7174 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
7175
7176         * calls.c (expand_call): Use bitfield instructions to extract/deposit
7177         word sized hunks when loading unaligned args into registers.
7178
7179         * haifa-sched.c (sched_analyze_insn): Only create scheduling
7180         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
7181
7182         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
7183
7184 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7185
7186         * loop.c (check_dbra_loop): Add some code that would allow reversal
7187         of some loops without a known constant loop end if it were enabled.
7188
7189 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7190
7191         * mips.md (lshrsi3_internal2+2): Fix type-o.
7192
7193 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7194
7195         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
7196         correctly with regards to stdio.h.
7197         
7198         * calls.c: Remove stdarg.h/varargs.h.
7199         * cccp.c: Likewise.
7200         * cexp.y: Likewise.
7201         * combine.c: Likewise.
7202         * cpperror.c: Likewise.
7203         * cpplib.c: Likewise.
7204         * cpplib.h: Likewise.
7205         * doprint.c: Likewise.
7206         * emit-rtl.c: Likewise.
7207         * final.c: Likewise.
7208         * fix-header.c: Likewise.
7209         * gcc.c: Likewise.
7210         * genattr.c: Likewise.
7211         * genattrtab.c: Likewise.
7212         * gencodes.c: Likewise.
7213         * genconfig.c: Likewise.
7214         * genemit.c: Likewise.
7215         * genextract.c: Likewise.
7216         * genflags.c: Likewise.
7217         * genopinit.c: Likewise.
7218         * genoutput.c: Likewise.
7219         * genpeep.c: Likewise.
7220         * genrecog.c: Likewise.
7221         * mips-tfile.c: Likewise.
7222         * prefix.c: Likewise.
7223         * protoize.c: Likewise.
7224         * regmove.c: Likewise.
7225         * toplev.c: Likewise.
7226         * tree.c: Likewise.
7227
7228 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7229
7230         * config/sparc/sparc.c (sparc_override_options): If not
7231         TARGET_FPU, turn off TARGET_VIS.
7232         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
7233         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
7234         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
7235         (movdi_insn_sp64): Add VIS fzero alternative.
7236         (clear_sf, clear_df): New VIS patterns.
7237         (movsf, movdf expanders): Allow fp_zero_operand flat out when
7238         TARGET_VIS.
7239         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
7240         
7241 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
7242
7243         * loop.c (n_times_set, n_times_used, may_not_optimize,
7244         reg_single_usage): Convert to varrays.  All uses changed.
7245         (insert_loop_mem): Return a value.
7246         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
7247         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
7248         necessary.
7249
7250 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
7251
7252         * From Alexandre:
7253         * configure.in: Do not set thread_file to "irix" since no such
7254         support exists yet.
7255
7256         * sparc.md (float abs/neg splits): Check reload_completed before
7257         calling alter_subreg.
7258
7259 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7260
7261         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
7262         function.
7263         * config/sparc/sparc.h: Declare it.
7264         * config/sparc/sparc.md (float abs/neg splits): Use it.
7265         (all other splits): Handle SUBREGs properly where necessary.
7266         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
7267
7268 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
7269
7270         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
7271         an insn on the unfilled_slots_list that has no delay slots.
7272         (fill_eager_delay_slots): Similarly.
7273
7274 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
7275
7276         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
7277         as an ordinary operand.
7278
7279 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
7280
7281         * tree.c (valid_machine_attribute): Don't apply attributes to both
7282         decl and type.
7283
7284 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
7285
7286         * reload.c (operands_match_p): Handle rtvecs.
7287
7288         * i386.c (legitimate_pic_address_disp_p): New.
7289         (legitimate_address_p): Use it.
7290         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
7291         Handle constant pool symbols just like statics.
7292         (emit_pic_move): Use Pmode not SImode for clarity.
7293         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
7294         [UNSPEC]: New, handling what we killed above.
7295         [PLUS]: Detect and abort on invalid symbol arithmetic.
7296         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
7297
7298 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
7299
7300         * alias.c: Include output.h.
7301         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
7302         different if we're in a varargs function.
7303         * Makefile.in (alias.o): Depend on output.h
7304         
7305 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7306
7307         * sh.h (GIV_SORT_CRITERION): Delete.
7308
7309 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
7310
7311         * regclass.c (regclass): Use xmalloc/free instead of alloca.
7312         * stupid.c (stupid_life_analysis): Ditto.
7313         * reload1.c (reload): Ditto.
7314
7315 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
7316
7317         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
7318         arith_double_4096_operand, arith_double_add_operand): New
7319         predicates.
7320         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
7321         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
7322         them to transform add/sub 4096 into add/sub -4096.
7323
7324 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7325
7326         * loop.c (scan_loop): Allocate some slop to handle pseudos
7327         generated by move_movables.
7328         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
7329         here too.
7330
7331 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
7332
7333         * tree.def (DECL_RESULT): Correct documentation.
7334
7335 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7336
7337         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
7338         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
7339         conflicts will all RELOAD_FOR_OUTPUT reloads.
7340
7341         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
7342         loads the function result, substitute with a USE.
7343
7344 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7345
7346         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
7347         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
7348         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
7349         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
7350         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
7351         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
7352         operand. 
7353         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
7354         'o' to 'm' for GPR variant constraints.
7355
7356 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
7357
7358         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
7359
7360         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
7361
7362         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
7363         when the source and destination overlap.
7364
7365         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
7366         clash with global type.
7367
7368 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
7369
7370         * fixinc.irix: Add curses.h handling from fixinc.wrap.
7371
7372         * c-common.c (combine_strings): Also set TREE_READONLY.
7373         Change warn_write_strings to flag_const_strings.
7374         * c-decl.c, c-tree.h: Likewise.
7375
7376 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7377
7378         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
7379         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
7380         sequence, use SET/IOR instead so CSE can see it.
7381         * config/sparc/sparc.md (movhi_const64_special,
7382         movsi_const64_special): New patterns necessitated by that change.
7383         (movhi_high): Remove.
7384         (movhi_lo_sum): Change to match an IOR.
7385         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
7386         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
7387         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
7388         (movdf splits): Allow when not V9 or when not ARCH64 and integer
7389         registers are involved.
7390         (snesi_zero_extend split): Remove reload_completed test.
7391         (unnamed plus and minus zero_extend sidi splits): Add it.
7392
7393 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
7394
7395         * extend.texi: Remove description of extension to explicit
7396         instantiation that is now endorsed by standard C++.
7397
7398 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7399
7400         * config/arc/arc.c (arc_initialize_pic): Remove.
7401         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
7402         nothing on any platform and is invoked by no-one, it does not even
7403         appear in the documentation.
7404         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
7405         * config/sparc/sparc.c (initialize_pic): Likewise.
7406         (find_addr_reg): Remove this as well, no longer referenced after
7407         my rewrite.
7408
7409 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
7410
7411         * recog.c (validate_replace_rtx_group): New function.
7412         * recog.h (validate_replace_rtx_group): Declare it.
7413         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
7414         the entire group of substitutions.
7415
7416 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
7417
7418         * loop.c (load_mems): Fix initializers.
7419
7420 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7421
7422         * config/sparc/sparc.md (TFmode splits): Handle destination
7423         registers being referenced in the address correctly.
7424
7425         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
7426         TREE_UNSIGNED, when bitsize of type's mode is larger than
7427         HOST_BITS_PER_WIDE_INT.
7428
7429 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
7430
7431         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
7432         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
7433         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
7434         macros.
7435         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
7436         EXIT_BLOCK_EXPR.
7437
7438 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
7439
7440         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
7441         * h8300.h (TINY_DATA_NAME_P): Likewise.
7442         (STRIP_NAME_ENCODING): Handle '&'.
7443
7444         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
7445         register (it could be accessed via an outer SUBREG).
7446         (REG_OK_FOR_BASE_P): Likewwise.
7447         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
7448
7449         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
7450         bogus rtl.
7451
7452         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
7453
7454 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7455
7456         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
7457         must be offsettable so the splits can be made.
7458
7459 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
7460
7461         * config/i386/winnt.c: Include system.h, not stdio.h to get
7462         sys/param.h pulled in before rtl.h in case the system defines MIN
7463         and MAX.
7464
7465 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7466
7467         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
7468
7469 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
7470
7471         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
7472         arrays of bits.
7473         * cpplib.c (cpp_define): Handle macros with parameters.
7474
7475 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7476
7477         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
7478         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
7479         and DImode 64-bit.  Use llong for minimal-toc SFmode and
7480         SYMBOL_REF / LABEL_REF 64-bit.
7481         (output_function_profiler): Use llong for profiler label and ld to
7482         load 64-bit label address.
7483
7484 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
7485
7486         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
7487         OFFSET addressing.
7488
7489 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
7490
7491         * version.c: Bump for snapshot.
7492
7493 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
7494
7495         * version.c: Bump for snapshot.
7496
7497 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
7498
7499         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
7500
7501 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
7502
7503         * tm.texi (Misc): Fix typo "teh".
7504
7505         * tm.texi (PIC): Fix typo "PPIC".
7506
7507         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
7508         effect when -O2 and higher.
7509         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
7510
7511 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
7512
7513         * regclass.c: Changed register set documentation to be consistent
7514         with GCC behaviour.
7515
7516         * final.c (final_start_function) Removed redundant test for
7517         call_fixed_regs.
7518
7519 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
7520
7521         * rtl.h (rtx_function): New type.
7522         (for_each_rtx): New function.
7523         * rtlanal.c (for_each_rtx): Define it.
7524         
7525         * recog.c (change_t): New type.
7526         (change_objects, change_old_codes, change_locs, change_olds):
7527         Replace with ...
7528         (changes): New variable.
7529         (validate_change): Dynamically allocate room for more changes, if
7530         necessary.  Uses changes array instead of change_objects, etc.
7531         (apply_change_group):  Use changes array instead of
7532         change_objects, etc.
7533         
7534         * loop.c (loop_mem_info): New type.
7535         (loop_mems): New variable.
7536         (loop_mems_idx): Likewise.
7537         (looop_mems_allocated): Likewise.
7538         (scan_loop): Remove nregs parameter.
7539         (next_insn_in_loop): New function.
7540         (load_mems_and_recount_loop_regs_set): Likewise.
7541         (load_mems): Likewise.
7542         (insert_loop_mem): Likewise.
7543         (replace_loop_mem): Likewise.
7544         (replace_label): Likewise.
7545         (INSN_IN_RANGE_P): New macro.
7546         (loop_optimize): Don't pass max_reg_num() to scan_loop.
7547         (scan_loop): Remove nregs parameter, compute it after any new
7548         registers are created by load_mems.  Use INSN_IN_RANGE_P and
7549         next_insn_in_loop rather than expanding them inline.  Call
7550         load_mems to load memory into pseudos, if appropriate.
7551         (prescan_loop): Figure out whether or not there are jumps from the
7552         loop to targets other than the label immediately following the
7553         loop.  Call insert_loop_mem to notice all the MEMs used in the
7554         loop, if it could be safe to pull MEMs into REGs for the duration
7555         of the loop.
7556         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
7557
7558 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
7559
7560         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
7561
7562 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7563
7564         * config/sparc/sparc.c (finalize_pic): Check for the correct
7565         nonlocal_goto_receiver UNSPEC number.
7566         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
7567         making note of this dependency existing in sparc.c
7568         (negtf2_notv9 split): Give NEG SFmode.
7569         (negsf2): Fix insn output string.
7570         
7571 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
7572
7573         * c-common.c (decl_attributes): Issue an error if the argument
7574         to alias is not a string.
7575
7576 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
7577
7578         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
7579         pending memory flush list.
7580
7581         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
7582         notes.
7583         (try_combine): Allow combining insns with REG_LIBCALL notes.
7584
7585         * expr.c (emit_block_move): Do not call memcpy as a libcall
7586         instead build up a CALL_EXPR and call it like any other
7587         function.
7588         (clear_storage): Similarly for memset.
7589
7590         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
7591         on notes.
7592
7593         * Makefile.in (cplus-dem.o): Provide explicit rules for building
7594         cplus-dem.o
7595
7596         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
7597         and REG_LIVE_LENGTH as successful substitutions are made.
7598
7599 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7600
7601         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
7602         statement after end of loop label.
7603
7604 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7605
7606         * config/sparc/sparc.c (ultra_types_avail): New variable.
7607         (ultra_build_types_avail): New function to record mask of insn
7608         types in ready list at this cycle.
7609         (ultrasparc_sched_reorder): Call it.
7610         (ultra_find_type): Use it to quicken the search.  Also simplif
7611         dependency check, don't use rtx_equal_p because we know exactly
7612         what we are looking for.
7613
7614 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
7615
7616         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
7617         for architecture v4.
7618
7619 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7620
7621         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
7622         gen_compare_reg.
7623         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
7624         movdf_const_intreg and helper splits): New patterns to move float
7625         constants into integer registers.
7626         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
7627         splits.
7628
7629 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
7630
7631         * From Graham
7632         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
7633         to itype.
7634         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
7635
7636         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
7637         a BASE_REGS register is needed as an intermediate when copying
7638         a symbolic value into any register class other than BASE_REGS.
7639
7640         * expr.c (move_by_pieces): No longer static.  Remove prototype.
7641         * rtl.h (move_by_pieces): Add extern prototype.
7642         * mips.c (expand_block_move): Handle aligned straight line copy by
7643         calling move_by_pieces.
7644
7645         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
7646         and VAR_DECLs.
7647
7648 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
7649
7650         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
7651         jumps out of the loop to be treated as part of the exit test.
7652
7653 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7654                           Jeff Law <law@cygnus.com>
7655
7656         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
7657         * cplus-dem.c: Delete.
7658
7659         * Makefile.in (fold-const.o): depend on $(RTL_H).
7660
7661         * fold-const.c: Include rtl.h to get the prototype for
7662         `set_identifier_local_value'.
7663
7664         * loop.c (express_from_1): Remove unused variable `tmp'.
7665         (combine_givs): cast the first argument of bzero to char *.
7666
7667         * toplev.c (display_help): Remove unused variable `looking_for_start'.
7668
7669         * c-decl.c (init_decl_processing): Remove unneeded &.
7670
7671         * alpha.h (alpha_initialize_trampoline): Provide prototype.
7672         
7673         * except.c (set_exception_lang_code, set_exception_version_code):
7674         Change parameter from `short' to `int' to avoid using a gcc
7675         extension.
7676
7677         * except.h (set_exception_lang_code, set_exception_version_code):
7678         Likewise for prototypes.
7679
7680         * flow.c (count_reg_references): Remove unused variables `regno'
7681         and `i'.
7682
7683         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
7684
7685         * prefix.c (translate_name): Cast the result of `alloca'.
7686
7687         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
7688
7689 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7690
7691         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
7692         Include "toplev.h".
7693         (valid_dbcc_comparison_p): Mark mode argument as unused.
7694         (symbolic_operand): Likewise.
7695         (legitimize_pic_address): Likewise.
7696         (const_uint32_operand): Likewise.
7697         (const_sint32_operand): Likewise.
7698         * sched.c [!INSN_SCHEDULING]: Define only dummy function
7699         schedule_insns and comment out rest of file.
7700
7701         * m68k.c (output_move_simode_const): Use subl to move a zero into an
7702         address register.
7703         (output_move_[hq]imode): Likewise.
7704
7705 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
7706
7707         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
7708         * invoke.texi: Corresponding changes.
7709
7710 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
7711
7712         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
7713
7714 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7715
7716         * config/sparc/sparc.c (ultra_code_from_mask,
7717         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
7718         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
7719         ultrasparc_sched_init, ultrasparc_variable_issue,
7720         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
7721         functions to describe UltraSPARC pipeline exactly to Haifa.
7722         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
7723         as there is nothing the scheduler can do about it.  Indicate that
7724         REG_DEP_OUTPUT's collide.  Fixup formatting.
7725         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
7726         divide costs on Ultra for DImode.
7727         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
7728         Define.
7729         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
7730         ieuN and add call_no_delay_slot to type list.
7731         (cti function unit): New unit for branches on UltraSPARC.
7732         (subx/addx insns): Set type to misc.
7733         (sidi zero/sign extension insns on arch64): Set type to shift.
7734         (sign_extendhidi2_insn): Set type to sload.
7735
7736 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@mhpcc.edu>
7737
7738         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
7739         (output_epilog): Use if != 0 for offset.
7740         (rs6000_fatal_bad_address): Prepare for Intl.
7741         * rs6000.h (rs6000_fatal_bad_address): Declare.
7742         * rs6000.md (movsfcc, movdfcc): Use else if.
7743         (elf_high): Use {liu|lis}.
7744         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
7745         (movsi): Use rs6000_fatal_bad_address.
7746         
7747 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
7748
7749         * reload.c (find_equiv_reg): Reject equivalences separated
7750         by a volatile instruction.
7751
7752 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7753
7754         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
7755
7756 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
7757
7758         * alpha.md (movsicc): Fix mode mismatch.
7759
7760 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
7761
7762         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
7763         return type.
7764         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
7765
7766 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7767
7768         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
7769         write-only modifier from operand 1 constraint.
7770
7771 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7772
7773         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
7774         emitting a XOR of -1 at the end, emit a NOT instead for combine's
7775         sake.
7776         (sparc_emit_set_const64): Likewise, also when computing trailing
7777         bits do not negate low_bits and make fast_int an int.
7778
7779 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
7780
7781         * loop.c (add_label_notes): Do not ignore references to labels
7782         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
7783         * gcse.c (add_label_notes): Similarly.
7784
7785         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
7786
7787         * m68k.md (adddi_dilshr32): One of the operands must be a register.
7788         (adddi_dishl32): Similarly.
7789
7790 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
7791
7792         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
7793         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
7794         * cse.c (cse_basic_block): Add parens to shut up warnings.
7795
7796 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7797
7798         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
7799         sparc_emit_set_const64_longway, const64_is_2insns,
7800         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
7801         in 64-bit constant formation.
7802         * config/sparc/sparc.md (snesi_zero_extend split): Generate
7803         rtl for addx not subx.
7804         (define_insn movdi_const64_special): Make available even when
7805         HOST_BITS_PER_WIDE_INT is not 64.
7806         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
7807         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
7808         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
7809         instances of operand 1 inside a QI subreg.
7810         (xordi3_sp64_dbl): Remove '%' constraint for op1.
7811         (one_cmpldi2_sp64): Fix output string.
7812         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
7813         alternative case.
7814         (unnamed arch64 ashift DI): Truncate shift count if greater than
7815         63, not 31.
7816
7817 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7818
7819         * expr.c (store_expr): Don't optimize away load-store pair
7820         when either source or destination have a side effect.
7821
7822 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
7823
7824         * genrecog.c (add_to_sequence): Fatal error if the modes of the
7825         operands of SET are incompatible.
7826
7827         * alpha.md: Fix max and min patterns so modes of SET operands match.
7828
7829 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
7830
7831         * configure.in: Avoid [[ by using test and changequote.
7832         * configure: Rebuild.
7833
7834 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7835
7836         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
7837
7838         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
7839         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
7840         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
7841         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
7842         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
7843         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
7844         Fix mismatching modes in SET operands.
7845         (conditional move patterns): Fix formatting.
7846         (unnamed subx arch64 pattern): Remove duplicate insn.
7847         
7848 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7849
7850         * config/sparc/sparc.c (const64_operand, const64_high_operand):
7851         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
7852         (input_operand): Fixup test for what we accept for constant
7853         integers.
7854         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
7855         set VOIDmode.
7856         (safe_constDI): Remove.
7857         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
7858         gen_safe_XOR64): New functions.
7859         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
7860         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
7861         them.
7862         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
7863         available when HOST_BITS_PER_WIDE_INT is not 64.
7864         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
7865         move before movdi_insn_sp64 pattern.
7866         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
7867         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
7868         symbolic_operand as predicate for second operand.
7869         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
7870         expander): Give set VOIDmode.
7871         
7872 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
7873
7874         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
7875
7876 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
7877
7878         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
7879
7880 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
7881
7882         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
7883         point.
7884         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
7885
7886 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
7887
7888         * install.texi: Various SCO OpenServer tweaks.
7889
7890 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
7891
7892         * reload1.c (eliminate_regs_in_insn): Handle another case when
7893         eliminating the frame pointer to the hard frame pointer.  Add
7894         missing ep->to_rtx check to one existing case.
7895
7896         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
7897
7898 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
7899
7900         * tree.h: De-conditionalize init_priority code.
7901
7902         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
7903         * collect2.c (NM_FLAGS): Change from -p to -n.
7904
7905         * configure.in: Turn on collect2 for mipstx39-elf.
7906         Handle use_collect2=no properly.
7907
7908         * c-common.c: De-conditionalize init_priority code.
7909         * collect2.c (extract_init_priority, sort_ids): New fns.
7910         (main): Call sort_ids.
7911         Move sequence_number to file scope.
7912
7913         * configure.in: Handle --enable-init-priority.
7914         * c-common.c (attrs): Add A_INIT_PRIORITY.
7915         (init_attributes, decl_attributes): Likewise.
7916         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
7917         * tree.c (get_file_function_name_long): Split out...
7918         (get_file_function_name): ...from here.
7919
7920 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
7921
7922         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
7923         accessing nodes.
7924
7925 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
7926
7927         * toplev.c (display_help): Add braces to shut up warnings.
7928         * tree.c (simple_cst_equal): Likewise.
7929
7930         * fold-const.c (non_lvalue): Don't deal with null pointer 
7931         constants here.
7932         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
7933
7934         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
7935         of any size to a pointer.
7936
7937 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
7938
7939         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
7940
7941 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
7942
7943         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
7944         which will be saved.
7945         * mn10300.md (prologue insn): Only save registers which need saving.
7946         (epilogue insn): Similarly.
7947
7948         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
7949         optimizations.
7950
7951 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7952
7953         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
7954         VAR_DECL's in gp addressable sections.
7955
7956 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
7957
7958         * sparc.c: Change return <exp> to <exp>; return; in functions
7959         returning void.
7960         * sparc.md: Add empty semicolon statement after final label in
7961         move expanders.
7962
7963 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7964
7965         * config/sparc/sparc.md (define_insn addx_extend): Rename to
7966         addx_extend_sp64, only allow when TARGET_ARCH64.
7967         (define_insn addx_extend_sp32 and split): Version that works when
7968         not TARGET_ARCH64.
7969         (define_insn subx_extend): Likewise.
7970         (define_split adddi3 and subdi3 with zero extension): Fixup and
7971         correct bugs when not TARGET_ARCH64.
7972
7973 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
7974
7975         * except.c (set_exception_lang_code, set_exception_version_code):
7976         Use prototype-style definition if __STDC__, to match declaration
7977         in except.h.
7978
7979         * genemit.c: Change FAIL and DONE macros not to use loops.
7980
7981 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
7982
7983         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
7984         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
7985
7986         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
7987
7988 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
7989
7990         * README.g77: Update from Craig.
7991
7992 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
7993
7994         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
7995         type HOST_WIDE_INT.
7996         (safe_constDI sparc_emit_set_const64_quick1,
7997         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
7998         analyze_64bit_constant, const64_is_2insns,
7999         create_simple_focus_bits): Fix some bugs when compiled on real
8000         64-bit hosts.
8001         (function_arg_record_value_3, function_arg_record_value_2,
8002         function_arg_record_value): Add fully prototyped forward decls.
8003         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
8004         to cmpsi_insn and use on both 64 and 32 bit targets.
8005         (define_insn cmpsi_insn_sp64): Remove.
8006         (define_expand zero_extendsidi2): Allow for 32-bit target too.
8007         (define_insn zero_extendsidi2_insn): Rename to
8008         zero_extendsidi2_insn_sp64.
8009         (define_insn zero_extendsidi2_insn_sp32): New pattern and
8010         assosciated forced split for it.
8011
8012         * config/sparc/sparc.c (const64_operand, const64_high_operand):
8013         New predicates.
8014         * config/sparc/sparc.h: Declare them.
8015         (PREDICATE_CODES): Add them.
8016         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
8017         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
8018
8019 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
8020
8021         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
8022         in v9 case as the latter makes the Solaris assembler crash.
8023
8024 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8025
8026         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
8027         for TFmode when !v9.  We require offsettable memory addresses.
8028         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
8029         DFmode register number conversions.
8030         * config/sparc/sparc.md (define_split DFmode moves): If register
8031         is a SUBREG do alter_subreg on it before using.
8032         (define_expand movtf): Fixup comment about alignment on v9.
8033         (define_split TFmode moves): Don't use gen_{high,low}part, create
8034         explicit SUBREGs instead.
8035
8036 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
8037
8038         * Makefile.in (mbchar.o): Depend on mbchar.c.
8039
8040 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8041                           Richard Henderson  <rth@cygnus.com>
8042         
8043         Rewrite Sparc backend for better code generation and
8044         improved sparc64 support.
8045         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
8046         zero.
8047         * config/sparc/sysv4.h: Likewise.
8048         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
8049         move_operand, v8plus_regcmp_op, emit_move_sequence,
8050         singlemove_string, doublemove_string, mem_aligned_8,
8051         output_move_double, output_move_quad, output_fp_move_double,
8052         move_quad_direction, output_fp_move_quad, output_scc_insn):
8053         Remove.
8054         (small_int_or_double): New predicate.
8055         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
8056         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
8057         old pic_{sethi,lo_sum}_si patterns.
8058         (mem_min_alignment): New generic function to replace
8059         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
8060         available and can test for arbitrary alignments.  All callers
8061         changed.
8062         (save_regs, restore_regs, build_big_number,
8063         output_function_prologue, output_cbranch, output_return,
8064         sparc_flat_save_restore, sparc_flat_output_function_prologue,
8065         sparc_flat_output_function_epilogue): Prettify
8066         insn output.
8067         (output_function_epilogue): Likewise and add code to output
8068         deferred case vectors.
8069         (output_v9branch): Likewise, add new arg INSN and use it to tack
8070         on branch prediction settings.  All callers changed.
8071         (print_operand): Likewise and output %l44 for LO_SUMs when
8072         TARGET_CM_MEDMID.
8073         (sparc_splitdi_legitimate): New function to make sure DImode
8074         splits can be run properly when !arch64.
8075         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
8076         Reformat example code in comments.
8077         (set_extends): Remove UNSPEC/v8plus_clear_high case.
8078         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
8079         of deferred case vectors we need to output.
8080         (sparc_defer_case_vector): Record a case vector.
8081         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
8082         sparc_output_deferred_case_vectors): New functions to output them.
8083         (sparc_emit_set_const32): New function to form 32-bit constants in
8084         registers when that requires more than one instruction.
8085         (safe_constDI, sparc_emit_set_const64_quick1,
8086         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
8087         analyze_64bit_constant, const64_is_2insns,
8088         create_simple_focus_bits, sparc_emit_set_const64): New functions
8089         which do the same for 64-bit constants when arch64.
8090         (sparc_emit_set_symbolic_const64): New function to emit address
8091         loading for all code models on v9.
8092         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
8093         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
8094         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
8095         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
8096         inaccuracies in comments, add symbolic and text_segment operands
8097         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
8098         GENERAL_REGS in these cases as a temp REG is needed to load these
8099         addresses into a register properly.
8100         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
8101         is no longer used.
8102         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
8103         quads are guarenteed to have 16-byte alignment.
8104         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
8105         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
8106         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
8107         deferred case vector implementation.
8108         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
8109         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
8110         Generate "internal label - label" instead of "label - 1b".
8111         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
8112         (PREDICATE_CODES): Remove sparc_operand, move_operand,
8113         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
8114         zero_operand.
8115         (doublemove_string, output_block_move, output_fp_move_double,
8116         output_fp_move_quad, output_move_double, output_move_quad,
8117         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
8118         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
8119         (sparc_emit_set_const32, sparc_emit_set_const64,
8120         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
8121         mem_min_alignment, small_int_or_double): Add externs.
8122         * config/sparc/sparc.md: Document the many uses of UNSPEC and
8123         UNSPEC_VOLATILE in this backend.
8124         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
8125         unary to types which execute in it.
8126         (define_function_unit ieu_shift): Rename to ieu0.
8127         (define_function_unit ieu1): New, executes compare, call, and
8128         uncond_branch type insns.
8129         (define_function_units for type fdivs, fdivd, fsqrt): These
8130         execute in the fpu multiply unit not the adder on UltraSparc.
8131         (define_expand cmpdi): Disallow TARGET_V8PLUS.
8132         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
8133         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
8134         allows the arith_double_operand predicate and rHI constraint when
8135         TARGET_ARCH64.
8136         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
8137         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
8138         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
8139         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
8140         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
8141         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
8142         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
8143         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
8144         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
8145         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
8146         sign_extendqihi2_insn, sign_extendqisi2_insn,
8147         sign_extendqidi2_insn, sign_extendhidi2_insn,
8148         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
8149         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
8150         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
8151         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
8152         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
8153         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
8154         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
8155         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
8156         smulsi3_highpart_v8plus, unnamed subreg mult,
8157         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
8158         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
8159         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
8160         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
8161         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
8162         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
8163         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
8164         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
8165         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
8166         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
8167         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
8168         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
8169         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
8170         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
8171         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
8172         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
8173         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
8174         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
8175         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
8176         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
8177         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
8178         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
8179         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
8180         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
8181         call_address_untyped_struct_value_sp32,
8182         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
8183         call_value_symbolic_sp32, call_value_address_sp64,
8184         call_value_symbolic_sp64, branch_sp32, branch_sp64,
8185         flush_register_windows, goto_handler_and_restore,
8186         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
8187         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
8188         return_addsi, return_di, return_adddi, return_sf, all call+jump
8189         peepholes, trap, unnamed trap insns): Prettify output strings.
8190         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
8191         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
8192         Likewise and force + implement splits for integer cases.
8193         (define_insn return_sf_no_fpu): Likewise and allow to match when
8194         no-fpu because of our subreg SFmode splits.
8195         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
8196         zero_extendqidi2_insn, zero_extendhidi2_insn,
8197         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
8198         input_operand for second operand.
8199         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
8200         reg_or_0_operand for operand 2 so new splits can use it.
8201         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
8202         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
8203         too.
8204         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
8205         CONST_DOUBLEs for operand 2.
8206         (define_insn move_label_di): Likewise and label distance
8207         optimization because it no longer works with new deferred case
8208         vector scheme.  To be revisited.
8209         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
8210         and allow reg_or_0_operand and J constraint for second operand.
8211         (define_insn jump): Set branch predict taken on V9.
8212         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
8213         new deferred case vector scheme.
8214         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
8215         (define_insn negdi2_sp32): Force + implement splits.
8216         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
8217         one_cmplsi2_not_liveg0 respectively, and create expander of original
8218         names which emit special rtl for TARGET_LIVE_G0.
8219         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
8220         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
8221         gen_compare_reg, FAIL instead.
8222         (define_insn sgtu, sleu): Likewise and check gen_s*() return
8223         values when trying to reverse condition codes, if they FAIL then
8224         do likewise.
8225         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
8226         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
8227         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
8228         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
8229         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
8230         set output string to # to indicate they are mandatory splits.
8231         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
8232         pic_sethi_di, move_pic_label_si): Remove.
8233         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
8234         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
8235         place.
8236         (define_expand movsi_pic_label_ref, define_insn
8237         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
8238         expander and insns to handle PIC label references and deferred
8239         case vectors.
8240         (define_insn get_pc_via_rdpc): Comment out as it is no longer
8241         used.
8242         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
8243         Rewrite to not use emit_move_sequence, make use of new constant
8244         formation code, and new splits for all multi-insn cases.
8245         (define_insn movqi_insn): Remove sethi case, it can never happen.
8246         Use reg_or_zero_operand instead of const0_rtx explicit test,
8247         use input_operand instead of move_operand for source, and use
8248         general_operand now for dest.
8249         (define_insn movhi_insn): Similar but leave sethi case.
8250         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
8251         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
8252         movhi_lo_sum respectively, prettify output string.
8253         (define_insn movsi_zero_liveg0): New pattern to put zero into a
8254         register when needed on TARGET_LIVE_G0.
8255         (define_insn movsi_insn): Use general_operand and input_operand
8256         for dest and src respectively.  Simplify applicability test.
8257         Prettify output strings, and add clr alternative for J
8258         constraint.
8259         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
8260         deprecated std and reg-reg DI moves): Remove and...
8261         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
8262         implementation which uses forced splits for all non-single insn
8263         cases.
8264         (define_split DI move cases on !arch64): New splits to handle all
8265         situations of 64-bit double register DImode on 32bit, and
8266         unaligned registers and memory addresses for all subtargets.
8267         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
8268         Remove.
8269         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
8270         input_operand for dest and src respectively, prettify output
8271         strings.
8272         (define_insn movdf_insn, movdf_no_e_insn, store_df,
8273         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
8274         and...
8275         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
8276         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
8277         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
8278         movtf_no_e_insn_sp64) Replace with new
8279         implementation which uses forced splits for all non-single insn
8280         cases.
8281         (define_split DF move cases): New splits in similar vein to DI
8282         move counterparts.
8283         (define_insn sethi_di_medlow, sethi_di_medium_pic,
8284         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
8285         movdi_sp64_insn): Remove old v9 code model and constant loading
8286         support insns and..
8287         (define_insn pic_lo_sum_di, pic_sethi_di,
8288         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
8289         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
8290         embmedany_sethi, embmedany_losum, embmedany_brsum,
8291         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
8292         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
8293         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
8294         scheme, using unspecs, secondary reloads, and one to one sparc
8295         insn to rtl insn mapping for better scheduling and code gen.
8296         (define_expand reload_indi, reload_outdi): Reload helpers for
8297         MEDANY and EMBMEDANY symbol address loading cases which require a
8298         temporary register.
8299         (define_expand movsicc): Remove v8plus_regcmp cases.
8300         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
8301         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
8302         cmp_diqi_trunc_set): New patterns used by some of the new scc
8303         splits on arch64.
8304         (define_insn xordi3_sp64_dbl): New pattern used for constant
8305         formation when crossing from 32-bit targets.
8306         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
8307         split): Remove.
8308         (define_insn addx, subx): Make visible and prettify.
8309         (define_insn adddi3_insn_sp32): Likewise and force split.
8310         (define_insn addx_extend, subx_extend, unnamed): New patterns for
8311         64bit scc split usage.
8312         (define_insn unnamed plusDI zero_extend, unnamed minusDI
8313         zero_extend, subdi3): Force and implement splits.
8314         
8315         * final.c (final_scan_insn): Don't output labels if target
8316         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
8317         instead.
8318         
8319         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
8320         don't forget to walk inside SEQUENCESs too as these are what the
8321         delay slot scheduler will create.
8322         
8323 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
8324
8325         * alpha.md (extxl+1,+2): New patterns to work around
8326         combine lossage.
8327
8328 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
8329
8330         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
8331         caused bad assembly code to be generated.
8332
8333 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
8334
8335         * netbsd.h: Fix typo.
8336
8337 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
8338
8339         * config.sub: Fix typo.
8340
8341 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
8342
8343         * invoke.texi (Environment Variables): Typo: Change "ascpects"
8344         into "aspects".
8345         (Running Protoize): Typo: Change "ther" into "other".
8346
8347 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
8348
8349         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
8350         * m68k/netbsd.h: Likewise.
8351         * ns32k/netbsd.h: Likewise.
8352         * sparc/netbsd.h: Likewise.
8353
8354 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
8355
8356         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
8357         * ginclude/va-clipper.h (va_list): Likewise.
8358
8359 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
8360
8361         * rs6000.c (rs6000_override_options): If big endian and -Os, use
8362         load/store multiple instructions unless user overrides.
8363
8364 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
8365
8366         * ns32k/netbsd.h: Fix typo.
8367
8368 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
8369
8370         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
8371         labels with .debugsym if no parallel insns.
8372
8373 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
8374
8375         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
8376         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
8377
8378 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8379
8380         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
8381         (AR_FOR_TARGET): Define.
8382
8383 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
8384
8385         * dyn-string.h: New file.
8386         * dyn-string.c: Likewise.
8387         * Makefile.in (OBJS): Add dyn-string.o.
8388         (dwarf2out.o): Add dyn-string.h dependency.
8389         (dyn-string.o): List dependencies.
8390         * dwarf2out.c: Include dyn-string.h.
8391         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
8392         (addr_const_to_string): Take a dyn_string_t, not a char* as a
8393         prototype.  Use dyn_string_append rather than strcat, throughout.
8394         (addr_to_string): Use dyn_string_t.
8395
8396 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
8397
8398         Function entry/exit profiling instrumentation:
8399         * expr.h (profile_function_entry_libfunc,
8400         profile_function_exit_libfunc): Declare new variables.
8401         * optabs.c: Define them here.
8402         (init_optabs): Initialize them.
8403         * tree.h (struct tree_decl): New flag
8404         no_instrument_function_entry_exit.
8405         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
8406         * c-decl.c (duplicate_decls): Merge it.
8407         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
8408         (init_attributes): Use it for "no_instrument_function".
8409         (decl_attributes): Handle it, for functions that have not yet been
8410         compiled.  Set decl flag.
8411         * flags.h (flag_instrument_function_entry_exit): Declare new
8412         variable.
8413         * toplev.c (flag_instrument_function_entry_exit): Define it here.
8414         (f_options): New option "instrument-functions".
8415         * function.h (struct function): New field instrument_entry_exit.
8416         * function.c (current_function_instrument_entry_exit): New
8417         variable.
8418         (push_function_context_to, pop_function_context_from): Save and
8419         restore.
8420         (expand_function_start): Set current_ variable, maybe emit return
8421         label and entry profile call.
8422         (expand_function_end): Maybe emit exit profile call.
8423
8424 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
8425
8426         * i386.md (movqi): When optimizing a load of (const_int 1) into a
8427         NON_QI_REG_P, pretend the register is SImode.
8428
8429 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
8430
8431         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
8432         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
8433         manufacturer id for ns32k.
8434         * configure: Regenerated.
8435         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
8436         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
8437         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
8438         * config/m68k/netbsd.h: Same.
8439         * config/ns32k/netbsd.h: Same.
8440         * config/sparc/netbsd.h: Same.
8441
8442 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
8443
8444         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
8445         or UNROLL_COMPLETELY loop that starts with a jump to its
8446         exit code.
8447
8448 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8449
8450         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
8451         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
8452         (print_operand, case 'B'): Don't fall through.
8453         (print_operand, case 'S'): Correct mask begin/end computation.
8454         Use HOST_BITS_PER_WIDE_INT.
8455         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
8456         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
8457         * rs6000/aix41.h (CPP_PREDEFINES): Same.
8458         * rs6000/aix43.h (CPP_PREDEFINES): Same.
8459
8460 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
8461
8462         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
8463         constraint from second alternative.
8464
8465 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
8466
8467         * configure.in: Fix --without/--disable cases for local-prefix, 
8468         gxx-include-dir and checking.
8469
8470 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8471
8472         * configure.in (enable_haifa): Set by default for sparc64 too.
8473         configure: Rebuilt.
8474
8475 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
8476
8477         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
8478         * i386/winnt.c (associated_type): New fn.
8479         (i386_pe_valid_type_attribute_p): New fn.
8480         (i386_pe_check_vtable_importexport): Remove.
8481         (i386_pe_dllexport_p): Use associated_type.
8482         (i386_pe_dllimport_p): Likewise.
8483
8484         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
8485         * i386.c (i386_valid_type_attribute_p): Also accept
8486         attributes for METHOD_TYPEs.
8487
8488 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
8489
8490         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
8491
8492 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
8493
8494         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
8495
8496         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
8497         them from generating a new base name for each occurence of
8498         a specific suffix.
8499
8500 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
8501
8502         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
8503         SUBREG, MEM.
8504         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
8505
8506
8507
8508         * cplus-dem.c (type_kind_t): New type.
8509         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
8510         on this paramter, rather than demangling the type again.
8511         (demangle_integral_value): Pass tk_integral.
8512         (demangle_template_: Pass the value returned from do_type.
8513         (do_type): Return a type_kind_t.  Pass tk_integral to
8514         demangle_template_value_parm for array bounds.
8515         (demangle_fund_type): Likewise.
8516         
8517 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
8518
8519         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
8520         identical.
8521
8522 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
8523
8524         * pa.c (move_operand): Accept CONSTANT_P_RTX.
8525
8526 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
8527
8528         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
8529
8530         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
8531         index conversion.
8532
8533 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
8534
8535         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
8536         (DEBUGGER_ARG_OFFSET): Likewise.
8537
8538         * mn10300.md (movsf): Remove last change.  Not needed.
8539
8540 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
8541
8542         * c-lex.c (yylex): Fix boundary conditions in character literal and
8543         string literal loops.
8544
8545 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
8546
8547         * longlong.h (count_leading_zeros): Sparclite scan instruction was
8548         being invoked incorrectly.
8549
8550         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
8551         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
8552         Add -pg support. 
8553         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
8554         * configure.in: Added i[34567]86-*-win32
8555         * config.sub: Ditto.
8556         * configure: Rebuilt.
8557         
8558 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
8559
8560         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
8561         the frame pointer and compiling PIC code and reload has not completed.
8562
8563         * i386.c (output_to_reg): Add code to emulate non-popping DImode
8564         case.
8565
8566 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
8567
8568         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
8569
8570 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8571
8572         * Makefile.in (install-info): Only try to update the info
8573         directory file if it exists in the first place.
8574
8575 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
8576
8577         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
8578
8579 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
8580
8581         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
8582         CONST_DOUBLE source.
8583
8584 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
8585
8586         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
8587         strings as the insertion of USER_LABEL_PREFIX.
8588         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
8589         valid code.
8590         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
8591         calls. 
8592
8593 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
8594
8595         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
8596         already defined type.
8597
8598 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
8599
8600         * expr.c (check_max_integer_computation_mode): Allow conversions
8601         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
8602         (expand_expr): Likewise.
8603
8604 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
8605
8606         * expr.c (expand_expr): Expand RETURN_EXPR.
8607
8608 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
8609
8610         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
8611
8612 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
8613
8614         * dwarf2out.c (output_aranges):  Call stripattributes
8615         for TEXT_SECTION references.
8616         (output_line_info): Likewise.
8617
8618 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8619
8620         * profile.c (branch_prob): Call allocate_reg_info after outputting
8621         profile rtl in instrument_arcs.
8622
8623 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
8624
8625         * fixinc.irix (math.h): Install wrapper instead of copying.
8626
8627 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
8628
8629         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
8630         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
8631         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
8632         lang_flag_0. Added documentation in the flag table.
8633
8634 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
8635
8636         * cccp.c (do_include): Fix vax c style include handling.
8637
8638 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
8639
8640         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
8641
8642 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
8643
8644         * fold-const.c (non_lvalue): Don't deal with null pointer 
8645         constants here.
8646         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
8647
8648 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@mhpcc.edu>
8649
8650         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
8651         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
8652         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
8653         (u_short_cint_operand): Same.
8654         (reg_or_cint_operand): Same.
8655         (logical_operand): Same.
8656         (input_operand): Same.
8657         (reg_or_short_operand): Use u_short_cint_operand.
8658
8659 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
8660
8661         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
8662         but keep the insns and splits.  Adjust so when the ultimate destination
8663         is memory, use cvtql.
8664
8665 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
8666
8667         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
8668
8669 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
8670
8671         * gcc.c (do_spec): Call "error" not "warning".
8672
8673         * configure.in: Fix minor problems with gas feature detection code.
8674         * configure: Rebuilt.
8675
8676         * gcc.c (do_spec): Issue a warning for '%[]' usage.
8677
8678         * Undo this change.
8679         * gcc.c: Delete %[spec] support.
8680         (do_spec_1, case '('): Likewise.
8681         (do_spec_1, case '['): Call error.
8682
8683 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
8684
8685         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
8686         (CPP_SUBTARGET_SPEC): Default to empty string.
8687         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
8688         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
8689         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
8690         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
8691         (LIB_SPEC): Tidy.
8692         * alpha/linux.h (CPP_PREDEFINES): Tidy.
8693         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
8694         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
8695         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
8696         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
8697         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
8698         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
8699         * alpha/vxworks.h: Likewise.
8700
8701 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
8702
8703         * mips.md (reload_outsi): Added missing REGNO call.
8704         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
8705         function pointer.
8706         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
8707         another match_operator and compare the codes.
8708
8709         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
8710
8711         * MIPS multiply pattern fixes:
8712         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
8713         Add union classes for HI, LO, or HILO plus general registers.
8714         (GENERATE_MADD): Deleted.
8715         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
8716         Add TARGET_MAD to condition.
8717         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
8718         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
8719         "*d" for accumulator, to give preference to LO initially but not
8720         during reload.
8721
8722 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
8723
8724         * configure.in (enable_c_mbchar): New configure option.
8725         (extra_cpp_objs): Always available now.
8726
8727         * cexp.y (mbchar.h): #include it.
8728         (yylex): Handle Multibyte characters in character literals.
8729
8730         * cccp.c (mbchar.h): #include it.
8731         (main): Set character set based on LANG environment variable.
8732         (rescan): Handle multibyte characters in comments.
8733         (skip_if_group): See above.
8734         (validate_else): See above.
8735         (skip_to_end_of_comment): See above.
8736         (macarg1): See above.
8737         (discard_comments): See above.
8738         (rescan): Handle multibyte characters in string and character literals.
8739         (collect_expansion): See above.
8740         (skip_quoted_string): See above.
8741         (macroexpand): See above.
8742         (macarg1): See above.
8743         (discard_comments): See above.
8744         (change_newlines): See above.
8745
8746         * c-lex.c (mbchar.h): #include it.
8747         (GET_ENVIRONMENT): New macro.
8748         (init_lex): Set character set based on LANG environment variable.
8749         (yylex): Handle multibyte characters in character literals.
8750         (yylex): Handle multibyte characters in string literals.
8751
8752         * Makefile.in (mbchar.o): New target.
8753         (cccp$(exeext)): @extra_cpp_objs@ is always available.
8754         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
8755
8756         * mbchar.[ch]: New files for multibyte character handling.
8757
8758 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8759
8760         * jump.c (jump_optimize): When simplifying noop moves and
8761         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
8762         the PUSHes to rewrite in second loop as we did in the first.
8763
8764 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8765
8766         * cplus-dem.c (demangle_nested_args): Make function definition
8767         static to match the prototype.
8768
8769 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
8770
8771         * alloca.c: Respect USE_C_ALLOCA.
8772         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
8773         * gengenrtl.c (xmalloc): Likewise.
8774
8775 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
8776
8777         * loop.h (struct induction): Add no_const_addval.
8778         * loop.c (the_movables, reg_address_cost): New variables.
8779         (init_loop): Init reg_address_cost.
8780         (loop_optimize): Call end_alias_analysis.
8781         (scan_loop): Init the_movables.
8782         (record_giv): Init induction->no_const_addval.
8783         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
8784         [REG]: Rearrange loop search test to catch more cases.
8785         (general_induction_var): Return success not benefit; take an extra
8786         argument for that.  Change all callers.
8787         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
8788         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
8789         [default]: Search the_movables for additional combinations.
8790         (sge_plus_constant, sge_plus): New functions.
8791         (express_from_1): New function.
8792         (express_from): Always define.  Rewrite using express_from_1.
8793         (combine_givs_p): Handle more cases.  Ignore address cost.
8794         (cmp_combine_givs_stats): New function.
8795         (combine_givs_used_once, combine_givs_benefit_from): New functions.
8796         (combine_givs): Rewrite to do best-fit combination.
8797
8798         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
8799         (fold): Do a complete (A*C)+(B*C) association check.
8800
8801 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
8802
8803         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
8804
8805 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
8806
8807         * mn10300.c (MODES_TIEABLE_P): Fix typo.
8808
8809 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
8810
8811         * tree.c (valid_machine_attribute): Only create a new type variant if
8812         there is a decl to use it.
8813
8814 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
8815
8816         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
8817         a suffix.
8818
8819 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
8820
8821         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
8822         be deleted" 
8823
8824 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
8825
8826         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
8827         Simplify tests for clearing an address register.
8828         (expand_prologue): Corresponding changes.
8829
8830         * mn10300.md (movXX patterns): Make sure the destination is an
8831         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
8832         (logical patterns): Split into expanders + patterns
8833         (zero and sign extension patterns): Similarly.
8834         (shift patterns): Similarly.
8835
8836 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
8837
8838         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
8839         for the sequence, recording base values.
8840
8841 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
8842
8843         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
8844
8845 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
8846
8847         * gcc.c: Remove ANSI-C ism from --help code.
8848
8849         * toplev.c: Support --help with USE_CPPLIB.
8850
8851 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
8852
8853         * configure.in: Rework gas feature code to work with symlink based
8854         source trees.
8855
8856         * extend.texi: Clarify some issues related to local variables
8857         assigned to explicit registers.
8858
8859         * mn10300.md (mulsi): Turn into expander + pattern.
8860
8861         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
8862         alternative.
8863
8864 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
8865
8866         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
8867
8868 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
8869
8870         * version.c: Bump again to distinguish mainline tree from the
8871         egcs-1.1 branch.
8872
8873 See ChangeLog.0 for earlier changes.
8874
8875 Local Variables:
8876 add-log-time-format: current-time-string
8877 End: