OSDN Git Service

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