OSDN Git Service

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