OSDN Git Service

5744e80db840d4e4c90bce4cd685a6419f59a248
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Thu Apr  8 19:20:18 1999  Jeffrey A Law  (law@cygnus.com)
2
3         * loop.c (strength_reduce): Re-enable Joern's loop improvements.
4
5 Thu Apr  8 09:37:40 1999  Nick Clifton  <nickc@cygnus.com>
6
7         * config/arm/arm.c (arm_print_operand): Undo previous change -
8         always print large constants in decimal.
9
10 Thu Apr  8 10:22:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11
12         * configure.in (host_xm_file, build_xm_file): Include hwint.h.
13         Use case statements instead of "if test -a ... -a ... -a ..."
14
15         * machmode.h: Don't define HOST_WIDE_INT, etc. Wrap use of
16         HOST_WIDE_INT in #ifdef.
17
18         * mips.h: Include hwint.h instead of providing definitions for
19         HOST_WIDE_INT, etc.  Wrap uses of HOST_WIDE_INT in #ifdef.
20
21 Thu Apr  8 06:16:14 EDT 1999  John Wehle  (john@feith.com)
22
23         * i386.md (truncdfsf2, truncxfsf2,
24         truncxfdf2): Rewrite using a splitter.
25
26 Thu Apr  8 01:26:05 1999  Arg Haas (ahaas@neosoft.com)
27                           Jeffrey A Law  (law@cygnus.com)
28
29         * freebsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Avoid ambigious
30         else statement.
31         * gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
32         * linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
33         * openbsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
34
35 Wed Apr  7 22:40:19 1999  Jim Wilson  <wilson@cygnus.com>
36
37         * i960/i960.c (i960_function_prologue): Don't save static chain
38         pointer.
39         * i960/i960.h (STACK_CHAIN_REGNUM): Change from r3 to g12.
40         (TRAMPOLINE_TEMPLATE): Likewise.
41         (FRAME_POINTER_REQUIRED): Check current_function_has_nonlocal_goto.
42         * i960/i960.md (nonlocal_goto): Rewrite.
43         
44 Tue Apr  6 17:49:49 1999  Philip Blundell  <pb@nexus.co.uk>
45
46         * config/arm/lib1funcs.asm: Test for __ELF__ not __elf__.
47
48 Wed Apr  7 14:07:34 1999  Jeffrey A Law  (law@cygnus.com)
49
50         * h8300.c (h8300_adjust_insn_length): Also avoid recognizing
51         ADDR_VEC and ADDR_DIFF_VEC insns.
52
53         * h8300.c (h8300_adjust_insn_length): Avoid trying to recognize
54         USE, CLOBBER or SEQUENCE insns.
55
56         * unroll.c (unroll_loop): For HAVE_cc0 machines, adjust copy_end_luid
57         to account for the uncopied insn that sets cc0 at the end of the loop.
58
59         * unroll.c (copy_loop_body): Always ensure at least two insns
60         are in the copied loop.
61
62 Wed Apr  7 14:52:18 1999  Catherine Moore  <clm@cygnus.com>
63
64         * config/mips/elf.h (MAKE_DECL_ONE_ONLY): Define.
65         (UNIQUE_SECTION_P): Define.
66
67 1999-04-07 11:50 -0800  Bruce Korb <ddsinc09@ix.netcom.com>
68
69         * fixinc/inclhack.tpl & fixincl.tpl:
70         Remove dynamic content from generated files
71
72 Wed Apr  7 13:16:22 EDT 1999  John Wehle  (john@feith.com)
73
74         * i386.c (output_move_memory): Remove.
75         * i386.h: Likewise.
76
77         * i386.md (movsi, movhi, movstricthi, movqi, movstrictqi,
78         movsf, movdf, movxf, movdi): Check no_new_pseudos instead
79         of (reload_in_progress | reload_completed).
80
81 Wed Apr  7 03:16:45 1999  Richard Henderson  <rth@cygnus.com>
82
83         * alpha.c (reg_no_subreg_operand): New function.
84         * alpha.h (PREDICATE_CODES): Add it.
85         * alpha.md (floatdi?f patterns): Use it for op1.
86
87         * alpha.c (alpha_end_function): Don't flag weak functions.
88
89 Wed Apr  7 02:11:55 1999  Richard Henderson  <rth@cygnus.com>
90
91         * expr.c (expand_builtin) [BUILT_IN_RETURN_ADDRESS]: Use
92         copy_to_mode_reg; don't force constants into a register.
93
94 Tue Apr  6 22:55:25 1999  Richard Henderson  <rth@cygnus.com>
95
96         * toplev.c (compile_file): Typo flow_dump -> flow2_dump.
97
98 1999-04-06  Joseph S. Myers  <jsm28@cam.ac.uk>
99
100         * pdp11.c (simple_memory_operand): Add default case in switch.
101         * pdp11.h (TARGET_SWITCHES): Add help strings.
102         (NOTICE_UPDATE_CC): Don't include excess argument to format.
103         (ASM_OUTPUT_DOUBLE_INT): Remove.
104
105 Tue Apr  6 22:09:40 1999  Richard Henderson  <rth@cygnus.com>
106
107         * expr.c (expand_builtin_setjmp): Put setjmp return label on
108         nonlocal_goto_handler_labels for flow.
109
110 Tue Apr  6 22:05:21 1999  Jan Hubicka  <hubicka@paru.cas.cz>
111                           Richard Henderson  <rth@cygnus.com>
112
113         * flow.c (verify_flow_info): New function.
114         (find_basic_blocks): Call it if ENABLE_CHECKING.
115         (merge_blocks): Don't merge if there are non-deletable labels.
116         * toplev.c (fatal_insn): Allow a printf-style arg list.
117         * toplev.h (fatal_insn): Update prototype.
118
119 Tue Apr  6 16:18:58 1999  Jan Hubicka  <hubicka@paru.cas.cz>
120
121         * flow.c (split_edge) update correctly flow graph, disable
122         EDGE_CRITICAL flag on the split edge, update NUSES for new label.
123
124 Tue Apr  6 15:47:51 1999  Richard Henderson  <rth@cygnus.com>
125
126         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use XWINT not XINT.
127         Clear third and following slots, if they exist.
128
129 Tue Apr  6 15:45:28 1999  Richard Henderson  <rth@cygnus.com>
130
131         * flow.c (create_basic_block): Make sure the bb note is in the block.
132         (can_delete_note_p): Rename from delete_note_p.
133         (delete_insn_chain): Preserve undeleteable labels too.
134         (tidy_fallthru_edge): Use next_real_insn instead of confusing
135         inline code.
136
137 1999-04-06 12:56 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
138
139         * cppexp.c (parse_charconst): Initialize c.
140         (cpp_parse_expr): Initialize rprio.
141         * cppfiles.c (merge_include_chains): Initialize prev.
142         (finclude) Set fp->line_base to fp->buf before returning.
143         * cpphash.c (macroexpand): Initialize token.
144         * cppspec.c (lang_specific_driver): Change suff to 
145         const char *const *.
146
147 1999-04-06 12:51 -0400  Zack Weinberg  <zack@rabi.columbia.edu>
148
149         * cppinit.c (install_predefs): Delete function.
150         (cpp_start_read): Don't call install_predefs.
151         (cpp_handle_option): Remove case 'u' and all refs to
152         opts->inhibit_predefs.
153         (print_help): Don't mention -undef.
154         (initialize_builtins): Define __HAVE_BUILTIN_SETJMP__, to
155         match cccp.
156         * cpplib.h (struct cpp_options): Remove inhibit_predefs
157         member.
158
159         * cccp.c (predefs): Delete variable.
160         (main): Remove case 'u' in argument parse loop,
161         'inhibit_predefs' variable, and the code block that would
162         process CPP_PREDEFINES.
163         (initialize_builtins): Don't define __OBJC__, the driver will
164         do that.
165
166         * gcc.c (default_compilers): Remove -undef from all specs that
167         invoke a C preprocessor.
168         * ch/lang-specs.h: Likewise.
169         * cp/lang-specs.h: Likewise.
170         * f/lang-specs.h: Likewise.
171         * objc/lang-specs.h: Likewise.
172
173 Mon Apr  5 11:55:31 1999  Donn Terry (donn@interix.com)
174
175         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix misapplied patch.
176
177 Mon Apr  5 11:51:38 1999  Jeffrey A Law  (law@cygnus.com)
178
179         * m68k.md (movdf): Hide GPR sources & destinations from regclass.
180
181 Mon Apr 5 09:54:42 PDT 1999 Jeff Law  (law@cygnus.com)
182
183         * version.c: Bump for snapshot.
184
185 Mon Apr 5 05:55:15 PDT 1999 Bruce Korb <ddsinc09@ix.netcom.com>
186
187         * fixincl.tpl: Separate "-e" from its argument, a la
188         the Sat Apr  3 17:05:13 1999 fix.
189         * genfixes: Ensure that the server shell is _NOT_ csh.
190
191 Mon Apr 5 03:52:30 PDT 1999 Jeff Law  (law@cygnus.com)
192
193         * version.c: Bump for snapshot.
194
195 Mon Apr  5 04:47:14 1999  Jeffrey A Law  (law@cygnus.com)
196
197         * i386.c (x86_double_with_add): Turn off for Pentium and PPro.
198         (small_shift_operand, output_ashlsi3): New functions.
199         * i386.h (small_shift_operand, output_ashlsi3): Declare.
200         * i386.md (ashlsi3): Simplify ahlsi3 patterns.  Remove splitters
201         that are no longer needed.
202
203 Sun Apr  4 04:05:04 1999  Jeffrey A Law  (law@cygnus.com)
204
205         * stmt.c (expand_loop_end): When copying the loop exit test,
206         do not walk into a nested loop.
207
208 Sun Apr  4 00:14:54 1999  Jeffrey A Law  (law@cygnus.com)
209
210         * fixinc/hackshell.tpl: Skip links to directories, to avoid
211         removing them.
212         * fixinc/inclhack.tpl: Likewise.
213         * fixinc/fixinc.sh, fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
214
215 Sat Apr  3 23:46:13 1999  David Edelsohn  <edelsohn@gnu.org>
216         
217         * rs6000.md (addsi3, iorsi3, xorsi3, adddi3, iordi3, xordi3,
218         movsi_got, movsi, movsf): Use no_new_pseudos.
219         * rs6000.c (rs6000_got_register): Likewise.
220         (offsettable_mem_opereand): Use || not |.
221
222 Sat Apr  3 22:02:56 1999  Jeffrey A Law  (law@cygnus.com)
223
224         * acconfig.h (ENABLE_CHECKING): Remove redundant #undef.
225         * config.in: Rebuilt.
226
227 Sat Apr  3 16:22:59 1999  Toshiyasu Morita  (tm@netcom.com)
228
229         * gcc.texi: Add info on regmove pass
230
231         * regmove.c (fixup_match_1): Consistently evaluate
232         HAVE_POST_INCREMENT and HAVE_POST_DECREMENT.
233
234 Sat Apr  3 19:21:05 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
235
236         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER): Use grep
237         instead of test and sed to check whether they're GNU programs.
238         * configure: Rebuilt.
239
240 Sat Apr  3 17:57:35 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
241
242         * Makefile.in (install-headers-tar, install-headers-cpio): avoid
243         problems with CDPATH
244         Reported by Ralf Canis <canis@bigfoot.com>
245
246 Sat Apr  3 13:50:16 1999  Jeffrey A Law  (law@cygnus.com)
247
248         * fixinc.x86-linux-gnu: Deleted.
249
250 Sat Apr  3 17:05:13 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
251
252         * inclhack.tpl: insert spaces between `sed -e' and '...'
253         Reported by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
254         * fixinc/fixincl.sh, fixinc/fixincl.x, fixinc/inclhack.sh: regen 
255         
256 Sat Apr  3 14:54:46 1999  Craig Burley  <craig@jcb-sc.com>
257
258         * tree.def (BLOCK): Fix typo in comment.
259
260 Sat Apr  3 00:53:29 EST 1999  John Wehle  (john@feith.com)
261
262         * i386.md (floatsisf2, floatdisf2, floatsidf2, floatdidf2,
263         floatsixf2, floatdixf2): Rewrite using a splitter.
264
265 Fri Apr  2 17:36:10 1999  Nick Clifton  <nickc@cygnus.com>
266
267         * config/arm/arm.c (arm_print_operand): Print large constants in
268         hex rather than decimal.
269
270 Fri Apr  2 17:23:58 1999  Nick Clifton  <nickc@cygnus.com>
271
272         * print-rtl.c (print_rtx): Use both HOST_WIDE_INT_PRINT_DEC
273         and HOST_WIDE_INT_PRINT_HEX to display constants.
274
275 1999-04-02 20:16 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
276
277         * config/i386/i386.h: Document all TARGET_SWITCHES or add
278         explicit null initializer.
279
280         * config/i386/cygwin.h: Document all SUBTARGET_SWITCHES.
281         * config/i386/dgux.h: Likewise.
282         * config/i386/osf1elf.h: Likewise.
283         * config/i386/win32.h: Likewise.
284         * config/i386/osfrose.h: Likewise.  Drop obsolete -mno-ident option.
285
286 Fri Apr  2 17:49:44 1999  Toshiyasu Morita <tm@netcom.com>
287
288         * regmove.c (fixup_match_1): Remove now useless if (0).
289
290 Sat Apr  3 11:37:20 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
291
292         * tm.texi (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
293         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT): Document.
294         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
295         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Fix documentation.
296
297         * rtl.h (USE_LOAD_POST_DECREMENT, USE_LOAD_PRE_DECREMENT,
298         USE_STORE_POST_DECREMENT, USE_STORE_PRE_DECREMENT,
299         USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
300         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Provide default
301         definition.
302
303         * expr.c: (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_INCREMENT,
304         USE_STORE_POST_INCREMENT, USE_STORE_PRE_INCREMENT): Delete default
305         definition.
306
307 Fri Apr  2 16:03:05 1999  Jeffrey A Law  (law@cygnus.com)
308
309         * fixinc.dgux, fixinc.interix, fixinc.irix, fixinc.ptx: Deleted.
310         * fixinc.sco, fixinc.svr4, fixinc.winnt, fixinc.wrap: Likewise.
311
312 Fri Apr  2 15:46:25 1999  Donn Terry (donn@interix.com)
313
314         * configure.in: Set and substitute quoted_cc_set_by_configure.
315         * configure: Rebuilt.
316         * Makefile.in (SUBDIR_FLAGS_TO_PASS): Fix quoting problem with ``.
317
318 Fri Apr  2 14:35:45 1999  Stan Cox  <scox@cygnus.com>
319
320         * config/i386/cygwin.h (CPP_SPEC): Use mingw_include_path instead
321         of a hardcoded path for -mno-cygwin.
322         (mingw_include_path): New.
323
324 1999-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
325
326         * pdp11.c: Include "recog.h".
327         (output_function_prologue): Remove unused variables `nregs', `i',
328         `offset'.
329         (output_function_epilogue): Remove unused variables
330         `may_call_alloca', `nregs', `regno', `adjust_fp'.
331         (output_ascii): Mark as returning void.
332         (print_operand_address: Likewise.
333         (simple_memory_operand): Remove unused variables `plus0', `plus1',
334         `offset'.
335         * pdp11.h: Declare functions `arith_operand',
336         `const_immediate_operand', `expand_shift_operand',
337         `legitimate_address_p', `notice_update_cc_on_set', `output_ascii',
338         `output_function_epilogue', `output_function_prologue',
339         `print_operand_address', `register_move_cost',
340         `simple_memory_operand'.
341         (HARD_REGNO_MODE_OK): Parenthesise `REGNO' arg.
342         (REGNO_REG_CLASS): Likewise.
343         * pdp11.md: Add explicit `int' to `static count' (in two places).
344         (addhi3): Add explicit braces to avoid ambiguous else.
345         (addqi3): Likewise.
346         (ashlhi3): Likewise.
347
348 Fri Apr  2 14:17:10 1999  Jerry James <jerry@cs.ucsb.edu>
349
350         * gcc/invoke.texi: Add documentation for additional supported
351         MIPS CPU types, options -mips16 and -mentry, and ABI and ISA
352         defaults.
353
354 Fri Apr  2 14:12:06 EST 1999  John Wehle  (john@feith.com)
355
356         * i386.md: Delete floating point compare, add, subtract,
357         multiply, and divide patterns which allowed integer
358         operands.
359         * i386.c (output_386_binary_op): Delete unused code.
360         (output_float_compare): Likewise.
361
362 Fri Apr  2 11:53:37 1999  John Wehle  (john@feith.com)
363
364         * i386.md (movsf+1, movdf+1, movxf+1): Update constraints
365         so that SECONDARY_MEMORY_RELOAD is used.  Remove dead code.
366
367 1999-04-02  Bruce Korb <ddsinc09@ix.netcom.com>
368
369         * fixinc/mkfixinc.sh:  added support for x86-interix
370         * fixinc/fixinc.interix:  fixincludes script, slight chages
371         from ./fixinc.interix.  Untested (needs interix box).
372         * fixinc/inclhack.def:
373         Complete the change to the 'fixinc.tmp' file
374         Fixed regex for finding C++ headers
375         * fixincl.x, fixincl.sh, inclhack.sh: regenerate
376
377 Fri Apr  2 11:36:12 1999  Jan Hubicka  (hubicka@paru.cas.cz)
378
379         * i386.c (print_operand_address, case REG): Do not use ESI addressing
380         mode for the K6.
381
382         * i386.c (print_operand_address, case MULT): Use more efficient
383         encoding (mult (reg) (const_int 2)).
384
385 Thu Apr  1 17:01:50 1999  Richard Henderson  <rth@cygnus.com>
386
387         Move over patch from Bernd Schmidt from GC branch:
388         * emit-rtl.c (gen_rtx_CONST_DOUBLE): New function.
389         (gen_rtx): Call it.  Tidy cases.
390         * rtl.h (gen_rtx_CONST_DOUBLE): Prototype it.
391         * gengenrtl.c: Add commentary.
392         (special_rtx): Also match CONST_DOUBLE.
393         (gencode): Emit call to memset instead of bzero.
394
395 Fri Apr  2 12:58:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
396
397         * config/c4x/c4x.md (ashlhi3, lshrhi3, ashrhi3): Force operand 1
398         into a register if shift count not constant.
399         (ashlhi3_reg, lshrhi3_reg, ashrhi3_reg): Ensure that operand 1
400         is a register.
401
402 Fri Apr  2 12:19:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
403
404         * config/c4x/c4x.md (*db): Enable pattern if TARGET_LOOP_UNSIGNED
405         is non-zero.
406         (movstrqi_small, movstrqi_large, *cmpstrqi): Add + modifier to address
407         register constraints.
408         (*movhi_clobber+1): Modify splitter pattern to handle destination
409         register that is used in the source address.
410         (*xorhi3_clobber): Replace AND with XOR in call to legitimize_operands.
411
412 Fri Apr  2 12:16:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
413
414         * config/c4x/c4x.h: Added more comments.
415
416 Fri Apr  2 11:58:22 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
417
418         * config/c4x/c4x.c (c4x_emit_move_sequence): Force invalid QImode
419         constants into memory if we get called directly from gen_move_insn
420         rather than emit_move_insn.
421         (c4x_legitimize_address): Fix up LABEL_REF addresses.
422
423 Thu Apr  1 12:04:05 1999  Jim Wilson  <wilson@cygnus.com>
424
425         * expr.c (store_field): When check direct_store, assume all complex
426         modes can be directly stored.
427
428 1999-04-01  Bruce Korb <ddsinc09@ix.netcom.com>
429
430         * fixinc/genfixes:  new shell script that runs autogen
431         to create the generated files.
432
433 1999-04-01  Manfred Hollstein  <manfred@s-direktnet.de>
434
435         * Makefile.in (cppmain$(exeext)): Depend on intl.o.  Link in intl.o.
436
437 Thu Apr  1 03:48:34 1999  H.J. Lu  (hjl@gnu.org)
438
439         * i386.c (output_fp_conditional_move): Abort for LT, LE, GE, and GT
440         signed integer comparisons.
441
442         * i386.c (output_int_conditional_move): Use "enum rtx_code" for code
443         type.
444
445         * i386.c (notice_update_cc): No need to check the INT mode for
446         conditional moves since FLOAT conditional moves don't affect cc0.
447
448 Thu Apr  1 02:17:18 1999  Jeffrey A Law  (law@cygnus.com)
449
450         * fixinc/inclhack.def (zzz_ki_syscalls, zzz_time): Fix trigger
451         string to only match on hpux11.
452         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
453
454 Thu Apr  1 01:09:27 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
455
456         * fixinc/hackshell.tpl: Complete transition to fixinc.tmp.
457         * fixinc/inclhack.sh: Rebuilt.
458
459         * fixinc/inclhack.def: Fix typos in c_asm.h fix.
460         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixinc.sh: Rebuilt.
461
462 Wed Mar 31 17:20:11 1999  Jeffrey A Law  (law@cygnus.com)
463
464         * toplev.c (rest_of_compilation): Allow dbr_schedule to write to
465         the dump file too.
466
467 Wed Mar 31 12:32:43 1999  Richard Henderson  <rth@cygnus.com>
468
469         * flow.c (find_basic_blocks): New argument `do_cleanup'.
470         Conditionally call delete_unreachable_blocks.
471         (free_basic_block_vars): Zero ENTRY/EXIT data.
472         (allocate_for_life_analysis): Kill.  Split into...
473         (allocate_bb_life_data, allocate_reg_life_data): ... new functions.
474         (life_analysis_1): Update.
475         * gcse.c (gcse_main): Update find_basic_blocks call.
476         * toplev.c (rest_of_compilation): Likewise.
477         * stupid.c (stupid_life_analysis): Update life data calls.
478         * rtl.h, output.h: Update prototypes.
479
480 Wed Mar 31 12:10:00 1999  Bruce Korb <ddsinc09@ix.netcom.com>
481
482         * inclhack.def (several): added spaces in tests to ensure
483         correct shell syntax.  Added c_asm.h fix from fixincludes.
484         Also corrected the corrected fix to C++ comments :-}
485
486         * inclhack.tpl: changed method of traversing symlink trees
487         so that file name matching will work correctly.
488
489         * fixincl.c, hackshell.tpl:  fallout from above
490         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
491
492 Tue Mar 30 10:43:49 1999  Philip Blundell  <pb@nexus.co.uk>
493
494         * config/arm/aout.h (DBX_DEBUGGING_INFO): Avoid redefinition if
495         dbxelf.h was previously included.
496         (CPP_APCS_PC_DEFAULT_SPEC): No need to undefine.
497         
498         * config/arm/linux-elf.h (FP_DEFAULT): Correctly override the
499         definition from arm.h.
500
501 Wed Mar 31 10:33:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
502
503         * Makefile.in (c-gperf.h): Generate using gperf language 'C', not
504         'KR-C', so gperf uses the `const' keyword on strings.
505          
506         * c-parse.gperf (resword): Const-ify a char*.
507
508 Wed Mar 31 01:49:31 1999  Ian Lance Taylor  <ian@zembu.com>
509
510         * t-rtems (LIMITS_H_TEST, LIBGCC2_INCLUDES): Define.
511
512 Wed Mar 31 00:50:48 1999  Jeffrey A Law  (law@cygnus.com)
513
514         * system.h (STDERR_FILENO): Fix typo.
515
516         * inclhack.def (bool): Also fix bogus bool in curses_colr/curses.h
517         * fixincl.x, inclhack.sh, fixincl.sh: Rebuilt.
518
519 Tue Mar 30 20:51:40 1999  Mark Mitchell  <mark@codesourcery.com>
520
521         * alias.c (alias_set_compare): Remove.
522         (record_alias_subset): Use splay_tree_compare_ints instaed of
523         alias_set_compare.
524         (init_alias_once): Likewise.
525         * cse.c: Include splay-tree.h.
526         (reg_qty): Remove.
527         (reg_tick): Likewise.
528         (reg_table): Likewise.
529         (cse_reg_info): New structure.
530         (cse_reg_info_free_list): New variable.
531         (cse_reg_info_tree): Likewise.
532         (cached_regno): Likewise.
533         (cached_cse_reg_info): Likewise.
534         (all_minus_one): Remove.
535         (consec_ints): Likewise.
536         (GET_CSE_REG_INFO): New macro.
537         (REG_TICK): Likewise.  Use throughout instead of reg_tick.
538         (REG_IN_TABLE): Likewise.  Use throughout instead of reg_in_table.
539         (REG_QTY): Likewise.  Use throughout instead of reg_qty.
540         (get_cse_reg_info): New function.
541         (free_cse_reg_info): Likewise.
542         (new_basic_block): Reinitialize cse_reg_info_tree instead of
543         reg_tick, all_minus_one, and consec_ints.
544         * Makefile.in (cse.o): Depend on splay-tree.h
545
546 Tue Mar 30 13:19:36 1999  Jason Merrill  <jason@yorick.cygnus.com>
547
548         * libgcc2.c (throw_helper): Just return the SP offset, rather than
549         a whole udata.  Include args_size in the offset.
550         (__throw, __rethrow): Adjust.
551
552 Tue Mar 30 11:39:27 1999  Craig Burley  <craig@jcb-sc.com>
553
554         * extend.texi (Extended Asm): Delete spurious `b' before
555         `@end example', which was confusing texi2html.
556
557 Tue Mar 30 00:26:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
558
559         * dwarf2out.c (output_line_info): Don't emit redundant info.
560         Do start a new row if the file changes and the line # doesn't.
561
562 Mon Mar 29 15:48:39 1999  Jason Merrill  <jason@yorick.cygnus.com>
563
564         * invoke.texi (Invoking G++, C++ Dialect Options): Update.
565
566 Mon Mar 29 15:05:39 1999  Richard Henderson  <rth@cygnus.com>
567
568         * except.c (start_dynamic_handler): Force jmp_buf address to 
569         and operand before moving to memory.
570
571 Mon Mar 29 15:11:10 1999  Craig Burley  <craig@jcb-sc.com>
572
573         * invoke.texi (Code Gen Options): Attempt to clarify
574         -fcheck-memory-usage.  Minor edits to -fprefix-function-name.
575
576 Mon Mar 29 20:52:47 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
577
578         * loop.c (maybe_eliminate_biv): For libcalls that set a giv, skip to
579         end of libcall.
580
581 Mon Mar 29 20:35:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
582
583         * sh.md (mulsi3): Tag an extra REG_EQUAL note to the middle insn.
584
585 Mon Mar 29 11:50:34 1999  Jerry Quinn <jquinn@nortelnetworks.com>
586
587         * pa.h (HAVE_PRE_INCREMENT): Disable when optimizing for a PA8000
588         class machine.
589         (HAVE_PRE_DECREMENT, HAVE_POST_INCREMENT): Likewise.
590         (HAVE_POST_DECREMENT): Likewise.
591
592 Mon Mar 29 08:24:43 1999  Bruce Korb <korb@datadesign.com>
593
594         * fixinc/mkfixinc.sh:  Fix portability problems with old shells.
595
596         * fixinc/README:  Updated for release announcement
597
598 Sun Mar 28 20:26:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
599
600         * recog.h (insn_outfun, insn_operand_predicate): Add prototype
601         arguments.
602
603         * rtl.h (note_stores): Likewise.
604
605         * rtlanal.c (note_stores): Likewise.
606
607 Sun Mar 28 15:34:28 1999  Richard Henderson  <rth@cygnus.com>
608
609         * varasm.c (output_constant_pool): Always mark the constant pool.
610
611 Sun Mar 28 16:09:01 1999  "Jerry Quinn" <jquinn@nortelnetworks.com>
612
613         * pa.md (pa7100LCshiftmem, pa7100LCalu): Change simultaneity.  Use
614         shift/mem ops in pa7100LCalu.
615
616         * pa.c (pa_adjust_cost): Don't do cost adjustments on pa8000.
617         (pa_reorg): Don't call pa_combine_instructions on pa8000.
618
619 Sun Mar 28 15:27:26 1999  Jeffrey A Law  (law@cygnus.com)
620
621         * reload1.c (reload): Remove accidental code duplication.
622
623 Sun Mar 28 12:22:12 1999  Robert Lipe  (robertlipe@usa.net)
624
625         * i386/sysv5.h: New file to describe UnixWare7/SVR5.
626         * configure.in (i?86-UnixWare7*-sysv): Use it.      
627         * i386/udk.h: Use sysv5.h.   Now uses Dwarf-2.
628
629 Sun Mar 28 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
630
631         * version.c: Bump for snapshot.
632
633 Sun Mar 28 00:44:27 1999  Jeffrey A Law  (law@cygnus.com)
634
635         * sdbout.c (sdbout_symbol): Do not call build_pointer_type, build
636         one on the fly and do not cache the result.
637
638         * gcc.cps, cpp.cps: Delete unwanted files.
639
640 Sat Mar 27 23:37:40 EST 1999  John Wehle  (john@feith.com)
641
642         * i386.md (movdicc+3, movdicc+4): Rewrite using split_di.
643         * i386.c (output_int_conditional_move): Delete unused code.
644
645 Sat Mar 27 21:17:36 1999  David Edelsohn  <edelsohn@gnu.org>
646
647         * rs6000/{aix41.h,aix43.h} (ASM_CPU_SPEC): Add 604e.
648
649 Sat Mar 27 16:13:50 1999  Jeffrey A Law  (law@cygnus.com)
650
651         * flow.c (mark_used_regs): Improve handling of ASMs.
652
653 1999-03-26 Zack Weinberg  <zack@rabi.columbia.edu>
654
655         * Makefile.in (xcpp, cppspec.o): New targets.
656         (CPP_INSTALL_NAME): New macro.
657         (install-cpp): Install xcpp.  Use CPP_INSTALL_NAME.
658         (all.build, start.encap): Build xcpp.
659
660         * cppspec.c: New file, implements argument filtering for a
661         user-visible C preprocessor.
662         * cpp.sh: Removed.
663
664 Fri Mar 26 20:41:46 1999  Jim Wilson  <wilson@cygnus.com>
665
666         * Makefile.in (stmp-fixinc): Use tooldir instead of gcc_tooldir.
667
668 Fri Mar 26 16:02:37 1999  Nick Clifton  <nickc@cygnus.com>
669
670         * configure.in (arm-*-vxworks*): Just include arm/vxarm.h
671         * configure: Regenerate.
672         * config/arm/vxarm.h: Define SUBTARGET_CPU_DEFAULT before
673         including arm/coff.h
674
675 1999-02-16  Scott Bambrough <scottb@corelcomputer.com>
676
677         * configure.in (arm*-*-linux-gnu*): Set thread_file to 'posix' if
678         --enable-threads[={yes,pthreads,posix}] is passed as a command
679         line parameter to configure. 
680
681         * configure: Regenerate.
682         
683         * gcc/config/arm/t-linux (TARGET_LIBGCC2_CFLAGS): Include -fPIC.
684
685 Fri Mar 26 19:42:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
686
687         * loop.c (combine_givs): Fix index into can_combine when doing
688         benefit adjustment for remaining givs when having combined a giv.
689
690 Fri Mar 26 11:38:01 1999  Nick Clifton  <nickc@cygnus.com>
691
692         * config/arm/t-arm-elf (EXTRA_MULTILIB_PARTS): Define.
693
694 Fri Mar 26 10:48:27 1999  Nick Clifton  <nickc@cygnus.com>
695
696         * config/arm/linux-elf.h: Include dbxelf.h
697
698 Fri Mar 26 10:43:47 1999  Nick Clifton  <nickc@cygnus.com>
699
700         * config/svr4.h: Include new header file dbxelf.h.
701         (DBX_DEBUGGING_INFO): Remove definition.
702         (DBX_USE_BINCL): Remove definition.
703         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
704         (ASM_IDENTIFY_GCC): Remove definition.
705         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
706         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
707         (DBX_FUNCTION_FIRST): Remove definition.
708         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Remove definition.
709
710         * config/elfos.h: Include new header file dbxelf.h.
711         (DBX_DEBUGGING_INFO): Remove definition.
712         (DBX_BLOCKS_FUNCTION_RELATIVE): Remove definition.
713         (ASM_IDENTIFY_GCC): Remove definition.
714         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove definition.
715         (ASM_OUTPUT_SOURCE_LINE): Remove definition.
716         (DBX_FUNCTION_FIRST): Remove definition.
717
718         * config/dbxelf.h: New header file.
719         (DBX_DEBUGGING_INFO): Define.
720         (DBX_BLOCKS_FUNCTION_RELATIVE): Define.
721         (DBX_FUNCTION_FIRST): Define.
722         (DBX_USE_BINCL): Define.
723         (DBX_CONTIN_LENGTH): Define.
724         (ASM_IDENTIFY_GCC): Define.
725         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Define.
726         (ASM_OUTPUT_SOURCE_LINE): Define.
727         (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Define.
728
729 Fri Mar 26 01:59:15 1999  "Charles M. Hannum" <root@ihack.net>
730
731         * fold-const.c (fold_truthop): Optimize bitfield references with
732         different masks as long as their size and bit position are the same.
733
734         * fold-const.c (fold_truthop): Build a type for both the lhs and
735         rhs and use it appropriately.
736
737         * fold-const.c (fold_truthop): Mask the lhs and rhs after merging
738         adjacent bitfield references. 
739
740         * fold-const.c (fold_truthop): Verify that the lhs and rhs are
741         in the same bit position when optimizing bitfield references
742         which have the same mask.
743
744 Thu Mar 25 22:53:27 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
745
746         * gcc.texi (Copy Assignment): New node.
747
748 1999-03-25 Zack Weinberg  <zack@rabi.columbia.edu>
749
750         * gcc.c: Compile unconditionally all code formerly dependent
751         on #ifdef LANG_SPECIFIC_DRIVER.
752         * gccspec.c: New file with stub lang_specific_driver,
753         lang_specific_pre_link.
754         * Makefile.in: Link gccspec.o into xgcc.  Add rule to compile
755
756 Thu Mar 25 21:08:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
757
758         * gcc.texi (Temporaries): Update.
759
760 Thu Mar 25 16:53:53 1999  Richard Henderson  <rth@cygnus.com>
761
762         * combine.c (distribute_notes): Place REG_LABEL also where
763         REG_EQUAL indicates.
764
765 Thu Mar 25 12:46:37 1999  Jim Wilson  <wilson@cygnus.com>
766
767         * a29k/a29k.h (TARGET_SWITCHES): Add doc strings.
768         * i960/i960.h (TARGET_SWITCHES): Add doc strings.
769         * invoke.texi (a29k): Add documentation for -mno-multm option.
770
771 Thu Mar 25 14:04:54 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
772
773         * rtl.texi (RTX_FRAME_RELATED_P): Add documentation.
774         * rtl.h (struct rtx_def): Update comment for frame_related field.
775         (set_unique_reg_note): Declare prototype.
776         * dwarf2out.c (dwarf2out_frame_debug_expr): Split out from
777         'dwarf2out_frame_debug' to handle only expressions, and process
778         component parts of a PARALLEL expression.
779         (dwarf2out_frame_debug): Process insns only, and call
780         new function 'dwarf2out_frame_debug_expr' for patterns.
781         * emit-rtl.c (set_unique_reg_note): New function to add a reg note,
782         but if there is an existingone, deletes it first.
783         * expmed.c (expand_mult, expand_divmod): Use set_unique_reg_note.
784         * optabs.c (add_equal_note, expand_binop): Use set_unique_reg_note.
785         (emit_no_conflict_block, emit_libcall_block): Use set_unique_reg_note.
786         (expand_fix):  Use set_unique_reg_note.
787
788 Thu Mar 25 11:47:49 1999  Art Haas <ahaas@neosoft.com>
789
790         * tlink.c (symbol_hash_newfunc): Remove redundant call to
791         hash_newfunc.
792         (file_hash_newfunc, demangled_hash_newfunc): Likewise.
793
794 Thu Mar 25 10:05:56 1999  Richard Henderson  <rth@cygnus.com>
795
796         * i386.h (PREFERRED_STACK_BOUNDARY): Set to 128.
797
798 1999-03-25  Philip Blundell  <pb@nexus.co.uk>
799
800         Based on patch from Jim Studt <jim@federated.com>:
801         * config/arm/linux-elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Copy
802         definitions from config/linux.h.
803         (DBX_BLOCKS_FUNCTION_RELATIVE): Define to 1.
804
805 Thu Mar 25 02:12:42 1999  Finn Hakansson  <finn@axis.com>
806
807         * loop.c (strength_reduce): Correct a comment.
808
809         * rtl.h (MEM_COPY_ATTRIBUTES): Remove unnecessary ending backslash.
810
811 Thu Mar 25 02:02:13 1999  Axel Thimm <Axel.Thimm@physik.fu-berlin.de>
812
813         * Makefile.in (RANLIB_TEST): Improve test.
814
815 Thu Mar 25 01:15:33 1999  Donn Terry  <donn@interix.com>
816
817         * combine.c (force_to_mode, case PLUS): Use sign extended mask
818         when masking the low bits out of a constant.
819
820 Tue Mar 23 15:45:25 1999  Richard Earnshaw (rearnsha@arm.com)
821                           Jeff Law <law@cygnus.com>
822
823         * fold-const.c (make_range): If orig_type is unset, set it as soon
824         as we know the type.  Remove now unnecessary set of orig_type for
825         conversions.
826
827 Wed Mar 24 23:27:25 1999  Mark Elbrecht  <snowball3@usa.net>
828                           Jeff Law <law@cygnus.com>
829
830         * system.h (STDIN_FILENO): Provide default definition if one is not
831         provided by the system header files.
832         (STDOUT_FILENO, STDERR_FILENO): Likewise.
833
834         * i386/xm-djgpp.h (COLLECT2_HOST_INITIALIZATION): New macro.
835         * collect2.c (main): Use it.
836         (pexecute_pid): New variable. Holds return value from call to pexecute.
837         (collect2_execute): Rework to use pexecute instead of fork.
838         (collect2_wait): Use pwait() instead of wait().
839
840         * i386/djgpp.h: Fix typo.
841
842 Wed Mar 24 23:24:30 1999  Jeffrey A Law  (law@cygnus.com)
843
844         * fixinc/mkfixinc.sh: Recognize cygwin* instead of only
845         cygwin32.
846
847 Wed Mar 24 15:44:12 1999  Nick Clifton  <nickc@cygnus.com>
848
849         * config/m32r/m32r.c (init_idents): Accept both NAME and __NAME__
850         versions of attribute names and values.
851         (m32r_valid_machine_decl_attribute): Ditto.
852         (m32r_encode_section_info): Ditto.
853
854 Wed Mar 24 21:42:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
855
856         * reload1.c (choose_reload_regs): If output-reloading for a
857         simple move insn, try to inherit an equivalence for the input.
858
859 1999-02-24  Mike Stump  <mrs@wrs.com>
860
861         * arm/aout.h (DBX_OUTPUT_MAIN_SOURCE_FILENAME): Fix quoting.
862
863 1999-03-24  Jim Blandy  <jimb@zwingli.cygnus.com>
864
865         * libgcc2.c (__CTOR_LIST__, __DTOR_LIST__): Initialize on all
866         platforms.
867
868 Wed Mar 24 01:35:01 1999  Geoff Keating  <geoffk@ozemail.com.au>
869
870         * fold-const.c (fold): Recognise a rotate by an unsigned amount.
871
872 Tue Mar 23 23:32:14 1999  Jeffrey A Law  (law@cygnus.com)
873
874         * pa.md (rotlsi3): New expander.  Synthesize a variable rotate
875         left using a variable rotate right.  Provide anonymous pattern for
876         rotate left by a constant value.
877
878         * expr.c (expand_assignment): Do not try to optimize a aggregate
879         address which has VOIDmode.
880
881 Tue Mar 23 22:51:48 1999  Mumit Khan  <khan@xraylith.wisc.edu>
882                           Donn Terry  <donn@interix.com>
883
884         * protoize.c (abspath): Preserve multiple leading slashes for
885         _WIN32 and Interix.
886
887 1999-01-23  Mike Stump  <mrs@wrs.com>
888
889         * arm/vxarm.h: Split out vxWorks support into separate headerfile
890         and vxify.
891         * arm/arm.c (cpu_defaults): Allow arm710 as default.
892         
893         * configure.in: Split out vxWorks support for Arm.
894         * configure: Rebuilt.
895
896 Tue Mar 23 11:20:03 1999  Per Bothner  <bothner@cygnus.com>
897
898         * tree.c (first_rtl_op, has_cleanups):  Handle GOTO_SUBROUTINE_EXPR.
899
900 Tue Mar 23 09:00:39 1999  Nick Clifton  <nickc@cygnus.com>
901
902         * config/arm/riscix1.h (SUBTARGET_SWITCHES): Add doc string.
903         * config/arm/riscix1-1.h (SUBTARGET_SWITCHES): Add doc string.
904
905 Tue Mar 23 07:50:20 1999  Mark Mitchell  <mark@codesourcery.com>
906
907         * function.c: Include hash.h.
908         (insns_for_mem_entry): New struct.
909         (put_reg_into_stack): Take an optional hash-table mapping MEMs to
910         the INSNs that use them.
911         (fixup_var_refs): Likewise.
912         (put_addressof_into_stack): Likewise.
913         (purge_addressof_1): Likewise.  Keep the hash-table up to date if
914         we add new instructions.
915         (fixup_var_refs_insns): Use it to avoid searching the entire
916         instruction chain.
917         (insns_for_mem_newfunc): New function.
918         (insns_for_mem_comp): Likewise.
919         (insns_for_mem_walk): Likewise.
920         (compute_insns_for_mem): Likewise.
921         (pop_function_context_from): Pass NULL for the hash-table.
922         (put_var_into_stack): Likewise.
923         (gen_mem_addressof): Likewise.
924         (flush_addressof): Likewise.
925         (purge_addressof): Call compute_insns_for_mem to pre-compute the
926         hash table.
927         * Makefile.in (OBJS): Include hash.o.
928         (function.o): Depend on hash.h.
929         
930 Tue Mar 23 00:39:14 1999  Jeffrey A Law  (law@cygnus.com)
931
932         * i386/openbsd.h (TARGET_DEFAULT): Use symbolic names instead of
933         numbers.
934         * i386/netbsd.h, i386/freebsd.h: Likewise.
935
936         * crtstuff.c: Use ANSI function definitions.  Fix minor whitespace
937         problems.
938
939         * i386/openbsd.h (TARGET_DEFAULT): Define.
940         * configure.in: Do not set TARGET_CPU_DEFAULT for x86 OpenBSD
941         configurations.
942         * configure: Rebuilt.
943
944 Tue Mar 23 00:39:10 1999  John Wehle  (john@feith.com)
945
946         * i386/freebsd.h (TARGET_DEFAULT): Define instead
947         of TARGET_CPU_DEFAULT.
948         * i386/netbsd.h (TARGET_DEFAULT): Likewise.
949
950 Mon Mar 22 23:52:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
951                           Donn Terry  <donn@interix.com>
952
953         * sdbout.c (syms.h): Don't include on Interix.
954         * toplev.c (main): No sbrk on Interix.
955
956         * configure.in: Add i386-pc-interix support.
957         * configure: Regenerate.
958         * fixinc.interix: New file.
959         * config/interix.h: New file.
960         * config/x-interix: New file.
961         * config/xm-interix.h: New file.
962         * i386/interix.h: New file.
963         * i386/interix.c: New file.
964         * i386/t-interix: New file.
965
966 Mon Mar 22 23:41:49 1999  Jeffrey A Law  (law@cygnus.com)
967
968         * i386.h (PREFERRED_STACK_BOUNDARY): Define.
969
970 Mon Mar 22 23:41:31 1999  John Wehle  (john@feith.com)
971
972         * i386.c (ix86_compute_frame_size): New function.
973         (ix86_prologue, ix86_epilogue): Use it.
974         * i386.h (INITIAL_ELIMINATION_OFFSET): Likewise.
975         * reload1.c: Provide default for PREFERRED_STACK_BOUNDARY.
976
977 Mon Mar 22 18:06:59 1999  Jim Wilson  <wilson@cygnus.com>
978
979         * mips/mips.h (TARGET_SWITCHES, TARGET_OPTIONS): Add option doc
980         strings.
981         * mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Likewise.
982
983 Mon Mar 22 16:18:27 1999  Nick Clifton  <nickc@cygnus.com>
984
985         * config/arm/elf.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother
986         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
987         
988         * config/arm/coff.h (VALID_MACHINE_DECL_ATTRIBUTE): Do not bother 
989         passing ATTRIBUTES to arm_valid_machine_decl_attribute.
990         
991         * config/arm/arm.h (DEFAULT_RTX_COSTS): Do not bother passing
992         OUTER_CODE to arm_rtx_costs - it is not used.
993         (arm_compare_fp): Delete declaration.
994         (FINAL_PRESCAN_INSN): Do not bother passing OPVEC or NOPERANDS to
995         arm_final_prescan_insn - they are not used.
996         (const_ok_for_op): Remove prototype.
997         (arm_rtx_costs): Fix prototype.
998         (arm_valid_machine_decl_attribute): Fix prototype.
999         (final_prescan_insn): Fix prototype.
1000
1001         * config/arm/arm.md: Remove references to arm_compare_fp.
1002
1003         * config/arm/arm.c (arm_compare_fp): Delete.
1004         (const_ok_for_op): Make function static.  Add prototype.  Remove
1005         mode parameter - it is unused.
1006         (arm_rtx_costs): Remove outer_code parameter.
1007         (reload_memory_operand): Declare mode parameter unused.
1008         (power_of_two_operand): Declare mode parameter unused.
1009         (equality_operator): Declare mode parameter unused.
1010         (load_multiple_operation): Declare mode parameter unused.
1011         (store_multiple_operation): Declare mode parameter unused.
1012         (multi_register_push): Declare mode parameter unused.
1013         (arm_valid_machine_decl_attribute): Remove attributes parameter -
1014         it is unused.
1015         (select_dominance_cc_mode): Remove op parameter - it is unused.
1016         (gen_compare_reg): Remove fp parameter - it is unused.
1017         (final_prescan_insn): Remove opvec and noperands parameters - they
1018         are unused.
1019         
1020 Mon Mar 22 14:35:28 1999  Nick Clifton  <nickc@cygnus.com>
1021
1022         * tm.texi (MD_SCHED_INIT): Add missing closing parenthesis.
1023
1024 Mon Mar 22 22:24:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1025
1026         * reload1.c (reload_as_needed): Set reload_is_output_reload /
1027         reload_has_output_reload for auto_inc expressions that could be
1028         reloaded.  Call forget_old_reloads for REG_INC notes.
1029
1030 Mon Mar 22 21:51:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1031
1032         * cse.c (cse_insn): Don't change the result register of a libcall.
1033
1034 Mon Mar 22 21:08:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1035
1036         * rtl.h (shallow_copy_rtx): Declare.
1037         * rtl.c (shallow_copy_rtx): New function.
1038         * reload.c (find_reloads_toplev): Use shallow_copy_rtx instead of
1039         copy_rtx.
1040
1041 Mon Mar 22 10:44:33 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
1042
1043         * config/h8300/h8300.md (adjust_length): New attribute.
1044         (modhi3+1, andsi3+1, iorsi3+1, extzv+1, extzv+2): Change insn
1045         default value of attribute "adjust_length" onto "no".
1046
1047         * config/h8300/h8300.c (h8300_adjust_insn_length): Adust
1048         length only if the attribute "adjust_length" value is "yes".
1049         Use 0 if the shift is negative.
1050
1051         * final.c (shorten_branches): Check insn length after its
1052         adjusting.
1053
1054 Sun Mar 21 17:33:48 1999  Jeffrey A Law  (law@cygnus.com)
1055
1056         * i860.h (TARGET_SWITCHES): Add documentation for default case.
1057         * i860/paragon.h (TARGET_SWITCHES): Add documentation for default case.
1058         * i370.h (TARGET_SWITCHES): Add documentation for default case.
1059         * fx80.h (TARGET_SWITCHES): Add documentation for default case.
1060         * elxsi.h (TARGET_SWITCHES): Add documentation for default case.
1061         * clipper.h (TARGET_SWITCHES): Add documentation for default case.
1062         * 1750a.h (TARGET_SWITCHES): Add documentation for default case.
1063         * pa.h (TARGET_SWITCHES): Add documentation for default case.
1064         (TARGET_OPTIONS): Likewise for default case.
1065         * mn10300.h (TARGET_SWITCHES): Add documentation for default case.
1066         * h8300.h (TARGET_SWITCHES): Add documentation for default case.
1067
1068         * gcse.c (dump_hash_table): Fix whitespace in declaration.
1069         (compute_transpout): Renamed from pre_compute_transpout.
1070         (compute_pre_*): Deleted
1071         (pre_expr_reaches_here_p): New argument, CHECK_PRE_COMP.  All
1072         callers changed.
1073         (insert_insn_end_bb): Renamed from pre_insert_insn.
1074         (pre_*): Delete unused variables.  Only leave local properties and
1075         global redundant/optimal computation points.
1076         (alloc_pre_mem, free_pre_mem): Corresponding changes.
1077         (compute_pre_data): Simplify and call pre_lcm to run the lazy
1078         code motion dataflow analysis.
1079         (pre_insert, pre_insert_copies, pre_delete): Revamp to use LCM
1080         based redundant and optimal computation points.
1081
1082         * basic-block.h (pre_lcm, pre_rev_lcm): Declare.
1083
1084         * toplev.c (main): A debug option without a level defaults to
1085         level 2.
1086
1087 Sun Mar 21 12:13:01 1999  Nick Clifton  <nickc@cygnus.com>
1088
1089         * flow.c (can_delete_label_p): Do not allow user specified
1090         labels to be deleted.
1091         * dwarf2out.c (gen_label_die): Generate addresses for deleted
1092         (programmer specified) labels. 
1093         * dwarfout.c (output_label_die): Generate addresses for deleted
1094         (programmer specified) labels.
1095
1096 1999-03-21  Manfred Hollstein  <manfred@s-direktnet.de>
1097
1098         * Makefile.in (xgcc$(exeext)): Add intl.o to list of files to be
1099         linked with.
1100
1101 Sun Mar 21 01:15:03 PST 1999 Jeff Law  (law@cygnus.com)
1102
1103         * version.c: Bump for snapshot.
1104
1105 Sat Mar 20 22:26:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1106
1107         * sparc.h (TARGET_SWITCHES): Add null description to default case.
1108
1109 Sat Mar 20 21:46:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1110
1111         * c-lex.c (yylex): Remove unused variable `bytes'.
1112
1113         * flow.c (print_rtl_with_bb): Cast the return value of alloca.
1114
1115         * function.c (assign_parms): Wrap variable `varargs_setup' in
1116         macro SETUP_INCOMING_VARARGS.
1117         (thread_prologue_and_epilogue_insns): Mark parameter `f' with
1118         ATTRIBUTE_UNUSED.
1119
1120         * local-alloc.c (no_equiv): Likewise for parameter `store'.
1121
1122         * sched.c (schedule_insns): Remove unused variables `insn' and `next'.
1123
1124         * tlink.c (symbol_hash_newfunc, symbol_hash_lookup,
1125         file_hash_newfunc, file_hash_lookup, demangled_hash_newfunc,
1126         demangled_hash_lookup, symbol_push, symbol_pop, file_push,
1127         file_pop, tlink_init, tlink_execute, frob_extension,
1128         obstack_fgets, tfgets, pfgets, freadsym, read_repo_file,
1129         maybe_tweak, recompile_files, read_repo_files,
1130         demangle_new_symbols, scan_linker_output): Add static prototype.
1131
1132         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc):
1133         Make the third argument a `hash_table_key'.
1134
1135         * toplev.c (debug_start_source_file): Mark parameter `filename'
1136         with ATTRIBUTE_UNUSED.
1137
1138 Sun Mar 21 02:28:21 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1139
1140         * tm.texi (Varargs): Don't split argument of @item across lines.
1141
1142         * invoke.texi: Fix use of @item vs @itemx.
1143
1144 Sun Mar 21 09:59:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1145
1146         * config/c4x/c4x.h (TARGET_SWITCHES): Add null description to
1147         default case.
1148
1149 Sat Mar 20 23:33:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1150
1151         * loop.c (check_dbra_loop): Fix debug message.
1152
1153 Sat Mar 20 15:54:35 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1154
1155         * config/c4x/c4x.md (decrement_and_branch_on_count): Emit rptb_end
1156         pattern instead of decrement_and_branch_until_zero pattern.
1157
1158 Sat Mar 20 11:39:58 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1159
1160         * config/c4x/c4x.h (TARGET_SWITCHES): Add documentation.
1161         * config/c4x/c4x.h (TARGET_OPTIONS): Add documentation.
1162
1163 Fre Mar 19 23:26:29 1999  Martin von Löwis  <loewis@informatik.hu-berlin.de>
1164
1165         * expr.c (expand_expr): Handle ERROR_MARK much earlier.
1166
1167 Fri Mar 19 15:28:38 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1168
1169         * cccp.c (create_definition): Cast to U_CHAR* when assigning to one.
1170
1171         * cppfiles.c (read_and_prescan): Likewise.
1172         Start a #define in column 0.
1173
1174         * cpplib.c (cpp_define): Cast to U_CHAR* when assigning to one.
1175         (cpp_push_buffer): Likewise for cpp_buffer*.
1176         (do_include): Change the type of `fbeg' and `fend' to unsigned char*.
1177         (do_endif): Cast to char* when assigning to one.
1178         (do_assert): Likewise.
1179         (do_unassert): Likewise.
1180         (cpp_read_check_assertion): Change the type of `name' to U_CHAR*.
1181         Don't do unnecessary cast to char* anymore.
1182
1183         * genrecog.c (make_insn_sequence): Cast to char** when assigning
1184         to one.  Cast the first argument of bzero to PTR.
1185
1186         * loop.c (strength_reduce): Remove unused variable `note'.
1187
1188         * reload1.c (new_insn_chain): Cast to struct insn_chain* when
1189         assigning to one.
1190
1191         * rtl.c (copy_rtx): Use memcpy instead of bcopy.
1192
1193 Fri Mar 19 11:19:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1194
1195         * calls.c (initialize_argument_information): Mark parameters
1196         `num_actuals' and `n_named_args' with ATTRIBUTE_UNUSED.
1197
1198         * dbxout.c (dbxout_start_new_source_file): Likewise for parameter
1199         `filename'.
1200         (dbxout_finish): Likewise for parameters `file' and `filename'.
1201         (dbxout_prepare_symbol): Likewise for parameter `decl'.
1202         (dbxout_begin_function): Likewise.
1203
1204         * explow.c (hard_function_value): Likewise for parameter `func'.
1205
1206         * function.c (locate_and_pad_parm): Likewise for parameter `fndecl'.
1207         
1208         * expmed.c (expand_divmod): Omit unused argument to `expand_abs'.
1209         * expr.c (expand_expr): Likewise.
1210         * expr.h (expand_abs): Delete unused argument from prototype.
1211         * optabs.c (expand_abs): Remove unused parameter `unsignedp'.
1212
1213         * sdbout.c (sdbout_init): Mark parameter `syms' with ATTRIBUTE_UNUSED.
1214         (sdbout_end_block): Likewise for parameter `n'.
1215         
1216         * toplev.c (debug_define): Likewise for parameters `lineno' and
1217         `buffer'.
1218         (debug_undef): Likewise.
1219         
1220         * varasm.c (named_section): Likewise for parameter 'reloc'.
1221         (assemble_external): Likewise for parameter `decl'.
1222         (assemble_alias): Likewise for parameter `target'.
1223         
1224 Fri Mar 19 01:54:30 1999  Theodore Papadopoulo  <Theodore.Papadopoulo@sophia.inria.fr>
1225
1226         * toplev.c (read_integral_parameter): Constify.  Better control of
1227         error messages.
1228         (main): Use read_integral_parameter to set optimize, id_clash_len,
1229         larger_than_size, and the debugging level.
1230         * toplev.h (read_integral_parameter): Update prototype.
1231
1232 Fri Mar 19 01:42:05 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
1233
1234         * system.h: Use putc_unlocked, fputc_unlocked, and
1235         fputs_unlocked only if putc_unlocked has a prototype already.
1236         Prototype fputs_unlocked if necessary.
1237         * configure.in: Check for prototypes of putc_unlocked and
1238         fputs_unlocked. 
1239         * acconfig.h: Updated.
1240         * config.in, configure: Rebuilt.
1241
1242 Fri Mar 19 02:45:12 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
1243
1244         * Makefile.in (INTL_TARGETS): new macro
1245         ($(INTL_TARGETS)): depend on generated sources; drop dependencies
1246         on cp/parse.c and objc/objc-parse.c
1247         ($(srcdir)/cp/parse.c): move to cp/Make-lang.in
1248         * objc/Make-lang.in ($(INTL_TARGETS)): depend on objc/objc-parse.c 
1249
1250 Thu Mar 18 22:28:53 1999  Jeffrey A Law  (law@cygnus.com)
1251
1252         * i860.h (TARGET_SWITCHES): Add documentation.
1253         * i860/paragon.h (TARGET_SWITCHES): Add documentation.
1254         * i370.h (TARGET_SWITCHES): Add documentation.
1255         * fx80.h (TARGET_SWITCHES): Add documentation.
1256         * elxsi.h (TARGET_SWITCHES): Add documentation.
1257         * clipper.h (TARGET_SWITCHES): Add documentation.
1258         * 1750a.h (TARGET_SWITCHES): Add documentation.
1259         * pa.h (TARGET_SWITCHES): Add documentation.
1260         (TARGET_OPTIONS): Likewise.
1261         * mn10300.h (TARGET_SWITCHES): Add documentation.
1262         * h8300.h (TARGET_SWITCHES): Add documentation.
1263
1264 Thu Mar 18 15:58:26 1999  Nick Clifton  <nickc@cygnus.com>
1265
1266         * loop.c (strength_reduce): Do not perform pseudo replacements
1267         if the loop contains volatile memory references.
1268
1269 Thu Mar 18 19:09:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1270
1271         * reload.c (find_reloads_toplev): When processing X recursively,
1272         don't alter it destructively except by filling in constants.
1273
1274 Thu Mar 18 10:14:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1275
1276         * cccp.c (default_include): Initialize structure memebers.
1277         (pass_thru_directive): Change the type of 'keyword_length' to int.
1278         (main): Cast `bindtextdomain' and `textdomain' to (void).
1279
1280         * collect2.c (main): Likewise.
1281
1282         * cppmain.c (main): Likewise.
1283
1284         * gcc.c (main): Likewise.
1285
1286         * gcov.c (main): Likewise.
1287
1288         * protoize.c (main): Likewise.
1289
1290         * toplev.c (main): Likewise.
1291
1292 1999-03-18  Gavin Romig-Koch  <gavin@cygnus.com>
1293
1294         * config/mips/mips.c (mips_explicit_type_size_string): Correct
1295        its type.
1296
1297 Thu Mar 18 01:24:25 1999  Jeffrey A Law  (law@cygnus.com)
1298
1299         * configure.in: Use "exit 1", not "exit (1)".
1300         * configure: Rebuilt.
1301
1302 Wed Mar 17 23:17:42 1999  Mark Kettenis  <kettenis@gnu.org>
1303
1304         * config/t-gnu (SYSTEM_HEADER_DIR): New variable.  Set to
1305         `/include' in order to find the system's limits.h.
1306
1307 Wed Mar 17 23:00:18 1999  Robert Lipe <robertlipe@usa.net>
1308
1309         * fixinc/fixincl.c: Include auto-host.h instead of config.h
1310         * fixinc/procopen.c: Likewise.
1311         * fixinc/regex.c: Likewise.
1312         * fixinc/server.c: Likewise.
1313
1314 Wed Mar 17 22:46:13 1999  Mark Elbrecht  <snowball3@usa.net.
1315
1316         * config/i386/go32.h: Delete.
1317         * config/i386/djgpp.h: New. Renamed from go32.h.
1318         Added -DDJGPP=2 to CPP_PREDEFINES.
1319         * config/i386/go32-rtems.h: Delete.
1320         * config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h.
1321         Added -DDJGPP=2 to CPP_PREDEFINES.
1322         * config/i386/xm-go32.h: Delete.
1323         * config/i386/xm-djgpp.h: New. Renamed from xm-go32.h.
1324         * config/i386/x-go32: Delete.
1325         * config/i386/x-djgpp: New. Renamed from x-go32.
1326         * config/i386/t-go32: Delete.
1327         * config/i386/t-djgpp: New. Renamed from t-go32.
1328         * configure.in(pc-msdosdjgpp): Set xm_file to i386/xm-djgpp.h.
1329         Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp.
1330         Set xmake_file to i386/x-djgpp.
1331         (*-go32-msdos, *-go32*): Remove entries.  Warn that GO32/DJGPP V1.X
1332         is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be
1333         used instead.
1334         * configure: Rebuilt.
1335
1336         * gcc.c (process_command): Dump link_command_spec too.
1337
1338 Wed Mar 17 20:38:08 1999  Jerry Quinn <jquinn@nortelnetworks.com>
1339                           Jeff Law <law@cygnus.com>
1340
1341         * pa.md: Add real PA8000 scheduling information.
1342
1343         * pa.h (processor_type):  Add PROCESSOR_8000 symbol.
1344         (ISSUE_RATE):  Revamp, including PA8000 support.
1345         * pa.c (override_options):  Add 8000 as -mschedule= option.
1346         Do not call strcmp if pa_cpu_string is null.
1347         * pa.md (attr cpu):  Add 8000.
1348         * invoke.texi: Add documentation for PA8000 scheduling.
1349         
1350 Wed Mar 17 18:20:24 1999  David S. Miller  <davem@redhat.com>
1351
1352         * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
1353         Add descriptions.
1354         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
1355         * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise.
1356
1357 Wed Mar 17 14:51:19 1999  Richard Henderson  <rth@cygnus.com>
1358
1359         * flow.c (compute_immediate_dominators): New function.
1360         * basic-block.h (compute_immediate_dominators): Declare it.
1361
1362         * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes
1363         in FP regs.
1364         (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs.
1365
1366 Wed Mar 17 14:41:41 1999  Nick Clifton  <nickc@cygnus.com>
1367
1368         * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile
1369         time warning.   
1370         * config/arm/arm.md: Fix various compile time warnings.
1371         * config/arm/arm.h: Fix various compile time warnings.  Add
1372         function prototypes.
1373         * config/arm/arm.c: Fix various compile time warnings.
1374         (arm_override_options): Reorganise to seperate tuning from
1375         targetting.
1376         (bit_count): New function: Return a count of the number of bits
1377         set in a word.
1378
1379 Wed Mar 17 21:29:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1380
1381         * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
1382         things that were eliminated.
1383
1384 Wed Mar 17 12:16:26 1999  Richard Henderson  <rth@cygnus.com>
1385
1386         * function.c (fixup_var_refs_1): First try moving the expression
1387         directly into a register.  Don't separate cc0 setter and user.
1388
1389 Wed Mar 17 11:20:29 1999  Dave Brolley  <brolley@cygnus.com>
1390
1391         * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already.
1392
1393 Wed Mar 17 09:25:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1394
1395         * c-lex.c: Don't include setjmp.h.
1396         (parse_float): New static function.
1397         (pf_args): New struct.
1398         (yylex): Use them in call to `do_float_handler'.
1399
1400 1999-03-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1401
1402         * cexp.y (yyerror): Call verror to get a usefull error message.
1403         * cexp.c: Rebuilt.
1404
1405         * .gdbinit: Move command to put breakpoint at abort to end of file
1406         so that gdb does not bail out early.
1407
1408 Tue Mar 16 15:30:19 1999  Nick Clifton  <nickc@cygnus.com>
1409
1410         * rtl.h: Rename prototype for free_bb_memory to free_bb_mem. 
1411
1412 Tue Mar 16 23:40:09 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1413
1414         * sh.md (movsi_i): Move t/r alternative after r/rI alternative.
1415
1416 Tue Mar 16 13:44:50 1999  Jim Wilson  <wilson@cygnus.com>
1417
1418         * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3):
1419         Delete emit_library_call_value declaration.
1420
1421 1999-03-16 16:06 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1422
1423         * cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
1424         (which cannot otherwise appear in the processed buffer) and
1425         move it out of tokens that it appears in the middle of.
1426         Improve performance.
1427         (find_position): New function.
1428
1429         * cpplib.c: \r (one character) indicates backslash
1430         newline, not \\\n (two characters).  It cannot appear in the
1431         middle of a token.  Call CPP_BUMP_LINE (pfile) whenever
1432         parsing moves past \n or \r.  Increment pfile->lineno whenever
1433         a \n is placed into token_buffer.  Only one mark can exist at
1434         a time, and CPP_BUMP_LINE must not be used while it is
1435         active.  It is automatically cleared by cpp_pop_buffer and
1436         parse_goto_mark.  \r is not in is_hor_space or is_space.
1437
1438         (NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
1439         update_position, count_newlines, parse_move_mark): Removed.
1440         (parse_string, copy_comment): New functions.
1441         (parse_name): Returns void.
1442         (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
1443         one argument, a cpp_reader *.  Change for new marking scheme.
1444         (skip_comment): Handle CHILL line comments too.  Second
1445         argument is now first character of comment marker; all callers
1446         changed.  Issue error for unterminated block comment here.
1447         (cpp_skip_hspace): Recognize CHILL comments.
1448         (copy_rest_of_line): Likewise.  Call skip_comment and
1449         parse_string directly, don't go through cpp_get_token.  Emit
1450         "/**/" for block comments if -traditional (create_definition
1451         needs this).
1452         (do_define): Don't play with put_out_comments.
1453         (cpp_push_buffer): Initialize ->mark to -1.
1454         (cpp_buf_line_and_col): Just read out the values in the buffer
1455         structure.
1456         (output_line_command): Use cpp_buf_line_and_col.  Fix
1457         formatting.  Remove stale code.
1458         (cpp_get_token): Break out string parsing code to
1459         parse_string.  Use skip_comment for CHILL comments too.  Use
1460         copy_comment for put_out_comments instead of dinking with
1461         marks.  Remove stale code.  Don't call output_line_command
1462         unless it's necessary.
1463
1464         * cpplib.h (parse_marker): Removed.
1465         (struct cpp_buffer): line_base is now a unsigned char *; add
1466         `mark' [long], remove `marks' [struct parse_marker *].
1467         (parse_set_mark, parse_clear_mark, parse_goto_mark): Update
1468         prototypes.
1469         (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros.
1470         * cppinit.c (is_hor_space, is_space): '\r' is not considered
1471         whitespace.
1472         * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
1473         SKIP_WHITE_SPACE.
1474         * cpphash.c (macarg): Disable line commands while expanding.
1475
1476 Tue Mar 16 11:30:19 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1477
1478         * c-lex.c (yylex) : Remove warning for integer literals being
1479         larger than the largest target int.  Add warning for integer
1480         literal being larger than than its choosen type.
1481
1482 Tue Mar 16 10:53:17 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1483
1484         * invoke.texi: Add -mlong32 documentation.
1485         * config/mips/mips.h (mips_explicit_type_size_string): New.
1486         (TARGET_SWITCHES): Add 'long32'.
1487         (TARGET_OPTIONS): Add 'explicit-type-size'.
1488         (CC1_SPECS): Set -mexplicit-type-size.
1489         (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'.
1490         * config/mips/abi64.h (LONG_MAX_SPEC): Same.  Add 'mabi=32'.
1491         * config/mips/mips.c (mips_explicit_type_size_string): New.
1492         (override_options): Use it.
1493         * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size.
1494
1495         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): 
1496         Pointer size now depends on both size longs and size of GP
1497         registers.
1498
1499 Tue Mar 16 10:22:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1500
1501         * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP,
1502         dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
1503         * config/mips/mips.c (override_options): Allow -mlong64 and
1504         -mint64 with -mips2 or less.
1505         * config/mips/mips.h (MASK_LONG64): Fix comment.
1506         (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
1507         (Pmode): Make Pmode the smaller of longs or gp registers.
1508         * invoke.texi: Note the new size for pointers.
1509
1510 Mon Mar 15 22:45:25 1999  David Edelsohn  <edelsohn@gnu.org>
1511
1512         * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754
1513         bit-pattern directly.
1514         (ASM_OUTPUT_REG_{PUSH,POP}): Delete.
1515         * rs6000.c (first_reg_to_save): If profiling and context needed,
1516         allocate a reg to save static chain for all ABIs.  For AIX
1517         profiling, calculate parameter registers to save based on need.
1518         (output_function_profiler): Save and restore static chain around
1519         profile call for all ABIs. 
1520
1521 1999-03-15 21:39 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1522
1523         * cppinit.c: Instead of one pending list, keep separate lists
1524         for each category of pending option: -D/-U, -A, -include,
1525         -imacros.  Move the four partial include-path lists into the
1526         pending block.  Use head and tail pointers so we don't ever
1527         have to reverse the lists.
1528
1529         (cpp_start_read): Break out blocks of code to their own
1530         functions: install_predefs and initialize_dependency_output.
1531         Use path_include for C_INCLUDE_PATH and friends as well as
1532         CPATH.  Remove include_defaults gunk.  Warn about the
1533         combination of -lang-chill and -trigraphs.  Optimize string
1534         bashing.  Walk each pending list once, deallocating as we go.
1535
1536         (append_include_chain): Brought over from cppfiles.c.  Mark
1537         dirs as system include dirs if and only if appending to
1538         system include path. If opts->verbose, print a notice when a
1539         dir is dropped from the include path because it doesn't
1540         exist.  Fix memory leak: this function is not supposed to copy
1541         its DIR argument.
1542
1543         (nreverse_pending, push_pending): Removed.
1544         (APPEND): New macro for adding to pending lists.
1545         (path_include): Can now add to any partial include path.
1546         (base_name): Bring over from cccp.c.
1547         (cpp_options_init): Allocate the pending block.
1548         (cpp_handle_option): Add --version.  Exit after --help.  Fix
1549         formatting.  Order -ifoo options by frequency of usage.
1550         (install_predefs): New function, simplified version of code
1551         that was in cpp_start_read.
1552         (initialize_dependency_output): Likewise.  Understand OBJECT_SUFFIX.
1553
1554         * cppfiles.c (simplify_pathname): Export.
1555         (merge_include_chains):  Don't nreverse the lists.  If
1556         opts->verbose, print a notice when a duplicate dir is detected
1557         and dropped from the include path.
1558         (finclude): Fix excessive cleverness in setting
1559         fp->system_header_p.
1560         (actual_directory): Set x->sysp from
1561         CPP_BUFFER (pfile)->system_header_p so that one system header
1562         may include another with "".
1563         (deps_output): Fix double adjustment of deps_size which would
1564         cause all dependencies after the first two lines to be lost.
1565
1566         * cpplib.c (cpp_unassert): New function.
1567         * cpplib.h: Lay out struct cpp_pending here.  Adjust
1568         prototypes.  Add include_prefix_len to struct cpp_options.
1569
1570 Mon Mar 15 16:01:52 1999  Jim Wilson  <wilson@cygnus.com>
1571
1572         * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving
1573         from HI/LO/HILO/MD into general registers the same as for one
1574         of moving general registers to HI/LO/HILO/MD.
1575
1576 Mon Mar 15 12:39:38 1999  Nick Clifton  <nickc@cygnus.com>
1577
1578         * config/m32r/m32r.c (init_idents): New function.  Initialise
1579         static tree nodes for m32r specific attribute identifiers.  Remove
1580         leading and trailing double underscores from the attribute names.
1581         (m32r_valid_machine_decl_attribute): Call init_idents.
1582         (m32r_encode_section_info): Call init_idents.
1583
1584 Mon Mar 15 10:20:20 1999  Mark Mitchell  <mark@markmitchell.com>
1585
1586         * reload.c (find_reloads): Add a REG_LABEL note if we substitute a
1587         LABEL_REF for something else.
1588
1589 Mon Mar 15 08:24:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1590
1591         * fold-const.c (exact_real_inverse): Move variable `float_error'
1592         into the scope where it is used.
1593         (const_binop_1): New static function.
1594         (cb_args): New struct.
1595         (const_binop): Use them in call to `do_float_handler'.
1596         (fold_convert_1): New static function.
1597         (fc_args): New struct.
1598         (fold_convert): Use them in call to `do_float_handler'.
1599
1600 Mon Mar 15 22:50:18 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1601
1602         * rtlanal.c (auto_inc_p): New function.
1603         * rtl.h (auto_inc_p): Prototype it.
1604         * reload1.c (add_auto_inc_notes): New function.
1605         (reload): Strip REG_INC notes and call add_auto_inc_notes
1606         for each insn to restore them correctly.
1607
1608 1999-03-15  Manfred Hollstein  <manfred@s-direktnet.de>
1609
1610         * fixinc/Makefile.in (procopen.o): List the actual
1611         dependencies.
1612
1613 Sun Mar 14 16:22:10 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1614
1615         * cse.c (check_fold_consts): New static function.
1616         (cfc_args): New struct.
1617         (simplify_relational_operation): Use them in call to
1618         `do_float_handler'.
1619         
1620         * toplev.c (do_float_handler): New function to wrap calls to
1621         setjmp/set_float_handler.
1622
1623         * toplev.h (do_float_handler): Add extern prototype.
1624
1625         * tree.c (build_real_from_int_cst_1): New static function.
1626         (brfic_args): New struct.
1627         (build_real_from_int_cst): Use them in call to
1628         `do_float_handler'.
1629
1630 Sun Mar 14 01:15:06 PST 1999 Jeff Law  (law@cygnus.com)
1631
1632         * version.c: Bump for snapshot.
1633
1634 Sat Mar 13 17:37:18 1999  Richard Henderson  <rth@cygnus.com>
1635
1636         * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
1637
1638 Sat Mar 13 11:36:16 1999  Richard Earnshaw (rearnsha@arm.com)
1639
1640         * arm.c (arm_split_constant): Don't try to force a constant to
1641         memory after arm_reorg has run.
1642         (after_arm_reorg): New static variable.
1643         (arm_reorg): Set it.
1644         (output_func_epilogue): Clear it.
1645
1646 Fri Mar 12 20:26:32 1999  David Edelsohn  <edelsohn@gnu.org>
1647
1648         * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none.
1649         * configure: Rebuilt.
1650
1651 Fri Mar 12 20:45:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1652
1653         * unroll.c (loop_iterations): Don't return a final value for EQ
1654         comparison loops.
1655
1656 Fri Mar 12 12:35:01 1999  Jim Wilson  <wilson@cygnus.com>
1657
1658         * reload1.c (calculate_needs_all_insns): When ignore equivalence
1659         setting insn, clear need_elim, need_reload, and need_operand_change.
1660
1661 Fri Mar 12 07:54:43 1999  Bruce Korb <korb@datadesign.com>
1662
1663         * fixinc/fixinc.*: Some changes from the fixincl-branch
1664         were not applied (??!!).  Corrected.
1665
1666         * fixinc/Makefile.in: same thing.
1667
1668 Fri Mar 12 00:51:43 1999  Jeffrey A Law  (law@cygnus.com)
1669
1670         * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than
1671         MAX_INTEGER_COMPUTATION_MODE.
1672
1673 Thu Mar 11 14:00:58 1999  Richard Henderson  <rth@cygnus.com>
1674
1675         * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
1676         (MODES_TIEABLE_P): Update.
1677
1678         * alpha.md (ev5_e0): Conflict loads and stores.
1679
1680 Thu Mar 11 13:55:52 1999  Richard Henderson  <rth@cygnus.com>
1681
1682         * machmode.h (smallest_mode_for_size): Prototype.
1683         * stor-layout.c (smallest_mode_for_size): Remove static.
1684
1685 Thu Mar 11 21:25:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1686
1687         * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv
1688         conversion if we don't know the lifetime.
1689
1690 Thu Mar 11 20:37:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1691
1692         * reload.1c (delete_address_reloads_1):  Check for reloads of
1693         CURRENT_INSN even if it sets DST.
1694
1695 Thu Mar 11 10:29:50 1999  Jason Merrill  <jason@yorick.cygnus.com>
1696
1697         * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset.
1698         (print_die, size_of_die, value_format, output_die): Adjust.
1699
1700 Thu Mar 11 10:27:42 1999  Robert Lipe  <robertlipe@usa.net>
1701
1702         * dwarf2out.c (TEXT_SECTION_LAABEL, DEBUG_LINE_SECTION_LABEL,
1703         DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL, 
1704         text_section_laabel, debug_line_section_label,
1705         debug_info_section_label, abbrev_section_label): New.
1706         (output_compilation_unit_header):  Emit label associated
1707         with section instead of section name itself.
1708         (out_pubnames, output_aranges, output_line_info, 
1709         dwarf2out_finish): Likewise.
1710         (dwarf2out_init): Build internal label names for sections
1711         from static labels.
1712
1713 Thu Mar 11 17:28:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1714
1715         * sh.md (mulsi3): End mul.l sequence with a no-op move.
1716
1717 Thu Mar 11 08:52:02 1999  Bruce Korb <korb@datadesign.com>
1718
1719         * Makefile.in: activated fixinc/mkfixinc.sh
1720         * configure.in: activated fixinc/mkfixinc.sh
1721
1722 Thu Mar 11 01:38:02 1999  Mumit Khan  <khan@xraylith.wisc.edu>
1723
1724         * cppfiles.c (INO_T_EQ): Handle UWIN.
1725
1726         * c-common.c (decl_attributes): Flag unrecognized attribute
1727         functions as warnings instead of as errors.
1728
1729         Support for i386-pc-uwin.
1730         * i386/uwin.h: New file.
1731         * i386/xm-uwin.h: New file.
1732         * i386/t-uwin: New file.
1733         * i386/uwin.asm: New file.
1734         * configure.in (i[3456]86-*-uwin*): Define.
1735         Add Workaround for vfork bug when hosted on uwin.
1736         * configure: Regenerate.
1737
1738         * cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
1739         (absolute_filename): UWIN uses POSIX pathnames only.
1740         * libgcc2.c (getpagesize): Do not define for UWIN.
1741         (mprotect): Likewise.
1742         * protoize.c (dirent.h): Conditionally include.
1743         (fputc): Prototype only if it's not a macro.
1744
1745 Wed Mar 10 02:49:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
1746
1747         * configure.in: Remove init_priority stuff.
1748
1749 1999-03-11  Colin Smith <colin@wrs.com>
1750
1751         * sdbout.c (plain_type_1): Make boolean types work better with sdb.
1752
1753 Thu Mar 11 00:20:52 1999  Alexandre Oliva <oliva@dcc.unicamp.br>
1754
1755         * gcc.texi: Update bug reporting instructions to match
1756         current ezmlm list reality.
1757
1758 Wed Mar 10 23:11:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1759
1760         * gcc.c (print_file_name, print_prog_name, spec_machine,
1761         read_specs, set_spec, lookup_compiler, build_search_list,
1762         putenv_from_prefixes, find_a_file, record_temp_file,
1763         delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file,
1764         is_directory, validate_switches, used_arg, default_arg,
1765         pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error,
1766         notice, add_preprocessor_option, add_assembler_option,
1767         add_linker_option, process_command, execute,
1768         unused_prefix_warnings, clear_args, fatal_error,
1769         lang_specific_driver, user_specs, compiler, link_command_spec,
1770         option_map, translate_options, make_temp_file, temp_name,
1771         programname, path_prefix, machine_suffix, just_machine_suffix,
1772         gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1,
1773         md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
1774         standard_startfile_prefix, standard_startfile_prefix_1,
1775         standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
1776         multilib_dir, temp_filename, temp_file, command, switchstr,
1777         infile, outfiles, input_filename, input_basename, input_suffix,
1778         check_live_switch, main): Qualify a char* with the `const' keyword.
1779
1780 Wed Mar 10 20:28:29 1999  Jeffrey A Law  (law@cygnus.com)
1781
1782         * lcm.c: New file.
1783         * Makefile.in (OBJS): Add lcm.o
1784         (lcm.o): Add dependencies.
1785
1786         * gcse.c (compute_pre_local_properties): Delete.
1787         (compute_pre_data): Use compute_local_properties instead of
1788         compute_pre_local_properties.
1789
1790         * gcse.c: More comments, whitespace and similar fixes.
1791         (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete.
1792         (dump_pre_data, compute_cprop_local_properties): Likewise.
1793         (one_classic_gcse_pass): Lose unused argument.  All callers changed.
1794         (compute_hash_table, compute_expr_hash_table): Likewise.
1795         (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise.
1796         (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS.
1797         All callers changed.  Only alter jumps if ALTER_JUMPS is nonzero.
1798         Lose unused argument.
1799         (gcse_main): Always run a cprop pass after finishing global cse.
1800         (compute_local_properties): New function.
1801         (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen.
1802         (compute_cprop_data): Use compute_local_properties.
1803
1804         * gcse.c: Update various comments.
1805         (current_function_calls_longjmp): Delete declaration.
1806
1807         * gcse.c (run_jump_opt_after_gcse): New variable.
1808         (gcse_main): Returns an integer.
1809         (hash_scan_set): Record initializations from CONST_DOUBLEs too.
1810         (try_replace_reg): Update some comments.
1811         (cprop_insn): Allow propagation into some JUMP_INSNs too.
1812         * rtl.h (gcse_main): Update prototype.
1813         * toplev.c (rest_of_compilation): If gcse_main returns nonzero,
1814         then run a jump optimization pass.
1815         * jump.c (delete_barrier_successors): Delete nop jumps too.
1816
1817 Wed Mar 10 19:04:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1818
1819         * sh.c (fp_arith_reg_operand): Actually test if reg is suitable
1820         for FP arithmetic.  Changed caller.
1821         * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand.
1822
1823 Wed Mar 10 18:56:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1824
1825         * reload1.c (choose_reload_regs): When inheriting from the frame
1826         pointer, don't clobber it.
1827
1828 Wed Mar 10 08:01:52 1999  Bruce Korb <korb@datadesign.com>
1829
1830         * fixinc/fixinc.*: Resync-ed with the files in this
1831         directory.
1832
1833         * fixinc/mkfixinc.sh: the machine case elements were
1834         out-of-order.  (the ix86-*-linux-gnu* entry needed to
1835         be earlier).
1836
1837 Wed Mar 10 00:01:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1838
1839         * reload1.c (reload_combine_note_store): Fix calculation of number
1840         of affected registers.
1841
1842 Tue Mar  9 15:48:15 1999  Richard Henderson  <rth@cygnus.com>
1843
1844         * flow.c (tidy_fallthru_edge): Be more careful finding the last
1845         BARRIER of a list.  Delete the cc0 setter as well as a cond jump.
1846
1847 Tue Mar  9 15:26:02 1999  Hans-Peter Nilsson  <hp@bitrange.com>
1848
1849         * i386.md (ashlsi3 splitter): Fix typo in last change.
1850
1851 Tue Mar  9 11:35:20 1999  Richard Henderson  <rth@cygnus.com>
1852
1853         * reg-stack.c (stack_reg_life_analysis): Use returnjump_p
1854         instead of an explicit test for RETURN.
1855
1856 Tue Mar  9 09:33:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1857
1858         * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H).
1859
1860         * toplev.c: Include basic-block.h.
1861
1862 Tue Mar  9 02:08:17 1999  Jeffrey A Law  (law@cygnus.com)
1863
1864         * calls.c (load_register_parameters): New function.
1865         (expand_call): Use it.
1866
1867         * calls.c (expand_call): Slightly reorganize code.
1868
1869         * calls.c (compute_argument_addresses): New function.
1870         (rtx_for_function_call): New function.
1871         (expand_call): Use them.
1872
1873         * i386.md (zero_extendhisi2): Split into an expander and anonymous
1874         pattern.  Add new anonymous pattern for use when optimizing for
1875         size or for the PPro.
1876         (zero_extendqihi2, zero_extendqisi2): Likewise.
1877
1878 Mon Mar  8 23:43:47 1999  Richard Henderson  <rth@cygnus.com>
1879
1880         * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber
1881         dependancies to sets in the non-hard-reg case too.
1882
1883 Mon Mar  8 18:55:21 1999  Marc Espie <espie@cvs.openbsd.org>
1884
1885         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define.
1886
1887 Mon Mar  8 16:04:44 1999  Jim Wilson  <wilson@cygnus.com>
1888
1889         * local-alloc.c (combine_regs): Don't combine if we have a hard reg
1890         for which CLASS_LIKELY_SPILLED_P is true.
1891
1892         * unroll.c (loop_iterations): Only call loop_find_equiv_value if we
1893         have a REG or SUBREG.
1894
1895 Mon Mar  8 15:27:42 1999  Jeffrey A Law  (law@cygnus.com)
1896
1897         * i386.md (ashlsi3): Revise comments.  Provide new anonymous
1898         pattern for Pentium and PPro/PII.  Reverse constraints in 
1899         generic ashlsi3 anonymous pattern.
1900
1901         * calls.c (initialize_argument_info): Accept a pointer to 
1902         CUMULATIVE_ARGS.
1903         (expand_call): Pass the address of CUMULATIVE_ARGS.
1904
1905         * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0.
1906
1907         * mn10300.h (CASE_DROPS_THROUGH): Delete.
1908         * mn10200.h (CASE_DROPS_THROUGH): Delete.
1909         * h8300.h (CASE_DROPS_THROUGH): Delete.
1910
1911         * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
1912         to also delete the cc0 setter when deleting a conditional branch
1913         to the next block.
1914
1915 Mon Mar  8 18:47:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1916
1917         * regmove.c (copy_src_to_dest): New argument max_old_uid.
1918
1919 Mon Mar  8 08:23:00 1999  Bruce Korb <korb@datadesign.com>
1920
1921         * ChangeLog: merged entries from fixincl-branch
1922
1923 Sun Mar  7 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
1924
1925         * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
1926         (print_exp): Special case addition of a constant.
1927         (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.
1928
1929 Sun Mar  7 11:21:02 1999  Richard Henderson  <rth@cygnus.com>
1930
1931         * haifa-sched.c (reg_last_clobbers): New.
1932         (reg_pending_clobbers, bb_reg_last_clobbers): New.
1933         (compute_block_backward_dependences): Allocate memory for them.
1934         (schedule_region): Likewise.
1935         (sched_analyze_1): Clobbers don't interfere with one another.
1936         They do interfere with sets ...
1937         (sched_analyze_2): ... and uses.
1938         (sched_analyze): Likewise.
1939         (sched_analyze_insn): Update reg_last_clobbers appropriately.
1940
1941 Sun Mar  7 08:30:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1942
1943         * gmon-sol2.c: Include config.h and system.h.  Don't redundantly
1944         include system header files.
1945         (sccsid): Remove.
1946         (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype.
1947         (_mcleanup): Add the `const' keyword to a char*.
1948         (internal_mcount): Declare `etext' as a char[] not a function.
1949         Cast `etext' to char* when calling `monstartup'.
1950
1951         * sparc.c (frame_base_name, save_regs, restore_regs,
1952         build_big_number, sparc_cmodel_string, sparc_align_loops_string,
1953         sparc_align_jumps_string, sparc_align_funcs_string, code_model,
1954         cpu_default, cpu_table, output_function_prologue,
1955         output_function_epilogue, output_return,
1956         sparc_flat_output_function_prologue, ultra_code_names,
1957         sparc_flat_output_function_epilogue): Constify a char*.
1958         (hypersparc_adjust_cost): Add a default case in a switch.
1959
1960         * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS,
1961         sparc_cpu_select, sparc_align_loops_string,
1962         sparc_align_jumps_string, sparc_align_funcs_string,
1963         output_return): Constify a char*.
1964
1965         * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT
1966         so that we check "== 32", instead of "!= 64".  Cast a value to
1967         HOST_WIDE_INT when comparing against one.  Hide the declaration
1968         for variable `chain'.
1969
1970 Sun Mar  7 08:05:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1971
1972         * system.h (const, inline): Move the stage2 handling of these
1973         keywords-as-macros from here...
1974
1975         * gansidecl.h (const, inline): ...to here.
1976
1977 Sun Mar  7 02:44:15 1999  Richard Henderson  <rth@cygnus.com>
1978
1979         * recog.c (push_operand, pop_operand): VOIDmode needn't match modes.
1980
1981 Sun Mar  7 01:58:47 1999  Richard Henderson  <rth@cygnus.com>
1982
1983         * cse.c (canon_hash): Never reject hard regs in CCmode.
1984
1985 Sun Mar 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1986
1987         * version.c: Bump for snapshot.
1988
1989 Sat Mar  6 17:18:44 1999  Richard Earnshaw  (rearnsha@arm.com)
1990                           Richard Henderson  <rth@cygnus.com>
1991
1992         * flow.c (make_edges): Handle casesi that jump to default branch.
1993         If CASE_DROPS_THROUGH, force fallthru to block after casesi.
1994
1995 Sat Mar  6 07:49:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1996
1997         * c-aux-info.c (data_type, affix_data_type, gen_decl, 
1998         gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
1999         Qualify a char* with the `const' keyword.
2000
2001         * c-common.c (declare_hidden_char_array, add_attribute, if_elt,
2002         declare_function_name, decl_attributes, format_char_info,
2003         check_format_info, binary_op_error): Likewise.
2004         
2005         * cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
2006
2007         * gcse.c (dump_hash_table): Likewise.
2008
2009         * integrate.c (function_cannot_inline_p): Likewise
2010
2011         * optabs.c: Include insn-config.h earlier.
2012         (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
2013         Qualify a char* with the `const' keyword.
2014         
2015         * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
2016         asctoeg, mtherr, ereal_atof): Likewise.
2017
2018         * real.h (ereal_atof): Likewise.
2019
2020         * sbitmap.c (dump_sbitmap_vector): Likewise.
2021
2022         * sbitmap.h (dump_sbitmap_vector): Likewise.
2023
2024         * stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
2025
2026         * toplev.c (rest_of_compilation): Likewise.
2027
2028         * tree.h (function_cannot_inline_p, expand_start_case): Likewise.
2029         
2030 Fri Mar  5 23:16:42 1999  David Edelsohn  <edelsohn@gnu.org>
2031
2032         * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
2033         not overwrite AIX link register save area.
2034
2035 Fri Mar  5 23:08:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2036
2037         * reload.c (find_reloads_subreg_address): Actually create the USE
2038         for the register, not the new memory location.
2039
2040 Fri Mar  5 21:41:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2041
2042         * reload1.c (emit_reload_insns): If pseudo that can't be replaced
2043         with its equivalent constant, fall back to reload_in.
2044
2045 Fri Mar  5 13:20:39 1999  Richard Henderson  <rth@cygnus.com>
2046
2047         * Makefile.in: Delete .flow2 debugging files.
2048
2049 Fri Mar  5 11:36:11 1999  Nick Clifton  <nickc@cygnus.com>
2050
2051         * config/arm/arm.c (arm_override_options): Change default target
2052         cpu selection so that enabling TARGET_APCS_32 does not override
2053         default target CPU.
2054
2055 Fri Mar  5 19:26:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2056
2057         * sh.h (SLOW_BYTE_ACCESS): Define to 1.
2058         (BOOL_TYPE_SIZE): Define.
2059
2060 Fri Mar  5 02:14:54 1999  John Wehle  (john@feith.com)
2061
2062         * function.c (assign_stack_temp_for_type): Abort
2063         if mode == Blkmode and align is less than
2064         BIGGEST_ALIGNMENT / BITS_PER_UNIT.
2065         (assign_stack_temp_for_type): Round the size parameter
2066         passed to assign_stack_local instead of size itself.
2067
2068 Thu Mar  4 15:00:35 1999  Richard Henderson  <rth@cygnus.com>
2069
2070         * flow.c (delete_unreachable_blocks): Mark blocks as they
2071         are put on to the worklist, not as they are taken off.
2072
2073 Thu Mar  4 00:05:44 1999  Jeffrey A Law  (law@cygnus.com)
2074
2075         * function.c (current_function_has_computed_jump): Remove duplicate
2076         definition.
2077
2078 Wed Mar  3 19:09:11 1999  Jim Wilson  <wilson@cygnus.com>
2079
2080         * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef.
2081         (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string.
2082
2083         * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL,
2084         MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef.
2085         (INIT_SUBTARGET_OPTABS): Define to empty.       
2086
2087 Wed Mar  3 00:00:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2088
2089         * sh.c (force_into): New function.
2090         (expand_block_move): Use it.
2091
2092 Tue Mar  2 10:39:43 1999  Nick Clifton  <nickc@cygnus.com>
2093
2094         * cccp.c (struct default_include): Add 'included' field.
2095         (main): Set 'included' field when a default include directory
2096         is added to the chain.  If -v is specified list all default
2097         include directories which do not get appended to the chain.
2098
2099 Tue Mar  2 09:24:10 1999  Nick Clifton  <nickc@cygnus.com>
2100
2101         * configure.in (gxx_include_dir): Rename to
2102         gcc_gxx_include_dir in order to prevent it being overridden by
2103         a top level Makefile.
2104         (gcc_tooldir): If $exec_prefix != $prefix then use the
2105         difference between the two as the basis for gcc_tooldir.
2106
2107         * configure: Rebuild.
2108
2109         * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir.
2110
2111 Tue Mar  2 16:45:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2112
2113         * unroll.c (copy_loop_body): Don't make extra copies of
2114         NOTE_INSN_LOOP_CONT notes.
2115
2116 Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
2117
2118         * tree.c (save_tree_status): Don't treat functions with no context
2119         as nested.
2120
2121 Tue Mar  2 09:37:05 1999  Robert Lipe  <robertlipe@usa.net>
2122
2123         * Makefile.in (MAKEINFO): Use makeinfo built from sibling
2124         tree when available.
2125
2126 Tue Mar  2 10:12:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2127
2128         * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string,
2129         alpha_fprm_string, alpha_fptm_string, alpha_mlat_string,
2130         current_function_file): Add the `const' keyword.
2131         (normal_memory_operand): Mark parameter `mode' with
2132         ATTRIBUTE_UNUSED.
2133         (alpha_expand_unaligned_load): Add a default case to a switch.
2134
2135         * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string,
2136         alpha_tp_string, alpha_mlat_string): Add the `const' keyword.
2137         (normal_memory_operand): Add prototype.
2138         
2139         * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when
2140         comparing against one.
2141
2142 Tue Mar  2 10:00:21 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2143
2144         * mips.c (abort_with_insn): Make function static, add a prototype,
2145         constify 2nd parameter and mark with ATTRIBUTE_NORETURN.
2146         (current_function_file, mips_cpu_string, mips_isa_string,
2147         mips_abi_string, mips_no_mips16_string, mips_entry_string,
2148         mips_move_1word, mips_move_2words, output_block_move, load_store,
2149         override_options, make_temp_file, mips16_fp_args): Qualify a char*
2150         with the `const' keyword.
2151
2152         * mips.h (current_function_file, mips_cpu_string, mips_isa_string,
2153         mips_abi_string, mips_entry_string, mips_no_mips16_string,
2154         mips_move_1word, mips_move_2words, output_block_move): Likewise.
2155         (abort_with_insn): Remove extern prototype.
2156
2157         * mips.md: Qualify a char* with the `const' keyword.
2158         Remove many unused variables named `label'.
2159
2160 Tue Mar  2 01:27:52 1999  H.J. Lu  (hjl@gnu.org)
2161
2162         * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
2163         variables.
2164         (install-cpp, uninstall-cpp): New targets.
2165         (install-normal): Depend on $(INSTALL_CPP).
2166         (uninstall): Depend on $(UNINSTALL_CPP).
2167         * configure.in (cpp_install_dir): New, substitute.
2168         (tmake_file): Added t-install-cpp for --enable-cpp.
2169         * configure: Rebuilt.
2170         * cpp.sh: New cpp script.
2171         * config/t-install-cpp: New target fragment.
2172
2173 Tue Mar  2 01:40:01 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2174                           Jeffrey A Law  (law@cygnus.com)
2175
2176         * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
2177         case.
2178         (cse_insn): Avoid creating a bogus REG_EQUAL note for
2179         (const (minus (label) (label)))
2180         (record_jump_cond): Fix mismatched paren in comment.
2181
2182 Tue Mar  2 01:07:12 1999  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
2183
2184         * final.c (end_final): There are 11 words in the "main header"
2185         structure, not 10.
2186
2187 Tue Mar  2 00:09:18 1999  Marc Espie <espie@cvs.openbsd.org>
2188
2189         * extend.texi: Reference __extension__ in the index.
2190
2191 Mon Mar  1 19:09:32 1999  Jim Wilson  <wilson@cygnus.com>
2192
2193         * Makefile.in (CROSS_FLOAT_H): Delete.
2194         (FLOAT_H): Use float_h_file.
2195         (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
2196         (gfloat.h): Delete.
2197         (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
2198         (mostlyclean): Delete gloat.h reference.
2199         (install-cross-rest, install-float-h-cross, stmp-headers): Update
2200         comments.
2201         * configure.in (sparcv9-*-solaris2*): Set float_format to none.
2202         (sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
2203         (float_h_file): Set from float_format.  Substitute into Makefile.in.
2204         (float_format): No longer substitute into Makefile.in.  
2205         * cross-make (FLOAT_H): Delete.
2206         * config/mips/t-cross64 (FLOAT_H): Delete.
2207         * configure: Rebuilt.
2208         
2209 Mon Mar  1 16:36:18 1999  Jeffrey A Law  (law@cygnus.com)
2210
2211         * mips.md (div_trap_normal, div_trap_mips16): Require the dependent
2212         insn to be an INSN before looking at its pattern.
2213
2214 Mon Mar  1 15:03:51 1999  Jim Wilson  <wilson@cygnus.com>
2215
2216         * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs.  Fix comments.
2217         * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
2218         HImode reg when TARGET_5200.
2219
2220 Mon Mar  1 21:44:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2221
2222         From Toshiyasu Morita:
2223         * sh.h (CACHE_LOG): SH2 has cache, too.
2224
2225 Mon Mar  1 14:23:36 1999  Catherine Moore  <clm@cygnus.com>
2226  
2227         * toplev.c (compile_file):  Disable -ffunction-sections and
2228         debugging warning if the object format is elf.
2229  
2230 Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
2231
2232         * config/h8300/h8300.c (print_operand):  Use 16 bit addressing
2233         when the data in 8-bit area and can not be addressed by 8-bit.
2234
2235 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
2236
2237         * flow.c (create_basic_block): Disregard integrated bb notes.
2238
2239 Sun Feb 28 15:57:06 1999  Richard Henderson  <rth@cygnus.com>
2240
2241         * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0.
2242
2243 Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
2244
2245         * config/i386/t-sco5gas (crti.o): New target.
2246
2247 Sun Feb 28 15:10:17 1999  David Edelsohn  <edelsohn@gnu.org>
2248
2249         * rs6000.md (elf_high, movsi_got, *movsi_got_internal,
2250         *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
2251         movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
2252         load_multiple, allocate_stack, call_indirect_aix32,
2253         call_indirect_aix64, call_value_indirect_aix32,
2254         call_value_indirect_aix64, call_indirect_nt,
2255         call_value_indirect_nt): Use gpc_reg_operand instead of
2256         register_operand. 
2257
2258 Sun Feb 28 15:10:17 1999  Michael Meissner  <meissner@cygnus.com>
2259
2260         * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
2261         *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
2262         other than cr0.
2263         * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
2264         allow andi. or andis. which always set cr0.
2265
2266 Sun Feb 28 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
2267
2268         * version.c: Bump for snapshot.
2269
2270 Sun Feb 28 02:00:38 1999  Jeffrey A Law  (law@cygnus.com)
2271
2272         * invoke.texi: Update information for PA scheduling.
2273
2274 Sat Feb 27 23:21:47 1999  Jerry Quinn <jquinn@nortelnetworks.com>
2275                           Mike Stump <mrs@wrs.com>
2276
2277         * pa.c (override_options): Change default to 7100LC
2278
2279         * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
2280         float regs before right half of float regs.
2281
2282 Sat Feb 27 22:48:38 1999  H.J. Lu  (hjl@gnu.org)
2283                           Jeffrey A Law  (law@cygnus.com)
2284
2285         * frame.h: Update some comments.
2286         * defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
2287         * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
2288         using TARGET_WEAK_ATTRIBUTE.
2289         (__do_global_dtors_aux): Check if __deregister_frame_info is
2290         zero before calling it.
2291         (__do_global_dtors): Likewise.
2292         (frame_dummy): Check if __register_frame_info is zero before
2293         calling it.
2294         (__frame_dummy): Likewise.
2295
2296 Sat Feb 27 19:18:24 1999  Jeffrey A Law  (law@cygnus.com)
2297
2298         * SERVICE: Update from the FSF.
2299
2300 Sat Feb 27 14:31:22 1999  Arturo Montes  <mitosys@colomsat.com.co>
2301
2302         * config/i386/t-sco5 (crti.o): New target.
2303         * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when 
2304         linking -shared.
2305         * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
2306
2307 Sat Feb 27 01:12:40 1999  Jeffrey A Law  (law@cygnus.com)
2308
2309         * md.texi (prologue,epilogue): Document named patterns.
2310
2311 Fri Feb 26 19:31:25 1999  Dave Love  <fx@gnu.org>
2312
2313         * md.texi, invoke.texi: Fix unterminated @xrefs.
2314
2315 Fri Feb 26 15:33:45 1999  Richard Henderson  <rth@cygnus.com>
2316
2317         * genattrtab.c (simplify_knowing): Fix uninitialized read
2318         in Feb 21 change.
2319
2320         * genextract.c (main): Clear recog_operands before extracting.
2321
2322 Fri Feb 26 02:24:57 1999  Jeffrey A Law  (law@cygnus.com)
2323
2324         * c-pragma.c (add_weak); Delete.  Moved into...
2325         * varasm.c (add_weak): New external function.
2326         (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
2327         the list of weak functions.
2328         * c-pragma (add_weak): Declare.
2329
2330 Thu Feb 25 23:43:59 1999  Richard Henderson  <rth@cygnus.com>
2331
2332         Flow rewrite to use basic block structures and edge lists:
2333
2334         * basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
2335         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
2336         (struct edge_def): New.
2337         (struct basic_block_def): New.
2338         (basic_block_info): New.
2339         (BLOCK_HEAD, BLOCK_END): Update.
2340         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New.
2341         (uid_block_number): Kill.
2342         (basic_block_for_insn, BLOCK_FOR_INSN): New.
2343         (BLOCK_NUM): Update.
2344         * flow.c (XNMALLOC): Kill.
2345         (max_uid_for_flow): Kill.
2346         (uid_block_number): Kill.
2347         (uid_volatile): Turn into a bitmap.
2348         (SET_INSN_VOLATILE): New.
2349         (basic_block_info): New.
2350         (entry_exit_blocks): New.
2351         (x_basic_block_head, x_basic_block_end): Kill.
2352         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
2353         (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
2354         (basic_block_loop_depth): Kill.
2355         (basic_block_for_insn): New.
2356         (find_basic_blocks): Split out initial block counting into 
2357         count_basic_blocks.  Call functions split out of find_basic_blocks_1.
2358         (count_basic_blocks): New.
2359         (find_basic_blocks_1): Split out edge recognition, unreachable
2360         block deletion.
2361         (create_basic_block): New.
2362         (compute_bb_for_insn): New.
2363         (clear_edges): New.
2364         (free_bb_memory): Kill.
2365         (add_edge, add_edge_to_label): Kill.
2366         (mark_label_ref): Kill.
2367         (make_edges): Rewrite to use edge lists.
2368         (make_edge, make_label_edge): New.
2369         (mark_critical_edges): New.
2370         (split_edge, insert_insn_on_edge): New.
2371         (commit_one_edge_insertion, commit_edge_insertions): New.
2372         (delete_unreachable_blocks): Rewrite to use edge lists.  
2373         Split out EH region manipulation into delete_eh_regions.
2374         Call tidy_fallthru_edge and merge_blocks.
2375         (delete_eh_regions): New.
2376         (delete_note_p): New.
2377         (delete_insn_chain): New.
2378         (delete_block): Split out code into delete_insn_chain and
2379         tidy_fallthru_edge.  Update edge lists.
2380         (expunge_block): New.
2381         (flow_delete_insn): New?
2382         (can_delete_label_p): New?
2383         (merge_blocks_nomove, merge_blocks): New.
2384         (tidy_fallthru_edge): New.
2385         (calculate_loop_depth): New.
2386         (life_analysis): Allocate and free uid_volatile.
2387         (free_basic_block_vars): Update for new structures.
2388         (record_volatile_insns): Use SET_INSN_VOLATILE.
2389         (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
2390         (mark_used_regs): Likewise.
2391         (life_analysis_1): Use bb global_live_at_start, global_live_at_end, 
2392         local_set regsets.  Use bb->aux to store new_live_at_end.  Begin
2393         life propagation from EXIT_BLOCK rather than last block.  Clear
2394         regs_ever_live after mark_regs_live_at_end.
2395         (allocate_for_life_analysis): Update for new structures.
2396         (propagate_block): Split out loop depth calculation to
2397         calculate_loop_depth.
2398         (regno_uninitialized): Use bb->global_live_at_start.
2399         (regno_clobbered_at_setjmp): Likewise.
2400         (dump_bb_data): Likewise.
2401         (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
2402         (dump_flow_info): Update for new structures.
2403         (dump_edge_info): New.
2404         (print_rtl_with_bb): Update for new structues.
2405         (compute_preds_succs): Do no work -- convert edge lists.
2406         (set_block_for_insn): From corpse of old set_block_num.
2407         (set_block_num): Call it.
2408
2409         * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
2410         * rtl.h (rtunion_def): Add bb entry.
2411         (NOTE_BASIC_BLOCK): New.
2412         (NOTE_INSN_BASIC_BLOCK): New.
2413
2414         * varray.h (varray_data_tag): Add bb entry.
2415         (VARRAY_BB_INIT, VARRAY_BB): New.
2416
2417         * emit-rtl.c (emit_label_before): New.
2418
2419         * except.c (expand_rethrow): Delete insns following the call to
2420         rethrow.  Put the REG_EH_RETHROW on the call.
2421
2422         * jump.c (returnjump_p, returnjump_p_1): New.
2423
2424         * expr.h (nonlocal_goto_handler_labels): New declaration.
2425         * function.c (nonlocal_goto_handler_labels): Define it.
2426         (push_function_context_to): Save it.
2427         (pop_function_context_from): Restore it.
2428         (init_function_start): Clear it.
2429         (nonlocal_label_rtx_list): Kill.
2430         * function.h (struct function): Add storage space for it.
2431         * stmt.c (expand_nl_handler_label): Return the new label.
2432         (expand_nl_goto_receivers): Collect a list of them in
2433         nonlocal_goto_handler_labels.
2434
2435         * Makefile.in (print-rtl.o): Depend on basic-block.h.
2436         (flow.o): Depend on insn-flags.h.
2437
2438         * function.c (thread_prologue_and_epilogue_insns): Do not
2439         half-heartedly update bb structures.
2440
2441         * toplev.c: Add flow2 dump as -dw.
2442         (rest_of_compilation): Finish .greg before flow2.
2443
2444         * graph.c (draw_edge): Handle class 3.
2445         (print_rtl_graph_with_bb): Make abnormal edges red class 2, 
2446         change non-fall-thru but adjacent to green class 3.  Update 
2447         to use new structures.
2448
2449         * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
2450
2451         * reg-stack.c (BLOCK_NUM): Convert to function.  Abort if
2452         block_number is -1.
2453         (reg_to_stack): Initialize block_num to -1.
2454
2455         * combine.c (set_nonzero_bits_and_sign_copies): Update reference
2456         to basic_block_live_at_start to bb->global_live_at_start.
2457         (try_combine): Likewise.
2458         (reg_dead_at_p): Likewise.
2459         * global.c (global_conflicts): Likewise.
2460         Handle stack regs on all abnormal edges, not just computed jumps.
2461         (mark_elimination): Update reference to basic_block_live_at_start.
2462         (build_insn_chain): Likewise.
2463         * haifa-sched.c (haifa_edge): Rename from edge for conflict.
2464         (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
2465         of nonlocal_label_rtx_list.
2466         (check_live_1): Update reference to basic_block_live_at_start.
2467         (update_live_1): Likewise.
2468         (find_pre_sched_live): Likewise.
2469         (find_post_sched_live): Likewise.
2470         * local-alloc.c (update_equiv_regs): Likewise.
2471         (block_alloc): Likewise.
2472         * reload1.c (reload, reload_combine): Likewise.
2473         * regmove.c (mark_flags_life_zones): Likewise.
2474         * resource.c (mark_target_live_regs): Likewise.
2475         * sched.c (schedule_block): Likewise.
2476
2477         * regclass.c (regset_release_memory): Don't free
2478         basic_block_live_at_start.
2479
2480         * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
2481
2482 Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
2483
2484         * fixinc.wrap: Also handle struct queue in sys/stream.h.
2485         * fixinc.svr4: Likewise.
2486
2487         * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
2488         rather than asserting it.
2489
2490 Thu Feb 25 23:33:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2491
2492         * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
2493         cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
2494         HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT.
2495
2496
2497         * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
2498         cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
2499         scan-decls.o): Don't depend on machmode.h.
2500         
2501         * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
2502         Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
2503         
2504         * cppfiles.c: Likewise.
2505
2506         * cpplib.c: Likewise.
2507          
2508         * cpplib.h: Likewise.  Also don't include machmode.h anymore.
2509
2510 Thu Feb 25 18:46:26 1999  Richard Henderson  <rth@cygnus.com>
2511
2512         * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
2513         * objc/lang-specs.h: Likewise.
2514
2515 Thu Feb 25 16:19:43 1999  Jeffrey A Law  (law@cygnus.com)
2516
2517         * pa.md (call patterns): Lose unused argument to output_call.
2518
2519         * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
2520
2521 1999-02-25 17:14 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2522
2523         * cpphash.c (install): Rename to cpp_install, add cpp_reader*
2524         first argument.  All callers changed.
2525         (hashtab): Removed.
2526         (cpp_lookup, cpp_install): Change all refs to hashtab to
2527         pfile->hashtab.
2528         (cpp_hash_cleanup): Removed.
2529         * cpphash.h: Adjust prototypes.
2530         * cpplib.h (struct cpp_reader): Add hashtab pointer.
2531         * cppinit.c (cpp_reader_init): Also allocate space for the
2532         hashtab.
2533         (cpp_cleanup): Delete all macros and free the hashtab.
2534
2535 Thu Feb 25 21:52:54 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2536
2537         * sh.h (PASS_IN_REG_P):  For TARGET_HITACHI, don't pass structures
2538         in registers.
2539
2540         * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
2541         * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
2542         * calls.c (expand_call): Likewise.
2543
2544         * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
2545         stdarg arguments.
2546         * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
2547         (FUNCTION_ARG):  For TARGET_HITACHI, don't pass unnamed
2548         arguments in registers.
2549         (PRETEND_OUTGOING_VARARGS_NAMED): Define.
2550         * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
2551         flavour varargs.
2552
2553 Thu Feb 25 14:32:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2554
2555         * cse.c (dump_class): Revert last change and make the prototype
2556         extern.
2557
2558 Thu Feb 25 19:13:42 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2559
2560         * rtl.h (insn_first_p): Don't declare.
2561         * rtlanal.c (insn_first_p): Delete.
2562         * loop.c (loop_insn_first_p): Faster implementation.
2563
2564 Thu Feb 25 10:44:35 1999  Richard Earnshaw (rearnsha@arm.com)
2565
2566         * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
2567         (TARGET_3, TARGET_6): Delete.
2568         (ARM_FLAG_ARM[36]): Delete.
2569         (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.
2570         (CC1_SPEC): Don't expand -m[236] into new equivalents.
2571         (CPP_APCS_PC_SPEC): No need to handle -m[236] any more.
2572         * arm.c (arm_override_options): Delete warnings about deprecated
2573         options -m[236].
2574
2575         * arm.c (arm_finalize_pic): Build the label into the special pic
2576         adjustment insn instead of issuing it separately.
2577         * arm.md (pic_add_dot_plus_eight): Rework to contain the label
2578         that is needed.
2579
2580         * arm.md (*zeroextractqi_compare0_scratch): Delete.
2581         (*ne_zeroextractsi): New pattern.
2582
2583 Thu Feb 25 18:40:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2584
2585         * stmt.c (expand_end_loop): Grok code emitted by
2586         expand_exit_loop_if_false.
2587
2588 Thu Feb 25 10:17:32 1999  Nick Clifton  <nickc@cygnus.com>
2589
2590         * config/arm/arm.c (return_in_memory): Float fields in unions
2591         force a return in memory.
2592         (load_multiple_sequence): Add comment explaining why two LDR
2593         instructions can be better than an LDMIA instruction.
2594
2595         * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment
2596         describing the real meaning of this option.
2597         (FIXED_REGISTERS): Default r10 to not-fixed.
2598         (CALL_USED_REGISTERS): Default r10 to not-call-used.
2599         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define
2600         as empty. 
2601         (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is
2602         true.  Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after
2603         performing other checks.
2604
2605         * config/arm/arm.md (zero_extendhisi2): Undo previous change.
2606         (extendhisi2): Undo previous change.
2607         Also add comments describing why TARGET_SHORT_BY_BYTES can be
2608         ignored for armv4(t) architectures. 
2609
2610         * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE):
2611         Define to fix r10.
2612
2613         * config/arm/riscix1-1.h
2614         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. 
2615
2616 Thu Feb 25 12:09:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2617
2618         * cse.c (dump_class): Make the function definition static to match
2619         the prototype.
2620
2621 Wed Feb 24 17:47:28 1999  Jim Wilson  <wilson@cygnus.com>
2622
2623         * dbxout.c (gstab.h): Use if CROSS_COMPILE.
2624
2625         * dwarf2out.c (add_location_or_const_value_attribute):  Add big
2626         endian correction for parms passed in regs but living on the stack.
2627
2628 Wed Feb 24 14:03:54 1999  Jeffrey A Law  (law@cygnus.com)
2629
2630         * calls.c (initialize_argument_information): New function extracted
2631         from expand_call.
2632         (expand_call): Use initialize_argument_information.  Remove variables
2633         which are no longer used due to cleanups.
2634
2635         * calls.c (compute_argument_block_size): New function, extracted from
2636         expand_calls.
2637         (expand_calls): Use compute_argument_block_size.  Delete
2638         original_args_size, use unadjusted_args_size instead.
2639
2640         * calls.c (precompute_arguments): New function, extracted from
2641         expand_call.
2642         (expand_call): Use precompute_arguments.
2643
2644         * calls.c (finalize_must_preallocate): New function, extracted from
2645         expand_call.
2646         (expand_call): Use finalize_must_preallocate.
2647
2648         * calls.c (store_one_arg): Mark "variable_size" as possibly unused.
2649
2650         * regclass.c (record_reg_classes, case 'p'): Set classes appropriately.
2651         An alternative always fails if it needs a pseudo and no suitable
2652         register class can be found.
2653
2654 Wed Feb 24 19:47:56 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2655
2656         * loop.h (loop_insn_first_p): Declare.
2657         * loop.c (loop_insn_first_p): No longer static.
2658         * unroll.c (iteration_info) Fix comparison to
2659         reg_iv_type->num_elements.
2660         Before accessing reg_biv_class, check index against
2661         max_reg_before_loop.
2662         Fix and enable code for giv iterators.
2663         (loop_iterations): Compare with reg_iv_type->num_elements instead
2664         of with max_reg_before_loop.
2665
2666 Wed Feb 24 19:17:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2667
2668         * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno.
2669
2670 Wed Feb 24 11:26:41 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
2671
2672         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use
2673         PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC.
2674
2675 Tue Feb 23 16:24:19 CET 1999 Marc Lehmann <pcg@goof.com>
2676
2677         * config/i386/i386.md: fix typoe.
2678
2679 Mon Feb 22 19:36:33 1999  Andrew Cagney  <cagney@b1.cygnus.com>
2680
2681         * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 &&
2682         frame_pointer_needed adjust frame size.
2683         (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted
2684         in .frame pseudo-op.
2685         Frm Jim Wilson  <wilson@cygnus.com>:
2686         * mips.c (function_prologue): Adjust frame size in .frame pseudo-op
2687         when TARGET_MIPS16 && frame_pointer_needed.
2688
2689 1999-02-22  Nick Clifton  <nickc@cygnus.com>
2690
2691         * config/arm/arm.h: Add TARGET_CPU_strongarm1100.
2692         Add -mno-sched command line switch to disable scheduling of
2693         instructions into the function's prologue.
2694         (enum processor_type): Remove.
2695         (TARGET_OPTIONS): Add "fpe=" option to match documentation.
2696         (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
2697         fields with 'processors' field.
2698         (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
2699         checking is not enabled.
2700         (RETURN_IN_MEMORY): Always call arm_return_in_memory.
2701         
2702         * config/arm/arm.c: (arm_cpu): Remove.
2703         (tune_flags): Remove.
2704         (arm_is_strong): New variable: true iff the target processor is a 
2705         StrongARM.
2706         (arm_is_6_or_7): New variable: true iff the target processor is an
2707         ARM6 or and ARM7.
2708         (arm_select): Fields reorganised.
2709         (struct processors): processor_type field removed.
2710         (all_procs): Remove.
2711         (all_cores): New array: Definitions of all known ARM cpu cores.
2712         (all_architectures): New array: Definitions of all known ARM
2713         architectures. 
2714         (streq): New macro.
2715         (FL_SCHED): New processor flag: processor required load
2716         scheduling.
2717         (FL_STRONG): New processor flag: processor is a StrongARM.
2718         (arm_override_options): Reorganised to make code clearer.
2719         (use_return_insn): Test for "not (TARGET_APCS and
2720         frame_pointer_needed)".
2721         (arm_return_in_memory): Improve handling of structures.
2722         
2723         * config/arm/arm.md: Remove "cpu" attribute.  Replace with
2724         "is_strongarm" and "is_arm_6_or_7" attributes.
2725         (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
2726         arm_arch4.
2727         (extendhisi2):  Check for TARGET_SHORT_BY_BYTES before arm_arch4. 
2728
2729         * invoke.texi (ARM Options): Document -mtune= and -mfp= options.
2730         
2731 1999-02-22  Philip Blundell  <philb@gnu.org>
2732
2733         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default
2734         definition with one including cache synchronisation.
2735         (CLEAR_INSN_CACHE): Correct syscall number and enable definition.
2736         Move definition of inhibit_libc to...
2737         * config/arm/xm-linux.h: ... here.
2738
2739         * config/arm/t-linux: Disable multilib configurations since the
2740         only effect for most people is to cause builds to fail.
2741         
2742         * config/arm/elf.h (ASM_FILE_START): Add .file directive.
2743         (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler.
2744
2745         * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define.
2746         (HANDLE_SYSV_PRAGMA): Likewise.
2747         (LIB_SPEC): Copy definition from generic Linux files.
2748         (LIBGCC_SPEC): Include -lfloat if -msoft-float was given.
2749         (FP_DEFAULT): Set to SOFT3 on 32-bit targets.
2750         (DWARF2_DEBUGGING_INFO): Define.
2751         (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
2752
2753 Mon Feb 22 16:54:18 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
2754
2755         * loop.c (libcall_other_regs): Make extern.
2756         * rtl.h (find_last_value): Add parameter to prototype.
2757         (libcall_other_reg): Add extern declaration.
2758         * rtlanal.c (find_last_value): Add another parameter to allow
2759         a definition using a hardware register to be found as well.
2760
2761 Mon Feb 22 13:33:47 1999  Mark Mitchell  <mark@markmitchell.com>
2762
2763         * cse.c (dump_class): New function.
2764         (invalidate_memory): Fix typo in comment.
2765         * function.c (temp_slot): Add an alias set field.  
2766         (assign_stack_temp): Only reuse slots if they will have the
2767         same alias set as before.
2768         (combine_temp_slots): Don't combine if -fstrict-aliasing;
2769         that's unsafe.
2770         * rtl.c (copy_rtx): Copy all the flags (in particular,
2771         MEM_SCALAR_P).
2772
2773 Mon Feb 22 14:13:23 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
2774
2775         * configure.in (i[34567]86-*-linux-gnu*,
2776         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
2777         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
2778         fixincludes.
2779
2780         * configure: Rebuilt.
2781
2782         * fixinc.x86-linux-gnu: New script for fixing asm-statements bug
2783         on x86 linux.
2784
2785         * fixinc/fixinc.x86-linux-gnu: Copy of the previous one.
2786
2787         * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*,
2788         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
2789         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
2790         fixincludes.
2791
2792 Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
2793
2794         * objc/objc-act.c (encode_type): Temporary revert to the old
2795         behavior of encoding types as the new one seems to break the
2796         encoding of bitfields.
2797
2798 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
2799 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
2800
2801         * Makefile.in (all.internal, all.cross): Depend on `doc'
2802         target, to ensure docs get made before installation.
2803
2804
2805         Decrease spurious warnings from -fsyntax-only:
2806         * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
2807
2808 Mon Feb 22 10:55:00 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2809
2810         * c-lex.c (yylex): Replace warning about integer constants being
2811         larger than long-longs, with a warning about integer constants 
2812         being larger than the largest target integer.
2813
2814 Mon Feb 22 08:35:38 1999  Craig Burley  <craig@jcb-sc.com>
2815
2816         Fix -fsyntax-only ICEs:
2817         * varasm.c (assemble_zeros, assemble_variable,
2818         output_constant_def): Do nothing when -fsyntax-only.
2819
2820 Fri Feb 19 18:18:56 1999  Don Bowman  <don@pixstream.com>
2821
2822         * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support.
2823         * configure: Rebuilt.
2824
2825 Sun Feb 21 20:34:44 PST 1999 Jeff Law  (law@cygnus.com)
2826
2827         * version.c: Bump for snapshot.
2828
2829 Sun Feb 21 20:35:10 1999  Jeffrey A Law  (law@cygnus.com)
2830
2831         * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
2832         (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.
2833         * tm.texi: Update docs for constructors and destructors.
2834
2835 Sun Feb 21 17:11:18 1999  Richard Henderson  <rth@cygnus.com>
2836
2837         * genattrtab.c (check_attr_value): Allow negative const_int if
2838         negative_ok.  Accept integral arithmetic operators.  Accept
2839         direct references to other attributes.  Accept symbol_ref in
2840         non-constant attributes.
2841         (max_attr_value): Add new argument `unknownp'.  Update all callers.
2842         (or_attr_value): Likewise.
2843         (simplify_knowing): Don't optimize if max_attr_value unknown.
2844         (write_length_unit_log): Likewise with or_attr_value.
2845         (find_and_mark_used_attributes): Don't fallthru case.
2846         (write_attr_set): Pass thru all non-cond expressions.
2847         (write_attr_value): Handle symbol_ref, attr, and arithmetic.
2848
2849 Sun Feb 21 13:16:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2850
2851         * regmove.c (discover_flags_reg): Use word_mode instead of SImode.
2852
2853 Sun Feb 21 13:15:40 1999  Richard Henderson  <rth@cygnus.com>
2854
2855         * regmove.c (discover_flags_reg): Remove cc0 code.
2856         (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if
2857         a potential flags register was identified.
2858
2859 Sat Feb 20 16:16:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2860
2861         * rs6000.md (scc plus ltu): Fix typo in last change.
2862
2863 Sat Feb 20 09:08:44 1999  Richard Earnshaw  (rearnsha@arm.com)
2864
2865         * xm-arm.h (HOST_BITS_PER_LONGLONG): Define.
2866
2867 Fri Feb 19 23:02:02 1999  Richard Henderson  <rth@cygnus.com>
2868
2869         * regmove.c (discover_flags_reg): New function.
2870         (flags_set_1, mark_flags_life_zones): New functions.
2871         (regmove_optimize): Call them.
2872         (fixup_match_1): Use insn modes rather than sets_cc0_p.
2873
2874 Fri Feb 19 22:47:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2875
2876         * rtlanal.c (insn_first_p): Fix return value for insn == reference.
2877
2878         * loop.c (strength_reduce, check_final_value, check_dbra_loop):
2879         Use loop_insn_first_p.
2880
2881 Fri Feb 19 15:49:26 1999  Michael Meissner  <meissner@cygnus.com>
2882                           David Edelsohn  <edelsohn@gnu.org>
2883
2884         * rs6000.md (scc plus eq): Fix output template.
2885         (scc plus ltu): Fix output template and collapse variants
2886         correcting early clobbers.
2887         (scc plus geu): Fix output template.
2888         (scc plus gt): Fix output template.
2889         (scc plus gtu): Fix output template and collapse variants.
2890
2891 Fri Feb 19 15:43:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2892
2893         * cppinit.c (print_help): Remove unescaped newline in string.
2894
2895 Fri Feb 19 19:55:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2896
2897         * loop.c (strength_reduce): Check for intervening jumps when
2898         converting biv increment to giv.
2899
2900 Thu Feb 18 16:36:58 1999  Per Bothner  <bothner@cygnus.com>
2901
2902         * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR):  New tree nodes,
2903         * expr.c (expand_expr):  Support new tree nodes.
2904
2905 Fri Feb 19 10:17:56 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2906
2907         * config/m68k/m68k.c (m68k_align_loops_string,
2908         m68k_align_jumps_string, m68k_align_funcs_string): Add const.
2909         * config/m68k/m68k.h (m68k_align_loops_string,
2910         m68k_align_jumps_string, m68k_align_funcs_string): Likewise.
2911
2912 Thu Feb 18 23:28:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2913
2914         * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
2915          
2916         * bitmap.h (bitmap_print): Likewise.
2917          
2918         * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
2919          
2920         * c-lang.c (build_objc_string): Likewise.
2921          
2922         * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
2923         limits.h or ctype.h.  Remove unused variable `p'.
2924          
2925         * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
2926          
2927         * c-pragma.c (handle_pragma_token): Likewise.
2928          
2929         * c-pragma.h (handle_pragma_token): Likewise.
2930          
2931         * c-tree.h (build_objc_string, builtin_function, grokfield,
2932         build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
2933         pedwarn_init): Likewise.
2934          
2935         * c-typeck.c (convert_for_assignment, warn_for_assignment,
2936         push_string, warning_init, incomplete_type_error,
2937         build_indirect_ref, lvalue_or_else, readonly_warning,
2938         build_c_cast, spelling, push_member_name, print_spelling,
2939         error_init, pedwarn_init, start_init): Likewise.
2940          
2941         * objc/objc-act.c (build_objc_string): Likewise.
2942          
2943         * print-tree.c (print_node_brief, print_node): Likewise.
2944          
2945         * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.
2946
2947 Thu Feb 18 20:44:21 1999  David Edelsohn  <edelsohn@gnu.org>
2948
2949         * regclass.c (record_reg_classes): Correctly handle 'p' constraint.
2950
2951 Thu Feb 18 19:59:37 1999  Marc Espie <espie@cvs.openbsd.org>
2952
2953         * configure.in :Handle OpenBSD platforms.
2954         * configure: Rebuilt.
2955         * config/openbsd.h: New file.
2956         * config/xm-openbsd.h: New file.
2957         * config/t-openbsd: New file.
2958         * config/t-openbsd-thread: New file.
2959
2960 Thu Feb 18 18:47:09 1999  Jeffrey A Law  (law@cygnus.com)
2961
2962         * function.c (assign_stack_temp_for_type): Round SIZE before calling
2963         assign_stack_local for BLKmode slots.
2964
2965 Fri Feb 19 01:45:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2966
2967         * loop.c (strength_reduce): For derived givs, replace the
2968         giv this was derived from with its new_reg.
2969         (recombine_givs): Don't set new_reg for derived giv.
2970         And don't print it, print SUM instead.
2971
2972 Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
2973
2974         * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
2975
2976 1999-02-18 18:32 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2977
2978         * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
2979           or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
2980           macro_cleanup.
2981           (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
2982           predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
2983           CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
2984           cpp_pending, version_string, struct default_include,
2985           include_defaults_array, path_include, cpp_options_init,
2986           dump_special_to_buffer, initialize_builtins, cpp_start_read,
2987           cpp_reader_init, nreverse_pending, push_pending, print_help,
2988           cpp_handle_option, cpp_handle_options, cpp_finish,
2989           cpp_cleanup): Move to cppinit.c.
2990           (macro_cleanup, struct arglist, collect_expansion,
2991           create_definition, compare_defs, comp_def_part, ARG_BASE,
2992           struct argdata, macarg, change_newlines, timestamp,
2993           monthnames, special_symbol, unsafe_chars, macroexpand,
2994           push_macro_expansion): Move to cpphash.c.
2995           (quote_string, check_macro_name, cpp_expand_to_buffer,
2996           output_line_command, cpp_undef): Export.
2997           (null_underflow, null_cleanup, handle_directive): Make static.
2998
2999         * cpplib.h: Prototype now-exported functions.  Adjust decls of
3000           syntax tables so we can include cpplib.h in cppinit.c.
3001         * cpphash.h: Prototype all functions exported by cpphash.c.
3002         * cppinit.c: Make syntax tables initialized data if possible
3003           (uses GCC designated-initializer extension).
3004         * cppexp.c:  Make cpp_lex static.
3005         * Makefile.in: Move -D switches for the various include dirs
3006           from cpplib.o rule to cppinit.o rule.  Adjust dependencies.
3007
3008 Thu Feb 18 13:15:56 1999  Marc Espie <espie@cvs.openbsd.org>
3009
3010         * alpha/openbsd.h: New file.
3011         * alpha/xm-openbsd.h: New file.
3012         * sparc/openbsd.h: New file.
3013         * sparc/xm-openbsd.h: New file.
3014         * m68k/openbsd.h: New file.
3015         * m68k/xm-openbsd.h: New file.
3016         * i386/openbsd.h: New file, originally from netbsd.
3017         * i386/xm-openbsd.h: New file.
3018
3019 1999-02-17 14:49 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3020
3021         * Makefile.in: Correct dependencies for cpplib object files.
3022
3023 Wed Feb 17 14:04:18 1999  Michael Meissner  <meissner@cygnus.com>
3024
3025         * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other
3026         than cr0.
3027
3028 Wed Feb 17 16:59:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3029
3030         * loop.c (strength_reduce): Don't move giv insn for biv turned giv
3031         below scan_start.
3032
3033 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3034
3035         * tree.c (tree_node_kind_names, print_obstack_name,
3036         get_identifier, maybe_get_identifier, build_string,
3037         build_expr_wfl, is_attribute_p, lookup_attribute,
3038         print_obstack_statistics, get_file_function_name_long, tree_check,
3039         tree_class_check, expr_check): Qualify a char* with the `const'
3040         keyword.
3041
3042         * tree.h (get_identifier, maybe_get_identifier, build_string,
3043         build_expr_wfl, is_attribute_p, lookup_attribute,
3044         print_obstack_statistics, print_obstack_name, tree_check,
3045         tree_class_check, expr_check): Likewise.
3046
3047 Tue Feb 16 21:29:38 1999  Jeffrey A Law  (law@cygnus.com)
3048
3049         * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing
3050         errors.
3051
3052         * calls.c (store_one_arg): Mark any slots used for the argument
3053         as in-use immediately after we're done saving any slots which
3054         will be overwritten by this argument. 
3055
3056 Tue Feb 16 21:02:07 1999  Anton Hartl <toni@devsoft.com>
3057
3058         * rs6000.md (call_value): Fix typo.
3059
3060 Wed Feb 17 01:29:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3061
3062         * loop.c (strength_reduce): Calculate maybe_dead before
3063         calling recombine_givs.
3064
3065 Wed Feb 17 00:43:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3066
3067         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
3068
3069 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
3070
3071         * objc/objc-act.c (encode_type): Encode the type instead of
3072         encoding the mode of the type (patch from Richard Frith-Macdonald
3073         <richard@brainstorm.co.uk>).
3074
3075 Tue Feb 16 10:53:51 1999  Richard Earnshaw (rearnsha@arm.com)
3076
3077         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
3078         instruction killed in previous change.  Simplify mask generation.
3079         (*zeroextractsi_compare0_scratch): Simpify mask generation.
3080
3081 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
3082
3083         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
3084         bitfield does not overflow a byte boundary.
3085
3086 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
3087
3088         * c-common.c (shorten_compare): Get the min/max value from the
3089         underlying type of an enumeration, not the enumerated type itself.
3090
3091 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
3092
3093         * jump.c: Include insn-attr.h.
3094         (delete_computation): If reload has completed and insn scheduling
3095         after reload is enabled, then do not depend on REG_DEAD notes.
3096         * Makefile.in (jump.o): Depend on insn-attr.h.
3097
3098 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
3099
3100         * i386.md (addsi3): Allow lea for any constant_p.
3101
3102 1999-02-15 17:11 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3103
3104         * toplev.c (documented_lang_options): Remove -fident and
3105           -fnoident, which are now handled by the language independent
3106           option parser.
3107
3108 1999-02-15 16:59 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3109
3110         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
3111         * c-lex.c: Likewise.
3112         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
3113         list in malloced memory for the buffer stack.
3114         (cpp_get_token): Don't pop the last buffer off the stack.
3115         Calls after CPP_EOF has been returned produce CPP_EOF with no
3116         state change.
3117         (cpp_finish): Pop last buffer here.
3118         (do_line): Don't free ip->last_nominal_fname if it is equal to
3119         ip->fname.
3120         (special_symbol): If a T_CONST is the empty string, push a
3121         single `@ ' escape instead.
3122         (macroexpand): Special symbol buffers have escapes too.
3123         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
3124         buffer pointer.
3125         (struct cpp_reader): Remove buffer_stack.  Add
3126         buffer_stack_depth.
3127         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
3128         linked list.
3129
3130 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3131
3132         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
3133         WIDE_INT with WIDEST_INT.
3134
3135         * cexp.y: Likewise.
3136         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
3137         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
3138         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
3139         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
3140         definition of variable `c89' when compiling a test binary and set it.
3141
3142         * system.h: Don't define the PRINTF_PROTO_* macros.
3143
3144 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
3145
3146         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
3147         we do not understand, mark the loop and containing loops as invalid.
3148
3149 Mon Feb 15 00:40:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3150
3151         * alias.c (init_alias_analysis): Avoid self-referential value
3152         when setting reg_known_value from REG_EQUAL notes.
3153
3154 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
3155
3156         * i386.c (legitimate_address_p): Verify modes of base and index.
3157
3158 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
3159
3160         * i386.c (legitimate_pic_address_disp_p): Remove static.
3161         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
3162         open-coding cases.
3163
3164 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
3165
3166         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
3167         * explow.c (probe_stack_range): Likewise.
3168         * expmed.c (do_cmp_and_jump): Likewise.
3169         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
3170         (do_tablejump): Likewise.
3171         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
3172         (do_jump_if_equal, emit_case_nodes): Likewise.
3173         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
3174         then convert comparison to an unsigned code before emitting the jump.
3175         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
3176
3177 Sun Feb 14 02:24:15 PST 1999 Jeff Law  (law@cygnus.com)
3178
3179         * version.c: Bump for snapshot.
3180
3181 Sun Feb 14 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
3182
3183         * version.c: Bump for snapshot.
3184
3185 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
3186
3187         * loop.c: Disable recent loop changes.  Temporary as Joern
3188         continues to fix problems.
3189
3190 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
3191
3192         * loop.c (combine_givs_used_by_other): Delete.
3193         (combine_givs_benefit_from): Delete.
3194         (combine_givs): Deny combination of givs only used once.  Simplify
3195         code with the death of combine_givs_benefit_from.
3196
3197 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3198
3199         * loop.c (scan_loop): Call reg_in_basic_block_p before
3200         loop_reg_used_before_p.
3201
3202 Sat Feb 13 05:32:00 1999  Richard Earnshaw (rearnsha@arm.com)
3203
3204         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
3205         * arm.h: Likewise.
3206         * arm.c: Likewise.
3207
3208         * arm.h (TARGET_OPTIONS): Reformat for clarity.
3209         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
3210         in the constant pool aren't valid.
3211         (LEGITIMATE_PIC_OPERAND_P): Likewise.
3212
3213         * arm.c: Include "system.h", not stdio.h and string.h.
3214
3215 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
3216
3217         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
3218         (optimize_tail_recursion): Change return type from void to int.
3219         Add return statements.
3220         * tree.h (optimize_tail_recursion): Change prototype to match.
3221
3222 Fri Feb 12 21:09:51 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3223
3224         * reload.c (find_reloads_subreg_address): New function, broken out of
3225         find_reloads_toplev.
3226         (find_reloads_toplev, find_reloads_address_1): Use it.
3227
3228 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
3229
3230         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
3231         extending a CONST_INT.
3232
3233         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
3234
3235 Fri Feb 12 18:29:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3236
3237         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
3238         New functions.
3239         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
3240
3241 Fri Feb 12 16:56:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3242
3243         * loop.c (load_mems): Don't guess how to do a load / store, use
3244         emit_move_insn.
3245
3246 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3247
3248         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
3249
3250 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3251
3252         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. 
3253
3254 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
3255
3256         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
3257         pseudo which is homed in the stack.
3258
3259         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
3260         (compute_frame_size): Change loop over FP regs to be consistent
3261         with the loop in save_restore_insns.
3262
3263 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
3264
3265         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
3266         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
3267
3268 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
3269
3270         * mn10200.md (bset); Re-enable.
3271
3272 Thu Feb 11 15:20:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3273
3274         * sh.md (is_sfunc): New attribute.
3275         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
3276
3277 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
3278
3279         * fold-const.c (range_binop): Take account of the bounded nature
3280         of fixed length arithmetic when comparing unbounded ranges.
3281
3282 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
3283
3284         * function.c (assign_stack_temp_for_type): Clear best_p
3285         when an exact match is found.
3286
3287         * i386.h (LOCAL_ALIGNMENT): Define.
3288         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
3289         (assign_stack_temp_for_type): New function based on assign_stack_temp.
3290         (assign_stack_temp): Call it.
3291         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
3292         * stmt.c: Use assign_temp, not assign_stack_temp.
3293         * tm.texi: Document LOCAL_ALIGNMENT.
3294
3295 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
3296
3297         * reorg.c: Finish deleting half-deleted comment.
3298
3299 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
3300
3301         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
3302         result.
3303         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
3304         result.
3305         * real.c (endian): Delete sign extension code.
3306         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
3307         replaced with operand_subword call.
3308
3309 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
3310
3311         * alpha.md (cmov compound patterns): Delete.  Jump can now
3312         create the correct constructs in the first place.
3313
3314 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
3315
3316         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
3317
3318 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
3319
3320         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
3321
3322 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
3323
3324         * tmp-emsgids.c: Delete.
3325
3326 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
3327
3328         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
3329         coding standards.
3330
3331 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
3332
3333         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
3334
3335         * reload1.c (reload_combine_note_store): Second argument is no
3336         longer unused/ignored.  Handle multi-register hard regs.
3337         (move2add_note_store): Simplify.
3338
3339 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3340
3341         * collect2.c (collect_execute): Remove cygwin-specific code.
3342
3343 Tue Feb  9 17:27:29 GMT 1999  Nathan Sidwell  <nathan@acm.org>
3344
3345         * system.h (_, N_): Remove dummy i18n macros.
3346         * protoize.c: Move inclusion of intl.h to after system.h.
3347         * cexp.y: Include intl.h.
3348         * cexp.c: Rebuilt.
3349
3350 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
3351
3352         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore 
3353         fpic/fPIC for windows32 targets.
3354         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
3355         paths with '/'.
3356         * i386/mingw32.h (CPP_SPEC): Define.
3357         (CPP_PREDEFINES): Add MINGW32 version id.
3358         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
3359
3360         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
3361         add missing exeext to target.
3362
3363         * gcc.c (convert_filename): Handle null filename argument.
3364
3365 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3366
3367         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
3368         m constraint instead of QT.
3369
3370 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
3371
3372         * cpplib.c (special_symbol): Move IP to be declared in function
3373         scope, rather than individual case statements.
3374
3375 1999-02-09 16:42 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3376
3377         * cppfiles.c (finclude):  Handle pipes properly under old BSD
3378           derivatives.
3379
3380 1999-02-09 16:42 -0500  Melissa O'Neill <oneill@cs.sfu.ca>
3381
3382         * system.h: Provide fallback definitions for S_ISCHR,
3383           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
3384
3385 1999-02-09 10:30 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3386
3387         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
3388
3389 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
3390
3391         * configure.in: For PowerPC configurations, accept "401", "ec603e",
3392         "740", and "750" as valid arguments to --with-cpu.
3393         * configure: Rebuilt.
3394
3395 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
3396
3397         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
3398         * configure: Rebuilt.
3399
3400 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
3401
3402         * rs6000.md: Revert "alternate use of crs if cr0 not available"
3403         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
3404
3405 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
3406
3407         * output.h (current_function_has_computed_jump): Rename from
3408         current_function_addresses_labels.
3409         * function.h (struct function): Likewise for addresses_labels member.
3410         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
3411         * function.c (current_function_has_computed_jump): Likewise.
3412         Update all references.
3413         * integrate.c (function_cannot_inline_p):
3414         Test current_function_has_computed_jump instead of addresses_labels.
3415         (initialize_for_inline): Likewise save.
3416         (output_inline_function): Likewise restore.
3417
3418         * expr.c (expand_expr): Don't reference addresses_labels variables.
3419         * stmt.c (expand_computed_goto): Set has_computed_jump.
3420
3421 1999-02-08  Michael Meissner  <meissner@cygnus.com>
3422
3423         This is being installed only to get it into the repository to help
3424         with the revert, resubmit & review process for the massive rs6000.md
3425         changes.
3426         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
3427         rlwinm instruction.
3428         (anddi3_internal1): Ditto.
3429         (andsi3_internal{2,3}): Correct some insn lengths.
3430         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
3431         mnemonics.
3432
3433 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
3434
3435         * loop.c (reg_single_usage): New file-scope variable ...
3436         (scan_loop): ... moved out of here.  Always initialize.
3437         Test loop_has_call instead of reg_single_usage not zero.
3438         Free reg_single_usage after strength reduction.
3439         (count_loop_regs_set): Assume single_usage non-zero.
3440         (combine_givs_used_by_other): Test reg_single_usage.
3441         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
3442         as a parameter.  Assume non-zero.
3443         
3444 1999-02-08 23:25 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
3445
3446         * cpplib.c (special_symbol): Rewrite.  Don't copy things
3447           multiple times.  Handle __STDC__ specially.  T_CONST
3448           indicates a constant /string/.  Don't handle T_*_TYPE and
3449           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
3450           adjust_position.  Determine the file buffer only if needed.
3451           (initialize_builtins): Handle __SIZE_TYPE__,
3452           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
3453           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
3454           Don't provide __OBJC__; the driver does that.  Provide
3455           __STDC_VERSION__, using T_CONST.  Use T_STDC for
3456           __STDC__.  Give install the length of all symbols defined.
3457           (eval_if_expression): Drop code to insert and remove the
3458           "defined" special symbol.
3459
3460         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
3461           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
3462
3463         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
3464           the `value' parameter.  All callers changed.
3465         * cpphash.h (install): Change prototype to match.
3466           (union hashval): Remove `ival' member.
3467         * cppexp.c (cpp_lex): Handle `defined' here.
3468
3469 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
3470
3471         * pa.h (EXTRA_CONSTRAINT): Fix comment.
3472
3473 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
3474
3475         * c-typeck.c (check_init_type_bitfields): Use nonincremental
3476         initialization of unions whose first member is a bitfield.
3477         Remove unnecessary code for checking the declaration mode
3478         after DECL_C_BIT_FIELD.
3479
3480         * varasm.c (output_constructor): Additional comment about the
3481         constructor of bitfield union initialization.
3482
3483 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3484
3485         * config/c4x/c4x.md (*movhi_stik): New pattern.
3486         (movhi): Allow some immediate constants to be directly
3487         stored in memory.
3488
3489 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3490
3491         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
3492         (call, call_value): Force address into a register if not valid
3493         for a call instruction.
3494         (load_immed_address): Emit a USE of the SYMBOL_REF that is
3495         forced into memory.
3496         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
3497
3498 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3499
3500         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
3501         Rename from call_operand and symbolic_operand respectively.  All
3502         callers changed.
3503         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): 
3504         Likewise.
3505         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): 
3506         Likewise.
3507         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
3508
3509 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3510
3511         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
3512         LO_SUM address for HImode or HFmode but instead force address into
3513         a register so that it is offsettable.
3514         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
3515
3516 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3517
3518         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
3519         REG+REG addressing if strength reduction enabled.
3520
3521 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3522
3523         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
3524         (TARGET_LIBGCC2_CFLAGS): Define.
3525         
3526 1999-02-08  Nick Clifton  <nickc@cygnus.com>
3527
3528         * config/v850/v850.md: Replace \\n\\t with \\;
3529         
3530         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
3531         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
3532         Enforce TARGET_LONG_CALLS option. 
3533
3534 Mon Feb  8 11:43:07 1999  Donn Terry <donn@interix.com>
3535
3536         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
3537
3538 Mon Feb  8 11:37:24 1999  Marc Espie (espie@cvs.openbsd.org)
3539
3540         * m88k/t-luna-gas: Remove bash dependency.
3541
3542 Mon Feb  8 11:34:44 1999  Graham <grahams@rcp.co.uk>
3543
3544         * collect2.c (xrealloc): Fix typo in last change.
3545
3546 Mon Feb 8 09:13:38 PST 1999 Jeff Law  (law@cygnus.com)
3547
3548         * version.c: Bump for snapshot.
3549
3550 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
3551
3552         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
3553         that we do not want macro replacement within a character constant.
3554         (TYPE_CHECK1): Likewise.
3555
3556 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
3557
3558         * tree.h (DECL_P): New macro.
3559
3560 Sun Feb 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
3561
3562         * version.c: Bump for snapshot.
3563
3564 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
3565
3566         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
3567
3568         * README.g77, gcc.c, gcc.texi: Update email addresses.
3569         * invoke.texi system.h: Likewise.
3570
3571 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
3572
3573         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
3574         to convert dest_reg to new_reg.
3575
3576 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
3577
3578         * reload1.c (reload_combine_note_store): Be more careful with
3579         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
3580         (move2add_note_store): Likewise.
3581
3582 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3583
3584         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
3585         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
3586         have the same type.
3587
3588         * cppinit.c (initialize_char_syntax): Use K&R function definition.
3589
3590 Sat Feb  6 11:17:03 1999  Richard Earnshaw <rearnsha@arm.com>
3591
3592         Support for ARM9
3593         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
3594         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
3595         (TARGET_CPU_DEFAULT): Rework to support ARM9.
3596         (CPP_CPU_ARCH_SPEC): Likewise.
3597         (enum processor_type): Likewise.
3598         * config/arm/arm.md (attr cpu): Add arm9.
3599
3600         General scheduling changes 
3601         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
3602         (max_insns_skipped): New variable.
3603         (arm_override_options): If generating hard floating point code for
3604         the FPA, emit code for version 3.
3605         When optimizing for space, don't synthesize constants.
3606         Reword several flags based on the requested processor and optimization
3607         level.
3608         (use_return_insn): New argument iscond, all callers changed.  Don't
3609         use a return insn if it will be conditional and that would be 
3610         expensive; eg on StrongARM.
3611         (arm_adjust_cost): Anti- and output- dependencies normally have no
3612         cost.
3613         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
3614         the sequence is short.
3615         (final_prescan_insn): Use max_insns_skipped instead of 
3616         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
3617         conditional, and aviod this if it would be expensive.
3618         * config/arm/arm.md (scheduling attributes and function units):
3619         Rewrite to better describe ARM8, 9 and StrongARM.
3620
3621         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate 
3622         s_register_operand.
3623         (*ifcompare_plus_move): Use arm_rhs_operand in place of 
3624         arm_rhsm_operand.  Rework constraints.
3625         (*if_plus_move): Likewise.
3626         (*ifcompare_move_plus): Likewise.
3627         (*if_move_plus): Likewise.
3628         (*ifcompre_arith_move): Likewise.
3629         (*if_arith_move): Likewise.
3630         (*ifcompare_move_arith): Likewise.
3631         (*if_move_arith): Likewise.
3632
3633         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
3634         
3635 1999-02-05  Michael Meissner  <meissner@cygnus.com>
3636
3637         * loop.c (check_dbra_loop): A store using an address giv for which
3638         we have no life information is not reversible.
3639
3640 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
3641
3642         * function.c (fixup_var_refs): Scan catch_clauses too.
3643
3644 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
3645
3646         * c-common.c (decl_attributes): Fix reserved space for init_priority.
3647         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
3648
3649 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
3650
3651         * loop.c (strength_reduce): Clear not_every_iteration when 
3652         passing the NOTE_INSN_LOOP_CONT note.
3653
3654         * haifa-sched.c (add_dependence): Do not add a dependency on a
3655         note.
3656
3657 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
3658
3659         * recog.c (split_block_insns): Only call update_flow_info if
3660         instruction scheduling is enabled.
3661
3662 1999-02-05 11:22 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3663
3664         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
3665
3666 Fri Feb  5 07:09:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3667
3668         * loop.c (first_loop_store_insn): New file-scope variable.
3669         (prescan_loop): Set it.
3670         (check_dbra_loop): Check if a store depends on a register
3671         that is set after the store.
3672
3673 Fri Feb  5 06:55:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3674
3675         * unroll.c (entire file): Remove tabs / spaces at end of lines.
3676         Replace spaces with tabs where appropriate.
3677
3678 Thu Feb  4 15:12:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3679
3680         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
3681         (strength_reduce): New argument loop_cont. Changed caller.
3682         Before clearing not_every_iteration after a label, check if
3683         we are not already past LOOP_CONT.
3684
3685 1999-02-04 16:04 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
3686
3687         * cpperror.c (cpp_print_containing_files): Fix formatting 
3688         bug induced by merge.
3689
3690 1999-02-04 14:33 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3691
3692         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
3693         (cpp_define): Remove redundant syntax checks.
3694         (make_assertion): Rename cpp_assert, remove redundant syntax
3695         checks, export.
3696         (cpp_options_init): Don't init things to zero twice.
3697         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
3698         (do_include): Kill excessively verbose #import warning that
3699         snuck back in in the gcc2 merge.
3700         (convert_string): Removed.
3701         (do_line): Rewrite with simple last-name-used cache instead of
3702         private hashtable.
3703         (cpp_start_read): Call initialize_char_syntax here, not...
3704         (cpp_reader_init): ...here.
3705         (cpp_handle_options): Support the -std switch.
3706         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
3707         (cpp_options): Add c9x flag.
3708         Declare all the is_* tables and trigraph table here, as const.
3709         Prototype cpp_assert and initialize_char_syntax.
3710         * cppinit.c: New file.
3711         * cppfiles.c (read_and_prescan): Optimize.
3712         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
3713
3714 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3715
3716        * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
3717         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
3718         before calling gen_div_trap.
3719
3720 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
3721
3722         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
3723         than numeric value for target_cpu_default..
3724         * configure: Rebuilt.
3725
3726 Wed Feb  3 21:55:56 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
3727
3728         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
3729         mkstemp.  Get them from libiberty.
3730         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
3731         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
3732         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
3733         (mkstemp.o, getopt1.o, getopt.o): Likewise.
3734
3735         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
3736         values.
3737         * pa-hpux.h (LINK_SPEC): Likewise.
3738         * pa-hpux10.h (LINK_SPEC): Likewise.
3739         * pa-hpux9.h (LINK_SPEC): Likewise.
3740         * pa-osf.h: (LINK_SPEC): Likewise.
3741         * pa-pro.h (TARGET_DEFAULT): Likewise.
3742         * pa1.h (TARGET_DEFAULT): Likewise.
3743         * pa.h (MASK_*): New defines.
3744         (TARGET_*): Use symbolic values rather than numeric values.
3745         (TARGET_SWITCHES): Likewise.
3746         (TARGET_DEFAULT): likewise.
3747         (CPP_SPEC): likewise.
3748
3749 Wed Feb  3 21:07:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
3750
3751         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
3752         * reload.c (find_reusable_reload): New function, broken out of
3753         push_reload.  Add code to verify that none of the involved
3754         outputs are subject to earlyclobbers.
3755         (push_reload): Break out new function find_reusable_reload.
3756         Delete "register" keyword for IN, OUT args.
3757
3758 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3759
3760         * config/mips/mips.c (true_reg_or_0_operand) : New function.
3761         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
3762         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): 
3763         Use true_reg_or_0_operand for div_trap.
3764
3765 Wed Feb  3 20:44:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3766
3767         * loop.h (express_from): Declare.
3768         (struct induction): Replace derived flag with derived_from pointer.
3769         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
3770         (express_from): No longer static.
3771         * unroll.c (find_splittable_givs): Replace derived with derived_from.
3772         When processing an address giv with which another giv has been
3773         combined that has also been derived from a third giv, handle like
3774         having combined with the third giv.
3775         Set splittable_regs_updates appropriately for derived givs.
3776
3777 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3778
3779         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
3780
3781 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
3782
3783         * pa.c (insn_sets_and_refs_are_delayed): New function.
3784         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
3785         (INSN_REFERENCES_ARE_DELAYED): Likewise.
3786  
3787 Wed Feb  3 06:24:49 1999  Richard Earnshaw (rearnsha@arm.com)
3788
3789         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
3790         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
3791         (TARGET_LIBGCC2_CFLAGS): Define.
3792         (LIBGCC2_DEBUG_CFLAGS): Define.
3793         * config/arm/t-netbsd: Likewise.
3794         * config/arm/t-semi: Likewise.
3795         * config/arm/t-semiaof: Likewise.
3796         * config/arm/t-riscix: Likewise.
3797
3798 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3799
3800         * config/m68k/m68k.c (print_operand_address): When printing a
3801         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
3802
3803 Tue Feb  2 23:38:35 1999  David O'Brien <obrien@FreeBSD.org>
3804
3805         * i386/freebsd*.h now allows '$' in label names and does not use the
3806         PCC struct return method.
3807
3808 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
3809
3810         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
3811         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
3812         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
3813         names if host == target.
3814         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
3815         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
3816         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
3817         setting them to *_FOR_TARGET.
3818         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
3819         Delete.
3820
3821 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
3822
3823         * toplev.h (read_integral_parameter): Declare.
3824         * toplev.c (read_integral_parameter): New function.
3825
3826 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
3827
3828         * resource.c, resource.h: New files.
3829         * Makefile.in (OBJS): Add it.
3830
3831         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
3832         (split_block_insns): Moved to recog.c.
3833         (update_flow_info): Make public.
3834         * rtl.h: Declare them.
3835
3836         * reorg.c: Moved the functions dealing with computing resource
3837         usage to resource.c.
3838
3839         * sched.c (regno_use_in): Moved to rtlanal.c.
3840         (update_flow_info): Make public.
3841         (schedule_insns): Use split_block_insns.
3842
3843         * recog.c (split_block_insns): New function.
3844
3845 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@gnu.org>
3846
3847         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
3848         (LINK_OS_DEFAULT_SPEC): Delete, unused.
3849
3850 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
3851  
3852         * configure.in (arm-*-oabi):  Support.
3853         * configure:  Regenerate.
3854         * config/arm/unknown-elf-oabi.h:  New file.
3855  
3856 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
3857
3858         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
3859         Make the anonymous pattern match when ! optimize_size.
3860         (ashlsi3 size optimizer): New pattern.
3861
3862         * intl/Makefile.in (uninstall): Add missing "; \".
3863
3864 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
3865
3866         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
3867         synonym.
3868
3869 Tue Feb  2 20:24:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3870
3871         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
3872         to after find_and_verify_loops call.
3873
3874 Tue Feb  2 19:48:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3875
3876         * (recombine_givs): Don't use a giv that's likely to be dead to
3877         derive others.
3878
3879         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
3880         wrap around when deriving givs.
3881
3882 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
3883
3884         * recog.c (check_asm_operands): Treat indeterminate operand ok
3885         results as success.  Try harder to resolve a matching constraint.
3886         * stmt.c (expand_asm_operands): Recognize when an output operand's
3887         constraint does not allow memory.  Treat indeterminate operand ok
3888         results as failure.  Try harder to resolve a matching constraint.
3889         
3890 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
3891
3892         Use varrays for constant-equivalence data:
3893
3894         * varray.h (struct const_equiv_data): New type.
3895         (union varray_data_tag): New element const_equiv.
3896         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
3897         (VARRAY_SIZE): New macro, returns number of elements.
3898         * integrate.h: Include varray.h.
3899         (struct inline_remap): Replace const_equiv_map, const_age_map and
3900         const_equiv_map_size with a const_equiv_varray element.
3901         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
3902         needed.
3903         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
3904         simultaneously, growing the varray if needed.
3905
3906         * integrate.c (global_const_equiv_map,
3907         global_const_equiv_map_size): Deleted, replaced by....
3908         (global_const_equiv_varray): New variable.
3909         (expand_inline_function): References changed.
3910         * integrate.h: Update declarations.
3911
3912         * integrate.c (process_reg_parm, expand_inline_function,
3913         copy_rtx_and_substitute, try_constants, subst_constants,
3914         mark_stores): Use varray allocation and accessor macros, new
3915         integrate.h macros, and global_const_equiv_varray.  Don't
3916         conditionalize non-NULL stores on array size; instead, expand the
3917         array as needed.
3918         * unroll.c (unroll_loop): Likewise.
3919
3920         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
3921         zero.  After allocating varray, always exit through bottom of
3922         function, where it can be deallocated if needed.  Don't explicitly
3923         reallocate const_equiv_map storage; instead, just ensure the
3924         varray has been initialized, and update the global reference.
3925
3926 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3927
3928         * system.h (inline, const): Handle these for stage2 (and later) gcc.
3929
3930         * dwarf2out.c (inline): Don't define.
3931
3932         * dwarfout.c (inline): Likewise.
3933
3934 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
3935
3936         * loop.c (recombine_givs): Dump recombination and derivation data.
3937
3938 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
3939
3940         * flags.h: Declare flag_no_ident.
3941         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
3942         * c-tree.h: Don't declare flag_no_ident.
3943         * c-decl.c: Don't define flag_no_ident.  Don't process
3944           -f(no-)ident switches here.
3945
3946         * config/elfos.h (ASM_FILE_END): Output final .ident directive
3947           only if !flag_no_ident.
3948         * config/ptx4.h: Likewise.
3949         * config/svr4.h: Likewise.
3950         * config/alpha/elf.h: Likewise.
3951         * config/arm/linux-elf.h: Likewise.
3952         * config/i386/sco5.h: Likewise.
3953         * config/i860/fx2800.h: Likewise.
3954         * config/mips/gnu.h: Likewise.
3955         * config/i386/osfrose.h: Likewise.
3956
3957         * gcc.c (C specs): Map -Qn to -fno-ident.
3958         * objc/lang-specs.h: Likewise.
3959
3960 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3961
3962         * configure.in: Don't remove loop.o and unroll.o when
3963         enable-haifa is selected.
3964         * configure: Rebuilt.
3965
3966 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
3967
3968         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
3969         movxfcc, movdicc): Delete unconstrained alternatives.
3970         * i386.c (output_fp_conditional_move,
3971         output_int_conditional_move): Delete unused case.
3972
3973 Sun Jan 31 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
3974
3975         * version.c: Bump for snapshot.
3976
3977 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
3978
3979         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
3980         instead of bis and cpys.  Combine alternatives where possible.
3981
3982 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3983
3984         * gcov.c (fnotice): Add missing FILE* parameter.
3985         (function_summary): Fix format specifiers in calls to `fnotice'.
3986         (output_data): Likewise.
3987
3988         * toplev.c (fnotice): Constify char* parameter.
3989
3990         * toplev.h (fnotice): Add prototype.
3991         Wrap prototype with BUFSIZ to protect FILE* usage.
3992         
3993 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3994
3995         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
3996         
3997 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
3998
3999         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
4000
4001         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
4002         function definition.
4003         (aliases_everything_p, write_dependence_p):Likewise.
4004
4005         * install.texi: Fix merge lossages.
4006
4007         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
4008         is defined.
4009         * collect2.c (main): Likewise.
4010         * cppmain.c (main): Likewise.
4011         * gcc.c (main): Likewise.
4012         * gcov.c (main): Likewise.
4013         * protoize.c (main): Likewise.
4014         * toplev.c (main): Likewise.
4015
4016         * pa.md (parallel shift and shiftadd): Mark output of shift as an
4017         earlyclobber.
4018
4019         * loop.c: Disable recent loop changes.  Temporary as Joern
4020         continues to fix problems.
4021
4022 Sat Jan 30 03:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4023
4024         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
4025
4026 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
4027
4028         * emit-rtl.c (remove_insn): New function.
4029         * rtl.h (remove_insn): Add prototype.
4030         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
4031
4032 Fri Jan 29 22:34:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4033
4034         * loop.c (recombine_givs): Don't try to derive givs that have combined.
4035
4036 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4037
4038         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
4039         when declaring arguments and calling va_arg() to initialize them.
4040
4041         * collect2.c (notice): Likewise.
4042
4043         * loop.c (find_life_end): Use PROTO() macro in the prototype.
4044
4045 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4046
4047         * collect2.c (error): Fix typo in declaration.
4048
4049         * cpperror.c (cpp_message): Likewise.
4050
4051         * cpplib.c (cpp_warning): Likewise.
4052
4053         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
4054         ATTRIBUTE_PRINTF_1.
4055
4056         * toplev.c (error): Fix typo in declaration.
4057
4058 Fri Jan 29 15:44:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4059
4060         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
4061         forward from cont dominator.
4062
4063 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4064
4065         * cccp.c (eprint_string): Constify a char*.
4066         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
4067         (vnotice): Constify a char*.
4068         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
4069         (verror): Constify a char*.
4070         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
4071         (vwarning): Constify a char*.
4072         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
4073         ATTRIBUTE_PRINTF_2.
4074         (verror_with_line): Constify a char*.
4075         (vwarning_with_line): Likewise.
4076         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
4077         ATTRIBUTE_PRINTF_2.
4078         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
4079         ATTRIBUTE_PRINTF_1.
4080         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
4081         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
4082         Also correct typo in parameter name declaration.
4083         (make_assertion): Constify a char*.
4084         (quote_string_for_make): Likewise.
4085         (deps_output): Likewise.
4086         (fatal): Likewise.  Use PVPROTO not VPROTO, add
4087         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
4088         "__attribute__ ((noreturn))".
4089         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
4090         (pfatal_with_name): Likewise.
4091         (pipe_closed): Likewise.
4092         (memory_full): Likewise.
4093
4094 Fri Jan 29 00:14:55 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4095
4096         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
4097         may_not_optimize to proper size when converting biv increments
4098         into givs.
4099         If necessary, reallocate reg_iv_type / reg_iv_info before calling
4100         recombine_givs.
4101
4102 Thu Jan 28 23:24:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4103
4104         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
4105         generate complex adds.  Changed caller.
4106         Don't generate adds that cost more than the original one.
4107         (strength_reduce): Warning fixes.
4108
4109 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
4110
4111         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
4112         * configure: Rebuilt.
4113
4114 Wed Jan 27 23:39:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4115
4116         * rtl.h (insn_first_p, no_jumps_between_p): Declare.
4117         * rtlanal.c (insn_first_p, no_jumps_between_p): New function.
4118         * loop.h (varray.h): Include.
4119         (struct induction): Change combined_with to unsigned.
4120         New members derived, ix and last_use.
4121         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
4122         (REG_IV_TYPE, REG_IV_INFO): Define.
4123         (first_increment_giv, last_increment_giv): Declare.
4124         * loop.c (loop_number_loop_cont): New static variable.
4125         (loop_number_cont_dominator): Likewise.
4126         (reg_iv_type, reg_iv_info): Now varray_type.
4127         (first_increment_giv, last_increment_giv): New variables.
4128         (compute_luids, verify_dominator, find_life_end): New functions.
4129         (cmp_recombine_givs_stats, recombine_givs): Likewise.
4130         (loop_optimize): Allocate loop_number_loop_cont and
4131         loop_number_cont_dominator.  Use compute_luids.
4132         (find_and_verify_loops): Initialize loop_number_loop_cont and
4133         loop_number_cont_dominator.
4134         (strength_reduce): Try to find bivs that can be expressed as givs
4135         of another biv, and to convert biv increments into givs.
4136         Call recombine_givs.  Handle derived givs.
4137         (record_biv): New argument location.  All callers changed.
4138         (record_giv): Initialize derived and last_use fields.
4139         (basic_induction_var): New argument location.  All callers changed.
4140         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
4141         Increment combined_with instead of setting to 1.
4142         * unroll.c (derived_regs): New static variable.
4143         (unroll_loop): Initialize it.
4144         Allocate local_regno according to max_reg_num.
4145         (copy_loop_body): Cope with derived givs.
4146         (find_splittable_givs): Check for Givs made from biv increments.
4147         Set derived_regs for givs.
4148         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
4149
4150 Wed Jan 27 19:31:36 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4151
4152         * function.c (purge_addressof_1): Handle case when a register
4153         has been used in a wider mode.
4154
4155 1999-01-27  Bruce Korb  <autogen@linuxbox.com>
4156
4157         * fixinc/fixincl.c, fixinc/server.[ch]:
4158         Removed the last of the capitalized variable and proc names.
4159
4160         * fixinc/server.c:  Removed the process open code
4161         * fixinc/procopen.c: New file containing the proc open code
4162         * fixinc/inclhack.tpl: Added code to bypass a readability test
4163         when a file is not present.  A problem on some systems.
4164         * fixinc/inclhack.sh, fixinc/fixincl.sh:  regenerated
4165
4166 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
4167
4168         * cpplib.h (cpp_notice): Add prototype.
4169
4170 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
4171
4172         * Merge gcc2 snapshot 19980929.
4173
4174         * cccp.c (PRINTF_PROTO): Remove.
4175         (PRINTF_PROTO_{1,2,3,4}: Likewise.
4176         * cexp.y: Likewise.
4177         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
4178
4179         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
4180         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
4181         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
4182
4183         * gen-protos.c (hashf): Delete in cpphash.o
4184         * gen-protos.c (hashf): Delete in cpphash.o
4185
4186         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
4187         * expmed.c: Likewise.
4188         * rs6000.md: Likewise.
4189
4190         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
4191
4192 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
4193
4194         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
4195         * rs6000.md (movsi, movdi): Likewise.
4196
4197 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
4198
4199         * function.c (expand_function_end): Pass arg_pointer_save_area to
4200         validize_mem before using it.  Emit code into a sequence.
4201
4202 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@gnu.org>
4203
4204         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
4205         '#' to split patterns.  Correct indentation of some new patterns.
4206
4207 1999-01-26 12:11 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
4208
4209         * cppfiles.c (safe_read): Deleted.  
4210         (read_and_prescan): New function, replaces safe_read, converts
4211         and/or warns about trigraphs, silently converts odd line
4212         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
4213         (finclude): Use read_and_prescan; turn off nonblocking mode on
4214         the input descriptor; remove file-size-examination and
4215         no-newline-at-EOF gunk which is longer necessary; be more
4216         careful about checking that we've been handed a legitimate
4217         file to read (only real files, pipes, and ttys are acceptable).
4218         * cpplib.h (cpp_options): Rename no_trigraphs flag to 
4219         `trigraphs' and invert its sense.
4220         (trigraph_table): Declare.
4221         (cpp_warning_with_line): Prototype.
4222         * cpplib.c: Remove all references to trigraph_pcp. Define
4223         trigraph_table; initialize it in initialize_char_syntax.  Open
4224         files in nonblocking mode.  s/no_trigraphs/trigraphs/
4225         throughout, and invert sense.  Put cpp_warning_with_line back
4226         in and export it.
4227
4228 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4229
4230         * config/c4x/c4x.h (COUNTER_REGS): New register class.
4231         * config/c4x/c4x.md (*rptb_init): Change constraints.
4232         (rptb_end): Emit alternate looping instructions if 
4233         RC register not allocated for loop counter.
4234         (decrement_and_branch_on_count): Allow other registers
4235         for loop counter.
4236
4237 1999-01-25 14:26 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
4238
4239         * cppexp.c (struct arglist): Removed.
4240         (parse_number): Use HOST_WIDE_INT for the accumulator.
4241         Allow two `l' suffixes unless C89.  Clean up.  Make static.
4242         (parse_charconst): New function broken out of cpp_lex.
4243         Code cleaned up drastically.  Don't use a token_buffer.
4244         (token_buffer): Removed.
4245         (cpp_lex): Don't call parse_number on a constant string.
4246         Use parse_charconst.
4247         (cpp_parse_expr): Properly handle an ERROR op returned by
4248         cpp_lex. 
4249
4250 1999-01-25 14:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4251
4252         * cpplib.c: Don't include signal.h, sys/times.h, or
4253         sys/resource.h. Don't declare localtime.
4254         (macroexpand): Handle special symbols here.
4255         (push_macro_expansion): Chop off the trailing '@ ' if possible
4256         here.
4257         (cpp_get_token): Don't do either of the above two things here.
4258         Move `string' label just after case '"' so that wide strings
4259         don't crash the preprocessor.
4260
4261 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@gnu.org>
4262
4263         * rs6000.md (left shift + set cr patterns): Add missing '#' to
4264         split patterns.
4265         (move register + set cr pattern): Ditto.
4266         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
4267         inadvertently deleted.
4268
4269 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
4270
4271         * stmt.c (stmt_loop_nest_empty): New function.
4272         * tree.h (stmt_loop_nest_empty): Declare it.
4273         * rtl.def (CALL_PLACEHOLDER): New rtx code.
4274
4275 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4276
4277         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
4278         New functions.
4279         (c4x_check_legit_addr): Remove USE and PLUS, allow
4280         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
4281         (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
4282         CONST cases.  Add LO_SUM.
4283         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
4284         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
4285         (c4x_print_operand_address): Handle LO_SUM.
4286         (c4x_scan_for_ldp): Delete.  Hooray!
4287         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
4288         Split all insns.
4289         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
4290         changed.
4291         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
4292         callers changed.
4293         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
4294         and CONST.
4295         (c4x_U_constraint, symbolic_operand): New functions.
4296         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
4297         disable SYMBOL_REF, LABEL_REF, and CONST.
4298         (lsrc_operand, tsrc_operand): Call src_operand instead of
4299         general_operand.
4300         (c4x_operand_subword): Update comments.
4301
4302         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
4303         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
4304         plus HIGH and LO_SUM for the C40.
4305         (ENCODE_SECTION_INFO): Define macro.
4306         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
4307         prototypes.
4308         (PREDICATE_CODES): Add symbolic_operand.
4309
4310         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
4311         c4x_emit_move_sequence.
4312         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
4313         to avoid symbol references.
4314         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
4315         (set_high): Renamed from set_high_use.
4316         (set_lo_sum): Renamed from set_ior_lo_use.
4317         (all call patterns): Make MEM explicit in call address operands.
4318         Modified output templates to use 'U' modifier.
4319         
4320 Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
4321
4322         * version.c: Bump for snapshot.
4323
4324 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4325
4326         * final.c (bb_str): Qualify a char* with the keyword `const'.
4327         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
4328
4329         * fix-header.c (read_scan_file): Likewise.
4330
4331         * genoutput.c (output_epilogue, process_template): Likewise.
4332         
4333         * local-alloc.c (requires_inout, block_alloc): Likewise.
4334
4335         * output.h (output_asm_insn, assemble_string): Likewise.
4336
4337         * recog.c (recog_constraints, check_asm_operands,
4338         decode_asm_operands, extract_insn, preprocess_constraints,
4339         constrain_operands): Likewise.
4340
4341         * recog.h (operand_alternative, recog_constraints, insn_template,
4342         insn_outfun, insn_operand_constraint, insn_name): Likewise.
4343
4344         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
4345
4346         * regmove.c (find_matches): Likewise.
4347
4348         * reload.c (alternative_allows_memconst): Likewise.
4349
4350         * reload1.c (constraint_accepts_reg_p,
4351         reload_cse_simplify_operands): Likewise.
4352
4353         * rtl.h (decode_asm_operands): Likewise.
4354
4355         * scan.h (fn_decl): Likewise.
4356
4357         * varasm.c (assemble_string): Likewise.
4358
4359 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
4360
4361         * configure.in (gcc_tooldir): Handle case where exec_prefix has
4362         not been explicitly set.
4363         * configure: Rebuilt.
4364
4365         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
4366         unused.
4367
4368         * bitmap.h (bitmap_head_def): Make indx field unsigned.
4369
4370         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
4371         use $exec_prefix/$target_alias for gcc_tooldir.
4372         * configure: Rebuilt.
4373
4374 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
4375
4376         * cppp.c (xrealloc): Fix typo last change.
4377         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
4378         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
4379         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
4380
4381 1999-01-22  Michael Meissner  <meissner@cygnus.com>
4382
4383         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
4384         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
4385         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
4386         (cc_reg_not_cr0_operand): Add declaration.
4387
4388         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
4389         pseudo register, or a control register that is not CR0.
4390
4391         * rs6000.md (all combiner patterns building . instructions): For
4392         all `.' instructions that do something and set cr0, add an
4393         alternative that does the operation, and then sets a different
4394         flag, in order to avoid using the costly mcrf instruction and also
4395         allow cr0 to be clobbered in asm statements.  Also fix a few
4396         patterns that used the wrong register.
4397
4398         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
4399         (rs6000_debug_name): Make const char *, not char *.
4400
4401         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
4402         
4403         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
4404         (rs6000_select): Use const char * in casts.
4405
4406 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
4407         
4408         * Makefile.in (gcc_tooldir): Move before first reference.
4409         Let autoconf substitute in a value.
4410         * configure.in (gcc_tooldir): Only use a relative path to the
4411         tool directory if $exec_prefix == $prefix.
4412         * configure: Rebuilt.
4413
4414         * Makefile.in (tooldir): Replace with gcc_tooldir.
4415
4416 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
4417
4418         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
4419         (ashldi3 expander): Similarly.  Update comments.
4420         (ashrdi_const, lshrdi_const): Fix indention.
4421         (ashrdi3, lshrdi3): FIx indention.  Update comments.
4422
4423 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
4424
4425         * emit-rtl.c (try_split): Don't try to split non-instructions.
4426
4427 Thu Jan 21 23:47:30 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
4428
4429         * expr.c (emit_push_insn): Fix dumb typo.
4430
4431 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
4432
4433         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
4434         transformations that we have performed earlier.
4435         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
4436
4437         * alpha.md (prologue_stack_probe_loop): Don't do our own label
4438         handling, call gen_label_rtx instead.
4439
4440 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
4441
4442         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
4443
4444         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
4445         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
4446         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
4447         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
4448         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
4449
4450 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
4451
4452         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
4453         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
4454         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
4455         * configure: Regenerate.
4456
4457         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
4458
4459 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
4460
4461         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
4462
4463 Thu Jan 21 14:18:04 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
4464
4465         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
4466         move_by_pieces.
4467         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
4468         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
4469         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
4470         (move_by_pieces): Use new macros.
4471         (emit_block_move): Use new macros.
4472         (clear_by_pieces): Use new macros.
4473         (clear_storage): Use new macros.
4474         (emit_push_insn): Use new macros.
4475         (expand_expr): Use new macros.
4476         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): 
4477         Define.
4478         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
4479         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
4480         (MOVE_MAX_PIECES): move 8 bytes on SH4.
4481         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
4482         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, 
4483         USE_STORE_PRE_DECREMENT): Describe new macros.
4484
4485 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
4486
4487         * varasm.c (output_constant_pool): Use floor_log2 instead of
4488         exact_log2 for ASM_OUTPUT_ALIGN.
4489
4490         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
4491
4492         * emit-rtl.c (operand_subword): Handle case when a subword outside
4493         the operand.
4494
4495         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
4496         the macros.
4497
4498 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
4499
4500         * cse.c (fold_rtx): Revert 29 Dec change.
4501         (cse_insn): Revert 12 Jan change.
4502         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
4503         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
4504         * rtl.def: Likewise.
4505         * rtl.h (CONSTANT_P): Likewise.
4506
4507         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
4508         to memory.
4509         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
4510         * alpha.c (input_operand): Likewise.
4511         * c4x.c (const_operand): Likewise.
4512
4513         * explow.c (allocate_dynamic_stack_space): Use register_operand
4514         instead of arith_operand, which does not exist.
4515
4516         * 1750a.h: Fix comment closure.
4517         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
4518         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
4519         * arm.h (TARGET_SWITCHES): Fix typo.
4520         * i370.md (anon mult and div patterns): Fix set mode mismatch.
4521         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
4522         (output_delay_insn): Likewise.
4523         * m88k.md (anon rotate insns): Fix set mode mismatch.
4524         (anon BLKmode moves): Commonize and fix set mode mismatches.
4525         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
4526         * romp.md (movdf): Fix typo.
4527
4528 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
4529
4530         * Makefile.in (install-common): Remove extraneous chmod for gcov
4531         install.
4532
4533 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
4534
4535         * function.c (assign_parms): Save and restore setting of
4536         TREE_USED (parm).
4537
4538 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
4539
4540         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
4541         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
4542
4543 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
4544
4545         * recog.c (pop_operand): New function.
4546         * recog.h (pop_operand): Declare it.
4547         * genrecog.c (preds): Define it.
4548
4549         * expr.c (do_jump_for_compare): Handle conditional branch expanders
4550         emitting multiple jump instructions.
4551         * jump.c (condjump_label): New function.
4552         * rtl.h (condjump_label): Declare it.
4553
4554 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
4555
4556         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
4557         clobber during or after reload.
4558
4559 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
4560
4561         * genoutput.c (name_for_index): New function.
4562         (scan_operands, validate_insn_alternatives): Use it.
4563         * genrecog.c (insn_name_ptr_size): New variable.
4564         (make_insn_sequence): Fill in insn_name_ptr.
4565         (merge_trees): Use it.
4566
4567 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
4568
4569         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
4570         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
4571         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
4572
4573 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
4574
4575         * loop.c (NUM_STORES): Delete.
4576         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
4577         (prescan_loop): Properly initialize loop_mems_idx.
4578         (note_addr_stored): Simplify using list structure instead of
4579         fixed sized array.
4580         (invariant_p, check_dbra_loop, load_mems): Similarly.
4581
4582         * flow.c (invalidate_from_autoinc): New function.
4583         (mark_set_1, mark_used_regs): Use it.
4584
4585         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
4586
4587 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
4588
4589         * invoke.texi (-mlong-double-64): New option description.
4590
4591 1999-01-19  Jim Wilson  <wilson@cygnus.com>
4592
4593         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
4594         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
4595         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
4596         if not defined.
4597         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
4598         (CPP_SPECS): Add -mlong-double-64 support.
4599         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
4600         (TARGET_SWITCHES): Add -mlong-double-64 support.
4601         (LONG_DOUBLE_TYPE_SIZE): Likewise.
4602         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
4603         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
4604         (CPP_SPECS): Add -mlong-double-64 support.
4605         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
4606         (MULTILIB_DIRNAMES): Add ld64.
4607         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
4608
4609 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
4610
4611         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
4612         invisible reference.
4613
4614 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@gnu.org>
4615
4616         * rs6000.c (offsettable_addr_operand): Delete.
4617         (offsettable_mem_operand): New function.
4618         * rs6000.h (PREDICATE_CODES): Reflect function change.
4619         (RS6000_SAVE_TOC): Represent address as MEM.
4620         * win-nt.h (RS6000_SAVE_TOC): Same.
4621         * rs6000.md (indirect calls): Change offsettable address parameter
4622         to offsettable memory parameter.
4623
4624 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
4625
4626         * rtl.h (rtx_def): Update documentation.
4627         (MEM_IN_STRUCT_P): Likewise.
4628         (MEM_SCALAR_P): New macro.
4629         (MEM_COPY_ATTRIBUTES): Likewise.
4630         (MEM_SET_IN_STRUCT_P): Likewise.
4631         * rtl.texi (MEM_SCALAR_P): Document.
4632         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
4633         (fixed_scalar_and_varying_struct_p): New function.  Use
4634         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
4635         (aliases_everything_p): Likewise.
4636         (true_dependence): Use them.
4637         (write_dependence_p): New function, containing code common to
4638         anti_dependence and output_dependence.
4639         (anti_dependence): Use it.
4640         (output_dependence): Likewise.
4641         * calls.c (save_fixed_argument_area): Don't clear
4642         MEM_IN_STRUCT_P. 
4643         (expand_call): Use MEM_SET_IN_STRUCT_P.
4644         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
4645         (emit_library_call_value): Likewise.
4646         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
4647         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
4648         (make_extraction): Likewise.
4649         (simplify_shift_const): Likewise.
4650         (gen_lowpart_for_combine): Likewise.
4651         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
4652         * emit-rtl.c (operand_subword): Likewise.
4653         (change_address): Likewise.
4654         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
4655         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
4656         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
4657         (copy_blkmode_from_reg): Likewise.
4658         (store_field): Likewise.
4659         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
4660         heuristically.  Use MEM_SET_IN_STRUCT_P.
4661         (get_memory_rtx): Likewise.
4662         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
4663         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
4664         MEM_ALIAS_SET on newly returned MEMs.
4665         (assign_temp): Use MEM_SET_IN_STRUCT_P.
4666         (put_reg_into_stack): Likewise.
4667         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
4668         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
4669         (assign_parms): Likewise.
4670         (expand_function): Likewise.
4671         * integrate.c (expand_inline_function): Likewise.
4672         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
4673         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
4674         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
4675         * print-rtl.c (print_rtx): Print /f for frame_related.
4676         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
4677         * reload1.c (reload): Copy MEM_SCALAR_P as well.
4678         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
4679         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
4680         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
4681         (output_constant_def): Likewise.
4682         * a29k.c (a29k_set_memflags_1): Take scalar_p.
4683         Set MEM_SCALAR_P.
4684         (a29k_set_memflags): Use it.
4685         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
4686         * c4x.c (c4x_scan_for_ld): Likewise.
4687         * h8300.c (fix_bit_operand): Likewise.
4688         * m88k.c (legitimize_address): Likewise.
4689         (block_move_loop): Likewise.
4690         (block_move_no_loop): Likewise.
4691         (block_move_sequence): Likewise.
4692         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
4693         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
4694         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
4695         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
4696         * arm.h (arm_gen_load_multiple): Take scalar_p.
4697         (arm_store_load_multiple): Likewise.
4698         * arm.c (arm_gen_load_multiple): Likewise.
4699         (arm_gen_store_multiple): Likewise.
4700         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
4701         
4702 Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
4703
4704         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
4705         calls within a libcall block to indicate no throws are possible.
4706         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
4707         libcall blocks. Don't add edges to exception handlers if we see 
4708         a REG_EH_REGION note with a value of 0.
4709         (make_edges): Override active_eh_region vector if the call has a note
4710         indicating the call does not throw.
4711
4712 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
4713
4714         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
4715
4716 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
4717
4718         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
4719
4720 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
4721
4722         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
4723
4724 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
4725
4726         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
4727         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
4728         PPC750.
4729
4730 1999-01-18  Michael Meissner  <meissner@cygnus.com>
4731
4732         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
4733         supported with -mcpu=xxx.
4734         (processor_type): Add PROCESSOR_PPC750.
4735         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
4736         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
4737         (rs6000_adjust_priority): Add declaration.
4738         
4739         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
4740         processor type as 750, not 603.  Allow -mmultiple and -mstring on
4741         little endian 750 systems.
4742         (rs6000_adjust_priority): Stub for now.
4743         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
4744
4745         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
4746
4747         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
4748         little endian.
4749         (CC1_SPEC): Pass -mstrict-align if little endian, and not
4750         overridden.
4751         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
4752         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
4753
4754         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
4755         little endian.
4756
4757         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
4758
4759 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4760
4761         * config/mips/mips.md (div_trap): Split div_trap_mips16
4762         from div_trap.  
4763         (div_trap_normal,div_trap_mips16): Correct the length attributes.
4764
4765 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4766
4767         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
4768         Instead of writing to const char *buf directly, use a non-const
4769         variable `wbuf' to allocate and write a string, then set buf = wbuf.
4770
4771         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
4772         keyword.
4773
4774         * dyn-string.c (dyn_string_append): Likewise.
4775
4776         * dyn-string.h (dyn_string_append): Likewise.
4777
4778         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
4779
4780         * output.h (end_final, output_operand_lossage, asm_fprintf,
4781         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
4782         Likewise.
4783
4784         * profile.c (init_branch_prob): Likewise.
4785
4786         * toplev.c (set_target_switch, vmessage,
4787         v_message_with_file_and_line, v_message_with_decl,
4788         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
4789         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
4790         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
4791         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
4792         open_dump_file, dump_rtl, clean_dump_file, 
4793         print_version, print_single_switch, print_switch_values,
4794         dump_base_name, debug_args, lang_independent_options,
4795         user_label_prefix, documented_lang_options, target_switches,
4796         target_options, print_time, pfatal_with_name, fatal_io_error,
4797         fatal_insn, default_print_error_function, print_error_function,
4798         report_error_function, error_with_file_and_line, error_with_decl,
4799         error_for_asm, error, fatal, warning_with_file_and_line,
4800         warning_with_decl, warning_for_asm, warning, pedwarn,
4801         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
4802         really_sorry, botch, output_quoted_string, output_file_directive,
4803         open_dump_file, rest_of_decl_compilation, display_help, main):
4804         Likewise.
4805
4806         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
4807         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
4808         warning_with_file_and_line, error_with_file_and_line, sorry,
4809         really_sorry, default_print_error_function, report_error_function,
4810         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
4811         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
4812         output_file_directive, botch): Likewise.
4813
4814         * tree.h (make_decl_rtl): Likewise.
4815
4816         * varasm.c (strip_reg_name, named_section, decode_reg_name,
4817         make_decl_rtl): Likewise.
4818         
4819 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
4820
4821         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
4822         directory logically rather than physically. 
4823
4824 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4825
4826         * loop.c (insert_bct): Hide the definition of variables
4827         `increment_direction', `compare_direction', `add_iteration' and
4828         `loop_var_mode'.
4829
4830         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
4831         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
4832         (mode_independent_operand): Mark label `lose' with
4833         ATTRIBUTE_UNUSED_LABEL.
4834
4835         * regclass.c (n_occurrences): Remove prototype and definition.
4836
4837         * reload.c (find_reloads_address_1): Mark variable `tem' with
4838         ATTRIBUTE_UNUSED.
4839
4840         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
4841
4842         * sbitmap.c (sbitmap_copy): Likewise.
4843
4844         * scan-decls.c (scan_decls): Hide label `handle_comma'.
4845
4846         * toplev.c (output_lang_identify): Mark prototype with
4847         ATTRIBUTE_UNUSED.
4848
4849         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
4850         (make_tree_vec): Likewise.
4851         (build1): Likewise.
4852
4853         * varasm.c (assemble_static_space): Mark variable `tem' with
4854         ATTRIBUTE_UNUSED.
4855
4856 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
4857
4858         * Makefile.in (GCOV_INSTALL_NAME): New macro.
4859         (install-common): Use it.
4860         (uninstall): Use it.
4861         (uninstall): Use correct names for protoize and unprotoize.
4862
4863 Mon Jan 18 03:52:56 1999  Christian Bruel <Christian.Bruel@st.com>
4864                           Jeffrey A Law  (law@cygnus.com)
4865
4866         * flow.c (last_mem_set): Delete variable.  References removed.
4867         (mem_set_list): New variable.
4868         (life_analysis): Initialize and finalize alias analysis.
4869         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
4870         (insn_dead_p): For a store to memory, search the entire mem_set_list
4871         for a match.
4872         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
4873         changes to their addresses.  Add new entries to the mem_set_list for
4874         memory writes writes.
4875         (mark_used_regs): Kill entries on the mem_set_list which may be
4876         referenced by a load operation.
4877
4878 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
4879
4880         * alias.c (base_alias_check): Add missing return for differing
4881         symbols case.
4882
4883 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4884
4885         * mips-tdump.c (print_file_desc): Handle unknown filenames and
4886         missing local symbols.
4887
4888 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
4889
4890         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
4891
4892         * system.h (bcopy): Implement with memmove not memcpy.
4893
4894 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
4895
4896         * Makefile.in (cppulp.o): Add dependencies.
4897
4898         * i386.md (integer conditional moves): Add missing earlyclobbers.
4899
4900         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
4901         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
4902         where a register is live.
4903
4904 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
4905
4906         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
4907         of a FP conditional move is not on the FP register stack.
4908
4909 Sun Jan 17 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
4910
4911         * version.c: Bump for snapshot.
4912
4913 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
4914
4915         * reload1.c (reload_cse_regs_1): Do not call
4916         reload_cse_simplify_operands for an insn with asm operands.
4917
4918         * cccp.c (print_help): Fix typos.
4919         * cpplib.c (print_help): Fix typos.
4920         * toplev.c (f_optiosn): Fix typos.
4921         (documented_lang_options): Fix typos.
4922
4923 Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
4924
4925         * gcc.c: (do_spec_1): Fix obvious typo.
4926
4927 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4928
4929         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
4930         a non-static function declaration follows a static one.
4931
4932         * invoke.texi (-Wtraditional): Document the extra check now done
4933         by this flag.
4934
4935 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
4936
4937         * pa.md (shadd): Create shadd insns, even if the result of the shift is
4938         needed without the addition.
4939
4940 Sat Jan 16 10:48:16 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
4941
4942         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
4943
4944 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
4945
4946         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
4947
4948 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@gnu.org>
4949
4950         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
4951         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
4952         non_add_cint_operand, non_logical_cint_operand): Likewise.
4953         (get_issue_rate): Add CPU_PPC604E case.
4954         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
4955         
4956 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
4957
4958         * expr.c (queued_subexp_p): Make public.
4959         * expr.h (queued_subexp_p): Declare it.
4960         * recog.c (asm_operand_ok): New function.
4961         (check_asm_operands): Use it.  After reload, use constrain_operands 
4962         instead.
4963         * recog.h (asm_operand_ok): Declare it.
4964         * stmt.c (expand_asm_operands): Use it to try harder to make
4965         asms initially satisfy their constraints.
4966
4967 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
4968
4969         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
4970         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
4971
4972 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4973
4974         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
4975         in delay slot of RPTBD.
4976
4977 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4978
4979         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
4980         divide and modulo sign problem.
4981
4982 Fri Jan 15 11:02:31 1999   Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4983
4984         * unroll.c (loop_iterations): Return 0 if the last loop insn
4985         is not a jump insn or if the loop has multiple back edges.
4986
4987 1999-01-15  Manfred Hollstein  <manfred@s-direktnet.de>
4988
4989         * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3};
4990         it's working properly now.  Remove comment saying "see m68k-motorola-sysv
4991         as an example".
4992         * configure: Regenerate using autoconf.
4993
4994         * fixinc/fixincl.c (main): Do not ignore SIGCHLD.
4995
4996 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
4997
4998         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
4999         a register with another DEST_ADDR giv if the address is not valid.
5000
5001         * pa.c (hppa_expand_epilogue): Save and restore the static chain
5002         around the call to mcount.
5003
5004         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
5005
5006         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
5007         generating non-canonical rtl.
5008
5009 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
5010
5011         * config/i960/i960.c (i960_output_move_double_zero,
5012         i960_output_move_quad_zero): New functions for moving zeros.
5013         (i960_output_move_double, i960_output_move_quad): Additional code
5014         for situation when moving unaligned register group.
5015         
5016         * config/i960/i960.h (i960_output_move_double_zero,
5017         i960_output_move_quad_zero): The function definitions.
5018
5019         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
5020
5021 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
5022
5023         * config/i960/i960.c (i960_function_prologue): New code (optimal
5024         solution) for saving global registers in local registers.
5025         (form_reg_groups, reg_group_compare, split_reg_group): New
5026         functions used by the code.
5027         (reg_group): New structure definition for the new code.
5028
5029 1999-01-13  Manfred Hollstein  <manfred@s-direktnet.de>
5030
5031         * fixinc/fixincl.c (create_file): Pass file creation mask as
5032         third parameter to "open".  Use O_TRUNC flag to open instead of
5033         explicitly unlink'ing the file.
5034         (process): and forget about the "chmod" stuff.
5035
5036 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
5037
5038         * integrate.c (expand_inline_function): Recognize (mem (addressof))
5039         and substitute.  Copy the return value from there into a new pseudo.
5040
5041 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
5042
5043         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
5044         before generating a call to abort for volatile functions.
5045         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
5046         (TARGET_ABORT_NORETURN):  Define.
5047         (abort-on-noreturn):  New option.
5048
5049 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5050
5051         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc 
5052         and binarycc operations in 3rd annulled delay slot!
5053
5054 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
5055
5056         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
5057         before generating a call to abort for volatile functions.
5058         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
5059         (TARGET_ABORT_NORETURN):  Define.
5060         (abort-on-noreturn):  New option.
5061
5062 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5063
5064         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
5065         Remove prototype which we get from libiberty.h.
5066
5067         * collect2.c (xstrdup): Likewise.
5068
5069         * genextract.c (xstrdup): Likewise for `copystr'.
5070         (mybzero): Remove it and use `memset' instead.
5071
5072         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
5073         to use `memcpy' and `memset' instead.
5074
5075         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
5076         changed.  Remove prototype.
5077         (mybcopy, mybzero): Remove these and use memcpy/memset.
5078
5079 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
5080
5081         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
5082         generating code for TARGET_64BIT.
5083
5084 Tue Jan 12 14:05:37 1999   David Edelsohn  <edelsohn@gnu.org>
5085
5086         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
5087         HOST_WIDE_INT word-size.
5088         (rs6000_stack_info): Remove redundant alignment of fpmem.
5089
5090 Tue Jan 12 14:05:37 1999   Richard Henderson  <rth@cygnus.com>
5091
5092         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
5093         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
5094         (input_operand): Adjust CONSTANT_P_RTX handling.
5095         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
5096         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
5097         (movhi, movqi): Remove CONSANT_P_RTX handling.
5098         (movdi): Adjust CONSTANT_P_RTX handling.
5099
5100 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
5101
5102         * configure: Regenerate using autoconf.
5103
5104         * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include.
5105         * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems.
5106         (process): "fchmod" isn't available on all systems, use "chmod"
5107         instead.
5108         * fixinc/server.c: Add #include <sys/types.h>.
5109         (STDIN_FILENO): Add default definition if no include file defines
5110         it already.
5111         (STDOUT_FILENO): Likewise.
5112
5113 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
5114
5115         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
5116
5117 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
5118
5119         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
5120         ensure all prototypes necessary for building libio will be available.
5121         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
5122         definitions here as they are not host specific.
5123         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
5124
5125 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
5126
5127         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
5128
5129 Tue Jan 12 02:36:10 PST 1999 Jeff Law  (law@cygnus.com)
5130
5131         * version.c: Bump for snapshot.
5132
5133 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
5134
5135         * rtl.c (rtx_alloc): Use memset instead of inline loop.
5136
5137         * recog.h (recog_op_alt): Declare extern.
5138
5139 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
5140
5141         * function.c (purge_addressof_1): If the note accesses a mem+addressof
5142         in a wider mode than any replacement, adjust the cached replacement.
5143         Cache trivial substitutions as well.
5144
5145 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
5146
5147         * Makefile.in (OBJECTS): Add sbitmap.o.
5148         (BASIC_BLOCK_H): Add sbitmap.h.
5149         * basic-block.h: Move simple bitmap code to sbitmap.h.
5150         * flow.c: Move simple bitmap code to sbitmap.c
5151         * sbitmap.h, sbitmap.c: New files.
5152
5153 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
5154
5155         * alpha.h (TARGET_SWITCHES): Document switches.
5156         (TARGET_OPTIONS): Likewise.
5157
5158         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
5159
5160 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
5161
5162         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
5163
5164 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
5165
5166         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
5167         (basic_block_end): Rename to x_basic_block_end.
5168         (BLOCK_HEAD, BLOCK_END): Update.
5169
5170         * caller-save.c: Change basic_block_head/end references to 
5171         BLOCK_HEAD/END.
5172         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
5173         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
5174         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
5175
5176 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5177
5178         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
5179         changed.  Remove prototype since we get that from libiberty.h.
5180
5181         * protoize.c (xstrerror): Likewise.
5182
5183 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5184
5185         * gcc.c (read_specs): Ensure format specifiers match their arguments.
5186
5187 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
5188
5189         * tree.c (copy_node): Oops.  That would be copy not zero
5190         in that last change.
5191
5192 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5193
5194         * config/c4x/c4x.c: Include system.h.
5195         (c4x_caller_save_map): Disable caller save for RC.
5196         (c4x_optimization_options): Disable scheduling before reload.
5197         (valid_parallel_load_store) : Define return type as int.  
5198         Remove unused variable regs.
5199         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
5200         class.
5201         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
5202         handle rotations.
5203         (*db, decrement_and_branch_until_zero): Fix up constraints
5204         to keep reload happy.
5205
5206 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
5207
5208         * tree.c (make_node): Call bzero instead of inline clear.
5209         (copy_node, make_tree_vec, build1): Likewise.
5210         (get_identifier): Call strlen instead of inline count.
5211         (maybe_get_identifier): Likewise.
5212
5213 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5214
5215         * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
5216         operations in 3rd annulled delay slot.
5217         (*lshrqi3_const_set): Disallow c constraint for operand0.
5218         (modhi3+1, modhi3+2): Set attribute type to multi.
5219         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
5220         != operator.
5221
5222 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5223
5224         * gansidecl.h: Allow attribute unused on labels only when we are
5225         version 2.93 or higher.  Not all versions of 2.92 have this feature.
5226
5227         * version.c: Bump minor number to 93.
5228
5229 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5230
5231         * config/m68k/m68k.h: Declare output_function_epilogue.
5232         * recog.h: Declare next_insn_tests_no_inequality.
5233
5234 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
5235
5236         * stmt.c (optimize_tail_recursion): New function, extracted from ...
5237         (expand_return): Use optimize_tail_recursion.
5238         * tree.h (optimize_tail_recursion): Declare.
5239
5240         * toplev.c (compile_file): Move call to output_func_start_profiler
5241         to after the loop to emit deferred functions.
5242
5243 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5244
5245         * system.h (abort): Supply more detailed information on how to
5246         report an Internal Compiler Error.
5247
5248 Thu Jan 7  9:25:58 PST 1999 Bruce Korb (korb@datadesign.com)
5249
5250         * fixinc/fixincl.c (*): more decapitalization of variables
5251         plus some explanitory comments
5252
5253         * fixinc/Makefile.in fixinc/mkfixinc.sh:
5254         When the fixincl program does not work for a certain system,
5255         we substitute a shell script.  Added user commentary when
5256         this happens.
5257
5258 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
5259
5260         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
5261         allocate memory that will live beyond this function.
5262         (expand_call): Free it here.
5263
5264 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
5265
5266         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
5267         integer data not destined for fp regs.
5268         (LEGITIMIZE_RELOAD_ADDRESS): New.
5269
5270 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
5271                           Richard Henderson  <rth@cygnus.com>
5272
5273         Support for Hypersparc and Sparclite86x:
5274         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
5275         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
5276         (ASM_CPU32_DEFAULT_SPEC): Likewise.
5277         (TARGET_CPU_DEFAULT): Likewise.
5278         (enum processor_type): Likewise.
5279         (CPP_ENDIAN_SPEC): Handle little endian data.
5280         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
5281         (ADJUST_COST): Call sparc_adjust_cost.
5282         * sparc.c (sparc_override_options): Fix up for the new targets.
5283         (supersparc_adjust_cost): Make static.
5284         (hypersparc_adjust_cost): New.
5285         (ultrasparc_adjust_cost): Make static.
5286         (sparc_adjust_cost): New.
5287         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
5288         (function_unit): Add hypersparc scheduling rules.
5289
5290         * configure.in (with_cpu handler): Recognize hypersparc.
5291
5292 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5293
5294         * config/c4x/c4x.c: Added space after negation operator.
5295         * config/c4x/c4x.h: Likewise.
5296         * config/c4x/c4x.md: Likewise.
5297
5298 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5299
5300         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
5301
5302 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
5303
5304         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
5305         when a test can't be performed due to limited width of
5306         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
5307         Fix UDIV case for cases where the first operand has the highest bit
5308         set.
5309
5310 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
5311
5312         * pa.h (reg_class): Add FPUPPER_REGS.
5313         (REG_CLASS_NAMES): Similarly.
5314         (REG_CLASS_CONTENTS): Similarly
5315         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
5316         (FP_REG_CLASS_P): Likewise.
5317         (REG_CLASS_FROM_LETTER): Similarly.
5318         (CLASS_MAX_NREGS): Similarly.
5319
5320 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
5321
5322         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
5323         for a typedef of bool.  Make sure to have a copy of the file is
5324         in place before we look to fix it.  Fix typo in variable name to
5325         FILE.
5326
5327 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
5328
5329         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
5330         value_mode for the return mode.
5331
5332 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
5333
5334         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
5335         debugging as default.
5336
5337         * config/tm-dwarf2.h: New file.
5338
5339 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
5340
5341         * h8300.h (ASM_OUTPUT_LABELREF): Define.
5342
5343         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
5344         * local-alloc.c (update_equiv_regs): Corresponding changes.
5345         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
5346
5347         * calls.c (special_function_p): Push alloca test inside the large
5348         conditional which excludes functions not at file scope or not
5349         extern.  
5350
5351         * calls.c (special_function_p): New function broken out of
5352         expand_call.
5353         (precompute_register_parameters): Likewise.
5354         (store_one_arg): Likewise.
5355         (store_unaligned_argumetns_into_pseudos): Likewise.
5356         (save_fixed_argument_area): Likewise.
5357         (restore_fixed_argument_area): Likewise.
5358         (expand_call): Corresponding changes.
5359
5360 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5361
5362         * config/c4x/c4x.md (addqi3): If the destination operand is
5363         a hard register other than an extended precision register,
5364         emit addqi3_noclobber.
5365         (*addqi3_noclobber_reload): New pattern added so that reload
5366         will recognise a store of a pseudo, equivalent to the sum
5367         of the frame pointer and a constant, as an add insn.
5368
5369 1999-01-06  Manfred Hollstein  <manfred@s-direktnet.de>
5370
5371         * fixinc/fixincl.c: Re-indent according to the GNU standards.
5372         fixinc/server.c: Likewise.
5373         fixinc/server.h: Likewise.
5374
5375 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5376
5377         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
5378         handling.
5379         (const_sint32_operand): Likewise.
5380
5381 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5382
5383         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
5384         is a macro when deciding if we can use `jmp_buf' in prototypes.
5385
5386 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net>
5387
5388         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
5389         * configure: Rebuilt.
5390         * i386/xm-go32.h: Define LIBSTDCXX.
5391         * i386/x-go32: New.
5392         * i386/go32.h (MD_EXEC_PREFIX): Define.
5393         (FILE_NAME_ABSOLUTE_P): Define.
5394         (LINK_COMMAND_SPEC): Define.
5395
5396 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
5397
5398         * expr.c (store_expr): If the lhs is a memory location pointed
5399         to be a postincremented (or postdecremented) pointer, always
5400         force the rhs to be evaluated into a pseudo.
5401
5402 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
5403
5404         * real.c (mtherr): Print more reasonable warning messages.
5405
5406 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5407
5408         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
5409
5410         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
5411         (new_include_prefix): Constify char* parameters.
5412
5413         * cppfiles.c (read_name_map): Likewise.
5414         (append_include_chain): Likewise.  Also, use a writable char* copy
5415         of parameter `dir' which we then modify, rather than using the
5416         parameter itself to store the new writable string.
5417         (remap_filename): Constify some variables.  Also, use a writable
5418         char* to store an allocated string which we will be modifying.
5419
5420         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
5421         (cpp_start_read): Constify variable `str'.
5422
5423         * cpplib.h (append_include_chain): Constify a char* parameter.
5424
5425         * gcc.c Include prefix.h, don't prototype prefix.c functions.
5426         (add_prefix, save_string): Constify char* parameters.
5427         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
5428
5429         * prefix.c: Include prefix.h.
5430         (get_key_value, translate_name, save_string, update_path,
5431         set_std_prefix): Constify various char* parameters and variables.
5432         (save_string): Use xmalloc, not malloc.
5433         (translate_name): Use a writable temporary variable to create and
5434         modify a string before setting it to a const char*.
5435         
5436         * prefix.h: New file to prototype functions exported from prefix.c.
5437
5438 Tue Jan 5  8:52:18 PST 1999 Bruce Korb (korb@datadesign.com)
5439
5440         * fixinc/fixincl.c (various): added debug code so
5441         Manfred can trace the processing.
5442
5443         * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of
5444         struct utsname on Ultrix V4.[35].
5445
5446         * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : regenerated
5447
5448 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5449
5450         * cpplib.c (skip_if_group): Split out the logic that handles
5451         directive recognition to its own function.  Don't use
5452         parse markers; use a bare pointer into the buffer.  Use
5453         copy/skip_rest_of_line instead of doing it by hand.  Remove
5454         `return on any directive' mode which was never used, and take
5455         only one argument.
5456         (consider_directive_while_skipping): New function, subroutine
5457         of skip_if_group.  Logic streamlined a bit.
5458         (conditional_skip, do_elif, do_else): Call skip_if_group with
5459         only one argument.
5460
5461 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5462
5463         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
5464         error.
5465
5466 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
5467
5468         * extend.texi (Bound member functions): Document.
5469
5470 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5471
5472         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
5473         lang_to_string, type_to_string): Make return type const char*.
5474         (print_symbol): Apply `const' keyword to a char*.
5475         (print_file_desc): Cast structure member `crfd' to ulong when
5476         comparing against one.
5477
5478         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
5479         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
5480         (progname, input_name): Apply `const' keyword to a char*.
5481         Don't redundantly include sys/stat.h.
5482         (alloc_info): Apply `const' keyword to a char*.
5483         (st_to_string, sc_to_string): Likewise.
5484         (hash_string): Cast variable `hash_string' to a symint_t when
5485         comparing against one.
5486         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
5487         Likewise cast it to long when comparing against one.
5488         (add_local_symbol): Apply `const' keyword to a char*.
5489         (add_ext_symbol): Likewise.
5490         (add_unknown_tag): Likewise.
5491         (add_procedure): Cast a printf-style field width to an int.
5492         (add_file): Cast PAGE_USIZE to long when comparing against one
5493         (parse_begin): Cast a printf-style field width to an int.
5494         (parse_bend): Likewise.
5495         (parse_def): Likewise.
5496         (parse_end): Likewise.
5497         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
5498         (parse_stabs_common): Fix format specifier.
5499         (parse_input): Change type of variable `i' to Size_t.
5500         (write_object): Fix arguments to match format specifiers.
5501         Cast variable `num_write' to long when comparing against one.
5502         (read_seek): Cast variable `sys_read' to symint_t when comparing
5503         against one.  Fix arguments to match format specifiers.  Cast
5504         variable `size' to long when comparing against one.
5505         (copy_object): Cast result of `sizeof' to int when comparing
5506         against one.  Fix arguments to match format specifiers.  Cast
5507         variable `ifd' to long when comparing against a signed value.
5508         Likewise, likewise.
5509         
5510 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5511
5512         * c-common.c (decl_attributes): Allow applying attribute `unused'
5513         on a LABEL_DECL.
5514
5515         * c-parse.in (label): Parse attributes after a label, and call
5516         `decl_attributes' to handle them.
5517
5518         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
5519
5520         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
5521         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
5522
5523         * invoke.texi: Note that labels can be marked `unused'.
5524
5525 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
5526
5527         * version.c: Bump for snapshot.
5528
5529 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
5530
5531         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
5532         RTL for a compare/jump sequence.
5533         
5534 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5535
5536         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
5537         for a target with HAVE_cc0 defined.
5538         (emit_cmp_and_jump_insns): New function.
5539         * expr.h (emit_cmp_and_jump_insns): Prototype it.
5540         * loop.c (check_dbra_loop): Use it to replace calls
5541         to emit_cmp_insn and emit_jump_insn and to canonicalise
5542         the comparison if necessary.
5543         * unroll.c (unroll_loop): Likewise.
5544
5545 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5546
5547         * fixincludes (sys/utsname.h): Provide forward declaration of
5548         struct utsname on Ultrix V4.[35].
5549
5550         * mips.md (div_trap): Use local labels instead of dot-relative
5551         branches.
5552
5553 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
5554
5555         * pa.md (branch, negated branch): Handle (const_int 0) as first
5556         source operand.
5557         * pa.c (output_cbranch): Likewise.
5558
5559 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@gnu.org>
5560
5561         * rs6000.c (rs6000_stack_info): Undo spurious part of last
5562         change.
5563
5564 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
5565
5566         * extend.texi (__builtin_constant_p): Add missing @smallexample.
5567
5568 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
5569
5570         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
5571
5572 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
5573
5574         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
5575         (adddi_dishl32): Similarly.
5576
5577         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
5578         for each insn in the skipped block.
5579
5580         * reload1.c (reload_as_needed): Verify that the insn satisfies its
5581         constraints after replacing a register address with an autoincrement
5582         address for reload inheritance purposes.
5583
5584         * i386.md (doubleword shifts): Avoid namespace pollution.
5585
5586 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
5587
5588         * configure.in (FreeBSD ELF): Needs special crt files.
5589
5590 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
5591
5592         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
5593
5594 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
5595
5596         * loop.c (check_dbra_loop): While reversing the loop, if the
5597         comparison value has a VOID mode use the mode of the other operand
5598         to compute the mask.
5599
5600 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
5601
5602         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
5603         avoid warnings in compiling explow.c.
5604
5605         (patch from Ken Raeburn, raeburn@cygnus.com)
5606         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
5607         fpmem_offset.  Compute total size after that, and then
5608         rs6000_fpmem_offset using both values.
5609
5610 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5611
5612         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
5613         the future; indeed that already happens in some cases.
5614
5615 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
5616
5617         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
5618         (arith_operand): Remove constant_p_rtx handling.
5619         (const64_operand, const64_high_operand): Likewise.
5620         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
5621         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
5622         (small_int_or_double, uns_small_int, zero_operand): Likewise.
5623         * sparc.h (PREDICATE_CODES): Likewise.
5624
5625         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
5626
5627 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
5628
5629         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
5630         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
5631         consider constant CONSTRUCTOR constant and to defer some cases
5632         to cse.
5633         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
5634         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
5635
5636 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
5637
5638         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
5639         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
5640
5641         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
5642         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
5643         (sext_add_operand, and_operand, or_operand): Likewise.
5644         (reg_or_cint_operand, some_operand, input_operand): Likewise.
5645         * alpha.h (PREDICATE_CODES): Likewise.
5646
5647 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
5648
5649         * version.c: Bump for snapshot.
5650
5651 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
5652
5653         * gengenrtl.c (gencode): Always use bzero to clear memory instead
5654         of dangerous casts and stores.
5655
5656         * Makefile.in (compare, gnucompare): Add missing else true clauses.
5657
5658 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
5659
5660         * alpha.md (builtin_longjmp): Add missing "DONE".
5661
5662 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
5663
5664         * gcc.c (execute): Enable -pipe with win32.
5665
5666 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
5667
5668         * config/arm/t-arm-elf: Add multiplib option for leading
5669         underscores.
5670
5671         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
5672         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
5673
5674         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
5675         than variable 'reload_address_base_reg_class'.  [Note this
5676         change is unrelated to the others in this patch].
5677
5678         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
5679         leading underscore.
5680
5681 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5682
5683         * alias.c (record_alias_subset): Remove ignored `&'.
5684         (init_alias_once): Likewise.
5685
5686         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
5687
5688         * config/mips/mips.c (mips_asm_file_end): Cast the result of
5689         fwrite to `int' when comparing against one.
5690
5691         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
5692         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
5693
5694         * cse.c (rehash_using_reg): Change type of variable `i' to
5695         unsigned int.
5696
5697         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
5698         assigning it to one.
5699
5700         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
5701
5702         * final.c (final_scan_insn): Likewise for variable `i'.
5703         (output_asm_insn): Cast a char to unsigned char when used as an
5704         array index.
5705
5706         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
5707         assigning it to one.
5708
5709         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
5710
5711         * recog.c (preprocess_constraints): Cast a char to unsigned char
5712         when used as an array index.
5713
5714         * regmove.c (find_matches): Likewise.
5715
5716         * reload1.c (calculate_needs): Add default case in switch.
5717         (eliminate_regs_in_insn): Initialize variable `offset'.
5718         (set_offsets_for_label): Change type of variable `i' to unsigned.
5719         (reload_as_needed): Wrap variable `i' in macro check on
5720         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
5721
5722         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
5723         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
5724         when comparing against one.
5725
5726         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
5727         unsigned when comparing against one.  Likewise for
5728         GET_MODE_ALIGNMENT().
5729         (layout_record): Cast record_align to int when comparing against a
5730         signed value. 
5731         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
5732         signed value.
5733
5734         * tree.c (get_identifier): Cast variable `len' to unsigned when
5735         comparing against one.
5736         (maybe_get_identifier): Likewise
5737
5738 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
5739
5740         * toplev.c (rest_of_compilation): Do not set reload_completed.
5741         * reload1.c (reload): Set reload_completed before calling
5742         cleanup_subreg_operands.
5743
5744 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
5745
5746         * reload1.c (emit_reload_insns): Check `set' not null before use.
5747
5748 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
5749
5750         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
5751         'int'. 
5752
5753 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
5754
5755         * halfpic.c (half_pic_encode): Delete redundant code.
5756
5757 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
5758
5759         * toplev.c (main): Delete handling of -dM as a preprocessor
5760         option.
5761
5762 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
5763
5764         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
5765         -dI, which are handled by the preprocessor.
5766
5767 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
5768
5769         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
5770         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
5771
5772 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
5773
5774         * version.c: Bump for snapshot.
5775
5776 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
5777
5778         * version.c: Bump for snapshot.
5779
5780 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
5781
5782         * version.c: Bump for snapshot.
5783
5784 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5785
5786         * genattr.c (fatal): Qualify a char* with the `const' keyword.
5787         
5788         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
5789         write_unit_name, write_eligible_delay, expand_units,
5790         make_length_attrs, write_attr_case, find_attr,
5791         make_internal_attr): Likewise.
5792         * gencheck.c (tree_codes): Likewise.
5793         * gencodes.c (fatal): Likewise.
5794         * genconfig.c (fatal): Likewise.
5795         * genemit.c (fatal): Likewise.
5796         * genextract.c (fatal, walk_rtx, copystr): Likewise.
5797         * genflags.c (fatal): Likewise.
5798         * genopinit.c (fatal, optabs, gen_insn): Likewise.
5799         * genoutput.c (fatal, error, predicates): Likewise.
5800         * genpeep.c (fatal): Likewise.
5801         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
5802         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
5803
5804 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5805
5806         * configure.in (with-fast-fixincludes): Fix whitespace.
5807         * configure: Rebuilt.
5808
5809         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
5810         asm() etc. function declarations in __DECC.
5811
5812 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
5813
5814         * expr.c (emit_move_insn_1): Only emit a clobber if the target
5815         is a pseudo register.
5816
5817 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
5818
5819         * gcse.c: Include expr.h in order to get the prototype for
5820         get_condition() which is used in delete_null_pointer_checks(). 
5821
5822 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5823
5824         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
5825
5826 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
5827
5828         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
5829         (ALL_CFLAGS): Delete SCHED_CFLAGS.
5830
5831 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
5832
5833         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
5834         ';').
5835
5836 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
5837
5838         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
5839         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
5840         optimizations from the combiner.
5841
5842 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5843
5844         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
5845
5846 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
5847
5848         * toplev.c (main): Disable optimize_size if a specific
5849         optimization level is requested.  Always set optimization
5850         level to 2 if -Os is specified.
5851
5852 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
5853
5854         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
5855         cpplib.
5856         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
5857         initialize it using fname.
5858
5859 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5860
5861         * cpplib.c (do_include): Treat #include_next in the
5862         primary source file as #include plus warning.  Treat
5863         #include_next in a file included by absolute path as an
5864         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
5865
5866 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5867
5868         * cccp.c: Don't define MIN/MAX anymore.
5869         * cpplib.c: Likewise.
5870         * machmode.h: Likewise.
5871         * system.h: Provide definitions for MIN/MAX.
5872
5873 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
5874
5875         * fix-header.c: Don't define xstrdup here.
5876
5877 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5878
5879         * loop.c (consec_sets_giv): New argument last_consec_insn.
5880         (strength_reduce): Provide / use it.
5881
5882 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5883
5884         * loop.h (loop_info): New field 'vtop'.
5885         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
5886         scanning loop for vtop.
5887         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
5888         (loop_iterations): Use them to determine if loop has a constant
5889         number of iterations.  Set loop_info->vtop.  Don't subtract
5890         common reg term from initial_value and final_value if have a
5891         do-while loop.
5892
5893 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
5894
5895         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
5896
5897         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
5898
5899         * mn10200.md (abssf2, negsf2): New expanders.
5900
5901         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
5902
5903 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
5904
5905         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
5906         replaced by a CONCAT whoes components do not have the same
5907         mode as the original SUBREG, use a new SUBREG to restore the
5908         mode. 
5909
5910         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
5911         multiword complex values.
5912
5913 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5914
5915         * cppalloc.c: Add xstrdup here.
5916         * cpplib.h: Remove savestring prototype.
5917         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
5918           throughout. 
5919         * cppfiles.c: s/savestring/xstrdup/ throughout.
5920
5921 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5922
5923         * cpplib.c: Make all directive handlers read their own
5924           arguments.
5925           (struct directive): Remove last two arguments from FUNC
5926           member prototype. Remove `command_reads_line' member
5927           entirely.
5928           (directive_table): Remove initializations of
5929           command_reads_line flag.  Pretty-print.
5930           (eval_if_expression, do_define, do_line, do_include,
5931           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
5932           do_else, do_elif, do_sccs, do_assert, do_unassert,
5933           do_warning): Take only two args.
5934
5935           (cpp_define): Call do_define with two args and the text to
5936           define stuffed into a buffer.
5937           (make_assertion): Call do_assert with two args.
5938           (handle_directive): Call do_line with two args. Call
5939           kt->func with two args.  Remove command_reads_line
5940           processing.
5941           (do_define, do_undef, do_error, do_warning, do_pragma,
5942           do_sccs): Read the rest of the line here.
5943           (do_ident): Gobble rest of line, as cccp does.
5944           (cpp_undef): New function.
5945           (cpp_start_read): Call cpp_undef instead of do_undef.
5946
5947 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5948
5949         * cpphash.h (union hash_value): Remove `keydef' member, add a
5950           `struct hashnode *aschain' member for #assert.  
5951
5952           * cpplib.c (struct tokenlist_list, struct
5953           assertion_hashnode): Delete structure definitions.
5954           (assertion_install, assertion_lookup, delete_assertion,
5955           check_assertion, compare_token_lists, reverse_token_list,
5956           read_token_list, free_token_list): Delete functions.
5957           (parse_assertion): New function.  
5958           (cpp_cleanup): Don't destroy the assertion_hashtable.
5959
5960           (do_assert): Gut and rewrite.  #assert foo (bar) places
5961           entries for `#foo' and `#foo(bar)' in the macro hash table,
5962           type T_ASSERT.  The value union's `aschain' member is used
5963           to chain all answers for a given predicate together.
5964           (do_unassert): Also rewritten.  Take an un-asserted
5965           answer off the chain from its predicate and call
5966           delete_macro on the hashnode, or walk a predicate chain
5967           calling delete_macro on all the entries.
5968           (cpp_read_check_assertion): Simply call parse_assertion to
5969           get the canonical assertion name, and look that up in the
5970           hash table.
5971
5972         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
5973         Removed.
5974
5975         * cpphash.c (install): Use bcopy instead of an explicit loop
5976           to copy the macro name.
5977
5978         * cppexp.c (cpp_lex): Convert the result of
5979           cpp_read_check_assertion to a `struct operation' directly;
5980           don't go through parse_number.
5981
5982 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5983
5984         * loop.h (struct induction): Delete times_used member.
5985         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
5986         (n_times_used): Rename to n_times_set.  Changed all users.
5987         (scan_loop): Free reg_single_usage before strength reduction.
5988         (record_giv, combine_givs): Remove handling of times_used member.
5989         (combine_givs_used_once): Rename to:
5990         (combine_givs_used_by_other) .  Changed all callers.
5991
5992 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
5993
5994         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
5995         instead of TREE_CODE_CLASS == 't'.
5996         (gen_type_die): Likewise.
5997         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
5998
5999 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
6000
6001         * real.c (endian): Disable last change unless
6002         HOST_BITS_PER_WIDE_INT is greater than 32.
6003
6004 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
6005
6006         * output.h (force_data_section): New prototype.
6007         * varasm.c (force_data_section): New function to force the
6008         data section, regardless of what in_section thinks.
6009         * dwarf2out.c (output_call_frame_info): Call force_data_section
6010         since varasm may not realize we've changes sections.
6011
6012 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
6013
6014         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
6015           after completeing reload.
6016
6017         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
6018           deleted after reload.
6019
6020 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
6021
6022         * rtl.h (multiple_sets): Fix prototype.
6023         * rtlanal.c (multiple_sets): Fix return type.
6024
6025 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
6026
6027         * version.c: Bump for snapshot.
6028
6029 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
6030
6031         * version.c: Bump for snapshot.
6032
6033 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
6034
6035         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
6036
6037 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6038
6039         * rtl.h (recompute_reg_usage): Add second argument.
6040         * flow.c (recompute_reg_usage): Likewise.
6041         * toplev.c (rest_of_compilation): Supply second argument to
6042         recompute_reg_usage.
6043
6044         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
6045         after reload.
6046
6047 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
6048
6049         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
6050         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
6051         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
6052         mcpu32 or m5200.
6053
6054         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
6055
6056         * rtlanal.c (multiple_sets): New function.
6057         * rtl.h (multiple_sets): Declare it.
6058         * local-alloc.c (wipe_dead_reg): Use it.
6059         * global.c (global_conflicts): Likewise.
6060
6061 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
6062
6063         * global.c (record_conflicts): Don't use an array of shorts to
6064         store an array of ints.
6065         (global_conflicts): Likewise.
6066
6067 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
6068
6069         * alpha.c (alpha_expand_block_move): mode_for_size expects
6070         bits, not bytes.  Infer extra alignment from addressof.
6071
6072 1998-12-11  Michael Meissner  <meissner@cygnus.com>
6073
6074         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
6075         .sbss section, not .sdata.
6076
6077 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
6078
6079         * cccp.c: Do not #include <sys/stat.h> here; this is already done
6080         by "system.h".
6081         * collect2.c: Likewise.
6082         * cpplib.h: Likewise.
6083         * gcc.c: Likewise.
6084         * gcov.c: Likewise.
6085         * getpwd.c: Likewise.
6086         * protoize.c: Likewise.
6087         * toplev.c: Likewise.
6088
6089         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
6090         and don't try to define it here.
6091         * Makefile.in (cppmain.o): Depend on machmode.h.
6092         (cpplib.o): Likewise.
6093         (cpperror.o): Likewise.
6094         (cppexp.o): Likewise.
6095         (cppfiles.o): Likewise.
6096         (cpphash.o): Likewise.
6097         (cppalloc.o): Likewise.
6098         (fix-header.o): Likewise.
6099         (scan-decls.o): Likewise.
6100
6101 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
6102
6103         * sh.c (print_operand): lookup interrupt_handler attribute instead
6104         of relying on static variable. 
6105         * (calc_live_regs): Likewise.
6106         * (sh_pragma_insert_attributes): Create interrupt_handler
6107         attribute if a pragma was specified
6108         * (sh_valid_machine_decl_attribute): Don't set static flag.
6109         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
6110
6111 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6112
6113         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
6114         to determine if a register is live at a jump destination.
6115         Everything is dead at a BARRIER.
6116
6117 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
6118
6119         * cse.c (simplify_unary_operation): Sign-extend constants when
6120         they have the most significant bit set for the target.
6121         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
6122         host.
6123         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
6124         HOST_WIDE_INT temporary before negating it.
6125         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
6126
6127 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
6128
6129         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
6130         #if USE_CPPLIB.
6131
6132 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6133
6134         * collect2.h: New header file for prototypes.
6135
6136         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
6137
6138         * collect2.c: Include collect2.h.
6139         * tlink.c: Likewise.
6140
6141 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
6142
6143         * flow.c: Update some comments.
6144
6145 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
6146
6147         * objc/objc-act.c (cpp_initialized): Removed.
6148         (lang_init_options): Initialize cpplib.
6149         (lang_decode_option): Move initialization of cpplib to
6150         lang_init_options.
6151         * c-lang.c: (parse_options,parse_in): Added.
6152         (lang_init_options): Initialized cpplib here.
6153         * c-decl.c (parse_options,cpp_initialized): Removed.
6154         (c_decode_option): Move initialization of cpplib to
6155         lang_init_options.
6156
6157 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6158
6159         * reload1.c (reload_combine, reload_combine_note_store):
6160         Make STORE_RUID always valid.
6161         (reload_combine): Check if BASE is clobbered too early.
6162
6163 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
6164
6165         * reload.c (find_reloads): Display the insn that cannot be
6166         reloaded. 
6167
6168 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
6169
6170         * cccp.c (create_definition): Fix end of bufer logic.
6171
6172 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6173
6174         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
6175         pointer parameters changed to use the PARAMS() macro.
6176
6177 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
6178
6179         * except.h (struct handler_info): Add handler_number field.
6180         * except.c (gen_exception_label): EH labels no longer need to be
6181         on the permanent obstack.
6182         (get_new_handler): Set the label number field.
6183         (output_exception_table_entry): Regenerate handler label reference 
6184         from the label number field.
6185         (init_eh): Remove a blank line.
6186         * integrate.c (get_label_from_map): Labels no longer need to be
6187         on the permanent obstack.
6188
6189 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
6190
6191         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
6192         only when OUTER_CODE is SET.
6193
6194 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6195
6196         * loop.c (strength_reduce): If scan_start points to the loop exit
6197         test, be wary of subversive use of gotos inside expression statements.
6198         Don't set maybe_multiple for a backward jump that does not
6199         include the label under consideration into its range.
6200         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
6201
6202 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6203
6204         * explow.c (plus_constant_wide): Don't immediately return with
6205         result of recursive call.
6206
6207 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
6208
6209         * eh-common.h (struct eh_context): Add table_index for rethrows.
6210
6211         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
6212         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
6213         processed when inlined or unrolled (ie duplicated in some way).
6214
6215         * rtl.c (reg_note_name): Add strings for new reg_note enums.
6216
6217         * expr.h (rethrow_libfunc): New library decl.
6218
6219         * optabs.c (rethrow_libfunc): Initialize.
6220
6221         * except.h (struct eh_entry): Add new field 'rethrow_label'.
6222         (new_eh_region_entry): No longer exported from except.c.
6223         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
6224         different prototype.
6225         (rethrow_symbol_map, rethrow_used): New exported functions.
6226         (eh_region_from_symbol): New exported function.
6227
6228         * except.c (create_rethrow_ref): New function to create a single
6229         SYMBOL_REF for a rethrow region.  
6230         (push_eh_entry): Initialize a rethrow ref.
6231         (func_eh_entry): Add a rethrow_label field.
6232         (new_eh_region_entry): Make static, and initialize the rethrow entry.
6233         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
6234         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
6235         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
6236         a region into an appropriate new symbol.
6237         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
6238         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
6239         (end_catch_handler): Emit a barrier for new-exceptions since 
6240         control can never drop through the end of a catch block.
6241         (expand_end_all_catch): new-exceptions never fall through a catch 
6242         block.
6243         (expand_rethrow): use __rethrow routine for new exceptions.
6244         (output_exception_table_entry): Generate rethrow labels, if needed.
6245         (output_exception_table): Generate start and end rethrow labels.
6246         (init_eh): Create rethrow symbols for beginning and end of table.
6247         (scan_region): Don't eliminate EH regions which are the targets of
6248         rethrows.
6249
6250         * flow.c (make_edges): Add different edges for rethrow calls, 
6251         identified by having the REG_EH_RETHROW reg label.
6252         (delete_unreachable_blocks): Don't delete regions markers which are 
6253         the target of a rethrow.
6254
6255         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
6256         allow save_for_inline_copying to call duplicate_eh_handlers.
6257         (save_for_inline_copying): Call duplicate_eh_handlers instead of
6258         exposing internal details of exception regions.
6259         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
6260         (expand_inline_function_eh_labelmap):  New callback routine to 
6261         allow expand_inline_function to call duplicate_eh_handlers.
6262         (expand_inline_function): Call duplicate_eh_handlers instead of
6263         exposing internal details of exception regions.
6264         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
6265         flag is set.
6266
6267         * libgcc2.c (find_exception_handler): Generalize to enable it to
6268         pick up processing where it left off last time for a rethrow.
6269         (__unwinding_cleanup): New function. debug hook which is called before
6270         unwinding when __throw finds there is nothing but cleanups left.
6271         (throw_helper): Common parts of __throw extracted out for reuse.
6272         (__throw): Common parts moved to throw_helper.
6273         (__rethrow): New function for performing rethrows.
6274
6275 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
6276
6277         * reload1.c (current_function_decl): Tweak declaration.
6278
6279 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
6280
6281         * c-decl.c (flag_isoc9x): Default off.
6282         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
6283         * cccp.c (print_help, main): Likewise.
6284         * gcc.c (default_compilers): Update for -std=gnu*.
6285
6286 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
6287
6288         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
6289         * demangle.h: Deleted.
6290
6291         * reload1.c (current_function_decl): Declare.
6292
6293 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6294
6295         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
6296
6297 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6298
6299         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
6300
6301 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
6302
6303         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
6304         and fputs_unlocked.
6305         * configure: Rebuilt.
6306         * system.h: If the *_unlocked functions are available use them
6307         instead of the locked counterparts by defining macros.
6308         * config.in: Regenerated.
6309
6310 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
6311
6312         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
6313         wrong and should only be used for dump related things, not
6314         debugging information, instead main_input_filename should be used.
6315         Also, reuse output_file_directive if possible.
6316         * i386/aix386ng.h (ASM_FILE_START): Likewise.
6317         * i386/isc.h (ASM_FILE_START): Likewise.
6318         * i386/win-nt.h (ASM_FILE_START): Likewise.
6319         * i386/sun386.h (ASM_FILE_START): Likewise.
6320
6321 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
6322
6323         * configure.in (mips*-*-linux*): Handle big and little endian
6324         systems.
6325         * configure: Rebuilt.
6326
6327 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
6328
6329         * emit-rtl.c: Fix typo.
6330
6331 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
6332
6333         * reload1.c (eliminate_regs): Don't do anything, if we're not
6334         generating code.
6335
6336 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
6337
6338         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
6339         Add comment.
6340         * mips/mips.c (mips_select_section): Add comment.
6341
6342 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
6343
6344         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
6345         characters in file names in #line to be consistent with #include
6346         handling.  We support escape prcessing in the # 1 "..." version of
6347         the command.  See also support in cp/lex.c.
6348         (handle_directive): Likewise.
6349         (do_line): Likewise.
6350         
6351 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6352
6353         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
6354           so it'll work on non-ASCII platforms.  Always consider $ an
6355           identifier character.  Take no arguments.
6356           (cpp_reader_init): Call initialize_char_syntax with no
6357           arguments.
6358           (cpp_start_read): Don't call initialize_char_syntax again.
6359           Clear is_idchar['$'] and is_idstart['$'] if not
6360           opts->dollars_in_ident.
6361
6362         * cpplib.h (struct cpp_reader): Replace void *data element by
6363           cpp_options *opts.  Rearrange elements to make gdb printout
6364           less annoying (put buffer stack at end).
6365           (CPP_OPTIONS): Get rid of now-unnecessary cast.
6366
6367         * cppmain.c: s/data/opts/ when initializing cpp_reader
6368           structure.
6369         * c-decl.c: Likewise.
6370         * objc/objc-act.c: Likewise.
6371         * fix-header.c: Likewise.
6372
6373 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
6374
6375         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
6376         with a struct file_name_list pointer.
6377         (struct cpp_reader): Add pointer to chain of `actual
6378         directory' include searchpath entries.
6379         (struct file_name_list): Add *alloc pointer for the sake of
6380         the actual-directory chain.
6381
6382         Move definition of HOST_WIDE_INT here.
6383         (cpp_parse_escape): Change prototype to match changes in
6384         cppexp.c.
6385
6386         * cppfiles.c (actual_directory): New function.
6387         (finclude): Use it to initialize the buffer's actual_dir
6388         entry.
6389         (find_include_file): We don't need to fix up max_include_len
6390         here.
6391
6392         * cpplib.c (do_include): Don't allocate a file_name_list on
6393         the fly for current directory "" includes, use the one that's
6394         been preallocated in pfile->buffer->actual_dir.  Hoist out
6395         duplicate code from the search_start selection logic.
6396         (cpp_reader_init): Initialize pfile->actual_dirs.
6397
6398         Remove definition of HOST_WIDE_INT.  Change calls
6399         to cpp_parse_escape to match changes in cppexp.c (note
6400         hardcoded MASK, which is safe since this is the source
6401         character set).
6402
6403         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
6404         to handle wide character constants in #if directives.  The
6405         function now returns a HOST_WIDE_INT, and takes a third
6406         argument which is a binary mask for all legal values (0x00ff
6407         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
6408         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
6409         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
6410
6411 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
6412
6413         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
6414
6415 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6416
6417         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
6418         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
6419         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
6420
6421 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
6422
6423         * final.c (output_asm_name): Use tabs to seperate comments from
6424         assembly text.
6425         
6426         Include instruction lengths (if defined) in output.
6427
6428 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6429
6430         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
6431         in the loop_info structure.
6432         
6433 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
6434  
6435         * configure.in:  (arm*-*-ecos-elf):  New target.
6436         * configure:  Regenerated.
6437         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
6438         * config/arm/ecos-elf.h:  New file.
6439         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
6440         for redefinition.
6441  
6442 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6443
6444         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
6445
6446 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
6447
6448         * version.c: Bump for snapshot.
6449
6450 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6451
6452         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
6453         as needed.
6454
6455 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
6456
6457         * version.c: Bump for snapshot.
6458
6459 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6460
6461         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
6462         compressed reports are ok and preferred over URLs
6463
6464 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6465
6466         * invoke.texi (Warning Options): Soften the tone of -pedantic
6467
6468 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
6469
6470         * print-rtl.c (print_rtx): Add prototype.
6471
6472         * unroll.c (iteration_info): Make it static.
6473
6474 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
6475
6476         * alias.c (memrefs_conflict_p): A second ANDed address
6477         disables the aligned address optimization.
6478
6479 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
6480
6481         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
6482         in -c << n case.
6483
6484 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
6485
6486         * i960.h (BOOL_TYPE_SIZE): Define.
6487
6488 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6489
6490         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
6491         from old valid_parallel_operands_4.
6492         (valid_parallel_operands_4): Check that operands for 4 operand
6493         parallel insns are valid, excluding load/store insns.
6494         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
6495         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
6496         valid_parallel_load_store instead of valid_parallel_operands_4.
6497         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
6498         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
6499         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
6500         *notqi_movqi_clobber): Use valid_parallel_operands_4.
6501         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
6502         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
6503         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
6504
6505 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6506
6507         * config/c4x/c4x.c (iteration_info): Delete extern.
6508
6509 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
6510
6511         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
6512
6513         * final.c (cleanup_subreg_operands): Delete some unused code.
6514
6515         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
6516         (struct insn_alternative): New structure definition.
6517         (recog_op_alt): Declare variable.
6518         (preprocess_constraints): Declare function.
6519         * recog.c (recog_op_alt): New variable.
6520         (extract_insn): Verify number of alternatives is in range.
6521         (preprocess_constraints): New function.
6522         * reg-stack.c: Include recog.h.
6523         (constrain_asm_operands): Delete.
6524         (get_asm_operand_lengths): Delete.
6525         (get_asm_operand_n_inputs): New function.
6526         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
6527         N_OUTPUTS args.  All callers changed.
6528         Compute number of inputs and outputs here by calling
6529         get_asm_operand_n_inputs.
6530         Instead of constrain_asm_operands, call extract_insn,
6531         constrain_operands and preprocess_constaints.  Use information
6532         computed by these functions throughout.
6533         (record_reg_life): Delete code that is unused due to changes in
6534         record_asm_reg_life.
6535         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
6536         N_INPUTS and N_OUTPUTS args.  All callers changed.
6537         Similar changes as in record_asm_reg_life.
6538         (subst_stack_regs): Move n_operands declaration into the if statement
6539         where it's used.
6540         Delete code that is unused due to changes in subst_asm_stack_regs.
6541         * stmt.c (expand_asm_operands): Verify number of alternatives is in
6542         range.
6543         * Makefile.in (reg-stack.o): Depend on recog.h.
6544
6545 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
6546
6547         * except.c (set_exception_version_code): Argument is an "int".
6548
6549 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
6550
6551         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
6552         * configure: Rebuilt.
6553
6554 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
6555
6556         * configure.in (mipsel-*-linux*): New target.
6557         * mips/linux.h: New file, based on other Linux targets.
6558
6559 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
6560
6561         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
6562         runs in the context of the deleter, not the deletee, so we must
6563         use taskVarGet to find the correct memory to free.
6564         (__gthread_key_create): Initialize the task
6565         variable subsystem so that the task variable is still active when
6566         the delete hook is run.
6567
6568 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
6569
6570         * pdp11.h: Use optimize_size for space optimizations.
6571         * pdp11.c: Likewise.
6572         * pdp11.md: Likewise.
6573
6574         * pdp11.h (TARGET_40_PLUS): Fix typo.
6575
6576 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
6577
6578         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
6579         qty lifetimes.
6580
6581 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6582
6583         * alias.c (addr_side_effect_eval): New function.
6584         (memrefs_conflict_p): Use it.
6585         * rtl.h (addr_side_effect_eval): Prototype it.
6586
6587 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
6588
6589         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
6590
6591 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
6592
6593         * reload.c (find_reloads): When force const to memory, put result
6594         in substed_operand not *recog_operand_loc.
6595
6596 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
6597
6598         * c-lex.c: Fix indentation from last patch.
6599         Remove trailing whitespace.
6600         * real.c: Likewise.
6601
6602 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
6603
6604         * flow.c (delete_block): Call set_last_insn after we have reset
6605         NEXT_INSN (kept_tail).
6606
6607 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
6608
6609         * mips.md (trap_if): Use "$0" for the value zero.
6610
6611 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
6612                           Stephen L Moshier  <moshier@world.std.com>
6613                           Richard Henderson  <rth@cygnus.com>
6614
6615         * c-common.c (declare_function_name): Declare predefinied variable
6616         `__func__'.
6617
6618         * c-decl.c (flag_isoc9x): Set to 1 by default.
6619         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
6620         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
6621
6622         * c-parse.in: Allow constructors in ISO C 9x.
6623         Rewrite designator list handling.
6624         Allow [*] parameters.
6625         Don't warn about comma at end of enum definition for ISO C 9x.
6626
6627         * cccp.c (c9x): New variable.
6628         (rest_extension): New variable.
6629         (print_help): Document new -std= option.
6630         (main): Recognize -std= option.  Set c9x appropriately.
6631         (create_definition): Recognize ISO C 9x vararg macros.
6632
6633         * gcc.c (default_compilers): Adjust specs for -std options.
6634         (option_map): Add --std.
6635         (display_help): Document -std.
6636
6637         * toplev.c (documented_lang_options): Add -std and remove
6638         -flang-isoc9x.
6639         
6640         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
6641         or REAL_VALUE_HTOF based on base of the constants.
6642         * fold-const.c (real_hex_to_f): New function.  Replacement function
6643         for hex FP conversion if REAL_ARITHMETIC is not defined.
6644         * real.c (asctoeg): Add handling of hex FP constants.
6645         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
6646         real_hex_to_f.
6647
6648 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
6649
6650         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
6651         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
6652         expansion.  Use hi/lo as destination register.
6653         (div_trap): New.
6654         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
6655         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
6656         Avoid as macro expansion.  Use hi/lo as destination register. 
6657
6658         * mips.h (MASK_CHECK_RANGE_DIV): New.
6659         (MASK_NO_CHECK_ZERO_DIV): New.
6660         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
6661         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
6662         return address for leaf functions out of r31 to support
6663         builtin_return_address. 
6664         
6665 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
6666
6667         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
6668         NEXT_INSN(x) to check insn x.
6669         
6670 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
6671
6672         * flow.c (delete_block): Call set_last_insn if we end up deleting the
6673         last insn in the rtl chain.
6674
6675         * reload1.c (reload): Do not set reload_completed or split insns
6676         here.  Instead...
6677         * toplev.c (rest_of_compilation): Set reload_completed after
6678         reload returns.  Split insns after reload_cse has run.
6679
6680 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
6681
6682         * final.c (final_scan_insn): Abort if block_depth falls below 0.
6683
6684 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
6685
6686         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
6687
6688 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
6689
6690         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
6691         use of user-label_prefix.
6692
6693 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6694
6695         * reload1.c (emit_reload_insns): Clear spill_reg_store
6696         when doing a new non-inherited reload from the same pseudo.
6697
6698         * local-alloc.c (function_invariant_p): New function.
6699         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
6700         to decide if an equivalence should be recorded.
6701         * reload1.c (num_eliminable_invariants): New static variable.
6702         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
6703         to decide if an equivalence should be recorded.
6704         Unshare PLUS.
6705         (calculate_needs_all_insns): Skip insns that only set an equivalence.
6706         Take num_eliminable_invariants into account when deciding
6707         if register elimination should be done.
6708         (reload_as_needed): Take num_eliminable_invariants into account
6709         when deciding if register elimination should be done.
6710         (eliminate_regs): Handle non-constant reg_equiv_constant.
6711         * rtl.h (function_invariant_p): Declare.
6712
6713 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
6714
6715         * version.c: Bump for snapshot.
6716
6717 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
6718
6719         * version.c: Bump for snapshot.
6720
6721 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
6722
6723         * except.c (add_new_handler): Complain about additional handlers
6724         after one that catches everything.
6725
6726 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
6727
6728         * configure.in (alpha*-*-netbsd): Fix typo.
6729         * configure: Rebuilt.
6730
6731 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6732
6733         * system.h: Include libiberty.h.
6734
6735         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
6736         function `concat' from fixed parameters to variable parameters,
6737         as is done in libiberty.  All callers of concat/concat3
6738         changed to use the new `concat' with variable args.
6739
6740         * cccp.c: Remove things made redundant by libiberty.h and/or
6741         conform to libiberty standards.
6742         * cexp.y: Likewise.
6743         * collect2.c: Likewise.
6744         * config/1750a/1750a.h: Likewise.
6745         * cppalloc.c: Likewise.
6746         * cppexp.c: Likewise.
6747         * cppfiles.c: Likewise.
6748         * cpphash.c: Likewise.
6749         * cpplib.c: Likewise.
6750         * dyn-string.c: Likewise.
6751         * fix-header.c: Likewise.
6752         * gcc.c: Likewise.
6753         * gcov.c: Likewise.
6754         * genattr.c: Likewise.
6755         * genattrtab.c: Likewise.
6756         * gencheck.c: Likewise.
6757         * gencodes.c: Likewise.
6758         * genconfig.c: Likewise.
6759         * genemit.c: Likewise.
6760         * genextract.c: Likewise.
6761         * genflags.c: Likewise.
6762         * gengenrtl.c: Likewise.
6763         * genopinit.c: Likewise.
6764         * genoutput.c: Likewise.
6765         * genpeep.c: Likewise.
6766         * genrecog.c: Likewise.
6767         * getpwd.c: Likewise.
6768         * halfpic.c: Likewise.
6769         * hash.c: Likewise.
6770         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
6771         in NEED_DECLARATION_* macros.
6772
6773         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
6774         conform to libiberty standards.
6775         (fatal): Fix const-ification of variable `format' in
6776         !ANSI_PROTOTYPES case.
6777
6778         * prefix.c: Remove things made redundant by libiberty.h and/or
6779         conform to libiberty standards.
6780
6781         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
6782         conflicting with function `spaces' from libiberty.
6783
6784         * profile.c: Remove things made redundant by libiberty.h and/or
6785         conform to libiberty standards.
6786         * protoize.c: Likewise.
6787         * rtl.h: Likewise.
6788         * scan.h: Likewise.
6789         * tlink.c: Likewise.
6790         * toplev.c: Likewise.
6791         * toplev.h: Likewise.
6792         * tree.h: Likewise.
6793
6794 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6795
6796         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
6797
6798 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6799
6800         * README.C4X: Updated URLs.
6801         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
6802         (valid_parallel_operands_5): Remove unused variable.
6803
6804 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6805
6806         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
6807
6808 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
6809
6810         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
6811         which can be configured.
6812         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
6813         (Makefile): Pass actual LANGUAGES through the environment when
6814         re-configuring.
6815         (cstamp-h): Likewise.
6816         (config.status): Likewise.
6817
6818         * configure.in (enable_languages): Add new configuration parameter
6819         "--enable-languages=lang1,lang2,...".
6820         (${srcdir}/*/config-lang.in): Change handling to configure only
6821         those directories, that the user might have enabled; default to
6822         "all" existing languages.
6823         * configure: Regenerate.
6824
6825 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
6826
6827         * rtlanal.c (regs_set_between_p): New function.
6828         * rtl.h (regs_set_between_p): Prototype it.
6829         * jump.c (jump_optimize): Use it instead of modified_between_p
6830         in the Sep 2 change.
6831
6832 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
6833                           Matthias Pfaller  <leo@dachau.marco.de>
6834
6835         * invoke.texi (Option Summary, NS32K Options): add description
6836         of NS32K specific options.
6837
6838         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
6839         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
6840         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
6841         negdf2, absdf2): Use l instead of f since the double class and
6842         float class are no longer the same.
6843         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
6844         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
6845         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
6846         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
6847         fixed.
6848         (cmpsi, cmphi, cmpqi): use general_operand instead of
6849         non_immediate_operand. Removes erroneous assumption that can't
6850         compare constants.
6851         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
6852         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
6853         constants.
6854         (movstrsi, movstrsi1, movstrsi2): completely new block move
6855         scheme.
6856         (...): Patterns to exploit multiply-add instructions.
6857         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
6858         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
6859         patterns to exploit extended divide insns.
6860         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
6861         etc patterns.
6862
6863         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
6864         float return values as well as simple scalar floats.
6865         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
6866         support new flag to denote 32381 fpu.
6867         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
6868         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
6869         compling for 32381.
6870         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
6871         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
6872         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
6873         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
6874         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
6875         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
6876         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
6877         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
6878         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
6879         fpu registers and special register classes for new 32381
6880         instructions dotf and polyf.
6881         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
6882         be tieable.
6883         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
6884         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
6885         required.
6886         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
6887         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
6888         (REGISTER_MOVE_COST): move code to register_move_cost function for
6889         ease of coding and debugging.
6890         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
6891         LONG_FLOAT_REGO is likely spilled but not caught by default
6892         definition.
6893         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
6894         instead of hard coded numbers in range check.
6895         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
6896         (...): Add prototypes for functions in ns32k.c but disable because
6897         of problems when ns32k.h is included in machine independant files.
6898         
6899         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
6900         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
6901         hard_regno_mode_ok, secondary_reload_class,
6902         print_operand, print_operand_address): new register scheme to
6903         include 32381 fpu registers and special register classes for new
6904         32381 instructions dotf and polyf.
6905         (gen_indexed_expr): Make static to keep namespace clean.
6906         (check_reg): remove since never called.
6907         (move_tail, expand_block_move): helper functions for "movstrsi"
6908         block move insn.
6909         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
6910         Increase cost of moves which go via memory.
6911         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
6912         (CPP_PREDEFINES): nolonger predefine "unix".
6913
6914         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
6915         Remove erroneous %$. print_operand() can work out from the rtx is
6916         an immediate prefix is required.
6917
6918         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
6919         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
6920         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
6921         convention.
6922         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
6923         pic operands.
6924
6925         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
6926         Correct handling of pic operands.
6927         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
6928         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
6929         -mrtd calling convention.
6930
6931 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
6932
6933         * gcc.c (option_map): Recognize --output-class-directory.
6934
6935 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6936
6937         * loop.h (precondition_loop_p): Added new mode argument.
6938         * unroll.c (precondition_loop_p): Likewise.
6939         (approx_final_value): Function deleted and subsumed
6940         into loop_iterations.
6941         (loop_find_equiv_value): New function.
6942         (loop_iterations): Use loop_find_equiv_value to find increments
6943         too large to be immediate constants.  Also use it to find terms
6944         common to initial and final iteration values that can be removed.
6945
6946 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6947
6948         * loop.h (struct loop_info): Define new structure.
6949         (precondition_loop_p): Added prototype.
6950         (unroll_loop): Added new argument loop_info to prototype.
6951         (final_biv_value, final_giv_value): Added new argument n_iterations
6952         to prototype.
6953         * loop.c (strength_reduce): Declare new structure loop_iteration_info
6954         and new pointer loop_info.
6955         (loop_n_iterations): Replace global variable by element in 
6956         loop_info structure.
6957         (check_final_value): New argument n_iterations.
6958         (insert_bct): New argument loop_info.
6959         (loop_unroll_factor): Replace global array by element in 
6960         loop_info structure.
6961         (loop_optimize): Remove code to allocate and initialise 
6962         loop_unroll_factor_array.
6963         * unroll.c (precondition_loop_p):  No longer static since
6964         used by branch on count optimization.
6965         (precondition_loop_p, unroll_loop): New argument loop_info.
6966         (final_biv_value, final_giv_value, find_splittable_regs): New
6967         argument n_iterations.
6968         (loop_iteration_var, loop_initial_value, loop_increment, 
6969         loop_final_value, loop_comparison_code, loop_unroll_factor): 
6970         Replaced global variables by loop_info structure.
6971         (loop_unroll_factor): Replace global array by element in
6972         loop_info structure.
6973
6974 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6975
6976         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
6977         when loop reversed.
6978
6979         * unroll.c (precondition_loop_p): Return loop_initial_value
6980         for initial_value instead of loop_iteration_var.
6981
6982 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6983
6984         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
6985         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
6986         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
6987         to output the instruction sequences.
6988         (rpts): Delete.
6989         (rptb_top): Provide alternatives to use any register or memory
6990         for loop counter.
6991         (rptb_end):  Emit use of operands rather than assigning them
6992         explicitly to the RS and RE registers.
6993
6994 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6995
6996         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
6997         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
6998         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
6999         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
7000         c4x_merge_notes, c4x_parallel_process, 
7001         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
7002         c4x_combine_parallel): Delete.
7003
7004 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7005
7006         * config/c4x/c4x.c: (c4x_override_options): For compatibility
7007         with old target options clear flag_branch_on_count_reg if
7008         -mno-rptb specified and set flag_argument_alias is -mno-aliases
7009         specified.
7010         (c4x_output_cbranch): Handle a sequence of insns rather than a
7011         single insn.
7012         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
7013         has not been allocated as the loop counter.
7014         (c4x_address_conflict): Do not allow two volatile memory references.
7015         (valid_parallel_operands_4, valid_parallel_operands_5,
7016         valid_parallel_operands_6): Reject pattern if the register destination
7017         of the first set is used as part of an address in the second set.
7018
7019 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7020
7021         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
7022         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
7023         is no longer enabled if PARALLEL_MPY_FLAG set.
7024         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
7025         (REG_CLASS_CONTENTS): Add braces around initializers.
7026         (HAVE_MULTIPLE_PACK): Define.
7027         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
7028         REAL_VALUE_TO_DECIMAL.
7029         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
7030         REAL_VALUE_TO_DECIMAL.
7031         (ar0_reg_operand): Add prototype.
7032         (ar0_mem_operand): Likewise.
7033         (ar1_reg_operand): Likewise.
7034         (ar1_mem_operand): Likewise.
7035         (ar2_reg_operand): Likewise.
7036         (ar2_mem_operand): Likewise.
7037         (ar3_reg_operand): Likewise.
7038         (ar3_mem_operand): Likewise.
7039         (ar4_reg_operand): Likewise.
7040         (ar4_mem_operand): Likewise.
7041         (ar5_reg_operand): Likewise.
7042         (ar5_mem_operand): Likewise.
7043         (ar6_reg_operand): Likewise.
7044         (ar6_mem_operand): Likewise.
7045         (ar7_reg_operand): Likewise.
7046         (ar7_mem_operand): Likewise.
7047         (ir0_reg_operand): Likewise.
7048         (ir0_mem_operand): Likewise.
7049         (ir1_reg_operand): Likewise.
7050         (ir1_mem_operand): Likewise.
7051         (group1_reg_operand): Likewise.
7052         (group1_mem_operand): Likewise.
7053         (ir1_reg_operand): Likewise.
7054         (arx_reg_operand): Likewise.
7055         (not_rc_reg): Likewise.
7056         (not_modify_reg): Likewise.
7057         (c4x_group1_reg_operand): Remove prototype.
7058         (c4x_group1_mem_operand): Likewise.
7059         (c4x_arx_reg_operand): Likewise.
7060
7061 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
7062
7063         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
7064         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
7065
7066 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7067
7068         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
7069         during reload.
7070
7071 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7072
7073         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
7074         unless FMOVD_WORKS is defined.
7075
7076 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7077
7078         * regclass.c (init_reg_sets): Move code that calculates tables
7079         dependent on reg_class_contents from here...
7080         (init_reg_sets_1): To here.
7081
7082 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7083
7084         * cpplib.h: Delete struct import_file.  Add ihash element to
7085         struct cpp_buffer.  Delete dont_repeat_files and
7086         import_hash_table elements from cpp_reader; change
7087         all_include_files to a hash table.  Delete all foobar_include
7088         / last_foobar_include elements from struct cpp_options; put
7089         back four such: quote_include, bracket_include,
7090         system_include, after_include.  Redo struct file_name_list
7091         completely.  Add new structure type include_hash.  Add
7092         prototypes for merge_include_chains and include_hash.  Change
7093         prototypes for finclude, find_include_file, and
7094         append_include_chain to match changes below.
7095
7096         * cppfiles.c (simplify_pathname, include_hash,
7097         remap_filename, merge_include_chains): New functions.
7098         (add_import, lookup_import, open_include_file): Removed.
7099         (INO_T_EQ): Define this (copied from cccp.c).
7100         (hack_vms_include_specification): Remove all calls and #if 0
7101         out the definition.  It was being called incorrectly and at
7102         the wrong times.  Until a VMSie can look at this, it's better
7103         to not pretend to support it.
7104         (append_include_chain): Change calling convention; now takes
7105         only one directory at a time, and sets up the data structure
7106         itself.
7107         (redundant_include_p): Rewritten - this is now used for all
7108         include redundancy, whether by #ifndef, #import, or #pragma
7109         once.  Looks up things in the include hash table.
7110         (file_cleanup): Decrement pfile->system_include_depth here if
7111         it's >0.
7112         (find_include_file): Calling convention changed; now passes
7113         around a struct include_hash instead of 3 separate parameters.
7114         Guts ripped out and replaced with new include_hash mechanism.
7115         (finclude): Calling convention changed as for
7116         find_include_file.  Error exits pulled out-of-line.  Reformat.
7117         (safe_read): Return a long, not an int.
7118         (deps_output): Don't recurse.
7119
7120         * cpplib.c (is_system_include): Deleted.
7121         (path_include): Fix up call to append_include_chain.
7122         (do_include): Fix up calls to find_include_file and finclude.
7123         Clean up dependency output a bit.  Shorten obnoxiously lengthy
7124         #import warning message.  Don't decrement
7125         pfile->system_include_depth here.
7126         (do_pragma): Understand the include_hash structure.  Reformat.
7127         (do_endif): Correct handling of control macros.  Understand
7128         the include_hash.
7129         (cpp_start_read): Fix up calls to finclude.  Call
7130         merge_include_chains.
7131         (cpp_handle_option): Fix up calls to append_include_chain.
7132         Understand the four partial include chains.
7133         (cpp_finish): Add debugging code (#if 0-ed out) for the
7134         include_hash.
7135         (cpp_cleanup): Free the include_hash, not the import hash and
7136         the all_include and dont_repeat lists which no longer exist.
7137
7138 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
7139
7140         * toplev.c (no_new_pseudos): Define.
7141         (rest_of_compilation):  Set no_new_pseudos as needed.
7142         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
7143         if no_new_pseudos is set.
7144         * rtl.h (no_new_pseudos): Declare it.
7145         * reload1.c (reload): Update comments.
7146         * md.texi: Corresponding changes.
7147
7148 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
7149
7150         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
7151         (choose_reload_regs): Rename it here as well.  When computing it,
7152         also merge in used hardregs.
7153
7154 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7155
7156         * gcc.c: Split out Objective-C specs to...
7157         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
7158         aware.
7159
7160         * c-lex.c (init_parse): Always initialize the filename global.
7161         * objc/objc-act.c (lang_init): Always call check_newline at
7162         beginning of file.
7163
7164 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
7165
7166         * reload1.c (reload): Remove unused variable.
7167         (reload_reg_free_for_value_p): Add missing parameter definition.
7168
7169         * jump.c (jump_optimize): Remove unused variable.
7170
7171 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
7172
7173         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
7174
7175         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
7176         runtime selectable.
7177         * expr.c (move_by_pieces): Similarly.
7178         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
7179         * flow.c (find_auto_inc): Similarly.
7180         (try_pre_increment): Similarly.
7181         * loop.c (strength_reduce): Similarly.
7182         * regclass.c (auto_inc_dec_reg_p): Similarly.
7183         * regmove.c (try_auto_increment): Similarly.
7184         (fixup_match_1): Similarly.
7185         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
7186         (HAVE_PRE_DECREMENT): Similarly.
7187         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
7188         * Corresponding changes to all target header files.
7189         * tm.texi: Update docs for autoinc addressing modes.
7190
7191 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
7192
7193         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
7194         * configure: Rebuild.
7195         * config/elfos.h: New file.
7196         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
7197         config/m68k/t-m68kelf: New file.
7198         
7199 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
7200
7201         * Makefile.in (HOST_AR): Define.
7202         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
7203         (libcpp.a): Use the host tools explicitly.
7204         (STAGESTUFF): Add libcpp.a.
7205
7206 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
7207
7208         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
7209         to source and destination registers.
7210
7211 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
7212
7213         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
7214         The strategy we now use is to pre allocate the top_elt along
7215         with the EH context so that each thread has its own top_elt.
7216         This is necessary as the dynmanic cleanup chain is used on the
7217         top element of the stack and each thread MUST have its own.
7218         (eh_context_static): Likewise.
7219         (new_eh_context): Likewise.
7220         (__sjthrow): Likewise.
7221
7222 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
7223
7224         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
7225         * i386.md (prologue_get_pc): Remove unused variable.
7226
7227 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
7228
7229         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
7230
7231 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
7232
7233         * Makefile.in (OBJS): Add graph.o
7234         (graph.o): New dependency list.
7235         * flags.h: Declare dump_for_graph and define graph_dump_types type.
7236         * print-rtl.c (dump_for_graph): Define new variable.
7237         (print_rtx): Rewrite to allow use in graph dumping functions.
7238         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
7239         finish_graph_dump_file.
7240         Define graph_dump_format.
7241         (compile_file): If graph dumping is enabled also clear these files.
7242         Finish graph dump files.
7243         (rest_of_compilation): Also dump graph information if enabled.
7244         (main): Recognize -dv to enabled VCG based graph dumping.
7245         * graph.c: New file.  Graph dumping functions.
7246
7247 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
7248
7249         * configure.in: Look for <sys/stat.h>.
7250         * system.h: Include it before substitute S_ISREG definitions.
7251
7252 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7253
7254         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
7255         * config/mips/iris6.h: Same.
7256         * config/mips/mips.md: Same.
7257         * config/mips/mips.c: Same; also add "-mabi=o64" option.
7258         * config/mips/mips.h: Same; also define ABI_O64.
7259
7260 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7261
7262         *  configure.in: Use AC_PREREQ(2.12.1).
7263
7264 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
7265
7266         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
7267         * cpplib.c, gcc.c: Likewise.
7268         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
7269
7270 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
7271
7272         * local-alloc.c (local_alloc): Use malloc not alloca for
7273         reg_qty, reg_offset, ref_next_in_qty.
7274
7275 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7276
7277         * caller-save.c (insert_one_insn): Initialize the live_before and
7278         live_after register sets.
7279
7280         Add SH4 support:
7281
7282         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
7283         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
7284         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
7285         (fp_reg_names, assembler_dialect): New variables.
7286         (print_operand_address): Handle SUBREGs.
7287         (print_operand): Added 'o' case.
7288         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
7289         Name of FP registers depends on mode.
7290         (expand_block_move): Emit different code for SH4 hardware.
7291         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
7292         (from_compare): Likewise.
7293         (add_constant): New argument last_value.  Changed all callers.
7294         (find_barrier): Don't try HImode load for FPUL_REG.
7295         (machine_dependent_reorg): Likewise.
7296         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
7297         (gen_far_branch): Emit a barrier after the new jump.
7298         (barrier_align): Don't trust instruction lengths before
7299         fixing up pcloads.
7300         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
7301         Use auto-inc addressing for fp registers if doubles need to
7302         be loaded in two steps.
7303         Set sh_flag_remove_dead_before_cse.
7304         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
7305         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
7306         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
7307         Support for FIRST_XD_REG .. LAST_XD_REG.
7308         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
7309         (sh_expand_epilogue): Likewise.
7310         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
7311         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
7312         (arith_reg_operand): FPUL_REG is OK for SH4.
7313         (fp_arith_reg_operand, fp_extended_operand) New functions.
7314         (tertiary_reload_operand, fpscr_operand): Likewise.
7315         (commutative_float_operator, noncommutative_float_operator): Likewise.
7316         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
7317         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
7318         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
7319         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
7320         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
7321         (CONDITIONAL_REGISTER_USAGE): Likewise.
7322         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
7323         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
7324         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
7325         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
7326         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
7327         to -1 and sh_flag_remove_dead_before_cse to 1.
7328         (ASSEMBLER_DIALECT): Define to assembler_dialect.
7329         (assembler_dialect, fp_reg_names): Declare.
7330         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
7331         Hide names of registers that are not accessible.
7332         (CACHE_LOG): Take TARGET_CACHE32 into account.
7333         (LOOP_ALIGN): Take TARGET_HARWARD into account.
7334         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
7335         (FIRST_PSEUDO_REGISTER: Now 49.
7336         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
7337         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
7338         (HARD_REGNO_MODE_OK): Update.
7339         (enum reg_class): Add DF_REGS and FPSCR_REGS.
7340         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
7341         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
7342         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
7343         (NPARM_REGS): Eight floating point parameter registers on SH4.
7344         (BASE_RETURN_VALUE_REG): SH4 also passes double values
7345         in floating point registers.
7346         (GET_SH_ARG_CLASS) Likewise.
7347         Complex float types are also returned in float registers.
7348         (BASE_ARG_REG): Complex float types are also passes in float registers.
7349         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
7350         (LIBCALL_VALUE): Remove trailing semicolon.
7351         (ROUND_REG): Round when double precision value is passed in floating
7352         point register(s).
7353         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
7354         passed on the stack.
7355         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
7356         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
7357         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
7358         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
7359         (MODE_DISP_OK_8): Not for SH4 DFmode.
7360         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
7361         Allow indexed addressing for PSImode after reload.
7362         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
7363         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
7364         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
7365         (DOUBLE_TYPE_SIZE): 64 for SH4.
7366         (RTX_COSTS): Add PLUS case.
7367         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
7368         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
7369         MAC_REGS, PR_REGS, DF_REGS.
7370         (REGISTER_NAMES): Use fp_reg_names.
7371         (enum processor_type): Add PROCESSOR_SH4.
7372         (sh_flag_remove_dead_before_cse): Declare.
7373         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
7374         (PREDICATE_CODES): Add binary_float_operator,
7375         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
7376         fpscr_operand, noncommutative_float_operator.
7377         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
7378         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
7379         * sh.md (attribute cpu): Add value sh4.
7380         (attrbutes fmovd, issues): Define.
7381         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
7382         (function units memory, int, mpy, fp): Make dependent on issue rate.
7383         (function units issue, single_issue, load_si, load): Define.
7384         (function units load_store, fdiv, gp_fpul): Define.
7385         (attribute hit_stack): Provide proper default.
7386         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
7387         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
7388         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
7389         (mulsi3_call): Now uses match_operand for function address.
7390         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
7391         REG_RETVAL notes.
7392         (push, pop, push_e, pop_e): Now define_expands.
7393         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
7394         (movsi_ie): Added y/i alternative.
7395         (ic_invalidate_line_i, movdf_i4): New insns.
7396         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
7397         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
7398         (movdf): Add special code for SH4.
7399         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
7400         (call_valuei, calli, call_value): Likewise.
7401         (movsf): Emit no-op move.
7402         (mov_nop, movsi_y): New insns.
7403         (blt, sge): generalize to handle DFmode.
7404         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
7405         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
7406         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
7407         (fpu_switch0, fpu_switch1, movpsi): New expanders.
7408         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
7409         (toggle_sz): New insn.
7410         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
7411         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
7412         (macsf3): Make use of fpscr visible.  Disable for SH4.
7413         (floatsisf2): Make use of fpscr visible.
7414         (floatsisf2_i4): New insn.
7415         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
7416         (ieee_ccmpeqsf_t): Likewise.
7417         (fix_truncsfsi2): Emit different code for SH4.
7418         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
7419         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
7420         (negsf2, sqrtsf2, abssf2): Now expanders.
7421         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
7422         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
7423         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
7424         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
7425         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
7426         (fix_truncdfsi2_i4_2+1): New splitters.
7427         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
7428         (extendsfdf2, truncdfsf2): New expanders.
7429         (truncdfsf2_i4): New insn.
7430         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
7431         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
7432         * float-sh.h: When testing for __SH3E__, also test for
7433         __SH4_SINGLE_ONLY__ .
7434         * va-sh.h (__va_freg): Define to float.
7435         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
7436         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
7437         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
7438         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
7439          __SH4_SINGLE__.
7440         (TARGET_SH4_P): Define.
7441         (va_arg): Use it.
7442
7443         * sh.md (movdf_k, movsf_i): Tweak the condition so that
7444         init_expr_once is satisfied about the existence of load / store insns.
7445
7446         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
7447         change m constraint in source operand to mr / mf .
7448
7449         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
7450
7451         * (__VA_REEF): Define.
7452         (__va_arg_sh1): Use it.
7453
7454         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
7455
7456 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
7457
7458         * i386/dgux.c (struct option): Add new "description field".
7459         * m88k/m88k.c (struct option): Likewise.
7460
7461 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
7462
7463         * version.c: Bump for snapshot.
7464
7465 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
7466
7467         * regmove.c (regmove_profitable_p): Use return value of find_matches
7468         properly.
7469
7470 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
7471
7472         * version.c: Bump for snapshot.
7473
7474 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
7475
7476         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
7477         without reload having been called earlier.
7478
7479         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
7480         addressing modes.
7481         (v850_reorg): Similarly.
7482
7483         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
7484
7485 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7486
7487         * loop.c (move_movables): Start of libcall might be new loop start.
7488
7489 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7490
7491         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
7492
7493 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7494
7495         * function.c (nonlocal_goto_handler_slots): Renamed from
7496         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
7497         (push_function_context_to): Adjust for this change.
7498         (pop_function_context_from): Likewise.
7499         (init_function_start): Likewise.
7500         (expand_function_end): Likewise.
7501         * function.h (struct function): Likewise.
7502         * calls.c (expand_call): Likewise.
7503         * explow.c (allocate_dynamic_stack_space): Likewise.
7504         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
7505         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
7506         label.
7507         (expand_goto): When doing a nonlocal goto, find corresponding handler
7508         slot for it.  Don't put the label address in the static chain register.
7509         (expand_end_bindings): Break out nonlocal goto handling code into
7510         three new functions.
7511         (expand_nl_handler_label, expand_nl_goto_receiver,
7512         expand_nl_goto_receivers): New static functions, broken out of
7513         expand_end_bindings and adapted to create one handler per nonlocal
7514         label.
7515         * function.c (delete_handlers): Delete insn if it references any of
7516         the nonlocal goto handler slots.
7517         * i960.md (nonlocal_goto): Comment out code that modifies
7518         static_chain_rtx.
7519         * sparc.md (nonlocal_goto): Likewise.
7520         (goto_handler_and_restore_v9): Comment out.
7521         (goto_handler_and_restore_v9_sp64): Comment out.
7522
7523 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7524
7525         * expr.c (STACK_BYTES): Delete unused macro.
7526         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
7527         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
7528         (expand_call): Likewise.
7529         (emit_library_call): Likewise.
7530         (emit_library_call_value): Likewise.
7531         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
7532         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
7533         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
7534         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
7535         (allocate_dynamic_stack_space): Likewise.
7536         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
7537         (STACK_BOUNDARY): Update description to reflect the new situation.
7538
7539 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
7540
7541         * reorg.c (relax_delay_slots): When optimizing for code size, if a
7542         return with a filled delay slot is followed by a return with an
7543         unfilled delay slot, delete the first return and reemit the insn
7544         that was previously in its delay slot.
7545
7546         * i860.c (single_insn_src_p): Add missing parens.
7547         * ginclude/math-3300.h: Likewise.
7548
7549 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
7550
7551         * regclass.c (init_reg_sets_1): Add prototype.
7552         (init_reg_modes): Likewise.
7553
7554 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
7555
7556         * c-common.c: Change warning messages to say `comparison is
7557         always true' or `comparison is always false' instead of the
7558         confusing `is always 0', `is always 1'.
7559
7560 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
7561
7562         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
7563         break instead of return (which loses closing '>').
7564
7565 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
7566
7567         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
7568         standard 387 constants.
7569
7570         * i386.md (jump): Explicitly set "memory" attribute.
7571         (indirect_jump, prologue_set_stack_ptr): Likewise.
7572         (prologue_get_pc_and_set_got, pop): Likewise.
7573         (allocate_stack_worder, blockage, return_internal): Likewise.
7574         (return_pop_internal, nop): Likewise.
7575         (epilogue_set_stack_ptr, leave): Likewise.
7576
7577 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
7578
7579         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
7580
7581 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7582
7583         * reload1.c (reload_reg_free_for_value_p):
7584         Early auto_inc reloads don't conflict with outputs.
7585
7586 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7587
7588         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
7589         Instead call AC_HEADER_SYS_WAIT.
7590
7591         * collect2.c: Don't provide defaults for sys/wait.h macros.
7592         * gcc.c: Likewise.
7593         * protoize.c: Likewise.  Also, don't include sys/wait.h.
7594
7595         * system.h: Include sys/wait.h and provide macro defaults.
7596
7597 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7598
7599         * Makefile.in (mandir): Set to @mandir@.
7600         (man1dir): New variable to hold the former value of $(mandir).
7601         Replace all uses of $(mandir) by $(man1dir).
7602
7603 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
7604
7605         * reload.c (find_reloads_address_part): If have a CONST_INT, create
7606         a new one before passing it to force_const_mem.
7607
7608         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
7609         find_reloads_address call.
7610
7611 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7612
7613         * expr.c (store_expr): Don't generate load-store pair
7614         if TEMP is identical (according to ==) with TARGET.
7615
7616 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7617
7618         * reload1.c (reload_reg_free_for_value_p): When considered reload
7619         has an output, matching inputs are not sufficient to avoid conflict.
7620
7621 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
7622
7623         * hash.h (hash_table_key): New type.
7624         (hash_entry): Change `string' field to generic `key'.
7625         (hash_table): Add `comp' and `hash' functions.
7626         (hash_table_init): Take them as input.
7627         (hash_table_init_n): Likewise.
7628         (hash_lookup): Modify for generic keys.
7629         (hash_newfunc): Likewise.
7630         (hash_traverse): Likewise.
7631         (string_hash): New function.
7632         (string_compare): Likewise.
7633         (string_copy): Likewise.
7634         * hash.c (hash_table_init_n): Modify for generic keys.
7635         (hash_table_init): Likewise.
7636         (hash_lookup): Likewise.
7637         (hash_newfunc): Likewise.
7638         (hash_traverse): Likewise.
7639         (string_hash): Split out from hash_lookup.
7640         (string_compare): New function.
7641         (string_copy): Split out from hash_lookup.
7642         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
7643         tables.
7644         (symbol_hash_lookup): Likewise.
7645         (file_hash_newfunc): Likewise.
7646         (file_hash_lookup): Likewise.
7647         (demangled_hash_newfunc): Likewise.
7648         (demangled_hash_lookup): Likewise.
7649         (tlink_int): Likewise.
7650         (read_repo_file): Likewise.
7651         (recompile_files): Likewise.
7652         (demangle_new_symbols): Likewise.
7653         (scan_linker_output): Likewise.
7654         
7655 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7656
7657         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
7658
7659 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@gnu.org>
7660
7661         * rs6000.c (output_mi_thunk): Improve test for local branch.
7662
7663 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7664
7665         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
7666
7667 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7668
7669         * reload1.c (reload_reg_free_before_p): Delete.
7670         Changed all callers to use reload_reg_free_for_value_p instead.
7671         (reload_reg_free_for_value_p): Handle more reload types.
7672         A RELOAD_FOR_INPUT doesn't conflict with its
7673         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
7674         Add special case for OUT == const0_rtx.
7675         Added ignore_address_reloads argument.  Changed all callers.
7676
7677 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
7678
7679         * toplev.c (compile_file): Don't pedwarn about undefined static
7680         functions just because we passed -Wunused.
7681
7682 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7683
7684         * function.c (purge_addressof_1): Unshare rtl created by
7685         store_bit_field.
7686
7687 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7688
7689         * regmove.c (regmove_optimize): Don't do anything but
7690         optimize_reg_copy[123] when flag_regmove is not set.
7691
7692 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
7693
7694         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
7695         value in paradoxical SImode result, rather than truncating midpoint.
7696
7697 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
7698
7699         * alpha.c (reg_not_elim_operand): New.
7700         * alpha.h (PREDICATE_CODES): Add it.
7701         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
7702         for the multiplicand.
7703
7704 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@gnu.org>
7705
7706         * rs6000.md (movsf): Remove explicit secondary-reload-like
7707         functionality.  Only truncate SFmode store if in FPR.
7708         (movsf splitters): Combine const_double splitters.
7709         (movsf_hardfloat): Add GPR support.
7710
7711 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
7712
7713         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
7714         deprecate -mlive-g0 and -mbroken-saverestore.
7715         * t-splet (MULTILIB_OPTIONS): Likewise.
7716         
7717         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
7718         in a leaf function.  Clarify total_size/extra_size relationship.
7719
7720 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
7721
7722         * i386/cygwin32.asm: Delete.
7723         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
7724         * i386/cygwin32.h: Delete.
7725         * i386/cygwin.h: New file, renamed from cygwin32.h.
7726         * i386/t-cygwin32: Delete.
7727         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
7728         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
7729         * i386/x-cygwin32: Delete.
7730         * i386/x-cygwin: New file, renamed from x-cygwin32.
7731         * i386/xm-cygwin32: Delete.
7732         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
7733         renamed cygwin_ funcs for path translations.
7734         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
7735         * i386/winnt.c: Remove "32" from comment about cygwin.
7736         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
7737         * rs6000/cygwin32.h: Delete.
7738         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
7739         -D__CYGWIN__ to CPP_PREDEFINES.
7740         * rs6000/x-cygwin32: Delete.
7741         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
7742         * rs6000/xm-cygwin32: Delete.
7743         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
7744
7745         * configure.in: Check for cygwin* instead of cygwin32.  Account
7746         for the rename of cygwin-related config files to lose the "32"s.
7747         * configure: Regenerate.
7748
7749         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
7750         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
7751
7752 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
7753
7754         * Makefile.in (JAVAGC): New macro.
7755         * configure: Rebuilt.
7756         * configure.in: Recognize --enable-java-gc argument.  Subst
7757         `JAVAGC' variable.
7758
7759 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
7760
7761         Handle equivalences that have been obscured by gcse:
7762
7763         * reload1.c (reload): Handle equivalences set up in multiple places.
7764         * local-alloc.c (reg_equiv_init_insns): New variable.
7765         (no_equiv): New function.
7766         (update_equiv_regs): Handle equivalences set up in multiple places.
7767         Don't ignore an insn just because its destination is likely to be
7768         spilled.
7769
7770 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
7771
7772         * except.c (expand_eh_return): Readd force_operand call lost in
7773         Sept 15 change.
7774
7775 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@gnu.org>
7776
7777         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
7778
7779 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7780
7781         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
7782
7783 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7784
7785         * regmove.c (regmove_optimize): Fix error in last change.
7786
7787 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
7788
7789         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
7790         offset in the .mask pseudo to compensate for frame pointer adjustments.
7791         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
7792         word swap arguments moved to/from FP registers.
7793         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
7794         
7795 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
7796
7797         * version.c: Bump for snapshot.
7798
7799 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
7800
7801         * version.c: Bump for snapshot.
7802
7803 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
7804
7805         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
7806         times, then it can not be completely replaced.
7807
7808 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
7809
7810         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
7811
7812 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7813
7814         * gansidecl.h: Prepend a "G" to the macro wrapping this file
7815         (to distinguish it from the macro wrapping ansidecl.h.)
7816         Include libiberty's ansidecl.h.  Remove all redundant definitions.
7817         Define the PROTO() style macros in terms of the PARAMS() ones.
7818
7819         
7820         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
7821         __STDC__, when deciding whether to use ANSI variable args.
7822         (emit_library_call_value): Likewise.
7823
7824         * cccp.c (error): Likewise.
7825         (warning): Likewise.
7826         (error_with_line): Likewise.
7827         (warning_with_line): Likewise.
7828         (pedwarn): Likewise.
7829         (pedwarn_with_line): Likewise.
7830         (pedwarn_with_file_and_line): Likewise.
7831         (fatal): Likewise.
7832
7833         * cexp.y (error): Likewise.
7834         (pedwarn): Likewise.
7835         (warning): Likewise.
7836
7837         * collect2.c (fatal_perror): Likewise.
7838         (fatal): Likewise.
7839         (error): Likewise.
7840
7841         * combine.c (gen_rtx_combine): Likewise.
7842
7843         * cpperror.c (cpp_message): Likewise.
7844         (cpp_fatal): Likewise.
7845
7846         * cpplib.c (cpp_error): Likewise.
7847         (cpp_warning): Likewise.
7848         (cpp_pedwarn): Likewise.
7849         (cpp_error_with_line): Likewise.
7850         (cpp_warning_with_line): Likewise.
7851         (cpp_pedwarn_with_line): Likewise.
7852         (cpp_pedwarn_with_file_and_line): Likewise.
7853
7854         * cpplib.h: Don't define PARAMS() macro.
7855
7856         * demangle.h: Likewise.
7857
7858         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
7859         when deciding whether to use ANSI variable args.
7860
7861         * emit-rtl.c (gen_rtx): Likewise.
7862         (gen_rtvec): Likewise.
7863
7864         * final.c (asm_fprintf): Likewise.
7865
7866         * fix-header.c (cpp_message): Likewise.
7867         (fatal): Likewise.
7868         (cpp_fatal): Likewise.
7869
7870         * gcc.c (concat): Likewise.
7871         (fatal): Likewise.
7872         (error): Likewise.
7873
7874         * genattr.c (fatal): Likewise.
7875
7876         * genattrtab.c (attr_rtx): Likewise.
7877         (attr_printf): Likewise.
7878         (fatal): Likewise.
7879
7880         * gencodes.c (fatal): Likewise.
7881
7882         * genconfig.c (fatal): Likewise.
7883
7884         * genemit.c (fatal): Likewise.
7885
7886         * genextract.c (fatal): Likewise.
7887
7888         * genflags.c (fatal): Likewise.
7889
7890         * genopinit.c (fatal): Likewise.
7891
7892         * genoutput.c (fatal): Likewise.
7893         (error): Likewise.
7894
7895         * genpeep.c (fatal): Likewise.
7896
7897         * genrecog.c (fatal): Likewise.
7898
7899         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
7900         deciding whether to declare `tree_node' and `rtx_def'.
7901
7902         * hash.h: Don't define stuff we get from gansidecl.h.
7903
7904         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
7905         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
7906         whether to use ANSI variable args.
7907         (error): Likewise.
7908
7909         * prefix.c (concat): Likewise.
7910
7911         * scan.h: Likewise.
7912
7913         * system.h: Likewise.
7914
7915         * toplev.c (error_with_file_and_line): Likewise.
7916         (error_with_decl): Likewise.
7917         (error_for_asm): Likewise.
7918         (error): Likewise.
7919         (fatal): Likewise.
7920         (warning_with_file_and_line): Likewise.
7921         (warning_with_decl): Likewise.
7922         (warning_for_asm): Likewise.
7923         (warning): Likewise.
7924         (pedwarn): Likewise.
7925         (pedwarn_with_decl): Likewise.
7926         (pedwarn_with_file_and_line): Likewise.
7927         (sorry): Likewise.
7928         (really_sorry): Likewise.
7929
7930         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
7931         whether to declare `tree_node' and `rtx_def'.
7932
7933         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
7934         deciding whether to use ANSI variable args.
7935         (build_nt): Likewise.
7936         (build_parse_node): Likewise.
7937
7938 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
7939
7940         * version.c: Bump for snapshot.
7941
7942 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7943
7944         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
7945
7946 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@gnu.org>
7947
7948         * collect2.c (main, case 'b'): Use else if.
7949
7950 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7951
7952         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
7953         Arrange to include gansidecl.h in {ht}config.h & tm.h just
7954         before the config/ directory headers.
7955         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
7956         gansidecl.h in the list of dependencies.
7957
7958         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
7959         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
7960         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
7961         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
7962         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
7963         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
7964         Likewise.
7965
7966         * cccp.c: Don't include gansidecl.h.
7967         * cexp.y: Likewise.
7968         * collect2.c: Likewise.
7969         * config/c4x/c4x.c: Likewise.
7970         * config/v850/v850.h: Likewise.
7971         * cppalloc.c: Likewise.
7972         * cpperror.c: Likewise.
7973         * cppexp.c: Likewise.
7974         * cppfiles.c: Likewise.
7975         * cpphash.c: Likewise.
7976         * cpplib.c: Likewise.
7977         * cppmain.c: Likewise.
7978         * cppulp.c: Likewise.
7979         * demangle.h: Likewise.
7980         * doprint.c: Likewise.
7981         * dyn-string.c: Likewise.
7982         * eh-common.h: Likewise.
7983         * fix-header.c: Likewise.
7984         * frame.c: Likewise.
7985         * gcc.c: Likewise.
7986         * gcov.c: Likewise.
7987         * gen-protos.c: Likewise.
7988         * gencheck.c: Likewise.
7989         * halfpic.h: Likewise.
7990         * hash.c: Likewise.
7991         * machmode.h: Likewise.
7992         * mbchar.c: Likewise.
7993         * prefix.c: Likewise.
7994         * protoize.c: Likewise.
7995         * recog.h: Likewise.
7996         * rtl.h: Likewise.
7997         * scan-decls.c: Likewise.
7998         * tree.h: Likewise.
7999         * varray.h: Likewise.
8000         
8001 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
8002
8003         * i386.md (call_value_pop): If we're not popping anything,
8004         defer to call_value.
8005         (call_pop): Likewise defer to call.
8006
8007 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
8008
8009         * function.c (purge_addressof): Clear purge_addressof_replacements
8010         only after processing the whole function.
8011
8012 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
8013
8014         * reload1.c (reload): If we can not perform a particular elimination
8015         when we thought we could earlier, then we must always iterate through
8016         the loop at least one more time.
8017
8018 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
8019
8020         * alpha.c (add_operand): Simplify the CONST_INT match.
8021         (sext_add_operand): Correct typo in comparison by using
8022         CONST_OK_FOR_LETTER_P.
8023         * alpha.md (s?addq): Use sext_add_operand to allow the negative
8024         constant alternatives to be generated.
8025         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
8026         small constants, since the hw instructions do.
8027
8028 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8029
8030         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
8031         previous insn to store directly into our reload register, make sure
8032         that if the source of the previous insn is a reload register, its
8033         spill_reg_store and spill_reg_stored_to values are cleared.
8034
8035 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@gnu.org>
8036
8037         * rs6000.md (floatunssidf2_internal splitter): Use base register
8038         operand, not hard-coded SP.
8039
8040 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8041
8042         * jump.c (calculate_can_reach_end): Fix thinko.
8043
8044 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
8045
8046         * reorg.c (fill_simple_delay_slots): Fix typo.
8047
8048         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
8049
8050 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
8051
8052         * i386.md (extendsidi2): Use # in the output template.
8053         (extendsidi splitters): New splitters.
8054
8055 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
8056
8057         * configure.in: Use unknown-elf.h as tm_file for arm-elf
8058         configuarions.
8059         * configure: Regenerate.
8060
8061 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8062
8063         * jump.c (init_label_info, delete_barrier_successors,
8064         mark_all_labels, delete_unreferenced_labels,
8065         delete_noop_moves, calculate_can_reach_end): New functions broken
8066         out of jump_optimize.
8067         (jump_optimize): Use them.
8068
8069 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
8070
8071         * except.c (expand_fixup_region_end): Make sure outer context labels
8072         are not issued in an inner context during cleanups.
8073
8074 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
8075
8076         * alpha.md (addsi3, subsi3): No new temporaries once cse is
8077         no longer expected.
8078
8079 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
8080
8081         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
8082         to expose this midpoint to CSE.
8083
8084 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
8085
8086         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
8087
8088 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8089
8090         * configure.in: Bring over gcc2 change of Nov 19 1997.
8091
8092 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
8093
8094         * toplev.c (output_lang_identify): Make definition dependent on
8095         ASM_IDENTIFY_LANGUAGE.
8096
8097         * print-rtl.c (spaces): Make static.
8098
8099 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
8100
8101         * extend.texi: Clarify proper uses for register clobbers in asms.
8102
8103 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8104
8105         * recog.h (enum op_type): Define.
8106         (constrain_operands): Adjust prototype.
8107         (recog_op_type): Declare new variable.
8108         * recog.c (recog_op_type): New variable.
8109         (insn_invalid_p): Allow modifying an asm statement after reload.
8110         (extract_insn): Set up recog_op_type.
8111         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
8112         Don't compute operand types, use recog_op_type.
8113         Use the information computed by extract_insn instead of the previous
8114         method of finding it by insn code number.
8115         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
8116         * reorg.c (fill_slots_from_thread): Likewise.
8117         * reload1.c (reload_as_needed): Likewise.
8118         (gen_reload): Likewise.
8119         (inc_for_reload): Likewise.
8120         (reload_cse_simplify_operands): Likewise.
8121         Use the information computed by extract_insn instead of the previous
8122         method of finding it by insn code number.
8123         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
8124         insn_extract.
8125         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
8126         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
8127         Use the information computed by extract_insn instead of the previous
8128         method of finding it by insn code number.
8129         * regmove.c (find_matches): Likewise.  Change meaning of the return
8130         value to be nonzero if the optimization can be performed, zero if
8131         not.  All callers changed.
8132         Shorten some variable names to fix formatting problems.
8133         (regmove_optimize): Shorten some variable names to fix formatting
8134         problems.
8135         Use the information computed by extract_insn instead of the previous
8136         method of finding it by insn code number.
8137         * regclass.c (scan_one_insn): Likewise.
8138         (record_reg_classes): Don't compute operand types, use recog_op_type.
8139         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
8140         recog_constraints instead.
8141
8142 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
8143
8144         * rtl.h (flow2_completed): Declare.
8145         * flow.c (flow2_completed): Definition.
8146         * toplev.c (rest_of_compilation): Set and clear flow2_completed
8147         as necessary.
8148
8149 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
8150
8151         * Makefile.in (libcpp.a): Ranlib libcpp.a
8152
8153         * cppulp.c (user_label_prefix): Initialize.
8154         
8155 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
8156
8157         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
8158         at a RETURN if current_function_sp_is_unchanging is set.
8159
8160 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
8161
8162         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
8163
8164 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
8165
8166         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
8167         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
8168         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
8169         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
8170         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
8171         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
8172         to __CYGWIN32__.
8173         (LIB_SPEC): Handle -mno-cyginw option.
8174         (LINK_SPEC): Handle -mdll.
8175
8176 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8177
8178         * reload.c (find_reloads): Fix test for usage by other reload
8179         to handle secondary reloads properly.
8180
8181 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8182
8183         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
8184         intermediate structure which has exactly the members provided by
8185         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
8186         static intermediate structure.
8187         
8188         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
8189         from the intermediate structure.  Do the same analogous fix in
8190         the case where ELIMINABLE_REGS is not defined.
8191
8192 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
8193
8194         * pa.h (SELECT_SECTION): Fix thinko.
8195
8196 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
8197
8198         * dwarf2out.c (output_call_frame_info): Comments on last change.
8199
8200 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
8201
8202         * arm.c (add_constant): When taking the address of an item in the
8203         pool, get the mode of the item addressed.
8204
8205         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
8206         contain a SET or a PARALLEL, don't consider it for conditional
8207         execution.
8208
8209         Restore ABI compatibility for NetBSD.
8210         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
8211         arm.h
8212         (RETURN_IN_MEMORY): Likewise.
8213
8214 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
8215
8216         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
8217         (m32r_output_block_move): Rewrite bytes < 4 handling.
8218
8219 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8220
8221         * configure.in: Call AC_FUNC_VFORK.
8222
8223         * collect2.c: Define VFORK_STRING as a printable string for
8224         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
8225         defined, include vfork.h.  If VMS is defined, define vfork()
8226         appropriately.  Remove vfork check on USG, we're using autoconf.
8227         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
8228         checking locally what string to pass.
8229         (scan_prog_file): Likewise.
8230         (scan_libraries): Likewise.
8231
8232         * gcc.c: Remove vfork check on USG, we're using autoconf.
8233         Besides, no calls to vfork/fork occur in this file.
8234
8235         * protoize.c: Likewise.
8236
8237 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8238
8239         * configure.in (DEFAULT_LINKER): renamed from LD
8240         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
8241         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
8242         * configure: rebuilt
8243
8244 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8245
8246         * BUGS: fix the regexp for `more' to find the appropriate node.
8247         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
8248
8249         * BUGS: added link to the WWW FAQ
8250
8251 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
8252
8253         * version.c: Bump for snapshot.
8254
8255 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
8256
8257         * From Christian Gafton:
8258         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
8259         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
8260         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
8261
8262 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
8263
8264         * c-common.c (c_get_alias_set): Allow all type-punning through
8265         unions.  Don't get confused about the type of a bit-field, despite
8266         the antics of build_modify_expr.
8267
8268 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
8269
8270         * fixinc.sco: Paramaterize #include_next values.
8271         * fixinc/fixinc.sco: Likewise.
8272
8273 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
8274
8275         * toplev.c (rest_of_compilation): No longer set reload_completed.
8276         * reload1.c (reload): Set it here.  Perform instruction splitting
8277         after reload has completed if we will be running the scheduler
8278         again.
8279
8280 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
8281
8282         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
8283         EH region if exceptions are enabled and we're performing cross
8284         jump optimizations.
8285         (find_cross_jump): Exit loop if the insns are in different EH regions.
8286
8287 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
8288
8289         * dwarf2out.c (output_call_frame_info): Use
8290         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
8291
8292 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8293
8294         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
8295         * c-common.c (check_format_info): Don't check for the 'x'
8296         format character twice, instead check for 'x' and 'X'
8297
8298 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
8299
8300         * configure.in (assembler features): Also make gas is configured if
8301         we find it in the souce tree.
8302
8303 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
8304
8305         * i386.c (i386_comp_type_attributes): Compare whether the 
8306         attributes are defined, not their tree nodes.
8307
8308 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8309
8310         * configure.in (gxx_include_dir): bitten by autoconf quoting
8311         characters :-(
8312         * configure: rebuilt
8313
8314 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8315
8316         * configure.in: Ignore non-absolute value in $AS.
8317
8318 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
8319
8320         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
8321
8322 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
8323
8324         * configure.in (msdosdjgpp): Set exeext and target_alias.
8325
8326 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8327
8328         * flow.c (XNMALLOC): New macro.
8329         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
8330         static variables.
8331         (add_edge, add_edge_to_label): New static functions.
8332         (free_bb_memory): New function.
8333         (flow_delete_insn): Delete function.
8334         (basic_block_drops_in): Delete variable.
8335         (find_basic_blocks): Allocate and initialize basic_block_head,
8336         basic_block_succ.  Don't allocate basic_block_drops_in.
8337         Call free_bb_memory at the beginning.
8338         (find_basic_blocks_1): Don't do multiple passes.
8339         Delete code to compute basic_block_drops_in.
8340         After calling make_edges, mark blocks reached by current block live.
8341         Update test for unreachable live blocks.
8342         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
8343         changed.
8344         Simplify to call add_edge_to_label when a LABEL_REF is found.
8345         (make_edges): Simplify to call add_edge_to_label instead of
8346         mark_label_ref most of the time.
8347         Compute here whether control drops into the next block.
8348         (delete_unreachable_blocks): Return void.  All callers changed.
8349         Delete unreachable blocks in reverse order.
8350         After deleting all unreachable blocks, renumber the remaining ones
8351         and update n_basic_blocks.
8352         (delete_block): Speed up deletion a bit.
8353         Don't set basic_block_drops_in for deleted blocks.
8354         (free_basic_block_vars): Don't free basic_block_drops_in.
8355         (life_analysis_1): Update to use new edge representation.
8356         (dump_flow_info): Delete code to print basic block info; call
8357         dump_bb_data instead.
8358         (compute_preds_succs): Delete code to recompute basic_block_drops_in
8359         and uid_block_number.
8360         Simply copy the previously computed cfg.
8361         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
8362         Print register lifetime information if LIVE_INFO is nonzero.
8363         * basic-block.h (dump_bb_data): Adjust prototype.
8364         * gcse.c (gcse_main): Update call to dump_bb_data.
8365         * rtl.h (free_bb_memory): Declare.
8366         * toplev.c (rest_of_compilation): Call free_bb_memory.
8367
8368         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
8369         (update_eliminable_offsets): Don't compute it.
8370         (set_initial_elim_offsets): Don't initialize it.
8371         Break out some code into set_initial_label_offsets so the rest of
8372         this function can be called from reload_as_needed.
8373         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
8374         ELIMINABLE_REGS isn't.
8375         (set_initial_label_offsets): New function, broken out of
8376         set_initial_elim_offsets.
8377         (set_offsets_for_label): New function, broken out of set_label_offsets
8378         and reload_as_needed.
8379         (reload): Call the two new functions.
8380         (reload_as_needed): Call set_initial_elim_offsets instead of
8381         duplicating the code.  Likewise for set_offsets_for_label.
8382
8383         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
8384         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
8385         any hard reg, reg_reloaded_dead contains valid data.
8386
8387 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
8388
8389         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
8390         "stdcall" and "cdecl" attributes.
8391
8392 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
8393
8394         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
8395         handle deleted no-op moves of hard registers.
8396         * haifa-sched.c (update_flow_info): Likewise.
8397
8398 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
8399
8400         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
8401         of the sequences to reload the HILO register which do not actually
8402         reference HILO.
8403
8404 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
8405
8406         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
8407
8408 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
8409
8410         * except.c (emit_eh_context): Make the EH context register stay alive
8411         at -O0 so stupid.c doesn't get confused.
8412
8413 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8414
8415         * emit-rtl.c (try_split): Do not try to split a BARRIER.
8416
8417 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
8418                           Jeffrey A Law  (law@cygnus.com)
8419
8420         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
8421         (zero_extendsidi2): Use # in output template and handle completely by
8422         splits.
8423         (zero_extend splitters): New define_splits.
8424         (ashiftrt_32): New pattern.
8425
8426 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
8427
8428         * tree.c (append_random_chars): New fn.
8429         (get_file_function_name_long): Use it.
8430
8431 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
8432
8433         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
8434         (LIBCPP_OBJS): New.  Add cppulp.o.
8435         (cppmain, fix-header): Depend on and use libcpp.a.
8436         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
8437         of the individual object files.
8438         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
8439         last.
8440
8441         * cccp.c (user_label_prefix): New.
8442         (main): Set it off -f*leading-underscore.
8443         (special_symbol): Use it.
8444         * cpplib.c (special_symbol): Likewise.
8445         (cpp_handle_option): Handle -f*leading-underscore.
8446         * cppulp.c: New file.
8447
8448         * output.h (user_label_prefix): Declare it.
8449         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
8450         * toplev.c (f_options, main): Handle -f*leading-underscore.
8451
8452         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
8453         referencing USER_LABEL_PREFIX directly.
8454         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
8455         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
8456         * final.c (asm_fprintf): Use user_label_prefix instead.
8457         * arm/thumb.c (thumb_print_operand): Likewise.
8458
8459         * gcc.c (default_compilers): Pass -f*leading-underscore on to
8460         cpp wherever appropriate.
8461
8462 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
8463
8464         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
8465         specific compiler switches.
8466
8467 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
8468
8469         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
8470         of rtl.h.
8471
8472 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8473
8474         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
8475         structure which has exactly the members provided by EXTRA_SPECS.
8476         Xmalloc() the real `extra_specs', and initialize it from this
8477         intermediate structure.
8478
8479         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
8480
8481         * mips.h  (EXTRA_SPECS): Likewise.
8482
8483         * sparc.h (EXTRA_SPECS): Likewise.
8484
8485 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8486     
8487         * function.c (purge_addressof_1): Instead of aborting when a
8488         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
8489         work just put the ADDRESSOF on stack.  Otherwise remember all such
8490         successfull replacements, so that exactly the same replacements
8491         can be made on the REG_NOTEs.  Remove the special case for CALL
8492         insns again.
8493         (purge_addressof_replacements): New variable.
8494         (purge_addressof): Clear it at end.
8495
8496 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8497
8498          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
8499            (lang_init): Call check_newline always.
8500          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
8501            cpp_start_read, set yy_cur and yy_lim to read from
8502            parse_in.token_buffer, so that we'll see the first #line
8503            directive.
8504          * cpplib.c (cpp_start_read): finclude the main input file
8505            before processing -include/-imacros.  Process -imacros and
8506            -include separately, and handle -include by stacking a
8507            buffer for the file in question as if it'd been #included.
8508          * toplev.c (documented_lang_options) Recognize -H when
8509            USE_CPPLIB is on.
8510
8511 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8512
8513          * cpplib.c: Merge do_once into do_pragma.  Break file handling
8514            code out of do_include.
8515            Move append_include_chain, deps_output,
8516            file_cleanup, redundant_include_p, import_hash,
8517            lookup_import, add_import, read_filename_string, read_name_map,
8518            open_include_file, finclude, safe_read to cppfiles.c.
8519            Move prototypes for deps_output, append_include_chain,
8520            finclude to cpplib.h.  Move definition of struct
8521            file_name_list there also.
8522
8523          * cppfiles.c: New file.  Contains all the above functions
8524            broken out of cpplib.c; also hack_vms_include_specification
8525            from cccp.c and find_include_file, a new function broken out of
8526            do_include.
8527
8528          * Makefile.in (cppmain): Depend on cppfiles.o.
8529            (fix-header): Likewise.
8530            (cppfiles.o): New target.
8531          * configure.in (--enable-c-cpplib): Add cppfiles.o to
8532            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
8533
8534 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
8535
8536         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
8537         if pending_types is non-zero.
8538         (dwarfout_finish): Verify pending_types is zero before finishing.
8539
8540 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
8541
8542         * expr.c (convert_move): Use shifts to perform the move if a
8543         suitable extend pattern cannot be found.  Code written by
8544         Richard Henderson <rth@cygnus.com>.
8545
8546 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8547
8548         * regclass.c (renumber, regno_allocated): New static variables, moved
8549         out of allocate_reg_info.
8550         (allocate_reg_info): Move these two variables outside the function.
8551         Move code to free memory into new function free_reg_info.
8552         (free_reg_info): New function, broken out of allocate_reg_info.
8553         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
8554         * rtl.h (allocate_reg_info): Don't declare.
8555         (free_reg_info): Declare.
8556
8557         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
8558
8559 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
8560
8561         * toplev.c (compile_file): Temporarily revert last change.
8562
8563 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
8564
8565         * c-typeck.c (convert_for_assignment): Parenthesize.
8566
8567 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8568
8569         * reload1.c (delete_output_reload): Avoid ambigous else.
8570
8571 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
8572
8573         * toplev.c (compile_file): Call allocate_reg_info to free register
8574         table memory.
8575         * rtl.h (allocate_reg_info): Declare.
8576
8577         * PROJECTS: Remove entry for local spilling.
8578
8579         * final.c (cleanup_subreg_operands): New function.
8580         (final_scan_insn): Use it.
8581         (alter_subreg): Clear the "used" field when we turn a SUBREG into
8582         a REG.
8583         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
8584         operands when reload has finished.
8585         * reload.h (cleanup_subreg_operands): Declare..
8586         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
8587         reload.  Handled in reload itself.
8588
8589 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8590
8591         * reload1.c (verify_initial_offsets): New function.
8592         (reload): Call it after reload_as_needed.  Also verify that the frame
8593         size stays constant during reload_as_needed.
8594         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
8595
8596         * reload.h (struct insn_chain): Add need_operand_change element.
8597         * reload1.c (new_insn_chain): Clear it.
8598         (calculate_needs_all_insns): Set it; don't overload need_reload.
8599         (reload_as_needed): Use it.
8600
8601         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
8602         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
8603         and reload_address_index_reg_class.
8604         (find_reloads_address_1): Likewise.
8605         * reload.h (reload_address_base_reg_class,
8606         reload_address_index_reg_class): Don't declare.
8607         * reload1.c (reg_old_renumber, pseudo_previous_regs,
8608         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
8609         (used_spill_regs): Now static.
8610         (reload_address_base_reg_class, reload_address_index_reg_class,
8611         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
8612         basic_block_needs, max_needs, group_size, group_mode, max_groups,
8613         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
8614         forbidden_regs):
8615         Deleted variables.
8616         (init_reload): Delete code to compute base/index reg classes.
8617         (reload): Delete variable J.
8618         Delete code to manage basic_block_needs.
8619         Don't compute regs_explicitly_used.
8620         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
8621         pseudo_previous_regs.
8622         Initialize bad_spill_regs_global.
8623         Don't call order_regs_for_reload here.
8624         Don't initialize spill_reg_order and n_spills.
8625         Don't forbid explicitly used regs to be used for spill regs.
8626         Change main loop to infinite loop, with explicit break statements.
8627         Make SOMETHING_CHANGED variable local to that loop.
8628         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
8629         max_groups_insn, max_nongroups_insn, group_size, group_mode.
8630         Make sure spilled_speudos is cleared before calling spill_hard_reg or
8631         new_spill_reg.
8632         Don't call dump_needs.
8633         Delete code to reset potential_reload_regs.
8634         Delete code to terminate loop conditional on the global needs variables
8635         showing no further needs.
8636         (calculate_needs_all_insns): Return void.  All callers changed.
8637         Initialize somehing_needs_elimination here, not in reload.
8638         Delete avoid_return_reg kludge.
8639         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
8640         All callers changed.
8641         Initialize the group_mode and group_size elements of the arg CHAIN.
8642         Delete code to manage basic_block_needs.
8643         Operate on elements of CHAIN instead of global variables.
8644         Delete avoid_return_reg kludge.
8645         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
8646         All callers changed.
8647         Operate on elements of CHAIN instead of global variables.
8648         Delete special SMALL_REGISTER_CLASSES code.
8649         Delete spill_failure code; now in new_spill_reg.
8650         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
8651         All callers changed.
8652         Operate on elements of CHAIN instead of global variables.
8653         (maybe_mark_pseudo_spilled): New static function.
8654         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
8655         All callers changed.
8656         Operate on elements of CHAIN instead of global variables.
8657         Call order_regs_for_reload here, not in reload.
8658         Initialize spill_reg_order and n_spills.
8659         Simplify test whether an asm insn is involved.
8660         Delete spill_failure code; now in new_spill_reg.
8661         Call maybe_mark_pseudo_spilled for everything marked as live in
8662         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
8663         used_spill_regs.
8664         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
8665         compiler from optimizing this function (now unused) away.
8666         Operate on elements of CHAIN instead of global variables.
8667         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
8668         changed.
8669         Operate on elements of CHAIN instead of global variables.
8670         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
8671         take CHAIN arg.  All callers changed.
8672         Operate on elements of CHAIN instead of global variables.
8673         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
8674         CHAIN, NONGROUP args.  Return void.  All callers changed.
8675         Verify caller isn't trying to spill a pseudo.
8676         Simplify test for illegal reg, just use bad_spill_regs.
8677         Generate better error messages.
8678         Operate on elements of CHAIN instead of global variables.
8679         Mark spilled register in CHAIN's used_spill_regs element.
8680         Don't call spill_hard_reg.
8681         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
8682         Mark spilled hard regs in bad_spill_regs_global.
8683         Mark affected pseudos in spilled_pseudos, but don't spill them.
8684         (ior_hard_reg_set): New static function.
8685         (finish_spills): Return int.  All callers changed.
8686         Compute spill_reg_order, n_spills and spill_regs here.  Also update
8687         regs_ever_live for regs used as spills.
8688         For every pseudo in spilled_pseudos, spill it and mark the previous
8689         hard reg it had in pseudo_previous_regs.  Compute which hard regs
8690         arseudo): New static function.
8691         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
8692         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
8693         hard registers explicitly used across the current insn into the set.
8694         Compute hard_reg_n_uses taking only pseudos live across this insn
8695         into account.
8696         Tweak sorting of potential_reload_regs.
8697         (compare_spill_regs): Delete function.
8698         (reload_as_needed): Don't sort the spill_regs array, it's computed
8699         in proper order in finish_spills.
8700         Delete avoid_return_reg kludge.
8701         Delete code to manage basic_block_needs.
8702         (allocate_reload_reg): Minor speed/readability tweaks.
8703         Operate on elements of CHAIN instead of global variables.
8704         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
8705         Delete avoid_return_reg kludge.
8706         Initialize reload_reg_used from CHAIN's used_spill_regs element.
8707         Delete unused label FAIL.
8708         (reload_combine): Replce reload_address_index_reg_class with
8709         INDEX_REGS.
8710         Don't use used_spill_regs to determine information about lifetime of
8711         hard regs.
8712
8713 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
8714         
8715         * toplev.c (display_help): Ignore empty target specific
8716         options, and if -W is also specified on the command line then
8717         display undocumented options.
8718
8719         * config/arm/arm.c: Updated with changes in devo sources.
8720         * config/arm/arm.h: Updated with changes in devo sources.
8721         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
8722         * config/arm/lib1thumb.asm: Add ELF support.
8723
8724 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@gnu.org>
8725
8726         * collect2.c (aix64_flag): New variable.
8727         (main, case 'b'): Parse it.
8728         (GCC_CHECK_HDR): object magic number must match mode.
8729         (scan_prog_file): Only check for shared object if valid header.
8730         Print debugging if header/mode mismatch.
8731
8732 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
8733
8734         Added support for arm-elf-linux configuration, submitted by Philip
8735         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
8736         code developed by Catherine Moore <clm@cygnus.com>.  The following
8737         files are affected: 
8738
8739         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
8740         targets. 
8741
8742         * configure: Regenerated.
8743         
8744         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
8745         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
8746         definitions conditional on their not having been already defined.
8747
8748         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
8749         and .type directives, and add "(PLT)" qualification to function
8750         calls.
8751
8752         * config/arm/linux.h: Deleted.  This file is now superceeded by
8753         either linux-elf.h or linux-aout.h.
8754
8755         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
8756         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
8757         support).
8758         Move definitions from old linux.h file here.
8759         
8760         * config/arm/elf.h: New file.  Generic ARM/ELF support.
8761         
8762         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
8763         
8764         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
8765         
8766         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
8767         using the 26bit APCS.
8768         
8769         * config/arm/unknown-elf.h: New file.  Support for OS'es other
8770         than Linux with ELF.
8771
8772         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
8773         builds.
8774         
8775         * config/arm/coff.h: Include aout.h for basic assembler macros.
8776         Add support for -mstructure_size_boundary=<n> command line option.
8777         
8778         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
8779         command line option.  Make macro definitions conditional on their
8780         not having been already defined. 
8781
8782         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
8783         command line option.
8784
8785         
8786 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
8787
8788         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
8789         has been changed to not include a newline. Use this macro instead.
8790         (output_enumeral_list, const_value_attribute, name_attribute,
8791         comp_dir_attribute, prototyped_attribute, producer_attribute,
8792         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
8793         dwarfout_file_scope_decl, generate_new_sfname_entry,
8794         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
8795         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
8796
8797 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
8798
8799         * combine.c (subst): Process the inputs to a parallel asm_operands
8800         only once.
8801
8802 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
8803
8804         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
8805
8806 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
8807
8808         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
8809
8810 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
8811
8812         * version.c: Bump for snapshot.
8813
8814 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
8815
8816         * stmt.c (expand_fixup): Set fixup->before_jump to a
8817         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
8818
8819 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8820
8821         * Makefile.in (recog.o): Depend on toplev.h.
8822         (insn-emit.o): Depend on recog.h.
8823         (insn-peep.o): Depend on recog.h and insn-config.h.
8824
8825         * combine.c (simplify_set): Remove unused variable `scratches'.
8826
8827         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
8828         and `idx' in macro conditional controlling their use.
8829
8830         * genemit.c (main): Make the generated output file include
8831         recog.h.  Don't have it declare `insn_operand_constraint', since
8832         we get it from recog.h.
8833
8834         * genpeep.c (main): Make the generated output file include
8835         insn-config.h and recog.h.
8836
8837         * recog.c: Include toplev.h.
8838         (extract_insn): Remove unused variable `p'.
8839
8840         * regclass.c (fix_register): Add missing braces around initializer
8841         for `what_option'.
8842         (allocate_reg_info): Move variable `i' into the scope where it is
8843         used.  Change its type to `size_t'.
8844
8845 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8846
8847         * reload.c (push_reload): When merging reloads, make sure
8848         that reload_in_reg and reload_in are from the same reload in
8849         all cases.
8850
8851 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
8852
8853         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
8854         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
8855
8856 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@gnu.org>
8857
8858         * loop.c (loop_has_tablejump): New variable.
8859         (prescan_loop): Scan for it.
8860         (insert_bct): Replace explicit scan with use of it.
8861         * regclass.c (regclass): Restore loop variable j.
8862         (record_reg_classes): Deterine op_types modifiers and initialize
8863         classes[i] before matching constraints.  Handle matching
8864         constraints 5-9.
8865         
8866 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
8867
8868         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
8869         subreg support.
8870
8871 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8872
8873         * mips.h (EXTRA_SPECS): Add missing initializers.
8874
8875 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8876
8877         * sparc.h (EXTRA_SPECS): Add missing initializers.
8878         (sparc_defer_case_vector): Provide a prototype.
8879
8880         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
8881         comparing it to the result of a pointer subtraction.
8882
8883 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8884
8885         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
8886         the argument to (unsigned char).
8887
8888         * alpha.h (EXTRA_SPECS): Add missing initializers.
8889         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
8890         format specifier.
8891
8892 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
8893
8894         * flow.c (life_analysis_1): Enable "rescan" code after reload.
8895         (propagate_block): Delete dead code after reload.
8896
8897         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
8898         back Oct 15, 1998 change.  
8899         * haifa-sched.c (update_flow_info): Likewise.
8900         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
8901
8902         * mn10200.md (truncated shift): Accept constant inputs too.
8903
8904 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
8905
8906         * machmode.h (mode_mask_array): No longer const.
8907         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
8908
8909 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
8910
8911         * frame.c: Somewhat explain `FDE'.
8912         Suggested by Brendan Kehoe
8913
8914 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
8915
8916         * expr.c (pending_chain): Move up.
8917         (save_expr_status): Do save pending_chain.
8918         (restore_expr_status): And restore it.
8919         * function.h (struct function): Add pending_chain.
8920
8921 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8922
8923         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
8924         did not match the code.
8925
8926 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8927
8928         * regclass.c (regclass): Break out some code into new function
8929         scan_one_insn, and into regclass_init.
8930         (init_cost): New static variable, moved out of regclass.
8931         (regclass_init): Initialize it here, not in .
8932         (scan_one_insn): New static function, broken out of regclass.
8933         * recog.c (apply_change_group): Break out some code into new
8934         function insn_invalid_p.
8935         (insn_invalid_p): New static fn, broken out of apply_change_group.
8936
8937 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
8938
8939         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
8940         reg_reloaded_contents matches incremented pseudo.
8941
8942         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
8943
8944 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8945
8946         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
8947         addressing modes with side effects.  These are currently
8948         placeholders for the C4x target.
8949
8950 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8951
8952         * loop.c (express_from): Make sure that when generating a PLUS of
8953         a PLUS, any constant expression appears on the outermost PLUS.
8954
8955 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
8956
8957         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
8958         works if "$(srcdir)" != ".".
8959
8960 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
8961
8962         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
8963         existing SUBREG if we can, otherwise abort.
8964
8965 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
8966
8967         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
8968         `restrict' is applied to a non-pointer variable.
8969
8970 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
8971
8972         * invoke.texi: Document -flang-isoc9x.
8973
8974         * Makefile.in (OBJS): Add splay-tree.o.
8975         (c-common.o): Depend on rtl.h.
8976         (splay-tree.o): List dependencies and provide build rule.
8977         
8978         * rtl.h (record_alias_subset): New function.
8979         * alias.c: Include splay-tree.h.
8980         (alias_set_entry): New type.
8981         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
8982         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
8983         (mems_in_disjoin_alias_sets_p): New function.
8984         (alias_set_compare): Likewise.
8985         (insert_subset_children): Likewise.
8986         (get_alias_set_entry): Likewise.
8987
8988         * tree.h (TYPE_RESTRICT): New macro.
8989         (TYPE_UNQUALIFIED): New manifest constant.
8990         (TYPE_QUAL_CONST): Likewise
8991         (TYPE_QUAL_VOLATILE): Likewise.
8992         (TYPE_QUAL_RESTRICT): Likewise.
8993         (tree_type): Add restrict_flag.  Reduce count of free bits.
8994         (DECL_POINTER_ALIAS_SET): New macro.
8995         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
8996         (tree_decl): Add pointer_alias_set.
8997         (build_qualified_type): New function.
8998         (build_type_variant): Define in terms of build_qualified_type.
8999         * tree.c (set_type_quals): New function.
9000         (make_node): Initializae DECL_POINTER_ALIAS_SET.
9001         (build_type_attribute_variant): Use build_qualified_type and
9002         set_type_quals.
9003         (build_type_variant): Rename, and modify, to become...
9004         (build_qualified_type): New function.
9005         (build_complex_type): Use set_type_quals.
9006
9007         * c-tree.h (C_TYPE_OBJECT_P): New macro.
9008         (C_TYPE_FUNCTION_P): Likewise.
9009         (C_TYPE_INCOMPLETE_P): Likewise.
9010         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
9011         (c_apply_type_quals_to_decl): New function.
9012         (c_build_qualified_type): New function.
9013         (c_build_type_variant): Define in terms of c_build_qualified_type.
9014         (flag_isoc9x): Declare.
9015         * c-typeck.c (qualify_type): Use c_build_qualified_type.
9016         (common_type): Change to use TYPE_QUALS.
9017         (comptypes): Likewise.
9018         (convert_for_assignment): Likewise.
9019         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
9020         * c-decl.c (flag_isoc9x): Define.
9021         (c_decode_option): Handle -flang-isoc9x.
9022         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
9023         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
9024         * c-lex.c (init_lex): Deal with restrict.
9025         (init_lex): Don't treat restrict as a reserved word in
9026         -traditional mode, or without -flang-isoc9x.
9027         * c-lex.h (rid): Add RID_RESTRICT.
9028         * c-parse.gperf (restrict, __restrict, __restrict__): Make
9029         equivalent to RID_RESTRICT.
9030         * c-parse.in (TYPE_QUAL): Update comment.
9031         * c-common.c: Include rtl.h.
9032         (c_find_base_decl): New function.
9033         (c_build_type_variant): Rename, and modify, to become ...
9034         (c_build_qualified_type): New function.
9035         (c_apply_type_quals_to_decl): Likewise.
9036         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
9037         a particular alias set for the reference.
9038         * toplev.c (documented_lang_options): Add -flang-isoc9x.
9039
9040 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
9041
9042         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
9043         command line switches.
9044
9045 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
9046
9047         * reload.c (loc_mentioned_in_p): Add missing braces to bind
9048         else to correct if.
9049
9050 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
9051
9052         * gcc.c (option_map): Added --classpath and --CLASSPATH.
9053
9054 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
9055
9056         * regclass.c (fix_register): Add error message.
9057         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
9058           new error message.
9059
9060 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9061
9062         * c-decl.c (warn_missing_noreturn): New global variable.
9063         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
9064         (finish_function): Implement missing noreturn warning.
9065
9066         * c-tree.h (warn_missing_noreturn): Declare extern.
9067
9068         * invoke.texi: Document new flags.
9069
9070         * toplev.c (documented_lang_options): Add description.
9071
9072 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9073
9074         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
9075         loop optimization stable for the C4x.
9076         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
9077         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
9078         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
9079         loop optimization).
9080         (c4x_address_conflict): Be more paranoid when packing a volatile
9081         memref in a parallel load/store.
9082
9083 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9084
9085         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
9086         repeat_block_filler): Deleted.
9087         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
9088         Condition code not set if destination register from 'c' class.
9089         (*subbqi3_carry_clobber): Fix typo.
9090
9091 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9092
9093         * reorg.c (steal_delay_list_from_target) Check for insns that
9094         modify the condition codes and effect the direction of the jump
9095         in the sequence.
9096
9097 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
9098
9099         * function.c (purge_addressof_1): Replace call to
9100         emit_insns_before() with emit_insn_before().
9101
9102 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
9103
9104         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
9105
9106 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
9107
9108         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
9109
9110 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
9111
9112         * gcse.c (compute_hash_table): Correctly identify hard regs which are
9113         clobbered across calls.
9114
9115         * loop.c (scan_loop): Be more selective about what invariants are
9116         moved out of a loop.
9117
9118 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
9119
9120         * version.c: Bump for snapshot.
9121
9122 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
9123
9124         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
9125         static eh_context structure.
9126
9127 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
9128
9129         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
9130         callers changed.
9131         (try_combine): Don't update max_scratch.
9132         * flow.c (max_scratch, num_scratch): Delete variables.
9133         (life_analysis_1): Don't initialize max_scratch.
9134         (propagate_block): Don't update max_scratch.
9135         (mark_set_1): Don't increment num_scratch.
9136         * regs.h (max_scratch): Delete declaration.
9137
9138 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
9139
9140         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
9141         is nonzero.  This is temporary!
9142
9143         * sched.c (update_flow_info): Handle death notes made invalid by
9144         instruction splitting.  Partially reverts Oct 15, 1998 patch.
9145         * haifa-sched.c (update_flow_info): Likewise.
9146
9147 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
9148
9149         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
9150         if it has a nonzero DECL_INITIAL.
9151
9152 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9153
9154         * Makefile.in (flow.o): Depend on recog.h.
9155
9156         * cpplib.h (directive_table): Add missing initializiers.
9157         (finclude): Change type of variable `bsize' to size_t.
9158         
9159         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
9160
9161         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
9162
9163         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
9164         `int' when comparing against one.
9165         (cpp_file_line_for_message): Mark parameter `pfile' with
9166         ATTRIBUTE_UNUSED.
9167         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
9168
9169         * flow.c: Include recog.h.
9170         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
9171
9172         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
9173         `f' with ATTRIBUTE_UNUSED.
9174         (reposition_prologue_and_epilogue_notes): Likewise.
9175
9176         * genopinit.c (gen_insn): Cast argument of ctype functions to
9177         `unsigned char'.
9178
9179         * haifa-sched.c: Include recog.h.
9180         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
9181         comparing against one.
9182
9183         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
9184
9185         * mips-tfile.c (parse_end): Cast the argument of ctype function to
9186         `unsigned char'.
9187         (parse_ent): Likewise.
9188         (parse_input): Likewise.
9189
9190         * optabs.c (init_libfuncs): Likewise.
9191
9192         * protoize.c (find_rightmost_formals_list): Likewise.
9193
9194         * recog.h (const_double_operand): Fix typo in prototype.
9195
9196         * tlink.c (scan_linker_output): Cast the argument of ctype
9197         function to `unsigned char'.
9198
9199         * toplev.c (check_lang_option): Cast the result of `strlen' to
9200         `int' when comparing against one.
9201
9202 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
9203
9204         * gcse.c (dump_cuid_table): Correct typo.
9205
9206 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
9207
9208         * toplev.c (display_help): Prepend '-m' to target specific
9209         options. 
9210         (check_lang_option): Ignore text after end of first word of a
9211         language specific option.
9212
9213 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
9214
9215         * reload1.c (reg_used_by_pseudo): New static variable.
9216         (choose_reload_regs): Initialize it.
9217         Use it instead of testing spill_reg_order to determine whether a
9218         pseudo is live in a hard register across the current insn.
9219         Fix a typo in a reference to reload_reg_rtx.
9220
9221         * flow.c (propagate_block): Replace code that computes and uses
9222         regs_sometimes_live with simpler code that just walks the set of
9223         currently live registers.
9224
9225         * Makefile.in (insn-extract.o): Fix dependencies.
9226         * genextract.c (main): Generate includes for insn-config.h and
9227         recog.h.
9228         Delete generation of declarations which are now in recog.h.
9229         * genrecog.c (main): Delete generation of definitions which are
9230         now in recog.c.
9231         * local-alloc.c (block_alloc): Use extract_insn and the variables
9232         it sets up instead of looking up values by insn_code.
9233         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
9234         recog_dup_num): Define here instead of generating the definition in
9235         genrecog.c.
9236         (recog_n_operands, recog_n_dups, recog_n_alternatives,
9237         recog_operand_mode, recog_constraints, recog_operand_address_p):
9238         New variables.
9239         (extract_insn): New function.
9240         * recog.h (extract_insn): Declare function.
9241         (which_alternative, recog_n_operands, recog_n_dups,
9242         recog_n_alternatives, recog_operand_mode, recog_constraints,
9243         recog_operand_address_p): Declare variables.
9244         * regclass.c (n_occurrences): New static function.
9245         * reload.c (n_occurrences): Delete function.
9246         (find_reloads): Use extract_insn.
9247         * reload.h (n_occurrences): Delete declaration.
9248
9249 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
9250
9251         * reload1.c (reload_as_needed): Fix test for when to call
9252         update_eliminable_offsets.
9253
9254 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9255
9256         Fix consistency problems with reg_equiv_{mem,address};
9257         Improve reload inheritance;
9258
9259         * reload.c (reload_out_reg): New variable.
9260         (loc_mentioned_in_p, remove_address_replacements): New functions.
9261         (remove_replacements): Deleted.
9262         (push_reload): Set reload_out_reg[i].
9263         When merging, also set reload_{in,out}_reg[i], and remove
9264         duplicate address reloads.
9265         (combine_reloads): Copy reload_out_reg[i].
9266         (find_reloads): Do make_memloc substitution also when
9267         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
9268         are both nonzero.
9269         Include *recog_operand_loc in commutativity operand changes.
9270         Generate optional output reloads.
9271         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
9272         processing operands.  Call make_memloc in reg_equiv_address code.
9273         Set *recog_operand_loc only after processing operands, and only
9274         if replace is true.  Return a value.
9275         When changing address reload types for operands that didn't get
9276         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
9277         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
9278         Don't emit USEs for pseudo SUBREGs when not replacing.
9279         (find_reloads_address): Do make_memloc substitution also when
9280         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
9281         are both nonzero.
9282         (find_reloads_toplev): Likewise.
9283         Call make_memloc in reg_equiv_address code.
9284         (debug_reload_to_stream): Add code to output reload_out_reg.
9285         (make_memloc): Delete local variable i, ifdefed out code, and
9286         references to memlocs and n_memlocs.
9287         (memlocs, n_memlocs): Delete.
9288         (push_secondary_reload): Clear reload_out_reg.
9289         (find_reloads_address_1): Provide memrefloc argument to all calls
9290         to find_reloads_address.
9291         In AUTO_INC code, handle non-directly addressable equivalences properly.
9292         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
9293         (find_reloads): Add return type.
9294         (remove_address_replacements, deallocate_reload_reg): Declare.
9295         * reload1.c (num_not_at_initial_offset): No longer static.
9296         (delete_address_reloads, delete_address_reloads_1): Likewise.
9297         (deallocate_reload_reg): New function.
9298         (spill_reg_stored_to): New array.
9299         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
9300         (eliminate_regs_in_insn): Move assignments of previous_offset and
9301         max_offset fields, and recalculation of num_not_at_initial_offset
9302         into new static function:
9303         (update_eliminable_offsets) .
9304         (reload_as_needed): Call update_eliminable_offsetss after calling
9305         find_reloads.
9306         Call forget_old_reloads_1 with contents of reloaded auto_inc
9307         expressions if the actual addressing can't be changed to match the
9308         auto_inc.
9309         (choose_reload_regs): For inheritance, replace
9310         reload_reg_free_before_p test with reload_reg_used_at_all test, and
9311         remove stand-alone reload_reg_used_at_all test.
9312         Use reload_out_reg to determine which reload regs have output reloads.
9313         Treat reload_override_in more similar to inherited reloads.
9314         Handle (subreg (reg... for inheritance.
9315         For flag_expensive_optimizations, add an extra pass to remove
9316         unnecessary reloads from known working inheritance.
9317         Delete obsolete code for pseudos replaced with MEMs.
9318         Handle inheritance from auto_inc expressions.
9319         (emit_reload_insns): If reload_in is a MEM, set OLD to 
9320         reload_in_reg[j].
9321         Don't reload directly from oldequiv; if it's a pseudo with a
9322         stack slot, use reload_in[j].
9323         Check that reload_in_reg[j] is a MEM before replacing reload_in
9324         from reg_reloaded_contents.
9325         Include non-spill registers in reload inheritance processing.
9326         Also try to use reload_out_reg to set spill_reg_store /
9327         reg_last_reload_reg.
9328         In code to set new_spill_reg_store, use single_set to find out if
9329         there is a single set.
9330         Add code that allows to delete optional output reloads.
9331         Add code to allow deletion of output reloads that use no spill reg.
9332         At the end, set reload_override_in to oldequiv.
9333         Also call delete_output_reload if reload_out_reg is equal to old
9334         in oldequiv code.
9335         Add code to call delete_output_reload for stores with no matching load.
9336         Set / use spill_reg_stored_to.
9337         Handle case where secondary output reload uses a temporary, but
9338         actual store isn't found.
9339         When looking for a store of a value not loaded in order to call
9340         delete_output_reload, count_occurences should return 0 for no
9341         loads; but discount inherited input reloadill_reg_stored_to.
9342         Do checks for extra uses of REG.  Changed all
9343         callers.
9344         Use delete_address_reloads.
9345         (reload): Take return value of find_reloads into account.
9346         If a no-op set needs more than one reload, delete it.
9347         (reload_reg_free_before_p): RELOAD_FOR_INPUT
9348         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
9349         for the same operand.
9350         (clear_reload_reg_in_use): Check for other reloads that keep a
9351         register in use.
9352         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
9353         RELOAD_FOR_OPADDR_ADDR.
9354         Take into account when an address address reload is only needed
9355         for the address reload we are considering.
9356         (count_occurrences): Use rtx_equal_p for MEMs.
9357         (inc_for_reload): Return instruction that stores into RELOADREG.
9358         New argument two, IN, and rtx.  Changed all callers.
9359         (calculate_needs_all_insns, reload_as_needed):
9360         Don't clear after_call for a CLOBBER.
9361         Keep track of how many hard registers need to be copied from
9362         after_call, and don't clear after_call before we have seen
9363         that much copies, or we see a different instruction.
9364
9365 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
9366
9367         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
9368         after reload has completed.
9369
9370 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
9371
9372         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
9373         a macro name and the next token with a single blank if that whitespace
9374         is in a macro buffer and the next token is not '('.
9375
9376 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
9377
9378         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
9379         (rescan): Ditto.
9380         (skip_if_group): Ditto.
9381         (skip_to_end_of_comment): Ditto.
9382         (macarg1): Ditto.
9383         (discard_comments): Ditto.
9384         (change_newlines): Ditto.
9385
9386 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
9387
9388         * c-lex.c (yylex): Fix unaligned access of wchar_t.
9389
9390 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
9391
9392         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
9393         (TARGET_OPTIONS): Add --help documentation.
9394
9395 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9396
9397         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
9398
9399 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
9400         
9401         * fixinc/* Moved in from ../contrib directory in preparation
9402         for integrating it into the normal build process.  In particular,
9403         fixinc/Makefile.in must be config-ed into the build directory
9404         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
9405         ./configure.in will be "in the mail" momentarily.
9406
9407 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
9408
9409         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
9410         accidently walk into the free list.  Comment how that can happen.
9411         (invalidate): Fix indentation.
9412
9413 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9414                          Jeffrey A Law  (law@cygnus.com)
9415
9416         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
9417         reload.  Never perform rescans of the insn chain after reload.
9418         (propagate_block): Do not delete insn or create new autoinc addressing
9419         modes after reload.
9420
9421         * jump.c (jump_optimize): Unconditionally use the code that was
9422         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
9423         * reload1.c (reload): When reloading is finished, delete all
9424         REG_DEAD and REG_UNUSED notes.
9425         (emit_reload_insns): Delete all code that was conditional on
9426         PRESERVE_DEATH_INFO_REGNO_P.
9427         (no_longer_dead_regs): Delete variable.
9428         (reload_cse_delete_death_notes): Delete function.
9429         (reload_cse_no_longer_dead): Delete function.
9430         (reload_cse_regs_1): Delete all code to handle deletion of death
9431         notes.
9432         (reload_cse_noop_set_p): Likewise.
9433         (reload_cse_simplify_set): Likewise.
9434         (reload_cse_simplify_operands): Likewise.
9435         (reload_cse_move2add): Likewise.
9436         * reorg.c (used_spill_regs): Delete declaration.
9437         (max_label_num_after_reload): Delete declaration.
9438         (find_dead_or_set_registers): Don't assume that spill regs are
9439         dead at a CODE_LABEL.
9440         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
9441         even after reload.
9442         * sched.c (sched_analyze_insn): Likewise.
9443         (update_flow_info): Likewise.
9444         * haifa-sched.c (sched_analyze_insn): Likewise.
9445         (update_flow_info): Likewise.
9446         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
9447         * toplev.c (max_label_num_after_reload): Delete variable.
9448         (rest_of_compilation): Don't set max_label_num_after_reload.
9449         Call life_analysis after reload_cse_regs if optimizing.
9450         * config/gmicro/gmicro.h: Delete comment referring to
9451         PRESERVE_DEATH_INFO_REGNO_P.
9452         * config/i386/i386.h: Likewise.
9453         * config/m88k/m88k.h: Likewise.
9454         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
9455         * config/sh/sh.h: Likewise.
9456
9457 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@gnu.org>
9458
9459         * loop.c (strength_reduce): Restore marking bct_p as
9460         ATTRIBUTE_UNUSED.
9461         * rs6000.c (optimization_options): Change #ifdef HAIFA to
9462         HAVE_decrement_and_branch_on_count.
9463         (small_data_operand): Remove TARGET_ELF condition for marking
9464         parameters ATTRIBUTE_UNUSED.
9465         
9466 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
9467
9468         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
9469         (SELECT_SECTION): Resync with svr4.h.
9470
9471 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@gnu.org>
9472
9473         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
9474         ATTRIBUTE_UNUSED.
9475
9476 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
9477
9478         * c-pragma.c (handle_pragma_token): Test for null tree before
9479         dereferencing TREE_CODE.
9480
9481 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9482
9483         * config/c4x/c4x.c: Convert to use GEN_INT.
9484         (c4x_parallel_process): Rework to handle new repeat loop structure.
9485
9486         * config/c4x/c4x.md: Convert to use GEN_INT. 
9487         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
9488         (decrement_and_branch_on_count): Likewise.
9489
9490         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
9491         loop.c has the desired functionality.
9492         (rc_reg_operand): New prototype.
9493
9494         * config/c4x/t-c4x: Can now build all front ends.
9495
9496 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
9497
9498         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
9499
9500 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
9501
9502         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
9503         * config/t-rtems: Do not install assert.h -- use newlib's.
9504
9505 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9506
9507         * combine.c (combine_instructions): When finished, call init_recog.
9508         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
9509
9510 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
9511
9512         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
9513
9514 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9515
9516         * cppalloc.c (memory_full): Mark function prototype with
9517         ATTRIBUTE_NORETURN.
9518
9519         * demangle.h (collect_exit): Likewise.
9520
9521         * fix-header.c (v_fatal, fatal): Likewise.
9522
9523         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
9524         Likewise.
9525
9526         * gcov.c (print_usage): Likewise.
9527
9528         * genattr.c (fatal, fancy_abort): Likewise.
9529
9530         * genattrtab.c (fatal, fancy_abort): Likewise.
9531
9532         * gencodes.c (fatal, fancy_abort): Likewise.
9533
9534         * genconfig.c (fatal, fancy_abort): Likewise.
9535
9536         * genemit.c (fatal, fancy_abort): Likewise.
9537
9538         * genextract.c (fatal, fancy_abort): Likewise.
9539
9540         * genflags.c (fatal, fancy_abort): Likewise.
9541
9542         * genopinit.c (fatal, fancy_abort): Likewise.
9543
9544         * genoutput.c (fatal, fancy_abort): Likewise.
9545
9546         * genpeep.c (fatal, fancy_abort): Likewise.
9547
9548         * genrecog.c (fatal, fancy_abort): Likewise.
9549
9550         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
9551         __sjpopnthrow, __throw): Likewise.
9552
9553         * objc/objc-act.c (objc_fatal): Likewise.
9554
9555         * protoize.c (usage, aux_info_corrupted,
9556         declare_source_confusing): Likewise.
9557
9558         * rtl.c (dump_and_abort): Likewise.
9559
9560         * rtl.h (sets_cc0_p): Likewise.
9561
9562         * toplev.c (float_signal, pipe_closed): Likewise.
9563         
9564 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9565
9566         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
9567         when generating the decision tree for the general case.
9568
9569         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
9570         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
9571
9572 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9573
9574         * Makefile.in (sched.o): Depend on recog.h.
9575
9576         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
9577         (unsigned) when comparing against one.
9578         (find_base_value): Likewise.
9579         (record_base_value): Cast variable `regno' to (unsigned) when
9580         comparing against one.  Cast the result of REGNO() macro to
9581         (unsigned) when comparing against one.
9582         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
9583         unsigned.
9584         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
9585         variable where an unsigned index is needed.
9586
9587         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
9588         before comparing against one.
9589
9590         * collect2.c: Add prototypes for functions `error', `fatal' and
9591         `fatal_perror'.  Make these functions take variable arguments
9592         instead of faking it with a fixed number of args.
9593         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
9594         char).
9595
9596         * combine.c (can_combine_p): Mark parameter `pred' with
9597         ATTRIBUTE_UNUSED.
9598         (find_split_point): Cast variable `src' to (unsigned
9599         HOST_WIDE_INT) when comparing against one.
9600         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
9601         (simplify_logical): Likewise.
9602         (force_to_mode): Cast result of INTVAL() macro to (unsigned
9603         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
9604         HOST_WIDE_INT) in shift.
9605         (simplify_and_const_int): Cast result of INTVAL() macro to
9606         `unsigned HOST_WIDE_INT' when comparing against one.
9607         (merge_outer_ops): Cast variable const0 to `unsigned
9608         HOST_WIDE_INT' when comparing against the result of
9609         GET_MODE_MASK() macro.
9610         (simplify_comparison): Likewise for variable `c0'.  Cast variable
9611         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
9612         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
9613         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
9614         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
9615         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
9616         comparing against one.
9617         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
9618
9619         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
9620         macro to `unsigned HOST_WIDE_INT' when comparing against one.
9621         (output_block_move): Cast `sizeof' expression to (int) when
9622         comparing against one.
9623         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
9624         against one.
9625         (save_restore_insns): Cast `base_offset' to `long' to match format
9626         specifier in fprintf.
9627
9628         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
9629         to `enum machine_mode'.
9630
9631         * flow.c (life_analysis_1): Remove unused variable `insn'.
9632
9633         * gcc.c (translate_options): Move variables `j' and `k' into the
9634         scope in which they are used.  Change their types to `size_t'.
9635         (set_spec): Cast the argument of ctype macro to `unsigned char'.
9636         (read_specs): Likewise.
9637         (process_command): Cast `sizeof' to (int) when comparing against one.
9638         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
9639         (handle_braces): Cast both sides of `==' expression to `long' to
9640         ensure sign matching.
9641         (main): Cast variable `i' to `int' when comparing against one.
9642
9643         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
9644         int to size_t.  Cast variable `i' to size_t when comparing against
9645         one.
9646
9647         * genattrtab.c (convert_set_attr_alternative): Remove unused
9648         parameter `insn_code'.  All callers changed.
9649         (convert_set_attr): Likewise.
9650
9651         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
9652         size_t when comparing against one.  Likewise for variable `len'.
9653
9654         * global.c (global_alloc): Cast variable `max_regno' to size_t
9655         when comparing against one.  Likewise for variable `max_allocno'.
9656
9657         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
9658
9659         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
9660         `set' with ATTRIBUTE_UNUSED.
9661         (find_free_reg): Cast `sizeof' expression to (int) when comparing
9662         against one.
9663
9664         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
9665         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
9666         (get_condition): Cast variable `const_val' to `unsigned
9667         HOST_WIDE_INT' when comparing against one.  Cast unsigned
9668         expression to HOST_WIDE_INT when comparing against one.
9669         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
9670         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
9671         `unsigned' when comparing against one.
9672
9673         * protoize.c (is_id_char): Change type of parameter `ch' to
9674         unsigned char.
9675         (munge_compile_params): Cast argument of ctype macro to (const
9676         unsigned char).
9677         (process_aux_info_file): Cast variable `aux_info_size' to int when
9678         comparing against one.
9679         (forward_to_next_token_char): Cast argument of ctype macro to
9680         `const unsigned char'.
9681         (edit_formals_lists): Likewise.
9682         (find_rightmost_formals_list): Likewise.
9683         (add_local_decl): Likewise.
9684         (add_global_decls): Likewise.
9685         (edit_fn_definition): Likewise.
9686         (do_cleaning): Likewise.
9687         (scan_for_missed_items): Likewise.
9688         (edit_file): Cast variable `orig_size' to (int) when comparing
9689         against one.
9690         (main): Cast argument of ctype macro to `const unsigned char'.
9691
9692         * recog.c (const_int_operand): Mark parameter `mode' with
9693         ATTRIBUTE_UNUSED.
9694
9695         * regclass.c (record_reg_classes): Change type of variable `c' to
9696         `unsigned char'.  Cast `char' array index to `unsigned char'.
9697
9698         * reload.c (push_secondary_reload): Cast argument to
9699         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
9700
9701         * reload1.c (calculate_needs): Cast `char' array index to
9702         `unsigned char'.
9703         (set_label_offsets): Change type of variable `i' to unsigned int.
9704         Cast result of XVECLEN() macro to unsigned when comparing against
9705         one.
9706         (mark_not_eliminable): Change type of variable `i' to unsigned.
9707         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
9708         when comparing against one.
9709         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
9710         comparing against one.
9711         (choose_reload_regs): Hide unused label `fail'.
9712         (reload_cse_simplify_operands): Cast `char' array index to
9713         `unsigned char'.
9714         (reload_combine_note_store): Mark parameter `set' with
9715         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
9716         against one.
9717         (reload_cse_move2add): Remove unused variable `src2'.
9718
9719         * sched.c: Include recog.h.
9720         (sched_note_set): Remove unused parameter `b'.  All callers
9721         changed.
9722         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
9723         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
9724         when comparing against one.
9725
9726         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
9727         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
9728         comparing against one.
9729
9730         * unroll.c (precondition_loop_p): Remove unused parameter
9731         `loop_end'.  All callers changed.
9732
9733 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9734
9735         * reload1.c (maybe_fix_stack_asms): New static function.
9736         (reload): Call it.
9737
9738         * reload.h (compute_use_by_pseudos): Declare.
9739
9740         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
9741         (something_needs_reloads): Delete variable.
9742         (finish_spills): New function.
9743         (compute_use_by_pseudos): New function.
9744
9745         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
9746         Use the reload_insn_chain instead of walking the rtl directly.
9747
9748         (reload): Allocate and free spilled_pseudos.
9749         Ensure that all calls of spill_hard_reg are followed by a call to
9750         finish_spills.
9751         Use the insns_need_reload list instead of something_needs_reloads
9752         to find out if reload_as_needed must be called.
9753         Clear unused_insn_chains at the end.
9754
9755         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
9756         changed.
9757         Delete code to keep track of current basic block.
9758         Walk reload_insn_chain instead of the rtl structure.  Build the
9759         insns_need_reload chain.
9760         Remember which insns need reloading/elimination by setting the
9761         appropriate fields in struct insn_chain, not by putting modes on the
9762         insn.
9763
9764         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
9765         arg INSN.  All callers changed.
9766         Delete declaration of struct needs.
9767         Don't set something_needs_reloads.
9768         Record insn needs in the CHAIN argument.
9769
9770         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
9771
9772         (reload_as_needed): Lose FIRST arg.  All callers changed.
9773         Walk the reload_insn_chain instead of the rtx structure.
9774         Delete code to keep track of current basic block.
9775         Rename one of the NEXT variables to OLD_NEXT.
9776
9777         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
9778         callers changed.
9779         (choose_reload_regs): Likewise.
9780
9781         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
9782         callers changed.
9783         
9784         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
9785         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
9786         (hard_regs_live, hard_regs_need_restore): Delete variables.
9787         (n_regs_saved): Now static.
9788         (referenced_regs, this_insn_sets): New variables.
9789
9790         (setup_save_areas): Restructure the code a bit.
9791
9792         (restore_referenced_regs): Delete function.
9793         (mark_referenced_regs): New function, similar to the old
9794         restore_referenced_regs, but mark registers in referenced_regs.
9795
9796         (clear_reg_live): Delete function.
9797         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
9798         Only mark registers in this_insn_sets.
9799
9800         (save_call_clobbered_regs): Rework this function to walk the
9801         reload_insn_chain instead of using the list of instructions directly.
9802         Delete code to keep track of register lives, compute live regs on the
9803         fly from information in the chain.
9804         Instead of calling restore_referenced_regs, use mark_referenced_regs,
9805         then walk the set it computes and call insert_restore as appropriate.
9806
9807         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
9808         callers changed.
9809         Restructure the code a bit.  Test hard_regs_saved instead of
9810         hard_regs_need_restore.
9811         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
9812         args.  All callers changed.
9813         Restructure the code a bit.  Use TO_SAVE to determine which regs to
9814         save instead of more complicated test.
9815         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
9816         callers changed.
9817         Create a new insn_chain structure for the new insn and place it
9818         into the chain.
9819
9820         * rtl.texi: Update documentation to reflect that reload no longer
9821         puts modes on the insns.
9822
9823 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
9824
9825         * function.c (purge_addressof_1): Force the first argument of a
9826         CALL insn to memory.
9827
9828 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
9829
9830         * rtl.h: Delete duplicate prototypes.  Add some missing
9831         prototypes.
9832         * rtlanal.c: (for_each_rtx): Formatting tweak.
9833
9834 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9835
9836         * real.c (emdnorm and etoasc): Disable round to even for c4x target
9837         to be compatible with TI compiler.
9838
9839         * Makefile.in (USER_H): Add va-c4x.h to definition.
9840
9841 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
9842
9843         * function.c (purge_addressof_1): Fix typo in inequality: do
9844         bitfield optimization for equal mode sizes.
9845         * expmed.c (store_bit_field): Don't take subregs of subregs in
9846         the movstrict case.  Tidy a potential problem in the multi-word case.
9847         (extract_bit_field): Likewise.
9848
9849 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
9850
9851         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
9852         function.
9853         Compute max_uid_for_flow by calling get_max_uid after the scan.
9854         (find_basic_blocks_1): Don't emit NOPs here.
9855
9856 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
9857
9858         * alias.c (base_alias_check): Accept new args for the modes of the
9859         two references.  Use them to determine if an AND can overlap.  Update
9860         all callers.
9861         (memrefs_conflict_p): Assume sizes are aligned, and uses them
9862         to determine if an AND can overlap.
9863
9864 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
9865
9866         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
9867         check.  Add comment to document problems with TARGET_SUN_FPA version
9868         of this macro.
9869         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
9870
9871 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9872
9873         * Makefile.in (gencheck.o): Depend on gansidecl.h.
9874
9875         * c-common.c (print_char_table): Add missing initializers.
9876         (scan_char_table): Likewise.
9877         (time_char_table): Likewise.
9878
9879         * c-decl.c (c_decode_option): Mark parameter `argc' with
9880         ATTRIBUTE_UNUSED.
9881         (declare_parm_level): Mark parameter `definition_flag' with
9882         ATTRIBUTE_UNUSED.
9883
9884         * c-lex.c (readescape): Use `(unsigned)1' in shift.
9885         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
9886         against one.
9887
9888         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
9889         callers changed.
9890         (emit_call_1): Mark parameters `fndecl' and `funtype' with
9891         ATTRIBUTE_UNUSED.
9892         (expand_call): Cast result of MIN() to (unsigned int) when
9893         comparing against an unsigned value.
9894
9895         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
9896         callers changed.
9897         (make_definition): Remove unused parameter `op'.  All callers
9898         changed.
9899         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
9900         comparing against the result of pointer arithmetic.
9901
9902         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
9903         when comparing against one.
9904
9905         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
9906         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
9907         one.
9908         (output_die): Move variable `i' into the scope in which it is
9909         used.  Change its type to `unsigned'.
9910         (output_die): Cast the result of `strlen' to (int) when passing it
9911         to ASM_OUTPUT_ASCII().
9912         (output_pubnames): Likewise.
9913         (output_line_info): Likewise.
9914
9915         * emit-rtl.c (global_rtl): Add missing initializers.
9916
9917         * explow.c (promote_mode): Mark parameter `for_call' with
9918         ATTRIBUTE_UNUSED.
9919
9920         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
9921         `unsigned HOST_WIDE_INT' when comparing against one.
9922         (synth_mult): Change type of variable `cost' to int.
9923         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
9924
9925         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
9926         when comparing against one.
9927         (get_inner_reference): Change variable `alignment' to unsigned.
9928         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
9929         int) when comparing against one.
9930         (expand_builtin_setjmp): Change type of variable `i' to size_t.
9931
9932         * fold-const.c (div_and_round_double): Cast BASE to
9933         (HOST_WIDE_INT) when comparing against one.
9934
9935         * gencheck.c: Include gansidecl.h.
9936         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
9937
9938         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
9939         `tcode' with ATTRIBUTE_UNUSED.
9940
9941         * real.c (edivm): Cast constant value to (unsigned long) in
9942         expression compared against an unsigned value.
9943
9944         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
9945         comparing against one.
9946         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
9947         when comparing against one.
9948
9949         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
9950         (unsigned int) when comparing against one.  Likewise for
9951         GET_MODE_BITSIZE.
9952         (smallest_mode_for_size): Likewise.
9953         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
9954         (restore_storage_status): Likewise.
9955         
9956         * toplev.c (debug_args): Add missing initializer.
9957         (f_options): Spelling correction.  Add missing initializers.
9958         (documented_lang_options): Likewise.
9959         (debug_end_source_file): Mark parameter `lineno' with
9960         ATTRIBUTE_UNUSED.
9961
9962         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
9963         `decl' and `type' with ATTRIBUTE_UNUSED.
9964
9965         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
9966         when comparing against one.
9967         (assemble_variable): Mark parameter `top_level' with
9968         ATTRIBUTE_UNUSED.
9969         (assemble_external_libcall): Mark parameter `fun' with
9970         ATTRIBUTE_UNUSED.
9971         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
9972         ATTRIBUTE_UNUSED.
9973
9974 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
9975
9976         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
9977         Replace use of r5 with use of r19.
9978
9979         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
9980
9981         * config/v850/v850.c (compute_register_save_size): Allow for the
9982         fact that helper functions save all registers, not just those used
9983         by the function.
9984         
9985         Replace constant 31 with macro LINK_POINTER_REGNUM.
9986
9987         * config/v850/v850.md: Use 'indirect_operand' rather than
9988         'memory_operand' for bit test/set/clear patterns.
9989
9990 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
9991
9992         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
9993         * varasm.c (assemble_start_function et al): Don't call
9994         ASM_GLOBALIZE_LABEL for weak symbols.
9995
9996 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
9997
9998         * cse.c (equiv_constant): Check for NULL return from
9999         gen_lowpart_if_possible().
10000
10001 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
10002
10003         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
10004
10005         * collect2.c (main): Pass -EL/-EB through to the compiler.
10006
10007 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10008         
10009         * expr.c (push_block): Handle targets where the stack grows
10010         to higher addresses, but args grow to lower addresses and
10011         ACCUMULATE_OUTGOING_ARGS is not defined.
10012
10013 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
10014
10015         * config/v850/v850.c (print_operand):  Extend meaning
10016         of 'c' operands to support .vtinherit.
10017
10018 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10019
10020         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
10021         Added ATTRIBUTE_UNUSED to unused function arguments.
10022         (rc_reg_operand): New predicate.
10023         (c4x_rptb_insert): New function.
10024         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
10025         (c4x_optimization_options): New function.
10026
10027         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
10028          (decrement_and_branch_on_count): New pattern.
10029          (rptb_top): Modified pattern to work with BCT optimization.
10030         
10031         * config/c4x/c4x.h (RC_REG): New register class.
10032         (rc_reg_operand): Define prototype.
10033         (IS_RC_REG): New macro.
10034         (IS_RC_OR_PSEUDO_REG): New macro.
10035         (IS_RC_OR_PSEUDO_REGNO): New macro.
10036         (OPTIMIZATION_OPTIONS): Define.
10037
10038 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
10039
10040         * collect2.c (extract_init_priority): No priority is 65535.
10041
10042 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
10043         
10044         * Makefile.in (build_tooldir): new variable, same as old
10045         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
10046         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
10047         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
10048         
10049         * configure.in (gxx_include_dir): set default based on unlibsubdir
10050         * Makefile.in (tooldir): ditto
10051         (cccp.o, cpplib.o): use unlibsubdir implicitly through
10052         gxx_include_dir, includedir and tooldir
10053         (protoize.o, unprotoize.o): ditto
10054         
10055 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
10056
10057         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
10058
10059         * config/arm/thumb.c (thumb_override_options): Add warning about
10060         PIC code not being supported just yet.
10061
10062 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
10063
10064         * flow.c: Update comment.
10065         (notice_stack_pointer_modification): New static function.
10066         (record_volatile_insns): Use it.
10067         (mark_regs_live_at_end): Mark the stack pointer as alive
10068         at the end of the function if current_function_sp_is_unchanging
10069         is set.
10070         (life_analysis_1): Set current_function_sp_is_unchanging.
10071         * function.c: Define it.
10072         (init_function_start): Initialize it.
10073         * output.h: Declare it.
10074         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
10075         the stack pointer as alive at the end of the function if
10076         current_function_sp_is_unchanging is set.
10077         * i386.c (ix86_epilogue): Optimize the restoring
10078         of the stack pointer.
10079
10080 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
10081
10082         * version.c: Bump for snapshot.
10083
10084 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
10085
10086         * c-pragma.c (handle_pragma_token): If passed a token instead
10087         of a tree, use that as the pack value.
10088
10089 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
10090
10091         * flow.c (find_basic_blocks_1): Fix prototype.
10092
10093 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
10094
10095         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
10096         (struct tree_decl): New fields no_check_memory_usage.
10097         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
10098         (init_attributes): Register it as a new attribute.
10099         (decl_attributes): Set flags on functions given that attribute.
10100         * c-decl.c (duplicate_decls): Merge new attribute.
10101         * expr.h (current_function_check_memory_usage): Declare new var.
10102         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
10103         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
10104         current_function_check_memory_usage.
10105         * function.h: Add field to struct function.
10106         * function.c (current_function_check_memory_usage): Define it.
10107         (push_function_context_to, pop_function_context_from): Save and
10108         restore it.
10109         (expand_function_start): Set it, based on global flag and function
10110         attribute.
10111
10112         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
10113         check non-automatic variables, to permit detection of writes to
10114         read-only locations in embedded systems without memory management.
10115         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
10116         when emitting chkr_set_right_libfunc call, even if the argument is
10117         BLKmode or variable-sized; don't abort.
10118
10119         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
10120         symbols in Pmode, not VOIDmode.
10121
10122 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
10123
10124         * cppexp.c: When forcing unsigned comparisons, cast both sides
10125         of the operation.
10126
10127         * cpphash.h: Move static declaration of hashtab[]...
10128         * cpphash.c: ...here.
10129
10130         * cpplib.c: Cast difference of two pointers to size_t before
10131         comparing it to size_t.  Cast signed to unsigned
10132         before comparing to size_t. (FIXME: struct argdata should use
10133         unsigned buffer sizes.)
10134         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
10135         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
10136         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
10137         size_t before comparison.
10138
10139 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
10140
10141         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
10142         (find_basic_blocks_1): Similarly.
10143         * output.h (find_basic_blocks): Fix prototype.
10144         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
10145         find_basic_blocks anymore.
10146
10147 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
10148
10149         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
10150         (sbitmap_free, sbitmap_vector_free): New macros.
10151         * output.h (rtl_dump_file): Declare.
10152
10153 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
10154
10155         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
10156
10157 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10158
10159         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
10160         (DFtype): Likewise.
10161         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
10162         (divide): Remove unused variable `tmp'.
10163         (si_to_float): Cast numeric constant to (SItype) before comparing
10164         it against one.
10165
10166 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
10167
10168         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
10169         * gcc.c (add_preprocessor_option): Correct typo when allocating
10170         memory, sizeof() argument had one too many `*'.
10171         (add_assembler_option): Likewise.
10172         (add_linker_option): Likewise.
10173         * gcov.c (output_data): Likewise.
10174         * local-alloc.c (memref_used_between_p): Likewise.
10175         (update_equiv_regs): Likewise.
10176         * loop.c (strength_reduce): Likewise.
10177         * reg-stack.c (record_asm_reg_life): Likewise.
10178         (subst_asm_stack_reg): Likewise.
10179         * reorg.c (dbr_schedule): Likewise.
10180
10181 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10182
10183         * flow.c (life_analysis_1): Break out some functions.
10184         (find_basic_blocks_1): Likewise.  Also move some variables out and
10185         make them static.
10186         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
10187         new static var nonlocal_label_list with it.
10188         (active_eh_region, nested_eh_region, label_value_list,
10189         nonlocal_label_list): New static variables.
10190         (make_edges, delete_unreachable_blocks, delete_block): New static
10191         functions, broken out of find_basic_blocks_1.
10192         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
10193         noop_move_p): New static functions, broken out of life_analysis_1.
10194
10195 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
10196
10197         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
10198         Take extra care for op0 now possibly being a subreg.
10199         (extract_bit_field): Likewise.
10200         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
10201         the reg to memory if there is no equal sized integral mode.
10202         * stor-layout.c (int_mode_for_mode): New function.
10203         * machmode.h: Prototype it.
10204
10205 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
10206
10207         * global.c (build_insn_chain): Verify no real insns exist past the
10208         end of the last basic block, then exit the loop.
10209
10210 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@gnu.org>
10211
10212         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
10213
10214 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
10215
10216         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
10217
10218 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@gnu.org>
10219
10220         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
10221
10222 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
10223
10224         * flow.c (find_basic_blocks): Correctly determine when a call
10225         is within an exception region.
10226
10227 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
10228
10229         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
10230
10231         * cpplib.h: Protect from multiple inclusions.
10232         * cpplib.c: Fix minor formatting problems.
10233
10234         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
10235
10236         * jump.c (jump_optimize): Revert accidental patch.
10237
10238         * Makefile.in (cpplib.o): Use unlibsubdir.
10239
10240 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
10241
10242         * loop.c (get_condition): Allow combine when either compare is
10243         VOIDmode.
10244
10245 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
10246
10247         * version.c: Bump for snapshot.
10248
10249 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
10250
10251         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
10252         (init_lex): Initialize ridpointers[RID_BYREF].
10253         * c-lex.h (enum rid): Add RID_BYREF.
10254         * c-parse.gperf: Add RID_BYREF as a type qualifier.
10255         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
10256         (encode_type_qualifiers): Similarly
10257         * c-gperf.h: Rebuilt.
10258
10259 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
10260
10261         * c-common.c (type_for_mode): Only return TItype nodes when
10262         HOST_BITS_PER_WIDE_INT is >= 64 bits.
10263         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
10264         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
10265         (init_decl_processing): Only create TItype nodes when
10266         HOST_BITS_PER_WIDE_INT is >= 64 bits.
10267         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
10268         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
10269
10270 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10271
10272         * stmt.c (n_occurrences): New static function.
10273         (expand_asm_operands): Verify that all constrains match in the
10274         number of alternatives.
10275         Verify that '+' or '=' are at the beginning of an output constraint.
10276         Don't allow '&' for input operands.
10277         Verify that '%' isn't written for the last operand.
10278         * reload.c (find_reloads): Abort if an asm is found with invalid
10279         constraints; all possible problems ought to be checked for earlier.
10280
10281 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
10282
10283         * flags.h (flag_branch_on_count_reg): Always declare 
10284         * toplev.c (flag_branch_on_count_reg): Likewise.
10285         * toplev.c: Fix typos.
10286
10287         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
10288         (toc4x): Similarly.
10289
10290 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
10291
10292         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
10293         max_uids_for_flow.
10294         (find_basic_blocks_1): Add a nop to the end of a basic block when
10295         a trailing call insn does not have abnormal control flow.
10296         * gcse.c (pre_transpout): New variable.
10297         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
10298         (compute_pre_transpout): Calculate it.
10299         (compute_pre_ppinout): Use it to eliminate impossible placements
10300         due to abnormal control flow through calls.
10301         (compute_pre_data): Call compute_pre_transpout.
10302
10303 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10304
10305         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
10306
10307 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
10308
10309         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
10310         and matching define_insns): Tack on a `use' of the table label, so
10311         flow analysis will recognize a tablejump.
10312
10313 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
10314
10315         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
10316         always end basic blocks for abnormal edge reasons.
10317
10318 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
10319
10320         * config/i386/i386.h: Remove definition of
10321         HANDLE_PRAGMA_PACK_PUSH_POP.
10322         
10323         * config/i386/go32.h: Add definition of
10324         HANDLE_PRAGMA_PACK_PUSH_POP.
10325         
10326         * config/i386/win32.h: Add definition of
10327         HANDLE_PRAGMA_PACK_PUSH_POP.
10328         
10329         * config/i386/cygwin32.h: Add definition of
10330         HANDLE_PRAGMA_PACK_PUSH_POP.
10331
10332         * c-pragma.c (insert_pack_attributes): Do not insert
10333         attributes unless #pragma pack(push,<n>) is in effect.
10334
10335 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
10336
10337         * expr.c (emit_group_store): Handle a PARALLEL destination.
10338
10339 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
10340
10341         * gcse.c (pre_insert_insn): When a call ends a bb, insert
10342         the new insns before the argument regs are loaded.
10343
10344 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10345
10346         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
10347         (c-parse.gperf): Update comments describing invocation flags.
10348         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
10349
10350 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
10351
10352         * reload1.c (reload): Call free before clobbering the memory
10353         locations or constants pointers.
10354
10355 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10356
10357         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
10358         for efficiency by checking whether we need to modify the current
10359         stack permission at all.
10360         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
10361         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
10362         __enable_execute_stack libcall here too if
10363         TRANSFER_FROM_TRAMPOLINE is defined.
10364         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
10365         IN_LIBGCC2.
10366
10367 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
10368
10369         * Makefile.in (DRIVER_DEFINES): Remove last change.
10370         
10371 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10372
10373         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
10374         insns we're going to copy.
10375         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
10376
10377         * loop.c (count_one_set): Add prototype.
10378
10379         * caller-save.c (restore_referenced_regs): Lose mode argument.
10380         (insert_save): Lose mode argument.
10381         (insert_restore): Lose mode argument.
10382         (insert_one_insn): Lose mode argument.
10383         (save_call_clobbered_regs): Lose mode argument.
10384         (setup_save_areas): Take no argument and return void.  All callers
10385         changed.
10386         Don't verify validity of memory addresses.
10387         * reload.h (setup_save_ares): Adjust prototype.
10388         (save_call_clobbered_regs): Likewise.
10389         * reload1.c (delete_caller_save_insns): New function.
10390         (caller_save_spill_class): Delete variable.
10391         (caller_save_group_size): Delete variable.
10392         (reload): Call setup_save_areas and save_call_clobbered_regs
10393         in the main loop, before calling calculate_needs_all_insns.
10394         Don't call save_call_clobbered_regs after the loop.
10395         Call delete_caller_save_insns at the end of an iteration if
10396         something changed.
10397         Delete code to manage caller_save_spill_class.
10398         Emit the final note before setting reload_first_uid.
10399         Simplify test that determines whether reload_as_needed gets run.
10400         (calculate_needs): Delete code to manage caller_save_spill_class.
10401
10402 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
10403
10404         * collect2.c (main): Initialize ld_file_name.
10405
10406 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
10407  
10408         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
10409         check for flag_function_sections.
10410
10411 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10412
10413         * cse.c (insert_regs): Fix bug in Sep 24 change.
10414
10415 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10416
10417         * flags.h (flag_dump_unnumbered): Declare.
10418         * toplev.c (flag_dump_unnumbered): Don't declare.
10419         * print-rtl.c (flags.h): Include.
10420         (print_rtl_single): Add return value.
10421         * rtl.h (print_rtl_single): Update declaration.
10422         * flow.c (flag_dump_unnumbered): Don't declare.
10423         (print_rtl_with_bb): Use return value of print_rtl_single.
10424
10425 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10426
10427         * loop.c (count_one_set): New static function, broken out of
10428         count_loop_regs_set
10429         (count_loop_regs_set): Call it.
10430         * global.c (mark_reg_store): Handle clobbers here by not calling
10431         set_preference.
10432         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
10433         is in fact a clobber.
10434         * integrate.c (process_reg_param): New function, broken out of
10435         expand_inline_function.
10436         (expand_inline_function): Call it.
10437
10438
10439         * i386.md (addsidi3_1): Delete unused variable temp.
10440         (addsidi3_2): Likewise.
10441         (clstrstrsi): Delete unused variable addr1.
10442
10443         * rtl.h: Don't declare any functions also declared in recog.h.
10444
10445         * Makefile.in (stupid.o): Update dependencies.
10446         (global.o): Likewise.
10447
10448         * global.c: Include reload.h
10449         (reg_becomes_live): New function.
10450         (reg_dies): New function.
10451         (build_insn_chain): New function.
10452         (global_alloc): Call build_insn_chain before calling reload.
10453
10454         * reload.h (struct needs): New structure definition.
10455         (struct insn_chain): Likewise.
10456         (reload_insn_chain): Declare variable.
10457         (new_insn_chain): Declare function.
10458
10459
10460         * reload1.c (reload_startobj): New variable.
10461         (reload_insn_chain): New variable.
10462         (unused_insn_chains): New variable.
10463         (new_insn_chain): New function.
10464         (init_reload): Initialize reload_startobj, not reload_firstobj.
10465         (reload): Initialize reload_firstobj.
10466         Before returning, free everything on the reload_obstack.
10467
10468         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
10469         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
10470         current_chain): New variables.
10471         (reg_where_born): Delete variable.
10472         (REG_WHERE_BORN): New macro.
10473         (find_clobbered_regs): New function.
10474         (stupid_life_analysis): Don't allocate/free reg_where_born.
10475         Allocate and free reg_where_born_exact, reg_where_born_clobber,
10476         reg_where_dead_chain.
10477         Use REG_WHERE_BORN instead of reg_where_born.
10478         While processing the insns, build the reload_insn_chain with
10479         information about register lifetimes.
10480         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
10481         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
10482         changed.
10483         Compute and information about birth and death of pseudo registers in
10484         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
10485         Delete code to set elements of reg_where_born.  
10486
10487 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
10488
10489         * tree.def (GOTO_EXPR): Modified documentation.
10490         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
10491         goto.
10492
10493 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@gnu.org>
10494
10495         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
10496         loop_final_value, loop_comparison_code): No longer static.
10497         (unroll_loop): Delete loop_start_value update.
10498         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
10499         loop_final_value, loop_comparison_code): Extern.
10500         (loop_start_value): Delete extern.
10501         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
10502         loop_comparison_value, loop_comparison_code): Delete.
10503         (loop_optimize): Remove initialization for deleted variables.
10504         (strength_reduce): Delete analyze_loop_iterations call.  Only call
10505         insert_bct if flag_branch_count_on_reg set.
10506         (analyze_loop_iterations): Delete.
10507         (insert_bct): Remove iteration count calculation.  Move checks for
10508         viable BCT optimization to here.  Obtain iteration count from
10509         loop_iterations and correct for unrolling.  Check for enough
10510         iteration to be beneficial.  Comment out runtime iteration count
10511         case.
10512         (insert_bct): Print iteration count in dump file.  Remove
10513         loop_var_mode and use word_mode directly.
10514
10515         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
10516         * rs6000.c (rs6000_override_options): Use it.
10517         (optimization_options): Enable use of flag_branch_on_count_reg.
10518         * rs6000.md (define_function_unit): Describe 604e.
10519
10520 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10521
10522         * loop.c (move_movables): Corrected threshold calculation for
10523         moved_once registers.
10524
10525 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10526
10527         * loop.c (combine_givs_p): Fix test for identical givs.
10528
10529 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
10530
10531         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
10532         call abort if the function is already defined.
10533
10534 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
10535
10536         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
10537         truncation is not a no-op.
10538
10539 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
10540
10541         * version.c: Bump for snapshot.
10542
10543 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
10544
10545         * version.c: Bump for snapshot.
10546
10547 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
10548
10549         * expmed.c (expand_divmod): Don't widen for computing remainder
10550         if we seem to have a divmod pattern for needed mode.
10551
10552 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
10553
10554         * cpplib.c (macroexpand): Correct off-by-one error in handling
10555         of escapes.
10556
10557 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
10558
10559         * combine.c (expand_field_assignment): Don't do bitwise operations
10560         on MODE_FLOAT; pun to MODE_INT if possible.
10561
10562 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
10563                           scott snyder  <snyder@d0sgif.fnal.gov>
10564
10565         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
10566         linker.  Recognize mangled names in quotes.
10567
10568 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10569
10570         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
10571         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
10572         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
10573         (lshrsi3_extend, lshrsi3_extend2): Ditto.
10574
10575 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10576
10577         * function.c (purge_addressof_1): If trying to take a sub-word
10578         integral piece of a floating point mode, put it on the stack.
10579
10580 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
10581
10582         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
10583
10584 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
10585
10586         * PROJECTS: Remove template friends.
10587
10588         * collect2.c (sort_ids): Remove unused variable.
10589
10590         * tm.texi (MATH_LIBRARY): Document.
10591         (NEED_MATH_LIBRARY): Remove.
10592
10593         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
10594         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
10595
10596 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
10597
10598         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
10599         last_end to 0x7fffffff.
10600
10601 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10602
10603         * function.c (purge_addressof_1): Do not perform endianness
10604         corrections on bitpos, who we call will do it for us.
10605
10606 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
10607
10608         * h8300.c (WORD_REG_USED): Fix typo.
10609         (initial_offset): Use WORD_REG_USED.
10610
10611         * h8300.c (handle_pragma): Fix typo.
10612
10613 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10614
10615         * caller-save.c (insert_save_restore): Break this function up
10616         into new functions insert_restore, insert_save and insert_one_insn.
10617         All callers changed.
10618         (insert_restore): New function, mostly broken out of
10619         insert_save_restore.
10620         (insert_save): Likewise.
10621         (insert_one_insn): Likewise.
10622         (restore_referenced_regs): New argument BLOCK.  All callers changed.
10623         (save_call_clobbered_regs): Don't keep track of basic block boundaries
10624         in this function, do it in insert_one_insn instead.
10625
10626         * reload1.c (reload): Break out some more pieces into separate
10627         functions.
10628         (dump_needs): New function, broken out of reload.
10629         (set_initial_elim_offsets): Likewise.
10630         (init_elim_table): Likewise.
10631         (update_eliminables): Likewise.
10632
10633         * global.c (global_alloc): Delete code to manage the scratch_list.
10634         * local-alloc.c (qty_scratch_rtx): Delete.
10635         (scratch_block): Delete.
10636         (scratch_list): Delete.
10637         (scratch_list_length): Delete.
10638         (scratch_index): Delete.
10639         (alloc_qty_for_scratch): Delete.
10640         (local-alloc): Update initialization of max_qty.
10641         Delete code to manage the scratch list.
10642         Delete code to allocate/initialize qty_scratch_rtx.
10643         (block_alloc): Don't allocate quantities for scratches.
10644         Delete code to manage the scratch list.
10645         * regs.h (scratch_list): Delete declaration.
10646         (scratch_block): Delete declaration.
10647         (scratch_list_length): Delete declaration.
10648         * reload1.c (reload): Delete code to manage the scratch list.
10649         (spill_hard_reg): Likewise.
10650         (mark_scratch_live): Delete.
10651
10652         * recog.c (alter_subreg): Delete declaration.
10653
10654 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
10655
10656         * Makefile.in (cccp.o): Fix typo in last patch.
10657
10658 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10659
10660         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
10661         * config/sh/lib1funcs.asm (___set_fpscr): Add.
10662
10663 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
10664
10665         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
10666         NULL_RTX as an argument.
10667
10668         * Makefile.in (unlibsubdir): Define.
10669         (DRIVER_DEFINES): Use unlibsubdir.
10670         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
10671         (stmp-fixinc): Similarly.
10672
10673 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
10674
10675         * regmove.c (regmove_optimize): Add variable old_max_uid.
10676         At the end of the function, update basic_block_end.
10677
10678 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10679
10680         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
10681         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
10682         arbitrary constant.
10683
10684 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
10685
10686         * config/arm/arm.c: Improve interworking support.
10687
10688 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10689
10690         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
10691         copied from reload_out[r] .
10692
10693 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
10694
10695         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
10696         with more than three size ranges.
10697
10698         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
10699
10700         * rtl.c (mode_name): Add a null string at the end of the array.
10701         (mode_wider_mode): Change type to unsigned char.
10702         (mode_mask_array): New variable.
10703         (init_rtl): Update for mode_wider_mode type change.
10704
10705         * rtl.h (mode_wider_mode): Change type to unsigned char.
10706         (mode_mask_array): Declare.
10707         (GET_MODE_MASK): Use mode_mask_array.
10708
10709 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10710
10711         * calls.c (expand_call) : Encapsulate code into 
10712         copy_blkmode_from_reg.
10713         * expr.c (copy_blkmode_from_reg): New function.
10714         * expr.h (copy_blkmode_from_reg): New function.
10715         * integrate.c (function_cannot_inline_p): We can inline
10716         these now.
10717         (expand_inline_function): Use copy_blkmode_from_reg
10718         if needed.  Avoid creating BLKmode REGs.
10719         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
10720         object.
10721
10722 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
10723
10724         * config/v850/v850.c: Add function prototypes.
10725         Add support for v850 special data areas.
10726
10727         * config/v850/v850.h: Add support for v850 special data areas.
10728         
10729         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
10730         HANDLE_PRAGMA_PACK_PUSH_POP.
10731         (push_alignment): New function: Cache an alignment requested
10732         by a #pragma pack(push,<n>).
10733         (pop_alignment): New function: Pop an alignment from the
10734         alignment stack.
10735         (insert_pack_attributes): New function: Generate __packed__
10736         and __aligned__ attributes for new decls whilst a #pragma pack
10737         is in effect. 
10738         (add_weak): New function: Cache a #pragma weak directive.
10739         (handle_pragma_token): Document calling conventions.  Add
10740         support for #pragma pack(push,<n>) and #pragma pack (pop).
10741
10742         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
10743         are defined enable HANDLE_PRAGMA_PACK.
10744         Move 'struct weak_syms' here (from varasm.c).
10745         Add pragma states for push and pop pragmas.
10746
10747         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
10748         if it is defined.
10749
10750         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
10751         HANDLE_GENERIC_PRAGMAS.
10752         
10753         * varasm.c: Move definition of 'struct weak_syms' into
10754         c-pragma.h. 
10755         (handle_pragma_weak): Deleted.
10756
10757         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10758
10759         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
10760
10761         * c-decl.c (start_function): Add invocation of
10762         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
10763
10764         * tm.texi: Remove description of non-existant macro
10765         SET_DEFAULT_SECTION_NAME.
10766         
10767         (HANDLE_SYSV_PRAGMA): Document.
10768         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
10769
10770 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
10771
10772         * config.sub: Recognize i[34567]86-pc-udk as new target.
10773         * configure.in: Likewise.
10774         * config/i386/t-udk: New file.
10775         * config/i386/udk.h: New file.
10776
10777 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
10778
10779         * reorg.c (check_annul_list_true_false): Remove unused variables.
10780         (steal_delay_list_from_target): Add missing "used_annul" variable.
10781         (try_merge_delay_insns): Close out half formed comment.
10782
10783 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
10784
10785         * cpplib.c (macroexpand): If arg->raw_before or
10786         arg->raw_after, remove any no-reexpansion escape at the
10787         beginning of the pasted token.  Correct handling of whitespace
10788         markers and no-reexpand markers at the end if arg->raw_after.
10789
10790         * toplev.c (documented_lang_options): Recognize -include,
10791         -imacros, -iwithprefix, -iwithprefixbefore.
10792         * cpplib.c (cpp_start_read): Process -imacros and -include
10793         switches at the same time and in command-line order, after
10794         initializing the dependency-output code.  Emit properly nested
10795         #line directives for them.  Emit a #line for the main file
10796         before processing these switches, and don't do it again
10797         afterward.
10798
10799 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
10800
10801         * function.c (purge_addressof_1): Use bitfield manipulation
10802         routines to handle mem mode < reg mode.
10803
10804 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
10805
10806         * reorg.c (try_merge_delay_insns): Account for resources referenced
10807         in each instruction in INSN's delay list before trying to eliminate
10808         useless instructions.  Similarly when looking at a trial insn's delay
10809         slots.
10810
10811         * reorg.c (check_annul_list_true_false): New function.
10812         (steal_delay_list_from_{target,fallthrough}): Call it and also
10813         refine tests for when we may annul if already filled a slot.
10814         (fill_slots_from_thread): Likewise.
10815         (delete_from_delay_slot): Return newly-created thread.
10816         (try_merge_delay_isns): Use its new return value.
10817
10818 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
10819
10820         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
10821         used to compute a giv or as some other non-counting use.
10822
10823 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10824
10825         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
10826         * local-alloc.c (find_free_reg): Use it.
10827         * global.c (find_reg): Likewise.
10828         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
10829
10830         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10831         * caller-save.c (init_caller_save): Use it.
10832         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
10833
10834 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
10835
10836         * configure.in: Add --enable-cpplib option which uses cpplib
10837         for cpp, but doesn't link cpplib into cc1.  Make help text
10838         capitalization consistent.
10839         * configure: Rebuilt.
10840
10841 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
10842
10843         * function.c (gen_mem_addressof): If the address REG is
10844         REG_USERVAR_P make the new REG be so also.
10845         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
10846         in an attempt to clarify slightly.
10847
10848 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
10849
10850         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
10851         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
10852
10853 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
10854
10855         * toplev.c:  Fix last patch.
10856
10857 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
10858
10859         * loop.c (get_condition): Fix typo in May 9 change.
10860
10861 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
10862
10863         * invoke.texi (-fexceptions): Merge 2 different descriptions.
10864
10865 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10866
10867         * toplev.c (documented_lang_options): Spelling corrections.
10868
10869 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
10870
10871         * configure.in: new flags --with-ld and --with-as, equivalent
10872         to setting LD and AS environment variables.  Test whether
10873         specified arguments are GNU commands, and report them with
10874         checking messages.  Use the specified AS for configure
10875         tests too.
10876         * configure: ditto
10877         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
10878         * config.in: ditto
10879         * gcc.c (find_a_file): when looking for `as' and `ld', return
10880         the DEFAULT program if it exists
10881         * collect2.c (main): use DEFAULT_LINKER if it exists
10882
10883         * gcc.c (find_a_file): the test for existence of a full
10884         pathname was reversed
10885
10886 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
10887
10888         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
10889         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
10890
10891 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
10892
10893         * tree.h (TYPE_BINFO): Document.
10894
10895 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
10896
10897         * i386-coff.h (dbxcoff.h): Added.
10898
10899 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
10900
10901         * toplev.c:  fix bad patch around flag_data_sections.
10902
10903 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
10904
10905         * reload1.c (reload): Use reload_address_index_reg_class and 
10906         reload_address_base_reg_class when setting
10907         caller_save_spill_class.  (Patch generated by Jim Wilson:
10908         wilson@cygnus.com).
10909
10910 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
10911
10912         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
10913         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
10914         * expr.c (store_field): Add alias_set parameter.  Set the
10915         MEM_ALIAS_SET accordingly, if the target is a MEM.
10916         (expand_assignment): Use it.
10917         (store_constructor_field): Pass 0.
10918         (expand_expr): Likewise.
10919
10920 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
10921  
10922         * flags.h:  Add flag_data_sections.
10923         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
10924         (compile_file):  Error if flag_data_sections not supported.
10925         * varasm.c (assemble_variable):  Handle flag_data_sections.
10926         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
10927         * config/mips/elf.h:  Likewise.
10928         * config/mips/elf64.h:  Likewise.
10929         * invoke.texi:  Describe -fdata-sections.
10930  
10931 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
10932
10933         * invoke.texi (-ffloat-store): Clarify that this option
10934         does not affect intermediate results -- only variables.
10935
10936 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
10937
10938         * cpp.texi: Update for Fortran usage from Craig.
10939
10940 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@gnu.org>
10941
10942         * rs6000.c (function_arg_boundary): Revert accidental change on
10943         September 18.
10944
10945 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
10946
10947         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
10948         (output_mi_thunk): Declare.
10949
10950         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
10951         (output_function_profiler): Use r12 for temp, instead of r11 so
10952         that we preserve the static chain register.
10953         
10954 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
10955
10956         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
10957
10958 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10959
10960         * sh.c (gen_shl_sext): Fix case 5.
10961
10962 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10963
10964         * reload1.c (reload_combine): Re-add line that got accidentally lost.
10965
10966 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10967
10968         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
10969         accessing variables until they are initialized via va_arg().
10970
10971 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10972
10973         * reload1.c (reload_combine): Initialize set before using.
10974
10975 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
10976
10977         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
10978         won't be emitting.
10979
10980 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
10981
10982         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
10983         operand3 with mask before using it.  Patch provided by Jim Wilson.
10984
10985 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10986
10987         * config/sparc/sparc.c (function_value): Perform the equivalent of
10988         PROMOTE_MODE for ARCH64.
10989         (eligible_for_epilogue_delay): Allow DImode operations in delay
10990         slot of a return for ARCH64.
10991
10992 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10993
10994         * sh.md (sqrtsf2): Fix mode of sqrt.
10995
10996 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10997
10998         * reload1.c (choose_reload_regs): Also try inheritance when
10999         reload_in is a stack slot of a pseudo, even if we already got a
11000         reload reg.
11001
11002 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11003
11004         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
11005         (reload_cse_regs): New function body: call reload_cse_regs_1,
11006         reload_combine, reload_cse_move2add.
11007         When doing expensive_optimizations, call reload_cse_regs_1 a
11008         second time after reload_cse_move2add.
11009         (reload_combine, reload_combine_note_store): New functions.
11010         (reload_combine_note_use): New function.
11011         (reload_cse_move2add, move2add_note_store): New functions.
11012
11013 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11014
11015         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
11016         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
11017
11018         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
11019         more than 3 such reloads.
11020
11021         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
11022         RELOAD_FOR_X_ADDR_ADDR reload.
11023
11024 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11025
11026         * expr.c (store_constructor): When initializing a field that is smaller
11027         than a word, at the start of a word, try to widen it to a full word.
11028
11029         * cse.c (cse_insn): When we are about to change a register,
11030         remove any invalid references to it.
11031
11032         (remove_invalid_subreg_refs): New function.
11033         (mention_regs): Special treatment for SUBREGs.
11034         (insert_regs): Don't strip SUBREG for call to mention_regs.
11035         Check if reg_tick needs to be bumped up before that call.
11036         (lookup_as_function): Try to match known word_mode constants when
11037         looking for a norrower constant.
11038         (canon_hash): Special treatment for SUBREGs.
11039
11040 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11041
11042         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
11043         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
11044         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
11045         and offsets in actual stack trampoline code so they match the
11046         commentary and actually work.
11047
11048 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11049
11050         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
11051         tmake_file.
11052         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
11053         tmake_file.  Set extra_parts to needed crt objects.
11054         * configure: Rebuilt.
11055         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
11056         (TARGET_DEFAULT): Set if default is v9 or ultra.
11057         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
11058         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
11059         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
11060         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
11061         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
11062         (TARGET_VERSION): Define.
11063         (MULTILIB_DEFAULT): Define.
11064         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
11065         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
11066         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
11067         appropriately.
11068         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
11069         * config/sparc/sparc.c (sparc_override_options): If arch and
11070         pointer size disagree, emit diagnostic and fix it up.  If
11071         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
11072         V8PLUS in 64-bit mode.
11073         * config/sparc/t-linux64: New file.
11074         * config/sparc/t-sol2-64: New file.
11075         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
11076         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
11077         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
11078         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
11079         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
11080         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
11081         Define.
11082         (STARTFILE_SPEC): Set approriately based upon those.
11083         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
11084         disposition of DEFAULT_ARCH32_P.
11085         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
11086         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
11087         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
11088         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
11089         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
11090         arch64/v9.
11091         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
11092         
11093 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
11094
11095         * rtl.h (init_virtual_regs): New function.
11096         * emit-rtl.c (init_virtual_regs): Define.
11097         (insn_emit): Use it.
11098         * integrate.c (save_for_inline_copying): Likewise.
11099
11100 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
11101
11102         * config/arm/thumb.h: The following patches were made by Jim Wilson:
11103         (enum reg_class): Add NONARG_LO_REGS support.
11104         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
11105         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
11106         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
11107         completes.  Re-enable HImode REG+OFFSET addresses.
11108         (LEGITIMIZE_RELOAD_ADDRESS): Define.
11109
11110         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
11111
11112 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
11113
11114         * alpha.c (get_aligned_mem): Revert Sep 20 change.
11115         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
11116         (alpha_align_insns): Properly calculate initial offset wrt max_align.
11117
11118 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
11119
11120         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
11121         jumps as a single entity, taking into account the size of the
11122         table.
11123
11124 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
11125
11126         * tree.def (SWITCH_EXPR): New tree node definition.
11127
11128 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
11129
11130         * version.c: Bump for snapshot.
11131
11132 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
11133
11134         * version.c: Bump for snapshot.
11135
11136 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
11137
11138         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
11139         NetBSD.
11140
11141 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
11142
11143         * Revert this patch.
11144         * reload.c (find_reloads): Do not replace a pseudo with
11145         (MEM (reg_equiv_addr)) in the initializing insn for the
11146         pseudo.
11147
11148 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
11149
11150         * final.c (final_scan_insn): Disable tracking CC across branches.
11151
11152 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
11153
11154         * expr.h (eh_rtime_match_libfunc): New extern declaration.
11155         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
11156         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
11157         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
11158         NULL. Only include <stdio.h> if inhibit_libc is not defined.
11159
11160 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
11161
11162         * toplev.c (rest_of_compilation): Skip compiling anything with
11163         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
11164
11165 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
11166
11167         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
11168         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
11169         use in_libcall_block.
11170         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
11171         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
11172         to INSN.
11173
11174 Mon Sep 21 14:02:23 1998
11175
11176         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
11177         typo in no-fancy-math-387 description.
11178
11179 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
11180
11181         * version.c: Bump for snapshot.
11182
11183 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
11184
11185         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
11186
11187 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
11188
11189         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
11190         documented in install.texi.
11191         (TARGET_OPTIONS) Likewise.
11192
11193 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
11194
11195         * version.c: Bump for snapshot.
11196
11197 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
11198
11199         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
11200         * cccp.c (main): Likewise.
11201
11202         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
11203         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
11204         macro-use bugs.
11205
11206 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
11207
11208         * Makefile.in (LIBS):  Link in libiberty.a.
11209         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
11210
11211 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
11212
11213         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
11214         it to update bb boundaries.  Update caller.
11215         * function.c (reposition_prologue_and_epilogue_notes): Update
11216         bb boundaries wrt the moved note.
11217
11218 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
11219         
11220         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
11221         problems.
11222         * configure: Regenerate.
11223
11224 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
11225
11226         * alpha.c (alpha_sr_alias_set): New variable.
11227         (override_options): Set it.
11228         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
11229         (mode_mask_operand): Fix signed-unsigned comparision warning.
11230         (alpha_expand_block_move): Likewise.
11231         (print_operand): Likewise.
11232         (get_aligned_mem): Use change_address.
11233         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
11234         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
11235         (alphaev4_next_nop, alphaev5_next_nop): New functions.
11236         (alpha_align_insns): Remade from old alphaev5_align_insns
11237         to handle multiple processors.
11238         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
11239         * output.h (label_to_alignment): Prototype.
11240
11241         * tree.c (new_alias_set): New function.
11242         * tree.h (new_alias_set): Declare it.
11243         * c-common.c (c_get_alias_set): Use it.
11244
11245 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
11246
11247         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
11248         to an ABS expr, convert an unsigned input to signed.
11249         
11250 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
11251
11252         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
11253
11254 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11255
11256         * configure.in: Add support for c4x targets.
11257         * configure: Rebuilt.
11258
11259 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
11260
11261         * combine.c (distribute_notes): If an insn is a cc0 user, only
11262         delete it if we can also delete the cc0 setter.
11263
11264 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
11265
11266         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
11267         (invert_truthvalue): Enable truthvalue inversion for
11268         floating-point operands if -ffast-math.
11269
11270 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
11271                          
11272         * configure.in: Disable collect2 for nextstep.  Instead use
11273         crtbegin/crtend.
11274         * configure: Rebuilt.
11275         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
11276         (ENDFILE_SPEC): Define.
11277         (OBJECT_FORMAT_MACHO): Define.
11278         (EH_FRAME_SECTION_ASM_OP): Define.
11279         * crtstuff.c: Handle MACHO.
11280
11281 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
11282
11283         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
11284
11285 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
11286
11287         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
11288         (_fpadd_parts): Get sign right for 0.
11289
11290 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11291
11292         * ginclude/varargs.h: Add support for C4x target.
11293         * ginclude/stdargs.h: Likewise.
11294
11295 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
11296
11297         * alpha.c (alpha_return_addr): SET should be VOIDmode.
11298         (alpha_emit_set_long_const): Rewrite to be callable from reload
11299         and 32-bit hosts.
11300         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
11301         * alpha.md (movdi): Likewise.
11302
11303 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
11304
11305         * arm.c (add_constant): New parameter address_only, change caller.
11306         Set it non-zero if taking the address of an item in the pool.
11307         (arm_reorg): Handle cases where we need the address of an item in
11308         the pool.
11309
11310         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
11311         a memory address.
11312         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
11313         memory addresses that are not in standard canonical form.
11314
11315 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
11316
11317         * README.C4X: New file with information about the c4x ports.
11318         * ginclude/va-c4x.h: New file for c4x varargs support.
11319         * config/c4x: New directory with c4x port files.
11320
11321 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
11322
11323         * reload.c (find_reloads): Do not replace a pseudo with 
11324         (MEM (reg_equiv_addr)) in the initializing insn for the
11325         pseudo.
11326
11327 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@gnu.org>
11328
11329         * toplev.c (rest_of_compilation): Set bct_p on second call to
11330         loop_optimize.
11331         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
11332         bct_p.
11333         (strength_reduce): Only call analyze_loop_iterations and
11334         insert_bct if bct_p set.
11335         (check_dbra_loop): Fix typo.
11336         (insert_bct): Use word_mode instead of SImode.
11337         (instrument_loop_bct): Likewise.  Do not delete iteration count
11338         condition code generation insn.  Initialize iteration count before
11339         loop start.
11340         * rtl.h (loop_optimize): Update prototype.
11341
11342         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
11343         not doubleword aligned.
11344
11345         * rs6000.c (optimization_options): New function.
11346         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
11347         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
11348         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
11349         first; cr1 can be used for FP record condition insns.
11350
11351 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
11352
11353         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
11354         PREDICATE_CODES.
11355
11356         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
11357         patterns.
11358
11359         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
11360         operators.
11361         (block_move_call): New function: Call a library routine to copy a
11362         block of memory.
11363         (m32r_expand_block_move): New function: Expand a "movstrsi"
11364         pattern into a sequence of insns.
11365         (m32r_output_block_move): New function: Expand a
11366         "movstrsi_internal" pattern into a sequence of assembler opcodes.
11367         (m32r_block_immediate_operand): New function: Return true if the
11368         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
11369         
11370 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
11371
11372         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
11373         re-align some code.
11374         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
11375
11376 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11377
11378         * regmove.c (copy_src_to_dest): Check that modes match.
11379
11380 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
11381
11382         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
11383
11384 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
11385
11386         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
11387         narrower than FLOAT_REGS.
11388
11389 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
11390
11391         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
11392         * cccp.c: ditto
11393         * Makefile.in (old_gxx_include_dir): removed
11394
11395 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
11396
11397         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
11398         new specification.
11399
11400         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
11401         (sh_handle_pragma): Change function arguments to match new
11402         specification for HANDLE_PRAGMA. 
11403
11404 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11405
11406         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
11407         `unsigned char'.
11408         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
11409         When generating output, initialize missing struct member to zero.
11410
11411 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11412
11413         * regmove.c (copy_src_to_dest): Don't copy if that requires
11414         (a) new register(s).
11415
11416 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
11417
11418         * global.c (reg_allocno): Now static.
11419         * reload1.c (reg_allocno): Delete declaration.
11420         (order_regs_for_reload): Take no arguments.  Don't treat regs
11421         allocated by global differently than those allocated by local-alloc.
11422
11423 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
11424
11425         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
11426         condition, fix format strings.
11427         (output_function_epilogue): Likewise.
11428
11429         * m68k/m68k.c: Don't include <stdlib.h> directly.
11430
11431 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
11432
11433         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
11434         mem_first_set, mem_last_set; because 0 can be a CUID.
11435         (oprs_unchanged_p): Use new definition.
11436         (record_last_reg_set_info): Likewise.
11437         (record_last_mem_set_info): Likewise.
11438         (compute_hash_table): Likewise.
11439
11440 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
11441
11442         * rs6000.c (output_epilogue): Handle Chill.
11443
11444         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
11445         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
11446
11447         * combine.c (make_extraction): If no mode is specified for
11448         an operand of insv, extv, or extzv, default it to word_mode.
11449         (simplify_comparison): Similarly.
11450         * expmed.c (store_bit_field): Similarly.
11451         (extract_bit_field): Similarly.
11452         * function.c (fixup_var_regs_1): Similarly.
11453         * recog.c (validate_replace_rtx_1): Similarly.
11454         * mips.md (extv, extzv, insv expanders): Default modes for most
11455         operands.  Handle TARGET_64BIT.
11456         (movdi_uld, movdi_usd): New patterns.
11457
11458         * pa.c (emit_move_sequence): Do not replace a pseudo with its
11459         equivalent memory location unless we have been provided a scratch
11460         register.  Similarly do not call find_replacement unless a
11461         scratch register has been provided.
11462
11463 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
11464
11465         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
11466         return FLOAT_REGS.
11467
11468 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
11469
11470         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
11471         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
11472         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
11473         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
11474         * c-decl.c (init_decl_processing): Update accordingly.
11475         * expr.c (expand_builtin): Likewise.
11476
11477         * rtl.h (global_rtl): Add cfa entry.
11478         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
11479         (LAST_VIRTUAL_REGISTER): Update.
11480         * emit-rtl.c (global_rtl): Add cfa entry.
11481         (init_emit): Initialize it.
11482         * function.c (cfa_offset): New.
11483         (instantiate_virtual_regs): Initialize it.
11484         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
11485         (expand_function_end): Call expand_eh_return.
11486         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
11487
11488         * except.c (current_function_eh_stub_label): Kill.
11489         (current_function_eh_old_stub_label): Likwise; update all references.
11490         (expand_builtin_set_return_addr_reg): Kill.
11491         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
11492         (expand_builtin_set_eh_regs): Kill.
11493         (eh_regs): Produce a third reg for the actual handler address.
11494         (eh_return_context, eh_return_stack_adjust): New.
11495         (eh_return_handler, eh_return_stub_label): New.
11496         (init_eh_for_function): Initialize them.
11497         (expand_builtin_eh_return, expand_eh_return): New.
11498         * except.h: Update prototypes.
11499         * flow.c (find_basic_blocks_1): Update references to the stub label.
11500         * function.h (struct function): Kill stub label elements.
11501
11502         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
11503         register number is one that would be in the previous window.
11504         Provide a dummy definition for non-windowed targets.
11505         (get_reg_addr): New function.
11506         (get_reg, put_reg, copy_reg): Use it.
11507         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
11508         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
11509
11510         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
11511         (alpha_init_expanders): Initialize it.
11512         (alpha_expand_epilogue): Use it.
11513         * alpha.h: Declare it.
11514         * alpha.md (eh_epilogue): New.
11515
11516         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
11517         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
11518
11519 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
11520
11521         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
11522         flag bit mask.
11523
11524 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
11525
11526         * except.h (struct eh_entry): Add false_label field.
11527         (end_catch_handler): Add prototype.
11528         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
11529         (start_catch_handler): When using old style exceptions, issue
11530         runtime typematch code before continuing with the handler.
11531         (end_catch_handler): New function, generates label after handler
11532         if needed by older style exceptions.
11533         (expand_start_all_catch): No need to check for new style exceptions.
11534         (output_exception_table_entry): Only output the first handler label
11535         for old style exceptions.
11536         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
11537         mechanism into one function, if a runtime matcher is provided.
11538
11539 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
11540
11541         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
11542
11543 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
11544
11545         * integrate.c (copy_decl_list): Fix typo.
11546
11547 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11548
11549         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
11550         attribute.
11551
11552 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
11553
11554         * version.c: Bump for snapshot.
11555
11556 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
11557
11558         * version.c: Bump for snapshot.
11559
11560 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
11561
11562         * version.c: Bump for snapshot.
11563
11564 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11565
11566         * invoke.texi (C Dialect Options): Put back missing @end itemize.
11567
11568 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
11569
11570         * configure.in: remove usage of `!' to negate the result of a
11571         command; some common shells do not support it
11572
11573 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11574
11575         * configure.in: in sparc9-sol2 config, use 'if test' not
11576         brackets.
11577         * configure: Rebuilt.
11578
11579         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
11580         CM_MEDANY.
11581         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
11582         (CPP_CPU_DEFAULT_SPEC): Likewise.
11583         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
11584         for arch64 libfuncs.
11585         
11586         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
11587         for operand zero.
11588
11589 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11590
11591         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
11592
11593         * collect2.c: Don't declare `sys_siglist' here.
11594         (my_strsignal): Prototype and define new function.  Use it in
11595         place of `sys_siglist' hacks.
11596
11597         * mips_tfile.c:  Likewise.
11598
11599         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
11600         (GCC_NEED_DECLARATIONS): Likewise.
11601
11602         * system.h (strsignal): Prototype it, if necessary.
11603         (sys_siglist): Declare it, if necessary.
11604
11605 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11606
11607         * loop.c (move_movables): While removing insn sequences, preserve
11608         the next pointer of the most recently deleted insn when we skip
11609         over a NOTE.
11610
11611 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
11612
11613         * objc/config-lang.in: Do not output the name of the selected
11614         thread file when building the front-end.  The Makefile for the
11615         runtime library will do this.
11616
11617         * objc/Make-lang.in: Do not build the runtime library or install
11618         the Objective C header files.  The Makefile for the runtime
11619         library will do this.
11620
11621         * objc/Makefile.in (all.indirect): Only build the front-end.
11622         (compiler): Rename to `frontend'.
11623         (obj-runtime): Remove target.
11624         (copy-headers): Likewise.
11625         (clean): No need to remove `libobjc.a' any longer.
11626
11627 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
11628
11629         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
11630         supported with -mcpu=xxx.
11631
11632 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11633
11634         * flow.c (mark_set_1): Recognize multi-register structure return
11635         values in CALL insns.
11636         (mark_used_regs): Likewise.
11637         (count_reg_sets_1): Likewise.
11638         (count_reg_references): Likewise.
11639         * rtlanal.c (note_stores): Likewise.
11640         (reg_overlap_mentioned_p): Likewise.
11641         * haifa-sched.c (check_live_1): Likewise.
11642         (update_live_1): Likewise.
11643         (sched_analyze_1): Likewise.
11644         (sched_note_set): Likewise.
11645         (birthing_insn_p): Likewise.
11646         (attach_deaths): Likewise.
11647
11648         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
11649
11650
11651 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
11652
11653         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
11654
11655 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11656
11657         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
11658
11659 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11660
11661         * configure.in: Add check for GAS subsection -1 support.
11662         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
11663         * configure config.in: Rebuilt.
11664         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
11665         SImode is subsection -1 works, else use DImode.
11666         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
11667         subsection -1 works.
11668         * config/sparc/sparc.c (sparc_output_addr_vec,
11669         sparc_output_addr_diff_vec): Use them if defined.
11670
11671 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
11672
11673         * tree.h (DECL_ORIGIN): New macro.
11674         * integrate.c (copy_and_set_decl_abstract_origin): New function.
11675         (copy_decl_list): Use it.
11676         (integrate_parm_decls): Likewise.
11677         (integrate_decl_tree): Likewise.
11678         * dwarf2out.c (decl_ultimate_origin): Simplify.
11679         * dwarfout.c (decl_ultimate_origin): Likewise.
11680         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
11681         (pushdecl): Likewise.
11682
11683 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
11684
11685         * config/rs6000/rs6000.c (output_epilog): Add Java support.
11686
11687 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
11688
11689         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
11690
11691 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
11692
11693         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
11694         empty or has a single entry.
11695
11696         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
11697         before calling reg_to_stack.
11698
11699 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
11700
11701         * alpha.c (alphaev5_insn_pipe): Abort on default case.
11702         (alphaev5_next_group): Swallow CLOBBERs and USEs.
11703
11704         * c-tree.h (warn_long_long): Declare it.
11705
11706 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
11707
11708         * emit-rtl.c (gen_lowpart_common): Disable optimization of
11709         initialized float-int union if the value is a NaN.
11710
11711 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
11712
11713         * c-lex.c (real_yylex): Don't warn about long long constants if 
11714         we're allowing long long
11715
11716 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
11717
11718         * except.h (current_function_eh_stub_label): Declare.
11719         (current_function_eh_old_stub_label): Declare.
11720         * function.h (struct function): New members eh_stub_label and
11721         eh_old_stub_label.
11722         * except.c (current_function_eh_stub_label): New variable.
11723         (current_function_eh_old_stub_label): New variable.
11724         (init_eh_for_function): Clear them.
11725         (save_eh_status): Save them.
11726         (restore_eh_status): Restore them.
11727         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
11728         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
11729         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
11730         make an edge from the block that contains it to the block starting
11731         with the label if this label is one of the eh stub labels.
11732         If eh stub labels exist, show they are reachable from the last block
11733         in the function.
11734
11735         * reload1.c (reload): Break out several subroutines and make some
11736         variables global.
11737         (calculate_needs_all_insns): New function, broken out of reload.
11738         (calculate_needs): Likewise.
11739         (find_reload_regs): Likewise.
11740         (find_group): Likewise.
11741         (find_tworeg_group): Likewise.
11742         (something_needs_reloads): New global variable, formerly in reload.
11743         (something_needs_elimination): Likewise.
11744         (caller_save_spill_class): Likewise.
11745         (caller_save_group_size): Likewise.
11746         (max_needs): Likewise.
11747         (group_size): Likewise.
11748         (max_groups): Likewise.
11749         (max_nongroups): Likewise.
11750         (group_mode): Likewise.
11751         (max_needs_insn): Likewise.
11752         (max_groups_insn): Likewise.
11753         (max_nongroups_insn): Likewise.
11754         (failure): Likewise.
11755
11756         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
11757
11758 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
11759
11760         * loop.c (load_mems): Copy rtx for output mem.
11761
11762 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
11763
11764         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
11765         mips1 or mips2 either.
11766
11767 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
11768
11769         * pa.c (pa_reorg): New marking scheme for jumps inside switch
11770         tables.
11771         (pa_adjust_insn_length): Update to work with new marking scheme
11772         for jumps inside switch tables. 
11773         * pa.md (switch_jump): Remove pattern.
11774         (jump): Handle jumps inside jump tables.
11775
11776         * Makefile.in (profile.o): Depend on insn-config.h
11777
11778 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
11779
11780         * iris6.h (DWARF2_UNWIND_INFO): Undef.
11781
11782 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11783
11784         Add preliminary native sparcv9 Solaris support.
11785         * configure.in: Recognize sparv9-*-solaris2*
11786         * configure: rebuilt
11787         * config.sub: Recognize sparcv9 just like sparc64.
11788         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
11789         config/sparc/sol2-cn.asm: Macroize so it can be shared between
11790         32-bit and 64-bit Solaris systems.
11791         * config/sparc/t-sol2: Assemble those with cpp.
11792         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
11793         (*TF*_LIBCALL): If ARCH64 use V9 names.
11794         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
11795
11796 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11797
11798         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
11799         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
11800         not doing pic.
11801         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
11802         Pmode.
11803         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
11804         to Pmode if CASE_VECTOR_MODE is something else.
11805
11806 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
11807
11808         * prefix.c (update_path): Correctly handle cases where PATH is
11809         a substring of the builtin prefix, but specifies a different
11810         directory location.
11811
11812 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
11813
11814         * expr.c: Corrected comment about what MOVE_RATIO does.
11815         * config/alpha/alpha.h: Ditto.
11816         * config/1750a/1750a.h: Ditto.
11817         * config/clipper/clipper.h: Ditto.
11818         * config/i386/i386.h: Ditto.
11819
11820 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
11821
11822         * configure.in (m68k-next-nextstep3*): Use collect2.
11823         Similarly for x86 NeXT configurations.
11824         * configure: Rebuilt.
11825
11826 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
11827
11828         * configure.in: Don't assume srcdir is .../gcc
11829         * configure: Rebuilt.
11830
11831 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
11832
11833         * global.c: Update comments.
11834         (global_alloc): Assign allocation-numbers
11835         even for registers allocated by local_alloc in case
11836         they are later spilled and retry_global_alloc is called.
11837         (mark_reg_store, mark_reg_clobber,
11838         mark_reg_conflicts, mark_reg_death): Always record a
11839         conflict with a pseudo register even if it has been
11840         assigned to a hard register.
11841         (dump_conflicts): Don't list pseudo registers already assigned to
11842         a hard register as needing to be allocated, but do list their
11843         conflicts.
11844         * local-alloc.c: Update comment.
11845
11846 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
11847
11848         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
11849         * configure: Rebuilt.
11850
11851 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
11852
11853         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
11854         missing 'c'.
11855         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
11856         for all targets that set -msoft-float.
11857
11858 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11859
11860         * toplev.c (print_switch_values): Make static to match prototype.
11861
11862 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
11863
11864         * configure.in: If we are unable to find the "gnatbind" program,
11865         then do not configure the ada subdir.
11866         * configure: Rebuilt.
11867
11868 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
11869
11870         * version.c: Bump for snapshot.
11871
11872 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
11873
11874         * version.c: Bump for snapshot.
11875
11876 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11877
11878         * Makefile.in (toplev.o): Depend on $(EXPR_H).
11879         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
11880
11881         * gansidecl.h: Define ATTRIBUTE_NORETURN.
11882
11883         * genattrtab.c: Have insn-attrtab.c include toplev.h.
11884
11885         * genextract.c: Have insn-extract.c include toplev.h.
11886
11887         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
11888
11889         * toplev.c: Include expr.h.
11890         (really_sorry, fancy_abort): Remove prototypes.
11891         (set_target_switch): Add argument in prototype.
11892         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
11893         (v_really_sorry): Likewise.
11894         (print_version, print_single_switch, print_switch_values): Make
11895         static and add prototype arguments.
11896         (decl_printable_name): Add prototype arguments.
11897         (lang_expand_expr_t): New typedef.
11898         (lang_expand_expr): Declare as a lang_expand_expr_t.
11899         (incomplete_decl_finalize_hook): Add prototype argument.
11900         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
11901         (botch): Likewise for variable `s'.
11902         (rest_of_type_compilation): Mark variables `type' and `toplev'
11903         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
11904         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
11905         (display_help): Make variable `i' an `unsigned long'.
11906         (main): Remove unused parameter `envp'.
11907         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
11908         Cast -1 when comparing it with a `size_t'.
11909
11910         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
11911         prototype with ATTRIBUTE_NORETURN.
11912         (fatal_insn_not_found, fatal_insn, really_sorry,
11913         push_float_handler, pop_float_handler): Add prototypes.
11914         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
11915         (do_abort, botch): Add prototypes.
11916         
11917 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
11918
11919         * final.c (final): If a label is reached only from a single jump,
11920         call NOTICE_UPDATE_CC on the jump and its predecessor before
11921         emitting the insn after the label.
11922         
11923         * i386.h: Add AMD K6 support.
11924         Change TARGET_* macros to use table lookup.
11925         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
11926         (ADJUST_COST): Change definition to call function in i386.c.
11927         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
11928         * i386.c: Add AMD K6 support.
11929         Add constants for feature tests used by TARGET_* macros.
11930         (split_di): If before reload, call gen_lowpart and gen_highpart.
11931         (x86_adjust_cost): New function.
11932         (put_jump_code): New function.
11933         (print_operand): New codes 'D' and 'd'.
11934         * i386.md: New insn types.  New insn attribute "memory".
11935         Redefine scheduling parameters to use new types and add AMD K6
11936         support.  Explicitly set type of most insns.
11937         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
11938         Pro and K6 prefer movl $1,reg to incl reg.
11939         (adddi3, subdi3): Set cc_status.
11940         (DImode shift patterns): Change label counters from HOST_WIDE_INT
11941         to int; x86 can't have more than 2^31 DImode shifts per file.
11942         (setcc): Combine all setcc patterns.  Allow writing memory.
11943         Combine all jump patterns using match_operator.
11944         (*bzero): Name pattern.  Emit mutliple stos instructions when that
11945         is faster than rep stos.
11946         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
11947         add define_split.
11948
11949 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
11950
11951         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
11952         linking.
11953
11954 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
11955
11956         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
11957         not whatever we're generating now.
11958
11959         * alpha.c (set_frame_related_p, FRP): New.
11960         (alpha_expand_prologue): Mark frame related insns.
11961         (alpha_expand_epilogue): Likewise, but with a null FRP.
11962         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
11963         * alpha.md (exception_receiver): New.
11964         * alpha/crtbegin.asm (.eh_frame): New beginning.
11965         (__do_frame_setup, __do_frame_takedown): New.
11966         * alpha/crtend.asm (.eh_frame): New ending.
11967         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
11968         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
11969         (ASM_FILE_START): Don't emit .file for dwarf2.
11970
11971         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
11972         * rtl.c (reg_note_name): Likewise.
11973         * rtl.texi (REG_NOTES): Likewise.
11974         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
11975         without an offset.
11976
11977 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
11978
11979         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
11980         * i386.md (movsf, movdf, movxf): Validate memory address returned
11981         from force_const_mem.  Kill useless REG_EQUAL setting code.
11982
11983 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
11984
11985         * m68k.md (zero_extendsidi2): Fix typo.
11986
11987 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
11988
11989         * configure.in: Removed references to the removed file
11990         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
11991         * arm*-*-netbsd* and ns32k-*-netbsd*.
11992         * config/i386/xm-netbsd.h: Removed unnecessary file.
11993         * config/m68k/xm-netbsd.h: Likewise.
11994         * config/sparc/xm-netbsd.h: Likewise.
11995         * config/mips/xm-netbsd.h: Likewise.
11996
11997 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
11998
11999         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
12000         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
12001
12002         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
12003         for exact section attributions.
12004
12005         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
12006         runtime.
12007         * i386/crtdll.h (CPP_PREDEFINES): Define.
12008
12009 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
12010
12011         * m68k.md (5200 movqi): Do not allow byte sized memory references
12012         using address regs.
12013         * m68k.c (output_move_qimode): Do not use byte sized operations on
12014         address registers.
12015
12016         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
12017         explicit rules for building.  Similarly for alloca, vfprintf,
12018         choose-temp and mkstemp, getopt, getopt1, and obstack.
12019         (INCLUDES): Add $(srcdir)/../include.
12020         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
12021         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
12022
12023 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
12024
12025         * gcc.c (do_spec_1): [case 'o'] Account for
12026         lang_specific_extra_outfiles.
12027         (main): Correctly clear all slots in outfiles for
12028         lang_specific_extra_outfiles.  Set input_file_number before
12029         calling lang_specific_pre_link.
12030
12031 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
12032
12033         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
12034
12035 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12036
12037         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
12038         cases, use xword.
12039         (sparc_output_deferred_case_vectors): If no work to do, return.
12040         Fix thinko in Sept 1 change.
12041
12042 1998-09-03  SL Baur  <steve@altair.xemacs.org>
12043
12044         * Makefile.in: add semicolon in BISON definition for portability.
12045
12046 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
12047
12048         * config/nextstep.c (handle_pragma): Correct name of third
12049         argument.
12050
12051 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
12052
12053         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
12054         * config/m32r/m32r.h: Make register 17 be fixed.
12055         * config/m32r/m32r.c: Use SImode for cc operations.
12056
12057 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
12058
12059         * invoke.texi (Warning Options): Add -Wnon-template-friend
12060         documentation.
12061
12062 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
12063
12064         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
12065
12066 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@gnu.org>
12067
12068         * rs6000.md (movsf): Disable explicit secondary-reload-like
12069         functionality if TARGET_POWERPC64.
12070         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
12071         functionality.
12072
12073 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
12074
12075         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
12076         and term.h from fixinc.wrap.
12077
12078 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12079
12080         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
12081         safe to include both string.h and strings.h together.
12082         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
12083         which headers to search for function declarations.  Continue to
12084         prefer string.h over strings.h when both are not acceptable.
12085
12086         * acconfig.h (STRING_WITH_STRINGS): Add stub.
12087
12088         * configure.in: Call GCC_HEADER_STRING.
12089
12090         * system.h: Test STRING_WITH_STRINGS when deciding which headers
12091         to include.  Continue to prefer string.h over strings.h when both
12092         are not acceptable.
12093
12094 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12095
12096         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
12097         not assume top 32-bits of symbolic addresses are zero if
12098         flag_pic.
12099
12100 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
12101
12102         * ginclude/va-alpha.h: Protect entire second portion of the
12103         file against double inclusion.
12104
12105 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
12106
12107         Added support for the Boehm's garbage collector.
12108         * configure.in: Handle --enable-objc-gc.
12109         * configure: Rebuilt.
12110         * Makefile.in (CHECK_TARGETS): Add check-objc.
12111         (check-objc): New rule.
12112         * objc/Make-lang.in: Build a different Objective-C library that
12113         runs with the Boehm's collector.
12114         * objc/encoding.c (objc_round_acc_size_for_types): New function.
12115         * objc/encoding.c: Correctly compute the size of compound types in
12116         the presence of bitfields. Skip the variable name of the type if
12117         any. Added support for long long.
12118         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
12119         (_F_GCINVISIBLE): New mask.
12120         * objc/gc.c: New file. Compute the type memory mask associated with
12121         a class based on the runtime information.
12122         * objc/misc.c: Added the hooks that use the Boehm's collector
12123         allocation functions.
12124         * objc/objc-act.c (build_class_template): Generate a new class
12125         member (gc_object_type) to hold the class' type memory mask.
12126         (build_shared_structure_initializer): Initialize the new member to
12127         NULL.
12128         (encode_complete_bitfield): New function. Generate the new
12129         encoding.
12130         (encode_field_decl): Generate the new encoding only for the GNU
12131         runtime.
12132         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
12133         long long types.
12134         (class_get_gc_object_type): New function to mark a pointer instance
12135         variable as a weak pointer.
12136         * objc/objc-features.texi: New file.
12137         * objc/objc.h (gc_object_type): New class member.
12138         * objc/objects.c (class_create_instance): Create a typed memory
12139         object when compiled with Boehm's collector support.
12140         * objc/sendmsg.c (__objc_init_install_dtable): Call
12141         __objc_send_initialize instead of setting the initialize flag.
12142         (__objc_send_initialize): Call __objc_generate_gc_type_description
12143         to generate the class type memory mask. Rewrite the code that
12144         sends the +initialize so that it is called only once (bug report
12145         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
12146         * testsuite/objc: New testsuite for Objective-C type encoding.
12147         * testsuite/lib/objc-torture.exp: New file.
12148         * testsuite/lib/objc.exp: New file.
12149
12150 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
12151
12152         * jump.c (jump_optimize): In if/then/else transformations, add
12153         another call to modified_between_p for the jump insn.
12154
12155 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
12156
12157         * fix-header.c (symlink): Treat like readlink.
12158
12159 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12160
12161         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
12162         as FT_float.
12163
12164 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
12165
12166         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
12167         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
12168         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
12169         
12170         * config/nextstep.c (handle_pragma): Take three arguments, as per
12171         the new HANDLE_PRAGMA macro specification.
12172         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
12173         per the new HANDLE_PRAGMA macro specification.
12174         * config/i960/i960.c (process_pragma): Take three arguments, as
12175         per the new HANDLE_PRAGMA macro specification.
12176
12177 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
12178
12179         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
12180         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
12181         if unknown pragmas are encountered.
12182         (handle_sysv_pragma): Interpret return code from
12183         handle_pragma_token ().  Return success/failure indication rather
12184         than next unprocessed character. 
12185         (pragma_getc): New function: retrieves characters from the
12186         input stream.  Defined when HANDLE_PRAGMA is enabled.
12187         (pragma_ungetc): New function: replaces characters back into the
12188         input stream.  Defined when HANDLE_PRAGMA is enabled.
12189         
12190         * c-pragma.c (handle_pragma_token): Return success/failure status
12191         of the parse.
12192         
12193         * c-pragma.h: Change prototype of handle_pragma_token().
12194
12195         * varasm.c: (handle_pragma_weak): Only create this function if
12196         HANDLE_PRAGMA_WEAK is defined.
12197
12198         * c-common,c (decl_attributes): If defined call the expression
12199         contained within the INSERT_ATTRIBUTES macro before adding
12200         attributes to a decl.
12201
12202         * tm.texi (HANDLE_PRAGMA): Document the new verion of
12203         HANDLE_PRAGMA, which takes three arguments.
12204         (INSERT_ATTRIBUTES): Document this new macro.  
12205
12206         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
12207         new INSERT_ATTRIBUTES macro.
12208
12209 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12210
12211         * config/sparc/sparc.md (movdf): Only generate special RTL for
12212         LABEL_REFs when PIC.
12213         (move_label_di): Remove
12214         (movdi_pic_label_ref, movdi_high_pic_label_ref,
12215         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
12216         references when PIC.
12217         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
12218         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
12219         output an .xword for all 64-bit cases.
12220         
12221 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12222
12223         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
12224         alignment, use FUNCTION_BOUNDARY instead.
12225         (sparc_output_deferred_case_vectors): Likewise.
12226
12227 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12228
12229         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
12230         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
12231
12232 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
12233
12234         * alpha/va_list.h: New file.
12235         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
12236
12237 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
12238
12239         * NEWS: Add SCO Openserver and Unixware 7 notes.
12240
12241         * NEWS: Fix typos.
12242
12243 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
12244
12245         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
12246         (record_constant_1): Handle RANGE_EXPR.
12247
12248 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
12249
12250         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
12251         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
12252         and NOTE_INSN_RANGE_END specially.
12253         (reemit_notes): Likewise.
12254
12255 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12256
12257         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
12258         (ultrasparc_sched_init): Remove unneeded &.
12259
12260 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
12261
12262         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
12263         for m68020-60, to prevent the use of fintrz.
12264
12265 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
12266
12267         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
12268         even in stage1. 
12269         * Makefile.in: Likewise.
12270         * configure: Regenerated.
12271
12272 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
12273
12274         * configure.in (gxx_include_dir): Changed to
12275         '${prefix}/include/g++'-${libstdcxx_interface}.
12276         * configure: Rebuilt.
12277
12278 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
12279
12280         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
12281         consistent.
12282         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
12283         *sequences* *below* which scalar moves will be used.
12284
12285 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
12286
12287         * collect2.c (mktemp): Delete unused declaration.
12288
12289         * config/xm-netbsd.h: Remove unnecessary file.
12290         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
12291         file anymore, it is not needed.
12292
12293 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
12294
12295         * convert.c (convert_to_integer): Issue an error on conversions to
12296         incomplete types.
12297
12298 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
12299
12300         * Makefile.in: Add lang_tree_files and gencheck.h.
12301         * configure.in: Generate them.
12302         * gencheck.c: Include gencheck.h.
12303
12304 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12305
12306         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
12307         movdi_lo_sum_pic and movdi_high_pic and make visible.
12308         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
12309         emit these when Pmode is not SImode.
12310         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
12311
12312 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
12313
12314         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
12315         .linkonce directive after the first time.
12316
12317 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
12318
12319         * m68k.md (beq0_di): Generate correct (and more efficient) code when
12320         the clobbered operand overlaps with an input.
12321         (bne0_di): Similarly.
12322
12323         * Makefile.in (INSTALL): Remove "--no-header" argument.
12324
12325         * NEWS: Various updates.
12326
12327 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12328
12329         * config/sparc/sparc.c (arith_operand, const64_operand,
12330         const64_high_operand, arith_double_4096_operand): Mark mode as
12331         unused.
12332         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
12333         callers changed.
12334         (sparc_emit_set_const64): Remove unused variable i.
12335         (sparc_splitdi_legitimate): Likewise for addr_part.
12336         (ultra_code_from_mask): Likewise for mask.
12337         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
12338         reverse return values so it matches usage and comments.
12339         (ultra_flush_pipeline): Likewise.
12340         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
12341         this_type, and allow loads and stores of differing FP modes as
12342         they do not create a conflict.
12343         (ultra_find_type): Initialize fpmode to SFmode, fix
12344         parenthesization thinkos in large conditional.
12345         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
12346         Init free_slot_mask after ultra_cur_hist is reset, not before.
12347         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
12348         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
12349         use ultra_flush_pipeline instead, then re-init group pointer.
12350         Fix statement with no effect.  If no progress made in, and no
12351         instructions scheduled at all, advance to new pipeline cycle else
12352         we get into an endless loop.
12353         (ultrasparc_adjust_cost): Remove previous arg.
12354         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
12355         
12356 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
12357
12358         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
12359         code.  Use reg_overlap_mentioned_p to detect when source and
12360         destination overlap.
12361         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
12362
12363 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
12364
12365         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
12366         COMPARISON_VAL, into invariant_p.
12367
12368 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12369
12370         * regmove.c (regclass_compatible_p): New function.
12371         (regmove_optimize): Use it.
12372
12373         Use NREGS parameter insted of calling max_reg_num.
12374
12375         (fixup_match_1): Don't use code = MINUS when later tieing with
12376         a hard register is likely.
12377
12378 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12379
12380         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
12381         COMPARISON_VAL was normalized.
12382
12383 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
12384
12385         * loop.c (check_dbra_loop): The loop ending comparison value
12386         must be an invariant or we can not reverse the loop.
12387
12388         * loop.c (scan_loop): Count down from max_reg_num - 1 to
12389         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
12390         of the loop.
12391         (load_mems_and_recount_loop_regs_set): Likewise.
12392
12393         * i386.c (print_operand): Remove obsolete 'c' docs.
12394
12395 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
12396
12397         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
12398         * frame.c (init_object_mutex): New function.
12399         (init_object_mutex_once): Likewise.
12400         (find_fde): Call it.
12401         (__register_frame_info): Likewise.
12402         (__register_frame_info_table): Likewise.
12403         (__deregister_frame_info): Likewise.
12404
12405 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
12406
12407         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
12408
12409 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12410
12411         * loop.c (check_dbra_loop): Enable code for reversal
12412         of some loops without a known constant loop end.
12413
12414 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
12415
12416         * haifa-sched.c (last_clock_var): New.
12417         (schedule_block): Initialize it.
12418         (schedule_insn): Use it to fill insn modes with issue information.
12419
12420         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
12421         Tag trapb and next insn with TImode.
12422         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
12423         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
12424         Invoke alphaev5_align_insns as appropriate.
12425         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
12426         (MD_SCHED_VARIABLE_ISSUE): New.
12427         * alpha.md (attr type): Add multi.
12428         (define_asm_attributes): New.
12429         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
12430         (arg_home): Likewise.
12431         (fnop, unop, realign): New.
12432
12433 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
12434
12435         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
12436         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12437
12438         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
12439         (rs6000-ibm-aix4.[12]*): Likewise.
12440         * configure: Regnerate.
12441
12442 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
12443
12444         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
12445         already contains the return address.
12446
12447 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
12448
12449         * calls.c (expand_call): Use bitfield instructions to extract/deposit
12450         word sized hunks when loading unaligned args into registers.
12451
12452         * haifa-sched.c (sched_analyze_insn): Only create scheduling
12453         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
12454
12455         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
12456
12457 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12458
12459         * loop.c (check_dbra_loop): Add some code that would allow reversal
12460         of some loops without a known constant loop end if it were enabled.
12461
12462 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
12463
12464         * mips.md (lshrsi3_internal2+2): Fix type-o.
12465
12466 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12467
12468         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
12469         correctly with regards to stdio.h.
12470         
12471         * calls.c: Remove stdarg.h/varargs.h.
12472         * cccp.c: Likewise.
12473         * cexp.y: Likewise.
12474         * combine.c: Likewise.
12475         * cpperror.c: Likewise.
12476         * cpplib.c: Likewise.
12477         * cpplib.h: Likewise.
12478         * doprint.c: Likewise.
12479         * emit-rtl.c: Likewise.
12480         * final.c: Likewise.
12481         * fix-header.c: Likewise.
12482         * gcc.c: Likewise.
12483         * genattr.c: Likewise.
12484         * genattrtab.c: Likewise.
12485         * gencodes.c: Likewise.
12486         * genconfig.c: Likewise.
12487         * genemit.c: Likewise.
12488         * genextract.c: Likewise.
12489         * genflags.c: Likewise.
12490         * genopinit.c: Likewise.
12491         * genoutput.c: Likewise.
12492         * genpeep.c: Likewise.
12493         * genrecog.c: Likewise.
12494         * mips-tfile.c: Likewise.
12495         * prefix.c: Likewise.
12496         * protoize.c: Likewise.
12497         * regmove.c: Likewise.
12498         * toplev.c: Likewise.
12499         * tree.c: Likewise.
12500
12501 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12502
12503         * config/sparc/sparc.c (sparc_override_options): If not
12504         TARGET_FPU, turn off TARGET_VIS.
12505         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
12506         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
12507         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
12508         (movdi_insn_sp64): Add VIS fzero alternative.
12509         (clear_sf, clear_df): New VIS patterns.
12510         (movsf, movdf expanders): Allow fp_zero_operand flat out when
12511         TARGET_VIS.
12512         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
12513         
12514 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
12515
12516         * loop.c (n_times_set, n_times_used, may_not_optimize,
12517         reg_single_usage): Convert to varrays.  All uses changed.
12518         (insert_loop_mem): Return a value.
12519         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
12520         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
12521         necessary.
12522
12523 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
12524
12525         * From Alexandre:
12526         * configure.in: Do not set thread_file to "irix" since no such
12527         support exists yet.
12528
12529         * sparc.md (float abs/neg splits): Check reload_completed before
12530         calling alter_subreg.
12531
12532 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12533
12534         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
12535         function.
12536         * config/sparc/sparc.h: Declare it.
12537         * config/sparc/sparc.md (float abs/neg splits): Use it.
12538         (all other splits): Handle SUBREGs properly where necessary.
12539         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
12540
12541 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
12542
12543         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
12544         an insn on the unfilled_slots_list that has no delay slots.
12545         (fill_eager_delay_slots): Similarly.
12546
12547 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
12548
12549         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
12550         as an ordinary operand.
12551
12552 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
12553
12554         * tree.c (valid_machine_attribute): Don't apply attributes to both
12555         decl and type.
12556
12557 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
12558
12559         * reload.c (operands_match_p): Handle rtvecs.
12560
12561         * i386.c (legitimate_pic_address_disp_p): New.
12562         (legitimate_address_p): Use it.
12563         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
12564         Handle constant pool symbols just like statics.
12565         (emit_pic_move): Use Pmode not SImode for clarity.
12566         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
12567         [UNSPEC]: New, handling what we killed above.
12568         [PLUS]: Detect and abort on invalid symbol arithmetic.
12569         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
12570
12571 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
12572
12573         * alias.c: Include output.h.
12574         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
12575         different if we're in a varargs function.
12576         * Makefile.in (alias.o): Depend on output.h
12577         
12578 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12579
12580         * sh.h (GIV_SORT_CRITERION): Delete.
12581
12582 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
12583
12584         * regclass.c (regclass): Use xmalloc/free instead of alloca.
12585         * stupid.c (stupid_life_analysis): Ditto.
12586         * reload1.c (reload): Ditto.
12587
12588 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
12589
12590         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
12591         arith_double_4096_operand, arith_double_add_operand): New
12592         predicates.
12593         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
12594         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
12595         them to transform add/sub 4096 into add/sub -4096.
12596
12597 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12598
12599         * loop.c (scan_loop): Allocate some slop to handle pseudos
12600         generated by move_movables.
12601         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
12602         here too.
12603
12604 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
12605
12606         * tree.def (DECL_RESULT): Correct documentation.
12607
12608 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
12609
12610         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
12611         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
12612         conflicts will all RELOAD_FOR_OUTPUT reloads.
12613
12614         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
12615         loads the function result, substitute with a USE.
12616
12617 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@gnu.org>
12618
12619         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
12620         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
12621         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
12622         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
12623         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
12624         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
12625         operand. 
12626         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
12627         'o' to 'm' for GPR variant constraints.
12628
12629 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
12630
12631         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
12632
12633         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
12634
12635         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
12636         when the source and destination overlap.
12637
12638         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
12639         clash with global type.
12640
12641 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
12642
12643         * fixinc.irix: Add curses.h handling from fixinc.wrap.
12644
12645         * c-common.c (combine_strings): Also set TREE_READONLY.
12646         Change warn_write_strings to flag_const_strings.
12647         * c-decl.c, c-tree.h: Likewise.
12648
12649 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12650
12651         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
12652         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
12653         sequence, use SET/IOR instead so CSE can see it.
12654         * config/sparc/sparc.md (movhi_const64_special,
12655         movsi_const64_special): New patterns necessitated by that change.
12656         (movhi_high): Remove.
12657         (movhi_lo_sum): Change to match an IOR.
12658         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
12659         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
12660         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
12661         (movdf splits): Allow when not V9 or when not ARCH64 and integer
12662         registers are involved.
12663         (snesi_zero_extend split): Remove reload_completed test.
12664         (unnamed plus and minus zero_extend sidi splits): Add it.
12665
12666 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
12667
12668         * extend.texi: Remove description of extension to explicit
12669         instantiation that is now endorsed by standard C++.
12670
12671 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12672
12673         * config/arc/arc.c (arc_initialize_pic): Remove.
12674         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
12675         nothing on any platform and is invoked by no-one, it does not even
12676         appear in the documentation.
12677         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
12678         * config/sparc/sparc.c (initialize_pic): Likewise.
12679         (find_addr_reg): Remove this as well, no longer referenced after
12680         my rewrite.
12681
12682 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
12683
12684         * recog.c (validate_replace_rtx_group): New function.
12685         * recog.h (validate_replace_rtx_group): Declare it.
12686         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
12687         the entire group of substitutions.
12688
12689 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
12690
12691         * loop.c (load_mems): Fix initializers.
12692
12693 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12694
12695         * config/sparc/sparc.md (TFmode splits): Handle destination
12696         registers being referenced in the address correctly.
12697
12698         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
12699         TREE_UNSIGNED, when bitsize of type's mode is larger than
12700         HOST_BITS_PER_WIDE_INT.
12701
12702 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
12703
12704         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
12705         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
12706         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
12707         macros.
12708         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
12709         EXIT_BLOCK_EXPR.
12710
12711 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
12712
12713         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
12714         * h8300.h (TINY_DATA_NAME_P): Likewise.
12715         (STRIP_NAME_ENCODING): Handle '&'.
12716
12717         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
12718         register (it could be accessed via an outer SUBREG).
12719         (REG_OK_FOR_BASE_P): Likewwise.
12720         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
12721
12722         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
12723         bogus rtl.
12724
12725         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
12726
12727 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12728
12729         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
12730         must be offsettable so the splits can be made.
12731
12732 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
12733
12734         * config/i386/winnt.c: Include system.h, not stdio.h to get
12735         sys/param.h pulled in before rtl.h in case the system defines MIN
12736         and MAX.
12737
12738 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@gnu.org>
12739
12740         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
12741
12742 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
12743
12744         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
12745         arrays of bits.
12746         * cpplib.c (cpp_define): Handle macros with parameters.
12747
12748 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@gnu.org>
12749
12750         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
12751         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
12752         and DImode 64-bit.  Use llong for minimal-toc SFmode and
12753         SYMBOL_REF / LABEL_REF 64-bit.
12754         (output_function_profiler): Use llong for profiler label and ld to
12755         load 64-bit label address.
12756
12757 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
12758
12759         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
12760         OFFSET addressing.
12761
12762 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
12763
12764         * version.c: Bump for snapshot.
12765
12766 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
12767
12768         * version.c: Bump for snapshot.
12769
12770 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
12771
12772         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
12773
12774 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
12775
12776         * tm.texi (Misc): Fix typo "teh".
12777
12778         * tm.texi (PIC): Fix typo "PPIC".
12779
12780         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
12781         effect when -O2 and higher.
12782         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
12783
12784 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
12785
12786         * regclass.c: Changed register set documentation to be consistent
12787         with GCC behaviour.
12788
12789         * final.c (final_start_function) Removed redundant test for
12790         call_fixed_regs.
12791
12792 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
12793
12794         * rtl.h (rtx_function): New type.
12795         (for_each_rtx): New function.
12796         * rtlanal.c (for_each_rtx): Define it.
12797         
12798         * recog.c (change_t): New type.
12799         (change_objects, change_old_codes, change_locs, change_olds):
12800         Replace with ...
12801         (changes): New variable.
12802         (validate_change): Dynamically allocate room for more changes, if
12803         necessary.  Uses changes array instead of change_objects, etc.
12804         (apply_change_group):  Use changes array instead of
12805         change_objects, etc.
12806         
12807         * loop.c (loop_mem_info): New type.
12808         (loop_mems): New variable.
12809         (loop_mems_idx): Likewise.
12810         (looop_mems_allocated): Likewise.
12811         (scan_loop): Remove nregs parameter.
12812         (next_insn_in_loop): New function.
12813         (load_mems_and_recount_loop_regs_set): Likewise.
12814         (load_mems): Likewise.
12815         (insert_loop_mem): Likewise.
12816         (replace_loop_mem): Likewise.
12817         (replace_label): Likewise.
12818         (INSN_IN_RANGE_P): New macro.
12819         (loop_optimize): Don't pass max_reg_num() to scan_loop.
12820         (scan_loop): Remove nregs parameter, compute it after any new
12821         registers are created by load_mems.  Use INSN_IN_RANGE_P and
12822         next_insn_in_loop rather than expanding them inline.  Call
12823         load_mems to load memory into pseudos, if appropriate.
12824         (prescan_loop): Figure out whether or not there are jumps from the
12825         loop to targets other than the label immediately following the
12826         loop.  Call insert_loop_mem to notice all the MEMs used in the
12827         loop, if it could be safe to pull MEMs into REGs for the duration
12828         of the loop.
12829         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
12830
12831 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
12832
12833         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
12834
12835 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12836
12837         * config/sparc/sparc.c (finalize_pic): Check for the correct
12838         nonlocal_goto_receiver UNSPEC number.
12839         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
12840         making note of this dependency existing in sparc.c
12841         (negtf2_notv9 split): Give NEG SFmode.
12842         (negsf2): Fix insn output string.
12843         
12844 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
12845
12846         * c-common.c (decl_attributes): Issue an error if the argument
12847         to alias is not a string.
12848
12849 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
12850
12851         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
12852         pending memory flush list.
12853
12854         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
12855         notes.
12856         (try_combine): Allow combining insns with REG_LIBCALL notes.
12857
12858         * expr.c (emit_block_move): Do not call memcpy as a libcall
12859         instead build up a CALL_EXPR and call it like any other
12860         function.
12861         (clear_storage): Similarly for memset.
12862
12863         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
12864         on notes.
12865
12866         * Makefile.in (cplus-dem.o): Provide explicit rules for building
12867         cplus-dem.o
12868
12869         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
12870         and REG_LIVE_LENGTH as successful substitutions are made.
12871
12872 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12873
12874         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
12875         statement after end of loop label.
12876
12877 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12878
12879         * config/sparc/sparc.c (ultra_types_avail): New variable.
12880         (ultra_build_types_avail): New function to record mask of insn
12881         types in ready list at this cycle.
12882         (ultrasparc_sched_reorder): Call it.
12883         (ultra_find_type): Use it to quicken the search.  Also simplif
12884         dependency check, don't use rtx_equal_p because we know exactly
12885         what we are looking for.
12886
12887 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
12888
12889         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
12890         for architecture v4.
12891
12892 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12893
12894         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
12895         gen_compare_reg.
12896         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
12897         movdf_const_intreg and helper splits): New patterns to move float
12898         constants into integer registers.
12899         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
12900         splits.
12901
12902 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
12903
12904         * From Graham
12905         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
12906         to itype.
12907         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
12908
12909         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
12910         a BASE_REGS register is needed as an intermediate when copying
12911         a symbolic value into any register class other than BASE_REGS.
12912
12913         * expr.c (move_by_pieces): No longer static.  Remove prototype.
12914         * rtl.h (move_by_pieces): Add extern prototype.
12915         * mips.c (expand_block_move): Handle aligned straight line copy by
12916         calling move_by_pieces.
12917
12918         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
12919         and VAR_DECLs.
12920
12921 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
12922
12923         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
12924         jumps out of the loop to be treated as part of the exit test.
12925
12926 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12927                           Jeff Law <law@cygnus.com>
12928
12929         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
12930         * cplus-dem.c: Delete.
12931
12932         * Makefile.in (fold-const.o): depend on $(RTL_H).
12933
12934         * fold-const.c: Include rtl.h to get the prototype for
12935         `set_identifier_local_value'.
12936
12937         * loop.c (express_from_1): Remove unused variable `tmp'.
12938         (combine_givs): cast the first argument of bzero to char *.
12939
12940         * toplev.c (display_help): Remove unused variable `looking_for_start'.
12941
12942         * c-decl.c (init_decl_processing): Remove unneeded &.
12943
12944         * alpha.h (alpha_initialize_trampoline): Provide prototype.
12945         
12946         * except.c (set_exception_lang_code, set_exception_version_code):
12947         Change parameter from `short' to `int' to avoid using a gcc
12948         extension.
12949
12950         * except.h (set_exception_lang_code, set_exception_version_code):
12951         Likewise for prototypes.
12952
12953         * flow.c (count_reg_references): Remove unused variables `regno'
12954         and `i'.
12955
12956         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
12957
12958         * prefix.c (translate_name): Cast the result of `alloca'.
12959
12960         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
12961
12962 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
12963
12964         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
12965         Include "toplev.h".
12966         (valid_dbcc_comparison_p): Mark mode argument as unused.
12967         (symbolic_operand): Likewise.
12968         (legitimize_pic_address): Likewise.
12969         (const_uint32_operand): Likewise.
12970         (const_sint32_operand): Likewise.
12971         * sched.c [!INSN_SCHEDULING]: Define only dummy function
12972         schedule_insns and comment out rest of file.
12973
12974         * m68k.c (output_move_simode_const): Use subl to move a zero into an
12975         address register.
12976         (output_move_[hq]imode): Likewise.
12977
12978 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
12979
12980         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
12981         * invoke.texi: Corresponding changes.
12982
12983 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
12984
12985         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
12986
12987 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12988
12989         * config/sparc/sparc.c (ultra_code_from_mask,
12990         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
12991         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
12992         ultrasparc_sched_init, ultrasparc_variable_issue,
12993         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
12994         functions to describe UltraSPARC pipeline exactly to Haifa.
12995         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
12996         as there is nothing the scheduler can do about it.  Indicate that
12997         REG_DEP_OUTPUT's collide.  Fixup formatting.
12998         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
12999         divide costs on Ultra for DImode.
13000         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
13001         Define.
13002         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
13003         ieuN and add call_no_delay_slot to type list.
13004         (cti function unit): New unit for branches on UltraSPARC.
13005         (subx/addx insns): Set type to misc.
13006         (sidi zero/sign extension insns on arch64): Set type to shift.
13007         (sign_extendhidi2_insn): Set type to sload.
13008
13009 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@gnu.org>
13010
13011         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
13012         (output_epilog): Use if != 0 for offset.
13013         (rs6000_fatal_bad_address): Prepare for Intl.
13014         * rs6000.h (rs6000_fatal_bad_address): Declare.
13015         * rs6000.md (movsfcc, movdfcc): Use else if.
13016         (elf_high): Use {liu|lis}.
13017         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
13018         (movsi): Use rs6000_fatal_bad_address.
13019         
13020 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
13021
13022         * reload.c (find_equiv_reg): Reject equivalences separated
13023         by a volatile instruction.
13024
13025 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13026
13027         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
13028
13029 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
13030
13031         * alpha.md (movsicc): Fix mode mismatch.
13032
13033 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
13034
13035         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
13036         return type.
13037         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
13038
13039 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13040
13041         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
13042         write-only modifier from operand 1 constraint.
13043
13044 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13045
13046         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
13047         emitting a XOR of -1 at the end, emit a NOT instead for combine's
13048         sake.
13049         (sparc_emit_set_const64): Likewise, also when computing trailing
13050         bits do not negate low_bits and make fast_int an int.
13051
13052 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
13053
13054         * loop.c (add_label_notes): Do not ignore references to labels
13055         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
13056         * gcse.c (add_label_notes): Similarly.
13057
13058         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
13059
13060         * m68k.md (adddi_dilshr32): One of the operands must be a register.
13061         (adddi_dishl32): Similarly.
13062
13063 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
13064
13065         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
13066         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
13067         * cse.c (cse_basic_block): Add parens to shut up warnings.
13068
13069 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13070
13071         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
13072         sparc_emit_set_const64_longway, const64_is_2insns,
13073         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
13074         in 64-bit constant formation.
13075         * config/sparc/sparc.md (snesi_zero_extend split): Generate
13076         rtl for addx not subx.
13077         (define_insn movdi_const64_special): Make available even when
13078         HOST_BITS_PER_WIDE_INT is not 64.
13079         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
13080         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
13081         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
13082         instances of operand 1 inside a QI subreg.
13083         (xordi3_sp64_dbl): Remove '%' constraint for op1.
13084         (one_cmpldi2_sp64): Fix output string.
13085         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
13086         alternative case.
13087         (unnamed arch64 ashift DI): Truncate shift count if greater than
13088         63, not 31.
13089
13090 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
13091
13092         * expr.c (store_expr): Don't optimize away load-store pair
13093         when either source or destination have a side effect.
13094
13095 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
13096
13097         * genrecog.c (add_to_sequence): Fatal error if the modes of the
13098         operands of SET are incompatible.
13099
13100         * alpha.md: Fix max and min patterns so modes of SET operands match.
13101
13102 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
13103
13104         * configure.in: Avoid [[ by using test and changequote.
13105         * configure: Rebuild.
13106
13107 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13108
13109         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
13110
13111         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
13112         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
13113         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
13114         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
13115         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
13116         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
13117         Fix mismatching modes in SET operands.
13118         (conditional move patterns): Fix formatting.
13119         (unnamed subx arch64 pattern): Remove duplicate insn.
13120         
13121 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13122
13123         * config/sparc/sparc.c (const64_operand, const64_high_operand):
13124         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
13125         (input_operand): Fixup test for what we accept for constant
13126         integers.
13127         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
13128         set VOIDmode.
13129         (safe_constDI): Remove.
13130         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
13131         gen_safe_XOR64): New functions.
13132         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
13133         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
13134         them.
13135         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
13136         available when HOST_BITS_PER_WIDE_INT is not 64.
13137         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
13138         move before movdi_insn_sp64 pattern.
13139         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
13140         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
13141         symbolic_operand as predicate for second operand.
13142         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
13143         expander): Give set VOIDmode.
13144         
13145 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
13146
13147         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
13148
13149 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
13150
13151         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
13152
13153 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
13154
13155         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
13156         point.
13157         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
13158
13159 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
13160
13161         * install.texi: Various SCO OpenServer tweaks.
13162
13163 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
13164
13165         * reload1.c (eliminate_regs_in_insn): Handle another case when
13166         eliminating the frame pointer to the hard frame pointer.  Add
13167         missing ep->to_rtx check to one existing case.
13168
13169         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
13170
13171 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
13172
13173         * tree.h: De-conditionalize init_priority code.
13174
13175         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
13176         * collect2.c (NM_FLAGS): Change from -p to -n.
13177
13178         * configure.in: Turn on collect2 for mipstx39-elf.
13179         Handle use_collect2=no properly.
13180
13181         * c-common.c: De-conditionalize init_priority code.
13182         * collect2.c (extract_init_priority, sort_ids): New fns.
13183         (main): Call sort_ids.
13184         Move sequence_number to file scope.
13185
13186         * configure.in: Handle --enable-init-priority.
13187         * c-common.c (attrs): Add A_INIT_PRIORITY.
13188         (init_attributes, decl_attributes): Likewise.
13189         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
13190         * tree.c (get_file_function_name_long): Split out...
13191         (get_file_function_name): ...from here.
13192
13193 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
13194
13195         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
13196         accessing nodes.
13197
13198 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
13199
13200         * toplev.c (display_help): Add braces to shut up warnings.
13201         * tree.c (simple_cst_equal): Likewise.
13202
13203         * fold-const.c (non_lvalue): Don't deal with null pointer 
13204         constants here.
13205         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
13206
13207         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
13208         of any size to a pointer.
13209
13210 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
13211
13212         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
13213
13214 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
13215
13216         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
13217         which will be saved.
13218         * mn10300.md (prologue insn): Only save registers which need saving.
13219         (epilogue insn): Similarly.
13220
13221         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
13222         optimizations.
13223
13224 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
13225
13226         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
13227         VAR_DECL's in gp addressable sections.
13228
13229 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
13230
13231         * sparc.c: Change return <exp> to <exp>; return; in functions
13232         returning void.
13233         * sparc.md: Add empty semicolon statement after final label in
13234         move expanders.
13235
13236 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13237
13238         * config/sparc/sparc.md (define_insn addx_extend): Rename to
13239         addx_extend_sp64, only allow when TARGET_ARCH64.
13240         (define_insn addx_extend_sp32 and split): Version that works when
13241         not TARGET_ARCH64.
13242         (define_insn subx_extend): Likewise.
13243         (define_split adddi3 and subdi3 with zero extension): Fixup and
13244         correct bugs when not TARGET_ARCH64.
13245
13246 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
13247
13248         * except.c (set_exception_lang_code, set_exception_version_code):
13249         Use prototype-style definition if __STDC__, to match declaration
13250         in except.h.
13251
13252         * genemit.c: Change FAIL and DONE macros not to use loops.
13253
13254 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
13255
13256         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
13257         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
13258
13259         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
13260
13261 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
13262
13263         * README.g77: Update from Craig.
13264
13265 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13266
13267         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
13268         type HOST_WIDE_INT.
13269         (safe_constDI sparc_emit_set_const64_quick1,
13270         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
13271         analyze_64bit_constant, const64_is_2insns,
13272         create_simple_focus_bits): Fix some bugs when compiled on real
13273         64-bit hosts.
13274         (function_arg_record_value_3, function_arg_record_value_2,
13275         function_arg_record_value): Add fully prototyped forward decls.
13276         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
13277         to cmpsi_insn and use on both 64 and 32 bit targets.
13278         (define_insn cmpsi_insn_sp64): Remove.
13279         (define_expand zero_extendsidi2): Allow for 32-bit target too.
13280         (define_insn zero_extendsidi2_insn): Rename to
13281         zero_extendsidi2_insn_sp64.
13282         (define_insn zero_extendsidi2_insn_sp32): New pattern and
13283         assosciated forced split for it.
13284
13285         * config/sparc/sparc.c (const64_operand, const64_high_operand):
13286         New predicates.
13287         * config/sparc/sparc.h: Declare them.
13288         (PREDICATE_CODES): Add them.
13289         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
13290         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
13291
13292 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
13293
13294         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
13295         in v9 case as the latter makes the Solaris assembler crash.
13296
13297 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13298
13299         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
13300         for TFmode when !v9.  We require offsettable memory addresses.
13301         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
13302         DFmode register number conversions.
13303         * config/sparc/sparc.md (define_split DFmode moves): If register
13304         is a SUBREG do alter_subreg on it before using.
13305         (define_expand movtf): Fixup comment about alignment on v9.
13306         (define_split TFmode moves): Don't use gen_{high,low}part, create
13307         explicit SUBREGs instead.
13308
13309 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
13310
13311         * Makefile.in (mbchar.o): Depend on mbchar.c.
13312
13313 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13314                           Richard Henderson  <rth@cygnus.com>
13315         
13316         Rewrite Sparc backend for better code generation and
13317         improved sparc64 support.
13318         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
13319         zero.
13320         * config/sparc/sysv4.h: Likewise.
13321         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
13322         move_operand, v8plus_regcmp_op, emit_move_sequence,
13323         singlemove_string, doublemove_string, mem_aligned_8,
13324         output_move_double, output_move_quad, output_fp_move_double,
13325         move_quad_direction, output_fp_move_quad, output_scc_insn):
13326         Remove.
13327         (small_int_or_double): New predicate.
13328         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
13329         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
13330         old pic_{sethi,lo_sum}_si patterns.
13331         (mem_min_alignment): New generic function to replace
13332         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
13333         available and can test for arbitrary alignments.  All callers
13334         changed.
13335         (save_regs, restore_regs, build_big_number,
13336         output_function_prologue, output_cbranch, output_return,
13337         sparc_flat_save_restore, sparc_flat_output_function_prologue,
13338         sparc_flat_output_function_epilogue): Prettify
13339         insn output.
13340         (output_function_epilogue): Likewise and add code to output
13341         deferred case vectors.
13342         (output_v9branch): Likewise, add new arg INSN and use it to tack
13343         on branch prediction settings.  All callers changed.
13344         (print_operand): Likewise and output %l44 for LO_SUMs when
13345         TARGET_CM_MEDMID.
13346         (sparc_splitdi_legitimate): New function to make sure DImode
13347         splits can be run properly when !arch64.
13348         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
13349         Reformat example code in comments.
13350         (set_extends): Remove UNSPEC/v8plus_clear_high case.
13351         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
13352         of deferred case vectors we need to output.
13353         (sparc_defer_case_vector): Record a case vector.
13354         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
13355         sparc_output_deferred_case_vectors): New functions to output them.
13356         (sparc_emit_set_const32): New function to form 32-bit constants in
13357         registers when that requires more than one instruction.
13358         (safe_constDI, sparc_emit_set_const64_quick1,
13359         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
13360         analyze_64bit_constant, const64_is_2insns,
13361         create_simple_focus_bits, sparc_emit_set_const64): New functions
13362         which do the same for 64-bit constants when arch64.
13363         (sparc_emit_set_symbolic_const64): New function to emit address
13364         loading for all code models on v9.
13365         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
13366         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
13367         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
13368         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
13369         inaccuracies in comments, add symbolic and text_segment operands
13370         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
13371         GENERAL_REGS in these cases as a temp REG is needed to load these
13372         addresses into a register properly.
13373         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
13374         is no longer used.
13375         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
13376         quads are guarenteed to have 16-byte alignment.
13377         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
13378         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
13379         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
13380         deferred case vector implementation.
13381         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
13382         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
13383         Generate "internal label - label" instead of "label - 1b".
13384         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
13385         (PREDICATE_CODES): Remove sparc_operand, move_operand,
13386         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
13387         zero_operand.
13388         (doublemove_string, output_block_move, output_fp_move_double,
13389         output_fp_move_quad, output_move_double, output_move_quad,
13390         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
13391         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
13392         (sparc_emit_set_const32, sparc_emit_set_const64,
13393         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
13394         mem_min_alignment, small_int_or_double): Add externs.
13395         * config/sparc/sparc.md: Document the many uses of UNSPEC and
13396         UNSPEC_VOLATILE in this backend.
13397         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
13398         unary to types which execute in it.
13399         (define_function_unit ieu_shift): Rename to ieu0.
13400         (define_function_unit ieu1): New, executes compare, call, and
13401         uncond_branch type insns.
13402         (define_function_units for type fdivs, fdivd, fsqrt): These
13403         execute in the fpu multiply unit not the adder on UltraSparc.
13404         (define_expand cmpdi): Disallow TARGET_V8PLUS.
13405         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
13406         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
13407         allows the arith_double_operand predicate and rHI constraint when
13408         TARGET_ARCH64.
13409         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
13410         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
13411         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
13412         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
13413         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
13414         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
13415         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
13416         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
13417         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
13418         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
13419         sign_extendqihi2_insn, sign_extendqisi2_insn,
13420         sign_extendqidi2_insn, sign_extendhidi2_insn,
13421         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
13422         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
13423         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
13424         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
13425         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
13426         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
13427         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
13428         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
13429         smulsi3_highpart_v8plus, unnamed subreg mult,
13430         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
13431         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
13432         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
13433         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
13434         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
13435         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
13436         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
13437         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
13438         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
13439         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
13440         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
13441         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
13442         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
13443         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
13444         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
13445         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
13446         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
13447         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
13448         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
13449         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
13450         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
13451         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
13452         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
13453         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
13454         call_address_untyped_struct_value_sp32,
13455         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
13456         call_value_symbolic_sp32, call_value_address_sp64,
13457         call_value_symbolic_sp64, branch_sp32, branch_sp64,
13458         flush_register_windows, goto_handler_and_restore,
13459         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
13460         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
13461         return_addsi, return_di, return_adddi, return_sf, all call+jump
13462         peepholes, trap, unnamed trap insns): Prettify output strings.
13463         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
13464         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
13465         Likewise and force + implement splits for integer cases.
13466         (define_insn return_sf_no_fpu): Likewise and allow to match when
13467         no-fpu because of our subreg SFmode splits.
13468         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
13469         zero_extendqidi2_insn, zero_extendhidi2_insn,
13470         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
13471         input_operand for second operand.
13472         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
13473         reg_or_0_operand for operand 2 so new splits can use it.
13474         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
13475         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
13476         too.
13477         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
13478         CONST_DOUBLEs for operand 2.
13479         (define_insn move_label_di): Likewise and label distance
13480         optimization because it no longer works with new deferred case
13481         vector scheme.  To be revisited.
13482         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
13483         and allow reg_or_0_operand and J constraint for second operand.
13484         (define_insn jump): Set branch predict taken on V9.
13485         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
13486         new deferred case vector scheme.
13487         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
13488         (define_insn negdi2_sp32): Force + implement splits.
13489         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
13490         one_cmplsi2_not_liveg0 respectively, and create expander of original
13491         names which emit special rtl for TARGET_LIVE_G0.
13492         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
13493         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
13494         gen_compare_reg, FAIL instead.
13495         (define_insn sgtu, sleu): Likewise and check gen_s*() return
13496         values when trying to reverse condition codes, if they FAIL then
13497         do likewise.
13498         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
13499         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
13500         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
13501         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
13502         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
13503         set output string to # to indicate they are mandatory splits.
13504         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
13505         pic_sethi_di, move_pic_label_si): Remove.
13506         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
13507         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
13508         place.
13509         (define_expand movsi_pic_label_ref, define_insn
13510         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
13511         expander and insns to handle PIC label references and deferred
13512         case vectors.
13513         (define_insn get_pc_via_rdpc): Comment out as it is no longer
13514         used.
13515         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
13516         Rewrite to not use emit_move_sequence, make use of new constant
13517         formation code, and new splits for all multi-insn cases.
13518         (define_insn movqi_insn): Remove sethi case, it can never happen.
13519         Use reg_or_zero_operand instead of const0_rtx explicit test,
13520         use input_operand instead of move_operand for source, and use
13521         general_operand now for dest.
13522         (define_insn movhi_insn): Similar but leave sethi case.
13523         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
13524         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
13525         movhi_lo_sum respectively, prettify output string.
13526         (define_insn movsi_zero_liveg0): New pattern to put zero into a
13527         register when needed on TARGET_LIVE_G0.
13528         (define_insn movsi_insn): Use general_operand and input_operand
13529         for dest and src respectively.  Simplify applicability test.
13530         Prettify output strings, and add clr alternative for J
13531         constraint.
13532         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
13533         deprecated std and reg-reg DI moves): Remove and...
13534         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
13535         implementation which uses forced splits for all non-single insn
13536         cases.
13537         (define_split DI move cases on !arch64): New splits to handle all
13538         situations of 64-bit double register DImode on 32bit, and
13539         unaligned registers and memory addresses for all subtargets.
13540         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
13541         Remove.
13542         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
13543         input_operand for dest and src respectively, prettify output
13544         strings.
13545         (define_insn movdf_insn, movdf_no_e_insn, store_df,
13546         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
13547         and...
13548         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
13549         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
13550         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
13551         movtf_no_e_insn_sp64) Replace with new
13552         implementation which uses forced splits for all non-single insn
13553         cases.
13554         (define_split DF move cases): New splits in similar vein to DI
13555         move counterparts.
13556         (define_insn sethi_di_medlow, sethi_di_medium_pic,
13557         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
13558         movdi_sp64_insn): Remove old v9 code model and constant loading
13559         support insns and..
13560         (define_insn pic_lo_sum_di, pic_sethi_di,
13561         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
13562         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
13563         embmedany_sethi, embmedany_losum, embmedany_brsum,
13564         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
13565         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
13566         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
13567         scheme, using unspecs, secondary reloads, and one to one sparc
13568         insn to rtl insn mapping for better scheduling and code gen.
13569         (define_expand reload_indi, reload_outdi): Reload helpers for
13570         MEDANY and EMBMEDANY symbol address loading cases which require a
13571         temporary register.
13572         (define_expand movsicc): Remove v8plus_regcmp cases.
13573         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
13574         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
13575         cmp_diqi_trunc_set): New patterns used by some of the new scc
13576         splits on arch64.
13577         (define_insn xordi3_sp64_dbl): New pattern used for constant
13578         formation when crossing from 32-bit targets.
13579         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
13580         split): Remove.
13581         (define_insn addx, subx): Make visible and prettify.
13582         (define_insn adddi3_insn_sp32): Likewise and force split.
13583         (define_insn addx_extend, subx_extend, unnamed): New patterns for
13584         64bit scc split usage.
13585         (define_insn unnamed plusDI zero_extend, unnamed minusDI
13586         zero_extend, subdi3): Force and implement splits.
13587         
13588         * final.c (final_scan_insn): Don't output labels if target
13589         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
13590         instead.
13591         
13592         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
13593         don't forget to walk inside SEQUENCESs too as these are what the
13594         delay slot scheduler will create.
13595         
13596 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
13597
13598         * alpha.md (extxl+1,+2): New patterns to work around
13599         combine lossage.
13600
13601 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
13602
13603         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
13604         caused bad assembly code to be generated.
13605
13606 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
13607
13608         * netbsd.h: Fix typo.
13609
13610 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
13611
13612         * config.sub: Fix typo.
13613
13614 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
13615
13616         * invoke.texi (Environment Variables): Typo: Change "ascpects"
13617         into "aspects".
13618         (Running Protoize): Typo: Change "ther" into "other".
13619
13620 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
13621
13622         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
13623         * m68k/netbsd.h: Likewise.
13624         * ns32k/netbsd.h: Likewise.
13625         * sparc/netbsd.h: Likewise.
13626
13627 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
13628
13629         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
13630         * ginclude/va-clipper.h (va_list): Likewise.
13631
13632 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
13633
13634         * rs6000.c (rs6000_override_options): If big endian and -Os, use
13635         load/store multiple instructions unless user overrides.
13636
13637 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
13638
13639         * ns32k/netbsd.h: Fix typo.
13640
13641 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
13642
13643         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
13644         labels with .debugsym if no parallel insns.
13645
13646 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
13647
13648         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
13649         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
13650
13651 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@gnu.org>
13652
13653         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
13654         (AR_FOR_TARGET): Define.
13655
13656 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
13657
13658         * dyn-string.h: New file.
13659         * dyn-string.c: Likewise.
13660         * Makefile.in (OBJS): Add dyn-string.o.
13661         (dwarf2out.o): Add dyn-string.h dependency.
13662         (dyn-string.o): List dependencies.
13663         * dwarf2out.c: Include dyn-string.h.
13664         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
13665         (addr_const_to_string): Take a dyn_string_t, not a char* as a
13666         prototype.  Use dyn_string_append rather than strcat, throughout.
13667         (addr_to_string): Use dyn_string_t.
13668
13669 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
13670
13671         Function entry/exit profiling instrumentation:
13672         * expr.h (profile_function_entry_libfunc,
13673         profile_function_exit_libfunc): Declare new variables.
13674         * optabs.c: Define them here.
13675         (init_optabs): Initialize them.
13676         * tree.h (struct tree_decl): New flag
13677         no_instrument_function_entry_exit.
13678         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
13679         * c-decl.c (duplicate_decls): Merge it.
13680         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
13681         (init_attributes): Use it for "no_instrument_function".
13682         (decl_attributes): Handle it, for functions that have not yet been
13683         compiled.  Set decl flag.
13684         * flags.h (flag_instrument_function_entry_exit): Declare new
13685         variable.
13686         * toplev.c (flag_instrument_function_entry_exit): Define it here.
13687         (f_options): New option "instrument-functions".
13688         * function.h (struct function): New field instrument_entry_exit.
13689         * function.c (current_function_instrument_entry_exit): New
13690         variable.
13691         (push_function_context_to, pop_function_context_from): Save and
13692         restore.
13693         (expand_function_start): Set current_ variable, maybe emit return
13694         label and entry profile call.
13695         (expand_function_end): Maybe emit exit profile call.
13696
13697 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
13698
13699         * i386.md (movqi): When optimizing a load of (const_int 1) into a
13700         NON_QI_REG_P, pretend the register is SImode.
13701
13702 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
13703
13704         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
13705         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
13706         manufacturer id for ns32k.
13707         * configure: Regenerated.
13708         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
13709         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
13710         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
13711         * config/m68k/netbsd.h: Same.
13712         * config/ns32k/netbsd.h: Same.
13713         * config/sparc/netbsd.h: Same.
13714
13715 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
13716
13717         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
13718         or UNROLL_COMPLETELY loop that starts with a jump to its
13719         exit code.
13720
13721 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@gnu.org>
13722
13723         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
13724         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
13725         (print_operand, case 'B'): Don't fall through.
13726         (print_operand, case 'S'): Correct mask begin/end computation.
13727         Use HOST_BITS_PER_WIDE_INT.
13728         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
13729         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
13730         * rs6000/aix41.h (CPP_PREDEFINES): Same.
13731         * rs6000/aix43.h (CPP_PREDEFINES): Same.
13732
13733 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
13734
13735         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
13736         constraint from second alternative.
13737
13738 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
13739
13740         * configure.in: Fix --without/--disable cases for local-prefix, 
13741         gxx-include-dir and checking.
13742
13743 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13744
13745         * configure.in (enable_haifa): Set by default for sparc64 too.
13746         configure: Rebuilt.
13747
13748 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
13749
13750         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
13751         * i386/winnt.c (associated_type): New fn.
13752         (i386_pe_valid_type_attribute_p): New fn.
13753         (i386_pe_check_vtable_importexport): Remove.
13754         (i386_pe_dllexport_p): Use associated_type.
13755         (i386_pe_dllimport_p): Likewise.
13756
13757         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
13758         * i386.c (i386_valid_type_attribute_p): Also accept
13759         attributes for METHOD_TYPEs.
13760
13761 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
13762
13763         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
13764
13765 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
13766
13767         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
13768
13769         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
13770         them from generating a new base name for each occurence of
13771         a specific suffix.
13772
13773 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
13774
13775         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
13776         SUBREG, MEM.
13777         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
13778
13779
13780
13781         * cplus-dem.c (type_kind_t): New type.
13782         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
13783         on this paramter, rather than demangling the type again.
13784         (demangle_integral_value): Pass tk_integral.
13785         (demangle_template_: Pass the value returned from do_type.
13786         (do_type): Return a type_kind_t.  Pass tk_integral to
13787         demangle_template_value_parm for array bounds.
13788         (demangle_fund_type): Likewise.
13789         
13790 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
13791
13792         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
13793         identical.
13794
13795 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
13796
13797         * pa.c (move_operand): Accept CONSTANT_P_RTX.
13798
13799 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
13800
13801         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
13802
13803         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
13804         index conversion.
13805
13806 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
13807
13808         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
13809         (DEBUGGER_ARG_OFFSET): Likewise.
13810
13811         * mn10300.md (movsf): Remove last change.  Not needed.
13812
13813 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
13814
13815         * c-lex.c (yylex): Fix boundary conditions in character literal and
13816         string literal loops.
13817
13818 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
13819
13820         * longlong.h (count_leading_zeros): Sparclite scan instruction was
13821         being invoked incorrectly.
13822
13823         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
13824         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
13825         Add -pg support. 
13826         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
13827         * configure.in: Added i[34567]86-*-win32
13828         * config.sub: Ditto.
13829         * configure: Rebuilt.
13830         
13831 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
13832
13833         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
13834         the frame pointer and compiling PIC code and reload has not completed.
13835
13836         * i386.c (output_to_reg): Add code to emulate non-popping DImode
13837         case.
13838
13839 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
13840
13841         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
13842
13843 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
13844
13845         * Makefile.in (install-info): Only try to update the info
13846         directory file if it exists in the first place.
13847
13848 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
13849
13850         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
13851
13852 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
13853
13854         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
13855         CONST_DOUBLE source.
13856
13857 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
13858
13859         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
13860         strings as the insertion of USER_LABEL_PREFIX.
13861         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
13862         valid code.
13863         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
13864         calls. 
13865
13866 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
13867
13868         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
13869         already defined type.
13870
13871 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
13872
13873         * expr.c (check_max_integer_computation_mode): Allow conversions
13874         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
13875         (expand_expr): Likewise.
13876
13877 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
13878
13879         * expr.c (expand_expr): Expand RETURN_EXPR.
13880
13881 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
13882
13883         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
13884
13885 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
13886
13887         * dwarf2out.c (output_aranges):  Call stripattributes
13888         for TEXT_SECTION references.
13889         (output_line_info): Likewise.
13890
13891 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
13892
13893         * profile.c (branch_prob): Call allocate_reg_info after outputting
13894         profile rtl in instrument_arcs.
13895
13896 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
13897
13898         * fixinc.irix (math.h): Install wrapper instead of copying.
13899
13900 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
13901
13902         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
13903         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
13904         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
13905         lang_flag_0. Added documentation in the flag table.
13906
13907 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
13908
13909         * cccp.c (do_include): Fix vax c style include handling.
13910
13911 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
13912
13913         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
13914
13915 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
13916
13917         * fold-const.c (non_lvalue): Don't deal with null pointer 
13918         constants here.
13919         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
13920
13921 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@gnu.org>
13922
13923         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
13924         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
13925         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
13926         (u_short_cint_operand): Same.
13927         (reg_or_cint_operand): Same.
13928         (logical_operand): Same.
13929         (input_operand): Same.
13930         (reg_or_short_operand): Use u_short_cint_operand.
13931
13932 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
13933
13934         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
13935         but keep the insns and splits.  Adjust so when the ultimate destination
13936         is memory, use cvtql.
13937
13938 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
13939
13940         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
13941
13942 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
13943
13944         * gcc.c (do_spec): Call "error" not "warning".
13945
13946         * configure.in: Fix minor problems with gas feature detection code.
13947         * configure: Rebuilt.
13948
13949         * gcc.c (do_spec): Issue a warning for '%[]' usage.
13950
13951         * Undo this change.
13952         * gcc.c: Delete %[spec] support.
13953         (do_spec_1, case '('): Likewise.
13954         (do_spec_1, case '['): Call error.
13955
13956 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
13957
13958         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
13959         (CPP_SUBTARGET_SPEC): Default to empty string.
13960         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
13961         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
13962         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
13963         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
13964         (LIB_SPEC): Tidy.
13965         * alpha/linux.h (CPP_PREDEFINES): Tidy.
13966         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
13967         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
13968         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
13969         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
13970         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
13971         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
13972         * alpha/vxworks.h: Likewise.
13973
13974 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
13975
13976         * mips.md (reload_outsi): Added missing REGNO call.
13977         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
13978         function pointer.
13979         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
13980         another match_operator and compare the codes.
13981
13982         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
13983
13984         * MIPS multiply pattern fixes:
13985         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
13986         Add union classes for HI, LO, or HILO plus general registers.
13987         (GENERATE_MADD): Deleted.
13988         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
13989         Add TARGET_MAD to condition.
13990         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
13991         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
13992         "*d" for accumulator, to give preference to LO initially but not
13993         during reload.
13994
13995 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
13996
13997         * configure.in (enable_c_mbchar): New configure option.
13998         (extra_cpp_objs): Always available now.
13999
14000         * cexp.y (mbchar.h): #include it.
14001         (yylex): Handle Multibyte characters in character literals.
14002
14003         * cccp.c (mbchar.h): #include it.
14004         (main): Set character set based on LANG environment variable.
14005         (rescan): Handle multibyte characters in comments.
14006         (skip_if_group): See above.
14007         (validate_else): See above.
14008         (skip_to_end_of_comment): See above.
14009         (macarg1): See above.
14010         (discard_comments): See above.
14011         (rescan): Handle multibyte characters in string and character literals.
14012         (collect_expansion): See above.
14013         (skip_quoted_string): See above.
14014         (macroexpand): See above.
14015         (macarg1): See above.
14016         (discard_comments): See above.
14017         (change_newlines): See above.
14018
14019         * c-lex.c (mbchar.h): #include it.
14020         (GET_ENVIRONMENT): New macro.
14021         (init_lex): Set character set based on LANG environment variable.
14022         (yylex): Handle multibyte characters in character literals.
14023         (yylex): Handle multibyte characters in string literals.
14024
14025         * Makefile.in (mbchar.o): New target.
14026         (cccp$(exeext)): @extra_cpp_objs@ is always available.
14027         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
14028
14029         * mbchar.[ch]: New files for multibyte character handling.
14030
14031 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
14032
14033         * jump.c (jump_optimize): When simplifying noop moves and
14034         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
14035         the PUSHes to rewrite in second loop as we did in the first.
14036
14037 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14038
14039         * cplus-dem.c (demangle_nested_args): Make function definition
14040         static to match the prototype.
14041
14042 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
14043
14044         * alloca.c: Respect USE_C_ALLOCA.
14045         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
14046         * gengenrtl.c (xmalloc): Likewise.
14047
14048 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
14049
14050         * loop.h (struct induction): Add no_const_addval.
14051         * loop.c (the_movables, reg_address_cost): New variables.
14052         (init_loop): Init reg_address_cost.
14053         (loop_optimize): Call end_alias_analysis.
14054         (scan_loop): Init the_movables.
14055         (record_giv): Init induction->no_const_addval.
14056         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
14057         [REG]: Rearrange loop search test to catch more cases.
14058         (general_induction_var): Return success not benefit; take an extra
14059         argument for that.  Change all callers.
14060         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
14061         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
14062         [default]: Search the_movables for additional combinations.
14063         (sge_plus_constant, sge_plus): New functions.
14064         (express_from_1): New function.
14065         (express_from): Always define.  Rewrite using express_from_1.
14066         (combine_givs_p): Handle more cases.  Ignore address cost.
14067         (cmp_combine_givs_stats): New function.
14068         (combine_givs_used_once, combine_givs_benefit_from): New functions.
14069         (combine_givs): Rewrite to do best-fit combination.
14070
14071         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
14072         (fold): Do a complete (A*C)+(B*C) association check.
14073
14074 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
14075
14076         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
14077
14078 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
14079
14080         * mn10300.c (MODES_TIEABLE_P): Fix typo.
14081
14082 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
14083
14084         * tree.c (valid_machine_attribute): Only create a new type variant if
14085         there is a decl to use it.
14086
14087 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
14088
14089         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
14090         a suffix.
14091
14092 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
14093
14094         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
14095         be deleted" 
14096
14097 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
14098
14099         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
14100         Simplify tests for clearing an address register.
14101         (expand_prologue): Corresponding changes.
14102
14103         * mn10300.md (movXX patterns): Make sure the destination is an
14104         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
14105         (logical patterns): Split into expanders + patterns
14106         (zero and sign extension patterns): Similarly.
14107         (shift patterns): Similarly.
14108
14109 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
14110
14111         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
14112         for the sequence, recording base values.
14113
14114 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
14115
14116         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
14117
14118 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
14119
14120         * gcc.c: Remove ANSI-C ism from --help code.
14121
14122         * toplev.c: Support --help with USE_CPPLIB.
14123
14124 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
14125
14126         * configure.in: Rework gas feature code to work with symlink based
14127         source trees.
14128
14129         * extend.texi: Clarify some issues related to local variables
14130         assigned to explicit registers.
14131
14132         * mn10300.md (mulsi): Turn into expander + pattern.
14133
14134         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
14135         alternative.
14136
14137 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
14138
14139         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
14140
14141 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
14142
14143         * version.c: Bump again to distinguish mainline tree from the
14144         egcs-1.1 branch.
14145
14146 See ChangeLog.0 for earlier changes.
14147
14148 Local Variables:
14149 add-log-time-format: current-time-string
14150 End: