OSDN Git Service

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