OSDN Git Service

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