OSDN Git Service

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