OSDN Git Service

* i370.h (TARGET_SWITCHES): Add documentation.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 Thu Mar 18 22:28:53 1999  Jeffrey A Law  (law@cygnus.com)
2
3         * i370.h (TARGET_SWITCHES): Add documentation.
4         * fx80.h (TARGET_SWITCHES): Add documentation.
5         * elxsi.h (TARGET_SWITCHES): Add documentation.
6         * clipper.h (TARGET_SWITCHES): Add documentation.
7         * 1750a.h (TARGET_SWITCHES): Add documentation.
8         * pa.h (TARGET_SWITCHES): Add documentation.
9         (TARGET_OPTIONS): Likewise.
10         * mn10300.h (TARGET_SWITCHES): Add documentation.
11         * h8300.h (TARGET_SWITCHES): Add documentation.
12
13 Thu Mar 18 15:58:26 1999  Nick Clifton  <nickc@cygnus.com>
14
15         * loop.c (strength_reduce): Do not perform pseudo replacements
16         if the loop contains volatile memory references.
17
18 Thu Mar 18 19:09:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19
20         * reload.c (find_reloads_toplev): When processing X recursively,
21         don't alter it destructively except by filling in constants.
22
23 Thu Mar 18 10:14:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24
25         * cccp.c (default_include): Initialize structure memebers.
26         (pass_thru_directive): Change the type of 'keyword_length' to int.
27         (main): Cast `bindtextdomain' and `textdomain' to (void).
28
29         * collect2.c (main): Likewise.
30
31         * cppmain.c (main): Likewise.
32
33         * gcc.c (main): Likewise.
34
35         * gcov.c (main): Likewise.
36
37         * protoize.c (main): Likewise.
38
39         * toplev.c (main): Likewise.
40
41 1999-03-18  Gavin Romig-Koch  <gavin@cygnus.com>
42
43         * config/mips/mips.c (mips_explicit_type_size_string): Correct
44        its type.
45
46 Thu Mar 18 01:24:25 1999  Jeffrey A Law  (law@cygnus.com)
47
48         * configure.in: Use "exit 1", not "exit (1)".
49         * configure: Rebuilt.
50
51 Wed Mar 17 23:17:42 1999  Mark Kettenis  <kettenis@gnu.org>
52
53         * config/t-gnu (SYSTEM_HEADER_DIR): New variable.  Set to
54         `/include' in order to find the system's limits.h.
55
56 Wed Mar 17 23:00:18 1999  Robert Lipe <robertlipe@usa.net>
57
58         * fixinc/fixincl.c: Include auto-host.h instead of config.h
59         * fixinc/procopen.c: Likewise.
60         * fixinc/regex.c: Likewise.
61         * fixinc/server.c: Likewise.
62
63 Wed Mar 17 22:46:13 1999  Mark Elbrecht  <snowball3@usa.net.
64
65         * config/i386/go32.h: Delete.
66         * config/i386/djgpp.h: New. Renamed from go32.h.
67         Added -DDJGPP=2 to CPP_PREDEFINES.
68         * config/i386/go32-rtems.h: Delete.
69         * config/i386/djgpp-rtems.h: New. Renamed from go32-rtems.h.
70         Added -DDJGPP=2 to CPP_PREDEFINES.
71         * config/i386/xm-go32.h: Delete.
72         * config/i386/xm-djgpp.h: New. Renamed from xm-go32.h.
73         * config/i386/x-go32: Delete.
74         * config/i386/x-djgpp: New. Renamed from x-go32.
75         * config/i386/t-go32: Delete.
76         * config/i386/t-djgpp: New. Renamed from t-go32.
77         * configure.in(pc-msdosdjgpp): Set xm_file to i386/xm-djgpp.h.
78         Set tm_file to i386/djgpp.h. Set tmake_file to i386/t-djgpp.
79         Set xmake_file to i386/x-djgpp.
80         (*-go32-msdos, *-go32*): Remove entries.  Warn that GO32/DJGPP V1.X
81         is now unsupported and *-pc-msdosdjgpp for DJGPP V2.X should be
82         used instead.
83         * configure: Rebuilt.
84
85         * gcc.c (process_command): Dump link_command_spec too.
86
87 Wed Mar 17 20:38:08 1999  Jerry Quinn <jquinn@nortelnetworks.com>
88                           Jeff Law <law@cygnus.com>
89
90         * pa.md: Add real PA8000 scheduling information.
91
92         * pa.h (processor_type):  Add PROCESSOR_8000 symbol.
93         (ISSUE_RATE):  Revamp, including PA8000 support.
94         * pa.c (override_options):  Add 8000 as -mschedule= option.
95         Do not call strcmp if pa_cpu_string is null.
96         * pa.md (attr cpu):  Add 8000.
97         * invoke.texi: Add documentation for PA8000 scheduling.
98         
99 Wed Mar 17 18:20:24 1999  David S. Miller  <davem@redhat.com>
100
101         * config/sparc/sparc.h (TARGET_SWITCHES, TARGET_OPTIONS):
102         Add descriptions.
103         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
104         * config/sparc/splet.h (SUBTARGET_SWITCHES): Likewise.
105
106 Wed Mar 17 14:51:19 1999  Richard Henderson  <rth@cygnus.com>
107
108         * flow.c (compute_immediate_dominators): New function.
109         * basic-block.h (compute_immediate_dominators): Declare it.
110
111         * alpha.h (HARD_REGNO_MODE_OK): Allow only 4 and 8 byte unit modes
112         in FP regs.
113         (MODES_TIEABLE_P): Define asymmetricly wrt modes illegal in FP regs.
114
115 Wed Mar 17 14:41:41 1999  Nick Clifton  <nickc@cygnus.com>
116
117         * config/arm/aout.h (ASM_GENERATE_INTERNAL_LABEL): Fix compile
118         time warning.   
119         * config/arm/arm.md: Fix various compile time warnings.
120         * config/arm/arm.h: Fix various compile time warnings.  Add
121         function prototypes.
122         * config/arm/arm.c: Fix various compile time warnings.
123         (arm_override_options): Reorganise to seperate tuning from
124         targetting.
125         (bit_count): New function: Return a count of the number of bits
126         set in a word.
127
128 Wed Mar 17 21:29:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
129
130         * reload1.c (eliminate_regs): Don't keep REG_DEAD notes around for
131         things that were eliminated.
132
133 Wed Mar 17 12:16:26 1999  Richard Henderson  <rth@cygnus.com>
134
135         * function.c (fixup_var_refs_1): First try moving the expression
136         directly into a register.  Don't separate cc0 setter and user.
137
138 Wed Mar 17 11:20:29 1999  Dave Brolley  <brolley@cygnus.com>
139
140         * cppfiles.c (PIPE_BUF): #define PIPE_BUF if not defined already.
141
142 Wed Mar 17 09:25:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
143
144         * c-lex.c: Don't include setjmp.h.
145         (parse_float): New static function.
146         (pf_args): New struct.
147         (yylex): Use them in call to `do_float_handler'.
148
149 1999-03-16  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
150
151         * cexp.y (yyerror): Call verror to get a usefull error message.
152         * cexp.c: Rebuilt.
153
154         * .gdbinit: Move command to put breakpoint at abort to end of file
155         so that gdb does not bail out early.
156
157 Tue Mar 16 15:30:19 1999  Nick Clifton  <nickc@cygnus.com>
158
159         * rtl.h: Rename prototype for free_bb_memory to free_bb_mem. 
160
161 Tue Mar 16 23:40:09 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
162
163         * sh.md (movsi_i): Move t/r alternative after r/rI alternative.
164
165 Tue Mar 16 13:44:50 1999  Jim Wilson  <wilson@cygnus.com>
166
167         * mn10200/mn10200.md (addsi3, subsi3, ashlsi3, lshrsi3, ashrsi3):
168         Delete emit_library_call_value declaration.
169
170 1999-03-16 16:06 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
171
172         * cppfiles.c (read_and_prescan): Map backslash-newline to '\r'
173         (which cannot otherwise appear in the processed buffer) and
174         move it out of tokens that it appears in the middle of.
175         Improve performance.
176         (find_position): New function.
177
178         * cpplib.c: \r (one character) indicates backslash
179         newline, not \\\n (two characters).  It cannot appear in the
180         middle of a token.  Call CPP_BUMP_LINE (pfile) whenever
181         parsing moves past \n or \r.  Increment pfile->lineno whenever
182         a \n is placed into token_buffer.  Only one mark can exist at
183         a time, and CPP_BUMP_LINE must not be used while it is
184         active.  It is automatically cleared by cpp_pop_buffer and
185         parse_goto_mark.  \r is not in is_hor_space or is_space.
186
187         (NEWLINE_FIX, NEWLINE_FIX1, adjust_position,
188         update_position, count_newlines, parse_move_mark): Removed.
189         (parse_string, copy_comment): New functions.
190         (parse_name): Returns void.
191         (parse_set_mark, parse_clear_mark, parse_goto_mark): Take only
192         one argument, a cpp_reader *.  Change for new marking scheme.
193         (skip_comment): Handle CHILL line comments too.  Second
194         argument is now first character of comment marker; all callers
195         changed.  Issue error for unterminated block comment here.
196         (cpp_skip_hspace): Recognize CHILL comments.
197         (copy_rest_of_line): Likewise.  Call skip_comment and
198         parse_string directly, don't go through cpp_get_token.  Emit
199         "/**/" for block comments if -traditional (create_definition
200         needs this).
201         (do_define): Don't play with put_out_comments.
202         (cpp_push_buffer): Initialize ->mark to -1.
203         (cpp_buf_line_and_col): Just read out the values in the buffer
204         structure.
205         (output_line_command): Use cpp_buf_line_and_col.  Fix
206         formatting.  Remove stale code.
207         (cpp_get_token): Break out string parsing code to
208         parse_string.  Use skip_comment for CHILL comments too.  Use
209         copy_comment for put_out_comments instead of dinking with
210         marks.  Remove stale code.  Don't call output_line_command
211         unless it's necessary.
212
213         * cpplib.h (parse_marker): Removed.
214         (struct cpp_buffer): line_base is now a unsigned char *; add
215         `mark' [long], remove `marks' [struct parse_marker *].
216         (parse_set_mark, parse_clear_mark, parse_goto_mark): Update
217         prototypes.
218         (CPP_BUMP_LINE, CPP_BUMP_BUFFER_LINE): New macros.
219         * cppinit.c (is_hor_space, is_space): '\r' is not considered
220         whitespace.
221         * cppexp.c (cpp_parse_expression): Use cpp_skip_hspace, not
222         SKIP_WHITE_SPACE.
223         * cpphash.c (macarg): Disable line commands while expanding.
224
225 Tue Mar 16 11:30:19 1999  Gavin Romig-Koch  <gavin@cygnus.com>
226
227         * c-lex.c (yylex) : Remove warning for integer literals being
228         larger than the largest target int.  Add warning for integer
229         literal being larger than than its choosen type.
230
231 Tue Mar 16 10:53:17 1999  Gavin Romig-Koch  <gavin@cygnus.com>
232
233         * invoke.texi: Add -mlong32 documentation.
234         * config/mips/mips.h (mips_explicit_type_size_string): New.
235         (TARGET_SWITCHES): Add 'long32'.
236         (TARGET_OPTIONS): Add 'explicit-type-size'.
237         (CC1_SPECS): Set -mexplicit-type-size.
238         (LONG_MAX_SPEC): Change a use of 'no-long64' to 'long32'.
239         * config/mips/abi64.h (LONG_MAX_SPEC): Same.  Add 'mabi=32'.
240         * config/mips/mips.c (mips_explicit_type_size_string): New.
241         (override_options): Use it.
242         * config/mips/osfrose.h (CC1_SPECS): Set -mexplicit-type-size.
243
244         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): 
245         Pointer size now depends on both size longs and size of GP
246         registers.
247
248 Tue Mar 16 10:22:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
249
250         * config/mips/iris.h (CTORS_SECTION_ASM_OP,DTORS_SECTION_ASM_OP,
251         dtors_section): Use Pmode == DImode rather than TARGET_LONG64.
252         * config/mips/mips.c (override_options): Allow -mlong64 and
253         -mint64 with -mips2 or less.
254         * config/mips/mips.h (MASK_LONG64): Fix comment.
255         (POINTER_SIZE): Use Pmode == DImode rather than TARGET_LONG64.
256         (Pmode): Make Pmode the smaller of longs or gp registers.
257         * invoke.texi: Note the new size for pointers.
258
259 Mon Mar 15 22:45:25 1999  David Edelsohn  <edelsohn@gnu.org>
260
261         * rs6000.h (ASM_OUTPUT_{DOUBLE,FLOAT}): Always generate IEEE 754
262         bit-pattern directly.
263         (ASM_OUTPUT_REG_{PUSH,POP}): Delete.
264         * rs6000.c (first_reg_to_save): If profiling and context needed,
265         allocate a reg to save static chain for all ABIs.  For AIX
266         profiling, calculate parameter registers to save based on need.
267         (output_function_profiler): Save and restore static chain around
268         profile call for all ABIs. 
269
270 1999-03-15 21:39 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
271
272         * cppinit.c: Instead of one pending list, keep separate lists
273         for each category of pending option: -D/-U, -A, -include,
274         -imacros.  Move the four partial include-path lists into the
275         pending block.  Use head and tail pointers so we don't ever
276         have to reverse the lists.
277
278         (cpp_start_read): Break out blocks of code to their own
279         functions: install_predefs and initialize_dependency_output.
280         Use path_include for C_INCLUDE_PATH and friends as well as
281         CPATH.  Remove include_defaults gunk.  Warn about the
282         combination of -lang-chill and -trigraphs.  Optimize string
283         bashing.  Walk each pending list once, deallocating as we go.
284
285         (append_include_chain): Brought over from cppfiles.c.  Mark
286         dirs as system include dirs if and only if appending to
287         system include path. If opts->verbose, print a notice when a
288         dir is dropped from the include path because it doesn't
289         exist.  Fix memory leak: this function is not supposed to copy
290         its DIR argument.
291
292         (nreverse_pending, push_pending): Removed.
293         (APPEND): New macro for adding to pending lists.
294         (path_include): Can now add to any partial include path.
295         (base_name): Bring over from cccp.c.
296         (cpp_options_init): Allocate the pending block.
297         (cpp_handle_option): Add --version.  Exit after --help.  Fix
298         formatting.  Order -ifoo options by frequency of usage.
299         (install_predefs): New function, simplified version of code
300         that was in cpp_start_read.
301         (initialize_dependency_output): Likewise.  Understand OBJECT_SUFFIX.
302
303         * cppfiles.c (simplify_pathname): Export.
304         (merge_include_chains):  Don't nreverse the lists.  If
305         opts->verbose, print a notice when a duplicate dir is detected
306         and dropped from the include path.
307         (finclude): Fix excessive cleverness in setting
308         fp->system_header_p.
309         (actual_directory): Set x->sysp from
310         CPP_BUFFER (pfile)->system_header_p so that one system header
311         may include another with "".
312         (deps_output): Fix double adjustment of deps_size which would
313         cause all dependencies after the first two lines to be lost.
314
315         * cpplib.c (cpp_unassert): New function.
316         * cpplib.h: Lay out struct cpp_pending here.  Adjust
317         prototypes.  Add include_prefix_len to struct cpp_options.
318
319 Mon Mar 15 16:01:52 1999  Jim Wilson  <wilson@cygnus.com>
320
321         * config/misp/mips.h (REGISTER_MOVE_COST): Make the cost of moving
322         from HI/LO/HILO/MD into general registers the same as for one
323         of moving general registers to HI/LO/HILO/MD.
324
325 Mon Mar 15 12:39:38 1999  Nick Clifton  <nickc@cygnus.com>
326
327         * config/m32r/m32r.c (init_idents): New function.  Initialise
328         static tree nodes for m32r specific attribute identifiers.  Remove
329         leading and trailing double underscores from the attribute names.
330         (m32r_valid_machine_decl_attribute): Call init_idents.
331         (m32r_encode_section_info): Call init_idents.
332
333 Mon Mar 15 10:20:20 1999  Mark Mitchell  <mark@markmitchell.com>
334
335         * reload.c (find_reloads): Add a REG_LABEL note if we substitute a
336         LABEL_REF for something else.
337
338 Mon Mar 15 08:24:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
339
340         * fold-const.c (exact_real_inverse): Move variable `float_error'
341         into the scope where it is used.
342         (const_binop_1): New static function.
343         (cb_args): New struct.
344         (const_binop): Use them in call to `do_float_handler'.
345         (fold_convert_1): New static function.
346         (fc_args): New struct.
347         (fold_convert): Use them in call to `do_float_handler'.
348
349 Mon Mar 15 22:50:18 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
350
351         * rtlanal.c (auto_inc_p): New function.
352         * rtl.h (auto_inc_p): Prototype it.
353         * reload1.c (add_auto_inc_notes): New function.
354         (reload): Strip REG_INC notes and call add_auto_inc_notes
355         for each insn to restore them correctly.
356
357 1999-03-15  Manfred Hollstein  <manfred@s-direktnet.de>
358
359         * fixinc/Makefile.in (procopen.o): List the actual
360         dependencies.
361
362 Sun Mar 14 16:22:10 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
363
364         * cse.c (check_fold_consts): New static function.
365         (cfc_args): New struct.
366         (simplify_relational_operation): Use them in call to
367         `do_float_handler'.
368         
369         * toplev.c (do_float_handler): New function to wrap calls to
370         setjmp/set_float_handler.
371
372         * toplev.h (do_float_handler): Add extern prototype.
373
374         * tree.c (build_real_from_int_cst_1): New static function.
375         (brfic_args): New struct.
376         (build_real_from_int_cst): Use them in call to
377         `do_float_handler'.
378
379 Sun Mar 14 01:15:06 PST 1999 Jeff Law  (law@cygnus.com)
380
381         * version.c: Bump for snapshot.
382
383 Sat Mar 13 17:37:18 1999  Richard Henderson  <rth@cygnus.com>
384
385         * haifa-sched.c (sched_analyze_1): Only clear reg_last_uses on a SET.
386
387 Sat Mar 13 11:36:16 1999  Richard Earnshaw (rearnsha@arm.com)
388
389         * arm.c (arm_split_constant): Don't try to force a constant to
390         memory after arm_reorg has run.
391         (after_arm_reorg): New static variable.
392         (arm_reorg): Set it.
393         (output_func_epilogue): Clear it.
394
395 Fri Mar 12 20:26:32 1999  David Edelsohn  <edelsohn@gnu.org>
396
397         * configure.in ({rs6000,powerpc}-ibm-aix*): Set float_format to none.
398         * configure: Rebuilt.
399
400 Fri Mar 12 20:45:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
401
402         * unroll.c (loop_iterations): Don't return a final value for EQ
403         comparison loops.
404
405 Fri Mar 12 12:35:01 1999  Jim Wilson  <wilson@cygnus.com>
406
407         * reload1.c (calculate_needs_all_insns): When ignore equivalence
408         setting insn, clear need_elim, need_reload, and need_operand_change.
409
410 Fri Mar 12 07:54:43 1999  Bruce Korb <korb@datadesign.com>
411
412         * fixinc/fixinc.*: Some changes from the fixincl-branch
413         were not applied (??!!).  Corrected.
414
415         * fixinc/Makefile.in: same thing.
416
417 Fri Mar 12 00:51:43 1999  Jeffrey A Law  (law@cygnus.com)
418
419         * expr.c (expand_expr): Allow a CALL_EXPR with a mode wider than
420         MAX_INTEGER_COMPUTATION_MODE.
421
422 Thu Mar 11 14:00:58 1999  Richard Henderson  <rth@cygnus.com>
423
424         * alpha.h (HARD_REGNO_MODE_OK): Disallow QI/HImode in fp regs.
425         (MODES_TIEABLE_P): Update.
426
427         * alpha.md (ev5_e0): Conflict loads and stores.
428
429 Thu Mar 11 13:55:52 1999  Richard Henderson  <rth@cygnus.com>
430
431         * machmode.h (smallest_mode_for_size): Prototype.
432         * stor-layout.c (smallest_mode_for_size): Remove static.
433
434 Thu Mar 11 21:25:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
435
436         * loop.c (strength_reduce): Don't do biv increment -> DEST_REG giv
437         conversion if we don't know the lifetime.
438
439 Thu Mar 11 20:37:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
440
441         * reload.1c (delete_address_reloads_1):  Check for reloads of
442         CURRENT_INSN even if it sets DST.
443
444 Thu Mar 11 10:29:50 1999  Jason Merrill  <jason@yorick.cygnus.com>
445
446         * dwarf2out.c (add_AT_lbl_offset): Rename from add_AT_section_offset.
447         (print_die, size_of_die, value_format, output_die): Adjust.
448
449 Thu Mar 11 10:27:42 1999  Robert Lipe  <robertlipe@usa.net>
450
451         * dwarf2out.c (TEXT_SECTION_LAABEL, DEBUG_LINE_SECTION_LABEL,
452         DEBUG_INFO_SECTION_LABEL, ABBREV_SECTION_LABEL, 
453         text_section_laabel, debug_line_section_label,
454         debug_info_section_label, abbrev_section_label): New.
455         (output_compilation_unit_header):  Emit label associated
456         with section instead of section name itself.
457         (out_pubnames, output_aranges, output_line_info, 
458         dwarf2out_finish): Likewise.
459         (dwarf2out_init): Build internal label names for sections
460         from static labels.
461
462 Thu Mar 11 17:28:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
463
464         * sh.md (mulsi3): End mul.l sequence with a no-op move.
465
466 Thu Mar 11 08:52:02 1999  Bruce Korb <korb@datadesign.com>
467
468         * Makefile.in: activated fixinc/mkfixinc.sh
469         * configure.in: activated fixinc/mkfixinc.sh
470
471 Thu Mar 11 01:38:02 1999  Mumit Khan  <khan@xraylith.wisc.edu>
472
473         * cppfiles.c (INO_T_EQ): Handle UWIN.
474
475         * c-common.c (decl_attributes): Flag unrecognized attribute
476         functions as warnings instead of as errors.
477
478         Support for i386-pc-uwin.
479         * i386/uwin.h: New file.
480         * i386/xm-uwin.h: New file.
481         * i386/t-uwin: New file.
482         * i386/uwin.asm: New file.
483         * configure.in (i[3456]86-*-uwin*): Define.
484         Add Workaround for vfork bug when hosted on uwin.
485         * configure: Regenerate.
486
487         * cccp.c (INO_T_EQ): Undefine. UWIN has inodes.
488         (absolute_filename): UWIN uses POSIX pathnames only.
489         * libgcc2.c (getpagesize): Do not define for UWIN.
490         (mprotect): Likewise.
491         * protoize.c (dirent.h): Conditionally include.
492         (fputc): Prototype only if it's not a macro.
493
494 Wed Mar 10 02:49:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
495
496         * configure.in: Remove init_priority stuff.
497
498 1999-03-11  Colin Smith <colin@wrs.com>
499
500         * sdbout.c (plain_type_1): Make boolean types work better with sdb.
501
502 Thu Mar 11 00:20:52 1999  Alexandre Oliva <oliva@dcc.unicamp.br>
503
504         * gcc.texi: Update bug reporting instructions to match
505         current ezmlm list reality.
506
507 Wed Mar 10 23:11:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
508
509         * gcc.c (print_file_name, print_prog_name, spec_machine,
510         read_specs, set_spec, lookup_compiler, build_search_list,
511         putenv_from_prefixes, find_a_file, record_temp_file,
512         delete_if_ordinary, handle_braces, do_spec, do_spec_1, find_file,
513         is_directory, validate_switches, used_arg, default_arg,
514         pfatal_with_name, perror_with_name, pfatal_pexecute, fatal, error,
515         notice, add_preprocessor_option, add_assembler_option,
516         add_linker_option, process_command, execute,
517         unused_prefix_warnings, clear_args, fatal_error,
518         lang_specific_driver, user_specs, compiler, link_command_spec,
519         option_map, translate_options, make_temp_file, temp_name,
520         programname, path_prefix, machine_suffix, just_machine_suffix,
521         gcc_exec_prefix, standard_exec_prefix, standard_exec_prefix_1,
522         md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1,
523         standard_startfile_prefix, standard_startfile_prefix_1,
524         standard_startfile_prefix_2, tooldir_base_prefix, tooldir_prefix,
525         multilib_dir, temp_filename, temp_file, command, switchstr,
526         infile, outfiles, input_filename, input_basename, input_suffix,
527         check_live_switch, main): Qualify a char* with the `const' keyword.
528
529 Wed Mar 10 20:28:29 1999  Jeffrey A Law  (law@cygnus.com)
530
531         * lcm.c: New file.
532         * Makefile.in (OBJS): Add lcm.o
533         (lcm.o): Add dependencies.
534
535         * gcse.c (compute_pre_local_properties): Delete.
536         (compute_pre_data): Use compute_local_properties instead of
537         compute_pre_local_properties.
538
539         * gcse.c: More comments, whitespace and similar fixes.
540         (dump_cuid_table, maybe_set_rd_gen, dump_cprop_data): Delete.
541         (dump_pre_data, compute_cprop_local_properties): Likewise.
542         (one_classic_gcse_pass): Lose unused argument.  All callers changed.
543         (compute_hash_table, compute_expr_hash_table): Likewise.
544         (compute_set_hash_table, one_pre_gcse_pass, mark_call): Likewise.
545         (cprop_insn, cprop, one_cprop_pass): Add new argument ALTER_JUMPS.
546         All callers changed.  Only alter jumps if ALTER_JUMPS is nonzero.
547         Lose unused argument.
548         (gcse_main): Always run a cprop pass after finishing global cse.
549         (compute_local_properties): New function.
550         (hash_scan_pat, hash_scan_insn): No longer call maybe_set_rd_gen.
551         (compute_cprop_data): Use compute_local_properties.
552
553         * gcse.c: Update various comments.
554         (current_function_calls_longjmp): Delete declaration.
555
556         * gcse.c (run_jump_opt_after_gcse): New variable.
557         (gcse_main): Returns an integer.
558         (hash_scan_set): Record initializations from CONST_DOUBLEs too.
559         (try_replace_reg): Update some comments.
560         (cprop_insn): Allow propagation into some JUMP_INSNs too.
561         * rtl.h (gcse_main): Update prototype.
562         * toplev.c (rest_of_compilation): If gcse_main returns nonzero,
563         then run a jump optimization pass.
564         * jump.c (delete_barrier_successors): Delete nop jumps too.
565
566 Wed Mar 10 19:04:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
567
568         * sh.c (fp_arith_reg_operand): Actually test if reg is suitable
569         for FP arithmetic.  Changed caller.
570         * sh.md (subsf3, subsf_i): Use fp_arith_reg_operand.
571
572 Wed Mar 10 18:56:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
573
574         * reload1.c (choose_reload_regs): When inheriting from the frame
575         pointer, don't clobber it.
576
577 Wed Mar 10 08:01:52 1999  Bruce Korb <korb@datadesign.com>
578
579         * fixinc/fixinc.*: Resync-ed with the files in this
580         directory.
581
582         * fixinc/mkfixinc.sh: the machine case elements were
583         out-of-order.  (the ix86-*-linux-gnu* entry needed to
584         be earlier).
585
586 Wed Mar 10 00:01:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
587
588         * reload1.c (reload_combine_note_store): Fix calculation of number
589         of affected registers.
590
591 Tue Mar  9 15:48:15 1999  Richard Henderson  <rth@cygnus.com>
592
593         * flow.c (tidy_fallthru_edge): Be more careful finding the last
594         BARRIER of a list.  Delete the cc0 setter as well as a cond jump.
595
596 Tue Mar  9 15:26:02 1999  Hans-Peter Nilsson  <hp@bitrange.com>
597
598         * i386.md (ashlsi3 splitter): Fix typo in last change.
599
600 Tue Mar  9 11:35:20 1999  Richard Henderson  <rth@cygnus.com>
601
602         * reg-stack.c (stack_reg_life_analysis): Use returnjump_p
603         instead of an explicit test for RETURN.
604
605 Tue Mar  9 09:33:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
606
607         * Makefile.in (toplev.o): Depend on $(BASIC_BLOCK_H).
608
609         * toplev.c: Include basic-block.h.
610
611 Tue Mar  9 02:08:17 1999  Jeffrey A Law  (law@cygnus.com)
612
613         * calls.c (load_register_parameters): New function.
614         (expand_call): Use it.
615
616         * calls.c (expand_call): Slightly reorganize code.
617
618         * calls.c (compute_argument_addresses): New function.
619         (rtx_for_function_call): New function.
620         (expand_call): Use them.
621
622         * i386.md (zero_extendhisi2): Split into an expander and anonymous
623         pattern.  Add new anonymous pattern for use when optimizing for
624         size or for the PPro.
625         (zero_extendqihi2, zero_extendqisi2): Likewise.
626
627 Mon Mar  8 23:43:47 1999  Richard Henderson  <rth@cygnus.com>
628
629         * haifa-sched.c (sched_analyze_1): Fix last change -- add clobber
630         dependancies to sets in the non-hard-reg case too.
631
632 Mon Mar  8 18:55:21 1999  Marc Espie <espie@cvs.openbsd.org>
633
634         * config/openbsd.h (HANDLE_SYSV_PRAGMA): Define.
635
636 Mon Mar  8 16:04:44 1999  Jim Wilson  <wilson@cygnus.com>
637
638         * local-alloc.c (combine_regs): Don't combine if we have a hard reg
639         for which CLASS_LIKELY_SPILLED_P is true.
640
641         * unroll.c (loop_iterations): Only call loop_find_equiv_value if we
642         have a REG or SUBREG.
643
644 Mon Mar  8 15:27:42 1999  Jeffrey A Law  (law@cygnus.com)
645
646         * i386.md (ashlsi3): Revise comments.  Provide new anonymous
647         pattern for Pentium and PPro/PII.  Reverse constraints in 
648         generic ashlsi3 anonymous pattern.
649
650         * calls.c (initialize_argument_info): Accept a pointer to 
651         CUMULATIVE_ARGS.
652         (expand_call): Pass the address of CUMULATIVE_ARGS.
653
654         * rs6000/xm-sysv4.h (HOST_BITS_PER_LONGLONG): Remove #if 0.
655
656         * mn10300.h (CASE_DROPS_THROUGH): Delete.
657         * mn10200.h (CASE_DROPS_THROUGH): Delete.
658         * h8300.h (CASE_DROPS_THROUGH): Delete.
659
660         * flow.c (merge_blocks_nomove): For HAVE_cc0 targets, make sure
661         to also delete the cc0 setter when deleting a conditional branch
662         to the next block.
663
664 Mon Mar  8 18:47:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
665
666         * regmove.c (copy_src_to_dest): New argument max_old_uid.
667
668 Mon Mar  8 08:23:00 1999  Bruce Korb <korb@datadesign.com>
669
670         * ChangeLog: merged entries from fixincl-branch
671
672 Sun Mar  7 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
673
674         * haifa-sched.c (ENCODE_BLOCKAGE): Don't shift unit too far.
675         (print_exp): Special case addition of a constant.
676         (print_value) [CONST_INT]: Use HOST_WIDE_INT_PRINT_HEX.
677
678 Sun Mar  7 11:21:02 1999  Richard Henderson  <rth@cygnus.com>
679
680         * haifa-sched.c (reg_last_clobbers): New.
681         (reg_pending_clobbers, bb_reg_last_clobbers): New.
682         (compute_block_backward_dependences): Allocate memory for them.
683         (schedule_region): Likewise.
684         (sched_analyze_1): Clobbers don't interfere with one another.
685         They do interfere with sets ...
686         (sched_analyze_2): ... and uses.
687         (sched_analyze): Likewise.
688         (sched_analyze_insn): Update reg_last_clobbers appropriately.
689
690 Sun Mar  7 08:30:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
691
692         * gmon-sol2.c: Include config.h and system.h.  Don't redundantly
693         include system header files.
694         (sccsid): Remove.
695         (moncontrol, monstartup, _mcleanup, internal_mcount): Prototype.
696         (_mcleanup): Add the `const' keyword to a char*.
697         (internal_mcount): Declare `etext' as a char[] not a function.
698         Cast `etext' to char* when calling `monstartup'.
699
700         * sparc.c (frame_base_name, save_regs, restore_regs,
701         build_big_number, sparc_cmodel_string, sparc_align_loops_string,
702         sparc_align_jumps_string, sparc_align_funcs_string, code_model,
703         cpu_default, cpu_table, output_function_prologue,
704         output_function_epilogue, output_return,
705         sparc_flat_output_function_prologue, ultra_code_names,
706         sparc_flat_output_function_epilogue): Constify a char*.
707         (hypersparc_adjust_cost): Add a default case in a switch.
708
709         * sparc.h (sparc_cmodel_string, OVERRIDE_OPTIONS,
710         sparc_cpu_select, sparc_align_loops_string,
711         sparc_align_jumps_string, sparc_align_funcs_string,
712         output_return): Constify a char*.
713
714         * sparc.md (movdi): Change the comparison of HOST_BITS_PER_WIDE_INT
715         so that we check "== 32", instead of "!= 64".  Cast a value to
716         HOST_WIDE_INT when comparing against one.  Hide the declaration
717         for variable `chain'.
718
719 Sun Mar  7 08:05:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
720
721         * system.h (const, inline): Move the stage2 handling of these
722         keywords-as-macros from here...
723
724         * gansidecl.h (const, inline): ...to here.
725
726 Sun Mar  7 02:44:15 1999  Richard Henderson  <rth@cygnus.com>
727
728         * recog.c (push_operand, pop_operand): VOIDmode needn't match modes.
729
730 Sun Mar  7 01:58:47 1999  Richard Henderson  <rth@cygnus.com>
731
732         * cse.c (canon_hash): Never reject hard regs in CCmode.
733
734 Sun Mar 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
735
736         * version.c: Bump for snapshot.
737
738 Sat Mar  6 17:18:44 1999  Richard Earnshaw  (rearnsha@arm.com)
739                           Richard Henderson  <rth@cygnus.com>
740
741         * flow.c (make_edges): Handle casesi that jump to default branch.
742         If CASE_DROPS_THROUGH, force fallthru to block after casesi.
743
744 Sat Mar  6 07:49:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
745
746         * c-aux-info.c (data_type, affix_data_type, gen_decl, 
747         gen_formal_list_for_type, gen_formal_list_for_func_def, gen_type):
748         Qualify a char* with the `const' keyword.
749
750         * c-common.c (declare_hidden_char_array, add_attribute, if_elt,
751         declare_function_name, decl_attributes, format_char_info,
752         check_format_info, binary_op_error): Likewise.
753         
754         * cexp.y (yyerror, error, pedwarn, warning, token): Likewise.
755
756         * gcse.c (dump_hash_table): Likewise.
757
758         * integrate.c (function_cannot_inline_p): Likewise
759
760         * optabs.c: Include insn-config.h earlier.
761         (init_libfuncs, init_integral_libfuncs, init_floating_libfuncs):
762         Qualify a char* with the `const' keyword.
763         
764         * real.c (asctoe24, asctoe53, asctoe64, asctoe113, asctoe,
765         asctoeg, mtherr, ereal_atof): Likewise.
766
767         * real.h (ereal_atof): Likewise.
768
769         * sbitmap.c (dump_sbitmap_vector): Likewise.
770
771         * sbitmap.h (dump_sbitmap_vector): Likewise.
772
773         * stmt.c (nesting, n_occurrences, expand_start_case): Likewise.
774
775         * toplev.c (rest_of_compilation): Likewise.
776
777         * tree.h (function_cannot_inline_p, expand_start_case): Likewise.
778         
779 Fri Mar  5 23:16:42 1999  David Edelsohn  <edelsohn@gnu.org>
780
781         * rs6000.h (ASM_OUTPUT_REG_{PUSH,POP}): Add 64-bit support and do
782         not overwrite AIX link register save area.
783
784 Fri Mar  5 23:08:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
785
786         * reload.c (find_reloads_subreg_address): Actually create the USE
787         for the register, not the new memory location.
788
789 Fri Mar  5 21:41:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
790
791         * reload1.c (emit_reload_insns): If pseudo that can't be replaced
792         with its equivalent constant, fall back to reload_in.
793
794 Fri Mar  5 13:20:39 1999  Richard Henderson  <rth@cygnus.com>
795
796         * Makefile.in: Delete .flow2 debugging files.
797
798 Fri Mar  5 11:36:11 1999  Nick Clifton  <nickc@cygnus.com>
799
800         * config/arm/arm.c (arm_override_options): Change default target
801         cpu selection so that enabling TARGET_APCS_32 does not override
802         default target CPU.
803
804 Fri Mar  5 19:26:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
805
806         * sh.h (SLOW_BYTE_ACCESS): Define to 1.
807         (BOOL_TYPE_SIZE): Define.
808
809 Fri Mar  5 02:14:54 1999  John Wehle  (john@feith.com)
810
811         * function.c (assign_stack_temp_for_type): Abort
812         if mode == Blkmode and align is less than
813         BIGGEST_ALIGNMENT / BITS_PER_UNIT.
814         (assign_stack_temp_for_type): Round the size parameter
815         passed to assign_stack_local instead of size itself.
816
817 Thu Mar  4 15:00:35 1999  Richard Henderson  <rth@cygnus.com>
818
819         * flow.c (delete_unreachable_blocks): Mark blocks as they
820         are put on to the worklist, not as they are taken off.
821
822 Thu Mar  4 00:05:44 1999  Jeffrey A Law  (law@cygnus.com)
823
824         * function.c (current_function_has_computed_jump): Remove duplicate
825         definition.
826
827 Wed Mar  3 19:09:11 1999  Jim Wilson  <wilson@cygnus.com>
828
829         * m68k/m68020-elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Undef.
830         (STARTFILE_SPEC, ENDFILE_SPEC): Define to empty string.
831
832         * sparc/elf.h (MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL,
833         MODDI3_LIBCALL, UMODDI3_LIBCALL, STDC_0_IN_SYSTEM_HEADERS): Undef.
834         (INIT_SUBTARGET_OPTABS): Define to empty.       
835
836 Wed Mar  3 00:00:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
837
838         * sh.c (force_into): New function.
839         (expand_block_move): Use it.
840
841 Tue Mar  2 10:39:43 1999  Nick Clifton  <nickc@cygnus.com>
842
843         * cccp.c (struct default_include): Add 'included' field.
844         (main): Set 'included' field when a default include directory
845         is added to the chain.  If -v is specified list all default
846         include directories which do not get appended to the chain.
847
848 Tue Mar  2 09:24:10 1999  Nick Clifton  <nickc@cygnus.com>
849
850         * configure.in (gxx_include_dir): Rename to
851         gcc_gxx_include_dir in order to prevent it being overridden by
852         a top level Makefile.
853         (gcc_tooldir): If $exec_prefix != $prefix then use the
854         difference between the two as the basis for gcc_tooldir.
855
856         * configure: Rebuild.
857
858         * Makefile.in: Rename gxx_include_dir to gcc_gxx_include_dir.
859
860 Tue Mar  2 16:45:31 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
861
862         * unroll.c (copy_loop_body): Don't make extra copies of
863         NOTE_INSN_LOOP_CONT notes.
864
865 Tue Mar  2 07:44:56 1999  Mark Mitchell  <mark@markmitchell.com>
866
867         * tree.c (save_tree_status): Don't treat functions with no context
868         as nested.
869
870 Tue Mar  2 09:37:05 1999  Robert Lipe  <robertlipe@usa.net>
871
872         * Makefile.in (MAKEINFO): Use makeinfo built from sibling
873         tree when available.
874
875 Tue Mar  2 10:12:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
876
877         * alpha.c (alpha_cpu_name, alpha_cpu_string, alpha_tp_string,
878         alpha_fprm_string, alpha_fptm_string, alpha_mlat_string,
879         current_function_file): Add the `const' keyword.
880         (normal_memory_operand): Mark parameter `mode' with
881         ATTRIBUTE_UNUSED.
882         (alpha_expand_unaligned_load): Add a default case to a switch.
883
884         * alpha.h (alpha_cpu_string, alpha_fprm_string, alpha_fptm_string,
885         alpha_tp_string, alpha_mlat_string): Add the `const' keyword.
886         (normal_memory_operand): Add prototype.
887         
888         * alpha.md: Cast an expression to `unsigned HOST_WIDE_INT' when
889         comparing against one.
890
891 Tue Mar  2 10:00:21 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
892
893         * mips.c (abort_with_insn): Make function static, add a prototype,
894         constify 2nd parameter and mark with ATTRIBUTE_NORETURN.
895         (current_function_file, mips_cpu_string, mips_isa_string,
896         mips_abi_string, mips_no_mips16_string, mips_entry_string,
897         mips_move_1word, mips_move_2words, output_block_move, load_store,
898         override_options, make_temp_file, mips16_fp_args): Qualify a char*
899         with the `const' keyword.
900
901         * mips.h (current_function_file, mips_cpu_string, mips_isa_string,
902         mips_abi_string, mips_entry_string, mips_no_mips16_string,
903         mips_move_1word, mips_move_2words, output_block_move): Likewise.
904         (abort_with_insn): Remove extern prototype.
905
906         * mips.md: Qualify a char* with the `const' keyword.
907         Remove many unused variables named `label'.
908
909 Tue Mar  2 01:27:52 1999  H.J. Lu  (hjl@gnu.org)
910
911         * Makefile.in (cpp_install_dir, INSTALL_CPP, UNINSTALL_CPP): New
912         variables.
913         (install-cpp, uninstall-cpp): New targets.
914         (install-normal): Depend on $(INSTALL_CPP).
915         (uninstall): Depend on $(UNINSTALL_CPP).
916         * configure.in (cpp_install_dir): New, substitute.
917         (tmake_file): Added t-install-cpp for --enable-cpp.
918         * configure: Rebuilt.
919         * cpp.sh: New cpp script.
920         * config/t-install-cpp: New target fragment.
921
922 Tue Mar  2 01:40:01 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
923                           Jeffrey A Law  (law@cygnus.com)
924
925         * cse.c (fold_rtx): Update comments for (const (minus (label) (label)))
926         case.
927         (cse_insn): Avoid creating a bogus REG_EQUAL note for
928         (const (minus (label) (label)))
929         (record_jump_cond): Fix mismatched paren in comment.
930
931 Tue Mar  2 01:07:12 1999  Dan Nicolaescu  <dann@godzilla.ics.uci.edu>
932
933         * final.c (end_final): There are 11 words in the "main header"
934         structure, not 10.
935
936 Tue Mar  2 00:09:18 1999  Marc Espie <espie@cvs.openbsd.org>
937
938         * extend.texi: Reference __extension__ in the index.
939
940 Mon Mar  1 19:09:32 1999  Jim Wilson  <wilson@cygnus.com>
941
942         * Makefile.in (CROSS_FLOAT_H): Delete.
943         (FLOAT_H): Use float_h_file.
944         (rest.cross, stmp-int-hdrs): Delete gfloat.h dependency.
945         (gfloat.h): Delete.
946         (stmp-int-hdrs): Use FLOAT_H instead of gfloat.h.
947         (mostlyclean): Delete gloat.h reference.
948         (install-cross-rest, install-float-h-cross, stmp-headers): Update
949         comments.
950         * configure.in (sparcv9-*-solaris2*): Set float_format to none.
951         (sparc-*-solaris2*): Set float_format to none for 2.5 and higher.
952         (float_h_file): Set from float_format.  Substitute into Makefile.in.
953         (float_format): No longer substitute into Makefile.in.  
954         * cross-make (FLOAT_H): Delete.
955         * config/mips/t-cross64 (FLOAT_H): Delete.
956         * configure: Rebuilt.
957         
958 Mon Mar  1 16:36:18 1999  Jeffrey A Law  (law@cygnus.com)
959
960         * mips.md (div_trap_normal, div_trap_mips16): Require the dependent
961         insn to be an INSN before looking at its pattern.
962
963 Mon Mar  1 15:03:51 1999  Jim Wilson  <wilson@cygnus.com>
964
965         * config/m68k/lb1sf68.asm (udivsi3): Change jmi to jcs.  Fix comments.
966         * config/m68k/m68k.h (LEGITIMATE_INDEX_REG_P): Reject SIGN_EXTEND of
967         HImode reg when TARGET_5200.
968
969 Mon Mar  1 21:44:30 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
970
971         From Toshiyasu Morita:
972         * sh.h (CACHE_LOG): SH2 has cache, too.
973
974 Mon Mar  1 14:23:36 1999  Catherine Moore  <clm@cygnus.com>
975  
976         * toplev.c (compile_file):  Disable -ffunction-sections and
977         debugging warning if the object format is elf.
978  
979 Mon Mar  1 11:46:25 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
980
981         * config/h8300/h8300.c (print_operand):  Use 16 bit addressing
982         when the data in 8-bit area and can not be addressed by 8-bit.
983
984 Sun Feb 28 16:40:00 1999  Richard Henderson  <rth@cygnus.com>
985
986         * flow.c (create_basic_block): Disregard integrated bb notes.
987
988 Sun Feb 28 15:57:06 1999  Richard Henderson  <rth@cygnus.com>
989
990         * sparc.md (blockage, nonlocal_goto_receiver): Set length to 0.
991
992 Sun Feb 28 14:47:53 1999  Arturo Montes  <mitosys@colomsat.com.co>
993
994         * config/i386/t-sco5gas (crti.o): New target.
995
996 Sun Feb 28 15:10:17 1999  David Edelsohn  <edelsohn@gnu.org>
997
998         * rs6000.md (elf_high, movsi_got, *movsi_got_internal,
999         *movsi_got_internal_mem, GOT splitter, movdf_hardfloat32,
1000         movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64,
1001         load_multiple, allocate_stack, call_indirect_aix32,
1002         call_indirect_aix64, call_value_indirect_aix32,
1003         call_value_indirect_aix64, call_indirect_nt,
1004         call_value_indirect_nt): Use gpc_reg_operand instead of
1005         register_operand. 
1006
1007 Sun Feb 28 15:10:17 1999  Michael Meissner  <meissner@cygnus.com>
1008
1009         * rs6000.md (one_cmplsi2, andsi3, iorsi3, xorsi3, *eqvsi3,
1010         *andcsi3, *iorcsi3, *nandsi3, *norsi3): Add alternatives to use CR
1011         other than cr0.
1012         * rs6000.c (and{,64}_operand): If the user did -ffixed-cr0, don't
1013         allow andi. or andis. which always set cr0.
1014
1015 Sun Feb 28 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1016
1017         * version.c: Bump for snapshot.
1018
1019 Sun Feb 28 02:00:38 1999  Jeffrey A Law  (law@cygnus.com)
1020
1021         * invoke.texi: Update information for PA scheduling.
1022
1023 Sat Feb 27 23:21:47 1999  Jerry Quinn <jquinn@nortelnetworks.com>
1024                           Mike Stump <mrs@wrs.com>
1025
1026         * pa.c (override_options): Change default to 7100LC
1027
1028         * pa.h (REG_ALLOC_ORDER): Change order to allocate left half of
1029         float regs before right half of float regs.
1030
1031 Sat Feb 27 22:48:38 1999  H.J. Lu  (hjl@gnu.org)
1032                           Jeffrey A Law  (law@cygnus.com)
1033
1034         * frame.h: Update some comments.
1035         * defaults.h (TARGET_ATTRIBUTE_WEAK): Define.
1036         * crtstuff.c (__register_frame_info, __deregister_frame_info): Declare
1037         using TARGET_WEAK_ATTRIBUTE.
1038         (__do_global_dtors_aux): Check if __deregister_frame_info is
1039         zero before calling it.
1040         (__do_global_dtors): Likewise.
1041         (frame_dummy): Check if __register_frame_info is zero before
1042         calling it.
1043         (__frame_dummy): Likewise.
1044
1045 Sat Feb 27 19:18:24 1999  Jeffrey A Law  (law@cygnus.com)
1046
1047         * SERVICE: Update from the FSF.
1048
1049 Sat Feb 27 14:31:22 1999  Arturo Montes  <mitosys@colomsat.com.co>
1050
1051         * config/i386/t-sco5 (crti.o): New target.
1052         * config/i386/sco5.h (STARTFILE_SPEC): Include crti.o when 
1053         linking -shared.
1054         * configure.in (i[34567]86-*-sco3.2v5*): Add crti.o.
1055
1056 Sat Feb 27 01:12:40 1999  Jeffrey A Law  (law@cygnus.com)
1057
1058         * md.texi (prologue,epilogue): Document named patterns.
1059
1060 Fri Feb 26 19:31:25 1999  Dave Love  <fx@gnu.org>
1061
1062         * md.texi, invoke.texi: Fix unterminated @xrefs.
1063
1064 Fri Feb 26 15:33:45 1999  Richard Henderson  <rth@cygnus.com>
1065
1066         * genattrtab.c (simplify_knowing): Fix uninitialized read
1067         in Feb 21 change.
1068
1069         * genextract.c (main): Clear recog_operands before extracting.
1070
1071 Fri Feb 26 02:24:57 1999  Jeffrey A Law  (law@cygnus.com)
1072
1073         * c-pragma.c (add_weak); Delete.  Moved into...
1074         * varasm.c (add_weak): New external function.
1075         (declare_weak): If HANDLE_PRAGMA_WEAK, then add the function to
1076         the list of weak functions.
1077         * c-pragma (add_weak): Declare.
1078
1079 Thu Feb 25 23:43:59 1999  Richard Henderson  <rth@cygnus.com>
1080
1081         Flow rewrite to use basic block structures and edge lists:
1082
1083         * basic-block.h (x_basic_block_head, x_basic_block_end): Kill.
1084         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
1085         (struct edge_def): New.
1086         (struct basic_block_def): New.
1087         (basic_block_info): New.
1088         (BLOCK_HEAD, BLOCK_END): Update.
1089         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): New.
1090         (uid_block_number): Kill.
1091         (basic_block_for_insn, BLOCK_FOR_INSN): New.
1092         (BLOCK_NUM): Update.
1093         * flow.c (XNMALLOC): Kill.
1094         (max_uid_for_flow): Kill.
1095         (uid_block_number): Kill.
1096         (uid_volatile): Turn into a bitmap.
1097         (SET_INSN_VOLATILE): New.
1098         (basic_block_info): New.
1099         (entry_exit_blocks): New.
1100         (x_basic_block_head, x_basic_block_end): Kill.
1101         (basic_block_computed_jump_target, basic_block_live_at_start): Kill.
1102         (flow_int_list_blocks, basic_block_succ, basic_block_pred): Kill.
1103         (basic_block_loop_depth): Kill.
1104         (basic_block_for_insn): New.
1105         (find_basic_blocks): Split out initial block counting into 
1106         count_basic_blocks.  Call functions split out of find_basic_blocks_1.
1107         (count_basic_blocks): New.
1108         (find_basic_blocks_1): Split out edge recognition, unreachable
1109         block deletion.
1110         (create_basic_block): New.
1111         (compute_bb_for_insn): New.
1112         (clear_edges): New.
1113         (free_bb_memory): Kill.
1114         (add_edge, add_edge_to_label): Kill.
1115         (mark_label_ref): Kill.
1116         (make_edges): Rewrite to use edge lists.
1117         (make_edge, make_label_edge): New.
1118         (mark_critical_edges): New.
1119         (split_edge, insert_insn_on_edge): New.
1120         (commit_one_edge_insertion, commit_edge_insertions): New.
1121         (delete_unreachable_blocks): Rewrite to use edge lists.  
1122         Split out EH region manipulation into delete_eh_regions.
1123         Call tidy_fallthru_edge and merge_blocks.
1124         (delete_eh_regions): New.
1125         (delete_note_p): New.
1126         (delete_insn_chain): New.
1127         (delete_block): Split out code into delete_insn_chain and
1128         tidy_fallthru_edge.  Update edge lists.
1129         (expunge_block): New.
1130         (flow_delete_insn): New?
1131         (can_delete_label_p): New?
1132         (merge_blocks_nomove, merge_blocks): New.
1133         (tidy_fallthru_edge): New.
1134         (calculate_loop_depth): New.
1135         (life_analysis): Allocate and free uid_volatile.
1136         (free_basic_block_vars): Update for new structures.
1137         (record_volatile_insns): Use SET_INSN_VOLATILE.
1138         (mark_regs_live_at_end): Tidy EXIT_IGNORE_STACK usage.
1139         (mark_used_regs): Likewise.
1140         (life_analysis_1): Use bb global_live_at_start, global_live_at_end, 
1141         local_set regsets.  Use bb->aux to store new_live_at_end.  Begin
1142         life propagation from EXIT_BLOCK rather than last block.  Clear
1143         regs_ever_live after mark_regs_live_at_end.
1144         (allocate_for_life_analysis): Update for new structures.
1145         (propagate_block): Split out loop depth calculation to
1146         calculate_loop_depth.
1147         (regno_uninitialized): Use bb->global_live_at_start.
1148         (regno_clobbered_at_setjmp): Likewise.
1149         (dump_bb_data): Likewise.
1150         (find_auto_inc): Use BLOCK_FOR_INSN instead of BLOCK_NUM.
1151         (dump_flow_info): Update for new structures.
1152         (dump_edge_info): New.
1153         (print_rtl_with_bb): Update for new structues.
1154         (compute_preds_succs): Do no work -- convert edge lists.
1155         (set_block_for_insn): From corpse of old set_block_num.
1156         (set_block_num): Call it.
1157
1158         * rtl.c (note_insn_name): Add NOTE_INSN_BASIC_BLOCK.
1159         * rtl.h (rtunion_def): Add bb entry.
1160         (NOTE_BASIC_BLOCK): New.
1161         (NOTE_INSN_BASIC_BLOCK): New.
1162
1163         * varray.h (varray_data_tag): Add bb entry.
1164         (VARRAY_BB_INIT, VARRAY_BB): New.
1165
1166         * emit-rtl.c (emit_label_before): New.
1167
1168         * except.c (expand_rethrow): Delete insns following the call to
1169         rethrow.  Put the REG_EH_RETHROW on the call.
1170
1171         * jump.c (returnjump_p, returnjump_p_1): New.
1172
1173         * expr.h (nonlocal_goto_handler_labels): New declaration.
1174         * function.c (nonlocal_goto_handler_labels): Define it.
1175         (push_function_context_to): Save it.
1176         (pop_function_context_from): Restore it.
1177         (init_function_start): Clear it.
1178         (nonlocal_label_rtx_list): Kill.
1179         * function.h (struct function): Add storage space for it.
1180         * stmt.c (expand_nl_handler_label): Return the new label.
1181         (expand_nl_goto_receivers): Collect a list of them in
1182         nonlocal_goto_handler_labels.
1183
1184         * Makefile.in (print-rtl.o): Depend on basic-block.h.
1185         (flow.o): Depend on insn-flags.h.
1186
1187         * function.c (thread_prologue_and_epilogue_insns): Do not
1188         half-heartedly update bb structures.
1189
1190         * toplev.c: Add flow2 dump as -dw.
1191         (rest_of_compilation): Finish .greg before flow2.
1192
1193         * graph.c (draw_edge): Handle class 3.
1194         (print_rtl_graph_with_bb): Make abnormal edges red class 2, 
1195         change non-fall-thru but adjacent to green class 3.  Update 
1196         to use new structures.
1197
1198         * print-rtl.c (print_rtx): Handle NOTE_INSN_BASIC_BLOCK.
1199
1200         * reg-stack.c (BLOCK_NUM): Convert to function.  Abort if
1201         block_number is -1.
1202         (reg_to_stack): Initialize block_num to -1.
1203
1204         * combine.c (set_nonzero_bits_and_sign_copies): Update reference
1205         to basic_block_live_at_start to bb->global_live_at_start.
1206         (try_combine): Likewise.
1207         (reg_dead_at_p): Likewise.
1208         * global.c (global_conflicts): Likewise.
1209         Handle stack regs on all abnormal edges, not just computed jumps.
1210         (mark_elimination): Update reference to basic_block_live_at_start.
1211         (build_insn_chain): Likewise.
1212         * haifa-sched.c (haifa_edge): Rename from edge for conflict.
1213         (is_cfg_nonregular): Look at nonlocal_goto_handler_labels instead
1214         of nonlocal_label_rtx_list.
1215         (check_live_1): Update reference to basic_block_live_at_start.
1216         (update_live_1): Likewise.
1217         (find_pre_sched_live): Likewise.
1218         (find_post_sched_live): Likewise.
1219         * local-alloc.c (update_equiv_regs): Likewise.
1220         (block_alloc): Likewise.
1221         * reload1.c (reload, reload_combine): Likewise.
1222         * regmove.c (mark_flags_life_zones): Likewise.
1223         * resource.c (mark_target_live_regs): Likewise.
1224         * sched.c (schedule_block): Likewise.
1225
1226         * regclass.c (regset_release_memory): Don't free
1227         basic_block_live_at_start.
1228
1229         * unroll.c (copy_loop_body): Don't duplicate NOTE_INSN_BASIC_BLOCK.
1230
1231 Thu Feb 25 21:32:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
1232
1233         * fixinc.wrap: Also handle struct queue in sys/stream.h.
1234         * fixinc.svr4: Likewise.
1235
1236         * dwarf2out.c (scope_die_for): Set scope_die to comp_unit_die
1237         rather than asserting it.
1238
1239 Thu Feb 25 23:33:06 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1240
1241         * cppexp.c (left_shift, right_shift, parse_charconst, COMPARE,
1242         cpp_parse_expr): Replace uses of long/HOST_BITS_PER_LONG with
1243         HOST_WIDEST_INT/HOST_BITS_PER_WIDEST_INT.
1244
1245
1246         * Makefile.in (cppmain.o, cpplib.o, cpphash.o, cppalloc.o,
1247         cpperror.o, cppexp.o, cppfiles.o, cppinit.o, fix-header.o,
1248         scan-decls.o): Don't depend on machmode.h.
1249         
1250         * cppexp.c: Don't define CHAR_BIT or HOST_BITS_PER_WIDE_INT anymore.
1251         Replace all instances of HOST_WIDE_INT with HOST_WIDEST_INT.
1252         
1253         * cppfiles.c: Likewise.
1254
1255         * cpplib.c: Likewise.
1256          
1257         * cpplib.h: Likewise.  Also don't include machmode.h anymore.
1258
1259 Thu Feb 25 18:46:26 1999  Richard Henderson  <rth@cygnus.com>
1260
1261         * gcc.c (default_compilers): Define __FAST_MATH__ when appropriate.
1262         * objc/lang-specs.h: Likewise.
1263
1264 Thu Feb 25 16:19:43 1999  Jeffrey A Law  (law@cygnus.com)
1265
1266         * pa.md (call patterns): Lose unused argument to output_call.
1267
1268         * print-rtl.c (print_rtl): Print /j and /c for the jump/call flags.
1269
1270 1999-02-25 17:14 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1271
1272         * cpphash.c (install): Rename to cpp_install, add cpp_reader*
1273         first argument.  All callers changed.
1274         (hashtab): Removed.
1275         (cpp_lookup, cpp_install): Change all refs to hashtab to
1276         pfile->hashtab.
1277         (cpp_hash_cleanup): Removed.
1278         * cpphash.h: Adjust prototypes.
1279         * cpplib.h (struct cpp_reader): Add hashtab pointer.
1280         * cppinit.c (cpp_reader_init): Also allocate space for the
1281         hashtab.
1282         (cpp_cleanup): Delete all macros and free the hashtab.
1283
1284 Thu Feb 25 21:52:54 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1285
1286         * sh.h (PASS_IN_REG_P):  For TARGET_HITACHI, don't pass structures
1287         in registers.
1288
1289         * expr.h (PRETEND_OUTGOING_VARARGS_NAMED): Provide default definition.
1290         * function.c (assign_parms): Honour PRETEND_OUTGOING_VARARGS_NAMED.
1291         * calls.c (expand_call): Likewise.
1292
1293         * sh.c (sh_expand_prologue): For TARGET_HITACHI, don't push varargs /
1294         stdarg arguments.
1295         * sh.h (CPP_SPEC): Add -D__HITACHI__ for -mhitachi.
1296         (FUNCTION_ARG):  For TARGET_HITACHI, don't pass unnamed
1297         arguments in registers.
1298         (PRETEND_OUTGOING_VARARGS_NAMED): Define.
1299         * va-sh.h (entire file): If __HITACHI__ is defined, use sh[123]
1300         flavour varargs.
1301
1302 Thu Feb 25 14:32:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1303
1304         * cse.c (dump_class): Revert last change and make the prototype
1305         extern.
1306
1307 Thu Feb 25 19:13:42 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1308
1309         * rtl.h (insn_first_p): Don't declare.
1310         * rtlanal.c (insn_first_p): Delete.
1311         * loop.c (loop_insn_first_p): Faster implementation.
1312
1313 Thu Feb 25 10:44:35 1999  Richard Earnshaw (rearnsha@arm.com)
1314
1315         * arm.h (TARGET_SWITCHES): Delete deprecated switches -m[236].
1316         (TARGET_3, TARGET_6): Delete.
1317         (ARM_FLAG_ARM[36]): Delete.
1318         (CPP_CPU_ARCH_SPEC): No need to handle -m[236] any more.
1319         (CC1_SPEC): Don't expand -m[236] into new equivalents.
1320         (CPP_APCS_PC_SPEC): No need to handle -m[236] any more.
1321         * arm.c (arm_override_options): Delete warnings about deprecated
1322         options -m[236].
1323
1324         * arm.c (arm_finalize_pic): Build the label into the special pic
1325         adjustment insn instead of issuing it separately.
1326         * arm.md (pic_add_dot_plus_eight): Rework to contain the label
1327         that is needed.
1328
1329         * arm.md (*zeroextractqi_compare0_scratch): Delete.
1330         (*ne_zeroextractsi): New pattern.
1331
1332 Thu Feb 25 18:40:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1333
1334         * stmt.c (expand_end_loop): Grok code emitted by
1335         expand_exit_loop_if_false.
1336
1337 Thu Feb 25 10:17:32 1999  Nick Clifton  <nickc@cygnus.com>
1338
1339         * config/arm/arm.c (return_in_memory): Float fields in unions
1340         force a return in memory.
1341         (load_multiple_sequence): Add comment explaining why two LDR
1342         instructions can be better than an LDMIA instruction.
1343
1344         * config/arm/arm.h (TARGET_SHORT_BY_BYTES): Add comment
1345         describing the real meaning of this option.
1346         (FIXED_REGISTERS): Default r10 to not-fixed.
1347         (CALL_USED_REGISTERS): Default r10 to not-call-used.
1348         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): If not defined, define
1349         as empty. 
1350         (CONDITIONAL_REGISTER_USAGE): Fix r10 if TARGET_APCS_STACK is
1351         true.  Invoke SUBTARGET_CONDITIONAL_REGISTER_USAGE after
1352         performing other checks.
1353
1354         * config/arm/arm.md (zero_extendhisi2): Undo previous change.
1355         (extendhisi2): Undo previous change.
1356         Also add comments describing why TARGET_SHORT_BY_BYTES can be
1357         ignored for armv4(t) architectures. 
1358
1359         * config/arm/riscix.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE):
1360         Define to fix r10.
1361
1362         * config/arm/riscix1-1.h
1363         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define to fix r10. 
1364
1365 Thu Feb 25 12:09:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1366
1367         * cse.c (dump_class): Make the function definition static to match
1368         the prototype.
1369
1370 Wed Feb 24 17:47:28 1999  Jim Wilson  <wilson@cygnus.com>
1371
1372         * dbxout.c (gstab.h): Use if CROSS_COMPILE.
1373
1374         * dwarf2out.c (add_location_or_const_value_attribute):  Add big
1375         endian correction for parms passed in regs but living on the stack.
1376
1377 Wed Feb 24 14:03:54 1999  Jeffrey A Law  (law@cygnus.com)
1378
1379         * calls.c (initialize_argument_information): New function extracted
1380         from expand_call.
1381         (expand_call): Use initialize_argument_information.  Remove variables
1382         which are no longer used due to cleanups.
1383
1384         * calls.c (compute_argument_block_size): New function, extracted from
1385         expand_calls.
1386         (expand_calls): Use compute_argument_block_size.  Delete
1387         original_args_size, use unadjusted_args_size instead.
1388
1389         * calls.c (precompute_arguments): New function, extracted from
1390         expand_call.
1391         (expand_call): Use precompute_arguments.
1392
1393         * calls.c (finalize_must_preallocate): New function, extracted from
1394         expand_call.
1395         (expand_call): Use finalize_must_preallocate.
1396
1397         * calls.c (store_one_arg): Mark "variable_size" as possibly unused.
1398
1399         * regclass.c (record_reg_classes, case 'p'): Set classes appropriately.
1400         An alternative always fails if it needs a pseudo and no suitable
1401         register class can be found.
1402
1403 Wed Feb 24 19:47:56 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1404
1405         * loop.h (loop_insn_first_p): Declare.
1406         * loop.c (loop_insn_first_p): No longer static.
1407         * unroll.c (iteration_info) Fix comparison to
1408         reg_iv_type->num_elements.
1409         Before accessing reg_biv_class, check index against
1410         max_reg_before_loop.
1411         Fix and enable code for giv iterators.
1412         (loop_iterations): Compare with reg_iv_type->num_elements instead
1413         of with max_reg_before_loop.
1414
1415 Wed Feb 24 19:17:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1416
1417         * unroll.c (unroll_loop): Avoid out-of-bounds index for local_regno.
1418
1419 Wed Feb 24 11:26:41 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
1420
1421         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Don't use
1422         PIC_OFFSET_TABLE_REGNUM for register allocation when -fPIC.
1423
1424 Tue Feb 23 16:24:19 CET 1999 Marc Lehmann <pcg@goof.com>
1425
1426         * config/i386/i386.md: fix typoe.
1427
1428 Mon Feb 22 19:36:33 1999  Andrew Cagney  <cagney@b1.cygnus.com>
1429
1430         * config/mips/mips.c (mips_debugger_offset): When TARGET_MIPS16 &&
1431         frame_pointer_needed adjust frame size.
1432         (function_prologue): Don't MIPS16 .mask GPOFFSET. Already adjusted
1433         in .frame pseudo-op.
1434         Frm Jim Wilson  <wilson@cygnus.com>:
1435         * mips.c (function_prologue): Adjust frame size in .frame pseudo-op
1436         when TARGET_MIPS16 && frame_pointer_needed.
1437
1438 1999-02-22  Nick Clifton  <nickc@cygnus.com>
1439
1440         * config/arm/arm.h: Add TARGET_CPU_strongarm1100.
1441         Add -mno-sched command line switch to disable scheduling of
1442         instructions into the function's prologue.
1443         (enum processor_type): Remove.
1444         (TARGET_OPTIONS): Add "fpe=" option to match documentation.
1445         (struct arm_cpu_select): Replace 'set_tune_p' and 'set_arch_p'
1446         fields with 'processors' field.
1447         (CONDITIONAL_REGISTER_USAGE): Allow r10 to be used if stack
1448         checking is not enabled.
1449         (RETURN_IN_MEMORY): Always call arm_return_in_memory.
1450         
1451         * config/arm/arm.c: (arm_cpu): Remove.
1452         (tune_flags): Remove.
1453         (arm_is_strong): New variable: true iff the target processor is a 
1454         StrongARM.
1455         (arm_is_6_or_7): New variable: true iff the target processor is an
1456         ARM6 or and ARM7.
1457         (arm_select): Fields reorganised.
1458         (struct processors): processor_type field removed.
1459         (all_procs): Remove.
1460         (all_cores): New array: Definitions of all known ARM cpu cores.
1461         (all_architectures): New array: Definitions of all known ARM
1462         architectures. 
1463         (streq): New macro.
1464         (FL_SCHED): New processor flag: processor required load
1465         scheduling.
1466         (FL_STRONG): New processor flag: processor is a StrongARM.
1467         (arm_override_options): Reorganised to make code clearer.
1468         (use_return_insn): Test for "not (TARGET_APCS and
1469         frame_pointer_needed)".
1470         (arm_return_in_memory): Improve handling of structures.
1471         
1472         * config/arm/arm.md: Remove "cpu" attribute.  Replace with
1473         "is_strongarm" and "is_arm_6_or_7" attributes.
1474         (zero_extendhisi2): Check for TARGET_SHORT_BY_BYTES before
1475         arm_arch4.
1476         (extendhisi2):  Check for TARGET_SHORT_BY_BYTES before arm_arch4. 
1477
1478         * invoke.texi (ARM Options): Document -mtune= and -mfp= options.
1479         
1480 1999-02-22  Philip Blundell  <philb@gnu.org>
1481
1482         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Replace default
1483         definition with one including cache synchronisation.
1484         (CLEAR_INSN_CACHE): Correct syscall number and enable definition.
1485         Move definition of inhibit_libc to...
1486         * config/arm/xm-linux.h: ... here.
1487
1488         * config/arm/t-linux: Disable multilib configurations since the
1489         only effect for most people is to cause builds to fail.
1490         
1491         * config/arm/elf.h (ASM_FILE_START): Add .file directive.
1492         (ASM_SPEC): Translate -mapcs-float to -mfloat for the assembler.
1493
1494         * config/arm/linux-elf.h (DEFAULT_VTABLE_THUNKS): Define.
1495         (HANDLE_SYSV_PRAGMA): Likewise.
1496         (LIB_SPEC): Copy definition from generic Linux files.
1497         (LIBGCC_SPEC): Include -lfloat if -msoft-float was given.
1498         (FP_DEFAULT): Set to SOFT3 on 32-bit targets.
1499         (DWARF2_DEBUGGING_INFO): Define.
1500         (PREFERRED_DEBUGGING_TYPE): Define as DBX_DEBUG.
1501
1502 Mon Feb 22 16:54:18 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
1503
1504         * loop.c (libcall_other_regs): Make extern.
1505         * rtl.h (find_last_value): Add parameter to prototype.
1506         (libcall_other_reg): Add extern declaration.
1507         * rtlanal.c (find_last_value): Add another parameter to allow
1508         a definition using a hardware register to be found as well.
1509
1510 Mon Feb 22 13:33:47 1999  Mark Mitchell  <mark@markmitchell.com>
1511
1512         * cse.c (dump_class): New function.
1513         (invalidate_memory): Fix typo in comment.
1514         * function.c (temp_slot): Add an alias set field.  
1515         (assign_stack_temp): Only reuse slots if they will have the
1516         same alias set as before.
1517         (combine_temp_slots): Don't combine if -fstrict-aliasing;
1518         that's unsafe.
1519         * rtl.c (copy_rtx): Copy all the flags (in particular,
1520         MEM_SCALAR_P).
1521
1522 Mon Feb 22 14:13:23 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
1523
1524         * configure.in (i[34567]86-*-linux-gnu*,
1525         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
1526         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
1527         fixincludes.
1528
1529         * configure: Rebuilt.
1530
1531         * fixinc.x86-linux-gnu: New script for fixing asm-statements bug
1532         on x86 linux.
1533
1534         * fixinc/fixinc.x86-linux-gnu: Copy of the previous one.
1535
1536         * fixinc/mkfixinc.sh (i[34567]86-*-linux-gnu*,
1537         i[34567]86-*-linux-gnulibc1, i[34567]86-*-linux-gnuaout*,
1538         i[34567]86-*-linux-gnuoldld*): Use fixinc.x86-linux-gnu as
1539         fixincludes.
1540
1541 Mon Feb 22 08:55:05 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
1542
1543         * objc/objc-act.c (encode_type): Temporary revert to the old
1544         behavior of encoding types as the new one seems to break the
1545         encoding of bitfields.
1546
1547 Mon Feb 22 11:40:44 1999  Craig Burley  <craig@jcb-sc.com>
1548 Sat Feb 20 09:59:36 1999  Craig Burley  <craig@jcb-sc.com>
1549
1550         * Makefile.in (all.internal, all.cross): Depend on `doc'
1551         target, to ensure docs get made before installation.
1552
1553
1554         Decrease spurious warnings from -fsyntax-only:
1555         * stmt.c (expand_expr_stmt): Expand expr even when -fsyntax-only.
1556
1557 Mon Feb 22 10:55:00 1999  Gavin Romig-Koch  <gavin@cygnus.com>
1558
1559         * c-lex.c (yylex): Replace warning about integer constants being
1560         larger than long-longs, with a warning about integer constants 
1561         being larger than the largest target integer.
1562
1563 Mon Feb 22 08:35:38 1999  Craig Burley  <craig@jcb-sc.com>
1564
1565         Fix -fsyntax-only ICEs:
1566         * varasm.c (assemble_zeros, assemble_variable,
1567         output_constant_def): Do nothing when -fsyntax-only.
1568
1569 Fri Feb 19 18:18:56 1999  Don Bowman  <don@pixstream.com>
1570
1571         * configure.in (mips*-*-vxworks*): Enable gthreads vxworks support.
1572         * configure: Rebuilt.
1573
1574 Sun Feb 21 20:34:44 PST 1999 Jeff Law  (law@cygnus.com)
1575
1576         * version.c: Bump for snapshot.
1577
1578 Sun Feb 21 20:35:10 1999  Jeffrey A Law  (law@cygnus.com)
1579
1580         * config/aoutos.h (ASM_OUTPUT_CONSTRUCTOR): Delete.
1581         (ASM_OUTPUT_DESTRUCTOR, ASM_OUTPUT_GC_ENTRY): Likewise.
1582         * tm.texi: Update docs for constructors and destructors.
1583
1584 Sun Feb 21 17:11:18 1999  Richard Henderson  <rth@cygnus.com>
1585
1586         * genattrtab.c (check_attr_value): Allow negative const_int if
1587         negative_ok.  Accept integral arithmetic operators.  Accept
1588         direct references to other attributes.  Accept symbol_ref in
1589         non-constant attributes.
1590         (max_attr_value): Add new argument `unknownp'.  Update all callers.
1591         (or_attr_value): Likewise.
1592         (simplify_knowing): Don't optimize if max_attr_value unknown.
1593         (write_length_unit_log): Likewise with or_attr_value.
1594         (find_and_mark_used_attributes): Don't fallthru case.
1595         (write_attr_set): Pass thru all non-cond expressions.
1596         (write_attr_value): Handle symbol_ref, attr, and arithmetic.
1597
1598 Sun Feb 21 13:16:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1599
1600         * regmove.c (discover_flags_reg): Use word_mode instead of SImode.
1601
1602 Sun Feb 21 13:15:40 1999  Richard Henderson  <rth@cygnus.com>
1603
1604         * regmove.c (discover_flags_reg): Remove cc0 code.
1605         (mark_flags_life_zones) [HAVE_cc0]: Force use of cc0; bail if
1606         a potential flags register was identified.
1607
1608 Sat Feb 20 16:16:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1609
1610         * rs6000.md (scc plus ltu): Fix typo in last change.
1611
1612 Sat Feb 20 09:08:44 1999  Richard Earnshaw  (rearnsha@arm.com)
1613
1614         * xm-arm.h (HOST_BITS_PER_LONGLONG): Define.
1615
1616 Fri Feb 19 23:02:02 1999  Richard Henderson  <rth@cygnus.com>
1617
1618         * regmove.c (discover_flags_reg): New function.
1619         (flags_set_1, mark_flags_life_zones): New functions.
1620         (regmove_optimize): Call them.
1621         (fixup_match_1): Use insn modes rather than sets_cc0_p.
1622
1623 Fri Feb 19 22:47:01 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1624
1625         * rtlanal.c (insn_first_p): Fix return value for insn == reference.
1626
1627         * loop.c (strength_reduce, check_final_value, check_dbra_loop):
1628         Use loop_insn_first_p.
1629
1630 Fri Feb 19 15:49:26 1999  Michael Meissner  <meissner@cygnus.com>
1631                           David Edelsohn  <edelsohn@gnu.org>
1632
1633         * rs6000.md (scc plus eq): Fix output template.
1634         (scc plus ltu): Fix output template and collapse variants
1635         correcting early clobbers.
1636         (scc plus geu): Fix output template.
1637         (scc plus gt): Fix output template.
1638         (scc plus gtu): Fix output template and collapse variants.
1639
1640 Fri Feb 19 15:43:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1641
1642         * cppinit.c (print_help): Remove unescaped newline in string.
1643
1644 Fri Feb 19 19:55:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1645
1646         * loop.c (strength_reduce): Check for intervening jumps when
1647         converting biv increment to giv.
1648
1649 Thu Feb 18 16:36:58 1999  Per Bothner  <bothner@cygnus.com>
1650
1651         * tree.def (TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR):  New tree nodes,
1652         * expr.c (expand_expr):  Support new tree nodes.
1653
1654 Fri Feb 19 10:17:56 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
1655
1656         * config/m68k/m68k.c (m68k_align_loops_string,
1657         m68k_align_jumps_string, m68k_align_funcs_string): Add const.
1658         * config/m68k/m68k.h (m68k_align_loops_string,
1659         m68k_align_jumps_string, m68k_align_funcs_string): Likewise.
1660
1661 Thu Feb 18 23:28:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1662
1663         * bitmap.c (bitmap_print): Qualify a char* with the `const' keyword.
1664          
1665         * bitmap.h (bitmap_print): Likewise.
1666          
1667         * c-decl.c (builtin_function, grokdeclarator, grokfield): Likewise.
1668          
1669         * c-lang.c (build_objc_string): Likewise.
1670          
1671         * c-lex.c (yyerror, extend_token_buffer): Likewise.  Don't include
1672         limits.h or ctype.h.  Remove unused variable `p'.
1673          
1674         * c-lex.h (yyerror): Qualify a char* with the `const' keyword.
1675          
1676         * c-pragma.c (handle_pragma_token): Likewise.
1677          
1678         * c-pragma.h (handle_pragma_token): Likewise.
1679          
1680         * c-tree.h (build_objc_string, builtin_function, grokfield,
1681         build_indirect_ref, lvalue_or_else, readonly_warning, error_init,
1682         pedwarn_init): Likewise.
1683          
1684         * c-typeck.c (convert_for_assignment, warn_for_assignment,
1685         push_string, warning_init, incomplete_type_error,
1686         build_indirect_ref, lvalue_or_else, readonly_warning,
1687         build_c_cast, spelling, push_member_name, print_spelling,
1688         error_init, pedwarn_init, start_init): Likewise.
1689          
1690         * objc/objc-act.c (build_objc_string): Likewise.
1691          
1692         * print-tree.c (print_node_brief, print_node): Likewise.
1693          
1694         * tree.h (lvalue_or_else, print_node, print_node_brief): Likewise.
1695
1696 Thu Feb 18 20:44:21 1999  David Edelsohn  <edelsohn@gnu.org>
1697
1698         * regclass.c (record_reg_classes): Correctly handle 'p' constraint.
1699
1700 Thu Feb 18 19:59:37 1999  Marc Espie <espie@cvs.openbsd.org>
1701
1702         * configure.in :Handle OpenBSD platforms.
1703         * configure: Rebuilt.
1704         * config/openbsd.h: New file.
1705         * config/xm-openbsd.h: New file.
1706         * config/t-openbsd: New file.
1707         * config/t-openbsd-thread: New file.
1708
1709 Thu Feb 18 18:47:09 1999  Jeffrey A Law  (law@cygnus.com)
1710
1711         * function.c (assign_stack_temp_for_type): Round SIZE before calling
1712         assign_stack_local for BLKmode slots.
1713
1714 Fri Feb 19 01:45:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1715
1716         * loop.c (strength_reduce): For derived givs, replace the
1717         giv this was derived from with its new_reg.
1718         (recombine_givs): Don't set new_reg for derived giv.
1719         And don't print it, print SUM instead.
1720
1721 Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
1722
1723         * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
1724
1725 1999-02-18 18:32 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1726
1727         * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
1728           or prefix.h. Change CPP_IS_MACRO_BUFFER to not refer to
1729           macro_cleanup.
1730           (GET_ENV_PATH_LIST, PATH_SEPARATOR, STANDARD_INCLUDE_DIR,
1731           predefs, SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
1732           CPP_WCHAR_TYPE, USER_LABEL_PREFIX, REGISTER_PREFIX, struct
1733           cpp_pending, version_string, struct default_include,
1734           include_defaults_array, path_include, cpp_options_init,
1735           dump_special_to_buffer, initialize_builtins, cpp_start_read,
1736           cpp_reader_init, nreverse_pending, push_pending, print_help,
1737           cpp_handle_option, cpp_handle_options, cpp_finish,
1738           cpp_cleanup): Move to cppinit.c.
1739           (macro_cleanup, struct arglist, collect_expansion,
1740           create_definition, compare_defs, comp_def_part, ARG_BASE,
1741           struct argdata, macarg, change_newlines, timestamp,
1742           monthnames, special_symbol, unsafe_chars, macroexpand,
1743           push_macro_expansion): Move to cpphash.c.
1744           (quote_string, check_macro_name, cpp_expand_to_buffer,
1745           output_line_command, cpp_undef): Export.
1746           (null_underflow, null_cleanup, handle_directive): Make static.
1747
1748         * cpplib.h: Prototype now-exported functions.  Adjust decls of
1749           syntax tables so we can include cpplib.h in cppinit.c.
1750         * cpphash.h: Prototype all functions exported by cpphash.c.
1751         * cppinit.c: Make syntax tables initialized data if possible
1752           (uses GCC designated-initializer extension).
1753         * cppexp.c:  Make cpp_lex static.
1754         * Makefile.in: Move -D switches for the various include dirs
1755           from cpplib.o rule to cppinit.o rule.  Adjust dependencies.
1756
1757 Thu Feb 18 13:15:56 1999  Marc Espie <espie@cvs.openbsd.org>
1758
1759         * alpha/openbsd.h: New file.
1760         * alpha/xm-openbsd.h: New file.
1761         * sparc/openbsd.h: New file.
1762         * sparc/xm-openbsd.h: New file.
1763         * m68k/openbsd.h: New file.
1764         * m68k/xm-openbsd.h: New file.
1765         * i386/openbsd.h: New file, originally from netbsd.
1766         * i386/xm-openbsd.h: New file.
1767
1768 1999-02-17 14:49 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1769
1770         * Makefile.in: Correct dependencies for cpplib object files.
1771
1772 Wed Feb 17 14:04:18 1999  Michael Meissner  <meissner@cygnus.com>
1773
1774         * rs6000.md ({add,sub}si3 `.'): Add alternatives to use CR other
1775         than cr0.
1776
1777 Wed Feb 17 16:59:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1778
1779         * loop.c (strength_reduce): Don't move giv insn for biv turned giv
1780         below scan_start.
1781
1782 Wed Feb 17 10:56:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1783
1784         * tree.c (tree_node_kind_names, print_obstack_name,
1785         get_identifier, maybe_get_identifier, build_string,
1786         build_expr_wfl, is_attribute_p, lookup_attribute,
1787         print_obstack_statistics, get_file_function_name_long, tree_check,
1788         tree_class_check, expr_check): Qualify a char* with the `const'
1789         keyword.
1790
1791         * tree.h (get_identifier, maybe_get_identifier, build_string,
1792         build_expr_wfl, is_attribute_p, lookup_attribute,
1793         print_obstack_statistics, print_obstack_name, tree_check,
1794         tree_class_check, expr_check): Likewise.
1795
1796 Tue Feb 16 21:29:38 1999  Jeffrey A Law  (law@cygnus.com)
1797
1798         * i386/freebsd-elf.h, i386/gas.h, i386/linux.h: Fix minor spacing
1799         errors.
1800
1801         * calls.c (store_one_arg): Mark any slots used for the argument
1802         as in-use immediately after we're done saving any slots which
1803         will be overwritten by this argument. 
1804
1805 Tue Feb 16 21:02:07 1999  Anton Hartl <toni@devsoft.com>
1806
1807         * rs6000.md (call_value): Fix typo.
1808
1809 Wed Feb 17 01:29:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1810
1811         * loop.c (strength_reduce): Calculate maybe_dead before
1812         calling recombine_givs.
1813
1814 Wed Feb 17 00:43:12 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1815
1816         * loop.c (strength_reduce): Dump biv increment -> giv conversions.
1817
1818 Tue Feb 16 15:31:39 1999  Ovidiu Predescu  <ovidiu@cup.hp.com>
1819
1820         * objc/objc-act.c (encode_type): Encode the type instead of
1821         encoding the mode of the type (patch from Richard Frith-Macdonald
1822         <richard@brainstorm.co.uk>).
1823
1824 Tue Feb 16 10:53:51 1999  Richard Earnshaw (rearnsha@arm.com)
1825
1826         * config/arm/arm.md (*zeroextractqi_compare0_scratch): Re-add load
1827         instruction killed in previous change.  Simplify mask generation.
1828         (*zeroextractsi_compare0_scratch): Simpify mask generation.
1829
1830 Tue Feb 16 09:52:26 1999  Nick Clifton  <nickc@cygnus.com>
1831
1832         * config/arm/arm.md (zeroextractqi_compare0_scratch): Ensure that
1833         bitfield does not overflow a byte boundary.
1834
1835 Tue Feb 16 01:37:33 1999  Charles G Waldman  <cgw@alum.mit.edu>
1836
1837         * c-common.c (shorten_compare): Get the min/max value from the
1838         underlying type of an enumeration, not the enumerated type itself.
1839
1840 Mon Feb 15 23:04:48 1999  Jeffrey A Law  (law@cygnus.com)
1841
1842         * jump.c: Include insn-attr.h.
1843         (delete_computation): If reload has completed and insn scheduling
1844         after reload is enabled, then do not depend on REG_DEAD notes.
1845         * Makefile.in (jump.o): Depend on insn-attr.h.
1846
1847 Mon Feb 15 16:57:38 1999  Richard Henderson  <rth@cygnus.com>
1848
1849         * i386.md (addsi3): Allow lea for any constant_p.
1850
1851 1999-02-15 17:11 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1852
1853         * toplev.c (documented_lang_options): Remove -fident and
1854           -fnoident, which are now handled by the language independent
1855           option parser.
1856
1857 1999-02-15 16:59 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
1858
1859         * c-common.c (UNGETC [USE_CPPLIB=1]): Do nothing if c is EOF.
1860         * c-lex.c: Likewise.
1861         * cpplib.c (cpp_push_buffer, cpp_pop_buffer): Use a linked
1862         list in malloced memory for the buffer stack.
1863         (cpp_get_token): Don't pop the last buffer off the stack.
1864         Calls after CPP_EOF has been returned produce CPP_EOF with no
1865         state change.
1866         (cpp_finish): Pop last buffer here.
1867         (do_line): Don't free ip->last_nominal_fname if it is equal to
1868         ip->fname.
1869         (special_symbol): If a T_CONST is the empty string, push a
1870         single `@ ' escape instead.
1871         (macroexpand): Special symbol buffers have escapes too.
1872         * cpplib.h (struct cpp_buffer): Remove unused fields, add prev
1873         buffer pointer.
1874         (struct cpp_reader): Remove buffer_stack.  Add
1875         buffer_stack_depth.
1876         (CPP_PREV_BUFFER, CPP_NULL_BUFFER): Buffer stack is now a
1877         linked list.
1878
1879 Mon Feb 15 14:44:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1880
1881         * cccp.c: Don't define HOST_WIDE_INT.  Replace all occurrences of
1882         WIDE_INT with WIDEST_INT.
1883
1884         * cexp.y: Likewise.
1885         Don't define unsigned_HOST_WIDE_INT, CHAR_BIT or
1886         HOST_BITS_PER_WIDE_INT.  Replace occurrences of PRINTF_PROTO_1()
1887         style with PVPROTO() ATTRIBUTE_PRINTF_1 style macros.  Replace
1888         occurrences of "unsigned_HOST" with "unsigned HOST".  Provide a
1889         definition of variable `c89' when compiling a test binary and set it.
1890
1891         * system.h: Don't define the PRINTF_PROTO_* macros.
1892
1893 Mon Feb 15 11:33:51 1999  Jeffrey A Law  (law@cygnus.com)
1894
1895         * loop.c (mark_loop_jump): Handle LO_SUM.  If we encounter something
1896         we do not understand, mark the loop and containing loops as invalid.
1897
1898 Mon Feb 15 00:40:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1899
1900         * alias.c (init_alias_analysis): Avoid self-referential value
1901         when setting reg_known_value from REG_EQUAL notes.
1902
1903 Sun Feb 14 23:12:10 1999  Richard Henderson  <rth@cygnus.com>
1904
1905         * i386.c (legitimate_address_p): Verify modes of base and index.
1906
1907 Sun Feb 14 23:01:28 1999  Richard Henderson  <rth@cygnus.com>
1908
1909         * i386.c (legitimate_pic_address_disp_p): Remove static.
1910         * i386.h (LEGITIMATE_PIC_OPERAND_P): Use it instead of
1911         open-coding cases.
1912
1913 Sun Feb 14 21:03:28 1999  Jeffrey A Law  (law@cygnus.com)
1914
1915         * except.c (start_catch_handler): Use emit_cmp_and_jump_insns.
1916         * explow.c (probe_stack_range): Likewise.
1917         * expmed.c (do_cmp_and_jump): Likewise.
1918         * expr.c (store_expr, expand_expr, expand_builtin): Likewise.
1919         (do_tablejump): Likewise.
1920         * stmt.c (expand_expr_stmt, expand_end_case): Likewise.
1921         (do_jump_if_equal, emit_case_nodes): Likewise.
1922         * optabs.c (emit_cmp_and_jump_insns): Clarify comments.  If UNSIGNEDP,
1923         then convert comparison to an unsigned code before emitting the jump.
1924         (expand_float, expand_fix): Use emit_cmp_and_jump_insns.
1925
1926 Sun Feb 14 02:24:15 PST 1999 Jeff Law  (law@cygnus.com)
1927
1928         * version.c: Bump for snapshot.
1929
1930 Sun Feb 14 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
1931
1932         * version.c: Bump for snapshot.
1933
1934 Sun Feb 14 00:45:50 1999  Jeffrey A Law  (law@cygnus.com)
1935
1936         * loop.c: Disable recent loop changes.  Temporary as Joern
1937         continues to fix problems.
1938
1939 Sat Feb 13 23:29:42 1999  Richard Henderson  <rth@cygnus.com>
1940
1941         * loop.c (combine_givs_used_by_other): Delete.
1942         (combine_givs_benefit_from): Delete.
1943         (combine_givs): Deny combination of givs only used once.  Simplify
1944         code with the death of combine_givs_benefit_from.
1945
1946 Sun Feb 14 11:24:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
1947
1948         * loop.c (scan_loop): Call reg_in_basic_block_p before
1949         loop_reg_used_before_p.
1950
1951 Sat Feb 13 05:32:00 1999  Richard Earnshaw (rearnsha@arm.com)
1952
1953         * arm.md: Use gen_rtx_FOO instead of gen_rtx (FOO, ...).
1954         * arm.h: Likewise.
1955         * arm.c: Likewise.
1956
1957         * arm.h (TARGET_OPTIONS): Reformat for clarity.
1958         (GO_IF_LEGITIMATE_ADDRESS): When generating PIC, references to symbols
1959         in the constant pool aren't valid.
1960         (LEGITIMATE_PIC_OPERAND_P): Likewise.
1961
1962         * arm.c: Include "system.h", not stdio.h and string.h.
1963
1964 Fri Feb 12 13:06:28 1999  Jim Wilson  <wilson@cygnus.com>
1965
1966         * stmt.c (expand_return): Return if optimize_tail_recursion succeeded.
1967         (optimize_tail_recursion): Change return type from void to int.
1968         Add return statements.
1969         * tree.h (optimize_tail_recursion): Change prototype to match.
1970
1971 Fri Feb 12 21:09:51 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1972
1973         * reload.c (find_reloads_subreg_address): New function, broken out of
1974         find_reloads_toplev.
1975         (find_reloads_toplev, find_reloads_address_1): Use it.
1976
1977 Fri Feb 12 13:20:52 1999  Jeffrey A Law  (law@cygnus.com)
1978
1979         * h8300.md (zero_extendhisi2 H8/300 variant): Correctly handle
1980         extending a CONST_INT.
1981
1982         * h8300.md (peephole for combining memrefs): Delete incorrect peephole.
1983
1984 Fri Feb 12 18:29:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1985
1986         * loop.c (loop_insn_first_p, biv_elimination_giv_has_0_offset):
1987         New functions.
1988         (maybe_eliminate_biv_1): Use biv_elimination_giv_has_0_offset.
1989
1990 Fri Feb 12 16:56:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
1991
1992         * loop.c (load_mems): Don't guess how to do a load / store, use
1993         emit_move_insn.
1994
1995 Fri Feb 12 09:24:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1996
1997         * system.h: Provide a definition for HOST_WIDEST_INT, etc.
1998
1999 Fri Feb 12 23:37:26 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2000
2001         * config/c4x/c4x.c (c4x_address_cost): Revert 9 Feb change. 
2002
2003 Fri Feb 12 00:51:26 1999  Jeffrey A Law  (law@cygnus.com)
2004
2005         * reload.c (find_reloads_address_1): Fix handling of an autoincremented
2006         pseudo which is homed in the stack.
2007
2008         * mips.c (save_restore_insns): Fix loop to save/restore FP registers.
2009         (compute_frame_size): Change loop over FP regs to be consistent
2010         with the loop in save_restore_insns.
2011
2012 Thu Feb 11 17:38:40 1999  Jim Wilson  <wilson@cygnus.com>
2013
2014         * i960/i960.h (OVERRIDE_OPTIONS): Warn if -mlong-double-64 is used.
2015         (LONG_DOUBLE_TYPE_SIZE): Undef then unconditionally define to 96.
2016
2017 Thu Feb 11 15:11:35 1999  Jeffrey A Law  (law@cygnus.com)
2018
2019         * mn10200.md (bset); Re-enable.
2020
2021 Thu Feb 11 15:20:49 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2022
2023         * sh.md (is_sfunc): New attribute.
2024         * sh.h (INSN_SETS_ARE_DELAYED, INSN_REFERENCES_ARE_DELAYED): Use it.
2025
2026 Thu Feb 11 01:06:49 1999  Nathan Sidwell  <nathan@acm.org>
2027
2028         * fold-const.c (range_binop): Take account of the bounded nature
2029         of fixed length arithmetic when comparing unbounded ranges.
2030
2031 Thu Feb 11 00:08:17 1999  John Wehle  (john@feith.com)
2032
2033         * function.c (assign_stack_temp_for_type): Clear best_p
2034         when an exact match is found.
2035
2036         * i386.h (LOCAL_ALIGNMENT): Define.
2037         * function.c (assign_stack_local, assign_outer_stack_local): Use it.
2038         (assign_stack_temp_for_type): New function based on assign_stack_temp.
2039         (assign_stack_temp): Call it.
2040         (assign_temp): Use assign_stack_temp_for_type, not assign_stack_temp.
2041         * stmt.c: Use assign_temp, not assign_stack_temp.
2042         * tm.texi: Document LOCAL_ALIGNMENT.
2043
2044 Wed Feb 10 23:28:28 1999  Jeffrey A Law  (law@cygnus.com)
2045
2046         * reorg.c: Finish deleting half-deleted comment.
2047
2048 Wed Feb 10 17:12:21 1999  Jim Wilson  <wilson@cygnus.com>
2049
2050         * emit-rtl.c (operand_subword): Sign extend REAL_VALUE_TO_TARGET_SINGLE
2051         result.
2052         * final.c (split_double): Sign extend REAL_VALUE_TO_TARGET_DOUBLE
2053         result.
2054         * real.c (endian): Delete sign extension code.
2055         * config/m32r/m32r.md (movsf_insn+1): REAL_VALUE_TO_TARGET_SINGLE call
2056         replaced with operand_subword call.
2057
2058 Wed Feb 10 15:16:39 1999  Richard Henderson  <rth@cygnus.com>
2059
2060         * alpha.md (cmov compound patterns): Delete.  Jump can now
2061         create the correct constructs in the first place.
2062
2063 Wed Feb 10 11:03:22 1999  Richard Henderson  <rth@cygnus.com>
2064
2065         * configure.in (alphaev6*): Fix typo in target_cpu_default2.
2066
2067 Wed Feb 10 13:59:18 1999  Dave Brolley  <brolley@cygnus.com>
2068
2069         * mbchar.c (local_mb_cur_max): Handle the case where MB_CUR_MAX is 0.
2070
2071 Wed Feb 10 10:35:05 1999  Jim Wilson  <wilson@cygnus.com>
2072
2073         * tmp-emsgids.c: Delete.
2074
2075 Wed Feb 10 09:57:08 1999  Mark Mitchell  <mark@markmitchell.com>
2076
2077         * rtlanal.c (for_each_rtx): Fix declaration to conform to GNU
2078         coding standards.
2079
2080 Wed Feb 10 10:09:41 1999  Jeffrey A Law  (law@cygnus.com)
2081
2082         * mn10200.md (bset, bclr): Operand 0 is a read/write operand.
2083
2084         * reload1.c (reload_combine_note_store): Second argument is no
2085         longer unused/ignored.  Handle multi-register hard regs.
2086         (move2add_note_store): Simplify.
2087
2088 Wed Feb 10 10:05:23 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2089
2090         * collect2.c (collect_execute): Remove cygwin-specific code.
2091
2092 Tue Feb  9 17:27:29 GMT 1999  Nathan Sidwell  <nathan@acm.org>
2093
2094         * system.h (_, N_): Remove dummy i18n macros.
2095         * protoize.c: Move inclusion of intl.h to after system.h.
2096         * cexp.y: Include intl.h.
2097         * cexp.c: Rebuilt.
2098
2099 Tue Feb  9 16:52:22 1999  Mumit Khan  <khan@xraylith.wisc.edu>
2100
2101         * i386/cygwin.h (SUBTARGET_OVERRIDE_OPTIONS): New macro to ignore 
2102         fpic/fPIC for windows32 targets.
2103         * i386/xm-cygwin.h (GET_ENV_PATH_LIST): Replace '\\' in windows32
2104         paths with '/'.
2105         * i386/mingw32.h (CPP_SPEC): Define.
2106         (CPP_PREDEFINES): Add MINGW32 version id.
2107         * i386/crtdll.h (CPP_PREDEFINES): Likewise.
2108
2109         * Makefile.in (collect2$(exeext)): Delete redundant dependency and
2110         add missing exeext to target.
2111
2112         * gcc.c (convert_filename): Handle null filename argument.
2113
2114 Wed Feb 10 15:46:10 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2115
2116         * config/c4x/c4x.md (*movhf_noclobber, *movhi_noclobber): Use
2117         m constraint instead of QT.
2118
2119 1999-02-09  Brendan Kehoe  <brendan@cygnus.com>
2120
2121         * cpplib.c (special_symbol): Move IP to be declared in function
2122         scope, rather than individual case statements.
2123
2124 1999-02-09 16:42 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2125
2126         * cppfiles.c (finclude):  Handle pipes properly under old BSD
2127           derivatives.
2128
2129 1999-02-09 16:42 -0500  Melissa O'Neill <oneill@cs.sfu.ca>
2130
2131         * system.h: Provide fallback definitions for S_ISCHR,
2132           S_ISSOCK, S_ISFIFO, O_NONBLOCK, and O_NOCTTY.
2133
2134 1999-02-09 10:30 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2135
2136         * cpplib.c (do_define): Allow redefining __STDC__ with -D.
2137
2138 1999-02-09  Jim Blandy  <jimb@zwingli.cygnus.com>
2139
2140         * configure.in: For PowerPC configurations, accept "401", "ec603e",
2141         "740", and "750" as valid arguments to --with-cpu.
2142         * configure: Rebuilt.
2143
2144 Tue Feb  9 00:00:14 1999  Mark Kettenis  <kettenis@gnu.org>
2145
2146         * configure.in (i[34567]86-*gnu*): Set float_format to i386.
2147         * configure: Rebuilt.
2148
2149 Mon Feb  8 22:38:24 1999  Jeffrey A Law  (law@cygnus.com)
2150
2151         * rs6000.md: Revert "alternate use of crs if cr0 not available"
2152         patches from 01-22-1999, 01-24-1999, 01-26-1999, and 02-08-1999.
2153
2154 Mon Feb  8 21:36:44 1999  Richard Henderson  <rth@cygnus.com>
2155
2156         * output.h (current_function_has_computed_jump): Rename from
2157         current_function_addresses_labels.
2158         * function.h (struct function): Likewise for addresses_labels member.
2159         * rtl.h (FUNCTION_FLAGS_HAS_COMPUTED_JUMP): Likewise.
2160         * function.c (current_function_has_computed_jump): Likewise.
2161         Update all references.
2162         * integrate.c (function_cannot_inline_p):
2163         Test current_function_has_computed_jump instead of addresses_labels.
2164         (initialize_for_inline): Likewise save.
2165         (output_inline_function): Likewise restore.
2166
2167         * expr.c (expand_expr): Don't reference addresses_labels variables.
2168         * stmt.c (expand_computed_goto): Set has_computed_jump.
2169
2170 1999-02-08  Michael Meissner  <meissner@cygnus.com>
2171
2172         This is being installed only to get it into the repository to help
2173         with the revert, resubmit & review process for the massive rs6000.md
2174         changes.
2175         * rs6000.md (andsi3_internal1 splitter): Don't split if using the
2176         rlwinm instruction.
2177         (anddi3_internal1): Ditto.
2178         (andsi3_internal{2,3}): Correct some insn lengths.
2179         (anddi3*): Restore missing TARGET_POWERPC64, and don't emit old
2180         mnemonics.
2181
2182 Mon Feb  8 21:31:06 1999  Richard Henderson  <rth@cygnus.com>
2183
2184         * loop.c (reg_single_usage): New file-scope variable ...
2185         (scan_loop): ... moved out of here.  Always initialize.
2186         Test loop_has_call instead of reg_single_usage not zero.
2187         Free reg_single_usage after strength reduction.
2188         (count_loop_regs_set): Assume single_usage non-zero.
2189         (combine_givs_used_by_other): Test reg_single_usage.
2190         (load_mems_and_recount_loop_regs_set): Remove reg_single_usage
2191         as a parameter.  Assume non-zero.
2192         
2193 1999-02-08 23:25 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
2194
2195         * cpplib.c (special_symbol): Rewrite.  Don't copy things
2196           multiple times.  Handle __STDC__ specially.  T_CONST
2197           indicates a constant /string/.  Don't handle T_*_TYPE and
2198           T_SPEC_DEFINED.  Use cpp_buf_line_and_col instead of
2199           adjust_position.  Determine the file buffer only if needed.
2200           (initialize_builtins): Handle __SIZE_TYPE__,
2201           __PTRDIFF_TYPE__, __WCHAR_TYPE__, __USER_LABEL_PREFIX__, and
2202           __REGISTER_PREFIX__ with T_CONST special hashtab entries.
2203           Don't provide __OBJC__; the driver does that.  Provide
2204           __STDC_VERSION__, using T_CONST.  Use T_STDC for
2205           __STDC__.  Give install the length of all symbols defined.
2206           (eval_if_expression): Drop code to insert and remove the
2207           "defined" special symbol.
2208
2209         * cpplib.h: Remove SELF_DIR_DUMMY (no longer used).  Remove
2210           T_*_TYPE and T_SPEC_DEFINED from enum node_type; add T_STDC.
2211
2212         * cpphash.c (install): Drop the `ivalue' parameter.  Constify
2213           the `value' parameter.  All callers changed.
2214         * cpphash.h (install): Change prototype to match.
2215           (union hashval): Remove `ival' member.
2216         * cppexp.c (cpp_lex): Handle `defined' here.
2217
2218 Mon Feb  8 17:29:42 1999  Jeffrey A Law  (law@cygnus.com)
2219
2220         * pa.h (EXTRA_CONSTRAINT): Fix comment.
2221
2222 Mon Feb  8 18:57:45 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
2223
2224         * c-typeck.c (check_init_type_bitfields): Use nonincremental
2225         initialization of unions whose first member is a bitfield.
2226         Remove unnecessary code for checking the declaration mode
2227         after DECL_C_BIT_FIELD.
2228
2229         * varasm.c (output_constructor): Additional comment about the
2230         constructor of bitfield union initialization.
2231
2232 Tue Feb  9 11:55:04 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2233
2234         * config/c4x/c4x.md (*movhi_stik): New pattern.
2235         (movhi): Allow some immediate constants to be directly
2236         stored in memory.
2237
2238 Tue Feb  9 11:34:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2239
2240         * config/c4x/c4x.md (all call patterns): Add constraints "Ur".
2241         (call, call_value): Force address into a register if not valid
2242         for a call instruction.
2243         (load_immed_address): Emit a USE of the SYMBOL_REF that is
2244         forced into memory.
2245         * config/c4x/c4x.c (c4x_print_operand): Fix 'C' and 'U' modifiers.
2246
2247 Tue Feb  9 11:08:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2248
2249         * config/c4x/c4x.c (call_address_operand, symbolic_address_operand):
2250         Rename from call_operand and symbolic_operand respectively.  All
2251         callers changed.
2252         * config/c4x/c4x.md (call_address_operand, symbolic_address_operand): 
2253         Likewise.
2254         * config/c4x/c4x.h (call_address_operand, symbolic_address_operand): 
2255         Likewise.
2256         (PREDICATE_CODES): Allow CONST, LABEL_REF for call_address_operand.
2257
2258 Tue Feb  9 10:52:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2259
2260         * config/c4x/c4x.c (c4x_legitimize_address): Don't generate a
2261         LO_SUM address for HImode or HFmode but instead force address into
2262         a register so that it is offsettable.
2263         (c4x_emit_move_sequence): Handle LO_SUM immediate address.
2264
2265 Tue Feb  9 10:46:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2266
2267         * config/c4x/c4x.c (c4x_address_cost): Return cost of 1 for
2268         REG+REG addressing if strength reduction enabled.
2269
2270 Tue Feb  9 10:10:31 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2271
2272         * config/c4x/t-c4x  (LIBGCC2_CFLAGS): Delete.
2273         (TARGET_LIBGCC2_CFLAGS): Define.
2274         
2275 1999-02-08  Nick Clifton  <nickc@cygnus.com>
2276
2277         * config/v850/v850.md: Replace \\n\\t with \\;
2278         
2279         * config/v850/v850.md: Enforce TARGET_LONG_CALLS option.
2280         * config/v850/v850.c (construct_restore_jr, construct_save_jarl):
2281         Enforce TARGET_LONG_CALLS option. 
2282
2283 Mon Feb  8 11:43:07 1999  Donn Terry <donn@interix.com>
2284
2285         * real.c (PUT_REAL) [XFmode]: Zero the balance of the structure.
2286
2287 Mon Feb  8 11:37:24 1999  Marc Espie (espie@cvs.openbsd.org)
2288
2289         * m88k/t-luna-gas: Remove bash dependency.
2290
2291 Mon Feb  8 11:34:44 1999  Graham <grahams@rcp.co.uk>
2292
2293         * collect2.c (xrealloc): Fix typo in last change.
2294
2295 Mon Feb 8 09:13:38 PST 1999 Jeff Law  (law@cygnus.com)
2296
2297         * version.c: Bump for snapshot.
2298
2299 Sun Feb  7 22:18:42 1999  Robert Lipe  <robertlipe@usa.net>
2300
2301         * tree.h (TYPE_CHECK): Make it clear to the preprocessor
2302         that we do not want macro replacement within a character constant.
2303         (TYPE_CHECK1): Likewise.
2304
2305 Sun Feb  7 15:37:10 1999  Jason Merrill  <jason@yorick.cygnus.com>
2306
2307         * tree.h (DECL_P): New macro.
2308
2309 Sun Feb 7 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
2310
2311         * version.c: Bump for snapshot.
2312
2313 Sat Feb  6 18:14:46 1999  Jeffrey A Law  (law@cygnus.com)
2314
2315         * mn10300.md (reload_insi): Do not earlyclobber the output operand.
2316
2317         * README.g77, gcc.c, gcc.texi: Update email addresses.
2318         * invoke.texi system.h: Likewise.
2319
2320 Sat Feb  6 11:04:08 1999  Jim Wilson  <wilson@cygnus.com>
2321
2322         * unroll.c (find_splittable_givs): After express_from, call replace_rtx
2323         to convert dest_reg to new_reg.
2324
2325 Sat Feb  6 10:31:35 1999  Jeffrey A Law  (law@cygnus.com)
2326
2327         * reload1.c (reload_combine_note_store): Be more careful with
2328         STRICT_LOW_PART, ZERO_EXTRACT and SIGN_EXTRACT.
2329         (move2add_note_store): Likewise.
2330
2331 Sat Feb  6 10:18:01 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2332
2333         * cppfiles.c (read_and_prescan): Cast the result of `xrealloc' to
2334         U_CHAR* when assigning to one.  Ensure the values of a ?: operator
2335         have the same type.
2336
2337         * cppinit.c (initialize_char_syntax): Use K&R function definition.
2338
2339 Sat Feb  6 11:17:03 1999  Richard Earnshaw <rearnsha@arm.com>
2340
2341         Support for ARM9
2342         * config/arm/arm.c (all_procs): Add arm9 and arm9tdmi.
2343         * config/arm/arm.h ((TARGET_CPU_arm9, TARGET_CPUD_arm9tdmi): Define.
2344         (TARGET_CPU_DEFAULT): Rework to support ARM9.
2345         (CPP_CPU_ARCH_SPEC): Likewise.
2346         (enum processor_type): Likewise.
2347         * config/arm/arm.md (attr cpu): Add arm9.
2348
2349         General scheduling changes 
2350         * config/arm/arm.c (MAX_INSNS_SKIPPED): Delete.
2351         (max_insns_skipped): New variable.
2352         (arm_override_options): If generating hard floating point code for
2353         the FPA, emit code for version 3.
2354         When optimizing for space, don't synthesize constants.
2355         Reword several flags based on the requested processor and optimization
2356         level.
2357         (use_return_insn): New argument iscond, all callers changed.  Don't
2358         use a return insn if it will be conditional and that would be 
2359         expensive; eg on StrongARM.
2360         (arm_adjust_cost): Anti- and output- dependencies normally have no
2361         cost.
2362         (load_multiple_sequence): Newer ARMs don't benefit from ldm if
2363         the sequence is short.
2364         (final_prescan_insn): Use max_insns_skipped instead of 
2365         MAX_INSNS_SKIPPED.  Note whether we will make a return instruction
2366         conditional, and aviod this if it would be expensive.
2367         * config/arm/arm.md (scheduling attributes and function units):
2368         Rewrite to better describe ARM8, 9 and StrongARM.
2369
2370         * config/arm/arm.md (*movhi_insn_littleend): Make op0 predicate 
2371         s_register_operand.
2372         (*ifcompare_plus_move): Use arm_rhs_operand in place of 
2373         arm_rhsm_operand.  Rework constraints.
2374         (*if_plus_move): Likewise.
2375         (*ifcompare_move_plus): Likewise.
2376         (*if_move_plus): Likewise.
2377         (*ifcompre_arith_move): Likewise.
2378         (*if_arith_move): Likewise.
2379         (*ifcompare_move_arith): Likewise.
2380         (*if_move_arith): Likewise.
2381
2382         * config/arm/xm-netbsd.h: Don't include arm/xm-arm.h.
2383         
2384 1999-02-05  Michael Meissner  <meissner@cygnus.com>
2385
2386         * loop.c (check_dbra_loop): A store using an address giv for which
2387         we have no life information is not reversible.
2388
2389 Fri Feb  5 17:08:01 1999  Dave Brolley  <brolley@cygnus.com>
2390
2391         * function.c (fixup_var_refs): Scan catch_clauses too.
2392
2393 Fri Feb  5 11:49:49 1999  Benjamin Kosnik  <bkoz@loony.cygnus.com>
2394
2395         * c-common.c (decl_attributes): Fix reserved space for init_priority.
2396         * tree.h (MAX_RESERVED_INIT_PRIORITY): New macro.
2397
2398 Fri Feb  5 12:37:05 1999  Jeffrey A Law  (law@cygnus.com)
2399
2400         * loop.c (strength_reduce): Clear not_every_iteration when 
2401         passing the NOTE_INSN_LOOP_CONT note.
2402
2403         * haifa-sched.c (add_dependence): Do not add a dependency on a
2404         note.
2405
2406 Fri Feb  5 10:55:43 1999  Nick Clifton  <nickc@cygnus.com>
2407
2408         * recog.c (split_block_insns): Only call update_flow_info if
2409         instruction scheduling is enabled.
2410
2411 1999-02-05 11:22 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2412
2413         * Makefile.in (gen-protos): Use libcpp.a like everyone else.
2414
2415 Fri Feb  5 07:09:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2416
2417         * loop.c (first_loop_store_insn): New file-scope variable.
2418         (prescan_loop): Set it.
2419         (check_dbra_loop): Check if a store depends on a register
2420         that is set after the store.
2421
2422 Fri Feb  5 06:55:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2423
2424         * unroll.c (entire file): Remove tabs / spaces at end of lines.
2425         Replace spaces with tabs where appropriate.
2426
2427 Thu Feb  4 15:12:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2428
2429         * loop.c (scan_loop): New argument loop_cont.  Changed caller.
2430         (strength_reduce): New argument loop_cont. Changed caller.
2431         Before clearing not_every_iteration after a label, check if
2432         we are not already past LOOP_CONT.
2433
2434 1999-02-04 16:04 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2435
2436         * cpperror.c (cpp_print_containing_files): Fix formatting 
2437         bug induced by merge.
2438
2439 1999-02-04 14:33 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
2440
2441         * cpplib.c (initialize_char_syntax): Move to cppinit.c.
2442         (cpp_define): Remove redundant syntax checks.
2443         (make_assertion): Rename cpp_assert, remove redundant syntax
2444         checks, export.
2445         (cpp_options_init): Don't init things to zero twice.
2446         (cpp_expand_to_buffer): Use memcpy, not a char-by-char loop.
2447         (do_include): Kill excessively verbose #import warning that
2448         snuck back in in the gcc2 merge.
2449         (convert_string): Removed.
2450         (do_line): Rewrite with simple last-name-used cache instead of
2451         private hashtable.
2452         (cpp_start_read): Call initialize_char_syntax here, not...
2453         (cpp_reader_init): ...here.
2454         (cpp_handle_options): Support the -std switch.
2455         * cpplib.h (cpp_buffer): Add last_nominal_fname member.
2456         (cpp_options): Add c9x flag.
2457         Declare all the is_* tables and trigraph table here, as const.
2458         Prototype cpp_assert and initialize_char_syntax.
2459         * cppinit.c: New file.
2460         * cppfiles.c (read_and_prescan): Optimize.
2461         * Makefile.in (LIBCPP_OBJS): Add cppinit.o.
2462
2463 Thu Feb  4 10:46:30 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2464
2465        * config/mips/mips.md ([u]divmodsi4,[u]divmoddi4,[u]divsi3,[u]divdi3,
2466         [u]modsi3,[u]moddi3) : Don't copy the "zero" argument to a register
2467         before calling gen_div_trap.
2468
2469 Wed Feb  3 21:56:27 1999  Jeffrey A Law  (law@cygnus.com)
2470
2471         * configure.in (hppa1.1-*-*, hppa2*-*): Use symbolic value rather
2472         than numeric value for target_cpu_default..
2473         * configure: Rebuilt.
2474
2475 Wed Feb  3 21:55:56 1999  Marc Espie <Marc.Espie@liafa.jussieu.fr>
2476
2477         * Makefile.in (xgcc$(exeext)): Remove choose-temp, pexecute and
2478         mkstemp.  Get them from libiberty.
2479         (COLLECT2_OBJS): Similarly for choose-temp, cplus-dem and mkstemp.
2480         (PROTO_OBJS): Similarly for choose-temp, getopt, getopt1 and pexecute.
2481         (cplus-dem.o, pexecute.o, choose-temp.o): Remove build rules.
2482         (mkstemp.o, getopt1.o, getopt.o): Likewise.
2483
2484         * pa-gas.h (TARGET_DEFAULT): Use symbolic values rather than numeric
2485         values.
2486         * pa-hpux.h (LINK_SPEC): Likewise.
2487         * pa-hpux10.h (LINK_SPEC): Likewise.
2488         * pa-hpux9.h (LINK_SPEC): Likewise.
2489         * pa-osf.h: (LINK_SPEC): Likewise.
2490         * pa-pro.h (TARGET_DEFAULT): Likewise.
2491         * pa1.h (TARGET_DEFAULT): Likewise.
2492         * pa.h (MASK_*): New defines.
2493         (TARGET_*): Use symbolic values rather than numeric values.
2494         (TARGET_SWITCHES): Likewise.
2495         (TARGET_DEFAULT): likewise.
2496         (CPP_SPEC): likewise.
2497
2498 Wed Feb  3 21:07:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
2499
2500         * reload1.c (reload_cse_regs_1): Undo Jan 16 patch.
2501         * reload.c (find_reusable_reload): New function, broken out of
2502         push_reload.  Add code to verify that none of the involved
2503         outputs are subject to earlyclobbers.
2504         (push_reload): Break out new function find_reusable_reload.
2505         Delete "register" keyword for IN, OUT args.
2506
2507 Wed Feb  3 15:51:04 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2508
2509         * config/mips/mips.c (true_reg_or_0_operand) : New function.
2510         * config/mips/mips.h (PREDICATE_CODES): Add true_reg_or_0_operand.
2511         * config/mips/mips.md (div_trap,div_trap_normal,div_trap_mips16): 
2512         Use true_reg_or_0_operand for div_trap.
2513
2514 Wed Feb  3 20:44:59 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2515
2516         * loop.h (express_from): Declare.
2517         (struct induction): Replace derived flag with derived_from pointer.
2518         * loop.c (strength_reduce, record_giv, recombine_givs): Likewise.
2519         (express_from): No longer static.
2520         * unroll.c (find_splittable_givs): Replace derived with derived_from.
2521         When processing an address giv with which another giv has been
2522         combined that has also been derived from a third giv, handle like
2523         having combined with the third giv.
2524         Set splittable_regs_updates appropriately for derived givs.
2525
2526 Wed Feb  3 15:26:58 1999  Gavin Romig-Koch  <gavin@cygnus.com>
2527
2528         * config/mips/mips.md (div_trap_mips16): Remove nop's after branches.
2529
2530 Wed Feb  3 11:56:23 1999  Jeffrey A Law  (law@cygnus.com)
2531
2532         * pa.c (insn_sets_and_refs_are_delayed): New function.
2533         * pa.h (INSN_SETS_ARE_DELAYED): Use it.
2534         (INSN_REFERENCES_ARE_DELAYED): Likewise.
2535  
2536 Wed Feb  3 06:24:49 1999  Richard Earnshaw (rearnsha@arm.com)
2537
2538         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Delete.
2539         * config/arm/t-linux (LIBGCC2_CFLAGS): Delete.
2540         (TARGET_LIBGCC2_CFLAGS): Define.
2541         (LIBGCC2_DEBUG_CFLAGS): Define.
2542         * config/arm/t-netbsd: Likewise.
2543         * config/arm/t-semi: Likewise.
2544         * config/arm/t-semiaof: Likewise.
2545         * config/arm/t-riscix: Likewise.
2546
2547 Wed Feb  3 10:59:07 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
2548
2549         * config/m68k/m68k.c (print_operand_address): When printing a
2550         SYMBOL_REF that ends in `.<letter>' put parentheses around it.
2551
2552 Tue Feb  2 23:38:35 1999  David O'Brien <obrien@FreeBSD.org>
2553
2554         * i386/freebsd*.h now allows '$' in label names and does not use the
2555         PCC struct return method.
2556
2557 Tue Feb  2 22:38:23 1999  Jim Wilson  <wilson@cygnus.com>
2558
2559         * Makefile.in: Change all uses of AR to AR_FOR_TARGET.  Change all uses
2560         of HOST_AR to AR.  Likewise for AR_FLAGS, RANLIB, and RANLIB_TEST.
2561         (RANLIB_TEST): Test to see if ranlib exists.  Only test absolute file
2562         names if host == target.
2563         (HOST_AR, HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Delete.
2564         (AR_FLAGS_FOR_TARGET): Renamed from AR_FOR_TARGET_FLAGS.
2565         (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST): Delete rules
2566         setting them to *_FOR_TARGET.
2567         * cross-make (AR, AR_FLAGS, OLDAR, OLDAR_FLAGS, RANLIB, RANLIB_TEST):
2568         Delete.
2569
2570 Tue Feb  2 22:38:19 1999  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2571
2572         * toplev.h (read_integral_parameter): Declare.
2573         * toplev.c (read_integral_parameter): New function.
2574
2575 Fri Jan 29 21:00:56 1999  Bob Manson  <manson@charmed.cygnus.com>
2576
2577         * resource.c, resource.h: New files.
2578         * Makefile.in (OBJS): Add it.
2579
2580         * haifa-sched.c (regno_use_in): Moved to rtlanal.c.
2581         (split_block_insns): Moved to recog.c.
2582         (update_flow_info): Make public.
2583         * rtl.h: Declare them.
2584
2585         * reorg.c: Moved the functions dealing with computing resource
2586         usage to resource.c.
2587
2588         * sched.c (regno_use_in): Moved to rtlanal.c.
2589         (update_flow_info): Make public.
2590         (schedule_insns): Use split_block_insns.
2591
2592         * recog.c (split_block_insns): New function.
2593
2594 Tue Feb  2 22:03:26 1999  David Edelsohn  <edelsohn@gnu.org>
2595
2596         * rs6000/linux.h (LINK_START_DEFAULT_SPEC): Delete, unused.
2597         (LINK_OS_DEFAULT_SPEC): Delete, unused.
2598
2599 Tue Feb  2 20:29:34 1999  Catherine Moore  <clm@cygnus.com>
2600  
2601         * configure.in (arm-*-oabi):  Support.
2602         * configure:  Regenerate.
2603         * config/arm/unknown-elf-oabi.h:  New file.
2604  
2605 Tue Feb  2 19:43:59 1999  Jeffrey A Law  (law@cygnus.com)
2606
2607         * i386.md (ashlsi3): Turn into a define_expand an anonymous pattern.
2608         Make the anonymous pattern match when ! optimize_size.
2609         (ashlsi3 size optimizer): New pattern.
2610
2611         * intl/Makefile.in (uninstall): Add missing "; \".
2612
2613 Tue Feb  2 18:21:23 1999  Stan Cox  <scox@cygnus.com>
2614
2615         * sparc.h (TARGET_CPU_sparc86x): Added. TARGET_CPU_sparclite86x
2616         synonym.
2617
2618 Tue Feb  2 20:24:11 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2619
2620         * loop.c (loop_optimize): Fix value max_uid_for_loop is reset
2621         to after find_and_verify_loops call.
2622
2623 Tue Feb  2 19:48:29 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2624
2625         * (recombine_givs): Don't use a giv that's likely to be dead to
2626         derive others.
2627
2628         * loop.c (recombine_givs): Fix test for lifetime overlaps / loop
2629         wrap around when deriving givs.
2630
2631 Mon Feb  1 20:00:40 1999  Richard Henderson  <rth@cygnus.com>
2632
2633         * recog.c (check_asm_operands): Treat indeterminate operand ok
2634         results as success.  Try harder to resolve a matching constraint.
2635         * stmt.c (expand_asm_operands): Recognize when an output operand's
2636         constraint does not allow memory.  Treat indeterminate operand ok
2637         results as failure.  Try harder to resolve a matching constraint.
2638         
2639 Mon Feb  1 15:00:02 1999  Ken Raeburn  <raeburn@cygnus.com>
2640
2641         Use varrays for constant-equivalence data:
2642
2643         * varray.h (struct const_equiv_data): New type.
2644         (union varray_data_tag): New element const_equiv.
2645         (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV): New macros.
2646         (VARRAY_SIZE): New macro, returns number of elements.
2647         * integrate.h: Include varray.h.
2648         (struct inline_remap): Replace const_equiv_map, const_age_map and
2649         const_equiv_map_size with a const_equiv_varray element.
2650         (MAYBE_EXTEND_CONST_EQUIV_VARRAY): New macro; grows varray if
2651         needed.
2652         (SET_CONST_EQUIV_DATA): New macro; sets rtx and age fields
2653         simultaneously, growing the varray if needed.
2654
2655         * integrate.c (global_const_equiv_map,
2656         global_const_equiv_map_size): Deleted, replaced by....
2657         (global_const_equiv_varray): New variable.
2658         (expand_inline_function): References changed.
2659         * integrate.h: Update declarations.
2660
2661         * integrate.c (process_reg_parm, expand_inline_function,
2662         copy_rtx_and_substitute, try_constants, subst_constants,
2663         mark_stores): Use varray allocation and accessor macros, new
2664         integrate.h macros, and global_const_equiv_varray.  Don't
2665         conditionalize non-NULL stores on array size; instead, expand the
2666         array as needed.
2667         * unroll.c (unroll_loop): Likewise.
2668
2669         * unroll.c (unroll_loop): Initialize const_equiv_varray element to
2670         zero.  After allocating varray, always exit through bottom of
2671         function, where it can be deallocated if needed.  Don't explicitly
2672         reallocate const_equiv_map storage; instead, just ensure the
2673         varray has been initialized, and update the global reference.
2674
2675 Mon Feb  1 09:40:25 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2676
2677         * system.h (inline, const): Handle these for stage2 (and later) gcc.
2678
2679         * dwarf2out.c (inline): Don't define.
2680
2681         * dwarfout.c (inline): Likewise.
2682
2683 Sun Jan 31 22:04:37 1999  Richard Henderson  <rth@cygnus.com>
2684
2685         * loop.c (recombine_givs): Dump recombination and derivation data.
2686
2687 Sun Jan 31 20:34:29 1999  Zack Weinberg  <zack@rabi.columbia.edu>
2688
2689         * flags.h: Declare flag_no_ident.
2690         * toplev.c: Define flag_no_ident.  Process -f(no-)ident here.
2691         * c-tree.h: Don't declare flag_no_ident.
2692         * c-decl.c: Don't define flag_no_ident.  Don't process
2693           -f(no-)ident switches here.
2694
2695         * config/elfos.h (ASM_FILE_END): Output final .ident directive
2696           only if !flag_no_ident.
2697         * config/ptx4.h: Likewise.
2698         * config/svr4.h: Likewise.
2699         * config/alpha/elf.h: Likewise.
2700         * config/arm/linux-elf.h: Likewise.
2701         * config/i386/sco5.h: Likewise.
2702         * config/i860/fx2800.h: Likewise.
2703         * config/mips/gnu.h: Likewise.
2704         * config/i386/osfrose.h: Likewise.
2705
2706         * gcc.c (C specs): Map -Qn to -fno-ident.
2707         * objc/lang-specs.h: Likewise.
2708
2709 Mon Feb  1 10:52:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2710
2711         * configure.in: Don't remove loop.o and unroll.o when
2712         enable-haifa is selected.
2713         * configure: Rebuilt.
2714
2715 Sun Jan 31 13:22:02 1999  John Wehle  (john@feith.com)
2716
2717         * i386.md (movsicc, movhicc, movsfcc, movdfcc,
2718         movxfcc, movdicc): Delete unconstrained alternatives.
2719         * i386.c (output_fp_conditional_move,
2720         output_int_conditional_move): Delete unused case.
2721
2722 Sun Jan 31 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
2723
2724         * version.c: Bump for snapshot.
2725
2726 Sun Jan 31 00:52:37 1999  Richard Henderson  <rth@cygnus.com>
2727
2728         * alpha.md (mov patterns): Emit the assembler aliases mov and fmov
2729         instead of bis and cpys.  Combine alternatives where possible.
2730
2731 Sat Jan 30 23:14:13 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2732
2733         * gcov.c (fnotice): Add missing FILE* parameter.
2734         (function_summary): Fix format specifiers in calls to `fnotice'.
2735         (output_data): Likewise.
2736
2737         * toplev.c (fnotice): Constify char* parameter.
2738
2739         * toplev.h (fnotice): Add prototype.
2740         Wrap prototype with BUFSIZ to protect FILE* usage.
2741         
2742 Sun Jan 31 15:33:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2743
2744         * config/c4x/c4x.h (RTX_COSTS): Explicitly define c4x costs.
2745         
2746 Sat Jan 30 08:27:23 1999  Jeffrey A Law  (law@cygnus.com)
2747
2748         * combine.c (distribute_notes): Handle REG_EH_REGION notes.
2749
2750         * alias.c (fixed_scalar_and_varying_struct_p): Add "static" to
2751         function definition.
2752         (aliases_everything_p, write_dependence_p):Likewise.
2753
2754         * install.texi: Fix merge lossages.
2755
2756         * cccp.c (main): Only call setlocale (LC_MESSAGES, ...) if LC_MESSAGES
2757         is defined.
2758         * collect2.c (main): Likewise.
2759         * cppmain.c (main): Likewise.
2760         * gcc.c (main): Likewise.
2761         * gcov.c (main): Likewise.
2762         * protoize.c (main): Likewise.
2763         * toplev.c (main): Likewise.
2764
2765         * pa.md (parallel shift and shiftadd): Mark output of shift as an
2766         earlyclobber.
2767
2768         * loop.c: Disable recent loop changes.  Temporary as Joern
2769         continues to fix problems.
2770
2771 Sat Jan 30 03:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2772
2773         * loop.c (strength_reduce): Size reg_map according to reg_iv_type.
2774
2775 Fri Jan 29 18:26:07 1999  Dave Brolley  <brolley@cygnus.com>
2776
2777         * emit-rtl.c (remove_insn): New function.
2778         * rtl.h (remove_insn): Add prototype.
2779         * function.c (reposition_prologue_and_epilogue_notes): Call remove_insn.
2780
2781 Fri Jan 29 22:34:41 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2782
2783         * loop.c (recombine_givs): Don't try to derive givs that have combined.
2784
2785 Fri Jan 29 15:00:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2786
2787         * toplev.c (notice, fnotice): Check ANSI_PROTOTYPES, not __STDC__,
2788         when declaring arguments and calling va_arg() to initialize them.
2789
2790         * collect2.c (notice): Likewise.
2791
2792         * loop.c (find_life_end): Use PROTO() macro in the prototype.
2793
2794 Fri Jan 29 14:36:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2795
2796         * collect2.c (error): Fix typo in declaration.
2797
2798         * cpperror.c (cpp_message): Likewise.
2799
2800         * cpplib.c (cpp_warning): Likewise.
2801
2802         * cpplib.h (cpp_notice): Use PVPROTO not VPROTO, also add
2803         ATTRIBUTE_PRINTF_1.
2804
2805         * toplev.c (error): Fix typo in declaration.
2806
2807 Fri Jan 29 15:44:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2808
2809         * loop.c (strength_reduce): Fix HAVE_cc0 handling when scanning
2810         forward from cont dominator.
2811
2812 Fri Jan 29 07:10:27 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2813
2814         * cccp.c (eprint_string): Constify a char*.
2815         (notice): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
2816         (vnotice): Constify a char*.
2817         (error): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
2818         (verror): Constify a char*.
2819         (warning): Likewise.  Use PVPROTO not VPROTO, add ATTRIBUTE_PRINTF_1.
2820         (vwarning): Constify a char*.
2821         (error_with_line): Likewise.  Use PVPROTO not VPROTO, add
2822         ATTRIBUTE_PRINTF_2.
2823         (verror_with_line): Constify a char*.
2824         (vwarning_with_line): Likewise.
2825         (warning_with_line): Likewise.  Use PVPROTO not VPROTO, add
2826         ATTRIBUTE_PRINTF_2.
2827         (pedwarn): Constify a char*.  Use PVPROTO not VPROTO, add
2828         ATTRIBUTE_PRINTF_1.
2829         (pedwarn_with_line): Likewise with ATTRIBUTE_PRINTF_2.
2830         (pedwarn_with_file_and_line): Likewise with ATTRIBUTE_PRINTF_4.
2831         Also correct typo in parameter name declaration.
2832         (make_assertion): Constify a char*.
2833         (quote_string_for_make): Likewise.
2834         (deps_output): Likewise.
2835         (fatal): Likewise.  Use PVPROTO not VPROTO, add
2836         ATTRIBUTE_PRINTF_1.  Use ATTRIBUTE_NORETURN not an explicit
2837         "__attribute__ ((noreturn))".
2838         (fancy_abort): Likewise for ATTRIBUTE_NORETURN.
2839         (pfatal_with_name): Likewise.
2840         (pipe_closed): Likewise.
2841         (memory_full): Likewise.
2842
2843 Fri Jan 29 00:14:55 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2844
2845         * loop.c (strength_reduce): Grow set_in_loop / n_times_set /
2846         may_not_optimize to proper size when converting biv increments
2847         into givs.
2848         If necessary, reallocate reg_iv_type / reg_iv_info before calling
2849         recombine_givs.
2850
2851 Thu Jan 28 23:24:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2852
2853         * loop.c (recombine_givs): New parameter unroll_p.  If set, don't
2854         generate complex adds.  Changed caller.
2855         Don't generate adds that cost more than the original one.
2856         (strength_reduce): Warning fixes.
2857
2858 Thu Jan 28 09:41:11 1999  Jeffrey A Law  (law@cygnus.com)
2859
2860         * configure.in (hppa1.0-hp-hpux10*): Use t-pa.
2861         * configure: Rebuilt.
2862
2863 Wed Jan 27 23:39:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2864
2865         * rtl.h (insn_first_p, no_jumps_between_p): Declare.
2866         * rtlanal.c (insn_first_p, no_jumps_between_p): New function.
2867         * loop.h (varray.h): Include.
2868         (struct induction): Change combined_with to unsigned.
2869         New members derived, ix and last_use.
2870         (reg_iv_type, reg_iv_info): Now varray_type.  All references changed.
2871         (REG_IV_TYPE, REG_IV_INFO): Define.
2872         (first_increment_giv, last_increment_giv): Declare.
2873         * loop.c (loop_number_loop_cont): New static variable.
2874         (loop_number_cont_dominator): Likewise.
2875         (reg_iv_type, reg_iv_info): Now varray_type.
2876         (first_increment_giv, last_increment_giv): New variables.
2877         (compute_luids, verify_dominator, find_life_end): New functions.
2878         (cmp_recombine_givs_stats, recombine_givs): Likewise.
2879         (loop_optimize): Allocate loop_number_loop_cont and
2880         loop_number_cont_dominator.  Use compute_luids.
2881         (find_and_verify_loops): Initialize loop_number_loop_cont and
2882         loop_number_cont_dominator.
2883         (strength_reduce): Try to find bivs that can be expressed as givs
2884         of another biv, and to convert biv increments into givs.
2885         Call recombine_givs.  Handle derived givs.
2886         (record_biv): New argument location.  All callers changed.
2887         (record_giv): Initialize derived and last_use fields.
2888         (basic_induction_var): New argument location.  All callers changed.
2889         (combine_givs): Don't combine a DEST_REG giv with a DEST_ADDR giv.
2890         Increment combined_with instead of setting to 1.
2891         * unroll.c (derived_regs): New static variable.
2892         (unroll_loop): Initialize it.
2893         Allocate local_regno according to max_reg_num.
2894         (copy_loop_body): Cope with derived givs.
2895         (find_splittable_givs): Check for Givs made from biv increments.
2896         Set derived_regs for givs.
2897         * Makefile.in (stmt.o, loop.o, unroll.o): Depend on loop.h .
2898
2899 Wed Jan 27 19:31:36 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
2900
2901         * function.c (purge_addressof_1): Handle case when a register
2902         has been used in a wider mode.
2903
2904 1999-01-27  Bruce Korb  <autogen@linuxbox.com>
2905
2906         * fixinc/fixincl.c, fixinc/server.[ch]:
2907         Removed the last of the capitalized variable and proc names.
2908
2909         * fixinc/server.c:  Removed the process open code
2910         * fixinc/procopen.c: New file containing the proc open code
2911         * fixinc/inclhack.tpl: Added code to bypass a readability test
2912         when a file is not present.  A problem on some systems.
2913         * fixinc/inclhack.sh, fixinc/fixincl.sh:  regenerated
2914
2915 Wed Jan 27 11:58:18 1999  Dave Brolley  <brolley@cygnus.com>
2916
2917         * cpplib.h (cpp_notice): Add prototype.
2918
2919 Wed Jan 27 02:20:48 1999  Jeffrey A Law  (law@cygnus.com)
2920
2921         * Merge gcc2 snapshot 19980929.
2922
2923         * cccp.c (PRINTF_PROTO): Remove.
2924         (PRINTF_PROTO_{1,2,3,4}: Likewise.
2925         * cexp.y: Likewise.
2926         * system.h: Add PRINTF_PROTO and PRINTF_PROTO_{1,2,3,4}.
2927
2928         * fix-header.c (cpp_file_lin_for_message): Delete.  In libcpp.
2929         (cpp_print_containing_files, v_cpp_message, cpp_message): Likewise.
2930         (cpp_fatal, cpp-Pfatal_with_name): Likewise.
2931
2932         * gen-protos.c (hashf): Delete in cpphash.o
2933         * gen-protos.c (hashf): Delete in cpphash.o
2934
2935         * expr.c: Do not merge SAVE_STACKAREA_MODE changes.
2936         * expmed.c: Likewise.
2937         * rs6000.md: Likewise.
2938
2939         * rs6000.c, rs6000.md: Do not merge formatting changes yet.
2940
2941 Wed Jan 27 01:13:42 1999  Richard Henderson  <rth@cygnus.com>
2942
2943         * rs6000.c (input_operand): Don't expect CONST around CONSTANT_P_RTX.
2944         * rs6000.md (movsi, movdi): Likewise.
2945
2946 Tue Jan 26 13:31:38 1999  Jim Wilson  <wilson@cygnus.com>
2947
2948         * function.c (expand_function_end): Pass arg_pointer_save_area to
2949         validize_mem before using it.  Emit code into a sequence.
2950
2951 Tue Jan 26 13:41:38 1999  David Edelsohn  <edelsohn@gnu.org>
2952
2953         * rs6000.md (doz + set cr and or + set cr patterns): Add missing
2954         '#' to split patterns.  Correct indentation of some new patterns.
2955
2956 1999-01-26 12:11 -0500  Zack Weinberg  <zack@midnite.ec.rhno.columbia.edu>
2957
2958         * cppfiles.c (safe_read): Deleted.  
2959         (read_and_prescan): New function, replaces safe_read, converts
2960         and/or warns about trigraphs, silently converts odd line
2961         terminators (\r, \n\r, \r\n).  Warns about no newline at EOF.
2962         (finclude): Use read_and_prescan; turn off nonblocking mode on
2963         the input descriptor; remove file-size-examination and
2964         no-newline-at-EOF gunk which is longer necessary; be more
2965         careful about checking that we've been handed a legitimate
2966         file to read (only real files, pipes, and ttys are acceptable).
2967         * cpplib.h (cpp_options): Rename no_trigraphs flag to 
2968         `trigraphs' and invert its sense.
2969         (trigraph_table): Declare.
2970         (cpp_warning_with_line): Prototype.
2971         * cpplib.c: Remove all references to trigraph_pcp. Define
2972         trigraph_table; initialize it in initialize_char_syntax.  Open
2973         files in nonblocking mode.  s/no_trigraphs/trigraphs/
2974         throughout, and invert sense.  Put cpp_warning_with_line back
2975         in and export it.
2976
2977 Tue Jan 26 23:21:49 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2978
2979         * config/c4x/c4x.h (COUNTER_REGS): New register class.
2980         * config/c4x/c4x.md (*rptb_init): Change constraints.
2981         (rptb_end): Emit alternate looping instructions if 
2982         RC register not allocated for loop counter.
2983         (decrement_and_branch_on_count): Allow other registers
2984         for loop counter.
2985
2986 1999-01-25 14:26 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
2987
2988         * cppexp.c (struct arglist): Removed.
2989         (parse_number): Use HOST_WIDE_INT for the accumulator.
2990         Allow two `l' suffixes unless C89.  Clean up.  Make static.
2991         (parse_charconst): New function broken out of cpp_lex.
2992         Code cleaned up drastically.  Don't use a token_buffer.
2993         (token_buffer): Removed.
2994         (cpp_lex): Don't call parse_number on a constant string.
2995         Use parse_charconst.
2996         (cpp_parse_expr): Properly handle an ERROR op returned by
2997         cpp_lex. 
2998
2999 1999-01-25 14:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
3000
3001         * cpplib.c: Don't include signal.h, sys/times.h, or
3002         sys/resource.h. Don't declare localtime.
3003         (macroexpand): Handle special symbols here.
3004         (push_macro_expansion): Chop off the trailing '@ ' if possible
3005         here.
3006         (cpp_get_token): Don't do either of the above two things here.
3007         Move `string' label just after case '"' so that wide strings
3008         don't crash the preprocessor.
3009
3010 Sun Jan 24 20:13:45 1999  David Edelsohn  <edelsohn@gnu.org>
3011
3012         * rs6000.md (left shift + set cr patterns): Add missing '#' to
3013         split patterns.
3014         (move register + set cr pattern): Ditto.
3015         (movdi, !TARGET_POWERPC64 splitters): Add back in Jan. 15th patch,
3016         inadvertently deleted.
3017
3018 Sun Jan 24 08:07:59 1999  Jeffrey A Law  (law@cygnus.com)
3019
3020         * stmt.c (stmt_loop_nest_empty): New function.
3021         * tree.h (stmt_loop_nest_empty): Declare it.
3022         * rtl.def (CALL_PLACEHOLDER): New rtx code.
3023
3024 Sun Jan 24 21:24:43 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3025
3026         * config/c4x/c4x.c (c4x_emit_move_sequence, c4x_encode_section_info):
3027         New functions.
3028         (c4x_check_legit_addr): Remove USE and PLUS, allow
3029         LO_SUM, and disable SYMBOL_REF, LABEL_REF, and CONST cases.
3030         (c4x_legitimize_address): Penalise SYMBOL_REF, LABEL_REF, and 
3031         CONST cases.  Add LO_SUM.
3032         (c4x_print_operand): Modified 'C' and 'R' cases for calls.
3033         Added 'U' case.  Remove dependence on SYMBOL_REF_FLAG.
3034         (c4x_print_operand_address): Handle LO_SUM.
3035         (c4x_scan_for_ldp): Delete.  Hooray!
3036         (c4x_process_after_reload): Remove call to c4x_scan_for_ldp.
3037         Split all insns.
3038         (c4x_immed_int_constant): Renamed from c4x_int_constant.  All callers
3039         changed.
3040         (c4x_immed_float_constant): Renamed from c4x_float_constant.  All
3041         callers changed.
3042         (c4x_T_constraint): Allow LO_SUM, disable SYMBOL_REF, LABEL_REF, 
3043         and CONST.
3044         (c4x_U_constraint, symbolic_operand): New functions.
3045         (src_operand): Allow 'I' constants in HImode.  Allow LO_SUM,
3046         disable SYMBOL_REF, LABEL_REF, and CONST.
3047         (lsrc_operand, tsrc_operand): Call src_operand instead of
3048         general_operand.
3049         (c4x_operand_subword): Update comments.
3050
3051         * config/c4x/c4x.c (TARGET_LOAD_ADDRESS): New macro.
3052         (LEGITIMATE_CONSTANT_P): Allow SYMBOL_REF, LABEL_REF, CONST,
3053         plus HIGH and LO_SUM for the C40.
3054         (ENCODE_SECTION_INFO): Define macro.
3055         (symbolic_operand, c4x_U_constraint, c4x_emit_move_sequence): New
3056         prototypes.
3057         (PREDICATE_CODES): Add symbolic_operand.
3058
3059         * config/c4x/c4x.md (movqi, movgqf, movhi, movhi): Call
3060         c4x_emit_move_sequence.
3061         (floatunsqiqf2, fixuns_truncqfqi2): Rework emitted RTL
3062         to avoid symbol references.
3063         (all patterns with g constraint): Replace 'g' constraint with 'rIm'.
3064         (set_high): Renamed from set_high_use.
3065         (set_lo_sum): Renamed from set_ior_lo_use.
3066         (all call patterns): Make MEM explicit in call address operands.
3067         Modified output templates to use 'U' modifier.
3068         
3069 Sun Jan 24 01:15:05 PST 1999 Jeff Law  (law@cygnus.com)
3070
3071         * version.c: Bump for snapshot.
3072
3073 Sat Jan 23 22:34:57 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3074
3075         * final.c (bb_str): Qualify a char* with the keyword `const'.
3076         (add_bb_string, final_scan_insn, output_asm_insn): Likewise.
3077
3078         * fix-header.c (read_scan_file): Likewise.
3079
3080         * genoutput.c (output_epilogue, process_template): Likewise.
3081         
3082         * local-alloc.c (requires_inout, block_alloc): Likewise.
3083
3084         * output.h (output_asm_insn, assemble_string): Likewise.
3085
3086         * recog.c (recog_constraints, check_asm_operands,
3087         decode_asm_operands, extract_insn, preprocess_constraints,
3088         constrain_operands): Likewise.
3089
3090         * recog.h (operand_alternative, recog_constraints, insn_template,
3091         insn_outfun, insn_operand_constraint, insn_name): Likewise.
3092
3093         * regclass.c (record_reg_classes, scan_one_insn): Likewise.
3094
3095         * regmove.c (find_matches): Likewise.
3096
3097         * reload.c (alternative_allows_memconst): Likewise.
3098
3099         * reload1.c (constraint_accepts_reg_p,
3100         reload_cse_simplify_operands): Likewise.
3101
3102         * rtl.h (decode_asm_operands): Likewise.
3103
3104         * scan.h (fn_decl): Likewise.
3105
3106         * varasm.c (assemble_string): Likewise.
3107
3108 Sat Jan 23 01:37:36 1999  Jeffrey A Law  (law@cygnus.com)
3109
3110         * configure.in (gcc_tooldir): Handle case where exec_prefix has
3111         not been explicitly set.
3112         * configure: Rebuilt.
3113
3114         * fold-const.c (lshift_double): Mark 'prec' arguments as possibly
3115         unused.
3116
3117         * bitmap.h (bitmap_head_def): Make indx field unsigned.
3118
3119         * configure.in (gcc_tooldir): When not making a relative gcc_tooldir,
3120         use $exec_prefix/$target_alias for gcc_tooldir.
3121         * configure: Rebuilt.
3122
3123 Fri Jan 22 11:48:56 1999  Richard Henderson  <rth@cygnus.com>
3124
3125         * cppp.c (xrealloc): Fix typo last change.
3126         * cppalloc.c, gcc.c, genattr.c, genattrtab.c, gencodes.c: Likewise.
3127         * genconfig.c, genemit.c, genextract.c, genflags.c: Likewise.
3128         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
3129
3130 1999-01-22  Michael Meissner  <meissner@cygnus.com>
3131
3132         * rs6000.h (CR0_REGNO_P): New macro to test if cr0.
3133         (CR_REGNO_NOT_CR0_P): New macro to test if cr, but not cr0.
3134         (PREDICATE_CODES): Add cc_reg_not_cr0_operand.
3135         (cc_reg_not_cr0_operand): Add declaration.
3136
3137         * rs6000.c (cc_reg_not_cr0_operand): Return true if register is a
3138         pseudo register, or a control register that is not CR0.
3139
3140         * rs6000.md (all combiner patterns building . instructions): For
3141         all `.' instructions that do something and set cr0, add an
3142         alternative that does the operation, and then sets a different
3143         flag, in order to avoid using the costly mcrf instruction and also
3144         allow cr0 to be clobbered in asm statements.  Also fix a few
3145         patterns that used the wrong register.
3146
3147         * rs6000.h (rs6000_cpu_select): Make string, names be const char *.
3148         (rs6000_debug_name): Make const char *, not char *.
3149
3150         * sysv4.h (rs6000_{abi,sdata}_name): Make const char *.
3151         
3152         * rs6000.c (rs6000_{debug,abi,sdata}_name): Make const char *.
3153         (rs6000_select): Use const char * in casts.
3154
3155 Fri Jan 22 07:43:01 1999  Jeffrey A Law  (law@cygnus.com)
3156         
3157         * Makefile.in (gcc_tooldir): Move before first reference.
3158         Let autoconf substitute in a value.
3159         * configure.in (gcc_tooldir): Only use a relative path to the
3160         tool directory if $exec_prefix == $prefix.
3161         * configure: Rebuilt.
3162
3163         * Makefile.in (tooldir): Replace with gcc_tooldir.
3164
3165 Thu Jan 21 23:21:57 1999  Jeffrey A Law  (law@cygnus.com)
3166
3167         * m68k.md (ashldi_const): Disable for !TARGET_5200.  Fix indention.
3168         (ashldi3 expander): Similarly.  Update comments.
3169         (ashrdi_const, lshrdi_const): Fix indention.
3170         (ashrdi3, lshrdi3): FIx indention.  Update comments.
3171
3172 Thu Jan 21 21:53:36 1999  Richard Henderson  <rth@cygnus.com>
3173
3174         * emit-rtl.c (try_split): Don't try to split non-instructions.
3175
3176 Thu Jan 21 23:47:30 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
3177
3178         * expr.c (emit_push_insn): Fix dumb typo.
3179
3180 Thu Jan 21 20:24:02 1999  Richard Henderson  <rth@cygnus.com>
3181
3182         * rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Recognize and accept
3183         transformations that we have performed earlier.
3184         * alpha.h (LEGITIMIZE_RELOAD_ADDRESS): Likewise.
3185
3186         * alpha.md (prologue_stack_probe_loop): Don't do our own label
3187         handling, call gen_label_rtx instead.
3188
3189 Thu Jan 21 17:45:18 1999  Richard Henderson  <rth@cygnus.com>
3190
3191         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): Add missing `then'.
3192
3193         * cccp.c (xrealloc): Call malloc given a NULL old pointer.
3194         * collect2.c, cppalloc.c, gcc.c, genattr.c, genattrtab.c: Likewise.
3195         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
3196         * genflags.c, genopinit.c, genoutput.c, genpeep.c: Likewise.
3197         * genrecog.c, mips-tfile.c, protoize.c: Likewise.
3198
3199 Thu Jan 21 19:44:55 1999  Michael Meissner  <meissner@cygnus.com>
3200
3201         * configure.in ({rs6000|powerpc}-ibm-aix4.[12]*): If
3202         --with-gnu-ld, use x-aix41-gld instead of x-aix41 to suppress
3203         adding -Wl,-bbigtoc to BOOT_LDFLAGS.
3204         * configure: Regenerate.
3205
3206         * config/rs6000/x-aix41-gld: New file, don't set BOOT_LDFLAGS.
3207
3208 Thu Jan 21 15:48:03 1999  Dave Brolley  <brolley@cygnus.com>
3209
3210         * cppexp.c (cpp_lex): Allocate token_buffer dynamically.
3211
3212 Thu Jan 21 14:18:04 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
3213
3214         * expr.c (MOVE_BY_PIECES_P): Define condition for deciding to use
3215         move_by_pieces.
3216         (MOVE_MAX_PIECES): Define maximum number of bytes to move at once.
3217         (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): Define defaults.
3218         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define defaults.
3219         (move_by_pieces): Use new macros.
3220         (emit_block_move): Use new macros.
3221         (clear_by_pieces): Use new macros.
3222         (clear_storage): Use new macros.
3223         (emit_push_insn): Use new macros.
3224         (expand_expr): Use new macros.
3225         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_LOAD_PRE_DECREMENT): 
3226         Define.
3227         (USE_STORE_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Define.
3228         (MOVE_BY_PIECES_P): Define based on alignment and TARGET_SMALLCODE.
3229         (MOVE_MAX_PIECES): move 8 bytes on SH4.
3230         * tm.texi(MOVE_BY_PIECES_P, MOVE_MAX_PIECES, USE_LOAD_POST_INCREMENT,
3231         USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT, 
3232         USE_STORE_PRE_DECREMENT): Describe new macros.
3233
3234 Thu Jan 21 14:13:31 1999  Vladimir N. Makarov  <vmakarov@cygnus.com>
3235
3236         * varasm.c (output_constant_pool): Use floor_log2 instead of
3237         exact_log2 for ASM_OUTPUT_ALIGN.
3238
3239         * stor-layout.c (layout_type): Do machine-dependent extra alignment.
3240
3241         * emit-rtl.c (operand_subword): Handle case when a subword outside
3242         the operand.
3243
3244         * tm.texi (ROUND_TYPE_{SIZE,ALIGN}): More accurate descriptions of
3245         the macros.
3246
3247 Thu Jan 21 01:59:30 1999  Richard Henderson  <rth@cygnus.com>
3248
3249         * cse.c (fold_rtx): Revert 29 Dec change.
3250         (cse_insn): Revert 12 Jan change.
3251         * expr.c (expand_builtin): Don't emit CONST around CONSTANT_P_RTX.
3252         * regclass.c (reg_scan_mark_refs): Revert 29 Dec change.
3253         * rtl.def: Likewise.
3254         * rtl.h (CONSTANT_P): Likewise.
3255
3256         * expr.c (emit_move_insn): Never try to flush CONSTANT_P_RTX
3257         to memory.
3258         * recog.c (immediate_operand): Accept CONSTANT_P_RTX.
3259         * alpha.c (input_operand): Likewise.
3260         * c4x.c (const_operand): Likewise.
3261
3262         * explow.c (allocate_dynamic_stack_space): Use register_operand
3263         instead of arith_operand, which does not exist.
3264
3265         * 1750a.h: Fix comment closure.
3266         * a29k.c (a29k_set_memflags): Fix typo in 19 Jan change.
3267         * arc.md (one_cmplsi2_set_cc_insn): Fix set mode mismatch.
3268         * arm.h (TARGET_SWITCHES): Fix typo.
3269         * i370.md (anon mult and div patterns): Fix set mode mismatch.
3270         * i860.c (output_delayed_branch): Fix operands to constrain_operands.
3271         (output_delay_insn): Likewise.
3272         * m88k.md (anon rotate insns): Fix set mode mismatch.
3273         (anon BLKmode moves): Commonize and fix set mode mismatches.
3274         * ns32k.md (udivmoddi[shq]i4_internal): Fix mode mismatch.
3275         * romp.md (movdf): Fix typo.
3276
3277 Thu Jan 21 00:29:35 1999  Nathan Sidwell  <nathan@acm.org>
3278
3279         * Makefile.in (install-common): Remove extraneous chmod for gcov
3280         install.
3281
3282 Wed Jan 20 18:15:08 1999  Dave Brolley  <brolley@cygnus.com>
3283
3284         * function.c (assign_parms): Save and restore setting of
3285         TREE_USED (parm).
3286
3287 Wed Jan 20 12:51:42 1999  Mark Mitchell  <mark@markmitchell.com>
3288
3289         * arm.md: Use MEM_COPY_ATTRIBUTES where appropriate throughout.
3290         Pass MEM_SCALAR_P to arm_gen_store_multiple where appropriate.
3291
3292 Tue Jan 19 21:20:52 1999  Richard Henderson  <rth@cygnus.com>
3293
3294         * recog.c (pop_operand): New function.
3295         * recog.h (pop_operand): Declare it.
3296         * genrecog.c (preds): Define it.
3297
3298         * expr.c (do_jump_for_compare): Handle conditional branch expanders
3299         emitting multiple jump instructions.
3300         * jump.c (condjump_label): New function.
3301         * rtl.h (condjump_label): Declare it.
3302
3303 Tue Jan 19 21:08:20 1999  Richard Henderson  <rth@cygnus.com>
3304
3305         * expr.c (emit_move_insn_1): Revert 17 Dec change.  Don't emit
3306         clobber during or after reload.
3307
3308 Tue Jan 19 16:56:03 1999  Richard Henderson  <rth@cygnus.com>
3309
3310         * genoutput.c (name_for_index): New function.
3311         (scan_operands, validate_insn_alternatives): Use it.
3312         * genrecog.c (insn_name_ptr_size): New variable.
3313         (make_insn_sequence): Fill in insn_name_ptr.
3314         (merge_trees): Use it.
3315
3316 Tue Jan 19 16:37:36 1999  Richard Henderson  <rth@cygnus.com>
3317
3318         * i386/isc.h (TARGET_DEFAULT): Define symbolicly.
3319         * i386/isccoff.h, i386/next.h, i386/sco.h, i386/sco5.h: Likewise.
3320         * i386/scodbx.h, i386/sequent.h, i386.unix.h: Likewise.
3321
3322 Tue Jan 19 15:00:10 1999  Jeffrey A Law  (law@cygnus.com)
3323
3324         * loop.c (NUM_STORES): Delete.
3325         (loop_store_mems): Turn into an EXPR_LIST of MEMs.
3326         (prescan_loop): Properly initialize loop_mems_idx.
3327         (note_addr_stored): Simplify using list structure instead of
3328         fixed sized array.
3329         (invariant_p, check_dbra_loop, load_mems): Similarly.
3330
3331         * flow.c (invalidate_from_autoinc): New function.
3332         (mark_set_1, mark_used_regs): Use it.
3333
3334         * Makefile.in (protoize.o, unprotoize.o): Depend on Makefile.
3335
3336 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
3337
3338         * invoke.texi (-mlong-double-64): New option description.
3339
3340 1999-01-19  Jim Wilson  <wilson@cygnus.com>
3341
3342         * libgcc2.c: Change all uses of LONG_DOUBLE_TYPE_SIZE to
3343         LIBGCC2_LONG_DOUBLE_TYPE_SIZE.
3344         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.  Set to LONG_DOUBLE_TYPE_SIZE
3345         if not defined.
3346         * i960/i960.h (MULTILIB_DEFAULTS): Define to mnumerics.
3347         (CPP_SPECS): Add -mlong-double-64 support.
3348         (TARGET_FLAG_LONG_DOUBLE_64, TARGET_LONG_DOUBLE_64): New.
3349         (TARGET_SWITCHES): Add -mlong-double-64 support.
3350         (LONG_DOUBLE_TYPE_SIZE): Likewise.
3351         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
3352         * i960/vx960-coff.h (MULTILIB_DEFAULTS): Define to msoft-float.
3353         (CPP_SPECS): Add -mlong-double-64 support.
3354         * i960/t-960bare (MULTILIB_OPTIONS): Add mlong-double-64.
3355         (MULTILIB_DIRNAMES): Add ld64.
3356         * i960/t-vxworks960 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Likewise.
3357
3358 Tue Jan 19 11:54:04 1999  Jason Merrill  <jason@yorick.cygnus.com>
3359
3360         * calls.c (expand_call): Strip a TARGET_EXPR if we're passing by
3361         invisible reference.
3362
3363 Tue Jan 19 14:51:36 1999  David Edelsohn  <edelsohn@gnu.org>
3364
3365         * rs6000.c (offsettable_addr_operand): Delete.
3366         (offsettable_mem_operand): New function.
3367         * rs6000.h (PREDICATE_CODES): Reflect function change.
3368         (RS6000_SAVE_TOC): Represent address as MEM.
3369         * win-nt.h (RS6000_SAVE_TOC): Same.
3370         * rs6000.md (indirect calls): Change offsettable address parameter
3371         to offsettable memory parameter.
3372
3373 Tue Jan 19 10:24:53 1999  Mark Mitchell  <mark@markmitchell.com>
3374
3375         * rtl.h (rtx_def): Update documentation.
3376         (MEM_IN_STRUCT_P): Likewise.
3377         (MEM_SCALAR_P): New macro.
3378         (MEM_COPY_ATTRIBUTES): Likewise.
3379         (MEM_SET_IN_STRUCT_P): Likewise.
3380         * rtl.texi (MEM_SCALAR_P): Document.
3381         * alias.c (canon_rtx): Use MEM_COPY_ATTRIBUTES.
3382         (fixed_scalar_and_varying_struct_p): New function.  Use
3383         MEM_SCALAR_P rather than !MEM_IN_STRUCT_P.
3384         (aliases_everything_p): Likewise.
3385         (true_dependence): Use them.
3386         (write_dependence_p): New function, containing code common to
3387         anti_dependence and output_dependence.
3388         (anti_dependence): Use it.
3389         (output_dependence): Likewise.
3390         * calls.c (save_fixed_argument_area): Don't clear
3391         MEM_IN_STRUCT_P. 
3392         (expand_call): Use MEM_SET_IN_STRUCT_P.
3393         (emit_library_call): Don't clear MEM_IN_STRUCT_P.
3394         (emit_library_call_value): Likewise.
3395         (store_one_arg): Use MEM_SET_IN_STRUCT_P.
3396         * combine.c (simplify_rtx): Use MEM_COPY_ATTRIBUTES.
3397         (make_extraction): Likewise.
3398         (simplify_shift_const): Likewise.
3399         (gen_lowpart_for_combine): Likewise.
3400         * cse.c (gen_lowpart_if_possible): Use MEM_COPY_ATTRIBUTES.
3401         * emit-rtl.c (operand_subword): Likewise.
3402         (change_address): Likewise.
3403         * explow.c (stabilize): Use MEM_COPY_ATTRIBUTES.
3404         * expr.c (protect_from_queue): Use MEM_COPY_ATTRIBUTES.
3405         (emit_group_store): Use MEM_SET_IN_STRUCT_P.
3406         (copy_blkmode_from_reg): Likewise.
3407         (store_field): Likewise.
3408         (expand_expr): Remove bogus guesswork setting MEM_IN_STRUCT_P
3409         heuristically.  Use MEM_SET_IN_STRUCT_P.
3410         (get_memory_rtx): Likewise.
3411         * final.c (alter_subreg): Use MEM_COPY_ATTRIBUTES.
3412         * function.c (assign_stack_temp): Clear MEM_SCALAR_P and
3413         MEM_ALIAS_SET on newly returned MEMs.
3414         (assign_temp): Use MEM_SET_IN_STRUCT_P.
3415         (put_reg_into_stack): Likewise.
3416         (fixup_var_refs1): Use MEM_COPY_ATTRIBUTES.
3417         (gen_mem_addressof): Use MEM_SET_IN_STRUCT_P.
3418         (assign_parms): Likewise.
3419         (expand_function): Likewise.
3420         * integrate.c (expand_inline_function): Likewise.
3421         (copy_rtx_and_substitute): Use MEM_COPY_ATTRIBUTES.
3422         * loop.c (note_addr_stored): Remove check on MEM_IN_STRUCT_P.
3423         * optabs.c (gen_move_insn): Use MEM_COPY_ATTRIBUTES.
3424         * print-rtl.c (print_rtx): Print /f for frame_related.
3425         * recog.c (validate_replace_rtx_1): Use MEM_COPY_ATTRIBUTES.
3426         * reload1.c (reload): Copy MEM_SCALAR_P as well.
3427         * stmt.c (expand_decl): Use MEM_SET_IN_STRUCT_P.
3428         (expand_anon_union_decl): Use MEM_COPY_ATTRIBUTES.
3429         * varasm.c (make_decl_rtl): Use MEM_SET_IN_STRUCT_P.
3430         (output_constant_def): Likewise.
3431         * a29k.c (a29k_set_memflags_1): Take scalar_p.
3432         Set MEM_SCALAR_P.
3433         (a29k_set_memflags): Use it.
3434         * alpha.c (get_aligned_mem): Use MEM_COPY_ATTRIBUTES.
3435         * c4x.c (c4x_scan_for_ld): Likewise.
3436         * h8300.c (fix_bit_operand): Likewise.
3437         * m88k.c (legitimize_address): Likewise.
3438         (block_move_loop): Likewise.
3439         (block_move_no_loop): Likewise.
3440         (block_move_sequence): Likewise.
3441         (m88k_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
3442         * mips/abi64.h (SETUP_INCOMING_VARARGS): Likewise.
3443         * rs6000.c (expand_block_move_insn): Use MEM_COPY_ATTRIBUTES.
3444         * sh.c (sh_builtin_saveregs): Use MEM_SET_IN_STRUCT_P.
3445         * arm.h (arm_gen_load_multiple): Take scalar_p.
3446         (arm_store_load_multiple): Likewise.
3447         * arm.c (arm_gen_load_multiple): Likewise.
3448         (arm_gen_store_multiple): Likewise.
3449         (arm_gen_movstrqi): Treat MEM_SCALAR_P like MEM_IN_STRUCT_P.
3450         
3451 Tue Jan 19 12:30:37 EST 1999  Andrew MacLeod  <amacleod@cygnus.com>
3452
3453         * optabs.c (emit_libcall_block): Add a REG_EH_REGION reg note to all
3454         calls within a libcall block to indicate no throws are possible.
3455         * flow.c (find_basic_blocks, find_basic_blocks_1): Don't look for 
3456         libcall blocks. Don't add edges to exception handlers if we see 
3457         a REG_EH_REGION note with a value of 0.
3458         (make_edges): Override active_eh_region vector if the call has a note
3459         indicating the call does not throw.
3460
3461 1999-01-19  Vladimir N. Makarov  <vmakarov@cygnus.com>
3462
3463         * config/rs6000/sysv4.h (CC1_SPEC): Fix correct numbers of {}.
3464
3465 Tue Jan 19 06:26:30 1999  Jeffrey A Law  (law@cygnus.com)
3466
3467         * Makefile.in (cccp.o, cpplib.o): Depend on Makefile.
3468
3469 Mon Jan 18 09:56:41 1999  Jason Merrill  <jason@yorick.cygnus.com>
3470
3471         * invoke.texi (C++ Dialect Options): Document -fno-rtti.
3472
3473 1999-01-18  Vladimir N. Makarov  <vmakarov@cygnus.com>
3474
3475         *  invoke.texi (-mcpu=740, -mcpu=750): New options.
3476         (-m(no-)multiple, -m(no-)string): Describe cases for PPC740 &
3477         PPC750.
3478
3479 1999-01-18  Michael Meissner  <meissner@cygnus.com>
3480
3481         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
3482         supported with -mcpu=xxx.
3483         (processor_type): Add PROCESSOR_PPC750.
3484         (ADJUST_PRIORITY): Call rs6000_adjust_priority.
3485         (RTX_COSTS): Supply costs for 750 multiply/divide operations.
3486         (rs6000_adjust_priority): Add declaration.
3487         
3488         * rs6000.c (rs6000_override_options): -mcpu={750,740} now sets the
3489         processor type as 750, not 603.  Allow -mmultiple and -mstring on
3490         little endian 750 systems.
3491         (rs6000_adjust_priority): Stub for now.
3492         (get_issue_rate): The PowerPC 750 can issue 2 instructions/cycle.
3493
3494         * rs6000.md (function/cpu attributes): Add initial ppc750 support.
3495
3496         * sysv4.h (STRICT_ALIGNMENT): Don't force strict alignment if
3497         little endian.
3498         (CC1_SPEC): Pass -mstrict-align if little endian, and not
3499         overridden.
3500         (CC1_ENDIAN_{LITTLE,BIG,DEFAULT}_SPEC): Endian specific configs.
3501         (SUBTARGET_EXTRA_SPECS): Add cc1 endian specs.
3502
3503         * {sysv4,eabi}le.h (CC1_ENDIAN_DEFAULT_SPEC): Override, default is
3504         little endian.
3505
3506         * t-ppcgas (MULTILIB_*): Delete obsolete Solaris multilibs.
3507
3508 Mon Jan 18 12:03:08 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3509
3510         * config/mips/mips.md (div_trap): Split div_trap_mips16
3511         from div_trap.  
3512         (div_trap_normal,div_trap_mips16): Correct the length attributes.
3513
3514 Mon Jan 18 11:48:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3515
3516         * cpplib.c (special_symbol): Qualify a char* with the `const' keyword.
3517         Instead of writing to const char *buf directly, use a non-const
3518         variable `wbuf' to allocate and write a string, then set buf = wbuf.
3519
3520         * cppulp.c (user_label_prefix): Qualify a char* with the `const'
3521         keyword.
3522
3523         * dyn-string.c (dyn_string_append): Likewise.
3524
3525         * dyn-string.h (dyn_string_append): Likewise.
3526
3527         * final.c (end_final, output_operand_lossage, asm_fprintf): Likewise.
3528
3529         * output.h (end_final, output_operand_lossage, asm_fprintf,
3530         named_section, decode_reg_name, make_decl_rtl, user_label_prefix):
3531         Likewise.
3532
3533         * profile.c (init_branch_prob): Likewise.
3534
3535         * toplev.c (set_target_switch, vmessage,
3536         v_message_with_file_and_line, v_message_with_decl,
3537         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
3538         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
3539         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
3540         v_pedwarn_with_file_and_line, vsorry, v_really_sorry,
3541         open_dump_file, dump_rtl, clean_dump_file, 
3542         print_version, print_single_switch, print_switch_values,
3543         dump_base_name, debug_args, lang_independent_options,
3544         user_label_prefix, documented_lang_options, target_switches,
3545         target_options, print_time, pfatal_with_name, fatal_io_error,
3546         fatal_insn, default_print_error_function, print_error_function,
3547         report_error_function, error_with_file_and_line, error_with_decl,
3548         error_for_asm, error, fatal, warning_with_file_and_line,
3549         warning_with_decl, warning_for_asm, warning, pedwarn,
3550         pedwarn_with_decl, pedwarn_with_file_and_line, sorry,
3551         really_sorry, botch, output_quoted_string, output_file_directive,
3552         open_dump_file, rest_of_decl_compilation, display_help, main):
3553         Likewise.
3554
3555         * toplev.h (print_time, fatal, fatal_io_error, pfatal_with_name,
3556         fatal_insn, warning, error, pedwarn, pedwarn_with_file_and_line,
3557         warning_with_file_and_line, error_with_file_and_line, sorry,
3558         really_sorry, default_print_error_function, report_error_function,
3559         rest_of_decl_compilation, pedwarn_with_decl, warning_with_decl,
3560         error_with_decl, error_for_asm, warning_for_asm, output_quoted_string,
3561         output_file_directive, botch): Likewise.
3562
3563         * tree.h (make_decl_rtl): Likewise.
3564
3565         * varasm.c (strip_reg_name, named_section, decode_reg_name,
3566         make_decl_rtl): Likewise.
3567         
3568 Mon Jan 18 11:35:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
3569
3570         * Makefile.in (TCL_LIBRARY): Use 'cd' to find the library
3571         directory logically rather than physically. 
3572
3573 Mon Jan 18 09:05:37 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3574
3575         * loop.c (insert_bct): Hide the definition of variables
3576         `increment_direction', `compare_direction', `add_iteration' and
3577         `loop_var_mode'.
3578
3579         * recog.c (mode_dependent_address_p): Mark parameter `addr' with
3580         ATTRIBUTE_UNUSED.  Mark label `win' with ATTRIBUTE_UNUSED_LABEL.
3581         (mode_independent_operand): Mark label `lose' with
3582         ATTRIBUTE_UNUSED_LABEL.
3583
3584         * regclass.c (n_occurrences): Remove prototype and definition.
3585
3586         * reload.c (find_reloads_address_1): Mark variable `tem' with
3587         ATTRIBUTE_UNUSED.
3588
3589         * reload1.c (reload): Cast the first two arguments of `bcopy' to PTR.
3590
3591         * sbitmap.c (sbitmap_copy): Likewise.
3592
3593         * scan-decls.c (scan_decls): Hide label `handle_comma'.
3594
3595         * toplev.c (output_lang_identify): Mark prototype with
3596         ATTRIBUTE_UNUSED.
3597
3598         * tree.c (make_node): Cast the first argument of `bzero' to PTR.
3599         (make_tree_vec): Likewise.
3600         (build1): Likewise.
3601
3602         * varasm.c (assemble_static_space): Mark variable `tem' with
3603         ATTRIBUTE_UNUSED.
3604
3605 Mon Jan 18 04:28:36 1999  Nathan Sidwell  <nathan@acm.org>
3606
3607         * Makefile.in (GCOV_INSTALL_NAME): New macro.
3608         (install-common): Use it.
3609         (uninstall): Use it.
3610         (uninstall): Use correct names for protoize and unprotoize.
3611
3612 Mon Jan 18 03:52:56 1999  Christian Bruel <Christian.Bruel@st.com>
3613                           Jeffrey A Law  (law@cygnus.com)
3614
3615         * flow.c (last_mem_set): Delete variable.  References removed.
3616         (mem_set_list): New variable.
3617         (life_analysis): Initialize and finalize alias analysis.
3618         (propagate_block); Initialize mem_set_list.  Clear for CALL_INSNs.
3619         (insn_dead_p): For a store to memory, search the entire mem_set_list
3620         for a match.
3621         (mark_set_1): Kill entries on the mem_set_list for aliased writes or
3622         changes to their addresses.  Add new entries to the mem_set_list for
3623         memory writes writes.
3624         (mark_used_regs): Kill entries on the mem_set_list which may be
3625         referenced by a load operation.
3626
3627 Mon Jan 18 01:01:02 1999  Jeffrey A Law  (law@cygnus.com)
3628
3629         * alias.c (base_alias_check): Add missing return for differing
3630         symbols case.
3631
3632 Mon Jan 18 00:36:13 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3633
3634         * mips-tdump.c (print_file_desc): Handle unknown filenames and
3635         missing local symbols.
3636
3637 Sun Jan 17 21:04:31 1999  Richard Henderson  <rth@cygnus.com>
3638
3639         * jump.c (rtx_renumbered_equal_p): Special case CODE_LABEL.
3640
3641         * system.h (bcopy): Implement with memmove not memcpy.
3642
3643 Sun Jan 17 19:23:20 1999  Jeffrey A Law  (law@cygnus.com)
3644
3645         * Makefile.in (cppulp.o): Add dependencies.
3646
3647         * i386.md (integer conditional moves): Add missing earlyclobbers.
3648
3649         * regmove.c (optimize_reg_copy_1): Undo Aug 18 change.  Update
3650         REG_N_CALLS_CROSSED and REG_LIVE_LENGH if and only if we change
3651         where a register is live.
3652
3653 Sun Jan 17 03:20:47 1999  H.J. Lu  (hjl@gnu.org)
3654
3655         * reg-stack.c (subst_stack_regs_pat): Abort if the destination
3656         of a FP conditional move is not on the FP register stack.
3657
3658 Sun Jan 17 01:15:04 PST 1999 Jeff Law  (law@cygnus.com)
3659
3660         * version.c: Bump for snapshot.
3661
3662 Sat Jan 16 23:40:33 1999  Jeffrey A Law  (law@cygnus.com)
3663
3664         * reload1.c (reload_cse_regs_1): Do not call
3665         reload_cse_simplify_operands for an insn with asm operands.
3666
3667         * cccp.c (print_help): Fix typos.
3668         * cpplib.c (print_help): Fix typos.
3669         * toplev.c (f_optiosn): Fix typos.
3670         (documented_lang_options): Fix typos.
3671
3672 Sat Jan 16 21:48:17 1999  Marc Espie (Marc.Espie@openbsd.org)
3673
3674         * gcc.c: (do_spec_1): Fix obvious typo.
3675
3676 Sat Jan 16 19:31:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3677
3678         * c-decl.c (duplicate_decls): If `warn_traditional', warn when
3679         a non-static function declaration follows a static one.
3680
3681         * invoke.texi (-Wtraditional): Document the extra check now done
3682         by this flag.
3683
3684 Sat Jan 16 15:13:46 1999  Jeffrey A Law  (law@cygnus.com)
3685
3686         * pa.md (shadd): Create shadd insns, even if the result of the shift is
3687         needed without the addition.
3688
3689 Sat Jan 16 10:48:16 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
3690
3691         * sh.md (movdf, movsf): Temporary workaround for no_new_pseudos lossage.
3692
3693 Fri Jan 15 23:44:37 1999  Richard Henderson  <rth@cygnus.com>
3694
3695         * sparc.c (sparc_issue): Add hypersparc/sparclite86x entries.
3696
3697 Fri Jan 15 22:30:04 1999  David Edelsohn  <edelsohn@gnu.org>
3698
3699         * rs6000.h (CONST_OK_FOR_LETTER_P): Do not assume 32-bit CONST_INT.
3700         * rs6000.c (u_short_cint_operand, add_operand, logical_operand,
3701         non_add_cint_operand, non_logical_cint_operand): Likewise.
3702         (get_issue_rate): Add CPU_PPC604E case.
3703         * rs6000.md (movdi, !TARGET_POWERPC64 splitters): Handle 64-bit hosts.
3704         
3705 Fri Jan 15 18:42:12 1999  Richard Henderson  <rth@cygnus.com>
3706
3707         * expr.c (queued_subexp_p): Make public.
3708         * expr.h (queued_subexp_p): Declare it.
3709         * recog.c (asm_operand_ok): New function.
3710         (check_asm_operands): Use it.  After reload, use constrain_operands 
3711         instead.
3712         * recog.h (asm_operand_ok): Declare it.
3713         * stmt.c (expand_asm_operands): Use it to try harder to make
3714         asms initially satisfy their constraints.
3715
3716 Fri Jan 15 17:43:59 1999  Jeffrey A. Law  <law@rtl.cygnus.com>
3717
3718         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do not create
3719         (mem (lo_sum (...)) for TFmode unless TARGET_V9.
3720
3721 Sat Jan 16 12:47:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3722
3723         * config/c4x/c4x.md (not_repeat_reg): Allow ldp instruction
3724         in delay slot of RPTBD.
3725
3726 Sat Jan 16 12:26:40 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3727
3728         * config/c4x/libgcc.S (___divhi3, ___modhi3): Fix long long
3729         divide and modulo sign problem.
3730
3731 Fri Jan 15 11:02:31 1999   Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3732
3733         * unroll.c (loop_iterations): Return 0 if the last loop insn
3734         is not a jump insn or if the loop has multiple back edges.
3735
3736 1999-01-15  Manfred Hollstein  <manfred@s-direktnet.de>
3737
3738         * configure.in (fixinc_defs): Do not define for m[68]8k-motorola-sysv{,3};
3739         it's working properly now.  Remove comment saying "see m68k-motorola-sysv
3740         as an example".
3741         * configure: Regenerate using autoconf.
3742
3743         * fixinc/fixincl.c (main): Do not ignore SIGCHLD.
3744
3745 Thu Jan 14 22:38:41 1999  Jeffrey A Law  (law@cygnus.com)
3746
3747         * unroll.c (find_splittable_givs): For a DEST_ADDR giv, do not share
3748         a register with another DEST_ADDR giv if the address is not valid.
3749
3750         * pa.c (hppa_expand_epilogue): Save and restore the static chain
3751         around the call to mcount.
3752
3753         * h8300.h (ASM_OUTPUT_LABELREF): Use asm_fprintf, not fprintf.
3754
3755         * stmt.c (expand_end_case): Use emit_cmp_and_jump_insns to avoid
3756         generating non-canonical rtl.
3757
3758 1999-01-14  Vladimir N. Makarov  <vmakarov@cygnus.com>
3759
3760         * config/i960/i960.c (i960_output_move_double_zero,
3761         i960_output_move_quad_zero): New functions for moving zeros.
3762         (i960_output_move_double, i960_output_move_quad): Additional code
3763         for situation when moving unaligned register group.
3764         
3765         * config/i960/i960.h (i960_output_move_double_zero,
3766         i960_output_move_quad_zero): The function definitions.
3767
3768         * config/i960/i960.md (movdi+1, movti+1): Usage of the functions.
3769
3770 1999-01-13  Vladimir N. Makarov  <vmakarov@cygnus.com>
3771
3772         * config/i960/i960.c (i960_function_prologue): New code (optimal
3773         solution) for saving global registers in local registers.
3774         (form_reg_groups, reg_group_compare, split_reg_group): New
3775         functions used by the code.
3776         (reg_group): New structure definition for the new code.
3777
3778 1999-01-13  Manfred Hollstein  <manfred@s-direktnet.de>
3779
3780         * fixinc/fixincl.c (create_file): Pass file creation mask as
3781         third parameter to "open".  Use O_TRUNC flag to open instead of
3782         explicitly unlink'ing the file.
3783         (process): and forget about the "chmod" stuff.
3784
3785 Wed Jan 13 20:12:37 1999  Richard Henderson  <rth@cygnus.com>
3786
3787         * integrate.c (expand_inline_function): Recognize (mem (addressof))
3788         and substitute.  Copy the return value from there into a new pseudo.
3789
3790 Wed Jan 13 16:47:00 1999  Catherine Moore  <clm@cygnus.com>
3791
3792         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
3793         before generating a call to abort for volatile functions.
3794         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
3795         (TARGET_ABORT_NORETURN):  Define.
3796         (abort-on-noreturn):  New option.
3797
3798 Thu Jan 14 13:52:42 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3799
3800         * config/c4x/c4x.md (in_annul_slot_3): Correctly allow unarycc 
3801         and binarycc operations in 3rd annulled delay slot!
3802
3803 Wed Jan 13 16:16:44 1999  Catherine Moore  <clm@cygnus.com>
3804
3805         * config/arm.c (output_func_epilogue):  Check TARGET_ABORT_NORETURN
3806         before generating a call to abort for volatile functions.
3807         * config/arm.h (ARM_FLAG_ABORT_NORETURN):  Define.
3808         (TARGET_ABORT_NORETURN):  Define.
3809         (abort-on-noreturn):  New option.
3810
3811 Wed Jan 13 13:30:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3812
3813         * cccp.c (xstrdup): Renamed from `savestring'.  All callers changed.
3814         Remove prototype which we get from libiberty.h.
3815
3816         * collect2.c (xstrdup): Likewise.
3817
3818         * genextract.c (xstrdup): Likewise for `copystr'.
3819         (mybzero): Remove it and use `memset' instead.
3820
3821         * genoutput.c (mybcopy, mybzero): Remove these.  All callers changed
3822         to use `memcpy' and `memset' instead.
3823
3824         * genrecog.c (xstrdup): Renamed from `copystr'.  All callers
3825         changed.  Remove prototype.
3826         (mybcopy, mybzero): Remove these and use memcpy/memset.
3827
3828 Wed Jan 13 00:59:04 1999  Jeffrey A Law  (law@cygnus.com)
3829
3830         * mips.h (LOAD_EXTEND_OP): Correct for SImode and CCmode moves when
3831         generating code for TARGET_64BIT.
3832
3833 Tue Jan 12 14:05:37 1999   David Edelsohn  <edelsohn@gnu.org>
3834
3835         * rs6000.c (print_operand, cases 'm' and 'M'): Do not depend on
3836         HOST_WIDE_INT word-size.
3837         (rs6000_stack_info): Remove redundant alignment of fpmem.
3838
3839 Tue Jan 12 14:05:37 1999   Richard Henderson  <rth@cygnus.com>
3840
3841         * rs6000.c (short_cint_operand): Remove CONSTANT_P_RTX handling.
3842         (u_short_cint_operand, reg_or_cint_operand, logical_operand): Likewise.
3843         (input_operand): Adjust CONSTANT_P_RTX handling.
3844         * rs6000.h (PREDICATE_CODES): Remove CONSTANT_P_RTX references.
3845         * rs6000.md (movsi): Adjust CONSTANT_P_RTX handling.
3846         (movhi, movqi): Remove CONSANT_P_RTX handling.
3847         (movdi): Adjust CONSTANT_P_RTX handling.
3848
3849 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
3850
3851         * configure: Regenerate using autoconf.
3852
3853         * fixinc/Makefile.in (INCLUDES): Add -I$(srcdir)/../../include.
3854         * fixinc/fixincl.c (SIGCHLD): Use SIGCLD on (very) old systems.
3855         (process): "fchmod" isn't available on all systems, use "chmod"
3856         instead.
3857         * fixinc/server.c: Add #include <sys/types.h>.
3858         (STDIN_FILENO): Add default definition if no include file defines
3859         it already.
3860         (STDOUT_FILENO): Likewise.
3861
3862 Tue Jan 12 10:23:24 1999  Stan Cox  <scox@cygnus.com>
3863
3864         * mips.md (call_value_internal3c): New pattern for -mips16 -mlong-calls.
3865
3866 1999-01-12  Manfred Hollstein  <manfred@s-direktnet.de>
3867
3868         * m68k/mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Define to
3869         ensure all prototypes necessary for building libio will be available.
3870         * m68k/xm-mot3300.h (ADD_MISSING_POSIX, ADD_MISSING_XOPEN): Remove
3871         definitions here as they are not host specific.
3872         * m88k/sysv3.h, m88k/xm-sysv3.h: Likewise.
3873
3874 Tue Jan 12 02:53:46 1999  Richard Henderson  <rth@cygnus.com>
3875
3876         * cse.c (cse_insn): Never prefer (const (constant_p_rtx)).
3877
3878 Tue Jan 12 02:36:10 PST 1999 Jeff Law  (law@cygnus.com)
3879
3880         * version.c: Bump for snapshot.
3881
3882 Tue Jan 12 01:30:19 1999  Richard Henderson  <rth@cygnus.com>
3883
3884         * rtl.c (rtx_alloc): Use memset instead of inline loop.
3885
3886         * recog.h (recog_op_alt): Declare extern.
3887
3888 Tue Jan 12 00:23:31 1999  Richard Henderson  <rth@cygnus.com>
3889
3890         * function.c (purge_addressof_1): If the note accesses a mem+addressof
3891         in a wider mode than any replacement, adjust the cached replacement.
3892         Cache trivial substitutions as well.
3893
3894 Tue Jan 12 00:06:00 1999  Richard Henderson  <rth@cygnus.com>
3895
3896         * Makefile.in (OBJECTS): Add sbitmap.o.
3897         (BASIC_BLOCK_H): Add sbitmap.h.
3898         * basic-block.h: Move simple bitmap code to sbitmap.h.
3899         * flow.c: Move simple bitmap code to sbitmap.c
3900         * sbitmap.h, sbitmap.c: New files.
3901
3902 Mon Jan 11 23:51:50 1999  Richard Henderson  <rth@cygnus.com>
3903
3904         * alpha.h (TARGET_SWITCHES): Document switches.
3905         (TARGET_OPTIONS): Likewise.
3906
3907         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Use HOST_WIDE_INT_PRINT_DEC.
3908
3909 Mon Jan 11 22:54:14 1999  Richard Henderson  <rth@cygnus.com>
3910
3911         * tree.c (new_alias_set): Return zero if !flag_strict_aliasing.
3912
3913 Mon Jan 11 22:36:01 1999  Richard Henderson  <rth@cygnus.com>
3914
3915         * basic-block.h (basic_block_head): Rename to x_basic_block_head.
3916         (basic_block_end): Rename to x_basic_block_end.
3917         (BLOCK_HEAD, BLOCK_END): Update.
3918
3919         * caller-save.c: Change basic_block_head/end references to 
3920         BLOCK_HEAD/END.
3921         * combine.c, flow.c, function.c, gcse.c, global.c: Likewise.
3922         * graph.c, haifa-sched.c, local-alloc.c, regclass.c: Likewise.
3923         * regmove.c, reload1.c, reorg.c, sched.c: Likewise.
3924
3925 Sat Jan  9 23:54:09 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3926
3927         * gcc.c (xstrerror): Renamed from my_strerror.  All callers
3928         changed.  Remove prototype since we get that from libiberty.h.
3929
3930         * protoize.c (xstrerror): Likewise.
3931
3932 Sat Jan  9 23:22:04 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3933
3934         * gcc.c (read_specs): Ensure format specifiers match their arguments.
3935
3936 Sat Jan  9 20:04:24 1999  Richard Henderson  <rth@cygnus.com>
3937
3938         * tree.c (copy_node): Oops.  That would be copy not zero
3939         in that last change.
3940
3941 Sun Jan 10 15:35:41 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3942
3943         * config/c4x/c4x.c: Include system.h.
3944         (c4x_caller_save_map): Disable caller save for RC.
3945         (c4x_optimization_options): Disable scheduling before reload.
3946         (valid_parallel_load_store) : Define return type as int.  
3947         Remove unused variable regs.
3948         * config/c4x/c4x.h (REGISTER_MOVE_COST): Make independent of register
3949         class.
3950         * config/c4x/c4x.md (rotlqi3, rotrqi3): Fix up emitted RTL to
3951         handle rotations.
3952         (*db, decrement_and_branch_until_zero): Fix up constraints
3953         to keep reload happy.
3954
3955 Sat Jan  9 18:35:29 1999  Richard Henderson  <rth@cygnus.com>
3956
3957         * tree.c (make_node): Call bzero instead of inline clear.
3958         (copy_node, make_tree_vec, build1): Likewise.
3959         (get_identifier): Call strlen instead of inline count.
3960         (maybe_get_identifier): Likewise.
3961
3962 Sun Jan 10 14:04:51 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
3963
3964         * config/c4x/c4x.md: (in_annul_slot_3): Allow unarycc and binarycc
3965         operations in 3rd annulled delay slot.
3966         (*lshrqi3_const_set): Disallow c constraint for operand0.
3967         (modhi3+1, modhi3+2): Set attribute type to multi.
3968         * config/c4x/c4x.c (c4x_S_constraint): Removed space in middle of 
3969         != operator.
3970
3971 Sat Jan  9 11:44:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3972
3973         * gansidecl.h: Allow attribute unused on labels only when we are
3974         version 2.93 or higher.  Not all versions of 2.92 have this feature.
3975
3976         * version.c: Bump minor number to 93.
3977
3978 Fri Jan  8 10:51:13 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
3979
3980         * config/m68k/m68k.h: Declare output_function_epilogue.
3981         * recog.h: Declare next_insn_tests_no_inequality.
3982
3983 Fri Jan  8 01:43:53 1999  Jeffrey A Law  (law@cygnus.com)
3984
3985         * stmt.c (optimize_tail_recursion): New function, extracted from ...
3986         (expand_return): Use optimize_tail_recursion.
3987         * tree.h (optimize_tail_recursion): Declare.
3988
3989         * toplev.c (compile_file): Move call to output_func_start_profiler
3990         to after the loop to emit deferred functions.
3991
3992 Thu Jan  7 19:52:53 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3993
3994         * system.h (abort): Supply more detailed information on how to
3995         report an Internal Compiler Error.
3996
3997 Thu Jan 7  9:25:58 PST 1999 Bruce Korb (korb@datadesign.com)
3998
3999         * fixinc/fixincl.c (*): more decapitalization of variables
4000         plus some explanitory comments
4001
4002         * fixinc/Makefile.in fixinc/mkfixinc.sh:
4003         When the fixincl program does not work for a certain system,
4004         we substitute a shell script.  Added user commentary when
4005         this happens.
4006
4007 Thu Jan  7 11:26:17 1999  Mark Mitchell  <mark@markmitchell.com>
4008
4009         * calls.c (store_unaligned_arguments_into_pseudos): Use xmalloc to
4010         allocate memory that will live beyond this function.
4011         (expand_call): Free it here.
4012
4013 Thu Jan  7 03:08:17 1999  Richard Henderson  <rth@cygnus.com>
4014
4015         * sparc.h (PREFERRED_RELOAD_CLASS): Select GENERAL_REGS for 
4016         integer data not destined for fp regs.
4017         (LEGITIMIZE_RELOAD_ADDRESS): New.
4018
4019 Thu Jan  7 03:03:42 1999  Stan Cox  <scox@cygnus.com>
4020                           Richard Henderson  <rth@cygnus.com>
4021
4022         Support for Hypersparc and Sparclite86x:
4023         * sparc.h (TARGET_CPU_hypersparc, TARGET_CPU_sparclite86x): New.
4024         (CPP_CPU32_DEFAULT_SPEC): Fix up for the new targets.
4025         (ASM_CPU32_DEFAULT_SPEC): Likewise.
4026         (TARGET_CPU_DEFAULT): Likewise.
4027         (enum processor_type): Likewise.
4028         (CPP_ENDIAN_SPEC): Handle little endian data.
4029         (LIBGCC2_WORDS_BIG_ENDIAN): Likewise.
4030         (ADJUST_COST): Call sparc_adjust_cost.
4031         * sparc.c (sparc_override_options): Fix up for the new targets.
4032         (supersparc_adjust_cost): Make static.
4033         (hypersparc_adjust_cost): New.
4034         (ultrasparc_adjust_cost): Make static.
4035         (sparc_adjust_cost): New.
4036         * sparc.md (attr cpu): Add hypersparc and sparclite86x.
4037         (function_unit): Add hypersparc scheduling rules.
4038
4039         * configure.in (with_cpu handler): Recognize hypersparc.
4040
4041 Thu Jan  7 23:54:05 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4042
4043         * config/c4x/c4x.c: Added space after negation operator.
4044         * config/c4x/c4x.h: Likewise.
4045         * config/c4x/c4x.md: Likewise.
4046
4047 Thu Jan  7 23:39:27 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4048
4049         * config/c4x/c4x.c (c4x_preferred_reload_class): Always return class.
4050
4051 Thu Jan  7 00:29:25 199  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
4052
4053         * combine.c (num_sign_bit_copies): In NEG, MULT, DIV and MOD cases,
4054         when a test can't be performed due to limited width of
4055         HOST_BITS_PER_WIDE_INT, use the more conservative approximation.
4056         Fix UDIV case for cases where the first operand has the highest bit
4057         set.
4058
4059 Thu Jan  7 00:01:38 1999  Lutz Vieweg <lkv@mania.robin.de>
4060
4061         * pa.h (reg_class): Add FPUPPER_REGS.
4062         (REG_CLASS_NAMES): Similarly.
4063         (REG_CLASS_CONTENTS): Similarly
4064         (REGNO_REG_CLASS): Handle FPUPPER_REGS.
4065         (FP_REG_CLASS_P): Likewise.
4066         (REG_CLASS_FROM_LETTER): Similarly.
4067         (CLASS_MAX_NREGS): Similarly.
4068
4069 1999-01-06  Brendan Kehoe  <brendan@cygnus.com>
4070
4071         * fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
4072         for a typedef of bool.  Make sure to have a copy of the file is
4073         in place before we look to fix it.  Fix typo in variable name to
4074         FILE.
4075
4076 Wed Jan  6 07:51:05 1999  Richard Henderson  <rth@cygnus.com>
4077
4078         * expr.c (expand_builtin) [case BUILT_IN_CONSTANT_P]: Use
4079         value_mode for the return mode.
4080
4081 Wed Jan  6 17:55:19 1999  Robert Lipe  <robertlipe@usa.net>
4082
4083         * configure.in: New flag --with-dwarf2.   If set, enables DWARF-2
4084         debugging as default.
4085
4086         * config/tm-dwarf2.h: New file.
4087
4088 Wed Jan  6 16:08:54 1999  Jeffrey A Law  (law@cygnus.com)
4089
4090         * h8300.h (ASM_OUTPUT_LABELREF): Define.
4091
4092         * pa.h (DONT_RECORD_EQUIVALENCE): Kill.
4093         * local-alloc.c (update_equiv_regs): Corresponding changes.
4094         * tm.texi (DONT_RECORD_EQUIVALENCE): Kill.
4095
4096         * calls.c (special_function_p): Push alloca test inside the large
4097         conditional which excludes functions not at file scope or not
4098         extern.  
4099
4100         * calls.c (special_function_p): New function broken out of
4101         expand_call.
4102         (precompute_register_parameters): Likewise.
4103         (store_one_arg): Likewise.
4104         (store_unaligned_argumetns_into_pseudos): Likewise.
4105         (save_fixed_argument_area): Likewise.
4106         (restore_fixed_argument_area): Likewise.
4107         (expand_call): Corresponding changes.
4108
4109 Thu Jan  7 00:12:24 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4110
4111         * config/c4x/c4x.md (addqi3): If the destination operand is
4112         a hard register other than an extended precision register,
4113         emit addqi3_noclobber.
4114         (*addqi3_noclobber_reload): New pattern added so that reload
4115         will recognise a store of a pseudo, equivalent to the sum
4116         of the frame pointer and a constant, as an add insn.
4117
4118 1999-01-06  Manfred Hollstein  <manfred@s-direktnet.de>
4119
4120         * fixinc/fixincl.c: Re-indent according to the GNU standards.
4121         fixinc/server.c: Likewise.
4122         fixinc/server.h: Likewise.
4123
4124 Wed Jan  6 10:43:29 1999  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4125
4126         * config/m68k/m68k.c (const_uint32_operand): Remove CONSTANT_P_RTX
4127         handling.
4128         (const_sint32_operand): Likewise.
4129
4130 Wed Jan  6 09:44:51 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4131
4132         * toplev.h: In addition to checking _JBLEN, also check if `setjmp'
4133         is a macro when deciding if we can use `jmp_buf' in prototypes.
4134
4135 Wed Jan  6 03:18:53 1999  Mark Elbrecht  <snowball3@usa.net>
4136
4137         * configure.in (pc-msdosdjgpp): Set x_make to x-go32.
4138         * configure: Rebuilt.
4139         * i386/xm-go32.h: Define LIBSTDCXX.
4140         * i386/x-go32: New.
4141         * i386/go32.h (MD_EXEC_PREFIX): Define.
4142         (FILE_NAME_ABSOLUTE_P): Define.
4143         (LINK_COMMAND_SPEC): Define.
4144
4145 Wed Jan  6 02:23:36 1999  "Charles M. Hannum" <root@ihack.net>
4146
4147         * expr.c (store_expr): If the lhs is a memory location pointed
4148         to be a postincremented (or postdecremented) pointer, always
4149         force the rhs to be evaluated into a pseudo.
4150
4151 Wed Jan  6 00:54:21 1999  Geoff Keating  <geoffk@ozemail.com.au>
4152
4153         * real.c (mtherr): Print more reasonable warning messages.
4154
4155 Tue Jan  5 21:57:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4156
4157         * Makefile.in (gcc.o, prefix.o, cccp.o, cpplib.o): Depend on prefix.h.
4158
4159         * cccp.c: Include prefix.h, don't prototype prefix.c functions.
4160         (new_include_prefix): Constify char* parameters.
4161
4162         * cppfiles.c (read_name_map): Likewise.
4163         (append_include_chain): Likewise.  Also, use a writable char* copy
4164         of parameter `dir' which we then modify, rather than using the
4165         parameter itself to store the new writable string.
4166         (remap_filename): Constify some variables.  Also, use a writable
4167         char* to store an allocated string which we will be modifying.
4168
4169         * cpplib.c: Include prefix.h, don't prototype prefix.c functions.
4170         (cpp_start_read): Constify variable `str'.
4171
4172         * cpplib.h (append_include_chain): Constify a char* parameter.
4173
4174         * gcc.c Include prefix.h, don't prototype prefix.c functions.
4175         (add_prefix, save_string): Constify char* parameters.
4176         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
4177
4178         * prefix.c: Include prefix.h.
4179         (get_key_value, translate_name, save_string, update_path,
4180         set_std_prefix): Constify various char* parameters and variables.
4181         (save_string): Use xmalloc, not malloc.
4182         (translate_name): Use a writable temporary variable to create and
4183         modify a string before setting it to a const char*.
4184         
4185         * prefix.h: New file to prototype functions exported from prefix.c.
4186
4187 Tue Jan 5  8:52:18 PST 1999 Bruce Korb (korb@datadesign.com)
4188
4189         * fixinc/fixincl.c (various): added debug code so
4190         Manfred can trace the processing.
4191
4192         * fixinc/inclhack.def (sys/utsname.h): Provide forward declaration of
4193         struct utsname on Ultrix V4.[35].
4194
4195         * fixinc/{fixincl.x|fixincl.sh|inclhack.sh} : regenerated
4196
4197 Mon Jan  4 15:37:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4198
4199         * cpplib.c (skip_if_group): Split out the logic that handles
4200         directive recognition to its own function.  Don't use
4201         parse markers; use a bare pointer into the buffer.  Use
4202         copy/skip_rest_of_line instead of doing it by hand.  Remove
4203         `return on any directive' mode which was never used, and take
4204         only one argument.
4205         (consider_directive_while_skipping): New function, subroutine
4206         of skip_if_group.  Logic streamlined a bit.
4207         (conditional_skip, do_elif, do_else): Call skip_if_group with
4208         only one argument.
4209
4210 Mon Jan  4 15:27:30 1999  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4211
4212         * cpplib.c (do_undef): EOF immediately after '#undef FOO' is not an
4213         error.
4214
4215 Mon Jan  4 11:55:51 1999  Jason Merrill  <jason@yorick.cygnus.com>
4216
4217         * extend.texi (Bound member functions): Document.
4218
4219 Mon Jan  4 11:01:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4220
4221         * mips-tdump.c (st_to_string, sc_to_string, glevel_to_string,
4222         lang_to_string, type_to_string): Make return type const char*.
4223         (print_symbol): Apply `const' keyword to a char*.
4224         (print_file_desc): Cast structure member `crfd' to ulong when
4225         comparing against one.
4226
4227         * mips-tfile.c (pfatal_with_name): Apply `const' keyword to char*.
4228         (fatal, error): Add ATTRIBUTE_PRINTF_1 to prototypes.
4229         (progname, input_name): Apply `const' keyword to a char*.
4230         Don't redundantly include sys/stat.h.
4231         (alloc_info): Apply `const' keyword to a char*.
4232         (st_to_string, sc_to_string): Likewise.
4233         (hash_string): Cast variable `hash_string' to a symint_t when
4234         comparing against one.
4235         (add_string): Cast PAGE_USIZE to Ptrdiff_t when comparing against one.
4236         Likewise cast it to long when comparing against one.
4237         (add_local_symbol): Apply `const' keyword to a char*.
4238         (add_ext_symbol): Likewise.
4239         (add_unknown_tag): Likewise.
4240         (add_procedure): Cast a printf-style field width to an int.
4241         (add_file): Cast PAGE_USIZE to long when comparing against one
4242         (parse_begin): Cast a printf-style field width to an int.
4243         (parse_bend): Likewise.
4244         (parse_def): Likewise.
4245         (parse_end): Likewise.
4246         (mark_stabs): Mark parameter `start' with ATTRIBUTE_UNUSED.
4247         (parse_stabs_common): Fix format specifier.
4248         (parse_input): Change type of variable `i' to Size_t.
4249         (write_object): Fix arguments to match format specifiers.
4250         Cast variable `num_write' to long when comparing against one.
4251         (read_seek): Cast variable `sys_read' to symint_t when comparing
4252         against one.  Fix arguments to match format specifiers.  Cast
4253         variable `size' to long when comparing against one.
4254         (copy_object): Cast result of `sizeof' to int when comparing
4255         against one.  Fix arguments to match format specifiers.  Cast
4256         variable `ifd' to long when comparing against a signed value.
4257         Likewise, likewise.
4258         
4259 Mon Jan  4 10:30:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4260
4261         * c-common.c (decl_attributes): Allow applying attribute `unused'
4262         on a LABEL_DECL.
4263
4264         * c-parse.in (label): Parse attributes after a label, and call
4265         `decl_attributes' to handle them.
4266
4267         * gansidecl.h (ATTRIBUTE_UNUSED_LABEL): Define.
4268
4269         * genrecog.c (OUTPUT_LABEL, write_tree_1, write_tree): When
4270         generating labels, mark them with ATTRIBUTE_UNUSED_LABEL.
4271
4272         * invoke.texi: Note that labels can be marked `unused'.
4273
4274 Sun Jan 3 23:32:18 PST 1999 Jeff Law  (law@cygnus.com)
4275
4276         * version.c: Bump for snapshot.
4277
4278 Sun Jan  3 23:00:42 1999  Jeffrey A Law  (law@cygnus.com)
4279
4280         * optabs.c (emit_cmp_and_jump_insns): Use CONSTANT_P canonicalizing
4281         RTL for a compare/jump sequence.
4282         
4283 Sun Jan  3 22:58:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4284
4285         * optabs.c (emit_cmp_insn): Abort if asked to emit non-canonical RTL
4286         for a target with HAVE_cc0 defined.
4287         (emit_cmp_and_jump_insns): New function.
4288         * expr.h (emit_cmp_and_jump_insns): Prototype it.
4289         * loop.c (check_dbra_loop): Use it to replace calls
4290         to emit_cmp_insn and emit_jump_insn and to canonicalise
4291         the comparison if necessary.
4292         * unroll.c (unroll_loop): Likewise.
4293
4294 Sun Jan  3 21:01:04 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4295
4296         * fixincludes (sys/utsname.h): Provide forward declaration of
4297         struct utsname on Ultrix V4.[35].
4298
4299         * mips.md (div_trap): Use local labels instead of dot-relative
4300         branches.
4301
4302 Sun Jan  3 20:40:34 1999  Jeffrey A Law  (law@cygnus.com)
4303
4304         * pa.md (branch, negated branch): Handle (const_int 0) as first
4305         source operand.
4306         * pa.c (output_cbranch): Likewise.
4307
4308 Sun Jan  3 03:20:38 1999  David Edelsohn  <edelsohn@gnu.org>
4309
4310         * rs6000.c (rs6000_stack_info): Undo spurious part of last
4311         change.
4312
4313 1999-01-01  Manfred Hollstein  <manfred@s-direktnet.de>
4314
4315         * extend.texi (__builtin_constant_p): Add missing @smallexample.
4316
4317 Fri Jan  1 11:48:20 1999  Jeffrey A Law  (law@cygnus.com)
4318
4319         * i386.md (doubleword shifts): Fix dumb mistakes in previous change.
4320
4321 Wed Dec 30 23:38:55 1998  Jeffrey A Law  (law@cygnus.com)
4322
4323         * m68k.md (adddi_dilshr32): Allow all operands to be registers too.
4324         (adddi_dishl32): Similarly.
4325
4326         * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers
4327         for each insn in the skipped block.
4328
4329         * reload1.c (reload_as_needed): Verify that the insn satisfies its
4330         constraints after replacing a register address with an autoincrement
4331         address for reload inheritance purposes.
4332
4333         * i386.md (doubleword shifts): Avoid namespace pollution.
4334
4335 Wed Dec 30 23:00:28 1998  David O'Brien <obrien@NUXI.com>
4336
4337         * configure.in (FreeBSD ELF): Needs special crt files.
4338
4339 Wed Dec 30 22:50:13 1998  Geoffrey Noer  <noer@cygnus.com>
4340
4341         * i386/xm-cygwin.h: change DIR_SEPARATOR to forward slash.
4342
4343 1998-12-30  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
4344
4345         * loop.c (check_dbra_loop): While reversing the loop, if the
4346         comparison value has a VOID mode use the mode of the other operand
4347         to compute the mask.
4348
4349 Wed Dec 30 22:24:00 1998  Michael Meissner  <meissner@cygnus.com>
4350
4351         * rs6000.md ({save,restore}_stack_function): Take 2 operands to
4352         avoid warnings in compiling explow.c.
4353
4354         (patch from Ken Raeburn, raeburn@cygnus.com)
4355         * rs6000.c (rs6000_stack_info): Force 8-byte alignment of
4356         fpmem_offset.  Compute total size after that, and then
4357         rs6000_fpmem_offset using both values.
4358
4359 Mon Dec 28 19:26:32 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4360
4361         * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in
4362         the future; indeed that already happens in some cases.
4363
4364 Tue Dec 29 11:58:53 1998  Richard Henderson  <rth@cygnus.com>
4365
4366         * sparc.c (input_operand): Recognize (const (constant_p_rtx)).
4367         (arith_operand): Remove constant_p_rtx handling.
4368         (const64_operand, const64_high_operand): Likewise.
4369         (arith11_operand, arith10_operand, arith_double_operand): Likewise.
4370         (arith11_double_operand, arith10_double_operand, small_int): Likewise.
4371         (small_int_or_double, uns_small_int, zero_operand): Likewise.
4372         * sparc.h (PREDICATE_CODES): Likewise.
4373
4374         * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX.
4375
4376 Tue Dec 29 11:32:54 1998  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>:
4377
4378         * rtl.def (CONSTANT_P_RTX): Clarify commentary.
4379         * expr.c (expand_builtin, case BUILT_IN_CONSTANT_P): Rework to
4380         consider constant CONSTRUCTOR constant and to defer some cases
4381         to cse.
4382         * cse.c (fold_rtx, case CONST): Add handling for CONSTANT_P_RTX.
4383         * regclass.c (reg_scan_mark_refs, case CONST): Likewise.
4384
4385 Tue Dec 29 11:30:10 1998  Richard Henderson  <rth@cygnus.com>
4386
4387         * expr.c (init_expr_once): Kill can_handle_constant_p recognition.
4388         * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code.
4389
4390         * alpha.c (reg_or_6bit_operand): Remove CONSTANT_P_RTX handling.
4391         (reg_or_8bit_operand, cint8_operand, add_operand): Likewise.
4392         (sext_add_operand, and_operand, or_operand): Likewise.
4393         (reg_or_cint_operand, some_operand, input_operand): Likewise.
4394         * alpha.h (PREDICATE_CODES): Likewise.
4395
4396 Sat Dec 26 23:26:26 PST 1998 Jeff Law  (law@cygnus.com)
4397
4398         * version.c: Bump for snapshot.
4399
4400 Sat Dec 26 09:17:04 1998  Jeffrey A Law  (law@cygnus.com)
4401
4402         * gengenrtl.c (gencode): Always use bzero to clear memory instead
4403         of dangerous casts and stores.
4404
4405         * Makefile.in (compare, gnucompare): Add missing else true clauses.
4406
4407 Fri Dec 25 23:00:56 1998  Jeffrey A Law  (law@cygnus.com)
4408
4409         * alpha.md (builtin_longjmp): Add missing "DONE".
4410
4411 Thu Dec 24 10:39:57 1998  Stan Cox  <scox@cygnus.com>
4412
4413         * gcc.c (execute): Enable -pipe with win32.
4414
4415 Wed Dec 23 10:27:44 1998  Nick Clifton  <nickc@cygnus.com>
4416
4417         * config/arm/t-arm-elf: Add multiplib option for leading
4418         underscores.
4419
4420         * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable
4421         'user_label_prefix' rather than macro USER_LABEL_PREFIX.
4422
4423         (thumb_shiftable_const): Use macro 'BASE_REG_CLASS' rather
4424         than variable 'reload_address_base_reg_class'.  [Note this
4425         change is unrelated to the others in this patch].
4426
4427         * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no
4428         leading underscore.
4429
4430 Wed Dec 23 09:51:32 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4431
4432         * alias.c (record_alias_subset): Remove ignored `&'.
4433         (init_alias_once): Likewise.
4434
4435         * c-lex.c (UNGETC): Cast first argument of comma expression to void.
4436
4437         * config/mips/mips.c (mips_asm_file_end): Cast the result of
4438         fwrite to `int' when comparing against one.
4439
4440         * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||.
4441         (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'.
4442
4443         * cse.c (rehash_using_reg): Change type of variable `i' to
4444         unsigned int.
4445
4446         * dwarf2out.c (initial_return_save): Cast -1 to unsigned before
4447         assigning it to one.
4448
4449         * except.c (duplicate_eh_handlers): Remove unused variable `tmp'.
4450
4451         * final.c (final_scan_insn): Likewise for variable `i'.
4452         (output_asm_insn): Cast a char to unsigned char when used as an
4453         array index.
4454
4455         * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when
4456         assigning it to one.
4457
4458         * loop.c (strength_reduce): Remove unused variables `count' and `temp'.
4459
4460         * recog.c (preprocess_constraints): Cast a char to unsigned char
4461         when used as an array index.
4462
4463         * regmove.c (find_matches): Likewise.
4464
4465         * reload1.c (calculate_needs): Add default case in switch.
4466         (eliminate_regs_in_insn): Initialize variable `offset'.
4467         (set_offsets_for_label): Change type of variable `i' to unsigned.
4468         (reload_as_needed): Wrap variable `i' in macro check on
4469         AUTO_INC_DEC || INSN_CLOBBERS_REGNO_P.
4470
4471         * scan-decls.c (scan_decls): Mark parameters `argc' and `argv'
4472         with ATTRIBUTE_UNUSED.  Cast variable `start_written' to size_t
4473         when comparing against one.
4474
4475         * stor-layout.c (layout_decl): Cast maximum_field_alignment to
4476         unsigned when comparing against one.  Likewise for
4477         GET_MODE_ALIGNMENT().
4478         (layout_record): Cast record_align to int when comparing against a
4479         signed value. 
4480         (layout_type): Cast TYPE_ALIGN() to int when comparing against a
4481         signed value.
4482
4483         * tree.c (get_identifier): Cast variable `len' to unsigned when
4484         comparing against one.
4485         (maybe_get_identifier): Likewise
4486
4487 Wed Dec 23 00:10:01 1998  Jeffrey A Law  (law@cygnus.com)
4488
4489         * toplev.c (rest_of_compilation): Do not set reload_completed.
4490         * reload1.c (reload): Set reload_completed before calling
4491         cleanup_subreg_operands.
4492
4493 Tue Dec 22 23:58:31 1998  Richard Henderson  <rth@cygnus.com>
4494
4495         * reload1.c (emit_reload_insns): Check `set' not null before use.
4496
4497 Tue Dec 22 15:15:45 1998  Nick Clifton  <nickc@cygnus.com>
4498
4499         * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to
4500         'int'. 
4501
4502 Tue Dec 22 13:55:44 1998  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
4503
4504         * halfpic.c (half_pic_encode): Delete redundant code.
4505
4506 Tue Dec 22 13:02:22 1998  Michael Meissner  <meissner@cygnus.com>
4507
4508         * toplev.c (main): Delete handling of -dM as a preprocessor
4509         option.
4510
4511 Mon Dec 21 17:39:38 1998  Michael Meissner  <meissner@cygnus.com>
4512
4513         * toplev.c (main): Don't emit any warnings when using -dD, -dM, or
4514         -dI, which are handled by the preprocessor.
4515
4516 Sun Dec 20 16:13:44 1998  John F. Carr  <jfc@mit.edu>
4517
4518         * configure.in: Handle Digital UNIX 5.x the same as 4.x.
4519         * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".".
4520
4521 Sun Dec 20 07:39:52 PST 1998 Jeff Law  (law@cygnus.com)
4522
4523         * version.c: Bump for snapshot.
4524
4525 Sat Dec 19 22:24:22 PST 1998 Jeff Law  (law@cygnus.com)
4526
4527         * version.c: Bump for snapshot.
4528
4529 Sat Dec 19 21:41:32 PST 1998 Jeff Law  (law@cygnus.com)
4530
4531         * version.c: Bump for snapshot.
4532
4533 Sat Dec 19 09:52:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4534
4535         * genattr.c (fatal): Qualify a char* with the `const' keyword.
4536         
4537         * genattrtab.c (fatal, attr_printf, attr_string, write_attr_set,
4538         write_unit_name, write_eligible_delay, expand_units,
4539         make_length_attrs, write_attr_case, find_attr,
4540         make_internal_attr): Likewise.
4541         * gencheck.c (tree_codes): Likewise.
4542         * gencodes.c (fatal): Likewise.
4543         * genconfig.c (fatal): Likewise.
4544         * genemit.c (fatal): Likewise.
4545         * genextract.c (fatal, walk_rtx, copystr): Likewise.
4546         * genflags.c (fatal): Likewise.
4547         * genopinit.c (fatal, optabs, gen_insn): Likewise.
4548         * genoutput.c (fatal, error, predicates): Likewise.
4549         * genpeep.c (fatal): Likewise.
4550         * genrecog.c (fatal, decision, pred_table, add_to_sequence,
4551         write_tree_1, write_tree, change_state, copystr, indents): Likewise.
4552
4553 Thu Dec 17 18:21:49 1998  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4554
4555         * configure.in (with-fast-fixincludes): Fix whitespace.
4556         * configure: Rebuilt.
4557
4558         * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific
4559         asm() etc. function declarations in __DECC.
4560
4561 Thu Dec 17 13:57:23 1998  Nick Clifton  <nickc@cygnus.com>
4562
4563         * expr.c (emit_move_insn_1): Only emit a clobber if the target
4564         is a pseudo register.
4565
4566 Thu Dec 17 13:50:29 1998  Nick Clifton  <nickc@cygnus.com>
4567
4568         * gcse.c: Include expr.h in order to get the prototype for
4569         get_condition() which is used in delete_null_pointer_checks(). 
4570
4571 Thu Dec 17 15:58:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4572
4573         * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros.
4574
4575 Thu Dec 17 12:31:12 1998  Jim Wilson  <wilson@cygnus.com>
4576
4577         * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS.
4578         (ALL_CFLAGS): Delete SCHED_CFLAGS.
4579
4580 1998-12-17  Vladimir N. Makarov  <vmakarov@cygnus.com>
4581
4582         * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of
4583         ';').
4584
4585 1998-12-17  Michael Tiemann  <tiemann@axon.cygnus.com>
4586
4587         * i960.md (extend*, zero_extend*): Don't generate rtl that looks
4588         like (subreg:SI (reg:SI N) 0), because it's wrong, and it hides
4589         optimizations from the combiner.
4590
4591 Thu Dec 17 08:27:03 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4592
4593         * loop.c (combine_givs_used_by_other): Don't depend on n_times_set.
4594
4595 Wed Dec 16 17:30:35 1998  Nick Clifton  <nickc@cygnus.com>
4596
4597         * toplev.c (main): Disable optimize_size if a specific
4598         optimization level is requested.  Always set optimization
4599         level to 2 if -Os is specified.
4600
4601 Wed Dec 16 16:33:04 1998  Dave Brolley  <brolley@cygnus.com>
4602
4603         * objc/lang-specs.h: Pass -MD, -MMD and -MG to cc1obj if configured with
4604         cpplib.
4605         * cpplib.c (cpp_start_read): If in_fname is not initialized, try to
4606         initialize it using fname.
4607
4608 1998-12-16  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4609
4610         * cpplib.c (do_include): Treat #include_next in the
4611         primary source file as #include plus warning.  Treat
4612         #include_next in a file included by absolute path as an
4613         error.  fp == CPP_NULL_BUFFER is a fatal inconsistency.
4614
4615 Wed Dec 16 12:28:54 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4616
4617         * cccp.c: Don't define MIN/MAX anymore.
4618         * cpplib.c: Likewise.
4619         * machmode.h: Likewise.
4620         * system.h: Provide definitions for MIN/MAX.
4621
4622 Tue Dec 15 23:47:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
4623
4624         * fix-header.c: Don't define xstrdup here.
4625
4626 Wed Dec 16 05:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4627
4628         * loop.c (consec_sets_giv): New argument last_consec_insn.
4629         (strength_reduce): Provide / use it.
4630
4631 Wed Dec 16 17:24:07 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4632
4633         * loop.h (loop_info): New field 'vtop'.
4634         * loop.c (check_dbra_loop):  Use loop_info->vtop rather than
4635         scanning loop for vtop.
4636         * unroll.c (subtract_reg_term, find_common_reg_term): New functions.
4637         (loop_iterations): Use them to determine if loop has a constant
4638         number of iterations.  Set loop_info->vtop.  Don't subtract
4639         common reg term from initial_value and final_value if have a
4640         do-while loop.
4641
4642 Tue Dec 15 13:49:55 1998  Jeffrey A Law  (law@cygnus.com)
4643
4644         * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2.
4645
4646         * mn10300.md (bset, bclr): Operand 0 is a read/write operand.
4647
4648         * mn10200.md (abssf2, negsf2): New expanders.
4649
4650         * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders.
4651
4652 Tue Dec 15 11:55:30 1998  Nick Clifton  <nickc@cygnus.com>
4653
4654         * integrate.c (copy_rtx_and_substitute): If a SUBREG is
4655         replaced by a CONCAT whoes components do not have the same
4656         mode as the original SUBREG, use a new SUBREG to restore the
4657         mode. 
4658
4659         * emit-rtl.c (subreg_realpart_p): Cope with subregs containing
4660         multiword complex values.
4661
4662 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4663
4664         * cppalloc.c: Add xstrdup here.
4665         * cpplib.h: Remove savestring prototype.
4666         * cpplib.c: Remove savestring function. s/savestring/xstrdup/
4667           throughout. 
4668         * cppfiles.c: s/savestring/xstrdup/ throughout.
4669
4670 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4671
4672         * cpplib.c: Make all directive handlers read their own
4673           arguments.
4674           (struct directive): Remove last two arguments from FUNC
4675           member prototype. Remove `command_reads_line' member
4676           entirely.
4677           (directive_table): Remove initializations of
4678           command_reads_line flag.  Pretty-print.
4679           (eval_if_expression, do_define, do_line, do_include,
4680           do_undef, do_error, do_pragma, do_ident, do_if, do_xifdef,
4681           do_else, do_elif, do_sccs, do_assert, do_unassert,
4682           do_warning): Take only two args.
4683
4684           (cpp_define): Call do_define with two args and the text to
4685           define stuffed into a buffer.
4686           (make_assertion): Call do_assert with two args.
4687           (handle_directive): Call do_line with two args. Call
4688           kt->func with two args.  Remove command_reads_line
4689           processing.
4690           (do_define, do_undef, do_error, do_warning, do_pragma,
4691           do_sccs): Read the rest of the line here.
4692           (do_ident): Gobble rest of line, as cccp does.
4693           (cpp_undef): New function.
4694           (cpp_start_read): Call cpp_undef instead of do_undef.
4695
4696 1998-12-15  Zack Weinberg  <zack@rabi.phys.columbia.edu>
4697
4698         * cpphash.h (union hash_value): Remove `keydef' member, add a
4699           `struct hashnode *aschain' member for #assert.  
4700
4701           * cpplib.c (struct tokenlist_list, struct
4702           assertion_hashnode): Delete structure definitions.
4703           (assertion_install, assertion_lookup, delete_assertion,
4704           check_assertion, compare_token_lists, reverse_token_list,
4705           read_token_list, free_token_list): Delete functions.
4706           (parse_assertion): New function.  
4707           (cpp_cleanup): Don't destroy the assertion_hashtable.
4708
4709           (do_assert): Gut and rewrite.  #assert foo (bar) places
4710           entries for `#foo' and `#foo(bar)' in the macro hash table,
4711           type T_ASSERT.  The value union's `aschain' member is used
4712           to chain all answers for a given predicate together.
4713           (do_unassert): Also rewritten.  Take an un-asserted
4714           answer off the chain from its predicate and call
4715           delete_macro on the hashnode, or walk a predicate chain
4716           calling delete_macro on all the entries.
4717           (cpp_read_check_assertion): Simply call parse_assertion to
4718           get the canonical assertion name, and look that up in the
4719           hash table.
4720
4721         * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab):
4722         Removed.
4723
4724         * cpphash.c (install): Use bcopy instead of an explicit loop
4725           to copy the macro name.
4726
4727         * cppexp.c (cpp_lex): Convert the result of
4728           cpp_read_check_assertion to a `struct operation' directly;
4729           don't go through parse_number.
4730
4731 Tue Dec 15 18:27:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4732
4733         * loop.h (struct induction): Delete times_used member.
4734         * loop.c (n_times_set): Rename to set_in_loop.  Changed all users.
4735         (n_times_used): Rename to n_times_set.  Changed all users.
4736         (scan_loop): Free reg_single_usage before strength reduction.
4737         (record_giv, combine_givs): Remove handling of times_used member.
4738         (combine_givs_used_once): Rename to:
4739         (combine_givs_used_by_other) .  Changed all callers.
4740
4741 Tue Dec 15 01:45:26 1998  Jason Merrill  <jason@yorick.cygnus.com>
4742
4743         * dwarf2out.c (gen_struct_or_union_type_die): Check AGGREGATE_TYPE_P
4744         instead of TREE_CODE_CLASS == 't'.
4745         (gen_type_die): Likewise.
4746         (scope_die_for): Ignore FUNCTION_TYPE "scopes".
4747
4748 Mon Dec 14 16:23:27 1998  Jim Wilson  <wilson@cygnus.com>
4749
4750         * real.c (endian): Disable last change unless
4751         HOST_BITS_PER_WIDE_INT is greater than 32.
4752
4753 Mon Dec 14 17:13:36 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
4754
4755         * output.h (force_data_section): New prototype.
4756         * varasm.c (force_data_section): New function to force the
4757         data section, regardless of what in_section thinks.
4758         * dwarf2out.c (output_call_frame_info): Call force_data_section
4759         since varasm may not realize we've changes sections.
4760
4761 Mon Dec 14 14:09:34 1998  Nick Clifton  <nickc@cygnus.com>
4762
4763         * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes
4764           after completeing reload.
4765
4766         * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are
4767           deleted after reload.
4768
4769 Mon Dec 14 01:39:28 1998  Jeffrey A Law  (law@cygnus.com)
4770
4771         * rtl.h (multiple_sets): Fix prototype.
4772         * rtlanal.c (multiple_sets): Fix return type.
4773
4774 Sun Dec 13 12:43:58 PST 1998 Jeff Law  (law@cygnus.com)
4775
4776         * version.c: Bump for snapshot.
4777
4778 Sun Dec 13 01:05:22 PST 1998 Jeff Law  (law@cygnus.com)
4779
4780         * version.c: Bump for snapshot.
4781
4782 1998-12-13  Manfred Hollstein  <manfred@s-direktnet.de>
4783
4784         * protoize.c (fputs): Wrap extern declaration in #ifndef fputs.
4785
4786 Sun Dec 13 00:24:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4787
4788         * rtl.h (recompute_reg_usage): Add second argument.
4789         * flow.c (recompute_reg_usage): Likewise.
4790         * toplev.c (rest_of_compilation): Supply second argument to
4791         recompute_reg_usage.
4792
4793         * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0
4794         after reload.
4795
4796 Sat Dec 12 23:39:10 1998  Jeffrey A Law  (law@cygnus.com)
4797
4798         * m68k/t-m68kelf (MULTILIB_OPTIONS): Add mcpu32.
4799         (MULTILIB_MATCHES): -m68332 now uses mcpu32 libraries, not m68000.
4800         (MULTILIB_EXCEPTIONS): Don't build 68881 libraries for m68000,
4801         mcpu32 or m5200.
4802
4803         * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character.
4804
4805         * rtlanal.c (multiple_sets): New function.
4806         * rtl.h (multiple_sets): Declare it.
4807         * local-alloc.c (wipe_dead_reg): Use it.
4808         * global.c (global_conflicts): Likewise.
4809
4810 Sat Dec 12 22:13:02 1998  Mark Mitchell  <mark@markmitchell.com>
4811
4812         * global.c (record_conflicts): Don't use an array of shorts to
4813         store an array of ints.
4814         (global_conflicts): Likewise.
4815
4816 Sat Dec 12 16:49:24 1998  Richard Henderson  <rth@cygnus.com>
4817
4818         * alpha.c (alpha_expand_block_move): mode_for_size expects
4819         bits, not bytes.  Infer extra alignment from addressof.
4820
4821 1998-12-11  Michael Meissner  <meissner@cygnus.com>
4822
4823         * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the
4824         .sbss section, not .sdata.
4825
4826 1998-12-11  Manfred Hollstein  <manfred@s-direktnet.de>
4827
4828         * cccp.c: Do not #include <sys/stat.h> here; this is already done
4829         by "system.h".
4830         * collect2.c: Likewise.
4831         * cpplib.h: Likewise.
4832         * gcc.c: Likewise.
4833         * gcov.c: Likewise.
4834         * getpwd.c: Likewise.
4835         * protoize.c: Likewise.
4836         * toplev.c: Likewise.
4837
4838         * cpplib.h (HOST_WIDE_INT): Get definition from "machmode.h"
4839         and don't try to define it here.
4840         * Makefile.in (cppmain.o): Depend on machmode.h.
4841         (cpplib.o): Likewise.
4842         (cpperror.o): Likewise.
4843         (cppexp.o): Likewise.
4844         (cppfiles.o): Likewise.
4845         (cpphash.o): Likewise.
4846         (cppalloc.o): Likewise.
4847         (fix-header.o): Likewise.
4848         (scan-decls.o): Likewise.
4849
4850 Fri Dec 11 11:02:49 1998  Stan Cox  <scox@cygnus.com>
4851
4852         * sh.c (print_operand): lookup interrupt_handler attribute instead
4853         of relying on static variable. 
4854         * (calc_live_regs): Likewise.
4855         * (sh_pragma_insert_attributes): Create interrupt_handler
4856         attribute if a pragma was specified
4857         * (sh_valid_machine_decl_attribute): Don't set static flag.
4858         * sh.h (PRAGMA_INSERT_ATTRIBUTES): New.
4859
4860 Fri Dec 11 12:56:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4861
4862         * reload1.c (reload_combine): Use BASIC_BLOCK_LIVE_AT_START
4863         to determine if a register is live at a jump destination.
4864         Everything is dead at a BARRIER.
4865
4866 Thu Dec 10 16:02:06 1998  Jim Wilson  <wilson@cygnus.com>
4867
4868         * cse.c (simplify_unary_operation): Sign-extend constants when
4869         they have the most significant bit set for the target.
4870         * real.c (endian): Sign-extend 32 bit output values on a 64 bit
4871         host.
4872         * m32r/m32r.c (m32r_expand_prologue): Store pretend_size in
4873         HOST_WIDE_INT temporary before negating it.
4874         * m32r/m32r.md (movsi_insn+1): Use ~0xffff instead of 0xffff0000.
4875
4876 Thu Dec 10 15:05:59 1998  Dave Brolley  <brolley@cygnus.com>
4877
4878         * objc/objc-act.c (lang_init_options): Enclose cpplib related code in
4879         #if USE_CPPLIB.
4880
4881 Thu Dec 10 13:39:46 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4882
4883         * collect2.h: New header file for prototypes.
4884
4885         * Makefile.in (collect2.o, tlink.o): Depend on collect2.h.
4886
4887         * collect2.c: Include collect2.h.
4888         * tlink.c: Likewise.
4889
4890 Wed Dec  9 23:55:11 1998  Jeffrey A Law  (law@cygnus.com)
4891
4892         * flow.c: Update some comments.
4893
4894 Wed Dec  9 15:29:26 1998  Dave Brolley  <brolley@cygnus.com>
4895
4896         * objc/objc-act.c (cpp_initialized): Removed.
4897         (lang_init_options): Initialize cpplib.
4898         (lang_decode_option): Move initialization of cpplib to
4899         lang_init_options.
4900         * c-lang.c: (parse_options,parse_in): Added.
4901         (lang_init_options): Initialized cpplib here.
4902         * c-decl.c (parse_options,cpp_initialized): Removed.
4903         (c_decode_option): Move initialization of cpplib to
4904         lang_init_options.
4905
4906 Wed Dec  9 19:36:57 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4907
4908         * reload1.c (reload_combine, reload_combine_note_store):
4909         Make STORE_RUID always valid.
4910         (reload_combine): Check if BASE is clobbered too early.
4911
4912 Wed Dec  9 09:53:58 1998  Nick Clifton  <nickc@cygnus.com>
4913
4914         * reload.c (find_reloads): Display the insn that cannot be
4915         reloaded. 
4916
4917 Wed Dec  9 12:15:26 1998  Dave Brolley  <brolley@cygnus.com>
4918
4919         * cccp.c (create_definition): Fix end of bufer logic.
4920
4921 Wed Dec  9 10:15:45 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4922
4923         * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function
4924         pointer parameters changed to use the PARAMS() macro.
4925
4926 Wed Dec  9 09:12:40 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
4927
4928         * except.h (struct handler_info): Add handler_number field.
4929         * except.c (gen_exception_label): EH labels no longer need to be
4930         on the permanent obstack.
4931         (get_new_handler): Set the label number field.
4932         (output_exception_table_entry): Regenerate handler label reference 
4933         from the label number field.
4934         (init_eh): Remove a blank line.
4935         * integrate.c (get_label_from_map): Labels no longer need to be
4936         on the permanent obstack.
4937
4938 Tue Dec  8 22:04:33 1998  Jim Wilson  <wilson@cygnus.com>
4939
4940         * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand
4941         only when OUTER_CODE is SET.
4942
4943 Tue Dec  8 22:47:15 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4944
4945         * loop.c (strength_reduce): If scan_start points to the loop exit
4946         test, be wary of subversive use of gotos inside expression statements.
4947         Don't set maybe_multiple for a backward jump that does not
4948         include the label under consideration into its range.
4949         * unroll.c (biv_total_increment): Make use of maybe_multiple field.
4950
4951 Tue Dec  8 22:33:18 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
4952
4953         * explow.c (plus_constant_wide): Don't immediately return with
4954         result of recursive call.
4955
4956 Tue Dec  8 15:32:56 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
4957
4958         * eh-common.h (struct eh_context): Add table_index for rethrows.
4959
4960         * rtl.h (enum reg_note): Add REG_EH_REGION and REG_EH_RETHROW reg notes.
4961         (SYMBOL_REF_NEED_ADJUST): New flag indicating symbol needs to be
4962         processed when inlined or unrolled (ie duplicated in some way).
4963
4964         * rtl.c (reg_note_name): Add strings for new reg_note enums.
4965
4966         * expr.h (rethrow_libfunc): New library decl.
4967
4968         * optabs.c (rethrow_libfunc): Initialize.
4969
4970         * except.h (struct eh_entry): Add new field 'rethrow_label'.
4971         (new_eh_region_entry): No longer exported from except.c.
4972         (duplicate_handlers): Renamed to duplicate_eh_handlers and 
4973         different prototype.
4974         (rethrow_symbol_map, rethrow_used): New exported functions.
4975         (eh_region_from_symbol): New exported function.
4976
4977         * except.c (create_rethrow_ref): New function to create a single
4978         SYMBOL_REF for a rethrow region.  
4979         (push_eh_entry): Initialize a rethrow ref.
4980         (func_eh_entry): Add a rethrow_label field.
4981         (new_eh_region_entry): Make static, and initialize the rethrow entry.
4982         (duplicate_eh_handlers): Create a new region, and remap labels/symbols.
4983         (eh_region_from_symbol): Find an EH region based on its rethrow symbol.
4984         (rethrow_symbol_map): Given a label map, maps a rethrow symbol for 
4985         a region into an appropriate new symbol.
4986         (rethrow_used): Indicate whether a rethrow symbol has been referenced.
4987         (expand_eh_region_end): Don't issue jump around code for new-exceptions.
4988         (end_catch_handler): Emit a barrier for new-exceptions since 
4989         control can never drop through the end of a catch block.
4990         (expand_end_all_catch): new-exceptions never fall through a catch 
4991         block.
4992         (expand_rethrow): use __rethrow routine for new exceptions.
4993         (output_exception_table_entry): Generate rethrow labels, if needed.
4994         (output_exception_table): Generate start and end rethrow labels.
4995         (init_eh): Create rethrow symbols for beginning and end of table.
4996         (scan_region): Don't eliminate EH regions which are the targets of
4997         rethrows.
4998
4999         * flow.c (make_edges): Add different edges for rethrow calls, 
5000         identified by having the REG_EH_RETHROW reg label.
5001         (delete_unreachable_blocks): Don't delete regions markers which are 
5002         the target of a rethrow.
5003
5004         * integrate.c (save_for_inline_eh_labelmap): New callback routine to 
5005         allow save_for_inline_copying to call duplicate_eh_handlers.
5006         (save_for_inline_copying): Call duplicate_eh_handlers instead of
5007         exposing internal details of exception regions.
5008         (copy_for_inline): Check if SYMBOL_REFs need adjustment.
5009         (expand_inline_function_eh_labelmap):  New callback routine to 
5010         allow expand_inline_function to call duplicate_eh_handlers.
5011         (expand_inline_function): Call duplicate_eh_handlers instead of
5012         exposing internal details of exception regions.
5013         (copy_rtx_and_substitute): Adjust SYMBOL_REFS if SYMBOL_REF_NEED_ADJUST
5014         flag is set.
5015
5016         * libgcc2.c (find_exception_handler): Generalize to enable it to
5017         pick up processing where it left off last time for a rethrow.
5018         (__unwinding_cleanup): New function. debug hook which is called before
5019         unwinding when __throw finds there is nothing but cleanups left.
5020         (throw_helper): Common parts of __throw extracted out for reuse.
5021         (__throw): Common parts moved to throw_helper.
5022         (__rethrow): New function for performing rethrows.
5023
5024 Tue Dec  8 13:11:04 1998  Jeffrey A Law  (law@cygnus.com)
5025
5026         * reload1.c (current_function_decl): Tweak declaration.
5027
5028 Tue Dec  8 10:23:52 1998  Richard Henderson  <rth@cygnus.com>
5029
5030         * c-decl.c (flag_isoc9x): Default off.
5031         (c_decode_option): Kill -std=gnu, add -std=gnu89 and -std=gnu9x.
5032         * cccp.c (print_help, main): Likewise.
5033         * gcc.c (default_compilers): Update for -std=gnu*.
5034
5035 Tue Dec  8 01:14:46 1998  Jeffrey A Law  (law@cygnus.com)
5036
5037         * Makefile.in (DEMANGLE_H): Change location to shared demangle.h.
5038         * demangle.h: Deleted.
5039
5040         * reload1.c (current_function_decl): Declare.
5041
5042 Tue Dec  8 11:58:51 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5043
5044         * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'.
5045
5046 Tue Dec  8 09:28:36 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5047
5048         * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set.
5049
5050 1998-12-08  Ulrich Drepper  <drepper@cygnus.com>
5051
5052         * configure.in: Test for availability of putc_unlocked, fputc_unlocked,
5053         and fputs_unlocked.
5054         * configure: Rebuilt.
5055         * system.h: If the *_unlocked functions are available use them
5056         instead of the locked counterparts by defining macros.
5057         * config.in: Regenerated.
5058
5059 Tue Dec  8 00:34:05 1998  Mike Stump  <mrs@wrs.com>
5060
5061         * i386/bsd.h (ASM_FILE_START): Don't use dump_base_name, it is
5062         wrong and should only be used for dump related things, not
5063         debugging information, instead main_input_filename should be used.
5064         Also, reuse output_file_directive if possible.
5065         * i386/aix386ng.h (ASM_FILE_START): Likewise.
5066         * i386/isc.h (ASM_FILE_START): Likewise.
5067         * i386/win-nt.h (ASM_FILE_START): Likewise.
5068         * i386/sun386.h (ASM_FILE_START): Likewise.
5069
5070 Mon Dec  7 23:56:28 1998   Robert Lipe  <robertl@dgii.com>
5071
5072         * configure.in (mips*-*-linux*): Handle big and little endian
5073         systems.
5074         * configure: Rebuilt.
5075
5076 Mon Dec  7 23:14:51 1998  Mike Stump <mrs@wrs.com>
5077
5078         * emit-rtl.c: Fix typo.
5079
5080 Mon Dec  7 23:07:38 1998  Nathan Sidwell  <nathan@acm.org>
5081
5082         * reload1.c (eliminate_regs): Don't do anything, if we're not
5083         generating code.
5084
5085 Mon Dec  7 15:27:09 1998  DJ Delorie  <dj@cygnus.com>
5086
5087         * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA.
5088         Add comment.
5089         * mips/mips.c (mips_select_section): Add comment.
5090
5091 Mon Dec  7 17:55:06 1998  Mike Stump  <mrs@wrs.com>
5092
5093         * cccp.c (ignore_escape_flag): Add support for \ as `natural'
5094         characters in file names in #line to be consistent with #include
5095         handling.  We support escape prcessing in the # 1 "..." version of
5096         the command.  See also support in cp/lex.c.
5097         (handle_directive): Likewise.
5098         (do_line): Likewise.
5099         
5100 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5101
5102         * cpplib.c (initialize_char_syntax): Use ISALPHA and ISALNUM
5103           so it'll work on non-ASCII platforms.  Always consider $ an
5104           identifier character.  Take no arguments.
5105           (cpp_reader_init): Call initialize_char_syntax with no
5106           arguments.
5107           (cpp_start_read): Don't call initialize_char_syntax again.
5108           Clear is_idchar['$'] and is_idstart['$'] if not
5109           opts->dollars_in_ident.
5110
5111         * cpplib.h (struct cpp_reader): Replace void *data element by
5112           cpp_options *opts.  Rearrange elements to make gdb printout
5113           less annoying (put buffer stack at end).
5114           (CPP_OPTIONS): Get rid of now-unnecessary cast.
5115
5116         * cppmain.c: s/data/opts/ when initializing cpp_reader
5117           structure.
5118         * c-decl.c: Likewise.
5119         * objc/objc-act.c: Likewise.
5120         * fix-header.c: Likewise.
5121
5122 1998-12-07  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5123
5124         * cpplib.h (struct cpp_buffer): Replace dir and dlen members
5125         with a struct file_name_list pointer.
5126         (struct cpp_reader): Add pointer to chain of `actual
5127         directory' include searchpath entries.
5128         (struct file_name_list): Add *alloc pointer for the sake of
5129         the actual-directory chain.
5130
5131         Move definition of HOST_WIDE_INT here.
5132         (cpp_parse_escape): Change prototype to match changes in
5133         cppexp.c.
5134
5135         * cppfiles.c (actual_directory): New function.
5136         (finclude): Use it to initialize the buffer's actual_dir
5137         entry.
5138         (find_include_file): We don't need to fix up max_include_len
5139         here.
5140
5141         * cpplib.c (do_include): Don't allocate a file_name_list on
5142         the fly for current directory "" includes, use the one that's
5143         been preallocated in pfile->buffer->actual_dir.  Hoist out
5144         duplicate code from the search_start selection logic.
5145         (cpp_reader_init): Initialize pfile->actual_dirs.
5146
5147         Remove definition of HOST_WIDE_INT.  Change calls
5148         to cpp_parse_escape to match changes in cppexp.c (note
5149         hardcoded MASK, which is safe since this is the source
5150         character set).
5151
5152         * cppexp.c: Bring over changes to cpp_parse_escape from cccp.c
5153         to handle wide character constants in #if directives.  The
5154         function now returns a HOST_WIDE_INT, and takes a third
5155         argument which is a binary mask for all legal values (0x00ff
5156         for 8-bit `char', 0xffff for 16-bit `wchar_t', etc.)  Define
5157         MAX_CHAR_TYPE_MASK and MAX_WCHAR_TYPE_MASK.  Change callers of
5158         cpp_parse_escape to match.  [Fixes c-torture/execute/widechar-1.c]
5159
5160 Mon Dec  7 15:38:25 1998  Dave Brolley  <brolley@cygnus.com>
5161
5162         * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1.
5163
5164 Mon Dec  7 15:38:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5165
5166         * c-aux-info.c (concat): Wrap function definition in !USE_CPPLIB.
5167         * cppalloc.c: Move function `xcalloc' from cpplib.c to here.
5168         * cpplib.c: Move function `xcalloc' from here to cppalloc.c.
5169
5170 Mon Dec  7 11:30:49 1998  Nick Clifton  <nickc@cygnus.com>
5171
5172         * final.c (output_asm_name): Use tabs to seperate comments from
5173         assembly text.
5174         
5175         Include instruction lengths (if defined) in output.
5176
5177 Mon Dec  7 10:53:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5178
5179         * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value
5180         in the loop_info structure.
5181         
5182 Mon Dec  7 11:04:40 1998  Catherine Moore  <clm@cygnus.com>
5183  
5184         * configure.in:  (arm*-*-ecos-elf):  New target.
5185         * configure:  Regenerated.
5186         * config/arm/elf.h (ASM_WEAKEN_LABEL):  Define.
5187         * config/arm/ecos-elf.h:  New file.
5188         * config/arm/unknown-elf.h (TARGET_VERSION):  Check
5189         for redefinition.
5190  
5191 Mon Dec  7 16:15:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5192
5193         * sh.c (output_far_jump): Emit braf only for TARGET_SH2.
5194
5195 Sun Dec 6 04:19:45 PST 1998 Jeff Law  (law@cygnus.com)
5196
5197         * version.c: Bump for snapshot.
5198
5199 Sun Dec  6 05:16:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5200
5201         * loop.c (check_dbra_loop): New argument loop_info.  Update fields
5202         as needed.
5203
5204 Sun Dec 6 03:40:13 PST 1998 Jeff Law  (law@cygnus.com)
5205
5206         * version.c: Bump for snapshot.
5207
5208 Sun Dec  6 07:49:29 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5209
5210         * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger
5211         compressed reports are ok and preferred over URLs
5212
5213 Sun Dec  6 07:45:33 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
5214
5215         * invoke.texi (Warning Options): Soften the tone of -pedantic
5216
5217 Sun Dec  6 00:20:44 1998  H.J. Lu  (hjl@gnu.org)
5218
5219         * print-rtl.c (print_rtx): Add prototype.
5220
5221         * unroll.c (iteration_info): Make it static.
5222
5223 Sun Dec  6 01:19:46 1998  Richard Henderson  <rth@cygnus.com>
5224
5225         * alias.c (memrefs_conflict_p): A second ANDed address
5226         disables the aligned address optimization.
5227
5228 Sat Dec  5 18:48:25 1998  Richard Henderson  <rth@cygnus.com>
5229
5230         * alpha.c (alpha_emit_set_const_1): Fix parenthesis error
5231         in -c << n case.
5232
5233 Sat Dec  5 15:14:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
5234
5235         * i960.h (BOOL_TYPE_SIZE): Define.
5236
5237 Sun Dec  6 00:28:16 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5238
5239         * config/c4x/c4x.c (valid_parallel_load_store): Flog functionality
5240         from old valid_parallel_operands_4.
5241         (valid_parallel_operands_4): Check that operands for 4 operand
5242         parallel insns are valid, excluding load/store insns.
5243         * config/c4x/c4x.h (valid_parallel_load_store): Add prototype.
5244         * config/c4x/c4x.md (*movqf_parallel, *movqi_parallel): Use
5245         valid_parallel_load_store instead of valid_parallel_operands_4.
5246         (*absqf2_movqf_clobber, *floatqiqf2_movqf_clobber, 
5247         *negqf2_movqf_clobber, *absqi2_movqi_clobber,
5248         *fixqfqi2_movqi_clobber, *negqi2_movqi_clobber,
5249         *notqi_movqi_clobber): Use valid_parallel_operands_4.
5250         (*subqf3_movqf_clobber, *ashlqi3_movqi_clobber,
5251         *ashrqi3_movqi_clobber, *lshrqi3_movqi_clobber,
5252         *subqi3_movqi_clobber): Use valid_parallel_operands_5.
5253
5254 Sat Dec  5 23:52:01 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5255
5256         * config/c4x/c4x.c (iteration_info): Delete extern.
5257
5258 Fri Dec  4 20:15:57 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
5259
5260         * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality.
5261
5262         * final.c (cleanup_subreg_operands): Delete some unused code.
5263
5264         * recog.h (MAX_RECOG_ALTERNATIVES): New macro.
5265         (struct insn_alternative): New structure definition.
5266         (recog_op_alt): Declare variable.
5267         (preprocess_constraints): Declare function.
5268         * recog.c (recog_op_alt): New variable.
5269         (extract_insn): Verify number of alternatives is in range.
5270         (preprocess_constraints): New function.
5271         * reg-stack.c: Include recog.h.
5272         (constrain_asm_operands): Delete.
5273         (get_asm_operand_lengths): Delete.
5274         (get_asm_operand_n_inputs): New function.
5275         (record_asm_reg_life): Delete OPERANDS, CONSTRAINTS, N_INPUTS and
5276         N_OUTPUTS args.  All callers changed.
5277         Compute number of inputs and outputs here by calling
5278         get_asm_operand_n_inputs.
5279         Instead of constrain_asm_operands, call extract_insn,
5280         constrain_operands and preprocess_constaints.  Use information
5281         computed by these functions throughout.
5282         (record_reg_life): Delete code that is unused due to changes in
5283         record_asm_reg_life.
5284         (subst_asm_stack_regs): Delete OPERANDS, OPERAND_LOC, CONSTRAINTS,
5285         N_INPUTS and N_OUTPUTS args.  All callers changed.
5286         Similar changes as in record_asm_reg_life.
5287         (subst_stack_regs): Move n_operands declaration into the if statement
5288         where it's used.
5289         Delete code that is unused due to changes in subst_asm_stack_regs.
5290         * stmt.c (expand_asm_operands): Verify number of alternatives is in
5291         range.
5292         * Makefile.in (reg-stack.o): Depend on recog.h.
5293
5294 Fri Dec  4 02:23:24 1998  Jeffrey A Law  (law@cygnus.com)
5295
5296         * except.c (set_exception_version_code): Argument is an "int".
5297
5298 Fri Dec  4 01:29:28 1998  Jeffrey A Law  (law@cygnus.com)
5299
5300         * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now.
5301         * configure: Rebuilt.
5302
5303 Fri Dec  4 01:29:28 1998  Robert Lipe  <robertl@dgii.com>
5304
5305         * configure.in (mipsel-*-linux*): New target.
5306         * mips/linux.h: New file, based on other Linux targets.
5307
5308 Thu Dec  3 11:19:50 1998  Mike Stump  <mrs@wrs.com>
5309
5310         * gthr-vxworks.h (__ehdtor): Fix memory leak.  The delete hook
5311         runs in the context of the deleter, not the deletee, so we must
5312         use taskVarGet to find the correct memory to free.
5313         (__gthread_key_create): Initialize the task
5314         variable subsystem so that the task variable is still active when
5315         the delete hook is run.
5316
5317 1998-12-03  Joseph S. Myers  <jsm28@cam.ac.uk>
5318
5319         * pdp11.h: Use optimize_size for space optimizations.
5320         * pdp11.c: Likewise.
5321         * pdp11.md: Likewise.
5322
5323         * pdp11.h (TARGET_40_PLUS): Fix typo.
5324
5325 Thu Dec  3 11:48:32 1998  Jeffrey A Law  (law@cygnus.com)
5326
5327         * local-alloc.c (block_alloc): Slightly retune heuristic to widen 
5328         qty lifetimes.
5329
5330 Thu Dec  3 22:30:18 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5331
5332         * alias.c (addr_side_effect_eval): New function.
5333         (memrefs_conflict_p): Use it.
5334         * rtl.h (addr_side_effect_eval): Prototype it.
5335
5336 1998-12-02  Joseph S. Myers  <jsm28@cam.ac.uk>
5337
5338         * pdp11.md (extendsfdf2): Fix mode mismatch in SET.
5339
5340 Wed Dec  2 11:23:07 1998  Jim Wilson  <wilson@cygnus.com>
5341
5342         * reload.c (find_reloads): When force const to memory, put result
5343         in substed_operand not *recog_operand_loc.
5344
5345 1998-12-02  Ulrich Drepper  <drepper@cygnus.com>
5346
5347         * c-lex.c: Fix indentation from last patch.
5348         Remove trailing whitespace.
5349         * real.c: Likewise.
5350
5351 Wed Dec  2 10:11:12 1998  Jeffrey A Law  (law@cygnus.com)
5352
5353         * flow.c (delete_block): Call set_last_insn after we have reset
5354         NEXT_INSN (kept_tail).
5355
5356 Wed Dec  2 00:47:31 1998  Jeffrey A Law  (law@cygnus.com)
5357
5358         * mips.md (trap_if): Use "$0" for the value zero.
5359
5360 Tue Dec  1 20:49:49 1998  Ulrich Drepper  <drepper@cygnus.com>
5361                           Stephen L Moshier  <moshier@world.std.com>
5362                           Richard Henderson  <rth@cygnus.com>
5363
5364         * c-common.c (declare_function_name): Declare predefinied variable
5365         `__func__'.
5366
5367         * c-decl.c (flag_isoc9x): Set to 1 by default.
5368         (c_decode_option): Handle -std= option.  Remove -flang-isoc9x.
5369         (grokdeclarator): Always emit warning about implicit int for ISO C 9x.
5370
5371         * c-parse.in: Allow constructors in ISO C 9x.
5372         Rewrite designator list handling.
5373         Allow [*] parameters.
5374         Don't warn about comma at end of enum definition for ISO C 9x.
5375
5376         * cccp.c (c9x): New variable.
5377         (rest_extension): New variable.
5378         (print_help): Document new -std= option.
5379         (main): Recognize -std= option.  Set c9x appropriately.
5380         (create_definition): Recognize ISO C 9x vararg macros.
5381
5382         * gcc.c (default_compilers): Adjust specs for -std options.
5383         (option_map): Add --std.
5384         (display_help): Document -std.
5385
5386         * toplev.c (documented_lang_options): Add -std and remove
5387         -flang-isoc9x.
5388         
5389         * c-lex.c (yylex): Recognize hex FP constants and call REAL_VALUE_ATOF
5390         or REAL_VALUE_HTOF based on base of the constants.
5391         * fold-const.c (real_hex_to_f): New function.  Replacement function
5392         for hex FP conversion if REAL_ARITHMETIC is not defined.
5393         * real.c (asctoeg): Add handling of hex FP constants.
5394         * real.h: Define REAL_VALUE_HTOF if necessary using ereal_atof or
5395         real_hex_to_f.
5396
5397 Tue Dec  1 16:45:49 1998  Stan Cox  <scox@cygnus.com>
5398
5399         * mips.md (divmodsi4*, divmoddi4*, udivmodsi4*, udivmoddi4): Add
5400         -mcheck-range-division/-mcheck-zero-division checking.  Avoid as macro
5401         expansion.  Use hi/lo as destination register.
5402         (div_trap): New.
5403         (divsi3*, divdi3*, modsi3*, moddi3*, udivsi3*, udivdi3*, umodsi3*,
5404         umoddi3*): Add -mcheck-range-division/-mcheck-zero-division checking.
5405         Avoid as macro expansion.  Use hi/lo as destination register. 
5406
5407         * mips.h (MASK_CHECK_RANGE_DIV): New.
5408         (MASK_NO_CHECK_ZERO_DIV): New.
5409         (ELIMINABLE_REGS): Added GP_REG_FIRST + 31.
5410         (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): Allow for getting
5411         return address for leaf functions out of r31 to support
5412         builtin_return_address. 
5413         
5414 Tue Dec  1 15:03:30 1998  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5415
5416         * jump.c (jump_optimize): Call regs_set_between_p with PREV_INSN(x),
5417         NEXT_INSN(x) to check insn x.
5418         
5419 Tue Dec  1 15:20:44 1998  Jeffrey A Law  (law@cygnus.com)
5420
5421         * flow.c (delete_block): Call set_last_insn if we end up deleting the
5422         last insn in the rtl chain.
5423
5424         * reload1.c (reload): Do not set reload_completed or split insns
5425         here.  Instead...
5426         * toplev.c (rest_of_compilation): Set reload_completed after
5427         reload returns.  Split insns after reload_cse has run.
5428
5429 Tue Dec  1 11:55:04 1998  Richard Henderson  <rth@cygnus.com>
5430
5431         * final.c (final_scan_insn): Abort if block_depth falls below 0.
5432
5433 Tue Dec  1 10:23:16 1998  Nick Clifton  <nickc@cygnus.com>
5434
5435         * config/arm/t-arm-elf (LIBGCC2_CFLAGS): Define inhibit_libc.
5436
5437 Tue Dec  1 10:22:18 1998  Nick Clifton  <nickc@cygnus.com>
5438
5439         * config/arm/unknown-elf.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove
5440         use of user-label_prefix.
5441
5442 Tue Dec  1 17:58:26 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5443
5444         * reload1.c (emit_reload_insns): Clear spill_reg_store
5445         when doing a new non-inherited reload from the same pseudo.
5446
5447         * local-alloc.c (function_invariant_p): New function.
5448         (update_equiv_regs): Use function_invariant_p instead of CONSTANT_P
5449         to decide if an equivalence should be recorded.
5450         * reload1.c (num_eliminable_invariants): New static variable.
5451         (reload): Set it.  Use function_invariant_p instead of CONSTANT_P
5452         to decide if an equivalence should be recorded.
5453         Unshare PLUS.
5454         (calculate_needs_all_insns): Skip insns that only set an equivalence.
5455         Take num_eliminable_invariants into account when deciding
5456         if register elimination should be done.
5457         (reload_as_needed): Take num_eliminable_invariants into account
5458         when deciding if register elimination should be done.
5459         (eliminate_regs): Handle non-constant reg_equiv_constant.
5460         * rtl.h (function_invariant_p): Declare.
5461
5462 Mon Nov 30 02:00:08 PST 1998 Jeff Law  (law@cygnus.com)
5463
5464         * version.c: Bump for snapshot.
5465
5466 Mon Nov 30 00:42:59 PST 1998 Jeff Law  (law@cygnus.com)
5467
5468         * version.c: Bump for snapshot.
5469
5470 Sun Nov 29 22:59:40 1998  Jason Merrill  <jason@yorick.cygnus.com>
5471
5472         * except.c (add_new_handler): Complain about additional handlers
5473         after one that catches everything.
5474
5475 Sat Nov 28 10:56:32 1998  Jeffrey A Law  (law@cygnus.com)
5476
5477         * configure.in (alpha*-*-netbsd): Fix typo.
5478         * configure: Rebuilt.
5479
5480 Fri Nov 27 12:28:56 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5481
5482         * system.h: Include libiberty.h.
5483
5484         * c-aux-info.c: Remove prototypes for concat/concat3.  Change
5485         function `concat' from fixed parameters to variable parameters,
5486         as is done in libiberty.  All callers of concat/concat3
5487         changed to use the new `concat' with variable args.
5488
5489         * cccp.c: Remove things made redundant by libiberty.h and/or
5490         conform to libiberty standards.
5491         * cexp.y: Likewise.
5492         * collect2.c: Likewise.
5493         * config/1750a/1750a.h: Likewise.
5494         * cppalloc.c: Likewise.
5495         * cppexp.c: Likewise.
5496         * cppfiles.c: Likewise.
5497         * cpphash.c: Likewise.
5498         * cpplib.c: Likewise.
5499         * dyn-string.c: Likewise.
5500         * fix-header.c: Likewise.
5501         * gcc.c: Likewise.
5502         * gcov.c: Likewise.
5503         * genattr.c: Likewise.
5504         * genattrtab.c: Likewise.
5505         * gencheck.c: Likewise.
5506         * gencodes.c: Likewise.
5507         * genconfig.c: Likewise.
5508         * genemit.c: Likewise.
5509         * genextract.c: Likewise.
5510         * genflags.c: Likewise.
5511         * gengenrtl.c: Likewise.
5512         * genopinit.c: Likewise.
5513         * genoutput.c: Likewise.
5514         * genpeep.c: Likewise.
5515         * genrecog.c: Likewise.
5516         * getpwd.c: Likewise.
5517         * halfpic.c: Likewise.
5518         * hash.c: Likewise.
5519         * mips-tdump.c: Likewise.  Wrap malloc/realloc/calloc prototypes
5520         in NEED_DECLARATION_* macros.
5521
5522         * mips-tfile.c: Remove things made redundant by libiberty.h and/or
5523         conform to libiberty standards.
5524         (fatal): Fix const-ification of variable `format' in
5525         !ANSI_PROTOTYPES case.
5526
5527         * prefix.c: Remove things made redundant by libiberty.h and/or
5528         conform to libiberty standards.
5529
5530         * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid
5531         conflicting with function `spaces' from libiberty.
5532
5533         * profile.c: Remove things made redundant by libiberty.h and/or
5534         conform to libiberty standards.
5535         * protoize.c: Likewise.
5536         * rtl.h: Likewise.
5537         * scan.h: Likewise.
5538         * tlink.c: Likewise.
5539         * toplev.c: Likewise.
5540         * toplev.h: Likewise.
5541         * tree.h: Likewise.
5542
5543 Thu Nov 26 08:38:06 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5544
5545         * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition.
5546
5547 Thu Nov 26 23:45:37 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5548
5549         * README.C4X: Updated URLs.
5550         * config/c4x/c4x.c (c4x_address_conflict): Fix typo.
5551         (valid_parallel_operands_5): Remove unused variable.
5552
5553 Thu Nov 26 23:40:03 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5554
5555         * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo.
5556
5557 1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
5558
5559         * Makefile.in (CONFIG_LANGUAGES): New macro taking all languages
5560         which can be configured.
5561         (LANGUAGES): Use $(CONFIG_LANGUAGES) instead of @all_languages@
5562         (Makefile): Pass actual LANGUAGES through the environment when
5563         re-configuring.
5564         (cstamp-h): Likewise.
5565         (config.status): Likewise.
5566
5567         * configure.in (enable_languages): Add new configuration parameter
5568         "--enable-languages=lang1,lang2,...".
5569         (${srcdir}/*/config-lang.in): Change handling to configure only
5570         those directories, that the user might have enabled; default to
5571         "all" existing languages.
5572         * configure: Regenerate.
5573
5574 Thu Nov 26 00:19:19 1998  Richard Henderson  <rth@cygnus.com>
5575
5576         * rtlanal.c (regs_set_between_p): New function.
5577         * rtl.h (regs_set_between_p): Prototype it.
5578         * jump.c (jump_optimize): Use it instead of modified_between_p
5579         in the Sep 2 change.
5580
5581 Wed Nov 25 23:32:02 1998  Ian Dall  <Ian.Dall@dsto.defence.gov.au>
5582                           Matthias Pfaller  <leo@dachau.marco.de>
5583
5584         * invoke.texi (Option Summary, NS32K Options): add description
5585         of NS32K specific options.
5586
5587         * ns32k.md (tstdf, cmpdf, movdf, truncdfsf2, fixdfqi2, fixdfhi2,
5588         fixdfsi2, fixunsdfqi2, fixunsdfhi2, fixunsdfsi2, fix_truncdfqi2,
5589         fix_truncdfhi2, fix_truncdfsi2, adddf3, subdf3, muldf3, divdf3,
5590         negdf2, absdf2): Use l instead of f since the double class and
5591         float class are no longer the same.
5592         (cmpsi, truncsiqi2, truncsihi2, addsi3, subsi3, mulsi3, umulsidi3,
5593         divsi3, modsi3, andsi3, iorsi3, xorsi3, negsi2, one_cmplsi2,
5594         ashlsi3, ashlhi3, ashlqi3, rotlsi3, rotlhi3, rotlqi3, abssi2,...):
5595         use "g" instead of "rmn" since LEGITIMATE_PIC_OPERAND has been
5596         fixed.
5597         (cmpsi, cmphi, cmpqi): use general_operand instead of
5598         non_immediate_operand. Removes erroneous assumption that can't
5599         compare constants.
5600         (movsf, movsi, movhi, movqi,...): New register numbering scheme.
5601         (movsi, addsi3): Use NS32K_DISPLACEMENT_P instead of hard coded
5602         constants.
5603         (movstrsi, movstrsi1, movstrsi2): completely new block move
5604         scheme.
5605         (...): Patterns to exploit multiply-add instructions.
5606         (udivmodsi4, udivmodsi_internal4, udivmodhi4,
5607         udivmoddihi4_internal, udivmodqi4, udivmoddiqi4_internal): new
5608         patterns to exploit extended divide insns.
5609         (udivsi3, udivhi3, udivqi3): remove since superceded by udivmodsi
5610         etc patterns.
5611
5612         * ns32k.h (FUNCTION_VALUE, LIBCALL_VALUE): Use f0 for complex
5613         float return values as well as simple scalar floats.
5614         (TARGET_32381, TARGET_MULT_ADD, TARGET_SWITCHES):
5615         support new flag to denote 32381 fpu.
5616         (OVERRIDE_OPTIONS): 32381 is a strict superset of 32081.
5617         (CONDITIONAL_REGISTER_USAGE): disable extra 32381 registers if not
5618         compling for 32381.
5619         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS,
5620         REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES, OUTPUT_REGISTER_NAMES,
5621         REG_ALLOC_ORDER, DBX_REGISTER_NUMBER, R0_REGNUM, F0_REGNUM,
5622         L1_REGNUM, STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
5623         LONG_FP_REGS_P, ARG_POINTER_REGNUM, reg_class, REG_CLASS_NAMES,
5624         REG_CLASS_CONTENTS, SUBSET_P,REGNO_REG_CLASS,
5625         REG_CLASS_FROM_LETTER, FUNCTION_PROLOGUE, FUNCTION_EPILOGUE,
5626         REGNO_OK_FOR_INDEX_P, FP_REG_P, REG_OK_FOR_INDEX_P,
5627         REG_OK_FOR_BASE_P, MEM_REG): new register scheme to include 32381
5628         fpu registers and special register classes for new 32381
5629         instructions dotf and polyf.
5630         (MODES_TIEABLE_P): Allow all integer modes, notably DI and SI, to
5631         be tieable.
5632         (INCOMING_RETURN_ADDR_RTX, RETURN_ADDR_RTX,
5633         INCOMING_FRAME_SP_OFFSET): New macros in case DWARF support is
5634         required.
5635         (SMALL_REGISTER_CLASSES): Make dependant on -mmult-add option.
5636         (MOVE_RATIO): Set to zero because of smart movstrsi implimentation.
5637         (REGISTER_MOVE_COST): move code to register_move_cost function for
5638         ease of coding and debugging.
5639         (CLASS_LIKELY_SPILLED_P): Under new register scheme class
5640         LONG_FLOAT_REGO is likely spilled but not caught by default
5641         definition.
5642         (CONSTANT_ADDRESS_P, CONSTANT_ADDRESS_NO_LABEL_P): use macro
5643         instead of hard coded numbers in range check.
5644         (ASM_OUTPUT_LABELREF_AS_INT): delete since unused.
5645         (...): Add prototypes for functions in ns32k.c but disable because
5646         of problems when ns32k.h is included in machine independant files.
5647         
5648         * ns32k.c: include "system.h", "tree.h", "expr.h", "flags.h".
5649         (ns32k_reg_class_contents, regcass_map, ns32k_out_reg_names,
5650         hard_regno_mode_ok, secondary_reload_class,
5651         print_operand, print_operand_address): new register scheme to
5652         include 32381 fpu registers and special register classes for new
5653         32381 instructions dotf and polyf.
5654         (gen_indexed_expr): Make static to keep namespace clean.
5655         (check_reg): remove since never called.
5656         (move_tail, expand_block_move): helper functions for "movstrsi"
5657         block move insn.
5658         (register_move_cost): Helper function for REGISTER_MOVE_COST macro.
5659         Increase cost of moves which go via memory.
5660         * netbsd.h (TARGET_DEFAULT): Set (new) 32381 fpu flag.
5661         (CPP_PREDEFINES): nolonger predefine "unix".
5662
5663         * ns32k.md (movsi, movsi, adddi3, subdi3, subsi3, subhi3, subqi3,...):
5664         Remove erroneous %$. print_operand() can work out from the rtx is
5665         an immediate prefix is required.
5666
5667         * ns32k.h (RETURN_POPS_ARGS, VALID_MACHINE_DECL_ATTRIBUTE,
5668         VALID_MACHINE_TYPE_ATTRIBUTE, COMP_TYPE_ATTRIBUTES,
5669         SET_DEFAULT_TYPE_ATTRIBUTES): Support for -mrtd calling
5670         convention.
5671         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST): Correct handling of
5672         pic operands.
5673
5674         * ns32k.c (symbolic_reference_mentioned_p, print_operand):
5675         Correct handling of pic operands.
5676         (ns32k_valid_decl_attribute_p, ns32k_valid_type_attribute_p,
5677         ns32k_comp_type_attributes, ns32k_return_pops_args): Support for
5678         -mrtd calling convention.
5679
5680 Wed Nov 25 23:42:20 1998  Tom Tromey  <tromey@cygnus.com>
5681
5682         * gcc.c (option_map): Recognize --output-class-directory.
5683
5684 Thu Nov 26 18:26:21 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5685
5686         * loop.h (precondition_loop_p): Added new mode argument.
5687         * unroll.c (precondition_loop_p): Likewise.
5688         (approx_final_value): Function deleted and subsumed
5689         into loop_iterations.
5690         (loop_find_equiv_value): New function.
5691         (loop_iterations): Use loop_find_equiv_value to find increments
5692         too large to be immediate constants.  Also use it to find terms
5693         common to initial and final iteration values that can be removed.
5694
5695 Thu Nov 26 18:05:04 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5696
5697         * loop.h (struct loop_info): Define new structure.
5698         (precondition_loop_p): Added prototype.
5699         (unroll_loop): Added new argument loop_info to prototype.
5700         (final_biv_value, final_giv_value): Added new argument n_iterations
5701         to prototype.
5702         * loop.c (strength_reduce): Declare new structure loop_iteration_info
5703         and new pointer loop_info.
5704         (loop_n_iterations): Replace global variable by element in 
5705         loop_info structure.
5706         (check_final_value): New argument n_iterations.
5707         (insert_bct): New argument loop_info.
5708         (loop_unroll_factor): Replace global array by element in 
5709         loop_info structure.
5710         (loop_optimize): Remove code to allocate and initialise 
5711         loop_unroll_factor_array.
5712         * unroll.c (precondition_loop_p):  No longer static since
5713         used by branch on count optimization.
5714         (precondition_loop_p, unroll_loop): New argument loop_info.
5715         (final_biv_value, final_giv_value, find_splittable_regs): New
5716         argument n_iterations.
5717         (loop_iteration_var, loop_initial_value, loop_increment, 
5718         loop_final_value, loop_comparison_code, loop_unroll_factor): 
5719         Replaced global variables by loop_info structure.
5720         (loop_unroll_factor): Replace global array by element in
5721         loop_info structure.
5722
5723 Thu Nov 26 17:49:29 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5724
5725         * loop.c (check_dbra_loop): Update JUMP_LABEL field of jump insn
5726         when loop reversed.
5727
5728         * unroll.c (precondition_loop_p): Return loop_initial_value
5729         for initial_value instead of loop_iteration_var.
5730
5731 Thu Nov 26 17:15:38 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5732
5733         * config/c4x/c4x.md: Fix minor formatting problems.  Update docs.
5734         (*b, *b_rev, *b_noov, *b_noov_rev, *db, 
5735         decrement_and_branch_until_zero, rptb_end): Use c4x_output_cbranch
5736         to output the instruction sequences.
5737         (rpts): Delete.
5738         (rptb_top): Provide alternatives to use any register or memory
5739         for loop counter.
5740         (rptb_end):  Emit use of operands rather than assigning them
5741         explicitly to the RS and RE registers.
5742
5743 Thu Nov 26 16:37:59 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5744
5745         * config/c4x/c4x.c (c4x_modified_between_p, c4x_mem_set_p,
5746         c4x_mem_set_p, c4x_mem_modified_between_p, c4x_insn_moveable_p,
5747         c4x_parallel_pack, c4x_parallel_find, c4x_update_info_reg,
5748         c4x_update_info_regs, c4x_copy_insn_after, c4x_copy_insns_after, 
5749         c4x_merge_notes, c4x_parallel_process, 
5750         c4x_combine_parallel_independent, c4x_combine_parallel_dependent,
5751         c4x_combine_parallel): Delete.
5752
5753 Thu Nov 26 15:16:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5754
5755         * config/c4x/c4x.c: (c4x_override_options): For compatibility
5756         with old target options clear flag_branch_on_count_reg if
5757         -mno-rptb specified and set flag_argument_alias is -mno-aliases
5758         specified.
5759         (c4x_output_cbranch): Handle a sequence of insns rather than a
5760         single insn.
5761         (c4x_rptb_insert): Do not emit a RPTB insn if the RC register
5762         has not been allocated as the loop counter.
5763         (c4x_address_conflict): Do not allow two volatile memory references.
5764         (valid_parallel_operands_4, valid_parallel_operands_5,
5765         valid_parallel_operands_6): Reject pattern if the register destination
5766         of the first set is used as part of an address in the second set.
5767
5768 Thu Nov 26 14:56:32 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5769
5770         * config/c4x/c4x.h (TARGET_DEFAULT): Add PARALEL_MPY_FLAG.
5771         (TARGET_SMALL_REG_CLASS): Set to 0 so that SMALL_REGISTER_CLASSES
5772         is no longer enabled if PARALLEL_MPY_FLAG set.
5773         (HARD_REGNO_CALL_CLOBBERED): Add parentheses to remove ambiguity.
5774         (REG_CLASS_CONTENTS): Add braces around initializers.
5775         (HAVE_MULTIPLE_PACK): Define.
5776         (ASM_OUTPUT_BYTE_FLOAT): Use %lf format specifier with 
5777         REAL_VALUE_TO_DECIMAL.
5778         (ASM_OUTPUT_SHORT_FLOAT): Use %lf format specifier with 
5779         REAL_VALUE_TO_DECIMAL.
5780         (ar0_reg_operand): Add prototype.
5781         (ar0_mem_operand): Likewise.
5782         (ar1_reg_operand): Likewise.
5783         (ar1_mem_operand): Likewise.
5784         (ar2_reg_operand): Likewise.
5785         (ar2_mem_operand): Likewise.
5786         (ar3_reg_operand): Likewise.
5787         (ar3_mem_operand): Likewise.
5788         (ar4_reg_operand): Likewise.
5789         (ar4_mem_operand): Likewise.
5790         (ar5_reg_operand): Likewise.
5791         (ar5_mem_operand): Likewise.
5792         (ar6_reg_operand): Likewise.
5793         (ar6_mem_operand): Likewise.
5794         (ar7_reg_operand): Likewise.
5795         (ar7_mem_operand): Likewise.
5796         (ir0_reg_operand): Likewise.
5797         (ir0_mem_operand): Likewise.
5798         (ir1_reg_operand): Likewise.
5799         (ir1_mem_operand): Likewise.
5800         (group1_reg_operand): Likewise.
5801         (group1_mem_operand): Likewise.
5802         (ir1_reg_operand): Likewise.
5803         (arx_reg_operand): Likewise.
5804         (not_rc_reg): Likewise.
5805         (not_modify_reg): Likewise.
5806         (c4x_group1_reg_operand): Remove prototype.
5807         (c4x_group1_mem_operand): Likewise.
5808         (c4x_arx_reg_operand): Likewise.
5809
5810 Wed Nov 25 19:02:55 1998  (Stephen L Moshier) <moshier@world.std.com>
5811
5812         * emit-rtl.c (gen_lowpart_common): Remove earlier change.
5813         * real.c (make_nan): Make SIGN arg actually specify the sign bit.
5814
5815 Thu Nov 26 14:12:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5816
5817         * config/c4x/c4x.md (addqi3): Emit addqi3_noclobber pattern
5818         during reload.
5819
5820 Wed Nov 25 22:05:28 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5821
5822         * config/sh/lib1funcs.asm (___udivsi3_i4): Don't switch to sz == 1
5823         unless FMOVD_WORKS is defined.
5824
5825 Wed Nov 25 20:11:04 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
5826
5827         * regclass.c (init_reg_sets): Move code that calculates tables
5828         dependent on reg_class_contents from here...
5829         (init_reg_sets_1): To here.
5830
5831 Wed Nov 25 14:54:46 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5832
5833         * cpplib.h: Delete struct import_file.  Add ihash element to
5834         struct cpp_buffer.  Delete dont_repeat_files and
5835         import_hash_table elements from cpp_reader; change
5836         all_include_files to a hash table.  Delete all foobar_include
5837         / last_foobar_include elements from struct cpp_options; put
5838         back four such: quote_include, bracket_include,
5839         system_include, after_include.  Redo struct file_name_list
5840         completely.  Add new structure type include_hash.  Add
5841         prototypes for merge_include_chains and include_hash.  Change
5842         prototypes for finclude, find_include_file, and
5843         append_include_chain to match changes below.
5844
5845         * cppfiles.c (simplify_pathname, include_hash,
5846         remap_filename, merge_include_chains): New functions.
5847         (add_import, lookup_import, open_include_file): Removed.
5848         (INO_T_EQ): Define this (copied from cccp.c).
5849         (hack_vms_include_specification): Remove all calls and #if 0
5850         out the definition.  It was being called incorrectly and at
5851         the wrong times.  Until a VMSie can look at this, it's better
5852         to not pretend to support it.
5853         (append_include_chain): Change calling convention; now takes
5854         only one directory at a time, and sets up the data structure
5855         itself.
5856         (redundant_include_p): Rewritten - this is now used for all
5857         include redundancy, whether by #ifndef, #import, or #pragma
5858         once.  Looks up things in the include hash table.
5859         (file_cleanup): Decrement pfile->system_include_depth here if
5860         it's >0.
5861         (find_include_file): Calling convention changed; now passes
5862         around a struct include_hash instead of 3 separate parameters.
5863         Guts ripped out and replaced with new include_hash mechanism.
5864         (finclude): Calling convention changed as for
5865         find_include_file.  Error exits pulled out-of-line.  Reformat.
5866         (safe_read): Return a long, not an int.
5867         (deps_output): Don't recurse.
5868
5869         * cpplib.c (is_system_include): Deleted.
5870         (path_include): Fix up call to append_include_chain.
5871         (do_include): Fix up calls to find_include_file and finclude.
5872         Clean up dependency output a bit.  Shorten obnoxiously lengthy
5873         #import warning message.  Don't decrement
5874         pfile->system_include_depth here.
5875         (do_pragma): Understand the include_hash structure.  Reformat.
5876         (do_endif): Correct handling of control macros.  Understand
5877         the include_hash.
5878         (cpp_start_read): Fix up calls to finclude.  Call
5879         merge_include_chains.
5880         (cpp_handle_option): Fix up calls to append_include_chain.
5881         Understand the four partial include chains.
5882         (cpp_finish): Add debugging code (#if 0-ed out) for the
5883         include_hash.
5884         (cpp_cleanup): Free the include_hash, not the import hash and
5885         the all_include and dont_repeat lists which no longer exist.
5886
5887 Wed Nov 25 11:26:19 1998  Jeffrey A Law  (law@cygnus.com)
5888
5889         * toplev.c (no_new_pseudos): Define.
5890         (rest_of_compilation):  Set no_new_pseudos as needed.
5891         * emit-rtl.c (gen_reg_rtx): Abort if we try to create a new pseudo
5892         if no_new_pseudos is set.
5893         * rtl.h (no_new_pseudos): Declare it.
5894         * reload1.c (reload): Update comments.
5895         * md.texi: Corresponding changes.
5896
5897 Wed Nov 25 11:26:17 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
5898
5899         * reload1.c (reg_used_in_insn): Renamed from reg_used_by_pseudo.
5900         (choose_reload_regs): Rename it here as well.  When computing it,
5901         also merge in used hardregs.
5902
5903 1998-11-25 07:51 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
5904
5905         * gcc.c: Split out Objective-C specs to...
5906         * objc/lang-specs.h: here. (New file.) Make the specs cpplib
5907         aware.
5908
5909         * c-lex.c (init_parse): Always initialize the filename global.
5910         * objc/objc-act.c (lang_init): Always call check_newline at
5911         beginning of file.
5912
5913 Wed Nov 25 00:48:29 1998  Graham  <grahams@rcp.co.uk>
5914
5915         * reload1.c (reload): Remove unused variable.
5916         (reload_reg_free_for_value_p): Add missing parameter definition.
5917
5918         * jump.c (jump_optimize): Remove unused variable.
5919
5920 Wed Nov 25 00:07:11 1998  Jeffrey A Law  (law@cygnus.com)
5921
5922         * Makefile.in (graph.o): Depend on $(RTL_H), not rtl.h.
5923
5924         * cse.c (fold_rtx): Make autoincrement addressing mode tests be
5925         runtime selectable.
5926         * expr.c (move_by_pieces): Similarly.
5927         (move_by_pieces_1, clear_by_pieces, clear_by_pieces_1): Similarly.
5928         * flow.c (find_auto_inc): Similarly.
5929         (try_pre_increment): Similarly.
5930         * loop.c (strength_reduce): Similarly.
5931         * regclass.c (auto_inc_dec_reg_p): Similarly.
5932         * regmove.c (try_auto_increment): Similarly.
5933         (fixup_match_1): Similarly.
5934         * rtl.h (HAVE_PRE_INCREMENT): Define if not already defined.
5935         (HAVE_PRE_DECREMENT): Similarly.
5936         (HAVE_POST_INCREMENT, HAVE_POST_DECREMENT): Similarly.
5937         * Corresponding changes to all target header files.
5938         * tm.texi: Update docs for autoinc addressing modes.
5939
5940 Tue Nov 24 20:24:59 1998  Jim Wilson  <wilson@cygnus.com>
5941
5942         * configure.in (m68020-*-elf*, m68k-*-elf*): New targets.
5943         * configure: Rebuild.
5944         * config/elfos.h: New file.
5945         * config/m68k/m68020-elf.h, config/m68k/m68kelf.h,
5946         config/m68k/t-m68kelf: New file.
5947         
5948 Tue Nov 24 13:40:06 1998  Jeffrey A Law  (law@cygnus.com)
5949
5950         * Makefile.in (HOST_AR): Define.
5951         (HOST_AR_FLAGS, HOST_RANLIB, HOST_RANLIB_TEST): Similarly.
5952         (libcpp.a): Use the host tools explicitly.
5953         (STAGESTUFF): Add libcpp.a.
5954
5955 Tue Nov 24 09:33:49 1998  Nick Clifton  <nickc@cygnus.com>
5956
5957         * config/m32r/m32r.md (movstrsi_internal): Describe changes made
5958         to source and destination registers.
5959
5960 Mon Nov 23 20:28:02 1998  Mike Stump  <mrs@wrs.com>
5961
5962         * libgcc2.c (top_elt): Remove top_elt, it isn't thread safe.
5963         The strategy we now use is to pre allocate the top_elt along
5964         with the EH context so that each thread has its own top_elt.
5965         This is necessary as the dynmanic cleanup chain is used on the
5966         top element of the stack and each thread MUST have its own.
5967         (eh_context_static): Likewise.
5968         (new_eh_context): Likewise.
5969         (__sjthrow): Likewise.
5970
5971 Mon Nov 23 20:25:03 1998  Jason Merrill  <jason@yorick.cygnus.com>
5972
5973         * i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Wrap in do...while.
5974         * i386.md (prologue_get_pc): Remove unused variable.
5975
5976 Mon Nov 23 17:05:40 1998  Geoffrey Noer  <noer@cygnus.com>
5977
5978         * i386/xm-cygwin.h: Rename cygwin_ path funcs back to cygwin32_.
5979
5980 Mon Nov 23 16:40:00 1998  Ulrich Drepper  <drepper@cygnus.com>
5981
5982         * Makefile.in (OBJS): Add graph.o
5983         (graph.o): New dependency list.
5984         * flags.h: Declare dump_for_graph and define graph_dump_types type.
5985         * print-rtl.c (dump_for_graph): Define new variable.
5986         (print_rtx): Rewrite to allow use in graph dumping functions.
5987         * toplev.c: Declare print_rtl_graph_with_bb, clean_graph_dump_file,
5988         finish_graph_dump_file.
5989         Define graph_dump_format.
5990         (compile_file): If graph dumping is enabled also clear these files.
5991         Finish graph dump files.
5992         (rest_of_compilation): Also dump graph information if enabled.
5993         (main): Recognize -dv to enabled VCG based graph dumping.
5994         * graph.c: New file.  Graph dumping functions.
5995
5996 Mon Nov 23 16:39:04 1998  Richard Henderson  <rth@cygnus.com>
5997
5998         * configure.in: Look for <sys/stat.h>.
5999         * system.h: Include it before substitute S_ISREG definitions.
6000
6001 Mon Nov 23 17:40:37 1998  Gavin Romig-Koch  <gavin@cygnus.com>
6002
6003         * config/mips/abi.h: Use ABI_O64, duplicating ABI_32 usage.
6004         * config/mips/iris6.h: Same.
6005         * config/mips/mips.md: Same.
6006         * config/mips/mips.c: Same; also add "-mabi=o64" option.
6007         * config/mips/mips.h: Same; also define ABI_O64.
6008
6009 Mon Nov 23 17:02:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6010
6011         *  configure.in: Use AC_PREREQ(2.12.1).
6012
6013 Mon Nov 23 10:16:38 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
6014
6015         * cccp.c (S_ISREG, S_ISDIR): Delete defines.
6016         * cpplib.c, gcc.c: Likewise.
6017         * system.h (S_ISREG, S_ISDIR): Define if not already defined.
6018
6019 Mon Nov 23 09:53:44 1998  Richard Henderson  <rth@cygnus.com>
6020
6021         * local-alloc.c (local_alloc): Use malloc not alloca for
6022         reg_qty, reg_offset, ref_next_in_qty.
6023
6024 Mon Nov 23 16:46:46 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6025
6026         * caller-save.c (insert_one_insn): Initialize the live_before and
6027         live_after register sets.
6028
6029         Add SH4 support:
6030
6031         * config/sh/lib1funcs.asm (___movstr_i4_even, ___movstr_i4_odd): Define.
6032         (___movstrSI12_i4, ___sdivsi3_i4, ___udivsi3_i4): Define.
6033         * sh.c (reg_class_from_letter, regno_reg_class): Add DF_REGS.
6034         (fp_reg_names, assembler_dialect): New variables.
6035         (print_operand_address): Handle SUBREGs.
6036         (print_operand): Added 'o' case.
6037         Don't use adj_offsettable_operand on PRE_DEC / POST_INC.
6038         Name of FP registers depends on mode.
6039         (expand_block_move): Emit different code for SH4 hardware.
6040         (prepare_scc_operands): Use emit_sf_insn / emit_df_insn as appropriate.
6041         (from_compare): Likewise.
6042         (add_constant): New argument last_value.  Changed all callers.
6043         (find_barrier): Don't try HImode load for FPUL_REG.
6044         (machine_dependent_reorg): Likewise.
6045         (sfunc_uses_reg): A CLOBBER cannot be the address register use.
6046         (gen_far_branch): Emit a barrier after the new jump.
6047         (barrier_align): Don't trust instruction lengths before
6048         fixing up pcloads.
6049         (machine_dependent_reorg): Add support for FIRST_XD_REG .. LAST_XD_REG.
6050         Use auto-inc addressing for fp registers if doubles need to
6051         be loaded in two steps.
6052         Set sh_flag_remove_dead_before_cse.
6053         (push): Support for TARGET_FMOVD.  Use gen_push_fpul for fpul.
6054         (pop): Support for TARGET_FMOVD.  Use gen_pop_fpul for fpul.
6055         (calc_live_regs): Support for TARGET_FMOVD.  Don't save FPSCR.
6056         Support for FIRST_XD_REG .. LAST_XD_REG.
6057         (sh_expand_prologue): Support for FIRST_XD_REG .. LAST_XD_REG.
6058         (sh_expand_epilogue): Likewise.
6059         (sh_builtin_saveregs): Use DFmode moves for fp regs on SH4.
6060         (initial_elimination_offset): Take TARGET_ALIGN_DOUBLE into account.
6061         (arith_reg_operand): FPUL_REG is OK for SH4.
6062         (fp_arith_reg_operand, fp_extended_operand) New functions.
6063         (tertiary_reload_operand, fpscr_operand): Likewise.
6064         (commutative_float_operator, noncommutative_float_operator): Likewise.
6065         (binary_float_operator, get_fpscr_rtx, emit_sf_insn): Likewise.
6066         (emit_df_insn, expand_sf_unop, expand_sf_binop): Likewise.
6067         (expand_df_unop, expand_df_binop, expand_fp_branch): Likewise.
6068         (emit_fpscr_use, mark_use, remove_dead_before_cse): Likewise.
6069         * sh.h (CPP_SPEC): Add support for -m4, m4-single, m4-single-only.
6070         (CONDITIONAL_REGISTER_USAGE): Likewise.
6071         (HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, FMOVD_BIT): Define.
6072         (TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARWARD): Define.
6073         (TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH4, TARGET_FMOVD): Define.
6074         (target_flag): Add -m4, m4-single, m4-single-only, -mfmovd.
6075         (OPTIMIZATION_OPTIONS): If optimizing, set flag_omit_frame_pointer
6076         to -1 and sh_flag_remove_dead_before_cse to 1.
6077         (ASSEMBLER_DIALECT): Define to assembler_dialect.
6078         (assembler_dialect, fp_reg_names): Declare.
6079         (OVERRIDE_OPTIONS): Add code for TARGET_SH4.
6080         Hide names of registers that are not accessible.
6081         (CACHE_LOG): Take TARGET_CACHE32 into account.
6082         (LOOP_ALIGN): Take TARGET_HARWARD into account.
6083         (FIRST_XD_REG, LAST_XD_REG, FPSCR_REG): Define.
6084         (FIRST_PSEUDO_REGISTER: Now 49.
6085         (FIXED_REGISTERS, CALL_USED_REGISTERS): Include values for registers.
6086         (HARD_REGNO_NREGS): Special treatment of FIRST_XD_REG .. LAST_XD_REG.
6087         (HARD_REGNO_MODE_OK): Update.
6088         (enum reg_class): Add DF_REGS and FPSCR_REGS.
6089         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REG_ALLOC_ORDER): Likewise.
6090         (SECONDARY_OUTPUT_RELOAD_CLASS, SECONDARY_INPUT_RELOAD_CLASS): Update.
6091         (CLASS_CANNOT_CHANGE_SIZE, DEBUG_REGISTER_NAMES): Define.
6092         (NPARM_REGS): Eight floating point parameter registers on SH4.
6093         (BASE_RETURN_VALUE_REG): SH4 also passes double values
6094         in floating point registers.
6095         (GET_SH_ARG_CLASS) Likewise.
6096         Complex float types are also returned in float registers.
6097         (BASE_ARG_REG): Complex float types are also passes in float registers.
6098         (FUNCTION_VALUE): Change mode like PROMOTE_MODE does.
6099         (LIBCALL_VALUE): Remove trailing semicolon.
6100         (ROUND_REG): Round when double precision value is passed in floating
6101         point register(s).
6102         (FUNCTION_ARG_ADVANCE): No change wanted for SH4 when things are
6103         passed on the stack.
6104         (FUNCTION_ARG): Little endian adjustment for SH4 SFmode.
6105         (FUNCTION_ARG_PARTIAL_NREGS): Zero for SH4.
6106         (TRAMPOLINE_ALIGNMENT): Take TARGET_HARWARD into account.
6107         (INITIALIZE_TRAMPOLINE): Emit ic_invalidate_line for TARGET_HARWARD.
6108         (MODE_DISP_OK_8): Not for SH4 DFmode.
6109         (GO_IF_LEGITIMATE_ADDRESS): No base reg + index reg for SH4 DFmode.
6110         Allow indexed addressing for PSImode after reload.
6111         (LEGITIMIZE_ADDRESS): Not for SH4 DFmode.
6112         (LEGITIMIZE_RELOAD_ADDRESS): Handle SH3E SFmode.
6113         Don't change SH4 DFmode nor PSImode RELOAD_FOR_INPUT_ADDRESS.
6114         (DOUBLE_TYPE_SIZE): 64 for SH4.
6115         (RTX_COSTS): Add PLUS case.
6116         Increae cost of ASHIFT, ASHIFTRT, LSHIFTRT case.
6117         (REGISTER_MOVE_COST): Add handling of R0_REGS, FPUL_REGS, T_REGS,
6118         MAC_REGS, PR_REGS, DF_REGS.
6119         (REGISTER_NAMES): Use fp_reg_names.
6120         (enum processor_type): Add PROCESSOR_SH4.
6121         (sh_flag_remove_dead_before_cse): Declare.
6122         (rtx_equal_function_value_matters, fpscr_rtx, get_fpscr_rtx): Declare.
6123         (PREDICATE_CODES): Add binary_float_operator,
6124         commutative_float_operator, fp_arith_reg_operand, fp_extended_operand,
6125         fpscr_operand, noncommutative_float_operator.
6126         (ADJUST_COST): Use different scale for TARGET_SUPERSCALAR.
6127         (SH_DYNAMIC_SHIFT_COST): Cheaper for SH4.
6128         * sh.md (attribute cpu): Add value sh4.
6129         (attrbutes fmovd, issues): Define.
6130         (attribute type): Add values dfp_arith, dfp_cmp, dfp_conv, dfdiv.
6131         (function units memory, int, mpy, fp): Make dependent on issue rate.
6132         (function units issue, single_issue, load_si, load): Define.
6133         (function units load_store, fdiv, gp_fpul): Define.
6134         (attribute hit_stack): Provide proper default.
6135         (use_sfunc_addr+1, udivsi3): Predicated on ! TARGET_SH4.
6136         (udivsi3_i4, udivsi3_i4_single, divsi3_i4, divsi3_i4_single): New insns.
6137         (udivsi3, divsi3): Emit special patterns for SH4 hardware,
6138         (mulsi3_call): Now uses match_operand for function address.
6139         (mulsi3): Also emit code for SH1 case.  Wrap result in REG_LIBCALL /
6140         REG_RETVAL notes.
6141         (push, pop, push_e, pop_e): Now define_expands.
6142         (push_fpul, push_4, pop_fpul, pop_4, ic_invalidate_line): New expanders.
6143         (movsi_ie): Added y/i alternative.
6144         (ic_invalidate_line_i, movdf_i4): New insns.
6145         (movdf_i4+[123], reload_outdf+[12345], movsi_y+[12]): New splitters.
6146         (reload_indf, reload_outdf, reload_outsf, reload_insi): New expanders.
6147         (movdf): Add special code for SH4.
6148         (movsf_ie, movsf_ie+1, reload_insf, calli): Make use of fpscr visible.
6149         (call_valuei, calli, call_value): Likewise.
6150         (movsf): Emit no-op move.
6151         (mov_nop, movsi_y): New insns.
6152         (blt, sge): generalize to handle DFmode.
6153         (return predicate): Call emit_fpscr_use and remove_dead_before_cse.
6154         (block_move_real, block_lump_real): Predicate on ! TARGET_HARD_SH4.
6155         (block_move_real_i4, block_lump_real_i4, fpu_switch): New insns.
6156         (fpu_switch0, fpu_switch1, movpsi): New expanders.
6157         (fpu_switch+[12], fix_truncsfsi2_i4_2+1): New splitters.
6158         (toggle_sz): New insn.
6159         (addsf3, subsf3, mulsf3, divsf3): Now define_expands.
6160         (addsf3_i, subsf3_i, mulsf3_i4, mulsf3_ie, divsf3_i): New insns.
6161         (macsf3): Make use of fpscr visible.  Disable for SH4.
6162         (floatsisf2): Make use of fpscr visible.
6163         (floatsisf2_i4): New insn.
6164         (floatsisf2_ie, fixsfsi, cmpgtsf_t, cmpeqsf_t): Disable for SH4.
6165         (ieee_ccmpeqsf_t): Likewise.
6166         (fix_truncsfsi2): Emit different code for SH4.
6167         (fix_truncsfsi2_i4, fix_truncsfsi2_i4_2, cmpgtsf_t_i4): New insns.
6168         (cmpeqsf_t_i4, ieee_ccmpeqsf_t_4): New insns.
6169         (negsf2, sqrtsf2, abssf2): Now expanders.
6170         (adddf3, subdf3i, muldf2, divdf3, floatsidf2): New expanders.
6171         (negsf2_i, sqrtsf2_i, abssf2_i, adddf3_i, subdf3_i): New insns.
6172         (muldf3_i, divdf3_i, floatsidf2_i, fix_truncdfsi2_i): New insns.
6173         (fix_truncdfsi2, cmpdf, negdf2, sqrtdf2, absdf2): New expanders.
6174         (fix_truncdfsi2_i4, cmpgtdf_t, cmpeqdf_t, ieee_ccmpeqdf_t): New insns.
6175         (fix_truncdfsi2_i4_2+1): New splitters.
6176         (negdf2_i, sqrtdf2_i, absdf2_i, extendsfdf2_i4): New insns.
6177         (extendsfdf2, truncdfsf2): New expanders.
6178         (truncdfsf2_i4): New insn.
6179         * t-sh (LIB1ASMFUNCS): Add _movstr_i4, _sdivsi3_i4, _udivsi3_i4.
6180         (MULTILIB_OPTIONS): Add m4-single-only/m4-single/m4.
6181         * float-sh.h: When testing for __SH3E__, also test for
6182         __SH4_SINGLE_ONLY__ .
6183         * va-sh.h (__va_freg): Define to float.
6184         (__va_greg, __fa_freg, __gnuc_va_list, va_start):
6185         Define for __SH4_SINGLE_ONLY__ like for __SH3E__ .
6186         (__PASS_AS_FLOAT, __TARGET_SH4_P): Likewise.
6187         (__PASS_AS_FLOAT): Use different definition for __SH4__ and
6188          __SH4_SINGLE__.
6189         (TARGET_SH4_P): Define.
6190         (va_arg): Use it.
6191
6192         * sh.md (movdf_k, movsf_i): Tweak the condition so that
6193         init_expr_once is satisfied about the existence of load / store insns.
6194
6195         * sh.md (movsi_i, movsi_ie, movsi_i_lowpart, movsf_i, movsf_ie):
6196         change m constraint in source operand to mr / mf .
6197
6198         * va-sh.h (__va_arg_sh1): Use __asm instead of asm.
6199
6200         * (__VA_REEF): Define.
6201         (__va_arg_sh1): Use it.
6202
6203         * va-sh.h (va_start, va_arg, va_copy): Add parenteses.
6204
6205 Sun Nov 22 21:34:02 1998  Jeffrey A Law  (law@cygnus.com)
6206
6207         * i386/dgux.c (struct option): Add new "description field".
6208         * m88k/m88k.c (struct option): Likewise.
6209
6210 Sun Nov 22 16:07:57 PST 1998 Jeff Law  (law@cygnus.com)
6211
6212         * version.c: Bump for snapshot.
6213
6214 Sun Nov 22 13:40:02 1998  Bernd Schmidt  <crux@pool.informatik.rwth-aachen.de>
6215
6216         * regmove.c (regmove_profitable_p): Use return value of find_matches
6217         properly.
6218
6219 Sun Nov 22 02:47:37 PST 1998 Jeff Law  (law@cygnus.com)
6220
6221         * version.c: Bump for snapshot.
6222
6223 Sat Nov 21 22:12:09 1998  Jeffrey A Law  (law@cygnus.com)
6224
6225         * reload1.c (eliminate_regs): Do not lose if eliminate_regs is called
6226         without reload having been called earlier.
6227
6228         * v850.c (ep_memory_operand): Offsets < 0 are not valid for EP
6229         addressing modes.
6230         (v850_reorg): Similarly.
6231
6232         * loop.c (check_dbra_loop): Avoid using gen_add2_insn.
6233
6234 Sat Nov 21 02:18:38 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6235
6236         * loop.c (move_movables): Start of libcall might be new loop start.
6237
6238 Fri Nov 20 12:14:16 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6239
6240         * hash.c (hash_table_init_n): Wrap prototype arguments in PARAMS().
6241
6242 Fri Nov 20 08:34:00 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6243
6244         * function.c (nonlocal_goto_handler_slots): Renamed from
6245         nonlocal_goto_handler_slot; now an EXPR_LIST chain.
6246         (push_function_context_to): Adjust for this change.
6247         (pop_function_context_from): Likewise.
6248         (init_function_start): Likewise.
6249         (expand_function_end): Likewise.
6250         * function.h (struct function): Likewise.
6251         * calls.c (expand_call): Likewise.
6252         * explow.c (allocate_dynamic_stack_space): Likewise.
6253         * expr.h (nonlocal_goto_handler_slots): Rename its declaration.
6254         * stmt.c (declare_nonlocal_label): Make a new handler slot for each
6255         label.
6256         (expand_goto): When doing a nonlocal goto, find corresponding handler
6257         slot for it.  Don't put the label address in the static chain register.
6258         (expand_end_bindings): Break out nonlocal goto handling code into
6259         three new functions.
6260         (expand_nl_handler_label, expand_nl_goto_receiver,
6261         expand_nl_goto_receivers): New static functions, broken out of
6262         expand_end_bindings and adapted to create one handler per nonlocal
6263         label.
6264         * function.c (delete_handlers): Delete insn if it references any of
6265         the nonlocal goto handler slots.
6266         * i960.md (nonlocal_goto): Comment out code that modifies
6267         static_chain_rtx.
6268         * sparc.md (nonlocal_goto): Likewise.
6269         (goto_handler_and_restore_v9): Comment out.
6270         (goto_handler_and_restore_v9_sp64): Comment out.
6271
6272 Thu Nov 19 23:44:38 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6273
6274         * expr.c (STACK_BYTES): Delete unused macro.
6275         * calls.c: Provide default for PREFERRED_STACK_BOUNDARY.
6276         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
6277         (expand_call): Likewise.
6278         (emit_library_call): Likewise.
6279         (emit_library_call_value): Likewise.
6280         * function.c: Provide default for PREFERRED_STACK_BOUNDARY.
6281         (STACK_BYTES): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
6282         * explow.c: Provide default for PREFERRED_STACK_BOUNDARY.
6283         (round_push): Use PREFERRED_STACK_BOUNDARY, not STACK_BOUNDARY.
6284         (allocate_dynamic_stack_space): Likewise.
6285         * tm.texi (PREFERRED_STACK_BOUNDARY): Document new macro.
6286         (STACK_BOUNDARY): Update description to reflect the new situation.
6287
6288 Thu Nov 19 22:20:51 1998  Jeffrey A Law  (law@cygnus.com)
6289
6290         * reorg.c (relax_delay_slots): When optimizing for code size, if a
6291         return with a filled delay slot is followed by a return with an
6292         unfilled delay slot, delete the first return and reemit the insn
6293         that was previously in its delay slot.
6294
6295         * i860.c (single_insn_src_p): Add missing parens.
6296         * ginclude/math-3300.h: Likewise.
6297
6298 Thu Nov 19 20:55:59 1998  H.J. Lu  (hjl@gnu.org)
6299
6300         * regclass.c (init_reg_sets_1): Add prototype.
6301         (init_reg_modes): Likewise.
6302
6303 1998-11-19 Zack Weinberg  <zack@rabi.phys.columbia.edu>
6304
6305         * c-common.c: Change warning messages to say `comparison is
6306         always true' or `comparison is always false' instead of the
6307         confusing `is always 0', `is always 1'.
6308
6309 Thu Nov 19 19:05:49 1998  Per Bothner  <bothner@cygnus.com>
6310
6311         * print-tree.c (print_node):  After printing BLOCK or BIND_EXPR,
6312         break instead of return (which loses closing '>').
6313
6314 Thu Nov 19 19:34:13 1998  Jeffrey A Law  (law@cygnus.com)
6315
6316         * i386.h (LEGITIMATE_CONSTANT_P): Reject CONST_DOUBLEs that are not
6317         standard 387 constants.
6318
6319         * i386.md (jump): Explicitly set "memory" attribute.
6320         (indirect_jump, prologue_set_stack_ptr): Likewise.
6321         (prologue_get_pc_and_set_got, pop): Likewise.
6322         (allocate_stack_worder, blockage, return_internal): Likewise.
6323         (return_pop_internal, nop): Likewise.
6324         (epilogue_set_stack_ptr, leave): Likewise.
6325
6326 Thu Nov 19 15:42:54 1998  Nick Clifton  <nickc@cygnus.com>
6327
6328         * config/arm/coff.h: Set USER_LABEL_PREFIX to "_".
6329
6330 Thu Nov 19 23:20:59 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6331
6332         * reload1.c (reload_reg_free_for_value_p):
6333         Early auto_inc reloads don't conflict with outputs.
6334
6335 Thu Nov 19 12:58:55 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6336
6337         * configure.in: Don't do AC_CHECK_HEADERS(wait.h sys/wait.h).
6338         Instead call AC_HEADER_SYS_WAIT.
6339
6340         * collect2.c: Don't provide defaults for sys/wait.h macros.
6341         * gcc.c: Likewise.
6342         * protoize.c: Likewise.  Also, don't include sys/wait.h.
6343
6344         * system.h: Include sys/wait.h and provide macro defaults.
6345
6346 1998-11-19  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6347
6348         * Makefile.in (mandir): Set to @mandir@.
6349         (man1dir): New variable to hold the former value of $(mandir).
6350         Replace all uses of $(mandir) by $(man1dir).
6351
6352 Wed Nov 18 16:31:28 1998  Jim Wilson  <wilson@cygnus.com>
6353
6354         * reload.c (find_reloads_address_part): If have a CONST_INT, create
6355         a new one before passing it to force_const_mem.
6356
6357         * reload.c (find_reloads_toplev): Pass &x instead of NULL_PTR in
6358         find_reloads_address call.
6359
6360 Wed Nov 18 22:13:00 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6361
6362         * expr.c (store_expr): Don't generate load-store pair
6363         if TEMP is identical (according to ==) with TARGET.
6364
6365 Tue Nov 17 22:25:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6366
6367         * reload1.c (reload_reg_free_for_value_p): When considered reload
6368         has an output, matching inputs are not sufficient to avoid conflict.
6369
6370 Tue Nov 17 11:51:16 1998  Mark Mitchell  <mark@markmitchell.com>
6371
6372         * hash.h (hash_table_key): New type.
6373         (hash_entry): Change `string' field to generic `key'.
6374         (hash_table): Add `comp' and `hash' functions.
6375         (hash_table_init): Take them as input.
6376         (hash_table_init_n): Likewise.
6377         (hash_lookup): Modify for generic keys.
6378         (hash_newfunc): Likewise.
6379         (hash_traverse): Likewise.
6380         (string_hash): New function.
6381         (string_compare): Likewise.
6382         (string_copy): Likewise.
6383         * hash.c (hash_table_init_n): Modify for generic keys.
6384         (hash_table_init): Likewise.
6385         (hash_lookup): Likewise.
6386         (hash_newfunc): Likewise.
6387         (hash_traverse): Likewise.
6388         (string_hash): Split out from hash_lookup.
6389         (string_compare): New function.
6390         (string_copy): Split out from hash_lookup.
6391         * tlink.c (symbol_hash_newfunc): Modify for new interfaces to hash
6392         tables.
6393         (symbol_hash_lookup): Likewise.
6394         (file_hash_newfunc): Likewise.
6395         (file_hash_lookup): Likewise.
6396         (demangled_hash_newfunc): Likewise.
6397         (demangled_hash_lookup): Likewise.
6398         (tlink_int): Likewise.
6399         (read_repo_file): Likewise.
6400         (recompile_files): Likewise.
6401         (demangle_new_symbols): Likewise.
6402         (scan_linker_output): Likewise.
6403         
6404 Tue Nov 17 17:13:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6405
6406         * flow.c (insn_dead_p): New argument NOTES.  Changed all callers.
6407
6408 Mon Nov 16 17:56:07 1998  David Edelsohn  <edelsohn@gnu.org>
6409
6410         * rs6000.c (output_mi_thunk): Improve test for local branch.
6411
6412 Mon Nov 16 17:56:07 1998  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6413
6414         * rs6000.c (output_mi_thunk): Correct test for aggregate values.
6415
6416 Mon Nov 16 21:02:52 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6417
6418         * reload1.c (reload_reg_free_before_p): Delete.
6419         Changed all callers to use reload_reg_free_for_value_p instead.
6420         (reload_reg_free_for_value_p): Handle more reload types.
6421         A RELOAD_FOR_INPUT doesn't conflict with its
6422         RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS.
6423         Add special case for OUT == const0_rtx.
6424         Added ignore_address_reloads argument.  Changed all callers.
6425
6426 Mon Nov 16 02:22:29 1998  Jason Merrill  <jason@yorick.cygnus.com>
6427
6428         * toplev.c (compile_file): Don't pedwarn about undefined static
6429         functions just because we passed -Wunused.
6430
6431 Mon Nov 16 04:41:41 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6432
6433         * function.c (purge_addressof_1): Unshare rtl created by
6434         store_bit_field.
6435
6436 Mon Nov 16 04:23:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6437
6438         * regmove.c (regmove_optimize): Don't do anything but
6439         optimize_reg_copy[123] when flag_regmove is not set.
6440
6441 Sat Nov 14 15:05:07 1998  Richard Henderson  <rth@cygnus.com>
6442
6443         * alpha.md (addsi3, subsi3): Revise 5 Nov change to store DImode
6444         value in paradoxical SImode result, rather than truncating midpoint.
6445
6446 Fri Nov 13 22:19:23 1998  Richard Henderson  <rth@cygnus.com>
6447
6448         * alpha.c (reg_not_elim_operand): New.
6449         * alpha.h (PREDICATE_CODES): Add it.
6450         * alpha.md (s48addq, s48subq patterns): Use it as the predicate
6451         for the multiplicand.
6452
6453 Fri Nov 13 22:50:37 1998  David Edelsohn  <edelsohn@gnu.org>
6454
6455         * rs6000.md (movsf): Remove explicit secondary-reload-like
6456         functionality.  Only truncate SFmode store if in FPR.
6457         (movsf splitters): Combine const_double splitters.
6458         (movsf_hardfloat): Add GPR support.
6459
6460 Fri Nov 13 11:02:11 1998  Stan Cox  <scox@cygnus.com>
6461
6462         * splet.h (SUBTARGET_OVERRIDE_OPTIONS): New to
6463         deprecate -mlive-g0 and -mbroken-saverestore.
6464         * t-splet (MULTILIB_OPTIONS): Likewise.
6465         
6466         * sparc.c (sparc_flat_compute_frame_size): Correctly calc args_size
6467         in a leaf function.  Clarify total_size/extra_size relationship.
6468
6469 Thu Nov 12 19:20:57 1998  Geoffrey Noer  <noer@cygnus.com>
6470
6471         * i386/cygwin32.asm: Delete.
6472         * i386/cygwin.asm: New file, renamed from cygwin32.asm.
6473         * i386/cygwin32.h: Delete.
6474         * i386/cygwin.h: New file, renamed from cygwin32.h.
6475         * i386/t-cygwin32: Delete.
6476         * i386/t-cygwin: New file, renamed from t-cygwin32.  Include
6477         cygwin.asm instead of cygwin32.asm.  Remove "32" from comment.
6478         * i386/x-cygwin32: Delete.
6479         * i386/x-cygwin: New file, renamed from x-cygwin32.
6480         * i386/xm-cygwin32: Delete.
6481         * i386/xm-cygwin: New file, renamed from xm-cygwin32.  Use newly
6482         renamed cygwin_ funcs for path translations.
6483         * i386/win32.h: Define __CYGWIN__ when -mcygwin given.
6484         * i386/winnt.c: Remove "32" from comment about cygwin.
6485         * i386/mingw32.h: Fix references to cygwin32.h in light of above.
6486         * rs6000/cygwin32.h: Delete.
6487         * rs6000/cygwin.h: New file, renamed from cygwin32.h.  Add
6488         -D__CYGWIN__ to CPP_PREDEFINES.
6489         * rs6000/x-cygwin32: Delete.
6490         * rs6000/x-cygwin: New file, renamed from x-cygwin32.
6491         * rs6000/xm-cygwin32: Delete.
6492         * rs6000/xm-cygwin: New file, renamed from xm-cygwin32.
6493
6494         * configure.in: Check for cygwin* instead of cygwin32.  Account
6495         for the rename of cygwin-related config files to lose the "32"s.
6496         * configure: Regenerate.
6497
6498         * cccp.c, collect2.c, gcc.c, getpwd.c, libgcc2.c, protoize.c,
6499         toplev.c: Change all refs to __CYGWIN32__ to __CYGWIN__.
6500
6501 Wed Nov 11 12:25:19 1998  Tom Tromey  <tromey@cygnus.com>
6502
6503         * Makefile.in (JAVAGC): New macro.
6504         * configure: Rebuilt.
6505         * configure.in: Recognize --enable-java-gc argument.  Subst
6506         `JAVAGC' variable.
6507
6508 Thu Nov 12 03:32:16 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6509
6510         Handle equivalences that have been obscured by gcse:
6511
6512         * reload1.c (reload): Handle equivalences set up in multiple places.
6513         * local-alloc.c (reg_equiv_init_insns): New variable.
6514         (no_equiv): New function.
6515         (update_equiv_regs): Handle equivalences set up in multiple places.
6516         Don't ignore an insn just because its destination is likely to be
6517         spilled.
6518
6519 Wed Nov 11 13:46:13 1998  Jim Wilson  <wilson@cygnus.com>
6520
6521         * except.c (expand_eh_return): Readd force_operand call lost in
6522         Sept 15 change.
6523
6524 Tue Nov 10 17:04:11 1998  David Edelsohn  <edelsohn@gnu.org>
6525
6526         * rs6000.h (LEGITIMIZE_ADDRESS): Add missing goto on last case.
6527
6528 1998-11-09  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6529
6530         * dbxout.c: Check HAVE_STAB_H instead of HAVE_STABS_H.
6531
6532 Mon Nov  9 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6533
6534         * regmove.c (regmove_optimize): Fix error in last change.
6535
6536 Mon Nov  9 16:37:52 1998  Andrew Cagney  <cagney@b1.cygnus.com>
6537
6538         * mips.c (function_prologue): When TARGET_MIPS16, adjust the register
6539         offset in the .mask pseudo to compensate for frame pointer adjustments.
6540         (mips16_fp_args, build_mips16_call_stub): For little endian, do not
6541         word swap arguments moved to/from FP registers.
6542         * mips16.S (DFREVCMP): Reverse arguments to OPCODE.
6543         
6544 Mon Nov 9 09:47:06 PST 1998 Jeff Law  (law@cygnus.com)
6545
6546         * version.c: Bump for snapshot.
6547
6548 Mon Nov 9 02:14:14 PST 1998 Jeff Law  (law@cygnus.com)
6549
6550         * version.c: Bump for snapshot.
6551
6552 Mon Nov  9 03:06:24 1998  Jeffrey A Law  (law@cygnus.com)
6553
6554         * reload1.c (delete_output_reload_insn): If a pseudo is set multiple
6555         times, then it can not be completely replaced.
6556
6557 Mon Nov  9 00:39:02 1998  Richard Henderson  <rth@cygnus.com>
6558
6559         * alpha.md (call, call_value) [OSF]: Correct alt 3 insn length.
6560
6561 Sun Nov  8 17:50:30 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6562
6563         * gansidecl.h: Prepend a "G" to the macro wrapping this file
6564         (to distinguish it from the macro wrapping ansidecl.h.)
6565         Include libiberty's ansidecl.h.  Remove all redundant definitions.
6566         Define the PROTO() style macros in terms of the PARAMS() ones.
6567
6568         
6569         * calls.c (emit_library_call): Switch on ANSI_PROTOTYPES, not
6570         __STDC__, when deciding whether to use ANSI variable args.
6571         (emit_library_call_value): Likewise.
6572
6573         * cccp.c (error): Likewise.
6574         (warning): Likewise.
6575         (error_with_line): Likewise.
6576         (warning_with_line): Likewise.
6577         (pedwarn): Likewise.
6578         (pedwarn_with_line): Likewise.
6579         (pedwarn_with_file_and_line): Likewise.
6580         (fatal): Likewise.
6581
6582         * cexp.y (error): Likewise.
6583         (pedwarn): Likewise.
6584         (warning): Likewise.
6585
6586         * collect2.c (fatal_perror): Likewise.
6587         (fatal): Likewise.
6588         (error): Likewise.
6589
6590         * combine.c (gen_rtx_combine): Likewise.
6591
6592         * cpperror.c (cpp_message): Likewise.
6593         (cpp_fatal): Likewise.
6594
6595         * cpplib.c (cpp_error): Likewise.
6596         (cpp_warning): Likewise.
6597         (cpp_pedwarn): Likewise.
6598         (cpp_error_with_line): Likewise.
6599         (cpp_warning_with_line): Likewise.
6600         (cpp_pedwarn_with_line): Likewise.
6601         (cpp_pedwarn_with_file_and_line): Likewise.
6602
6603         * cpplib.h: Don't define PARAMS() macro.
6604
6605         * demangle.h: Likewise.
6606
6607         * doprint.c (checkit): Switch on ANSI_PROTOTYPES, not __STDC__,
6608         when deciding whether to use ANSI variable args.
6609
6610         * emit-rtl.c (gen_rtx): Likewise.
6611         (gen_rtvec): Likewise.
6612
6613         * final.c (asm_fprintf): Likewise.
6614
6615         * fix-header.c (cpp_message): Likewise.
6616         (fatal): Likewise.
6617         (cpp_fatal): Likewise.
6618
6619         * gcc.c (concat): Likewise.
6620         (fatal): Likewise.
6621         (error): Likewise.
6622
6623         * genattr.c (fatal): Likewise.
6624
6625         * genattrtab.c (attr_rtx): Likewise.
6626         (attr_printf): Likewise.
6627         (fatal): Likewise.
6628
6629         * gencodes.c (fatal): Likewise.
6630
6631         * genconfig.c (fatal): Likewise.
6632
6633         * genemit.c (fatal): Likewise.
6634
6635         * genextract.c (fatal): Likewise.
6636
6637         * genflags.c (fatal): Likewise.
6638
6639         * genopinit.c (fatal): Likewise.
6640
6641         * genoutput.c (fatal): Likewise.
6642         (error): Likewise.
6643
6644         * genpeep.c (fatal): Likewise.
6645
6646         * genrecog.c (fatal): Likewise.
6647
6648         * halfpic.h: Switch on ANSI_PROTOTYPES, not __STDC__, when
6649         deciding whether to declare `tree_node' and `rtx_def'.
6650
6651         * hash.h: Don't define stuff we get from gansidecl.h.
6652
6653         * mips-tfile.c: Likewise.  Define __proto() in terms of PARAMS().
6654         (fatal): Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
6655         whether to use ANSI variable args.
6656         (error): Likewise.
6657
6658         * prefix.c (concat): Likewise.
6659
6660         * scan.h: Likewise.
6661
6662         * system.h: Likewise.
6663
6664         * toplev.c (error_with_file_and_line): Likewise.
6665         (error_with_decl): Likewise.
6666         (error_for_asm): Likewise.
6667         (error): Likewise.
6668         (fatal): Likewise.
6669         (warning_with_file_and_line): Likewise.
6670         (warning_with_decl): Likewise.
6671         (warning_for_asm): Likewise.
6672         (warning): Likewise.
6673         (pedwarn): Likewise.
6674         (pedwarn_with_decl): Likewise.
6675         (pedwarn_with_file_and_line): Likewise.
6676         (sorry): Likewise.
6677         (really_sorry): Likewise.
6678
6679         * toplev.h: Switch on ANSI_PROTOTYPES, not __STDC__, when deciding
6680         whether to declare `tree_node' and `rtx_def'.
6681
6682         * tree.c (build): Switch on ANSI_PROTOTYPES, not __STDC__, when
6683         deciding whether to use ANSI variable args.
6684         (build_nt): Likewise.
6685         (build_parse_node): Likewise.
6686
6687 Sun Nov 8 13:10:55 PST 1998 Jeff Law  (law@cygnus.com)
6688
6689         * version.c: Bump for snapshot.
6690
6691 Sat Nov  7 23:34:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6692
6693         * Makefile.in (libcpp.a): Check RANLIB_TEST before runing RANLIB.
6694
6695 Sat Nov  7 22:26:19 1998  David Edelsohn  <edelsohn@gnu.org>
6696
6697         * collect2.c (main, case 'b'): Use else if.
6698
6699 Sat Nov  7 15:35:25 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6700
6701         * configure.in (host_xm_file, build_xm_file, xm_file, tm_file):
6702         Arrange to include gansidecl.h in {ht}config.h & tm.h just
6703         before the config/ directory headers.
6704         (tm_file_list, host_xm_file_list, build_xm_file_list): Handle
6705         gansidecl.h in the list of dependencies.
6706
6707         * Makefile.in (RTL_BASE_H): Don't depend on gansidecl.h.
6708         (TREE_H, DEMANGLE_H, RECOG_H, REGS_H, libgcc2.a, stmp-multilib,
6709         mbchar.o, collect2.o, pexecute.o, vfprintf.o, splay-tree.o, gcc.o,
6710         gencheck.o, choose-temp.o, mkstemp.o, mkstemp.o, prefix.o,
6711         dyn-string.o, cexp.o, cccp.o, cppmain.o, cpplib.o, cpperror.o,
6712         cppexp.o, cppfiles.o, cpphash.o, cppalloc.o, scan-decls.o):
6713         Likewise.
6714
6715         * cccp.c: Don't include gansidecl.h.
6716         * cexp.y: Likewise.
6717         * collect2.c: Likewise.
6718         * config/c4x/c4x.c: Likewise.
6719         * config/v850/v850.h: Likewise.
6720         * cppalloc.c: Likewise.
6721         * cpperror.c: Likewise.
6722         * cppexp.c: Likewise.
6723         * cppfiles.c: Likewise.
6724         * cpphash.c: Likewise.
6725         * cpplib.c: Likewise.
6726         * cppmain.c: Likewise.
6727         * cppulp.c: Likewise.
6728         * demangle.h: Likewise.
6729         * doprint.c: Likewise.
6730         * dyn-string.c: Likewise.
6731         * eh-common.h: Likewise.
6732         * fix-header.c: Likewise.
6733         * frame.c: Likewise.
6734         * gcc.c: Likewise.
6735         * gcov.c: Likewise.
6736         * gen-protos.c: Likewise.
6737         * gencheck.c: Likewise.
6738         * halfpic.h: Likewise.
6739         * hash.c: Likewise.
6740         * machmode.h: Likewise.
6741         * mbchar.c: Likewise.
6742         * prefix.c: Likewise.
6743         * protoize.c: Likewise.
6744         * recog.h: Likewise.
6745         * rtl.h: Likewise.
6746         * scan-decls.c: Likewise.
6747         * tree.h: Likewise.
6748         * varray.h: Likewise.
6749         
6750 Sat Nov  7 11:37:53 1998  Richard Henderson  <rth@cygnus.com>
6751
6752         * i386.md (call_value_pop): If we're not popping anything,
6753         defer to call_value.
6754         (call_pop): Likewise defer to call.
6755
6756 Sat Nov  7 02:49:56 1998  Richard Henderson  <rth@cygnus.com>
6757
6758         * function.c (purge_addressof): Clear purge_addressof_replacements
6759         only after processing the whole function.
6760
6761 Sat Nov  7 00:54:55 1998  Jeffrey A Law  (law@cygnus.com)
6762
6763         * reload1.c (reload): If we can not perform a particular elimination
6764         when we thought we could earlier, then we must always iterate through
6765         the loop at least one more time.
6766
6767 Fri Nov  6 19:37:33 1998  Richard Henderson  <rth@cygnus.com>
6768
6769         * alpha.c (add_operand): Simplify the CONST_INT match.
6770         (sext_add_operand): Correct typo in comparison by using
6771         CONST_OK_FOR_LETTER_P.
6772         * alpha.md (s?addq): Use sext_add_operand to allow the negative
6773         constant alternatives to be generated.
6774         (mulsi3, muldi3, umuldi3_highpart): Loosen constraints to allow
6775         small constants, since the hw instructions do.
6776
6777 Fri Nov  6 20:15:19 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6778
6779         * reload1.c (emit_reload_insns):  When rewriting the SET_DEST of a
6780         previous insn to store directly into our reload register, make sure
6781         that if the source of the previous insn is a reload register, its
6782         spill_reg_store and spill_reg_stored_to values are cleared.
6783
6784 Fri Nov  6 16:35:10 1998  David Edelsohn  <edelsohn@gnu.org>
6785
6786         * rs6000.md (floatunssidf2_internal splitter): Use base register
6787         operand, not hard-coded SP.
6788
6789 Fri Nov  6 04:07:53 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6790
6791         * jump.c (calculate_can_reach_end): Fix thinko.
6792
6793 Fri Nov  6 00:16:04 1998  Jeffrey A Law  (law@cygnus.com)
6794
6795         * reorg.c (fill_simple_delay_slots): Fix typo.
6796
6797         * romp.h (LEGITIMIZE_ADDRESS): Fix typo.
6798
6799 Fri Nov  6 00:10:00 1998  Jan Hubicka (hubicka@freesoft.cz)
6800
6801         * i386.md (extendsidi2): Use # in the output template.
6802         (extendsidi splitters): New splitters.
6803
6804 Thu Nov  5 11:13:27 1998  Nick Clifton  <nickc@cygnus.com>
6805
6806         * configure.in: Use unknown-elf.h as tm_file for arm-elf
6807         configuarions.
6808         * configure: Regenerate.
6809
6810 Thu Nov  5 07:59:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6811
6812         * jump.c (init_label_info, delete_barrier_successors,
6813         mark_all_labels, delete_unreferenced_labels,
6814         delete_noop_moves, calculate_can_reach_end): New functions broken
6815         out of jump_optimize.
6816         (jump_optimize): Use them.
6817
6818 Thu Nov  5 07:57:45 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
6819
6820         * except.c (expand_fixup_region_end): Make sure outer context labels
6821         are not issued in an inner context during cleanups.
6822
6823 Thu Nov  5 04:03:06 1998  Richard Henderson  <rth@cygnus.com>
6824
6825         * alpha.md (addsi3, subsi3): No new temporaries once cse is
6826         no longer expected.
6827
6828 Thu Nov  5 03:29:19 1998  Richard Henderson  <rth@cygnus.com>
6829
6830         * alpha.md (addsi3, subsi3): Expand to a DImode temporary so as
6831         to expose this midpoint to CSE.
6832
6833 Thu Nov  5 03:42:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
6834
6835         * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again.
6836
6837 Thu Nov  5 10:53:01 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
6838
6839         * configure.in: Bring over gcc2 change of Nov 19 1997.
6840
6841 Wed Nov  4 23:43:08 1998  Graham  <grahams@rcp.co.uk>
6842
6843         * toplev.c (output_lang_identify): Make definition dependent on
6844         ASM_IDENTIFY_LANGUAGE.
6845
6846         * print-rtl.c (spaces): Make static.
6847
6848 Wed Nov  4 22:16:36 1998  Hans-Peter Nilsson  <hp@axis.se>
6849
6850         * extend.texi: Clarify proper uses for register clobbers in asms.
6851
6852 Wed Nov  4 22:16:36 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
6853
6854         * recog.h (enum op_type): Define.
6855         (constrain_operands): Adjust prototype.
6856         (recog_op_type): Declare new variable.
6857         * recog.c (recog_op_type): New variable.
6858         (insn_invalid_p): Allow modifying an asm statement after reload.
6859         (extract_insn): Set up recog_op_type.
6860         (constrain_operands): Lose INSN_CODE_NUM arg.  All callers changed.
6861         Don't compute operand types, use recog_op_type.
6862         Use the information computed by extract_insn instead of the previous
6863         method of finding it by insn code number.
6864         * caller-save.c (init_caller_save): Use extract_insn, not insn_extract.
6865         * reorg.c (fill_slots_from_thread): Likewise.
6866         * reload1.c (reload_as_needed): Likewise.
6867         (gen_reload): Likewise.
6868         (inc_for_reload): Likewise.
6869         (reload_cse_simplify_operands): Likewise.
6870         Use the information computed by extract_insn instead of the previous
6871         method of finding it by insn code number.
6872         * genattrtab.c (write_attr_case): Generate call to extract_insn, not
6873         insn_extract.
6874         * final.c (final_scan_insn): Use extract_insn, not insn_extract.
6875         (cleanup_operand_subregs): Use extract_insn, not insn_extract.
6876         Use the information computed by extract_insn instead of the previous
6877         method of finding it by insn code number.
6878         * regmove.c (find_matches): Likewise.  Change meaning of the return
6879         value to be nonzero if the optimization can be performed, zero if
6880         not.  All callers changed.
6881         Shorten some variable names to fix formatting problems.
6882         (regmove_optimize): Shorten some variable names to fix formatting
6883         problems.
6884         Use the information computed by extract_insn instead of the previous
6885         method of finding it by insn code number.
6886         * regclass.c (scan_one_insn): Likewise.
6887         (record_reg_classes): Don't compute operand types, use recog_op_type.
6888         * reload.c (find_reloads): Lose CONSTRAINTS1 variable; use
6889         recog_constraints instead.
6890
6891 Wed Nov  4 21:37:46 1998  Jeffrey A Law  (law@cygnus.com)
6892
6893         * rtl.h (flow2_completed): Declare.
6894         * flow.c (flow2_completed): Definition.
6895         * toplev.c (rest_of_compilation): Set and clear flow2_completed
6896         as necessary.
6897
6898 Wed Nov  4 19:15:37 1998  "Melissa O'Neill" <oneill@cs.sfu.ca>
6899
6900         * Makefile.in (libcpp.a): Ranlib libcpp.a
6901
6902         * cppulp.c (user_label_prefix): Initialize.
6903         
6904 Wed Nov  4 19:07:08 1998   John Wehle  (john@feith.com)
6905
6906         * flow.c (mark_regs_live_at_end): Mark the stack pointer as live
6907         at a RETURN if current_function_sp_is_unchanging is set.
6908
6909 Wed Nov  4 18:16:29 1998 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
6910
6911         * emit-rtl.c (try_split): Fixed error in Oct 10 patch.
6912
6913 Wed Nov  4 15:11:15 1998  Geoffrey Noer  <noer@cygnus.com>
6914
6915         * i386/cygwin32.h (MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS, MASK_DLL,
6916         TARGET_WIN32, TARGET_CYGWIN, TARGET_WINDOWS, TARGET_DLL): New.
6917         (SUBTARGET_SWITCHES): Add -mno-cygwin, -mcygwin, and -mdll options.
6918         (CPP_PREDEFINES): Don't define __CYGWIN32__ here.
6919         (STARTFILE_SPEC): Handle -mdll, -mno-cygwin options.
6920         (CPP_SPEC): Handle -mno-cygwin option.  Define __CYWIN__ in addition
6921         to __CYGWIN32__.
6922         (LIB_SPEC): Handle -mno-cyginw option.
6923         (LINK_SPEC): Handle -mdll.
6924
6925 Wed Nov  4 22:56:14 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
6926
6927         * reload.c (find_reloads): Fix test for usage by other reload
6928         to handle secondary reloads properly.
6929
6930 Wed Nov  4 17:25:10 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6931
6932         * reload1.c (ELIMINABLE_REGS, NUM_ELIMINABLE_REGS): Introduce an
6933         intermediate structure which has exactly the members provided by
6934         ELIMINABLE_REGS.  Define NUM_ELIMINABLE_REGS in terms of the
6935         static intermediate structure.
6936         
6937         (init_elim_table): Xmalloc() `reg_eliminate', and initialize it
6938         from the intermediate structure.  Do the same analogous fix in
6939         the case where ELIMINABLE_REGS is not defined.
6940
6941 Tue Nov  3 20:50:03 1998  Jeffrey A Law  (law@cygnus.com)
6942
6943         * pa.h (SELECT_SECTION): Fix thinko.
6944
6945 Tue Nov  3 17:51:36 1998  Jim Wilson  <wilson@cygnus.com>
6946
6947         * dwarf2out.c (output_call_frame_info): Comments on last change.
6948
6949 Tue Nov  3 07:51:43 1998  Richard Earnshaw (rearnsha@arm.com)
6950
6951         * arm.c (add_constant): When taking the address of an item in the
6952         pool, get the mode of the item addressed.
6953
6954         * arm.c (final_prescan_insn case INSN): If an insn doesn't 
6955         contain a SET or a PARALLEL, don't consider it for conditional
6956         execution.
6957
6958         Restore ABI compatibility for NetBSD.
6959         * arm/netbsd.h (DEFAULT_PCC_STRUCT_RETURN): Override setting in
6960         arm.h
6961         (RETURN_IN_MEMORY): Likewise.
6962
6963 Mon Nov  2 11:46:17 1998  Doug Evans  <devans@canuck.cygnus.com>
6964
6965         * m32r/m32r.c (m32r_expand_block_move): Fix byte count computations.
6966         (m32r_output_block_move): Rewrite bytes < 4 handling.
6967
6968 Mon Nov  2 10:10:35 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6969
6970         * configure.in: Call AC_FUNC_VFORK.
6971
6972         * collect2.c: Define VFORK_STRING as a printable string for
6973         error messages (either "vfork" or "fork".)  If HAVE_VFORK_H is
6974         defined, include vfork.h.  If VMS is defined, define vfork()
6975         appropriately.  Remove vfork check on USG, we're using autoconf.
6976         (collect_execute): Pass VFORK_STRING to fatal_perror instead of
6977         checking locally what string to pass.
6978         (scan_prog_file): Likewise.
6979         (scan_libraries): Likewise.
6980
6981         * gcc.c: Remove vfork check on USG, we're using autoconf.
6982         Besides, no calls to vfork/fork occur in this file.
6983
6984         * protoize.c: Likewise.
6985
6986 Mon Nov  2 07:52:28 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6987
6988         * configure.in (DEFAULT_LINKER): renamed from LD
6989         (DEFAULT_ASSEMBLER): renamed from AS; reverted Schwab's patch
6990         (gcc_cv_as): try $DEFAULT_ASSEMBLER before $AS
6991         * configure: rebuilt
6992
6993 Mon Nov  2 01:48:10 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
6994
6995         * BUGS: fix the regexp for `more' to find the appropriate node.
6996         Reported by Joerg Pietschmann  <joerg_pietschmann@zkb.ch>
6997
6998         * BUGS: added link to the WWW FAQ
6999
7000 Sun Nov 1 18:27:15 PST 1998 Jeff Law  (law@cygnus.com)
7001
7002         * version.c: Bump for snapshot.
7003
7004 Sun Nov  1 11:04:32 1998  Jeffrey A Law  (law@cygnus.com)
7005
7006         * From Christian Gafton:
7007         * i386/linux.h (CPP_PREDEFINES): Add -D__i386__.
7008         * sparc/linux.h (CPP_PREDEFINES): Add -D__sparc__.
7009         * sparc/linux64.h (CPP_PREDEFINES): Add -D__sparc__.
7010
7011 Sat Oct 31 21:42:39 1998  Mark Mitchell  <mark@markmitchell.com>
7012
7013         * c-common.c (c_get_alias_set): Allow all type-punning through
7014         unions.  Don't get confused about the type of a bit-field, despite
7015         the antics of build_modify_expr.
7016
7017 Sat Oct 31 22:35:29 1998  Jean-Pierre Radley <jpr@jpr.com>
7018
7019         * fixinc.sco: Paramaterize #include_next values.
7020         * fixinc/fixinc.sco: Likewise.
7021
7022 Sat Oct 31 20:39:35 1998  Jeffrey A Law  (law@cygnus.com)
7023
7024         * toplev.c (rest_of_compilation): No longer set reload_completed.
7025         * reload1.c (reload): Set it here.  Perform instruction splitting
7026         after reload has completed if we will be running the scheduler
7027         again.
7028
7029 Sat Oct 31 12:30:02 1998  Jeffrey A Law  (law@cygnus.com)
7030
7031         * jump.c (jump_optimize): Initialize mappings from INSN_UID to
7032         EH region if exceptions are enabled and we're performing cross
7033         jump optimizations.
7034         (find_cross_jump): Exit loop if the insns are in different EH regions.
7035
7036 Sat Oct 31 10:02:48 1998  Mark Mitchell  <mark@markmitchell.com>
7037
7038         * dwarf2out.c (output_call_frame_info): Use
7039         ASM_OUTPUT_DWARF_DELTA4 for the CIE offset to match frame.c.
7040
7041 Sat Oct 31 10:23:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7042
7043         Reinstall Apr 24th fix, lost during May 6th gcc2 merge:
7044         * c-common.c (check_format_info): Don't check for the 'x'
7045         format character twice, instead check for 'x' and 'X'
7046
7047 Fri Oct 30 14:50:25 1998  Jeffrey A Law  (law@cygnus.com)
7048
7049         * configure.in (assembler features): Also make gas is configured if
7050         we find it in the souce tree.
7051
7052 Fri Oct 30 13:23:20 1998  Richard Henderson  <rth@cygnus.com>
7053
7054         * i386.c (i386_comp_type_attributes): Compare whether the 
7055         attributes are defined, not their tree nodes.
7056
7057 Fri Oct 30 11:39:47 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
7058
7059         * configure.in (gxx_include_dir): bitten by autoconf quoting
7060         characters :-(
7061         * configure: rebuilt
7062
7063 Fri Oct 30 10:43:29 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7064
7065         * configure.in: Ignore non-absolute value in $AS.
7066
7067 Fri Oct 30 00:54:25 1998  Peter Jakubek <pjak@snafu.de>
7068
7069         * m68k.h (INDIRECTABLE_1_ADDRESS_P): Fix thinko.
7070
7071 Fri Oct 30 00:42:34 1998  Mark Elbrecht <snowball3@usa.net>
7072
7073         * configure.in (msdosdjgpp): Set exeext and target_alias.
7074
7075 Thu Oct 29 23:55:43 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7076
7077         * flow.c (XNMALLOC): New macro.
7078         (flow_int_list_blocks, basic_block_succ, basic_block_pred): New
7079         static variables.
7080         (add_edge, add_edge_to_label): New static functions.
7081         (free_bb_memory): New function.
7082         (flow_delete_insn): Delete function.
7083         (basic_block_drops_in): Delete variable.
7084         (find_basic_blocks): Allocate and initialize basic_block_head,
7085         basic_block_succ.  Don't allocate basic_block_drops_in.
7086         Call free_bb_memory at the beginning.
7087         (find_basic_blocks_1): Don't do multiple passes.
7088         Delete code to compute basic_block_drops_in.
7089         After calling make_edges, mark blocks reached by current block live.
7090         Update test for unreachable live blocks.
7091         (mark_label_ref): Delete args X, CHECKDUP.  Add PRED arg.  All callers
7092         changed.
7093         Simplify to call add_edge_to_label when a LABEL_REF is found.
7094         (make_edges): Simplify to call add_edge_to_label instead of
7095         mark_label_ref most of the time.
7096         Compute here whether control drops into the next block.
7097         (delete_unreachable_blocks): Return void.  All callers changed.
7098         Delete unreachable blocks in reverse order.
7099         After deleting all unreachable blocks, renumber the remaining ones
7100         and update n_basic_blocks.
7101         (delete_block): Speed up deletion a bit.
7102         Don't set basic_block_drops_in for deleted blocks.
7103         (free_basic_block_vars): Don't free basic_block_drops_in.
7104         (life_analysis_1): Update to use new edge representation.
7105         (dump_flow_info): Delete code to print basic block info; call
7106         dump_bb_data instead.
7107         (compute_preds_succs): Delete code to recompute basic_block_drops_in
7108         and uid_block_number.
7109         Simply copy the previously computed cfg.
7110         (dump_bb_data): New arg LIVE_INFO.  All callers changed.
7111         Print register lifetime information if LIVE_INFO is nonzero.
7112         * basic-block.h (dump_bb_data): Adjust prototype.
7113         * gcse.c (gcse_main): Update call to dump_bb_data.
7114         * rtl.h (free_bb_memory): Declare.
7115         * toplev.c (rest_of_compilation): Call free_bb_memory.
7116
7117         * reload1.c (struct elim_table): Delete MAX_OFFSET member.
7118         (update_eliminable_offsets): Don't compute it.
7119         (set_initial_elim_offsets): Don't initialize it.
7120         Break out some code into set_initial_label_offsets so the rest of
7121         this function can be called from reload_as_needed.
7122         Assume that INITIAL_FRAME_POINTER_OFFSET is defeined when
7123         ELIMINABLE_REGS isn't.
7124         (set_initial_label_offsets): New function, broken out of
7125         set_initial_elim_offsets.
7126         (set_offsets_for_label): New function, broken out of set_label_offsets
7127         and reload_as_needed.
7128         (reload): Call the two new functions.
7129         (reload_as_needed): Call set_initial_elim_offsets instead of
7130         duplicating the code.  Likewise for set_offsets_for_label.
7131
7132         * reload1.c (choose_reload_regs): Fix typo in Oct 17 change.
7133         (emit_reload_insns): Ensure that when we set reg_reloaded_valid for
7134         any hard reg, reg_reloaded_dead contains valid data.
7135
7136 Thu Oct 29 22:30:54 1998  Marcus Meissner <Marcus.Meissner@informatik.uni-erlangen.de>
7137
7138         * i386.c (i386_comp_type_attributes): Return nonzero for mismatched
7139         "stdcall" and "cdecl" attributes.
7140
7141 Thu Oct 29 19:05:17 1998  Jim Wilson  <wilson@cygnus.com>
7142
7143         * sched.c (update_flow_info): Add code to ! found_orig_dest case to
7144         handle deleted no-op moves of hard registers.
7145         * haifa-sched.c (update_flow_info): Likewise.
7146
7147 Thu Oct 29 18:07:47 1998  Jeffrey A Law  (law@cygnus.com)
7148
7149         * mips.md (reload_{in,out}{si,di}): Emit a USE of HILO at the end
7150         of the sequences to reload the HILO register which do not actually
7151         reference HILO.
7152
7153 Thu Oct 29 12:39:35 1998  Jim Wilson  <wilson@cygnus.com>
7154
7155         * c-common.c (c_get_alias_set): Handle ARRAY_REF of union field.
7156
7157 Thu Oct 29 14:10:22 EST 1998  Andrew MacLeod  <amacleod@cygnus.com>
7158
7159         * except.c (emit_eh_context): Make the EH context register stay alive
7160         at -O0 so stupid.c doesn't get confused.
7161
7162 1998-10-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7163
7164         * emit-rtl.c (try_split): Do not try to split a BARRIER.
7165
7166 Thu Oct 29 01:33:54 1998  Jan Hubicka <hubicka@freesoft.cz>
7167                           Jeffrey A Law  (law@cygnus.com)
7168
7169         * i386.md: Change ix86_cpu == PROCESSOR_PENTIUM to TARGET_PENTIUM
7170         (zero_extendsidi2): Use # in output template and handle completely by
7171         splits.
7172         (zero_extend splitters): New define_splits.
7173         (ashiftrt_32): New pattern.
7174
7175 Wed Oct 28 22:58:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
7176
7177         * tree.c (append_random_chars): New fn.
7178         (get_file_function_name_long): Use it.
7179
7180 Wed Oct 28 22:27:05 1998  Richard Henderson  <rth@cygnus.com>
7181
7182         * Makefile.in (cc1): Put C_OBJS, and thence @extra_c_objs@ last.
7183         (LIBCPP_OBJS): New.  Add cppulp.o.
7184         (cppmain, fix-header): Depend on and use libcpp.a.
7185         * configure.in (extra_c_objs, extra_cxx_objs): Use libcpp.a instead
7186         of the individual object files.
7187         * objc/Make-lang.in (cc1obj): Put OBJC_OBJS, and thence @extra_c_objs@,
7188         last.
7189
7190         * cccp.c (user_label_prefix): New.
7191         (main): Set it off -f*leading-underscore.
7192         (special_symbol): Use it.
7193         * cpplib.c (special_symbol): Likewise.
7194         (cpp_handle_option): Handle -f*leading-underscore.
7195         * cppulp.c: New file.
7196
7197         * output.h (user_label_prefix): Declare it.
7198         * dwarf2out.c (ASM_NAME_TO_STRING): Prepend user_label_prefix.
7199         * toplev.c (f_options, main): Handle -f*leading-underscore.
7200
7201         * defaults.h (ASM_OUTPUT_LABELREF): Use asm_fprintf instead of
7202         referencing USER_LABEL_PREFIX directly.
7203         * config/nextstep.h (ASM_OUTPUT_LABELREF): Likewise.
7204         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
7205         * final.c (asm_fprintf): Use user_label_prefix instead.
7206         * arm/thumb.c (thumb_print_operand): Likewise.
7207
7208         * gcc.c (default_compilers): Pass -f*leading-underscore on to
7209         cpp wherever appropriate.
7210
7211 Wed Oct 28 23:09:25 1998  Robert Lipe  <robertl@dgii.com>
7212
7213         * sco5.h (SUBTARGET_SWITCHES): Add documentation for OpenServer-
7214         specific compiler switches.
7215
7216 Wed Oct 28 21:05:53 1998  Jeffrey A Law  (law@cygnus.com)
7217
7218         * Makefile.in (c-common.o): Depend on c-pragma.h.  Use $(RTL_H) instead
7219         of rtl.h.
7220
7221 Wed Oct 28 20:52:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7222
7223         * gcc.c (EXTRA_SPECS, extra_specs): Introduce an intermediate
7224         structure which has exactly the members provided by EXTRA_SPECS.
7225         Xmalloc() the real `extra_specs', and initialize it from this
7226         intermediate structure.
7227
7228         * alpha.h (EXTRA_SPECS): Revert change for missing initializers.
7229
7230         * mips.h  (EXTRA_SPECS): Likewise.
7231
7232         * sparc.h (EXTRA_SPECS): Likewise.
7233
7234 Wed Oct 28 16:46:07 1998  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7235     
7236         * function.c (purge_addressof_1): Instead of aborting when a
7237         bitfield insertion as a replacement for (MEM (ADDRESSOF)) does not
7238         work just put the ADDRESSOF on stack.  Otherwise remember all such
7239         successfull replacements, so that exactly the same replacements
7240         can be made on the REG_NOTEs.  Remove the special case for CALL
7241         insns again.
7242         (purge_addressof_replacements): New variable.
7243         (purge_addressof): Clear it at end.
7244
7245 1998-10-28 16:10 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7246
7247          * c-lang.c: Declare extern char *yy_cur if USE_CPPLIB.
7248            (lang_init): Call check_newline always.
7249          * c-lex.c (init_parse) [USE_CPPLIB=1]: After calling
7250            cpp_start_read, set yy_cur and yy_lim to read from
7251            parse_in.token_buffer, so that we'll see the first #line
7252            directive.
7253          * cpplib.c (cpp_start_read): finclude the main input file
7254            before processing -include/-imacros.  Process -imacros and
7255            -include separately, and handle -include by stacking a
7256            buffer for the file in question as if it'd been #included.
7257          * toplev.c (documented_lang_options) Recognize -H when
7258            USE_CPPLIB is on.
7259
7260 1998-10-28 16:09 -0500  Zack Weinberg  <zack@rabi.phys.columbia.edu>
7261
7262          * cpplib.c: Merge do_once into do_pragma.  Break file handling
7263            code out of do_include.
7264            Move append_include_chain, deps_output,
7265            file_cleanup, redundant_include_p, import_hash,
7266            lookup_import, add_import, read_filename_string, read_name_map,
7267            open_include_file, finclude, safe_read to cppfiles.c.
7268            Move prototypes for deps_output, append_include_chain,
7269            finclude to cpplib.h.  Move definition of struct
7270            file_name_list there also.
7271
7272          * cppfiles.c: New file.  Contains all the above functions
7273            broken out of cpplib.c; also hack_vms_include_specification
7274            from cccp.c and find_include_file, a new function broken out of
7275            do_include.
7276
7277          * Makefile.in (cppmain): Depend on cppfiles.o.
7278            (fix-header): Likewise.
7279            (cppfiles.o): New target.
7280          * configure.in (--enable-c-cpplib): Add cppfiles.o to
7281            extra_c_objs.  Add ../cppfiles.o to extra_cxx_objs.
7282
7283 Wed Oct 28 14:06:49 1998  Jim Wilson  <wilson@cygnus.com>
7284
7285         * dwarfout.c (dwarfout_file_scope_decl): If DECL_CONTEXT, don't abort
7286         if pending_types is non-zero.
7287         (dwarfout_finish): Verify pending_types is zero before finishing.
7288
7289 Wed Oct 28 10:29:09 1998  Nick Clifton  <nickc@cygnus.com>
7290
7291         * expr.c (convert_move): Use shifts to perform the move if a
7292         suitable extend pattern cannot be found.  Code written by
7293         Richard Henderson <rth@cygnus.com>.
7294
7295 Wed Oct 28 03:59:29 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7296
7297         * regclass.c (renumber, regno_allocated): New static variables, moved
7298         out of allocate_reg_info.
7299         (allocate_reg_info): Move these two variables outside the function.
7300         Move code to free memory into new function free_reg_info.
7301         (free_reg_info): New function, broken out of allocate_reg_info.
7302         * toplev.c (compile_file): Call free_reg_info, not allocate_reg_info.
7303         * rtl.h (allocate_reg_info): Don't declare.
7304         (free_reg_info): Declare.
7305
7306         * final.c (cleanup_subreg_operands):  ASM_INPUTs need no treatment.
7307
7308 Wed Oct 28 02:38:12 1998  Jason Merrill  <jason@yorick.cygnus.com>
7309
7310         * toplev.c (compile_file): Temporarily revert last change.
7311
7312 Wed Oct 28 00:00:35 1998  Jason Merrill  <jason@yorick.cygnus.com>
7313
7314         * c-typeck.c (convert_for_assignment): Parenthesize.
7315
7316 1998-10-28  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
7317
7318         * reload1.c (delete_output_reload): Avoid ambigous else.
7319
7320 Wed Oct 28 00:10:35 1998  Jeffrey A Law  (law@cygnus.com)
7321
7322         * toplev.c (compile_file): Call allocate_reg_info to free register
7323         table memory.
7324         * rtl.h (allocate_reg_info): Declare.
7325
7326         * PROJECTS: Remove entry for local spilling.
7327
7328         * final.c (cleanup_subreg_operands): New function.
7329         (final_scan_insn): Use it.
7330         (alter_subreg): Clear the "used" field when we turn a SUBREG into
7331         a REG.
7332         * reload1.c (reload): Delete CLOBBER insns and also cleanup SUBREG
7333         operands when reload has finished.
7334         * reload.h (cleanup_subreg_operands): Declare..
7335         * flow.c (life_analysis_1): No longer delete CLOBBER insns after
7336         reload.  Handled in reload itself.
7337
7338 Tue Oct 27 23:32:34 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7339
7340         * reload1.c (verify_initial_offsets): New function.
7341         (reload): Call it after reload_as_needed.  Also verify that the frame
7342         size stays constant during reload_as_needed.
7343         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Undo Jul 26 change.
7344
7345         * reload.h (struct insn_chain): Add need_operand_change element.
7346         * reload1.c (new_insn_chain): Clear it.
7347         (calculate_needs_all_insns): Set it; don't overload need_reload.
7348         (reload_as_needed): Use it.
7349
7350         * reload.c (find_reloads_address): Use BASE_REG_CLASS instead of
7351         reload_address_base_reg_class throughout.  Similar for INDEX_REG_CLASS
7352         and reload_address_index_reg_class.
7353         (find_reloads_address_1): Likewise.
7354         * reload.h (reload_address_base_reg_class,
7355         reload_address_index_reg_class): Don't declare.
7356         * reload1.c (reg_old_renumber, pseudo_previous_regs,
7357         pseudo_forbidden_regs, bad_spill_regs_global): New static variables.
7358         (used_spill_regs): Now static.
7359         (reload_address_base_reg_class, reload_address_index_reg_class,
7360         regs_explicitly_used, counted_for_groups, counted_for_nongroups,
7361         basic_block_needs, max_needs, group_size, group_mode, max_groups,
7362         max_nongroups, max_needs_insn, max_groups_insn, max_nongroups_insn,
7363         forbidden_regs):
7364         Deleted variables.
7365         (init_reload): Delete code to compute base/index reg classes.
7366         (reload): Delete variable J.
7367         Delete code to manage basic_block_needs.
7368         Don't compute regs_explicitly_used.
7369         Allocate, initialize and free reg_old_renumber, pseudo_forbidden_regs,
7370         pseudo_previous_regs.
7371         Initialize bad_spill_regs_global.
7372         Don't call order_regs_for_reload here.
7373         Don't initialize spill_reg_order and n_spills.
7374         Don't forbid explicitly used regs to be used for spill regs.
7375         Change main loop to infinite loop, with explicit break statements.
7376         Make SOMETHING_CHANGED variable local to that loop.
7377         Don't initialize max_needs, max_groups, max_nongroups, max_needs_insn,
7378         max_groups_insn, max_nongroups_insn, group_size, group_mode.
7379         Make sure spilled_speudos is cleared before calling spill_hard_reg or
7380         new_spill_reg.
7381         Don't call dump_needs.
7382         Delete code to reset potential_reload_regs.
7383         Delete code to terminate loop conditional on the global needs variables
7384         showing no further needs.
7385         (calculate_needs_all_insns): Return void.  All callers changed.
7386         Initialize somehing_needs_elimination here, not in reload.
7387         Delete avoid_return_reg kludge.
7388         (calculate_needs): Lose AVOID_RETURN_REG and GLOBAL args, return void.
7389         All callers changed.
7390         Initialize the group_mode and group_size elements of the arg CHAIN.
7391         Delete code to manage basic_block_needs.
7392         Operate on elements of CHAIN instead of global variables.
7393         Delete avoid_return_reg kludge.
7394         (find_tworeg_group): Lose GLOBAL arg, take CHAIN arg, return void.
7395         All callers changed.
7396         Operate on elements of CHAIN instead of global variables.
7397         Delete special SMALL_REGISTER_CLASSES code.
7398         Delete spill_failure code; now in new_spill_reg.
7399         (find_group): Lose GLOBAL arg, take CHAIN arg, return void.
7400         All callers changed.
7401         Operate on elements of CHAIN instead of global variables.
7402         (maybe_mark_pseudo_spilled): New static function.
7403         (find_reload_regs): Lose GLOBAL arg, take CHAIN arg, return void.
7404         All callers changed.
7405         Operate on elements of CHAIN instead of global variables.
7406         Call order_regs_for_reload here, not in reload.
7407         Initialize spill_reg_order and n_spills.
7408         Simplify test whether an asm insn is involved.
7409         Delete spill_failure code; now in new_spill_reg.
7410         Call maybe_mark_pseudo_spilled for everything marked as live in
7411         CHAIN.  Merge CHAIN's used_spill_regs into the global variable
7412         used_spill_regs.
7413         (dump_needs): Take CHAIN arg.  No longer static, to prevent the
7414         compiler from optimizing this function (now unused) away.
7415         Operate on elements of CHAIN instead of global variables.
7416         (possible_group_p): Lose MAX_GROUPS arg, take CHAIN arg.  All callers
7417         changed.
7418         Operate on elements of CHAIN instead of global variables.
7419         (count_possible_groups): Lose GROUP_SIZE, GROUP_MODE, MAX_GROUPS args,
7420         take CHAIN arg.  All callers changed.
7421         Operate on elements of CHAIN instead of global variables.
7422         (new_spill_reg): Lose MAX_NEEDS, MAX_NONGROUPS, GLOBAL args, take
7423         CHAIN, NONGROUP args.  Return void.  All callers changed.
7424         Verify caller isn't trying to spill a pseudo.
7425         Simplify test for illegal reg, just use bad_spill_regs.
7426         Generate better error messages.
7427         Operate on elements of CHAIN instead of global variables.
7428         Mark spilled register in CHAIN's used_spill_regs element.
7429         Don't call spill_hard_reg.
7430         (spill_hard_reg): Lose GLOBAL arg, return void.  All callers changed.
7431         Mark spilled hard regs in bad_spill_regs_global.
7432         Mark affected pseudos in spilled_pseudos, but don't spill them.
7433         (ior_hard_reg_set): New static function.
7434         (finish_spills): Return int.  All callers changed.
7435         Compute spill_reg_order, n_spills and spill_regs here.  Also update
7436         regs_ever_live for regs used as spills.
7437         For every pseudo in spilled_pseudos, spill it and mark the previous
7438         hard reg it had in pseudo_previous_regs.  Compute which hard regs
7439         arseudo): New static function.
7440         (order_regs_for_reload): Take CHAIN arg.  All callers changed.
7441         Initialize bad_spill_regs from bad_spill_regs_global, then merge any
7442         hard registers explicitly used across the current insn into the set.
7443         Compute hard_reg_n_uses taking only pseudos live across this insn
7444         into account.
7445         Tweak sorting of potential_reload_regs.
7446         (compare_spill_regs): Delete function.
7447         (reload_as_needed): Don't sort the spill_regs array, it's computed
7448         in proper order in finish_spills.
7449         Delete avoid_return_reg kludge.
7450         Delete code to manage basic_block_needs.
7451         (allocate_reload_reg): Minor speed/readability tweaks.
7452         Operate on elements of CHAIN instead of global variables.
7453         (choose_reload_regs): Lose AVOID_RETURN_REG arg.  All callers changed.
7454         Delete avoid_return_reg kludge.
7455         Initialize reload_reg_used from CHAIN's used_spill_regs element.
7456         Delete unused label FAIL.
7457         (reload_combine): Replce reload_address_index_reg_class with
7458         INDEX_REGS.
7459         Don't use used_spill_regs to determine information about lifetime of
7460         hard regs.
7461
7462 Tue Oct 27 13:15:02 1998  Nick Clifton  <nickc@cygnus.com>
7463         
7464         * toplev.c (display_help): Ignore empty target specific
7465         options, and if -W is also specified on the command line then
7466         display undocumented options.
7467
7468         * config/arm/arm.c: Updated with changes in devo sources.
7469         * config/arm/arm.h: Updated with changes in devo sources.
7470         * config/arm/lib1funcs.asm: Updated with changes in devo sources.
7471         * config/arm/lib1thumb.asm: Add ELF support.
7472
7473 Tue Oct 27 16:11:43 1998  David Edelsohn  <edelsohn@gnu.org>
7474
7475         * collect2.c (aix64_flag): New variable.
7476         (main, case 'b'): Parse it.
7477         (GCC_CHECK_HDR): object magic number must match mode.
7478         (scan_prog_file): Only check for shared object if valid header.
7479         Print debugging if header/mode mismatch.
7480
7481 Tue Oct 27 10:15:02 1998  Nick Clifton  <nickc@cygnus.com>
7482
7483         Added support for arm-elf-linux configuration, submitted by Philip
7484         Blundell <pb@nexus.co.uk>, and integrated this with the arm-elf
7485         code developed by Catherine Moore <clm@cygnus.com>.  The following
7486         files are affected: 
7487
7488         * configure.in: Add arm-*-linux-gnu, armv2-*-linux and arm-*-elf
7489         targets. 
7490
7491         * configure: Regenerated.
7492         
7493         * config/arm/aout.h: Add default definitions of REGISTER_PREFIX,
7494         USER_LABEL_PREFIX and LOCAL_LABEL_PREFIX.  Make other macro
7495         definitions conditional on their not having been already defined.
7496
7497         * config/arm/lin1funcs.asm: Add ELF only macros to generate .size
7498         and .type directives, and add "(PLT)" qualification to function
7499         calls.
7500
7501         * config/arm/linux.h: Deleted.  This file is now superceeded by
7502         either linux-elf.h or linux-aout.h.
7503
7504         * config/arm/linux-gas.h: Define `inhibit_libc' if cross-compiling.
7505         (CLEAR_INSN_CACHE): New macro, currently disabled (awaiting kernel
7506         support).
7507         Move definitions from old linux.h file here.
7508         
7509         * config/arm/elf.h: New file.  Generic ARM/ELF support.
7510         
7511         * config/arm/linux-aout.h: New file.  Support for Linux with a.out.
7512         
7513         * config/arm/linux-elf.h: New file.  Support for Linux with ELF.
7514         
7515         * config/arm/linux-elf26.h: New file.  Support for Linux with ELF
7516         using the 26bit APCS.
7517         
7518         * config/arm/unknown-elf.h: New file.  Support for OS'es other
7519         than Linux with ELF.
7520
7521         * config/arm/t-arm-elf: New file.  makefile fragment for arm-elf
7522         builds.
7523         
7524         * config/arm/coff.h: Include aout.h for basic assembler macros.
7525         Add support for -mstructure_size_boundary=<n> command line option.
7526         
7527         * config/arm/arm.h: Add support for -mstructure_size_boundary=<n>
7528         command line option.  Make macro definitions conditional on their
7529         not having been already defined. 
7530
7531         * config/arm/arm.c: Add support for -mstructure_size_boundary=<n>
7532         command line option.
7533
7534         
7535 Tue Oct 27 08:56:46 1998  Andrew MacLeod  <amacleod@cygnus.com>
7536
7537         * dwarfout.c (ASM_OUTPUT_DWARF_STRING_NEWLINE): ASM_OUTPUT_DWARF_STRING
7538         has been changed to not include a newline. Use this macro instead.
7539         (output_enumeral_list, const_value_attribute, name_attribute,
7540         comp_dir_attribute, prototyped_attribute, producer_attribute,
7541         inline_attribute, pure_or_virtual_attribute, output_inheritance_die,
7542         dwarfout_file_scope_decl, generate_new_sfname_entry,
7543         generate_macinfo_entry, dwarfout_init, dwarfout_finish): Use
7544         ASM_OUTPUT_DWARF_STRING_NEWLINE macro.
7545
7546 Mon Oct 26 13:35:02 1998  Richard Henderson  <rth@cygnus.com>
7547
7548         * combine.c (subst): Process the inputs to a parallel asm_operands
7549         only once.
7550
7551 Mon Oct 26 13:32:31 1998  Richard Henderson  <rth@cygnus.com>
7552
7553         * stmt.c (expand_asm_operands): Accept `=' or `+' at any position.
7554
7555 Mon Oct 26 12:53:14 1998  Jeffrey A Law  (law@cygnus.com)
7556
7557         * tm.texi (ASM_OUTPUT_MAX_SKIP_ALIGN): Document.
7558
7559 Mon Oct 26 00:36:58 PST 1998 Jeff Law  (law@cygnus.com)
7560
7561         * version.c: Bump for snapshot.
7562
7563 Sun Oct 25 23:36:52 1998  Jason Merrill  <jason@yorick.cygnus.com>
7564
7565         * stmt.c (expand_fixup): Set fixup->before_jump to a
7566         NOTE_INSN_DELETED instead of a NOTE_INSN_BLOCK_BEG.
7567
7568 Sun Oct 25 15:49:57 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7569
7570         * Makefile.in (recog.o): Depend on toplev.h.
7571         (insn-emit.o): Depend on recog.h.
7572         (insn-peep.o): Depend on recog.h and insn-config.h.
7573
7574         * combine.c (simplify_set): Remove unused variable `scratches'.
7575
7576         * final.c (final_scan_insn): Wrap declaration of variables `vlen'
7577         and `idx' in macro conditional controlling their use.
7578
7579         * genemit.c (main): Make the generated output file include
7580         recog.h.  Don't have it declare `insn_operand_constraint', since
7581         we get it from recog.h.
7582
7583         * genpeep.c (main): Make the generated output file include
7584         insn-config.h and recog.h.
7585
7586         * recog.c: Include toplev.h.
7587         (extract_insn): Remove unused variable `p'.
7588
7589         * regclass.c (fix_register): Add missing braces around initializer
7590         for `what_option'.
7591         (allocate_reg_info): Move variable `i' into the scope where it is
7592         used.  Change its type to `size_t'.
7593
7594 Sun Oct 25 13:10:15 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7595
7596         * reload.c (push_reload): When merging reloads, make sure
7597         that reload_in_reg and reload_in are from the same reload in
7598         all cases.
7599
7600 Sun Oct 25 12:07:00 1998  Mumit Khan  <khan@xraylith.wisc.edu>
7601
7602         * i386/crtdll.h (CPP_PREDEFINES): Fix typo.
7603         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
7604
7605 Fri Oct 23 23:42:03 1998  David Edelsohn  <edelsohn@gnu.org>
7606
7607         * loop.c (loop_has_tablejump): New variable.
7608         (prescan_loop): Scan for it.
7609         (insert_bct): Replace explicit scan with use of it.
7610         * regclass.c (regclass): Restore loop variable j.
7611         (record_reg_classes): Deterine op_types modifiers and initialize
7612         classes[i] before matching constraints.  Handle matching
7613         constraints 5-9.
7614         
7615 Fri Oct 23 13:55:48 1998  Jim Wilson  <wilson@cygnus.com>
7616
7617         * m32r/m32r.c (gen_split_move_double): Call alter_subreg.  Delete
7618         subreg support.
7619
7620 Fri Oct 23 16:19:24 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7621
7622         * mips.h (EXTRA_SPECS): Add missing initializers.
7623
7624 Fri Oct 23 16:08:39 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7625
7626         * sparc.h (EXTRA_SPECS): Add missing initializers.
7627         (sparc_defer_case_vector): Provide a prototype.
7628
7629         * svr4.h (ASM_OUTPUT_ASCII): Cast STRING_LIMIT to (long) when
7630         comparing it to the result of a pointer subtraction.
7631
7632 Fri Oct 23 15:34:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7633
7634         * alpha.c (override_options): Use ISDIGIT(), not isdigit().  Cast
7635         the argument to (unsigned char).
7636
7637         * alpha.h (EXTRA_SPECS): Add missing initializers.
7638         (ASM_GENERATE_INTERNAL_LABEL): Ensure the argument matches the
7639         format specifier.
7640
7641 Fri Oct 23 13:12:35 1998  Jeffrey A Law  (law@cygnus.com)
7642
7643         * flow.c (life_analysis_1): Enable "rescan" code after reload.
7644         (propagate_block): Delete dead code after reload.
7645
7646         * sched.c (update_flow_info): Revert Oct 19, 1998 change.  Brings
7647         back Oct 15, 1998 change.  
7648         * haifa-sched.c (update_flow_info): Likewise.
7649         * flow.c (life_analysis_1): Delete CLOBBER insns after reload.
7650
7651         * mn10200.md (truncated shift): Accept constant inputs too.
7652
7653 Fri Oct 23 04:06:57 1998  Richard Earnshaw (rearnsha@arm.com)
7654
7655         * machmode.h (mode_mask_array): No longer const.
7656         * rtl.c (init_rtl): Fully initialize it if EXTRA_CC_MODES defined.
7657
7658 Fri Oct 23 11:19:06 1998  Martin v. Löwis <loewis@informatik.hu-berlin.de>
7659
7660         * frame.c: Somewhat explain `FDE'.
7661         Suggested by Brendan Kehoe
7662
7663 Fri Oct 23 00:56:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
7664
7665         * expr.c (pending_chain): Move up.
7666         (save_expr_status): Do save pending_chain.
7667         (restore_expr_status): And restore it.
7668         * function.h (struct function): Add pending_chain.
7669
7670 1998-10-23 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7671
7672         * reorg.c (relax_delay_slots): Fixed test for mostly_true_jump. The
7673         did not match the code.
7674
7675 Fri Oct 23 00:07:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7676
7677         * regclass.c (regclass): Break out some code into new function
7678         scan_one_insn, and into regclass_init.
7679         (init_cost): New static variable, moved out of regclass.
7680         (regclass_init): Initialize it here, not in .
7681         (scan_one_insn): New static function, broken out of regclass.
7682         * recog.c (apply_change_group): Break out some code into new
7683         function insn_invalid_p.
7684         (insn_invalid_p): New static fn, broken out of apply_change_group.
7685
7686 Thu Oct 22 22:34:42 1998  Jim Wilson  <wilson@cygnus.com>
7687
7688         * reload1.c (reload_as_needed): When rewrite POST_INC, verify
7689         reg_reloaded_contents matches incremented pseudo.
7690
7691         * v850/v850.c (v850_reorg): Call alter_subreg.  Delete subreg support.
7692
7693 Fri Oct 23 11:11:56 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7694
7695         * rtl.def (POST_MODIFY, PRE_MODIFY): New generalized operators for
7696         addressing modes with side effects.  These are currently
7697         placeholders for the C4x target.
7698
7699 Thu Oct 22 16:46:35 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
7700
7701         * loop.c (express_from): Make sure that when generating a PLUS of
7702         a PLUS, any constant expression appears on the outermost PLUS.
7703
7704 Thu Oct 22 15:46:23 1998  Per Bothner (bothner@cygnus.com)
7705
7706         * Makefile.in (distdir-cvs, distdir-start):  Clean up so it
7707         works if "$(srcdir)" != ".".
7708
7709 Wed Oct 21 19:23:59 1998  Jim Wilson  <wilson@cygnus.com>
7710
7711         * expmed.c (store_bit_field): If need to add a SUBREG, then remove
7712         existing SUBREG if we can, otherwise abort.
7713
7714 Wed Oct 21 09:58:51 1998  Mark Mitchell  <mark@markmitchell.com>
7715
7716         * c-common.c (c_apply_type_quals_to_decl): Don't crash when
7717         `restrict' is applied to a non-pointer variable.
7718
7719 Wed Oct 21 09:18:58 1998  Mark Mitchell  <mark@markmitchell.com>
7720
7721         * invoke.texi: Document -flang-isoc9x.
7722
7723         * Makefile.in (OBJS): Add splay-tree.o.
7724         (c-common.o): Depend on rtl.h.
7725         (splay-tree.o): List dependencies and provide build rule.
7726         
7727         * rtl.h (record_alias_subset): New function.
7728         * alias.c: Include splay-tree.h.
7729         (alias_set_entry): New type.
7730         (CHECK_ALIAS_SETS_FOR_CONSISTENCY): Remove.
7731         (DIFFERENT_ALIAS_SETS_P): Use mem_in_disjoint_alias_sets_p.
7732         (mems_in_disjoin_alias_sets_p): New function.
7733         (alias_set_compare): Likewise.
7734         (insert_subset_children): Likewise.
7735         (get_alias_set_entry): Likewise.
7736
7737         * tree.h (TYPE_RESTRICT): New macro.
7738         (TYPE_UNQUALIFIED): New manifest constant.
7739         (TYPE_QUAL_CONST): Likewise
7740         (TYPE_QUAL_VOLATILE): Likewise.
7741         (TYPE_QUAL_RESTRICT): Likewise.
7742         (tree_type): Add restrict_flag.  Reduce count of free bits.
7743         (DECL_POINTER_ALIAS_SET): New macro.
7744         (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise.
7745         (tree_decl): Add pointer_alias_set.
7746         (build_qualified_type): New function.
7747         (build_type_variant): Define in terms of build_qualified_type.
7748         * tree.c (set_type_quals): New function.
7749         (make_node): Initializae DECL_POINTER_ALIAS_SET.
7750         (build_type_attribute_variant): Use build_qualified_type and
7751         set_type_quals.
7752         (build_type_variant): Rename, and modify, to become...
7753         (build_qualified_type): New function.
7754         (build_complex_type): Use set_type_quals.
7755
7756         * c-tree.h (C_TYPE_OBJECT_P): New macro.
7757         (C_TYPE_FUNCTION_P): Likewise.
7758         (C_TYPE_INCOMPLETE_P): Likewise.
7759         (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise.
7760         (c_apply_type_quals_to_decl): New function.
7761         (c_build_qualified_type): New function.
7762         (c_build_type_variant): Define in terms of c_build_qualified_type.
7763         (flag_isoc9x): Declare.
7764         * c-typeck.c (qualify_type): Use c_build_qualified_type.
7765         (common_type): Change to use TYPE_QUALS.
7766         (comptypes): Likewise.
7767         (convert_for_assignment): Likewise.
7768         * c-aux-info.c (gen_type): Likewise.  Deal with `restrict'.
7769         * c-decl.c (flag_isoc9x): Define.
7770         (c_decode_option): Handle -flang-isoc9x.
7771         (grokdeclarator): Update to handle restrict.  Use TYPE_QUALS,
7772         c_build_qualified_type, etc.  Use c_apply_type_quals_to_decl.
7773         * c-lex.c (init_lex): Deal with restrict.
7774         (init_lex): Don't treat restrict as a reserved word in
7775         -traditional mode, or without -flang-isoc9x.
7776         * c-lex.h (rid): Add RID_RESTRICT.
7777         * c-parse.gperf (restrict, __restrict, __restrict__): Make
7778         equivalent to RID_RESTRICT.
7779         * c-parse.in (TYPE_QUAL): Update comment.
7780         * c-common.c: Include rtl.h.
7781         (c_find_base_decl): New function.
7782         (c_build_type_variant): Rename, and modify, to become ...
7783         (c_build_qualified_type): New function.
7784         (c_apply_type_quals_to_decl): Likewise.
7785         (c_get_alias_set): For INDIRECT_REFs, check to see if we can find
7786         a particular alias set for the reference.
7787         * toplev.c (documented_lang_options): Add -flang-isoc9x.
7788
7789 Wed Oct 21 09:15:06 1998  Nick Clifton  <nickc@cygnus.com>
7790
7791         * config/arm/arm.h (TARGET_SWITCHES): Document arm specific
7792         command line switches.
7793
7794 Tue Oct 20 10:04:51 1998  Graham  <grahams@rcp.co.uk>
7795
7796         * reload.c (loc_mentioned_in_p): Add missing braces to bind
7797         else to correct if.
7798
7799 Mon Oct 19 16:34:05 1998  Tom Tromey  <tromey@cygnus.com>
7800
7801         * gcc.c (option_map): Added --classpath and --CLASSPATH.
7802
7803 Tue Oct 20 10:59:02 1998  Gavin Romig-Koch  <gavin@cygnus.com>
7804
7805         * regclass.c (fix_register): Add error message.
7806         * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
7807           new error message.
7808
7809 Tue Oct 20 10:12:17 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7810
7811         * c-decl.c (warn_missing_noreturn): New global variable.
7812         (c_decode_option): Check for new flags -W{no-}missing-noreturn.
7813         (finish_function): Implement missing noreturn warning.
7814
7815         * c-tree.h (warn_missing_noreturn): Declare extern.
7816
7817         * invoke.texi: Document new flags.
7818
7819         * toplev.c (documented_lang_options): Add description.
7820
7821 Tue Oct 20 22:16:11 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7822
7823         * config/c4x/c4x.c (c4x_parallel_process): Disable until BCT
7824         loop optimization stable for the C4x.
7825         (c4x_rptb_info_t, c4x_dump, c4x_rptb_in_range, c4x_rptb_unjumped_loop,
7826         c4x_rptb_find_comp_and_jump, c4x_rptb_loop_info_get,
7827         c4x_rptb_emit_init, c4x_rptb_process): Deleted (superceded by BCT
7828         loop optimization).
7829         (c4x_address_conflict): Be more paranoid when packing a volatile
7830         memref in a parallel load/store.
7831
7832 Tue Oct 20 21:56:05 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7833
7834         * config/c4x/c4x.md (repeat_block_top, repeat_block_end,
7835         repeat_block_filler): Deleted.
7836         (*ashlqi3_set, *ashrqi3_const_set, *ashrqi3_nonconst_clobber):
7837         Condition code not set if destination register from 'c' class.
7838         (*subbqi3_carry_clobber): Fix typo.
7839
7840 1998-10-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7841
7842         * reorg.c (steal_delay_list_from_target) Check for insns that
7843         modify the condition codes and effect the direction of the jump
7844         in the sequence.
7845
7846 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
7847
7848         * function.c (purge_addressof_1): Replace call to
7849         emit_insns_before() with emit_insn_before().
7850
7851 Mon Oct 19 19:34:03 1998  Mike Stump <mrs@wrs.com>
7852
7853         * libgcc2.c (__pure_virtual): Call __terminate instead of _exit.
7854
7855 Mon Oct 19 13:26:24 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
7856
7857         * jump.c (sets_cc0_p): Compile only if HAVE_cc0.
7858
7859 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
7860
7861         * gcse.c (compute_hash_table): Correctly identify hard regs which are
7862         clobbered across calls.
7863
7864         * loop.c (scan_loop): Be more selective about what invariants are
7865         moved out of a loop.
7866
7867 Mon Oct 19 10:46:58 PDT 1998 Jeff Law  (law@cygnus.com)
7868
7869         * version.c: Bump for snapshot.
7870
7871 Mon Oct 19 11:40:56 1998  Jeffrey A Law  (law@cygnus.com)
7872
7873         * libgcc2.c (eh_context_static): Do not call malloc to allocate the
7874         static eh_context structure.
7875
7876 Mon Oct 19 10:45:40 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
7877
7878         * combine.c (recog_for_combine): Lose PADDED_SCRATCHES arg.  All
7879         callers changed.
7880         (try_combine): Don't update max_scratch.
7881         * flow.c (max_scratch, num_scratch): Delete variables.
7882         (life_analysis_1): Don't initialize max_scratch.
7883         (propagate_block): Don't update max_scratch.
7884         (mark_set_1): Don't increment num_scratch.
7885         * regs.h (max_scratch): Delete declaration.
7886
7887 Mon Oct 19 10:28:15 1998  Jeffrey A Law  (law@cygnus.com)
7888
7889         * reload1.c (reload_reg_free_before_p): Hack.  Return 0 if EQUIV
7890         is nonzero.  This is temporary!
7891
7892         * sched.c (update_flow_info): Handle death notes made invalid by
7893         instruction splitting.  Partially reverts Oct 15, 1998 patch.
7894         * haifa-sched.c (update_flow_info): Likewise.
7895
7896 Sun Oct 18 17:31:26 1998  Jeffrey A Law  (law@cygnus.com)
7897
7898         * function.c (uninitialized_vars_warning): Do not warn for a VAR_DECL
7899         if it has a nonzero DECL_INITIAL.
7900
7901 Sat Oct 17 23:18:08 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7902
7903         * Makefile.in (flow.o): Depend on recog.h.
7904
7905         * cpplib.h (directive_table): Add missing initializiers.
7906         (finclude): Change type of variable `bsize' to size_t.
7907         
7908         * cse.c (rtx_cost): Mark parameter `outer_code' with ATTRIBUTE_UNUSED.
7909
7910         * dwarfout.h (dwarfout_label): Wrap prototype in macro RTX_CODE.
7911
7912         * fix-header.c (lookup_std_proto): Cast the result of `strlen' to
7913         `int' when comparing against one.
7914         (cpp_file_line_for_message): Mark parameter `pfile' with
7915         ATTRIBUTE_UNUSED.
7916         (cpp_fatal): Mark parameter `pfile' with ATTRIBUTE_UNUSED.
7917
7918         * flow.c: Include recog.h.
7919         (sbitmap_copy): Cast arguments 1 & 2 of `bcopy' to (PTR).
7920
7921         * function.c (thread_prologue_and_epilogue_insns): Mark parameter
7922         `f' with ATTRIBUTE_UNUSED.
7923         (reposition_prologue_and_epilogue_notes): Likewise.
7924
7925         * genopinit.c (gen_insn): Cast argument of ctype functions to
7926         `unsigned char'.
7927
7928         * haifa-sched.c: Include recog.h.
7929         (blockage_range): Cast result of UNIT_BLOCKED macro to (int) when
7930         comparing against one.
7931
7932         * libgcc2.a (__throw): Revert ATTRIBUTE_UNUSED change for now.
7933
7934         * mips-tfile.c (parse_end): Cast the argument of ctype function to
7935         `unsigned char'.
7936         (parse_ent): Likewise.
7937         (parse_input): Likewise.
7938
7939         * optabs.c (init_libfuncs): Likewise.
7940
7941         * protoize.c (find_rightmost_formals_list): Likewise.
7942
7943         * recog.h (const_double_operand): Fix typo in prototype.
7944
7945         * tlink.c (scan_linker_output): Cast the argument of ctype
7946         function to `unsigned char'.
7947
7948         * toplev.c (check_lang_option): Cast the result of `strlen' to
7949         `int' when comparing against one.
7950
7951 Sat Oct 17 13:09:09 1998  Graham  <grahams@rcp.co.uk>
7952
7953         * gcse.c (dump_cuid_table): Correct typo.
7954
7955 Sat Oct 17 11:02:47 1998  Nick Clifton  <nickc@cygnus.com>
7956
7957         * toplev.c (display_help): Prepend '-m' to target specific
7958         options. 
7959         (check_lang_option): Ignore text after end of first word of a
7960         language specific option.
7961
7962 Sat Oct 17 02:26:03 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de> 
7963
7964         * reload1.c (reg_used_by_pseudo): New static variable.
7965         (choose_reload_regs): Initialize it.
7966         Use it instead of testing spill_reg_order to determine whether a
7967         pseudo is live in a hard register across the current insn.
7968         Fix a typo in a reference to reload_reg_rtx.
7969
7970         * flow.c (propagate_block): Replace code that computes and uses
7971         regs_sometimes_live with simpler code that just walks the set of
7972         currently live registers.
7973
7974         * Makefile.in (insn-extract.o): Fix dependencies.
7975         * genextract.c (main): Generate includes for insn-config.h and
7976         recog.h.
7977         Delete generation of declarations which are now in recog.h.
7978         * genrecog.c (main): Delete generation of definitions which are
7979         now in recog.c.
7980         * local-alloc.c (block_alloc): Use extract_insn and the variables
7981         it sets up instead of looking up values by insn_code.
7982         * recog.c (recog_operand, recog_operand_loc, recog_dup_loc,
7983         recog_dup_num): Define here instead of generating the definition in
7984         genrecog.c.
7985         (recog_n_operands, recog_n_dups, recog_n_alternatives,
7986         recog_operand_mode, recog_constraints, recog_operand_address_p):
7987         New variables.
7988         (extract_insn): New function.
7989         * recog.h (extract_insn): Declare function.
7990         (which_alternative, recog_n_operands, recog_n_dups,
7991         recog_n_alternatives, recog_operand_mode, recog_constraints,
7992         recog_operand_address_p): Declare variables.
7993         * regclass.c (n_occurrences): New static function.
7994         * reload.c (n_occurrences): Delete function.
7995         (find_reloads): Use extract_insn.
7996         * reload.h (n_occurrences): Delete declaration.
7997
7998 Sat Oct 17 01:17:51 1998  Jeffrey A Law  (law@cygnus.com)
7999
8000         * reload1.c (reload_as_needed): Fix test for when to call
8001         update_eliminable_offsets.
8002
8003 Fri Oct 16 20:40:50 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8004
8005         Fix consistency problems with reg_equiv_{mem,address};
8006         Improve reload inheritance;
8007
8008         * reload.c (reload_out_reg): New variable.
8009         (loc_mentioned_in_p, remove_address_replacements): New functions.
8010         (remove_replacements): Deleted.
8011         (push_reload): Set reload_out_reg[i].
8012         When merging, also set reload_{in,out}_reg[i], and remove
8013         duplicate address reloads.
8014         (combine_reloads): Copy reload_out_reg[i].
8015         (find_reloads): Do make_memloc substitution also when
8016         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
8017         are both nonzero.
8018         Include *recog_operand_loc in commutativity operand changes.
8019         Generate optional output reloads.
8020         Delete reference to n_memlocs.  Don't set *recog_operand_loc before
8021         processing operands.  Call make_memloc in reg_equiv_address code.
8022         Set *recog_operand_loc only after processing operands, and only
8023         if replace is true.  Return a value.
8024         When changing address reload types for operands that didn't get
8025         reloaded, use RELOAD_FOR_OPADDR_ADDRESS for
8026         RELOAD_FOR_INPADDR_ADDRESS / RELOAD_FOR_OUTADDR_ADDRESS reloads.
8027         Don't emit USEs for pseudo SUBREGs when not replacing.
8028         (find_reloads_address): Do make_memloc substitution also when
8029         reg_equiv_memory_loc[regno] and num_not_at_initial_offset
8030         are both nonzero.
8031         (find_reloads_toplev): Likewise.
8032         Call make_memloc in reg_equiv_address code.
8033         (debug_reload_to_stream): Add code to output reload_out_reg.
8034         (make_memloc): Delete local variable i, ifdefed out code, and
8035         references to memlocs and n_memlocs.
8036         (memlocs, n_memlocs): Delete.
8037         (push_secondary_reload): Clear reload_out_reg.
8038         (find_reloads_address_1): Provide memrefloc argument to all calls
8039         to find_reloads_address.
8040         In AUTO_INC code, handle non-directly addressable equivalences properly.
8041         * reload.h (reload_out_reg, num_not_at_initial_offset): Declare.
8042         (find_reloads): Add return type.
8043         (remove_address_replacements, deallocate_reload_reg): Declare.
8044         * reload1.c (num_not_at_initial_offset): No longer static.
8045         (delete_address_reloads, delete_address_reloads_1): Likewise.
8046         (deallocate_reload_reg): New function.
8047         (spill_reg_stored_to): New array.
8048         (eliminate_regs): Don't substitute from reg_equiv_memory_loc.
8049         (eliminate_regs_in_insn): Move assignments of previous_offset and
8050         max_offset fields, and recalculation of num_not_at_initial_offset
8051         into new static function:
8052         (update_eliminable_offsets) .
8053         (reload_as_needed): Call update_eliminable_offsetss after calling
8054         find_reloads.
8055         Call forget_old_reloads_1 with contents of reloaded auto_inc
8056         expressions if the actual addressing can't be changed to match the
8057         auto_inc.
8058         (choose_reload_regs): For inheritance, replace
8059         reload_reg_free_before_p test with reload_reg_used_at_all test, and
8060         remove stand-alone reload_reg_used_at_all test.
8061         Use reload_out_reg to determine which reload regs have output reloads.
8062         Treat reload_override_in more similar to inherited reloads.
8063         Handle (subreg (reg... for inheritance.
8064         For flag_expensive_optimizations, add an extra pass to remove
8065         unnecessary reloads from known working inheritance.
8066         Delete obsolete code for pseudos replaced with MEMs.
8067         Handle inheritance from auto_inc expressions.
8068         (emit_reload_insns): If reload_in is a MEM, set OLD to 
8069         reload_in_reg[j].
8070         Don't reload directly from oldequiv; if it's a pseudo with a
8071         stack slot, use reload_in[j].
8072         Check that reload_in_reg[j] is a MEM before replacing reload_in
8073         from reg_reloaded_contents.
8074         Include non-spill registers in reload inheritance processing.
8075         Also try to use reload_out_reg to set spill_reg_store /
8076         reg_last_reload_reg.
8077         In code to set new_spill_reg_store, use single_set to find out if
8078         there is a single set.
8079         Add code that allows to delete optional output reloads.
8080         Add code to allow deletion of output reloads that use no spill reg.
8081         At the end, set reload_override_in to oldequiv.
8082         Also call delete_output_reload if reload_out_reg is equal to old
8083         in oldequiv code.
8084         Add code to call delete_output_reload for stores with no matching load.
8085         Set / use spill_reg_stored_to.
8086         Handle case where secondary output reload uses a temporary, but
8087         actual store isn't found.
8088         When looking for a store of a value not loaded in order to call
8089         delete_output_reload, count_occurences should return 0 for no
8090         loads; but discount inherited input reloadill_reg_stored_to.
8091         Do checks for extra uses of REG.  Changed all
8092         callers.
8093         Use delete_address_reloads.
8094         (reload): Take return value of find_reloads into account.
8095         If a no-op set needs more than one reload, delete it.
8096         (reload_reg_free_before_p): RELOAD_FOR_INPUT
8097         can ignore RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS
8098         for the same operand.
8099         (clear_reload_reg_in_use): Check for other reloads that keep a
8100         register in use.
8101         (reload_reg_free_for_value_p): handle RELOAD_FOR_OPERAND_ADDRESS /
8102         RELOAD_FOR_OPADDR_ADDR.
8103         Take into account when an address address reload is only needed
8104         for the address reload we are considering.
8105         (count_occurrences): Use rtx_equal_p for MEMs.
8106         (inc_for_reload): Return instruction that stores into RELOADREG.
8107         New argument two, IN, and rtx.  Changed all callers.
8108         (calculate_needs_all_insns, reload_as_needed):
8109         Don't clear after_call for a CLOBBER.
8110         Keep track of how many hard registers need to be copied from
8111         after_call, and don't clear after_call before we have seen
8112         that much copies, or we see a different instruction.
8113
8114 Fri Oct 16 10:58:23 1998  Jeffrey A Law  (law@cygnus.com)
8115
8116         * flow.c (find_basic_blocks_1): Do not delete unreachable blocks
8117         after reload has completed.
8118
8119 Fri Oct 16 17:26:10 1998  Dave Brolley  <brolley@cygnus.com>
8120
8121         * cpplib.c (cpp_get_token): Replace whitespace that occurs between
8122         a macro name and the next token with a single blank if that whitespace
8123         is in a macro buffer and the next token is not '('.
8124
8125 Fri Oct 16 15:44:02 1998  Dave Brolley  <brolley@cygnus.com>
8126
8127         * cccp.c (rescan): Handle multibyte chartacters ending in backslash.
8128         (rescan): Ditto.
8129         (skip_if_group): Ditto.
8130         (skip_to_end_of_comment): Ditto.
8131         (macarg1): Ditto.
8132         (discard_comments): Ditto.
8133         (change_newlines): Ditto.
8134
8135 Fri Oct 16 15:26:24 1998  Dave Brolley  <brolley@cygnus.com>
8136
8137         * c-lex.c (yylex): Fix unaligned access of wchar_t.
8138
8139 Fri Oct 16 10:47:53 1998  Nick Clifton  <nickc@cygnus.com>
8140
8141         * config/arm/arm.h (TARGET_SWITCHES): Add --help documentation.
8142         (TARGET_OPTIONS): Add --help documentation.
8143
8144 Fri Oct 16 11:49:01 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8145
8146         * rtl.h (sets_cc0_p): Revert Oct 14 ATTRIBUTE_NORETURN change.
8147
8148 Fri Oct 16 07:08:46 1998  Bruce Korb <korb@datadesign.com>
8149         
8150         * fixinc/* Moved in from ../contrib directory in preparation
8151         for integrating it into the normal build process.  In particular,
8152         fixinc/Makefile.in must be config-ed into the build directory
8153         as fixinc/Makefile.  Proposed patches to ./Makefile.in and
8154         ./configure.in will be "in the mail" momentarily.
8155
8156 Fri Oct 16 08:13:46 1998  David S. Miller  <davem@pierdol.cobaltnet.com>
8157
8158         * cse.c (cse_basic_block): Fixup hash flushing loop so we do not
8159         accidently walk into the free list.  Comment how that can happen.
8160         (invalidate): Fix indentation.
8161
8162 Thu Oct 15 23:53:29 1998 Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8163                          Jeffrey A Law  (law@cygnus.com)
8164
8165         * flow.c (life_analysis_1): Do not clobber regs_ever_live after
8166         reload.  Never perform rescans of the insn chain after reload.
8167         (propagate_block): Do not delete insn or create new autoinc addressing
8168         modes after reload.
8169
8170         * jump.c (jump_optimize): Unconditionally use the code that was
8171         previously conditional on PRESERVE_DEATH_INFO_REGNO_P.
8172         * reload1.c (reload): When reloading is finished, delete all
8173         REG_DEAD and REG_UNUSED notes.
8174         (emit_reload_insns): Delete all code that was conditional on
8175         PRESERVE_DEATH_INFO_REGNO_P.
8176         (no_longer_dead_regs): Delete variable.
8177         (reload_cse_delete_death_notes): Delete function.
8178         (reload_cse_no_longer_dead): Delete function.
8179         (reload_cse_regs_1): Delete all code to handle deletion of death
8180         notes.
8181         (reload_cse_noop_set_p): Likewise.
8182         (reload_cse_simplify_set): Likewise.
8183         (reload_cse_simplify_operands): Likewise.
8184         (reload_cse_move2add): Likewise.
8185         * reorg.c (used_spill_regs): Delete declaration.
8186         (max_label_num_after_reload): Delete declaration.
8187         (find_dead_or_set_registers): Don't assume that spill regs are
8188         dead at a CODE_LABEL.
8189         * rtlanal.c (dead_or_set_regno_p): Death notes are always accurate,
8190         even after reload.
8191         * sched.c (sched_analyze_insn): Likewise.
8192         (update_flow_info): Likewise.
8193         * haifa-sched.c (sched_analyze_insn): Likewise.
8194         (update_flow_info): Likewise.
8195         * tm.texi (PRESERVE_DEATH_INFO_REGNO_P): Delete documentation.
8196         * toplev.c (max_label_num_after_reload): Delete variable.
8197         (rest_of_compilation): Don't set max_label_num_after_reload.
8198         Call life_analysis after reload_cse_regs if optimizing.
8199         * config/gmicro/gmicro.h: Delete comment referring to
8200         PRESERVE_DEATH_INFO_REGNO_P.
8201         * config/i386/i386.h: Likewise.
8202         * config/m88k/m88k.h: Likewise.
8203         * config/m32r/m32r.h (PRESERVE_DEATH_INFO_REGNO_P): Delete definition.
8204         * config/sh/sh.h: Likewise.
8205
8206 Thu Oct 15 19:48:41 1998  David Edelsohn  <edelsohn@gnu.org>
8207
8208         * loop.c (strength_reduce): Restore marking bct_p as
8209         ATTRIBUTE_UNUSED.
8210         * rs6000.c (optimization_options): Change #ifdef HAIFA to
8211         HAVE_decrement_and_branch_on_count.
8212         (small_data_operand): Remove TARGET_ELF condition for marking
8213         parameters ATTRIBUTE_UNUSED.
8214         
8215 Thu Oct 15 11:45:51 1998  Robert Lipe  <robertl@dgii.com>
8216
8217         * config/i386/sco5.h (MAX_OFILE_ALIGNMENT):  Define.
8218         (SELECT_SECTION): Resync with svr4.h.
8219
8220 Thu Oct 15 12:42:13 1998  David Edelsohn  <edelsohn@gnu.org>
8221
8222         * loop.c (strength_reduce): Undo Oct 14 change marking bct_p
8223         ATTRIBUTE_UNUSED.
8224
8225 Thu Oct 15 00:57:55 1998  Robert Lipe  <robertl@dgii.com>
8226
8227         * c-pragma.c (handle_pragma_token): Test for null tree before
8228         dereferencing TREE_CODE.
8229
8230 Thu Oct 15 17:36:48 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8231
8232         * config/c4x/c4x.c: Convert to use GEN_INT.
8233         (c4x_parallel_process): Rework to handle new repeat loop structure.
8234
8235         * config/c4x/c4x.md: Convert to use GEN_INT. 
8236         (rptb_end): Convert to use GE test.  Replace uses with clobbers.
8237         (decrement_and_branch_on_count): Likewise.
8238
8239         * config/c4x/c4x.h (REPEAT_BLOCK_PROCESS): Deleted hook now that
8240         loop.c has the desired functionality.
8241         (rc_reg_operand): New prototype.
8242
8243         * config/c4x/t-c4x: Can now build all front ends.
8244
8245 Wed Oct 14 23:27:08 1998  Didier FORT (didier.fort@fedex.com)
8246
8247         * fixincludes: Fix up rpc/{clnt,svr,xdr}.h for SunOS.
8248
8249 Wed Oct 14 22:13:28 1998  Joel Sherrill (joel@OARcorp.com)
8250
8251         * Makefile.in (stmp-fixinc): Do not install assert.h if not desired.
8252         * config/t-rtems: Do not install assert.h -- use newlib's.
8253
8254 Wed Oct 14 21:57:08 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
8255
8256         * combine.c (combine_instructions): When finished, call init_recog.
8257         * regmove.c (optimize_reg_copy_3): Reject volatile MEMs.
8258
8259 Wed Oct 14 16:10:22 1998  Per Bothner  <bothner@cygnus.com>
8260
8261         * toplev.c:  If flag_syntax_only, don't open or write assembler file.
8262
8263 Wed Oct 14 13:26:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8264
8265         * cppalloc.c (memory_full): Mark function prototype with
8266         ATTRIBUTE_NORETURN.
8267
8268         * demangle.h (collect_exit): Likewise.
8269
8270         * fix-header.c (v_fatal, fatal): Likewise.
8271
8272         * gcc.c (pfatal_with_name, pfatal_pexecute, fatal, fancy_abort):
8273         Likewise.
8274
8275         * gcov.c (print_usage): Likewise.
8276
8277         * genattr.c (fatal, fancy_abort): Likewise.
8278
8279         * genattrtab.c (fatal, fancy_abort): Likewise.
8280
8281         * gencodes.c (fatal, fancy_abort): Likewise.
8282
8283         * genconfig.c (fatal, fancy_abort): Likewise.
8284
8285         * genemit.c (fatal, fancy_abort): Likewise.
8286
8287         * genextract.c (fatal, fancy_abort): Likewise.
8288
8289         * genflags.c (fatal, fancy_abort): Likewise.
8290
8291         * genopinit.c (fatal, fancy_abort): Likewise.
8292
8293         * genoutput.c (fatal, fancy_abort): Likewise.
8294
8295         * genpeep.c (fatal, fancy_abort): Likewise.
8296
8297         * genrecog.c (fatal, fancy_abort): Likewise.
8298
8299         * libgcc2.c (__eprintf, __default_terminate, __sjthrow,
8300         __sjpopnthrow, __throw): Likewise.
8301
8302         * objc/objc-act.c (objc_fatal): Likewise.
8303
8304         * protoize.c (usage, aux_info_corrupted,
8305         declare_source_confusing): Likewise.
8306
8307         * rtl.c (dump_and_abort): Likewise.
8308
8309         * rtl.h (sets_cc0_p): Likewise.
8310
8311         * toplev.c (float_signal, pipe_closed): Likewise.
8312         
8313 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8314
8315         * dwarf2out.c (expand_builtin_dwarf_reg_size): Look at all ranges
8316         when generating the decision tree for the general case.
8317
8318         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): Don't accept modes
8319         wider that 12 bytes in fpu regs or wider than 8 byte in fpa regs.
8320
8321 Wed Oct 14 11:14:02 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8322
8323         * Makefile.in (sched.o): Depend on recog.h.
8324
8325         * alias.c (REG_BASE_VALUE): Cast the result of REGNO() macro to
8326         (unsigned) when comparing against one.
8327         (find_base_value): Likewise.
8328         (record_base_value): Cast variable `regno' to (unsigned) when
8329         comparing against one.  Cast the result of REGNO() macro to
8330         (unsigned) when comparing against one.
8331         (memrefs_conflict_p): Change type of variables `r_x' and `r_y'  to
8332         unsigned.
8333         (init_alias_analysis): Add unsigned variable `ui'.  Use it as loop
8334         variable where an unsigned index is needed.
8335
8336         * caller-save.c (init_caller_save): Cast `-1' to (enum insn_code)
8337         before comparing against one.
8338
8339         * collect2.c: Add prototypes for functions `error', `fatal' and
8340         `fatal_perror'.  Make these functions take variable arguments
8341         instead of faking it with a fixed number of args.
8342         (write_c_file_stat): Cast the argument of ctype macro to (unsigned
8343         char).
8344
8345         * combine.c (can_combine_p): Mark parameter `pred' with
8346         ATTRIBUTE_UNUSED.
8347         (find_split_point): Cast variable `src' to (unsigned
8348         HOST_WIDE_INT) when comparing against one.
8349         (simplify_rtx): Cast 1 to (unsigned HOST_WIDE_INT) in shift.
8350         (simplify_logical): Likewise.
8351         (force_to_mode): Cast result of INTVAL() macro to (unsigned
8352         HOST_WIDE_INT) when comparing against one.  Cast 1 to (unsigned
8353         HOST_WIDE_INT) in shift.
8354         (simplify_and_const_int): Cast result of INTVAL() macro to
8355         `unsigned HOST_WIDE_INT' when comparing against one.
8356         (merge_outer_ops): Cast variable const0 to `unsigned
8357         HOST_WIDE_INT' when comparing against the result of
8358         GET_MODE_MASK() macro.
8359         (simplify_comparison): Likewise for variable `c0'.  Cast variable
8360         `const_op' to `unsigned HOST_WIDE_INT' when comparing against
8361         one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast the
8362         result of `GET_MODE_MASK()/2' to `HOST_WIDE_INT' when comparing
8363         against one.  Cast `1' to `unsigned HOST_WIDE_INT' in shift.  Cast
8364         result of INTVAL() macro to `unsigned HOST_WIDE_INT' when
8365         comparing against one.
8366         (distribute_notes): Wrap variable `cc0_setter' in macro `HAVE_cc0'.
8367
8368         config/mips/mips.c (gen_int_relational): Cast result of INTVAL()
8369         macro to `unsigned HOST_WIDE_INT' when comparing against one.
8370         (output_block_move): Cast `sizeof' expression to (int) when
8371         comparing against one.
8372         (function_arg): Cast BITS_PER_WORD to `unsigned' when comparing
8373         against one.
8374         (save_restore_insns): Cast `base_offset' to `long' to match format
8375         specifier in fprintf.
8376
8377         * config/mips/mips.h (Pmode): Cast the result of `Pmode' macro
8378         to `enum machine_mode'.
8379
8380         * flow.c (life_analysis_1): Remove unused variable `insn'.
8381
8382         * gcc.c (translate_options): Move variables `j' and `k' into the
8383         scope in which they are used.  Change their types to `size_t'.
8384         (set_spec): Cast the argument of ctype macro to `unsigned char'.
8385         (read_specs): Likewise.
8386         (process_command): Cast `sizeof' to (int) when comparing against one.
8387         (do_spec_1): Cast the argument of ctype macro to `unsigned char'.
8388         (handle_braces): Cast both sides of `==' expression to `long' to
8389         ensure sign matching.
8390         (main): Cast variable `i' to `int' when comparing against one.
8391
8392         * gcov-io.h (__fetch_long): Change type of parameter `bytes' from
8393         int to size_t.  Cast variable `i' to size_t when comparing against
8394         one.
8395
8396         * genattrtab.c (convert_set_attr_alternative): Remove unused
8397         parameter `insn_code'.  All callers changed.
8398         (convert_set_attr): Likewise.
8399
8400         * genrecog.c (add_to_sequence): Cast result of XVECLEN() macro to
8401         size_t when comparing against one.  Likewise for variable `len'.
8402
8403         * global.c (global_alloc): Cast variable `max_regno' to size_t
8404         when comparing against one.  Likewise for variable `max_allocno'.
8405
8406         * jump.c (sets_cc0_p): Mark parameter `x' with ATTRIBUTE_UNUSED.
8407
8408         * local-alloc.c (validate_equiv_mem_from_store): Mark parameter
8409         `set' with ATTRIBUTE_UNUSED.
8410         (find_free_reg): Cast `sizeof' expression to (int) when comparing
8411         against one.
8412
8413         * loop.c (count_loop_regs_set): Remove unused variable `dest'.
8414         (strength_reduce): Mark parameter `bct_p' with ATTRIBUTE_UNUSED.
8415         (get_condition): Cast variable `const_val' to `unsigned
8416         HOST_WIDE_INT' when comparing against one.  Cast unsigned
8417         expression to HOST_WIDE_INT when comparing against one.
8418         (insert_loop_mem): Mark parameter `data' with ATTRIBUTE_UNUSED.
8419         (load_mems_and_recount_loop_regs_set): Cast variable `nregs' to
8420         `unsigned' when comparing against one.
8421
8422         * protoize.c (is_id_char): Change type of parameter `ch' to
8423         unsigned char.
8424         (munge_compile_params): Cast argument of ctype macro to (const
8425         unsigned char).
8426         (process_aux_info_file): Cast variable `aux_info_size' to int when
8427         comparing against one.
8428         (forward_to_next_token_char): Cast argument of ctype macro to
8429         `const unsigned char'.
8430         (edit_formals_lists): Likewise.
8431         (find_rightmost_formals_list): Likewise.
8432         (add_local_decl): Likewise.
8433         (add_global_decls): Likewise.
8434         (edit_fn_definition): Likewise.
8435         (do_cleaning): Likewise.
8436         (scan_for_missed_items): Likewise.
8437         (edit_file): Cast variable `orig_size' to (int) when comparing
8438         against one.
8439         (main): Cast argument of ctype macro to `const unsigned char'.
8440
8441         * recog.c (const_int_operand): Mark parameter `mode' with
8442         ATTRIBUTE_UNUSED.
8443
8444         * regclass.c (record_reg_classes): Change type of variable `c' to
8445         `unsigned char'.  Cast `char' array index to `unsigned char'.
8446
8447         * reload.c (push_secondary_reload): Cast argument to
8448         REG_CLASS_FROM_LETTER() macro to `unsigned char'.
8449
8450         * reload1.c (calculate_needs): Cast `char' array index to
8451         `unsigned char'.
8452         (set_label_offsets): Change type of variable `i' to unsigned int.
8453         Cast result of XVECLEN() macro to unsigned when comparing against
8454         one.
8455         (mark_not_eliminable): Change type of variable `i' to unsigned.
8456         (order_regs_for_reload): Likewise.  Cast `max_regno' to unsigned
8457         when comparing against one.
8458         (reload_as_needed): Cast macro NUM_ELIMINABLE_REGS to (int) when
8459         comparing against one.
8460         (choose_reload_regs): Hide unused label `fail'.
8461         (reload_cse_simplify_operands): Cast `char' array index to
8462         `unsigned char'.
8463         (reload_combine_note_store): Mark parameter `set' with
8464         ATTRIBUTE_UNUSED.  Cast UNITS_PER_WORD to unsigned when comparing
8465         against one.
8466         (reload_cse_move2add): Remove unused variable `src2'.
8467
8468         * sched.c: Include recog.h.
8469         (sched_note_set): Remove unused parameter `b'.  All callers
8470         changed.
8471         (split_hard_reg_notes): Likewise for parameter `orig_insn'.
8472         (blockage_range): Cast result of UNIT_BLOCKED() macro to (int)
8473         when comparing against one.
8474
8475         * stupid.c (stupid_find_reg): Mark parameter `changes_size' with
8476         ATTRIBUTE_UNUSED.  Cast `sizeof' expression to (int) when
8477         comparing against one.
8478
8479         * unroll.c (precondition_loop_p): Remove unused parameter
8480         `loop_end'.  All callers changed.
8481
8482 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8483
8484         * reload1.c (maybe_fix_stack_asms): New static function.
8485         (reload): Call it.
8486
8487         * reload.h (compute_use_by_pseudos): Declare.
8488
8489         * reload1.c (spilled_pseudos, insns_need_reload): New variables.
8490         (something_needs_reloads): Delete variable.
8491         (finish_spills): New function.
8492         (compute_use_by_pseudos): New function.
8493
8494         (delete_caller_save_insns): Lose argument FIRST.  All callers changed.
8495         Use the reload_insn_chain instead of walking the rtl directly.
8496
8497         (reload): Allocate and free spilled_pseudos.
8498         Ensure that all calls of spill_hard_reg are followed by a call to
8499         finish_spills.
8500         Use the insns_need_reload list instead of something_needs_reloads
8501         to find out if reload_as_needed must be called.
8502         Clear unused_insn_chains at the end.
8503
8504         (calculate_needs_all_insns): Lose FIRST parameter.  All callers
8505         changed.
8506         Delete code to keep track of current basic block.
8507         Walk reload_insn_chain instead of the rtl structure.  Build the
8508         insns_need_reload chain.
8509         Remember which insns need reloading/elimination by setting the
8510         appropriate fields in struct insn_chain, not by putting modes on the
8511         insn.
8512
8513         (calculate_needs): Lose THIS_BLOCK arg.  Accept arg CHAIN instead of
8514         arg INSN.  All callers changed.
8515         Delete declaration of struct needs.
8516         Don't set something_needs_reloads.
8517         Record insn needs in the CHAIN argument.
8518
8519         (spill_hard_reg): Record the affected pseudos in spilled_pseudos.
8520
8521         (reload_as_needed): Lose FIRST arg.  All callers changed.
8522         Walk the reload_insn_chain instead of the rtx structure.
8523         Delete code to keep track of current basic block.
8524         Rename one of the NEXT variables to OLD_NEXT.
8525
8526         (allocate_reload_reg): Accept arg CHAIN instead of arg INSN.  All
8527         callers changed.
8528         (choose_reload_regs): Likewise.
8529
8530         (emit_reload_insns): Replace INSN and BB args with arg CHAIN.  All
8531         callers changed.
8532         
8533         * caller-save.c (MOVE_MAX_WORDS): New macro.  Use it throughout
8534         instead of (MOVE_MAX / UNITS_PER_WORD) computation.
8535         (hard_regs_live, hard_regs_need_restore): Delete variables.
8536         (n_regs_saved): Now static.
8537         (referenced_regs, this_insn_sets): New variables.
8538
8539         (setup_save_areas): Restructure the code a bit.
8540
8541         (restore_referenced_regs): Delete function.
8542         (mark_referenced_regs): New function, similar to the old
8543         restore_referenced_regs, but mark registers in referenced_regs.
8544
8545         (clear_reg_live): Delete function.
8546         (mark_set_regs): Renamed from set_reg_live.  All callers changed.
8547         Only mark registers in this_insn_sets.
8548
8549         (save_call_clobbered_regs): Rework this function to walk the
8550         reload_insn_chain instead of using the list of instructions directly.
8551         Delete code to keep track of register lives, compute live regs on the
8552         fly from information in the chain.
8553         Instead of calling restore_referenced_regs, use mark_referenced_regs,
8554         then walk the set it computes and call insert_restore as appropriate.
8555
8556         (insert_restore): Lose INSN and BLOCK args.  Add CHAIN arg.  All
8557         callers changed.
8558         Restructure the code a bit.  Test hard_regs_saved instead of
8559         hard_regs_need_restore.
8560         (insert_save): Lose INSN and BLOCK args.  Add CHAIN and TO_SAVE
8561         args.  All callers changed.
8562         Restructure the code a bit.  Use TO_SAVE to determine which regs to
8563         save instead of more complicated test.
8564         (insert_one_arg): Lose INSN and BLOCK args.  Add CHAIN arg.  All
8565         callers changed.
8566         Create a new insn_chain structure for the new insn and place it
8567         into the chain.
8568
8569         * rtl.texi: Update documentation to reflect that reload no longer
8570         puts modes on the insns.
8571
8572 1998-10-14  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
8573
8574         * function.c (purge_addressof_1): Force the first argument of a
8575         CALL insn to memory.
8576
8577 Wed Oct 14 00:38:40 1998  Jeffrey A Law  (law@cygnus.com)
8578
8579         * rtl.h: Delete duplicate prototypes.  Add some missing
8580         prototypes.
8581         * rtlanal.c: (for_each_rtx): Formatting tweak.
8582
8583 1998-10-13 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8584
8585         * real.c (emdnorm and etoasc): Disable round to even for c4x target
8586         to be compatible with TI compiler.
8587
8588         * Makefile.in (USER_H): Add va-c4x.h to definition.
8589
8590 Tue Oct 13 23:03:37 1998  Richard Henderson  <rth@cygnus.com>
8591
8592         * function.c (purge_addressof_1): Fix typo in inequality: do
8593         bitfield optimization for equal mode sizes.
8594         * expmed.c (store_bit_field): Don't take subregs of subregs in
8595         the movstrict case.  Tidy a potential problem in the multi-word case.
8596         (extract_bit_field): Likewise.
8597
8598 Tue Oct 13 22:12:11 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
8599
8600         * flow.c (find_basic_blocks): Emit NOPs after normal calls in this
8601         function.
8602         Compute max_uid_for_flow by calling get_max_uid after the scan.
8603         (find_basic_blocks_1): Don't emit NOPs here.
8604
8605 Tue Oct 13 22:05:49 1998  Richard Henderson  <rth@cygnus.com>
8606
8607         * alias.c (base_alias_check): Accept new args for the modes of the
8608         two references.  Use them to determine if an AND can overlap.  Update
8609         all callers.
8610         (memrefs_conflict_p): Assume sizes are aligned, and uses them
8611         to determine if an AND can overlap.
8612
8613 Tue Oct 13 17:51:04 1998  Jim Wilson  <wilson@cygnus.com>
8614
8615         * config/m68k/m68k.h (HARD_REGNO_MODE_OK): For FP regs, add REGNO >= 16
8616         check.  Add comment to document problems with TARGET_SUN_FPA version
8617         of this macro.
8618         * config/m68k/m68k.md (movxf+1): Support 'r'/'r' moves.
8619
8620 Tue Oct 13 17:46:18 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8621
8622         * Makefile.in (gencheck.o): Depend on gansidecl.h.
8623
8624         * c-common.c (print_char_table): Add missing initializers.
8625         (scan_char_table): Likewise.
8626         (time_char_table): Likewise.
8627
8628         * c-decl.c (c_decode_option): Mark parameter `argc' with
8629         ATTRIBUTE_UNUSED.
8630         (declare_parm_level): Mark parameter `definition_flag' with
8631         ATTRIBUTE_UNUSED.
8632
8633         * c-lex.c (readescape): Use `(unsigned)1' in shift.
8634         (yylex): Likewise.  Cast `sizeof' to an (int) when comparing
8635         against one.
8636
8637         * calls.c (store_one_arg): Remove unused parameter `fndecl'.  All
8638         callers changed.
8639         (emit_call_1): Mark parameters `fndecl' and `funtype' with
8640         ATTRIBUTE_UNUSED.
8641         (expand_call): Cast result of MIN() to (unsigned int) when
8642         comparing against an unsigned value.
8643
8644         * cccp.c (pcfinclude): Remove unused parameter `limit'.  All
8645         callers changed.
8646         (make_definition): Remove unused parameter `op'.  All callers
8647         changed.
8648         (create_definition): Cast REST_EXTENSION_LENGTH to (long) when
8649         comparing against the result of pointer arithmetic.
8650
8651         * config/mips/mips.h (FUNCTION_ARG_BOUNDARY): Cast to (unsigned)
8652         when comparing against one.
8653
8654         * dwarf2out.c (dwarf2out_frame_debug): Cast REGNO() and
8655         HARD_FRAME_POINTER_REGNUM to (unsigned) when comparing against
8656         one.
8657         (output_die): Move variable `i' into the scope in which it is
8658         used.  Change its type to `unsigned'.
8659         (output_die): Cast the result of `strlen' to (int) when passing it
8660         to ASM_OUTPUT_ASCII().
8661         (output_pubnames): Likewise.
8662         (output_line_info): Likewise.
8663
8664         * emit-rtl.c (global_rtl): Add missing initializers.
8665
8666         * explow.c (promote_mode): Mark parameter `for_call' with
8667         ATTRIBUTE_UNUSED.
8668
8669         * expmed.c (expand_shift): Cast the result of GET_MODE_BITSIZE to
8670         `unsigned HOST_WIDE_INT' when comparing against one.
8671         (synth_mult): Change type of variable `cost' to int.
8672         (emit_store_flag): Use `(unsigned HOST_WIDE_INT) 1' in shift.
8673
8674         * expr.c (copy_blkmode_from_reg): Cast BITS_PER_WORD to (unsigned)
8675         when comparing against one.
8676         (get_inner_reference): Change variable `alignment' to unsigned.
8677         (expand_expr): Cast the result of GET_MODE_ALIGNMENT to (unsigned
8678         int) when comparing against one.
8679         (expand_builtin_setjmp): Change type of variable `i' to size_t.
8680
8681         * fold-const.c (div_and_round_double): Cast BASE to
8682         (HOST_WIDE_INT) when comparing against one.
8683
8684         * gencheck.c: Include gansidecl.h.
8685         (main): Mark parameter `argv' with ATTRIBUTE_UNUSED.
8686
8687         * optabs.c (gen_cond_trap): Mark parameters `code', `op2' and
8688         `tcode' with ATTRIBUTE_UNUSED.
8689
8690         * real.c (edivm): Cast constant value to (unsigned long) in
8691         expression compared against an unsigned value.
8692
8693         * stmt.c (expand_return): Cast BITS_PER_WORD to (unsigned) when
8694         comparing against one.
8695         (expand_end_case): Cast CASE_VALUES_THRESHOLD to (unsigned int)
8696         when comparing against one.
8697
8698         * stor-layout.c (mode_for_size): Cast MAX_FIXED_MODE_SIZE to
8699         (unsigned int) when comparing against one.  Likewise for
8700         GET_MODE_BITSIZE.
8701         (smallest_mode_for_size): Likewise.
8702         (save_storage_status): Mark parameter `p' with ATTRIBUTE_UNUSED.
8703         (restore_storage_status): Likewise.
8704         
8705         * toplev.c (debug_args): Add missing initializer.
8706         (f_options): Spelling correction.  Add missing initializers.
8707         (documented_lang_options): Likewise.
8708         (debug_end_source_file): Mark parameter `lineno' with
8709         ATTRIBUTE_UNUSED.
8710
8711         * tree.c (valid_machine_attribute): Mark parameters `attr_args',
8712         `decl' and `type' with ATTRIBUTE_UNUSED.
8713
8714         * varasm.c (decode_reg_name): Cast `sizeof' expression to (int)
8715         when comparing against one.
8716         (assemble_variable): Mark parameter `top_level' with
8717         ATTRIBUTE_UNUSED.
8718         (assemble_external_libcall): Mark parameter `fun' with
8719         ATTRIBUTE_UNUSED.
8720         (output_constant_pool): Mark parameters `fnname' and `fndecl' with
8721         ATTRIBUTE_UNUSED.
8722
8723 Tue Oct 13 12:51:04 1998  Nick Clifton  <nickc@cygnus.com>
8724
8725         * config/v850/lib1funcs.asm (_udivsi3): Add .type declaration.
8726         Replace use of r5 with use of r19.
8727
8728         * config/v850/v850.h (LINK_POINTER_REGNUM): Define.
8729
8730         * config/v850/v850.c (compute_register_save_size): Allow for the
8731         fact that helper functions save all registers, not just those used
8732         by the function.
8733         
8734         Replace constant 31 with macro LINK_POINTER_REGNUM.
8735
8736         * config/v850/v850.md: Use 'indirect_operand' rather than
8737         'memory_operand' for bit test/set/clear patterns.
8738
8739 Tue Oct 13 11:49:14 1998  Jason Merrill  <jason@yorick.cygnus.com>
8740
8741         * mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS): Call ASM_GLOBALIZE_LABEL.
8742         * varasm.c (assemble_start_function et al): Don't call
8743         ASM_GLOBALIZE_LABEL for weak symbols.
8744
8745 Tue Oct 13 11:37:45 1998  Nick Clifton  <nickc@cygnus.com>
8746
8747         * cse.c (equiv_constant): Check for NULL return from
8748         gen_lowpart_if_possible().
8749
8750 Tue Oct 13 11:24:51 1998  Jeffrey A Law  (law@cygnus.com)
8751
8752         * mn10200.md (addsi3, subsi3, negsi2): Only allow register operands.
8753
8754         * collect2.c (main): Pass -EL/-EB through to the compiler.
8755
8756 1998-10-12 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8757         
8758         * expr.c (push_block): Handle targets where the stack grows
8759         to higher addresses, but args grow to lower addresses and
8760         ACCUMULATE_OUTGOING_ARGS is not defined.
8761
8762 Tue Oct 13 08:00:52 1998  Catherine Moore  <clm@cygnus.com>
8763
8764         * config/v850/v850.c (print_operand):  Extend meaning
8765         of 'c' operands to support .vtinherit.
8766
8767 Tue Oct 13 21:38:35 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8768
8769         * config/c4x/c4x.c:  Convert to gen_rtx_FOO.
8770         Added ATTRIBUTE_UNUSED to unused function arguments.
8771         (rc_reg_operand): New predicate.
8772         (c4x_rptb_insert): New function.
8773         (c4x_rptb_nop_p): Recognize modified rptb_top pattern.
8774         (c4x_optimization_options): New function.
8775
8776         * config/c4x/c4x.md: Convert to gen_rtx_FOO.
8777          (decrement_and_branch_on_count): New pattern.
8778          (rptb_top): Modified pattern to work with BCT optimization.
8779         
8780         * config/c4x/c4x.h (RC_REG): New register class.
8781         (rc_reg_operand): Define prototype.
8782         (IS_RC_REG): New macro.
8783         (IS_RC_OR_PSEUDO_REG): New macro.
8784         (IS_RC_OR_PSEUDO_REGNO): New macro.
8785         (OPTIMIZATION_OPTIONS): Define.
8786
8787 Mon Oct 12 19:57:34 1998  Jason Merrill  <jason@yorick.cygnus.com>
8788
8789         * collect2.c (extract_init_priority): No priority is 65535.
8790
8791 Mon Oct 12 12:10:37 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
8792         
8793         * Makefile.in (build_tooldir): new variable, same as old
8794         $(tooldir), but without depending on $(libdir)/$(unlibsubdir)
8795         (GCC_FOR_TARGET): add -B$(build_tooldir)/bin/
8796         (bootstrap, bootstrap2, bootstrap3, bootstrap4): ditto
8797         
8798         * configure.in (gxx_include_dir): set default based on unlibsubdir
8799         * Makefile.in (tooldir): ditto
8800         (cccp.o, cpplib.o): use unlibsubdir implicitly through
8801         gxx_include_dir, includedir and tooldir
8802         (protoize.o, unprotoize.o): ditto
8803         
8804 Mon Oct 12 10:50:44 1998  Nick Clifton  <nickc@cygnus.com>
8805
8806         * config/arm/arm.md: Replace (reg 24) with (reg:CC 24).
8807
8808         * config/arm/thumb.c (thumb_override_options): Add warning about
8809         PIC code not being supported just yet.
8810
8811 Sun Oct 11 16:49:15 EDT 1998  John Wehle  (john@feith.com)
8812
8813         * flow.c: Update comment.
8814         (notice_stack_pointer_modification): New static function.
8815         (record_volatile_insns): Use it.
8816         (mark_regs_live_at_end): Mark the stack pointer as alive
8817         at the end of the function if current_function_sp_is_unchanging
8818         is set.
8819         (life_analysis_1): Set current_function_sp_is_unchanging.
8820         * function.c: Define it.
8821         (init_function_start): Initialize it.
8822         * output.h: Declare it.
8823         * reorg.c (fill_simple_delay_slots, dbr_schedule): Mark
8824         the stack pointer as alive at the end of the function if
8825         current_function_sp_is_unchanging is set.
8826         * i386.c (ix86_epilogue): Optimize the restoring
8827         of the stack pointer.
8828
8829 Mon Oct 12 01:22:53 PDT 1998 Jeff Law  (law@cygnus.com)
8830
8831         * version.c: Bump for snapshot.
8832
8833 Sun Oct 11 23:04:30 1998  Robert Lipe  <robertl@dgii.com>
8834
8835         * c-pragma.c (handle_pragma_token): If passed a token instead
8836         of a tree, use that as the pack value.
8837
8838 Sun Oct 11 14:21:14 1998  Mark Mitchell  <mark@markmitchell.com>
8839
8840         * flow.c (find_basic_blocks_1): Fix prototype.
8841
8842 Sun Oct 11 05:03:41 1998  Ken Raeburn  <raeburn@cygnus.com>
8843
8844         * tree.h (DECL_NO_CHECK_MEMORY_USAGE): New macros.
8845         (struct tree_decl): New fields no_check_memory_usage.
8846         * c-common.c (enum attrs): Add A_NO_CHECK_MEMORY_USAGE.
8847         (init_attributes): Register it as a new attribute.
8848         (decl_attributes): Set flags on functions given that attribute.
8849         * c-decl.c (duplicate_decls): Merge new attribute.
8850         * expr.h (current_function_check_memory_usage): Declare new var.
8851         * calls.c, expr.c, function.c, stmt.c, alpha.c, clipper.c, m88k.c,
8852         pa.c, sparc.c: Replace uses of flag_check_memory_usage with
8853         current_function_check_memory_usage.
8854         * function.h: Add field to struct function.
8855         * function.c (current_function_check_memory_usage): Define it.
8856         (push_function_context_to, pop_function_context_from): Save and
8857         restore it.
8858         (expand_function_start): Set it, based on global flag and function
8859         attribute.
8860
8861         * expr.c (expand_expr, case VAR_DECL): In memory-checking code, do
8862         check non-automatic variables, to permit detection of writes to
8863         read-only locations in embedded systems without memory management.
8864         * calls.c (store_one_arg): Use ARGS_SIZE_RTX to get size of argument
8865         when emitting chkr_set_right_libfunc call, even if the argument is
8866         BLKmode or variable-sized; don't abort.
8867
8868         * optabs.c (init_optabs): Create Checker and __cyg_profile_*
8869         symbols in Pmode, not VOIDmode.
8870
8871 Sun Oct 11 01:03:05 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>
8872
8873         * cppexp.c: When forcing unsigned comparisons, cast both sides
8874         of the operation.
8875
8876         * cpphash.h: Move static declaration of hashtab[]...
8877         * cpphash.c: ...here.
8878
8879         * cpplib.c: Cast difference of two pointers to size_t before
8880         comparing it to size_t.  Cast signed to unsigned
8881         before comparing to size_t. (FIXME: struct argdata should use
8882         unsigned buffer sizes.)
8883         * cpplib.h (struct cpp_reader): Declare token_buffer_size as
8884         unsigned int. (CPP_WRITTEN): Cast return value to size_t.
8885         (CPP_RESERVE): Parenthesize N for evaluation order, cast to
8886         size_t before comparison.
8887
8888 Sun Oct 11 00:15:29 1998  Jeffrey A Law  (law@cygnus.com)
8889
8890         * flow.c (find_basic_blocks): Delete "live_reachable_p" argument.
8891         (find_basic_blocks_1): Similarly.
8892         * output.h (find_basic_blocks): Fix prototype.
8893         * gcse.c, toplev.c: Don't pass "live_reachable_p" argument to
8894         find_basic_blocks anymore.
8895
8896 Sat Oct 10 22:00:34 1998  Richard Henderson  <rth@cygnus.com>
8897
8898         * basic-block.h (EXECUTE_IF_SET_IN_SBITMAP): New macro.
8899         (sbitmap_free, sbitmap_vector_free): New macros.
8900         * output.h (rtl_dump_file): Declare.
8901
8902 Sat Oct 10 17:01:42 1998  Jeffrey A Law  (law@cygnus.com)
8903
8904         * regmove.c (optimize_reg_copy_3): Honor TRULY_NOOP_TRUNCATION.
8905
8906 Fri Oct  9 22:08:05 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8907
8908         * fp-bit.c (SFtype): Don't implicitly use int in declaration.
8909         (DFtype): Likewise.
8910         (_fpdiv_parts): Remove unused parameter `tmp', all callers changed.
8911         (divide): Remove unused variable `tmp'.
8912         (si_to_float): Cast numeric constant to (SItype) before comparing
8913         it against one.
8914
8915 Fri Oct  9 16:03:19 1998  Graham  <grahams@rcp.co.uk>
8916
8917         * flow.c (print_rtl_with_bb): Changed type of in_bb_p to match use.
8918         * gcc.c (add_preprocessor_option): Correct typo when allocating
8919         memory, sizeof() argument had one too many `*'.
8920         (add_assembler_option): Likewise.
8921         (add_linker_option): Likewise.
8922         * gcov.c (output_data): Likewise.
8923         * local-alloc.c (memref_used_between_p): Likewise.
8924         (update_equiv_regs): Likewise.
8925         * loop.c (strength_reduce): Likewise.
8926         * reg-stack.c (record_asm_reg_life): Likewise.
8927         (subst_asm_stack_reg): Likewise.
8928         * reorg.c (dbr_schedule): Likewise.
8929
8930 Fri Oct  9 15:57:51 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
8931
8932         * flow.c (life_analysis_1): Break out some functions.
8933         (find_basic_blocks_1): Likewise.  Also move some variables out and
8934         make them static.
8935         Rename NONLOCAL_LABEL_LIST arg to NONLOCAL_LABELS and initialize
8936         new static var nonlocal_label_list with it.
8937         (active_eh_region, nested_eh_region, label_value_list,
8938         nonlocal_label_list): New static variables.
8939         (make_edges, delete_unreachable_blocks, delete_block): New static
8940         functions, broken out of find_basic_blocks_1.
8941         (record_volatile_insns, mark_regs_live_at_end, set_noop_p,
8942         noop_move_p): New static functions, broken out of life_analysis_1.
8943
8944 Fri Oct  9 15:49:29 1998  Richard Henderson  <rth@cygnus.com>
8945
8946         * expmed.c (store_bit_field): Pun non-integral str_rtx modes.
8947         Take extra care for op0 now possibly being a subreg.
8948         (extract_bit_field): Likewise.
8949         * function.c (purge_addressof_1): Revert Oct 4 change.  Drop
8950         the reg to memory if there is no equal sized integral mode.
8951         * stor-layout.c (int_mode_for_mode): New function.
8952         * machmode.h: Prototype it.
8953
8954 Fri Oct  9 14:26:44 1998  Jeffrey A Law  (law@cygnus.com)
8955
8956         * global.c (build_insn_chain): Verify no real insns exist past the
8957         end of the last basic block, then exit the loop.
8958
8959 Fri Oct  9 11:44:47 1998  David Edelsohn  <edelsohn@gnu.org>
8960
8961         * loop.c (insert_bct): Ensure loop_iteration_var non-zero before use.
8962
8963 Thu Oct  8 21:59:47 1998  Dave Brolley  <brolley@cygnus.com>
8964
8965         * emit-rtl.c (init_emit_once): Call INIT_EXPANDERS.
8966
8967 Thu Oct  8 22:03:45 1998  David Edelsohn  <edelsohn@gnu.org>
8968
8969         * rs6000.h (RTX_COSTS): Add PROCESSOR_PPC604e cases.
8970
8971 Thu Oct  8 17:00:18 1998  Richard Henderson  <rth@cygnus.com>
8972
8973         * flow.c (find_basic_blocks): Correctly determine when a call
8974         is within an exception region.
8975
8976 Thu Oct  8 17:15:04 1998  Jeffrey A Law  (law@cygnus.com)
8977
8978         * toplev.c (output_file_directive): Use DIR_SEPARATOR, not '/'.
8979
8980         * cpplib.h: Protect from multiple inclusions.
8981         * cpplib.c: Fix minor formatting problems.
8982
8983         * i386/xm-cygwin32.h: Only define POSIX if it is not already defined.
8984
8985         * jump.c (jump_optimize): Revert accidental patch.
8986
8987         * Makefile.in (cpplib.o): Use unlibsubdir.
8988
8989 Thu Oct  8 12:50:47 1998  Jim Wilson  <wilson@cygnus.com>
8990
8991         * loop.c (get_condition): Allow combine when either compare is
8992         VOIDmode.
8993
8994 Thu Oct 8 11:31:01 PDT 1998 Jeff Law  (law@cygnus.com)
8995
8996         * version.c: Bump for snapshot.
8997
8998 Thu Oct  8 12:21:14 1998  Richard Frith-Macdonald <richard@brainstorm.co.uk>
8999
9000         * c-lex.c (remember_protocol_qualifiers): Handle RID_BYREF.
9001         (init_lex): Initialize ridpointers[RID_BYREF].
9002         * c-lex.h (enum rid): Add RID_BYREF.
9003         * c-parse.gperf: Add RID_BYREF as a type qualifier.
9004         * objc/objc-act.c (is_objc_type_qualifiers): Handle RID_BYREF.
9005         (encode_type_qualifiers): Similarly
9006         * c-gperf.h: Rebuilt.
9007
9008 Thu Oct  8 05:56:00 1998  Jeffrey A Law  (law@cygnus.com)
9009
9010         * c-common.c (type_for_mode): Only return TItype nodes when
9011         HOST_BITS_PER_WIDE_INT is >= 64 bits.
9012         * c-decl.c (intTI_type_node, unsigned_intTI_type_node): Only declare
9013         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
9014         (init_decl_processing): Only create TItype nodes when
9015         HOST_BITS_PER_WIDE_INT is >= 64 bits.
9016         * c-tree.h (intTI_type_node, unsigned_intTI_type_node): Only declare
9017         when HOST_BITS_PER_WIDE_INT is >= 64 bits.
9018
9019 Thu Oct  8 05:05:34 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9020
9021         * stmt.c (n_occurrences): New static function.
9022         (expand_asm_operands): Verify that all constrains match in the
9023         number of alternatives.
9024         Verify that '+' or '=' are at the beginning of an output constraint.
9025         Don't allow '&' for input operands.
9026         Verify that '%' isn't written for the last operand.
9027         * reload.c (find_reloads): Abort if an asm is found with invalid
9028         constraints; all possible problems ought to be checked for earlier.
9029
9030 Thu Oct  8 04:26:20 1998  Michael Hayes <m.hayes@elec.canterbury.ac.nz>
9031
9032         * flags.h (flag_branch_on_count_reg): Always declare 
9033         * toplev.c (flag_branch_on_count_reg): Likewise.
9034         * toplev.c: Fix typos.
9035
9036         * real.c (c4xtoe): Remove unused variables.  Add some missing parens.
9037         (toc4x): Similarly.
9038
9039 Thu Oct  8 01:25:22 1998  Richard Henderson  <rth@cygnus.com>
9040
9041         * flow.c (find_basic_blocks): Calc upper bound for extra nops in
9042         max_uids_for_flow.
9043         (find_basic_blocks_1): Add a nop to the end of a basic block when
9044         a trailing call insn does not have abnormal control flow.
9045         * gcse.c (pre_transpout): New variable.
9046         (alloc_pre_mem, free_pre_mem, dump_pre_data): Bookkeeping for it.
9047         (compute_pre_transpout): Calculate it.
9048         (compute_pre_ppinout): Use it to eliminate impossible placements
9049         due to abnormal control flow through calls.
9050         (compute_pre_data): Call compute_pre_transpout.
9051
9052 Wed Oct  7 21:40:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9053
9054         * config/sparc/sol2-sld-64.h (ASM_CPU_SPEC): Fix typo.
9055
9056 Wed Oct  7 21:19:46 1998  Ken Raeburn  <raeburn@cygnus.com>
9057
9058         * config/mips/mips.md (tablejump_internal3, tablejump_internal4
9059         and matching define_insns): Tack on a `use' of the table label, so
9060         flow analysis will recognize a tablejump.
9061
9062 Wed Oct  7 17:33:39 1998  Richard Henderson  <rth@cygnus.com>
9063
9064         * gcse.c (pre_insert_insn): Tweek to notice that calls do not
9065         always end basic blocks for abnormal edge reasons.
9066
9067 Wed Oct  7 14:40:43 1998  Nick Clifton  <nickc@cygnus.com>
9068
9069         * config/i386/i386.h: Remove definition of
9070         HANDLE_PRAGMA_PACK_PUSH_POP.
9071         
9072         * config/i386/go32.h: Add definition of
9073         HANDLE_PRAGMA_PACK_PUSH_POP.
9074         
9075         * config/i386/win32.h: Add definition of
9076         HANDLE_PRAGMA_PACK_PUSH_POP.
9077         
9078         * config/i386/cygwin32.h: Add definition of
9079         HANDLE_PRAGMA_PACK_PUSH_POP.
9080
9081         * c-pragma.c (insert_pack_attributes): Do not insert
9082         attributes unless #pragma pack(push,<n>) is in effect.
9083
9084 Wed Oct  7 12:10:46 1998  Jim Wilson  <wilson@cygnus.com>
9085
9086         * expr.c (emit_group_store): Handle a PARALLEL destination.
9087
9088 Wed Oct  7 10:07:29 1998  Richard Henderson  <rth@cygnus.com>
9089
9090         * gcse.c (pre_insert_insn): When a call ends a bb, insert
9091         the new insns before the argument regs are loaded.
9092
9093 Wed Oct  7 12:55:26 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9094
9095         * Makefile.in (c-gperf.h): Add -L KR-C -F ', 0, 0' flags to gperf.
9096         (c-parse.gperf): Update comments describing invocation flags.
9097         (c-gperf.h): Regenerate using gperf 2.7.1 (19981006 egcs).
9098
9099 1998-10-07  Manfred Hollstein  <manfred@s-direktnet.de>
9100
9101         * reload1.c (reload): Call free before clobbering the memory
9102         locations or constants pointers.
9103
9104 Wed Oct  7 02:05:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9105
9106         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Rework
9107         for efficiency by checking whether we need to modify the current
9108         stack permission at all.
9109         (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Define.
9110         * config/sparc/sparc.c (sparc_initialize_trampoline): Emit
9111         __enable_execute_stack libcall here too if
9112         TRANSFER_FROM_TRAMPOLINE is defined.
9113         * config/sparc/sparc.h: Set TARGET_ARCH32 to a constant if
9114         IN_LIBGCC2.
9115
9116 Wed Oct  7 02:27:52 1998  Jeffrey A Law  (law@cygnus.com)
9117
9118         * Makefile.in (DRIVER_DEFINES): Remove last change.
9119         
9120 Wed Oct  7 01:08:43 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9121
9122         * jump.c (duplicate_loop_exit_test): Strip REG_WAS_0 notes off all
9123         insns we're going to copy.
9124         * regclass.c (reg_scan_mark_refs): Don't test X for NULL_RTX.
9125
9126         * loop.c (count_one_set): Add prototype.
9127
9128         * caller-save.c (restore_referenced_regs): Lose mode argument.
9129         (insert_save): Lose mode argument.
9130         (insert_restore): Lose mode argument.
9131         (insert_one_insn): Lose mode argument.
9132         (save_call_clobbered_regs): Lose mode argument.
9133         (setup_save_areas): Take no argument and return void.  All callers
9134         changed.
9135         Don't verify validity of memory addresses.
9136         * reload.h (setup_save_ares): Adjust prototype.
9137         (save_call_clobbered_regs): Likewise.
9138         * reload1.c (delete_caller_save_insns): New function.
9139         (caller_save_spill_class): Delete variable.
9140         (caller_save_group_size): Delete variable.
9141         (reload): Call setup_save_areas and save_call_clobbered_regs
9142         in the main loop, before calling calculate_needs_all_insns.
9143         Don't call save_call_clobbered_regs after the loop.
9144         Call delete_caller_save_insns at the end of an iteration if
9145         something changed.
9146         Delete code to manage caller_save_spill_class.
9147         Emit the final note before setting reload_first_uid.
9148         Simplify test that determines whether reload_as_needed gets run.
9149         (calculate_needs): Delete code to manage caller_save_spill_class.
9150
9151 Tue Oct  6 15:42:27 1998  Richard Henderson  <rth@cygnus.com>
9152
9153         * collect2.c (main): Initialize ld_file_name.
9154
9155 Tue Oct  6 15:45:15 1998  Catherine Moore  <clm@cygnus.com>
9156  
9157         * config/sparc/sysv4.h (ASM_OUTPUT_SECTION_NAME):  Don't
9158         check for flag_function_sections.
9159
9160 Tue Oct  6 20:02:31 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9161
9162         * cse.c (insert_regs): Fix bug in Sep 24 change.
9163
9164 Tue Oct  6 17:00:42 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9165
9166         * flags.h (flag_dump_unnumbered): Declare.
9167         * toplev.c (flag_dump_unnumbered): Don't declare.
9168         * print-rtl.c (flags.h): Include.
9169         (print_rtl_single): Add return value.
9170         * rtl.h (print_rtl_single): Update declaration.
9171         * flow.c (flag_dump_unnumbered): Don't declare.
9172         (print_rtl_with_bb): Use return value of print_rtl_single.
9173
9174 Tue Oct  6 01:36:00 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9175
9176         * loop.c (count_one_set): New static function, broken out of
9177         count_loop_regs_set
9178         (count_loop_regs_set): Call it.
9179         * global.c (mark_reg_store): Handle clobbers here by not calling
9180         set_preference.
9181         (mark_reg_clobber): Just call mark_reg_store after ensuring SETTER
9182         is in fact a clobber.
9183         * integrate.c (process_reg_param): New function, broken out of
9184         expand_inline_function.
9185         (expand_inline_function): Call it.
9186
9187
9188         * i386.md (addsidi3_1): Delete unused variable temp.
9189         (addsidi3_2): Likewise.
9190         (clstrstrsi): Delete unused variable addr1.
9191
9192         * rtl.h: Don't declare any functions also declared in recog.h.
9193
9194         * Makefile.in (stupid.o): Update dependencies.
9195         (global.o): Likewise.
9196
9197         * global.c: Include reload.h
9198         (reg_becomes_live): New function.
9199         (reg_dies): New function.
9200         (build_insn_chain): New function.
9201         (global_alloc): Call build_insn_chain before calling reload.
9202
9203         * reload.h (struct needs): New structure definition.
9204         (struct insn_chain): Likewise.
9205         (reload_insn_chain): Declare variable.
9206         (new_insn_chain): Declare function.
9207
9208
9209         * reload1.c (reload_startobj): New variable.
9210         (reload_insn_chain): New variable.
9211         (unused_insn_chains): New variable.
9212         (new_insn_chain): New function.
9213         (init_reload): Initialize reload_startobj, not reload_firstobj.
9214         (reload): Initialize reload_firstobj.
9215         Before returning, free everything on the reload_obstack.
9216
9217         * stupid.c: Include insn-config.h, reload.h and basic-block.h.
9218         (reg_where_dead_chain, reg_where_born_exact, reg_where_born_clobber,
9219         current_chain): New variables.
9220         (reg_where_born): Delete variable.
9221         (REG_WHERE_BORN): New macro.
9222         (find_clobbered_regs): New function.
9223         (stupid_life_analysis): Don't allocate/free reg_where_born.
9224         Allocate and free reg_where_born_exact, reg_where_born_clobber,
9225         reg_where_dead_chain.
9226         Use REG_WHERE_BORN instead of reg_where_born.
9227         While processing the insns, build the reload_insn_chain with
9228         information about register lifetimes.
9229         (stupid_reg_compare): Use REG_WHERE_BORN instead of reg_where_born.
9230         (stupid_mark_refs): Replace arg INSN with arg CHAIN.  All callers
9231         changed.
9232         Compute and information about birth and death of pseudo registers in
9233         reg_where_dead_chain, reg_where_born_exact and reg_where_born_clobber.
9234         Delete code to set elements of reg_where_born.  
9235
9236 Mon Oct  5 22:34:30 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
9237
9238         * tree.def (GOTO_EXPR): Modified documentation.
9239         * expr.c (expand_expr): Expand GOTO_EXPR into a goto or a computed
9240         goto.
9241
9242 Mon Oct  5 22:43:36 1998  David Edelsohn  <edelsohn@gnu.org>
9243
9244         * unroll.c (loop_iteration_var, loop_initial_value, loop_increment
9245         loop_final_value, loop_comparison_code): No longer static.
9246         (unroll_loop): Delete loop_start_value update.
9247         * loop.h (loop_iteration_var, loop_initial_value, loop_increment,
9248         loop_final_value, loop_comparison_code): Extern.
9249         (loop_start_value): Delete extern.
9250         * loop.c (loop_can_insert_bct, loop_increment, loop_start_value,
9251         loop_comparison_value, loop_comparison_code): Delete.
9252         (loop_optimize): Remove initialization for deleted variables.
9253         (strength_reduce): Delete analyze_loop_iterations call.  Only call
9254         insert_bct if flag_branch_count_on_reg set.
9255         (analyze_loop_iterations): Delete.
9256         (insert_bct): Remove iteration count calculation.  Move checks for
9257         viable BCT optimization to here.  Obtain iteration count from
9258         loop_iterations and correct for unrolling.  Check for enough
9259         iteration to be beneficial.  Comment out runtime iteration count
9260         case.
9261         (insert_bct): Print iteration count in dump file.  Remove
9262         loop_var_mode and use word_mode directly.
9263
9264         * rs6000.h (processor_type): Add PROCESSOR_PPC604e.
9265         * rs6000.c (rs6000_override_options): Use it.
9266         (optimization_options): Enable use of flag_branch_on_count_reg.
9267         * rs6000.md (define_function_unit): Describe 604e.
9268
9269 1998-10-05 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9270
9271         * loop.c (move_movables): Corrected threshold calculation for
9272         moved_once registers.
9273
9274 Mon Oct  5 21:18:45 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9275
9276         * loop.c (combine_givs_p): Fix test for identical givs.
9277
9278 Mon Oct  5 10:11:28 1998  Nick Clifton  <nickc@cygnus.com>
9279
9280         * dwarf2out.c (gen_subprogram_die): If errorcount nonzero, don't
9281         call abort if the function is already defined.
9282
9283 Mon Oct  5 10:02:36 1998  Jeffrey A Law  (law@cygnus.com)
9284
9285         * combine.c (simplify_rtx): Do not replace TRUNCATE with a SUBREG if
9286         truncation is not a no-op.
9287
9288 Mon Oct 5 09:02:04 PDT 1998 Jeff Law  (law@cygnus.com)
9289
9290         * version.c: Bump for snapshot.
9291
9292 Mon Oct 5 08:19:55 PDT 1998 Jeff Law  (law@cygnus.com)
9293
9294         * version.c: Bump for snapshot.
9295
9296 Mon Oct  5 01:07:23 1998  Torbjorn Granlund  <tege@matematik.su.se>
9297
9298         * expmed.c (expand_divmod): Don't widen for computing remainder
9299         if we seem to have a divmod pattern for needed mode.
9300
9301 Mon Oct  5 01:01:42 1998  Zack Weinberg  <zack@rabi.phys.columbia.edu>  
9302
9303         * cpplib.c (macroexpand): Correct off-by-one error in handling
9304         of escapes.
9305
9306 Sun Oct  4 23:58:30 1998  Richard Henderson  <rth@cygnus.com>
9307
9308         * combine.c (expand_field_assignment): Don't do bitwise operations
9309         on MODE_FLOAT; pun to MODE_INT if possible.
9310
9311 Sun Oct  4 18:33:24 1998  Jason Merrill  <jason@yorick.cygnus.com>
9312                           scott snyder  <snyder@d0sgif.fnal.gov>
9313
9314         * tlink.c (scan_linker_output): Recognize errors from irix 6.2
9315         linker.  Recognize mangled names in quotes.
9316
9317 Sun Oct  4 02:58:20 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9318
9319         * config/sparc/sparc.md (ashldi3+1): Name it ashldi3_sp64.
9320         (ashlsi3_const1, ashldi3_const1): New combiner patterns.
9321         (ashrsi3_extend, ashrsi3_extend2): New combiner patterns.
9322         (lshrsi3_extend, lshrsi3_extend2): Ditto.
9323
9324 Sun Oct  4 00:23:00 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9325
9326         * function.c (purge_addressof_1): If trying to take a sub-word
9327         integral piece of a floating point mode, put it on the stack.
9328
9329 Sat Oct  3 19:01:03 1998  Richard Henderson  <rth@cygnus.com>
9330
9331         * alpha/linux.h (CPP_PREDEFINES): Define __alpha__ for imake.
9332
9333 Sat Oct  3 14:42:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
9334
9335         * PROJECTS: Remove template friends.
9336
9337         * collect2.c (sort_ids): Remove unused variable.
9338
9339         * tm.texi (MATH_LIBRARY): Document.
9340         (NEED_MATH_LIBRARY): Remove.
9341
9342         * varasm.c (assemble_start_function, assemble_variable, weak_finish,
9343         assemble_alias): Do ASM_GLOBALIZE_LABEL for weak symbols, too.
9344
9345 Sat Oct  3 16:14:44 1998  John Carr  <jfc@mit.edu>
9346
9347         * dwarf2out.c (expand_builtin_dwarf_reg_size):  Initialize
9348         last_end to 0x7fffffff.
9349
9350 Fri Oct  2 19:14:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9351
9352         * function.c (purge_addressof_1): Do not perform endianness
9353         corrections on bitpos, who we call will do it for us.
9354
9355 Fri Oct  2 11:52:35 1998  Jeffrey A Law  (law@cygnus.com)
9356
9357         * h8300.c (WORD_REG_USED): Fix typo.
9358         (initial_offset): Use WORD_REG_USED.
9359
9360         * h8300.c (handle_pragma): Fix typo.
9361
9362 Fri Oct  2 10:51:35 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9363
9364         * caller-save.c (insert_save_restore): Break this function up
9365         into new functions insert_restore, insert_save and insert_one_insn.
9366         All callers changed.
9367         (insert_restore): New function, mostly broken out of
9368         insert_save_restore.
9369         (insert_save): Likewise.
9370         (insert_one_insn): Likewise.
9371         (restore_referenced_regs): New argument BLOCK.  All callers changed.
9372         (save_call_clobbered_regs): Don't keep track of basic block boundaries
9373         in this function, do it in insert_one_insn instead.
9374
9375         * reload1.c (reload): Break out some more pieces into separate
9376         functions.
9377         (dump_needs): New function, broken out of reload.
9378         (set_initial_elim_offsets): Likewise.
9379         (init_elim_table): Likewise.
9380         (update_eliminables): Likewise.
9381
9382         * global.c (global_alloc): Delete code to manage the scratch_list.
9383         * local-alloc.c (qty_scratch_rtx): Delete.
9384         (scratch_block): Delete.
9385         (scratch_list): Delete.
9386         (scratch_list_length): Delete.
9387         (scratch_index): Delete.
9388         (alloc_qty_for_scratch): Delete.
9389         (local-alloc): Update initialization of max_qty.
9390         Delete code to manage the scratch list.
9391         Delete code to allocate/initialize qty_scratch_rtx.
9392         (block_alloc): Don't allocate quantities for scratches.
9393         Delete code to manage the scratch list.
9394         * regs.h (scratch_list): Delete declaration.
9395         (scratch_block): Delete declaration.
9396         (scratch_list_length): Delete declaration.
9397         * reload1.c (reload): Delete code to manage the scratch list.
9398         (spill_hard_reg): Likewise.
9399         (mark_scratch_live): Delete.
9400
9401         * recog.c (alter_subreg): Delete declaration.
9402
9403 1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
9404
9405         * Makefile.in (cccp.o): Fix typo in last patch.
9406
9407 Fri Oct  2 16:13:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9408
9409         * t-sh (LIB1ASMFUNCS): Add _set_fpscr .
9410         * config/sh/lib1funcs.asm (___set_fpscr): Add.
9411
9412 Fri Oct  2 02:01:59 1998  Jeffrey A Law  (law@cygnus.com)
9413
9414         * regclass.c (reg_scan_mark_refs): Return immediately if passed a
9415         NULL_RTX as an argument.
9416
9417         * Makefile.in (unlibsubdir): Define.
9418         (DRIVER_DEFINES): Use unlibsubdir.
9419         (cccp.o, cpplib.o, protoize.o, unprotoize.o): Similarly.
9420         (stmp-fixinc): Similarly.
9421
9422 Thu Oct  1 19:58:30 1998  Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
9423
9424         * regmove.c (regmove_optimize): Add variable old_max_uid.
9425         At the end of the function, update basic_block_end.
9426
9427 Thu Oct  1 17:58:25 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9428
9429         * dwarf2out.c (expand_builtin_dwarf_reg_size): Use
9430         FIRST_PSEUDO_REGISTER as upper bound for last_end, not an
9431         arbitrary constant.
9432
9433 Thu Oct  1 17:57:14 1998  Nick Clifton  <nickc@cygnus.com>
9434
9435         * config/arm/arm.c: Improve interworking support.
9436
9437 Thu Oct  1 18:43:35 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9438
9439         * reload1.c (choose_reload_regs): Fix test if reload_reg_rtx[r] was
9440         copied from reload_out[r] .
9441
9442 Thu Oct  1 19:20:09 1998  John Carr  <jfc@mit.edu>
9443
9444         * dwarf2out.c (expand_builtin_dwarf_reg_size): Fix to work
9445         with more than three size ranges.
9446
9447         * flow.c (sbitmap_copy): Use bcopy to copy bitmap.
9448
9449         * rtl.c (mode_name): Add a null string at the end of the array.
9450         (mode_wider_mode): Change type to unsigned char.
9451         (mode_mask_array): New variable.
9452         (init_rtl): Update for mode_wider_mode type change.
9453
9454         * rtl.h (mode_wider_mode): Change type to unsigned char.
9455         (mode_mask_array): Declare.
9456         (GET_MODE_MASK): Use mode_mask_array.
9457
9458 Thu Oct  1 15:56:01 1998  Gavin Romig-Koch  <gavin@cygnus.com>
9459
9460         * calls.c (expand_call) : Encapsulate code into 
9461         copy_blkmode_from_reg.
9462         * expr.c (copy_blkmode_from_reg): New function.
9463         * expr.h (copy_blkmode_from_reg): New function.
9464         * integrate.c (function_cannot_inline_p): We can inline
9465         these now.
9466         (expand_inline_function): Use copy_blkmode_from_reg
9467         if needed.  Avoid creating BLKmode REGs.
9468         (copy_rtx_and_substitute): Don't try to SUBREG a BLKmode
9469         object.
9470
9471 Thu Oct  1 10:42:27 1998  Nick Clifton  <nickc@cygnus.com>
9472
9473         * config/v850/v850.c: Add function prototypes.
9474         Add support for v850 special data areas.
9475
9476         * config/v850/v850.h: Add support for v850 special data areas.
9477         
9478         * c-pragma.c: Add support for HANDLE_PRAGMA_PACK and
9479         HANDLE_PRAGMA_PACK_PUSH_POP.
9480         (push_alignment): New function: Cache an alignment requested
9481         by a #pragma pack(push,<n>).
9482         (pop_alignment): New function: Pop an alignment from the
9483         alignment stack.
9484         (insert_pack_attributes): New function: Generate __packed__
9485         and __aligned__ attributes for new decls whilst a #pragma pack
9486         is in effect. 
9487         (add_weak): New function: Cache a #pragma weak directive.
9488         (handle_pragma_token): Document calling conventions.  Add
9489         support for #pragma pack(push,<n>) and #pragma pack (pop).
9490
9491         * c-pragma.h: If HANDLE_SYSV_PRAGMA or HANDLE_PRAGMA_PACK_PUSH_POP
9492         are defined enable HANDLE_PRAGMA_PACK.
9493         Move 'struct weak_syms' here (from varasm.c).
9494         Add pragma states for push and pop pragmas.
9495
9496         * c-common.c (decl_attributes): Call PRAGMA_INSERT_ATTRIBUTES
9497         if it is defined.
9498
9499         * c-lex.c: Replace occurances of HANDLE_SYSV_PRAGMA with
9500         HANDLE_GENERIC_PRAGMAS.
9501         
9502         * varasm.c: Move definition of 'struct weak_syms' into
9503         c-pragma.h. 
9504         (handle_pragma_weak): Deleted.
9505
9506         * config/i386/i386.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
9507
9508         * config/winnt/win-nt.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
9509
9510         * c-decl.c (start_function): Add invocation of
9511         SET_DEFAULT_DECL_ATTRIBUTES, if defined.
9512
9513         * tm.texi: Remove description of non-existant macro
9514         SET_DEFAULT_SECTION_NAME.
9515         
9516         (HANDLE_SYSV_PRAGMA): Document.
9517         (HANDLE_PRAGMA_PACK_PUSH_POP): Document.
9518
9519 Wed Sep 30 22:27:53 1998  Robert Lipe  <robertl@dgii.com>
9520
9521         * config.sub: Recognize i[34567]86-pc-udk as new target.
9522         * configure.in: Likewise.
9523         * config/i386/t-udk: New file.
9524         * config/i386/udk.h: New file.
9525
9526 Wed Sep 30 19:33:07 1998  Jeffrey A Law  (law@cygnus.com)
9527
9528         * reorg.c (check_annul_list_true_false): Remove unused variables.
9529         (steal_delay_list_from_target): Add missing "used_annul" variable.
9530         (try_merge_delay_insns): Close out half formed comment.
9531
9532 Wed Sep 30 19:13:20 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
9533
9534         * cpplib.c (macroexpand): If arg->raw_before or
9535         arg->raw_after, remove any no-reexpansion escape at the
9536         beginning of the pasted token.  Correct handling of whitespace
9537         markers and no-reexpand markers at the end if arg->raw_after.
9538
9539         * toplev.c (documented_lang_options): Recognize -include,
9540         -imacros, -iwithprefix, -iwithprefixbefore.
9541         * cpplib.c (cpp_start_read): Process -imacros and -include
9542         switches at the same time and in command-line order, after
9543         initializing the dependency-output code.  Emit properly nested
9544         #line directives for them.  Emit a #line for the main file
9545         before processing these switches, and don't do it again
9546         afterward.
9547
9548 Wed Sep 30 18:03:22 1998  Richard Henderson  <rth@cygnus.com>
9549
9550         * function.c (purge_addressof_1): Use bitfield manipulation
9551         routines to handle mem mode < reg mode.
9552
9553 Wed Sep 30 18:43:32 1998  Herman ten Brugge <Haj.Ten.Brugge@net.HCC.nl> 
9554
9555         * reorg.c (try_merge_delay_insns): Account for resources referenced
9556         in each instruction in INSN's delay list before trying to eliminate
9557         useless instructions.  Similarly when looking at a trial insn's delay
9558         slots.
9559
9560         * reorg.c (check_annul_list_true_false): New function.
9561         (steal_delay_list_from_{target,fallthrough}): Call it and also
9562         refine tests for when we may annul if already filled a slot.
9563         (fill_slots_from_thread): Likewise.
9564         (delete_from_delay_slot): Return newly-created thread.
9565         (try_merge_delay_isns): Use its new return value.
9566
9567 Wed Sep 30 18:29:26 1998  Jeffrey A Law  (law@cygnus.com)
9568
9569         * loop.c (check_dbra_loop): Use a vanilla loop reversal if the biv is
9570         used to compute a giv or as some other non-counting use.
9571
9572 Wed Sep 30 18:19:27 1998  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9573
9574         * regs.h (HARD_REGNO_CALL_PART_CLOBBERED):  New macro.
9575         * local-alloc.c (find_free_reg): Use it.
9576         * global.c (find_reg): Likewise.
9577         * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED.
9578
9579         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
9580         * caller-save.c (init_caller_save): Use it.
9581         * tm.texi: Document HARD_REGNO_CALLER_SAVE_MODE.
9582
9583 Wed Sep 30 12:57:30 1998 Zack Weinberg  <zack@rabi.phys.columbia.edu>  
9584
9585         * configure.in: Add --enable-cpplib option which uses cpplib
9586         for cpp, but doesn't link cpplib into cc1.  Make help text
9587         capitalization consistent.
9588         * configure: Rebuilt.
9589
9590 Wed Sep 30 10:09:39 1998  Mark Mitchell  <mark@markmitchell.com>
9591
9592         * function.c (gen_mem_addressof): If the address REG is
9593         REG_USERVAR_P make the new REG be so also.
9594         * loop.c (scan_loop): Apply DeMorgan's laws and add documentation
9595         in an attempt to clarify slightly.
9596
9597 Wed Sep 30 09:57:40 1998  Jeffrey A Law  (law@cygnus.com)
9598
9599         * expr.c (expand_expr): Handle COMPONENT_REF, BIT_FIELD_REF ARRAY_REF
9600         and INDIRECT_REF in code to check MAX_INTEGER_COMPUTATION_MODE.
9601
9602 Wed Sep 30 10:13:39 1998  Catherine Moore  <clm@cygnus.com>
9603
9604         * toplev.c:  Fix last patch.
9605
9606 Tue Sep 29 20:03:18 1998  Jim Wilson  <wilson@cygnus.com>
9607
9608         * loop.c (get_condition): Fix typo in May 9 change.
9609
9610 Tue Sep 29 11:11:38 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
9611
9612         * invoke.texi (-fexceptions): Merge 2 different descriptions.
9613
9614 Mon Sep 28 22:08:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9615
9616         * toplev.c (documented_lang_options): Spelling corrections.
9617
9618 Mon Sep 28 19:41:24 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
9619
9620         * configure.in: new flags --with-ld and --with-as, equivalent
9621         to setting LD and AS environment variables.  Test whether
9622         specified arguments are GNU commands, and report them with
9623         checking messages.  Use the specified AS for configure
9624         tests too.
9625         * configure: ditto
9626         * acconfig.h: add DEFAULT_ASSEMBLER and DEFAULT_LINKER
9627         * config.in: ditto
9628         * gcc.c (find_a_file): when looking for `as' and `ld', return
9629         the DEFAULT program if it exists
9630         * collect2.c (main): use DEFAULT_LINKER if it exists
9631
9632         * gcc.c (find_a_file): the test for existence of a full
9633         pathname was reversed
9634
9635 Mon Sep 28 17:34:35 1998  Michael Meissner  <meissner@cygnus.com>
9636
9637         * rs6000.h (ASM_OUTPUT_MI_THUNK): Only define on ELF systems.
9638         * rs6000.c (output_mi_thunk): Always use a raw jump for now.
9639
9640 Mon Sep 28 14:24:03 1998  Mark Mitchell  <mark@markmitchell.com>
9641
9642         * tree.h (TYPE_BINFO): Document.
9643
9644 Mon Sep 28 12:55:49 1998   Stan Cox  <scox@cygnus.com>
9645
9646         * i386-coff.h (dbxcoff.h): Added.
9647
9648 Mon Sep 28 12:51:00 1998  Catherine Moore  <clm@cygnus.com>
9649
9650         * toplev.c:  fix bad patch around flag_data_sections.
9651
9652 Mon Sep 28 10:32:28 1998  Nick Clifton  <nickc@cygnus.com>
9653
9654         * reload1.c (reload): Use reload_address_index_reg_class and 
9655         reload_address_base_reg_class when setting
9656         caller_save_spill_class.  (Patch generated by Jim Wilson:
9657         wilson@cygnus.com).
9658
9659 Mon Sep 28 07:43:34 1998  Mark Mitchell  <mark@markmitchell.com>
9660
9661         * c-common.c (c_get_alias_set): Tighten slightly for FUNCTION_TYPEs
9662         and ARRAY_TYPEs.  Tidy up.  Improve support for type-punning. 
9663         * expr.c (store_field): Add alias_set parameter.  Set the
9664         MEM_ALIAS_SET accordingly, if the target is a MEM.
9665         (expand_assignment): Use it.
9666         (store_constructor_field): Pass 0.
9667         (expand_expr): Likewise.
9668
9669 Mon Sep 28 07:54:03 1998  Catherine Moore  <clm@cygnus.com>
9670  
9671         * flags.h:  Add flag_data_sections.
9672         * toplev.c:  Add option -fdata-sections.  Add flag_data_sections.
9673         (compile_file):  Error if flag_data_sections not supported.
9674         * varasm.c (assemble_variable):  Handle flag_data_sections.
9675         * config/svr4.h:  Modify prefixes for UNIQUE_SECTION_NAME.
9676         * config/mips/elf.h:  Likewise.
9677         * config/mips/elf64.h:  Likewise.
9678         * invoke.texi:  Describe -fdata-sections.
9679  
9680 Mon Sep 28 04:15:44 1998  Craig Burley  <burley@melange.gnu.org>
9681
9682         * invoke.texi (-ffloat-store): Clarify that this option
9683         does not affect intermediate results -- only variables.
9684
9685 Mon Sep 28 04:11:35 1998  Jeffrey A Law  (law@cygnus.com)
9686
9687         * cpp.texi: Update for Fortran usage from Craig.
9688
9689 Fri Sep 25 22:09:47 1998  David Edelsohn  <edelsohn@gnu.org>
9690
9691         * rs6000.c (function_arg_boundary): Revert accidental change on
9692         September 18.
9693
9694 Fri Sep 25 20:30:00 1998  Michael Meissner  <meissner@cygnus.com>
9695
9696         * rs6000.h (ASM_OUTPUT_MI_THUNK): Declare, call output_mi_thunk.
9697         (output_mi_thunk): Declare.
9698
9699         * rs6000.c (output_mi_thunk): Function to create thunks for MI.
9700         (output_function_profiler): Use r12 for temp, instead of r11 so
9701         that we preserve the static chain register.
9702         
9703 Fri Sep 25 14:18:33 1998  Jim Wilson  <wilson@cygnus.com>
9704
9705         * sdbout.c (sdbout_one_type): Don't look at TYPE_BINFO field of enums.
9706
9707 Fri Sep 25 19:30:19 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9708
9709         * sh.c (gen_shl_sext): Fix case 5.
9710
9711 Fri Sep 25 17:35:23 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9712
9713         * reload1.c (reload_combine): Re-add line that got accidentally lost.
9714
9715 Fri Sep 25 10:43:47 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9716
9717         * cccp.c (pedwarn_with_file_and_line): For !__STDC__ case, avoid
9718         accessing variables until they are initialized via va_arg().
9719
9720 Thu Sep 24 22:12:16 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9721
9722         * reload1.c (reload_combine): Initialize set before using.
9723
9724 Thu Sep 24 18:53:20 1998  Jason Merrill  <jason@yorick.cygnus.com>
9725
9726         * sdbout.c (sdbout_field_types): Don't emit the types of fields we
9727         won't be emitting.
9728
9729 Thu Sep 24 17:05:30 1998  Nick Clifton  <nickc@cygnus.com>
9730
9731         * config/arm/arm.md (insv): Add comment.  In CONST_INT case, and
9732         operand3 with mask before using it.  Patch provided by Jim Wilson.
9733
9734 Thu Sep 24 15:08:08 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9735
9736         * config/sparc/sparc.c (function_value): Perform the equivalent of
9737         PROMOTE_MODE for ARCH64.
9738         (eligible_for_epilogue_delay): Allow DImode operations in delay
9739         slot of a return for ARCH64.
9740
9741 Thu Sep 24 22:17:54 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9742
9743         * sh.md (sqrtsf2): Fix mode of sqrt.
9744
9745 Thu Sep 24 21:48:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9746
9747         * reload1.c (choose_reload_regs): Also try inheritance when
9748         reload_in is a stack slot of a pseudo, even if we already got a
9749         reload reg.
9750
9751 Thu Sep 24 21:22:39 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9752
9753         * reload1.c (reload_cse_regs_1): Renamed from reload_cse_regs.
9754         (reload_cse_regs): New function body: call reload_cse_regs_1,
9755         reload_combine, reload_cse_move2add.
9756         When doing expensive_optimizations, call reload_cse_regs_1 a
9757         second time after reload_cse_move2add.
9758         (reload_combine, reload_combine_note_store): New functions.
9759         (reload_combine_note_use): New function.
9760         (reload_cse_move2add, move2add_note_store): New functions.
9761
9762 Thu Sep 24 18:48:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9763
9764         * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR
9765         reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing.
9766
9767         Properly keep track of first RELOAD_FOR_X_ADDRESS also for
9768         more than 3 such reloads.
9769
9770         If there is not more than one RELOAD_FOR_X_ADDRESS, don't change
9771         RELOAD_FOR_X_ADDR_ADDR reload.
9772
9773 Thu Sep 24 17:45:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
9774
9775         * expr.c (store_constructor): When initializing a field that is smaller
9776         than a word, at the start of a word, try to widen it to a full word.
9777
9778         * cse.c (cse_insn): When we are about to change a register,
9779         remove any invalid references to it.
9780
9781         (remove_invalid_subreg_refs): New function.
9782         (mention_regs): Special treatment for SUBREGs.
9783         (insert_regs): Don't strip SUBREG for call to mention_regs.
9784         Check if reg_tick needs to be bumped up before that call.
9785         (lookup_as_function): Try to match known word_mode constants when
9786         looking for a norrower constant.
9787         (canon_hash): Special treatment for SUBREGs.
9788
9789 Thu Sep 24 01:35:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
9790
9791         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Define.
9792         * config/sparc/sparc.c (sparc64_initialize_trampoline): If that is
9793         defined, emit libcall to __enable_execute_stack.  Also fix opcodes
9794         and offsets in actual stack trampoline code so they match the
9795         commentary and actually work.
9796
9797 Thu Sep 24 01:19:02 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
9798
9799         * configure.in (sparcv9-*-solaris): Use t-sol2 and t-sol2-64 for
9800         tmake_file.
9801         (sparc64-*-linux): Use t-linux and sparc/t-linux64 for
9802         tmake_file.  Set extra_parts to needed crt objects.
9803         * configure: Rebuilt.
9804         * config/sparc/linux64.h (SPARC_BI_ARCH): Define.
9805         (TARGET_DEFAULT): Set if default is v9 or ultra.
9806         (STARTFILE_SPEC32, STARTFILE_SPEC64): New macros.
9807         (STARTFILE_SPEC): Set to those upon SPARC_BI_ARCH.
9808         (ENDFILE_SPEC32, ENDFILE_SPEC64, ENDFILE_SPEC): Likewise.
9809         (SUBTARGET_EXTRA_SPECS, LINK_ARCH32_SPEC, LINK_ARCH64_SPEC,
9810         LINK_SPEC, LINK_ARCH_SPEC): Likewise.
9811         (TARGET_VERSION): Define.
9812         (MULTILIB_DEFAULT): Define.
9813         * config/sparc/sparc.h (CPP_CPU_DEFAULT_SPEC): Rearrange so that
9814         mixed 32/64 bit compilers based upon SPARC_BI_ARCH work.
9815         (CPP_CPU64_DEFAULT_SPEC, CPP_CPU32_DEFAULT_SEC): Define
9816         appropriately.
9817         (TARGET_SWITCHES): Allow ptr32/ptr64 options once more.
9818         * config/sparc/sparc.c (sparc_override_options): If arch and
9819         pointer size disagree, emit diagnostic and fix it up.  If
9820         SPARC_BI_ARCH and TARGET_ARCH32, set cmodel to CM_32.  Turn off
9821         V8PLUS in 64-bit mode.
9822         * config/sparc/t-linux64: New file.
9823         * config/sparc/t-sol2-64: New file.
9824         * config/sparc/t-sol2: Adjust build rules to use MULTILIB_CFLAGS.
9825         * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Define.
9826         (ASM_CPU32_DEFAULT_SPEC, ASM_CPU64_DEFAULT_SPEC,
9827         CPP_CPU32_DEFAULT_SPEC, CPP_CPU64_DEFAULT_SPEC): Define.
9828         (ASM_SPEC, CPP_CPU_SPEC): Set appropriately based upon those.
9829         (STARTFILE_SPEC32, STARTFILE_SPEC32, STARTFILE_ARCH_SPEC):
9830         Define.
9831         (STARTFILE_SPEC): Set approriately based upon those.
9832         (CPP_CPU_DEFAULT_SPEC, ASM_CPU_DEFAULT_SPEC): Set based upon
9833         disposition of DEFAULT_ARCH32_P.
9834         (LINK_ARCH32_SPEC, LINK_ARCH64_SPEC): Define.
9835         (LINK_ARCH_SPEC, LINK_ARCH_DEFAULT_SPEC): Set based upon those.
9836         (CC1_SPEC, MULTILIB_DEFAULTS): Set based upon DEFAULT_ARCH32_P.
9837         (MD_STARTFILE_PREFIX): Set correctly based upon SPARC_BI_ARCH.
9838         * config/sparc/xm-sysv4-64.h (HOST_BITS_PER_LONG): Only set on
9839         arch64/v9.
9840         * config/sparc/xm-sp64.h (HOST_BITS_PER_LONG): Likewise.
9841         
9842 Wed Sep 23 22:32:31 1998  Mark Mitchell  <mark@markmitchell.com>
9843
9844         * rtl.h (init_virtual_regs): New function.
9845         * emit-rtl.c (init_virtual_regs): Define.
9846         (insn_emit): Use it.
9847         * integrate.c (save_for_inline_copying): Likewise.
9848
9849 Wed Sep 23 16:22:01 1998  Nick Clifton  <nickc@cygnus.com>
9850
9851         * config/arm/thumb.h: The following patches were made by Jim Wilson:
9852         (enum reg_class): Add NONARG_LO_REGS support.
9853         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
9854         PREFERRED_RELOAD_CLASS, SECONDARY_RELOAD_CLASS): Likewise.
9855         (GO_IF_LEGITIMATE_ADDRESS): Disable REG+REG addresses before reload
9856         completes.  Re-enable HImode REG+OFFSET addresses.
9857         (LEGITIMIZE_RELOAD_ADDRESS): Define.
9858
9859         * expmed.c (extract_bit_field): Add comment from Jim Wilson. 
9860
9861 Wed Sep 23 13:26:02 1998  Richard Henderson  <rth@cygnus.com>
9862
9863         * alpha.c (get_aligned_mem): Revert Sep 20 change.
9864         (alpha_set_memflags, alpha_set_memflags_1): Likewise.
9865         (alpha_align_insns): Properly calculate initial offset wrt max_align.
9866
9867 Wed Sep 23 10:45:44 1998  Richard Earnshaw (rearnsha@arm.com)
9868
9869         * arm.c (find_barrier): Revert change of Apr 23.  Handle table
9870         jumps as a single entity, taking into account the size of the
9871         table.
9872
9873 Tue Sep 22 15:13:34 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
9874
9875         * tree.def (SWITCH_EXPR): New tree node definition.
9876
9877 Mon Sep 21 23:40:38 PDT 1998 Jeff Law  (law@cygnus.com)
9878
9879         * version.c: Bump for snapshot.
9880
9881 Mon Sep 21 22:31:14 PDT 1998 Jeff Law  (law@cygnus.com)
9882
9883         * version.c: Bump for snapshot.
9884
9885 Mon Sep 21 22:48:09 1998  Jeffrey A Law  (law@cygnus.com)
9886
9887         * configure.in: Recognize i[34567]86-*-openbsd* and handle it like
9888         NetBSD.
9889
9890 Mon Sep 21 22:05:28 1998  Jeffrey A Law  (law@cygnus.com)
9891
9892         * Revert this patch.
9893         * reload.c (find_reloads): Do not replace a pseudo with
9894         (MEM (reg_equiv_addr)) in the initializing insn for the
9895         pseudo.
9896
9897 Mon Sep 21 20:19:41 1998  John Carr  <jfc@mit.edu>
9898
9899         * final.c (final_scan_insn): Disable tracking CC across branches.
9900
9901 Mon Sep 21 17:15:26 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
9902
9903         * expr.h (eh_rtime_match_libfunc): New extern declaration.
9904         * optabs.c (init_optabs): Set eh_rtime_match_libfunc.
9905         * except.c (start_catch_handler): Use eh_rtime_match_libfunc.
9906         * libgcc2.c (__eh_rtime_match): Always return 0 if the matcher is
9907         NULL. Only include <stdio.h> if inhibit_libc is not defined.
9908
9909 Mon Sep 21 14:10:51 1998  Jason Merrill  <jason@yorick.cygnus.com>
9910
9911         * toplev.c (rest_of_compilation): Skip compiling anything with
9912         DECL_EXTERNAL set, not just if it has DECL_INLINE as well.
9913
9914 Mon Sep 21 13:51:05 1998  Jim Wilson  <wilson@cygnus.com>
9915
9916         * flow.c (find_basic_blocks): Delete check for in_libcall_block when
9917         prev_code is a CALL_INSN.  Change check for REG_RETVAL note to
9918         use in_libcall_block.
9919         (find_basic_blocks_1): Delete check for in_libcall_block when prev_code
9920         is a CALL_INSN.  If CALL_INSN and in_libcall_block, then change code
9921         to INSN.
9922
9923 Mon Sep 21 14:02:23 1998
9924
9925         * i386.h: (TARGET_SWITCHES) Improve doc for align-double.  Fix
9926         typo in no-fancy-math-387 description.
9927
9928 Mon Sep 21 09:27:18 PDT 1998 Jeff Law  (law@cygnus.com)
9929
9930         * version.c: Bump for snapshot.
9931
9932 Mon Sep 21 09:24:49 1998   Stan Cox  <scox@cygnus.com>
9933
9934         * i386-coff.h (DBX_DEBUGGING_INFO): Added.
9935
9936 Mon Sep 21 09:14:49 1998   Robert Lipe  <robertl@dgii.com>
9937
9938         * i386.h: (TARGET_SWITCHES) Add description fields for flags 
9939         documented in install.texi.
9940         (TARGET_OPTIONS) Likewise.
9941
9942 Mon Sep 21 01:39:03 PDT 1998 Jeff Law  (law@cygnus.com)
9943
9944         * version.c: Bump for snapshot.
9945
9946 Mon Sep 21 01:53:05 1998  Felix Lee  <flee@cygnus.com>
9947
9948         * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT ().
9949         * cccp.c (main): Likewise.
9950
9951         * cccp.c, collect2.c, cpplib.c, gcc.c, config/i386/xm-cygwin32.h:
9952         Rename GET_ENVIRONMENT to GET_ENV_PATH_LIST, and fix some
9953         macro-use bugs.
9954
9955 Mon Sep 21 00:52:12 1998  Per Bothner  <bothner@cygnus.com>
9956
9957         * Makefile.in (LIBS):  Link in libiberty.a.
9958         * c-common.c, gcc.c, toplev.c:  Replace (some) bcopy calls by memcpy.
9959
9960 Sun Sep 20 23:28:11 1998  Richard Henderson  <rth@cygnus.com>
9961
9962         * reload1.c (emit_reload_insns): Accept a new arg for the bb.  Use
9963         it to update bb boundaries.  Update caller.
9964         * function.c (reposition_prologue_and_epilogue_notes): Update
9965         bb boundaries wrt the moved note.
9966
9967 Sun Sep 20 20:57:02 1998  Robert Lipe  <robertl@dgii.com>
9968         
9969         * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder
9970         problems.
9971         * configure: Regenerate.
9972
9973 Sun Sep 20 19:01:51 1998  Richard Henderson  <rth@cygnus.com>
9974
9975         * alpha.c (alpha_sr_alias_set): New variable.
9976         (override_options): Set it.
9977         (alpha_expand_prologue, alpha_expand_epilogue): Use it.
9978         (mode_mask_operand): Fix signed-unsigned comparision warning.
9979         (alpha_expand_block_move): Likewise.
9980         (print_operand): Likewise.
9981         (get_aligned_mem): Use change_address.
9982         (alpha_set_memflags, alpha_set_memflags_1): Set the alias set.
9983         (alphaev4_insn_pipe, alphaev4_next_group): New functions.
9984         (alphaev4_next_nop, alphaev5_next_nop): New functions.
9985         (alpha_align_insns): Remade from old alphaev5_align_insns
9986         to handle multiple processors.
9987         (alpha_reorg): Call alpha_align_insns for both ev4 and ev5.
9988         * output.h (label_to_alignment): Prototype.
9989
9990         * tree.c (new_alias_set): New function.
9991         * tree.h (new_alias_set): Declare it.
9992         * c-common.c (c_get_alias_set): Use it.
9993
9994 Sun Sep 20 12:35:55 1998  Richard Henderson  <rth@cygnus.com>
9995
9996         * fold-const.c (fold): Yet another COND_EXPR bug: when folding 
9997         to an ABS expr, convert an unsigned input to signed.
9998         
9999 Sun Sep 20 12:14:45 1998  Jeffrey A Law  (law@cygnus.com)
10000
10001         * fold-const.c (fold): Fix another type in COND_EXPR handling code.
10002
10003 1998-09-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10004
10005         * configure.in: Add support for c4x targets.
10006         * configure: Rebuilt.
10007
10008 Sun Sep 20 00:00:51 1998  Richard Henderson  <rth@cygnus.com>
10009
10010         * combine.c (distribute_notes): If an insn is a cc0 user, only
10011         delete it if we can also delete the cc0 setter.
10012
10013 Sun Sep 20 00:22:23 1998  Michael Tiemann  <michael@impact.tiemann.org>
10014
10015         * fold-const.c (fold): Fix typo in COND_EXPR handling code.
10016         (invert_truthvalue): Enable truthvalue inversion for
10017         floating-point operands if -ffast-math.
10018
10019 Sat Sep 19 23:58:07 1998  Melissa O'Neill <oneill@cs.sfu.ca>
10020                          
10021         * configure.in: Disable collect2 for nextstep.  Instead use
10022         crtbegin/crtend.
10023         * configure: Rebuilt.
10024         * config/nextstep.h (STARTFILE_SPEC): Add crtbegin.
10025         (ENDFILE_SPEC): Define.
10026         (OBJECT_FORMAT_MACHO): Define.
10027         (EH_FRAME_SECTION_ASM_OP): Define.
10028         * crtstuff.c: Handle MACHO.
10029
10030 Sun Sep 20 00:24:24 1998  Robert Lipe  <robertl@dgii.com>
10031
10032         * config/i386/sco5.h (TARGET_MEM_FUNCTIONS):  Define.
10033
10034 1998-09-19  Torbjorn Granlund  <tege@matematik.su.se>
10035
10036         * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0.
10037         (_fpadd_parts): Get sign right for 0.
10038
10039 1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10040
10041         * ginclude/varargs.h: Add support for C4x target.
10042         * ginclude/stdargs.h: Likewise.
10043
10044 Sat Sep 19 12:05:09 1998  Richard Henderson  <rth@cygnus.com>
10045
10046         * alpha.c (alpha_return_addr): SET should be VOIDmode.
10047         (alpha_emit_set_long_const): Rewrite to be callable from reload
10048         and 32-bit hosts.
10049         (alpha_expand_epilogue): Update for alpha_emit_set_long_const.
10050         * alpha.md (movdi): Likewise.
10051
10052 Sat Sep 19 07:33:36 1998  Richard Earnshaw (rearnsha@arm.com)
10053
10054         * arm.c (add_constant): New parameter address_only, change caller.
10055         Set it non-zero if taking the address of an item in the pool.
10056         (arm_reorg): Handle cases where we need the address of an item in
10057         the pool.
10058
10059         * arm.c (bad_signed_byte_operand): Check both arms of a sum in
10060         a memory address.
10061         * arm.md (splits for *extendqihi_insn and *extendqisi_insn): Handle
10062         memory addresses that are not in standard canonical form.
10063
10064 Sat Sep 19 01:00:32 1998  Michael Hayes  (mph@elec.canterbury.ac.nz)
10065
10066         * README.C4X: New file with information about the c4x ports.
10067         * ginclude/va-c4x.h: New file for c4x varargs support.
10068         * config/c4x: New directory with c4x port files.
10069
10070 Fri Sep 18 22:52:05 1998  Jeffrey A Law  (law@cygnus.com)
10071
10072         * reload.c (find_reloads): Do not replace a pseudo with 
10073         (MEM (reg_equiv_addr)) in the initializing insn for the
10074         pseudo.
10075
10076 Fri Sep 18 23:50:56 1998  David Edelsohn  <edelsohn@gnu.org>
10077
10078         * toplev.c (rest_of_compilation): Set bct_p on second call to
10079         loop_optimize.
10080         * loop.c (loop_optimize, scan_loop, strength_reduce): New argument
10081         bct_p.
10082         (strength_reduce): Only call analyze_loop_iterations and
10083         insert_bct if bct_p set.
10084         (check_dbra_loop): Fix typo.
10085         (insert_bct): Use word_mode instead of SImode.
10086         (instrument_loop_bct): Likewise.  Do not delete iteration count
10087         condition code generation insn.  Initialize iteration count before
10088         loop start.
10089         * rtl.h (loop_optimize): Update prototype.
10090
10091         * ginclude/va-ppc.h (va_arg): longlong types in overflow area are
10092         not doubleword aligned.
10093
10094         * rs6000.c (optimization_options): New function.
10095         (secondary_reload_class): Only call true_regnum for PSEUDO_REGs.
10096         * rs6000.h (OPTIMIZATION_OPTIONS): Define.
10097         (REG_ALLOC_ORDER): Allocate highest numbered condition regsiters
10098         first; cr1 can be used for FP record condition insns.
10099
10100 Fri Sep 18 09:44:55 1998  Nick Clifton  <nickc@cygnus.com>
10101
10102         * config/m32r/m32r.h (m32r_block_immediate_operand): Add to
10103         PREDICATE_CODES.
10104
10105         * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal"
10106         patterns.
10107
10108         * config/m32r/m32r.c (m32r_print_operand): Add 's' and 'p'
10109         operators.
10110         (block_move_call): New function: Call a library routine to copy a
10111         block of memory.
10112         (m32r_expand_block_move): New function: Expand a "movstrsi"
10113         pattern into a sequence of insns.
10114         (m32r_output_block_move): New function: Expand a
10115         "movstrsi_internal" pattern into a sequence of assembler opcodes.
10116         (m32r_block_immediate_operand): New function: Return true if the
10117         RTL is an integer constant, less than or equal to MAX_MOVE_BYTES.
10118         
10119 Thu Sep 17 16:42:16 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
10120
10121         * except.c (start_catch_handler): Issue 'fatal' instead of 'error' and
10122         re-align some code.
10123         * libgcc2.c (__eh_rtime_match): fprintf a runtime error. Use <stdio.h>.
10124
10125 Thu Sep 17 12:24:33 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10126
10127         * regmove.c (copy_src_to_dest): Check that modes match.
10128
10129 Wed Sep 16 22:10:42 1998  Robert Lipe  <robertl@dgii.com>
10130
10131         * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF.
10132
10133 Wed Sep 16 15:24:54 1998  Richard Henderson  <rth@cygnus.com>
10134
10135         * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class
10136         narrower than FLOAT_REGS.
10137
10138 Wed Sep 16 17:51:00 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
10139
10140         * cpplib.c: removed OLD_GPLUSPLUS_INCLUDE_DIR
10141         * cccp.c: ditto
10142         * Makefile.in (old_gxx_include_dir): removed
10143
10144 Wed Sep 16 12:29:22 1998  Nick Clifton  <nickc@cygnus.com>
10145
10146         * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match
10147         new specification.
10148
10149         * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma().
10150         (sh_handle_pragma): Change function arguments to match new
10151         specification for HANDLE_PRAGMA. 
10152
10153 Wed Sep 16 12:43:19 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10154
10155         * gen-protos.c (parse_fn_proto): Cast argument of ISALNUM to
10156         `unsigned char'.
10157         (main): Mark parameter `argc' with ATTRIBUTE_UNUSED.
10158         When generating output, initialize missing struct member to zero.
10159
10160 Wed Sep 16 14:47:43 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10161
10162         * regmove.c (copy_src_to_dest): Don't copy if that requires
10163         (a) new register(s).
10164
10165 Wed Sep 16 01:29:12 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
10166
10167         * global.c (reg_allocno): Now static.
10168         * reload1.c (reg_allocno): Delete declaration.
10169         (order_regs_for_reload): Take no arguments.  Don't treat regs
10170         allocated by global differently than those allocated by local-alloc.
10171
10172 Wed Sep 16 01:09:01 1998  Kamil Iskra  <iskra@student.uci.agh.edu.pl>
10173
10174         * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q
10175         condition, fix format strings.
10176         (output_function_epilogue): Likewise.
10177
10178         * m68k/m68k.c: Don't include <stdlib.h> directly.
10179
10180 Wed Sep 16 00:30:56 1998  Geoff Keating  <geoffk@ozemail.com.au>
10181
10182         * gcse.c: New definition NEVER_SET for reg_first_set, reg_last_set,
10183         mem_first_set, mem_last_set; because 0 can be a CUID.
10184         (oprs_unchanged_p): Use new definition.
10185         (record_last_reg_set_info): Likewise.
10186         (record_last_mem_set_info): Likewise.
10187         (compute_hash_table): Likewise.
10188
10189 Tue Sep 15 22:59:52 1998  Jeffrey A Law  (law@cygnus.com)
10190
10191         * rs6000.c (output_epilogue): Handle Chill.
10192
10193         * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
10194         * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
10195
10196         * combine.c (make_extraction): If no mode is specified for
10197         an operand of insv, extv, or extzv, default it to word_mode.
10198         (simplify_comparison): Similarly.
10199         * expmed.c (store_bit_field): Similarly.
10200         (extract_bit_field): Similarly.
10201         * function.c (fixup_var_regs_1): Similarly.
10202         * recog.c (validate_replace_rtx_1): Similarly.
10203         * mips.md (extv, extzv, insv expanders): Default modes for most
10204         operands.  Handle TARGET_64BIT.
10205         (movdi_uld, movdi_usd): New patterns.
10206
10207         * pa.c (emit_move_sequence): Do not replace a pseudo with its
10208         equivalent memory location unless we have been provided a scratch
10209         register.  Similarly do not call find_replacement unless a
10210         scratch register has been provided.
10211
10212 Tue Sep 15 19:23:01 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
10213
10214         * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants,
10215         return FLOAT_REGS.
10216
10217 Tue Sep 15 19:09:06 1998  Richard Henderson  <rth@cygnus.com>
10218
10219         * tree.h (BUILT_IN_CALLER_RETURN_ADDRESS): Unused.  Kill.
10220         (BUILT_IN_FP, BUILT_IN_SP, BUILT_IN_SET_RETURN_ADDR_REG): Kill.
10221         (BUILT_IN_EH_STUB_OLD, BUILT_IN_EH_STUB, BUILT_IN_SET_EH_REGS): Kill.
10222         (BUILT_IN_EH_RETURN, BUILT_IN_DWARF_CFA): New.
10223         * c-decl.c (init_decl_processing): Update accordingly.
10224         * expr.c (expand_builtin): Likewise.
10225
10226         * rtl.h (global_rtl): Add cfa entry.
10227         (virtual_cfa_rtx, VIRTUAL_CFA_REGNUM): New.
10228         (LAST_VIRTUAL_REGISTER): Update.
10229         * emit-rtl.c (global_rtl): Add cfa entry.
10230         (init_emit): Initialize it.
10231         * function.c (cfa_offset): New.
10232         (instantiate_virtual_regs): Initialize it.
10233         (instantiate_virtual_regs_1): Instantiate virtual_cfa_rtx.
10234         (expand_function_end): Call expand_eh_return.
10235         * tm.texi (ARG_POINTER_CFA_OFFSET): New.
10236
10237         * except.c (current_function_eh_stub_label): Kill.
10238         (current_function_eh_old_stub_label): Likwise; update all references.
10239         (expand_builtin_set_return_addr_reg): Kill.
10240         (expand_builtin_eh_stub_old, expand_builtin_eh_stub): Kill.
10241         (expand_builtin_set_eh_regs): Kill.
10242         (eh_regs): Produce a third reg for the actual handler address.
10243         (eh_return_context, eh_return_stack_adjust): New.
10244         (eh_return_handler, eh_return_stub_label): New.
10245         (init_eh_for_function): Initialize them.
10246         (expand_builtin_eh_return, expand_eh_return): New.
10247         * except.h: Update prototypes.
10248         * flow.c (find_basic_blocks_1): Update references to the stub label.
10249         * function.h (struct function): Kill stub label elements.
10250
10251         * libgcc2.c (in_reg_window): For REG_SAVED_REG, check that the
10252         register number is one that would be in the previous window.
10253         Provide a dummy definition for non-windowed targets.
10254         (get_reg_addr): New function.
10255         (get_reg, put_reg, copy_reg): Use it.
10256         (__throw): Rely on in_reg_window, not INCOMING_REGNO.  Kill stub
10257         generating code and use __builtin_eh_return.  Use __builtin_dwarf_cfa.
10258
10259         * alpha.c (alpha_eh_epilogue_sp_ofs): New.
10260         (alpha_init_expanders): Initialize it.
10261         (alpha_expand_epilogue): Use it.
10262         * alpha.h: Declare it.
10263         * alpha.md (eh_epilogue): New.
10264
10265         * m68h.h (ARG_POINTER_CFA_OFFSET): New.
10266         * sparc.h (ARG_POINTER_CFA_OFFSET): New.
10267
10268 Tue Sep 15 19:31:58 1998  Michael Meissner  <meissner@cygnus.com>
10269
10270         * i960.h (CONST_COSTS): Fix thinko.  Test flag, not the constant
10271         flag bit mask.
10272
10273 Tue Sep 15 14:10:54 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
10274
10275         * except.h (struct eh_entry): Add false_label field.
10276         (end_catch_handler): Add prototype.
10277         * except.c (push_eh_entry): Set false_label field to NULL_RTX.
10278         (start_catch_handler): When using old style exceptions, issue
10279         runtime typematch code before continuing with the handler.
10280         (end_catch_handler): New function, generates label after handler
10281         if needed by older style exceptions.
10282         (expand_start_all_catch): No need to check for new style exceptions.
10283         (output_exception_table_entry): Only output the first handler label
10284         for old style exceptions.
10285         * libgcc2.c (__eh_rtime_match): New routine to lump runtime matching
10286         mechanism into one function, if a runtime matcher is provided.
10287
10288 Tue Sep 15 13:53:59 EDT 1998  Andrew MacLeod  <amacleod@cygnus.com>
10289
10290         * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1.
10291
10292 Tue Sep 15 09:59:01 1998  Mark Mitchell  <mark@markmitchell.com>
10293
10294         * integrate.c (copy_decl_list): Fix typo.
10295
10296 Tue Sep 15 04:18:52 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10297
10298         * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length
10299         attribute.
10300
10301 Mon Sep 14 14:02:53 PDT 1998 Jeff Law  (law@cygnus.com)
10302
10303         * version.c: Bump for snapshot.
10304
10305 Mon Sep 14 10:33:56 PDT 1998 Jeff Law  (law@cygnus.com)
10306
10307         * version.c: Bump for snapshot.
10308
10309 Mon Sep 14 09:51:05 PDT 1998 Jeff Law  (law@cygnus.com)
10310
10311         * version.c: Bump for snapshot.
10312
10313 Sun Sep 13 22:10:18 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10314
10315         * invoke.texi (C Dialect Options): Put back missing @end itemize.
10316
10317 Mon Sep 14 02:33:46 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
10318
10319         * configure.in: remove usage of `!' to negate the result of a
10320         command; some common shells do not support it
10321
10322 Sun Sep 13 19:17:35 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10323
10324         * configure.in: in sparc9-sol2 config, use 'if test' not
10325         brackets.
10326         * configure: Rebuilt.
10327
10328         * config/sparc/sol2-sld-64.h (SPARC_DEFAULT_CMODEL): Change to
10329         CM_MEDANY.
10330         (CPP_CPU_SPEC): Do not define _LP64, header files do this.
10331         (CPP_CPU_DEFAULT_SPEC): Likewise.
10332         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Get the names right
10333         for arch64 libfuncs.
10334         
10335         * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode
10336         for operand zero.
10337
10338 Sun Sep 13 09:11:59 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10339
10340         * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub.
10341
10342         * collect2.c: Don't declare `sys_siglist' here.
10343         (my_strsignal): Prototype and define new function.  Use it in
10344         place of `sys_siglist' hacks.
10345
10346         * mips_tfile.c:  Likewise.
10347
10348         * configure.in (AC_CHECK_FUNCS): Check for strsignal.
10349         (GCC_NEED_DECLARATIONS): Likewise.
10350
10351         * system.h (strsignal): Prototype it, if necessary.
10352         (sys_siglist): Declare it, if necessary.
10353
10354 Sun Sep 13 04:37:28 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10355
10356         * loop.c (move_movables): While removing insn sequences, preserve
10357         the next pointer of the most recently deleted insn when we skip
10358         over a NOTE.
10359
10360 Sun Sep 13 08:13:39 1998  Ben Elliston  <bje@cygnus.com>
10361
10362         * objc/config-lang.in: Do not output the name of the selected
10363         thread file when building the front-end.  The Makefile for the
10364         runtime library will do this.
10365
10366         * objc/Make-lang.in: Do not build the runtime library or install
10367         the Objective C header files.  The Makefile for the runtime
10368         library will do this.
10369
10370         * objc/Makefile.in (all.indirect): Only build the front-end.
10371         (compiler): Rename to `frontend'.
10372         (obj-runtime): Remove target.
10373         (copy-headers): Likewise.
10374         (clean): No need to remove `libobjc.a' any longer.
10375
10376 Sat Sep 12 11:37:19 1998  Michael Meissner  <meissner@cygnus.com>
10377
10378         * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines
10379         supported with -mcpu=xxx.
10380
10381 Fri Sep 11 23:55:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10382
10383         * flow.c (mark_set_1): Recognize multi-register structure return
10384         values in CALL insns.
10385         (mark_used_regs): Likewise.
10386         (count_reg_sets_1): Likewise.
10387         (count_reg_references): Likewise.
10388         * rtlanal.c (note_stores): Likewise.
10389         (reg_overlap_mentioned_p): Likewise.
10390         * haifa-sched.c (check_live_1): Likewise.
10391         (update_live_1): Likewise.
10392         (sched_analyze_1): Likewise.
10393         (sched_note_set): Likewise.
10394         (birthing_insn_p): Likewise.
10395         (attach_deaths): Likewise.
10396
10397         * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable.
10398
10399
10400 Fri Sep 11 22:57:55 1998  Eric Dumazet  <dumazet@cosmosbay.com>
10401
10402         * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h.
10403
10404 Thu Sep 10 22:02:04 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10405
10406         * glimits.h (__LONG_MAX__): Recognize __sparcv9 too.
10407
10408 Thu Sep 10 21:19:10 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10409
10410         * configure.in: Add check for GAS subsection -1 support.
10411         * acconfig.h (HAVE_GAS_SUBSECTION_ORDERING): Add.
10412         * configure config.in: Rebuilt.
10413         * config/sparc/sparc.h (CASE_VECTOR_MODE): For V9 flag_pic, use
10414         SImode is subsection -1 works, else use DImode.
10415         (ASM_OUTPUT_ADDR_VEC_START, ASM_OUTPUT_ADDR_VEC_END): Define if
10416         subsection -1 works.
10417         * config/sparc/sparc.c (sparc_output_addr_vec,
10418         sparc_output_addr_diff_vec): Use them if defined.
10419
10420 Thu Sep 10 10:46:01 1998  Mark Mitchell  <mark@markmitchell.com>
10421
10422         * tree.h (DECL_ORIGIN): New macro.
10423         * integrate.c (copy_and_set_decl_abstract_origin): New function.
10424         (copy_decl_list): Use it.
10425         (integrate_parm_decls): Likewise.
10426         (integrate_decl_tree): Likewise.
10427         * dwarf2out.c (decl_ultimate_origin): Simplify.
10428         * dwarfout.c (decl_ultimate_origin): Likewise.
10429         * c-decl.c (duplicate_decls): Use DECL_ORIGIN.
10430         (pushdecl): Likewise.
10431
10432 Thu Sep 10 08:01:31 1998  Anthony Green  <green@cygnus.com>
10433
10434         * config/rs6000/rs6000.c (output_epilog): Add Java support.
10435
10436 Thu Sep 10 14:48:59 1998  Martin von Löwis  <loewis@informatik.hu-berlin.de>
10437
10438         * invoke.texi (C++ Dialect Options): Document -fhonor-std.
10439
10440 Thu Sep 10 01:38:05 1998  Jeffrey A Law  (law@cygnus.com)
10441
10442         * reg-stack.c (straighten_stack): Do nothing if the virtual stack is
10443         empty or has a single entry.
10444
10445         * toplev.c (rest_of_compilation): Open up the dump file for reg-stack
10446         before calling reg_to_stack.
10447
10448 Thu Sep 10 00:03:34 1998  Richard Henderson  <rth@cygnus.com>
10449
10450         * alpha.c (alphaev5_insn_pipe): Abort on default case.
10451         (alphaev5_next_group): Swallow CLOBBERs and USEs.
10452
10453         * c-tree.h (warn_long_long): Declare it.
10454
10455 Wed Sep  9 23:31:36 1998  (Stephen L Moshier) <moshier@world.std.com>
10456
10457         * emit-rtl.c (gen_lowpart_common): Disable optimization of
10458         initialized float-int union if the value is a NaN.
10459
10460 Wed Sep  9 23:00:48 1998  Nathan Sidwell  <nathan@acm.org>
10461
10462         * c-lex.c (real_yylex): Don't warn about long long constants if 
10463         we're allowing long long
10464
10465 Wed Sep  9 21:58:41 1998  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
10466
10467         * except.h (current_function_eh_stub_label): Declare.
10468         (current_function_eh_old_stub_label): Declare.
10469         * function.h (struct function): New members eh_stub_label and
10470         eh_old_stub_label.
10471         * except.c (current_function_eh_stub_label): New variable.
10472         (current_function_eh_old_stub_label): New variable.
10473         (init_eh_for_function): Clear them.
10474         (save_eh_status): Save them.
10475         (restore_eh_status): Restore them.
10476         (expand_builtin_eh_stub): Set current_function_eh_stub_label.
10477         (expand_builtin_eh_stub_old): Set current_function_eh_old_stub_label.
10478         * flow.c (find_basic_blocks_1): When handling a REG_LABEL note, don't
10479         make an edge from the block that contains it to the block starting
10480         with the label if this label is one of the eh stub labels.
10481         If eh stub labels exist, show they are reachable from the last block
10482         in the function.
10483
10484         * reload1.c (reload): Break out several subroutines and make some
10485         variables global.
10486         (calculate_needs_all_insns): New function, broken out of reload.
10487         (calculate_needs): Likewise.
10488         (find_reload_regs): Likewise.
10489         (find_group): Likewise.
10490         (find_tworeg_group): Likewise.
10491         (something_needs_reloads): New global variable, formerly in reload.
10492         (something_needs_elimination): Likewise.
10493         (caller_save_spill_class): Likewise.
10494         (caller_save_group_size): Likewise.
10495         (max_needs): Likewise.
10496         (group_size): Likewise.
10497         (max_groups): Likewise.
10498         (max_nongroups): Likewise.
10499         (group_mode): Likewise.
10500         (max_needs_insn): Likewise.
10501         (max_groups_insn): Likewise.
10502         (max_nongroups_insn): Likewise.
10503         (failure): Likewise.
10504
10505         * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET.
10506
10507 Wed Sep  9 13:14:41 1998  Richard Henderson  <rth@cygnus.com>
10508
10509         * loop.c (load_mems): Copy rtx for output mem.
10510
10511 Wed Sep  9 15:16:58 1998  Gavin Romig-Koch  <gavin@cygnus.com>
10512
10513         * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for
10514         mips1 or mips2 either.
10515
10516 Wed Sep  9 12:31:35 1998  Jeffrey A Law  (law@cygnus.com)
10517
10518         * pa.c (pa_reorg): New marking scheme for jumps inside switch
10519         tables.
10520         (pa_adjust_insn_length): Update to work with new marking scheme
10521         for jumps inside switch tables. 
10522         * pa.md (switch_jump): Remove pattern.
10523         (jump): Handle jumps inside jump tables.
10524
10525         * Makefile.in (profile.o): Depend on insn-config.h
10526
10527 Wed Sep  9 09:36:51 1998  Jim Wilson  <wilson@cygnus.com>
10528
10529         * iris6.h (DWARF2_UNWIND_INFO): Undef.
10530
10531 Wed Sep  9 01:32:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10532
10533         Add preliminary native sparcv9 Solaris support.
10534         * configure.in: Recognize sparv9-*-solaris2*
10535         * configure: rebuilt
10536         * config.sub: Recognize sparcv9 just like sparc64.
10537         * config/sparc/sol2-c1.asm config/sparc/sol2-ci.asm
10538         config/sparc/sol2-cn.asm: Macroize so it can be shared between
10539         32-bit and 64-bit Solaris systems.
10540         * config/sparc/t-sol2: Assemble those with cpp.
10541         * config/sparc/sparc.h (TARGET_CPU_sparcv9): New alias for v9.
10542         (*TF*_LIBCALL): If ARCH64 use V9 names.
10543         * config/sparc/{xm-sysv4-64,sol2-sld-64}.h: New files.
10544
10545 Wed Sep  9 01:07:30 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
10546
10547         * config/sparc/sparc.h (TARGET_CM_MEDMID): Fix documentation.
10548         (CASE_VECTOR_MODE): Set to SImode even if PTR64, when MEDLOW and
10549         not doing pic.
10550         (ASM_OUTPUT_ADDR_{VEC,DIFF}_ELT): Check CASE_VECTOR_MODE not
10551         Pmode.
10552         * config/sparc/sparc.md (tablejump): Likewise, and sign extend op0
10553         to Pmode if CASE_VECTOR_MODE is something else.
10554
10555 Wed Sep  9 00:10:31 1998  Jeffrey A Law  (law@cygnus.com)
10556
10557         * prefix.c (update_path): Correctly handle cases where PATH is
10558         a substring of the builtin prefix, but specifies a different
10559         directory location.
10560
10561 Tue Sep  8 23:46:04 1998  Hans-Peter Nilsson  <hp@axis.se>
10562
10563         * expr.c: Corrected comment about what MOVE_RATIO does.
10564         * config/alpha/alpha.h: Ditto.
10565         * config/1750a/1750a.h: Ditto.
10566         * config/clipper/clipper.h: Ditto.
10567         * config/i386/i386.h: Ditto.
10568
10569 Tue Sep  8 22:56:12 1998  Jeffrey A Law  (law@cygnus.com)
10570
10571         * configure.in (m68k-next-nextstep3*): Use collect2.
10572         Similarly for x86 NeXT configurations.
10573         * configure: Rebuilt.
10574
10575 Tue Sep  8 01:38:57 1998  Nathan Sidwell  <nathan@acm.org>
10576
10577         * configure.in: Don't assume srcdir is .../gcc
10578         * configure: Rebuilt.
10579
10580 Sat Sep  5 16:34:34 EDT 1998  John Wehle  (john@feith.com)
10581
10582         * global.c: Update comments.
10583         (global_alloc): Assign allocation-numbers
10584         even for registers allocated by local_alloc in case
10585         they are later spilled and retry_global_alloc is called.
10586         (mark_reg_store, mark_reg_clobber,
10587         mark_reg_conflicts, mark_reg_death): Always record a
10588         conflict with a pseudo register even if it has been
10589         assigned to a hard register.
10590         (dump_conflicts): Don't list pseudo registers already assigned to
10591         a hard register as needing to be allocated, but do list their
10592         conflicts.
10593         * local-alloc.c: Update comment.
10594
10595 Mon Sep  7 23:38:01 1998  Jeffrey A Law  (law@cygnus.com)
10596
10597         * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH.
10598         * configure: Rebuilt.
10599
10600 Mon Sep  7 22:41:46 1998  Michael Meissner  <meissner@cygnus.com>
10601
10602         * rs6000.c (rs6000_override_options): Fix name for ec603e, to add
10603         missing 'c'.
10604         * t-ppccomm (MULTILIB_MATCHES_FLOAT): Add support for -mcpu=xxx
10605         for all targets that set -msoft-float.
10606
10607 Mon Sep  7 23:30:07 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10608
10609         * toplev.c (print_switch_values): Make static to match prototype.
10610
10611 Mon Sep  7 19:13:59 1998  Jeffrey A Law  (law@cygnus.com)
10612
10613         * configure.in: If we are unable to find the "gnatbind" program,
10614         then do not configure the ada subdir.
10615         * configure: Rebuilt.
10616
10617 Sun Sep 6 14:03:58 PDT 1998 Jeff Law  (law@cygnus.com)
10618
10619         * version.c: Bump for snapshot.
10620
10621 Sun Sep 6 13:28:07 PDT 1998 Jeff Law  (law@cygnus.com)
10622
10623         * version.c: Bump for snapshot.
10624
10625 Sun Sep  6 08:54:14 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10626
10627         * Makefile.in (toplev.o): Depend on $(EXPR_H).
10628         (insn-extract.o, insn-attrtab.o): Depend on toplev.h.
10629
10630         * gansidecl.h: Define ATTRIBUTE_NORETURN.
10631
10632         * genattrtab.c: Have insn-attrtab.c include toplev.h.
10633
10634         * genextract.c: Have insn-extract.c include toplev.h.
10635
10636         * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'.
10637
10638         * toplev.c: Include expr.h.
10639         (really_sorry, fancy_abort): Remove prototypes.
10640         (set_target_switch): Add argument in prototype.
10641         (vfatal): Mark prototype with ATTRIBUTE_NORETURN.
10642         (v_really_sorry): Likewise.
10643         (print_version, print_single_switch, print_switch_values): Make
10644         static and add prototype arguments.
10645         (decl_printable_name): Add prototype arguments.
10646         (lang_expand_expr_t): New typedef.
10647         (lang_expand_expr): Declare as a lang_expand_expr_t.
10648         (incomplete_decl_finalize_hook): Add prototype argument.
10649         (decl_name): Mark variable `verbosity' with ATTRIBUTE_UNUSED.
10650         (botch): Likewise for variable `s'.
10651         (rest_of_type_compilation): Mark variables `type' and `toplev'
10652         with ATTRIBUTE_UNUSED if none of DBX_DEBUGGING_INFO,
10653         XCOFF_DEBUGGING_INFO or SDB_DEBUGGING_INFO are defined.
10654         (display_help): Make variable `i' an `unsigned long'.
10655         (main): Remove unused parameter `envp'.
10656         Cast assignment to `lang_expand_expr' to a `lang_expand_expr_t'.
10657         Cast -1 when comparing it with a `size_t'.
10658
10659         * toplev.h (fatal, fatal_io_error, pfatal_with_name): Mark
10660         prototype with ATTRIBUTE_NORETURN.
10661         (fatal_insn_not_found, fatal_insn, really_sorry,
10662         push_float_handler, pop_float_handler): Add prototypes.
10663         (fancy_abort): Mark prototype with ATTRIBUTE_NORETURN.
10664         (do_abort, botch): Add prototypes.
10665         
10666 Sat Sep  6 12:05:18 1998  John Carr  <jfc@mit.edu>
10667
10668         * final.c (final): If a label is reached only from a single jump,
10669         call NOTICE_UPDATE_CC on the jump and its predecessor before
10670         emitting the insn after the label.
10671         
10672         * i386.h: Add AMD K6 support.
10673         Change TARGET_* macros to use table lookup.
10674         (INITIALIZE_TRAMPOLINE): Improve trampoline code.
10675         (ADJUST_COST): Change definition to call function in i386.c.
10676         (ISSUE_RATE): Define as 2 for anything newer than an 80486.
10677         * i386.c: Add AMD K6 support.
10678         Add constants for feature tests used by TARGET_* macros.
10679         (split_di): If before reload, call gen_lowpart and gen_highpart.
10680         (x86_adjust_cost): New function.
10681         (put_jump_code): New function.
10682         (print_operand): New codes 'D' and 'd'.
10683         * i386.md: New insn types.  New insn attribute "memory".
10684         Redefine scheduling parameters to use new types and add AMD K6
10685         support.  Explicitly set type of most insns.
10686         (move insns): K6 prefers movl $0,reg to xorl reg,reg.  Pentium
10687         Pro and K6 prefer movl $1,reg to incl reg.
10688         (adddi3, subdi3): Set cc_status.
10689         (DImode shift patterns): Change label counters from HOST_WIDE_INT
10690         to int; x86 can't have more than 2^31 DImode shifts per file.
10691         (setcc): Combine all setcc patterns.  Allow writing memory.
10692         Combine all jump patterns using match_operator.
10693         (*bzero): Name pattern.  Emit mutliple stos instructions when that
10694         is faster than rep stos.
10695         (xordi3, anddi3, iordi3): Simplify DImode logical patterns and
10696         add define_split.
10697
10698 Sun Sep  6 11:17:20 1998  Dave Love  <d.love@dl.ac.uk>
10699
10700         * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771
10701         linking.
10702
10703 Sat Sep  5 22:05:25 1998  Richard Henderson  <rth@cygnus.com>
10704
10705         * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence,
10706         not whatever we're generating now.
10707
10708         * alpha.c (set_frame_related_p, FRP): New.
10709         (alpha_expand_prologue): Mark frame related insns.
10710         (alpha_expand_epilogue): Likewise, but with a null FRP.
10711         * alpha.h (INCOMING_RETURN_ADDR_RTX): New.
10712         * alpha.md (exception_receiver): New.
10713         * alpha/crtbegin.asm (.eh_frame): New beginning.
10714         (__do_frame_setup, __do_frame_takedown): New.
10715         * alpha/crtend.asm (.eh_frame): New ending.
10716         * alpha/elf.h (DWARF2_DEBUGGING_INFO): Define.
10717         (ASM_SPEC): Don't emit both dwarf2 and mdebug.
10718         (ASM_FILE_START): Don't emit .file for dwarf2.
10719
10720         * rtl.h (enum reg_note): Add REG_FRAME_RELATED_EXPR.
10721         * rtl.c (reg_note_name): Likewise.
10722         * rtl.texi (REG_NOTES): Likewise.
10723         * dwarf2out.c (dwarf2out_frame_debug): Use it.  Recognize a store
10724         without an offset.
10725
10726 Sat Sep  5 14:47:17 1998  Richard Henderson  <rth@cygnus.com>
10727
10728         * i386.h (PREFERRED_RELOAD_CLASS): Standard fp constants load to TOS.
10729         * i386.md (movsf, movdf, movxf): Validate memory address returned
10730         from force_const_mem.  Kill useless REG_EQUAL setting code.
10731
10732 Sat Sep  5 14:23:31 1998  Torbjorn Granlund <tege@matematik.su.se>
10733
10734         * m68k.md (zero_extendsidi2): Fix typo.
10735
10736 Sat Sep  5 13:40:24 1998  Krister Walfridsson  <cato@df.lth.se>
10737
10738         * configure.in: Removed references to the removed file
10739         * config/xm-netbsd.h. Use ${cpu_type}/xm-netbsd.h for
10740         * arm*-*-netbsd* and ns32k-*-netbsd*.
10741         * config/i386/xm-netbsd.h: Removed unnecessary file.
10742         * config/m68k/xm-netbsd.h: Likewise.
10743         * config/sparc/xm-netbsd.h: Likewise.
10744         * config/mips/xm-netbsd.h: Likewise.
10745
10746 Sat Aug 29 13:32:58 1998  Mumit Khan  <khan@xraylith.wisc.edu>
10747
10748         * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define.
10749         (PCC_BITFIELD_TYPE_MATTERS): Define to be 0.
10750
10751         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for
10752         for exact section attributions.
10753
10754         * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc
10755         runtime.
10756         * i386/crtdll.h (CPP_PREDEFINES): Define.
10757
10758 Sat Sep  5 03:23:05 1998  Jeffrey A Law  (law@cygnus.com)
10759
10760         * m68k.md (5200 movqi): Do not allow byte sized memory references
10761         using address regs.
10762         * m68k.c (output_move_qimode): Do not use byte sized operations on
10763         address registers.
10764
10765         * Makefile.in (pexecute.o): Use pexecute.c from libiberty.  Provide
10766         explicit rules for building.  Similarly for alloca, vfprintf,
10767         choose-temp and mkstemp, getopt, getopt1, and obstack.
10768         (INCLUDES): Add $(srcdir)/../include.
10769         * pexecute.c, alloca.c, vfprintf.c, choose-temp.c, mkstemp.c: Delete.
10770         * getopt.h, getopt.c getopt1.c, obstack.c, obstack.h: Likewise.
10771
10772 Fri Sep  4 11:57:50 1998  Tom Tromey  <tromey@cygnus.com>
10773
10774         * gcc.c (do_spec_1): [case 'o'] Account for
10775         lang_specific_extra_outfiles.
10776         (main): Correctly clear all slots in outfiles for
10777         lang_specific_extra_outfiles.  Set input_file_number before
10778         calling lang_specific_pre_link.
10779
10780 Fri Sep  4 10:37:07 1998  Jim Wilson  <wilson@cygnus.com>
10781
10782         * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call.
10783
10784 Fri Sep  4 02:01:05 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10785
10786         * config/sparc/sparc.c (output_double_int): In all V9 symbolic
10787         cases, use xword.
10788         (sparc_output_deferred_case_vectors): If no work to do, return.
10789         Fix thinko in Sept 1 change.
10790
10791 1998-09-03  SL Baur  <steve@altair.xemacs.org>
10792
10793         * Makefile.in: add semicolon in BISON definition for portability.
10794
10795 Thu Sep  3 13:34:41 1998  Toon Moene  <toon@moene.indiv.nluug.nl>
10796
10797         * config/nextstep.c (handle_pragma): Correct name of third
10798         argument.
10799
10800 Tue Sep  1 11:30:33 1998  Nick Clifton  <nickc@cygnus.com>
10801
10802         * config/m32r/m32r.md: Change (reg:CC 17) to (reg:SI 17).
10803         * config/m32r/m32r.h: Make register 17 be fixed.
10804         * config/m32r/m32r.c: Use SImode for cc operations.
10805
10806 Thu Sep  3 18:17:34 1998 Benjamin Kosnik  <bkoz@cygnus.com>
10807
10808         * invoke.texi (Warning Options): Add -Wnon-template-friend
10809         documentation.
10810
10811 Thu Sep  3 18:16:16 1998  Michael Meissner  <meissner@cygnus.com>
10812
10813         * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}.
10814
10815 Thu Sep  3 18:05:16 1998  David Edelsohn  <edelsohn@gnu.org>
10816
10817         * rs6000.md (movsf): Disable explicit secondary-reload-like
10818         functionality if TARGET_POWERPC64.
10819         (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like
10820         functionality.
10821
10822 Thu Sep  3 11:41:40 1998  Robert Lipe   <robertl@dgii.com>
10823
10824         * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h
10825         and term.h from fixinc.wrap.
10826
10827 Thu Sep  3 09:47:31 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10828
10829         * aclocal.m4 (GCC_HEADER_STRING): New macro to detect if it is
10830         safe to include both string.h and strings.h together.
10831         (GCC_NEED_DECLARATION): Test STRING_WITH_STRINGS when deciding
10832         which headers to search for function declarations.  Continue to
10833         prefer string.h over strings.h when both are not acceptable.
10834
10835         * acconfig.h (STRING_WITH_STRINGS): Add stub.
10836
10837         * configure.in: Call GCC_HEADER_STRING.
10838
10839         * system.h: Test STRING_WITH_STRINGS when deciding which headers
10840         to include.  Continue to prefer string.h over strings.h when both
10841         are not acceptable.
10842
10843 Wed Sep  2 23:56:29 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10844
10845         * config/sparc/sparc.c (output_double_int): If V9 and MEDLOW, do
10846         not assume top 32-bits of symbolic addresses are zero if
10847         flag_pic.
10848
10849 Thu Sep  3 00:23:21 1998  Richard Henderson  <rth@cygnus.com>
10850
10851         * ginclude/va-alpha.h: Protect entire second portion of the
10852         file against double inclusion.
10853
10854 Thu Sep  3 00:37:55 1998  Ovidiu Predescu  <ovidiu@aracnet.com>
10855
10856         Added support for the Boehm's garbage collector.
10857         * configure.in: Handle --enable-objc-gc.
10858         * configure: Rebuilt.
10859         * Makefile.in (CHECK_TARGETS): Add check-objc.
10860         (check-objc): New rule.
10861         * objc/Make-lang.in: Build a different Objective-C library that
10862         runs with the Boehm's collector.
10863         * objc/encoding.c (objc_round_acc_size_for_types): New function.
10864         * objc/encoding.c: Correctly compute the size of compound types in
10865         the presence of bitfields. Skip the variable name of the type if
10866         any. Added support for long long.
10867         * objc/encoding.h (_C_GCINVISIBLE): New specifier.
10868         (_F_GCINVISIBLE): New mask.
10869         * objc/gc.c: New file. Compute the type memory mask associated with
10870         a class based on the runtime information.
10871         * objc/misc.c: Added the hooks that use the Boehm's collector
10872         allocation functions.
10873         * objc/objc-act.c (build_class_template): Generate a new class
10874         member (gc_object_type) to hold the class' type memory mask.
10875         (build_shared_structure_initializer): Initialize the new member to
10876         NULL.
10877         (encode_complete_bitfield): New function. Generate the new
10878         encoding.
10879         (encode_field_decl): Generate the new encoding only for the GNU
10880         runtime.
10881         * objc/objc-api.h (_C_LNG_LNG, _C_ULNG_LNG): New specifiers for the
10882         long long types.
10883         (class_get_gc_object_type): New function to mark a pointer instance
10884         variable as a weak pointer.
10885         * objc/objc-features.texi: New file.
10886         * objc/objc.h (gc_object_type): New class member.
10887         * objc/objects.c (class_create_instance): Create a typed memory
10888         object when compiled with Boehm's collector support.
10889         * objc/sendmsg.c (__objc_init_install_dtable): Call
10890         __objc_send_initialize instead of setting the initialize flag.
10891         (__objc_send_initialize): Call __objc_generate_gc_type_description
10892         to generate the class type memory mask. Rewrite the code that
10893         sends the +initialize so that it is called only once (bug report
10894         and fix from Ronald Pijnacker <Ronald.Pijnacker@best.ms.philips.com>).
10895         * testsuite/objc: New testsuite for Objective-C type encoding.
10896         * testsuite/lib/objc-torture.exp: New file.
10897         * testsuite/lib/objc.exp: New file.
10898
10899 Wed Sep  2 14:47:36 1998  Jim Wilson  <wilson@cygnus.com>
10900
10901         * jump.c (jump_optimize): In if/then/else transformations, add
10902         another call to modified_between_p for the jump insn.
10903
10904 Wed Sep  2 14:16:49 1998  Jeffrey A Law  (law@cygnus.com)
10905
10906         * fix-header.c (symlink): Treat like readlink.
10907
10908 Wed Sep  2 19:30:06 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
10909
10910         * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles
10911         as FT_float.
10912
10913 Wed Sep  2 10:06:07 1998  Nick Clifton  <nickc@cygnus.com>
10914
10915         * config/nextstep.h:    Update HANDLE_PRAGMA macro.
10916         * config/h8300/h8300.h: Update HANDLE_PRAGMA macro.
10917         * config/i960/i960.h:   Update HANDLE_PRAGMA macro.
10918         
10919         * config/nextstep.c (handle_pragma): Take three arguments, as per
10920         the new HANDLE_PRAGMA macro specification.
10921         * config/h8300/h8300.c (handle_pragma): Take three arguments, as
10922         per the new HANDLE_PRAGMA macro specification.
10923         * config/i960/i960.c (process_pragma): Take three arguments, as
10924         per the new HANDLE_PRAGMA macro specification.
10925
10926 Wed Sep  2 09:25:29 1998  Nick Clifton  <nickc@cygnus.com>
10927
10928         * c-lex.c (check_newline):  Call HANDLE_PRAGMA before
10929         HANDLE_SYSV_PRAGMA if both are defined.  Generate warning messages
10930         if unknown pragmas are encountered.
10931         (handle_sysv_pragma): Interpret return code from
10932         handle_pragma_token ().  Return success/failure indication rather
10933         than next unprocessed character. 
10934         (pragma_getc): New function: retrieves characters from the
10935         input stream.  Defined when HANDLE_PRAGMA is enabled.
10936         (pragma_ungetc): New function: replaces characters back into the
10937         input stream.  Defined when HANDLE_PRAGMA is enabled.
10938         
10939         * c-pragma.c (handle_pragma_token): Return success/failure status
10940         of the parse.
10941         
10942         * c-pragma.h: Change prototype of handle_pragma_token().
10943
10944         * varasm.c: (handle_pragma_weak): Only create this function if
10945         HANDLE_PRAGMA_WEAK is defined.
10946
10947         * c-common,c (decl_attributes): If defined call the expression
10948         contained within the INSERT_ATTRIBUTES macro before adding
10949         attributes to a decl.
10950
10951         * tm.texi (HANDLE_PRAGMA): Document the new verion of
10952         HANDLE_PRAGMA, which takes three arguments.
10953         (INSERT_ATTRIBUTES): Document this new macro.  
10954
10955         * LANGUAGES: Document the new version of HANDLE_PRAGMA and the
10956         new INSERT_ATTRIBUTES macro.
10957
10958 Wed Sep  2 02:03:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10959
10960         * config/sparc/sparc.md (movdf): Only generate special RTL for
10961         LABEL_REFs when PIC.
10962         (move_label_di): Remove
10963         (movdi_pic_label_ref, movdi_high_pic_label_ref,
10964         movdi_lo_sum_pic_label_ref): New patterns for 64-bit label
10965         references when PIC.
10966         * config/sparc/sparc.h (ASM_OUTPUT_ADDR_VEC_ELT,
10967         ASM_OUTPUT_ADDR_DIFF_ELT): Don't do anything special for MEDLOW,
10968         output an .xword for all 64-bit cases.
10969         
10970 Tue Sep  1 15:55:17 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10971
10972         * config/sparc/sparc.c (finalize_pic): Don't output arbitrary
10973         alignment, use FUNCTION_BOUNDARY instead.
10974         (sparc_output_deferred_case_vectors): Likewise.
10975
10976 Mon Aug 31 17:25:41 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
10977
10978         * config/sparc/sparc.md (movsf_const_intreg): Kill warning.
10979         (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives.
10980
10981 Mon Aug 31 13:57:55 1998  Richard Henderson  <rth@cygnus.com>
10982
10983         * alpha/va_list.h: New file.
10984         * alpha/x-alpha (EXTRA_HEADERS): New.  Add va_list.h.
10985
10986 Mon Aug 31 14:55:02 1998  Jeffrey A Law  (law@cygnus.com)
10987
10988         * NEWS: Add SCO Openserver and Unixware 7 notes.
10989
10990         * NEWS: Fix typos.
10991
10992 Mon Aug 31 15:42:18 1998  Dave Brolley  <brolley@cygnus.com>
10993
10994         * varasm.c (compare_constant_1): Handle RANGE_EXPR.
10995         (record_constant_1): Handle RANGE_EXPR.
10996
10997 Mon Aug 31 10:54:03 1998  Richard Henderson  <rth@cygnus.com>
10998
10999         * print-rtl.c (print_rtx): NOTE_INSN_LIVE has an rtx not a bitmap.
11000         * haifa-sched.c (sched_analyze): Handle NOTE_INSN_RANGE_START
11001         and NOTE_INSN_RANGE_END specially.
11002         (reemit_notes): Likewise.
11003
11004 Mon Aug 31 10:18:52 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11005
11006         * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'.
11007         (ultrasparc_sched_init): Remove unneeded &.
11008
11009 Mon Aug 31 10:47:16 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11010
11011         * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040
11012         for m68020-60, to prevent the use of fintrz.
11013
11014 Sun Aug 30 22:17:20 1998  Mark Mitchell  <mark@markmitchell.com>
11015
11016         * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) 
11017         even in stage1. 
11018         * Makefile.in: Likewise.
11019         * configure: Regenerated.
11020
11021 Sun Aug 30 22:15:41 1998  H.J. Lu  (hjl@gnu.org)
11022
11023         * configure.in (gxx_include_dir): Changed to
11024         '${prefix}/include/g++'-${libstdcxx_interface}.
11025         * configure: Rebuilt.
11026
11027 Sun Aug 30 20:19:43 1998  Hans-Peter Nilsson  <hp@axis.se>
11028
11029         * expr.c (expand_expr): Change ">" to ">=" making MOVE_RATIO use
11030         consistent.
11031         * tm.texi (Costs): Say MOVE_RATIO is number of mem-mem move
11032         *sequences* *below* which scalar moves will be used.
11033
11034 Sun Aug 30 17:18:43 1998  Jeffrey A Law  (law@cygnus.com)
11035
11036         * collect2.c (mktemp): Delete unused declaration.
11037
11038         * config/xm-netbsd.h: Remove unnecessary file.
11039         * config/*/xm-netbsd.h: Do not include the generic xm-netbsd.h
11040         file anymore, it is not needed.
11041
11042 Sun Aug 30 16:05:45 1998  Mark Mitchell  <mark@markmitchell.com>
11043
11044         * convert.c (convert_to_integer): Issue an error on conversions to
11045         incomplete types.
11046
11047 Sun Aug 30 16:47:20 1998  Martin von Lvwis  <loewis@informatik.hu-berlin.de>
11048
11049         * Makefile.in: Add lang_tree_files and gencheck.h.
11050         * configure.in: Generate them.
11051         * gencheck.c: Include gencheck.h.
11052
11053 Sat Aug 29 21:38:24 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11054
11055         * config/sparc/sparc.md (pic_lo_sum_di, pic_sethi_di): Rename to
11056         movdi_lo_sum_pic and movdi_high_pic and make visible.
11057         * config/sparc/sparc.c (legitimize_pic_address): For -fPIC,
11058         emit these when Pmode is not SImode.
11059         * config/sparc/linux64.h (SPARC_DEFAULT_CMODEL): Make CM_MEDLOW.
11060
11061 Sat Aug 29 14:59:32 1998  Mumit Khan  <khan@xraylith.wisc.edu>
11062
11063         * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit
11064         .linkonce directive after the first time.
11065
11066 Sat Aug 29 12:39:56 1998  Jeffrey A Law  (law@cygnus.com)
11067
11068         * m68k.md (beq0_di): Generate correct (and more efficient) code when
11069         the clobbered operand overlaps with an input.
11070         (bne0_di): Similarly.
11071
11072         * Makefile.in (INSTALL): Remove "--no-header" argument.
11073
11074         * NEWS: Various updates.
11075
11076 Fri Aug 28 19:00:44 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11077
11078         * config/sparc/sparc.c (arith_operand, const64_operand,
11079         const64_high_operand, arith_double_4096_operand): Mark mode as
11080         unused.
11081         (create_simple_focus_bits): Remove unused arg highest_bit_set, all
11082         callers changed.
11083         (sparc_emit_set_const64): Remove unused variable i.
11084         (sparc_splitdi_legitimate): Likewise for addr_part.
11085         (ultra_code_from_mask): Likewise for mask.
11086         (ultra_cmove_results_ready_p): Fixup entry modulo calc. and
11087         reverse return values so it matches usage and comments.
11088         (ultra_flush_pipeline): Likewise.
11089         (ultra_fpmode_conflict_exists): Likewise, remove unused variable
11090         this_type, and allow loads and stores of differing FP modes as
11091         they do not create a conflict.
11092         (ultra_find_type): Initialize fpmode to SFmode, fix
11093         parenthesization thinkos in large conditional.
11094         (ultrasparc_sched_init): Mark dump and sched_verbose as unused.
11095         Init free_slot_mask after ultra_cur_hist is reset, not before.
11096         (ultrasparc_rescan_pipeline_state): Remove unused variable ucode.
11097         (ultrasparc_sched_reorder): Don't bzero current pipeline state,
11098         use ultra_flush_pipeline instead, then re-init group pointer.
11099         Fix statement with no effect.  If no progress made in, and no
11100         instructions scheduled at all, advance to new pipeline cycle else
11101         we get into an endless loop.
11102         (ultrasparc_adjust_cost): Remove previous arg.
11103         * config/sparc/sparc.h (ADJUST_COST): Update to reflect that.
11104         
11105 Fri Aug 28 13:52:35 1998  Jim Wilson  <wilson@cygnus.com>
11106
11107         * sparc.md (DImode, DFmode, TFmode splits): Delete self_reference
11108         code.  Use reg_overlap_mentioned_p to detect when source and
11109         destination overlap.
11110         (negtf2_notv9+1): Use DFmode instead of SFmode in last two operands.
11111
11112 1998-08-28  Brendan Kehoe  <brendan@cygnus.com>
11113
11114         * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not
11115         COMPARISON_VAL, into invariant_p.
11116
11117 Fri Aug 28 15:13:25 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11118
11119         * regmove.c (regclass_compatible_p): New function.
11120         (regmove_optimize): Use it.
11121
11122         Use NREGS parameter insted of calling max_reg_num.
11123
11124         (fixup_match_1): Don't use code = MINUS when later tieing with
11125         a hard register is likely.
11126
11127 Fri Aug 28 14:54:07 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11128
11129         * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when
11130         COMPARISON_VAL was normalized.
11131
11132 Thu Aug 27 20:10:46 1998  Jeffrey A Law  (law@cygnus.com)
11133
11134         * loop.c (check_dbra_loop): The loop ending comparison value
11135         must be an invariant or we can not reverse the loop.
11136
11137         * loop.c (scan_loop): Count down from max_reg_num - 1 to
11138         FIRST_PSEUDO_REGISTER to avoid calling max_reg_num each iteration
11139         of the loop.
11140         (load_mems_and_recount_loop_regs_set): Likewise.
11141
11142         * i386.c (print_operand): Remove obsolete 'c' docs.
11143
11144 Wed Aug 26 17:13:37 1998  Tom Tromey  <tromey@cygnus.com>
11145
11146         * gthr.h: Document __GTHREAD_MUTEX_INIT_FUNCTION.
11147         * frame.c (init_object_mutex): New function.
11148         (init_object_mutex_once): Likewise.
11149         (find_fde): Call it.
11150         (__register_frame_info): Likewise.
11151         (__register_frame_info_table): Likewise.
11152         (__deregister_frame_info): Likewise.
11153
11154 Thu Aug 27 15:14:18 1998  Jeffrey A Law  (law@cygnus.com)
11155
11156         * haifa-sched.c (sched_analyze_insn): Fix thinko in last change.
11157
11158 Thu Aug 27 16:34:51 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11159
11160         * loop.c (check_dbra_loop): Enable code for reversal
11161         of some loops without a known constant loop end.
11162
11163 Wed Aug 26 18:38:15 1998  Richard Henderson  <rth@cygnus.com>
11164
11165         * haifa-sched.c (last_clock_var): New.
11166         (schedule_block): Initialize it.
11167         (schedule_insn): Use it to fill insn modes with issue information.
11168
11169         * alpha.c (alpha_handle_trap_shadows): Remove do-nothing exit.
11170         Tag trapb and next insn with TImode.
11171         (alphaev5_insn_pipe, alphaev5_next_group, alphaev5_align_insns): New.
11172         (alpha_reorg): Add conditional for alpha_handle_trap_shadows.
11173         Invoke alphaev5_align_insns as appropriate.
11174         * alpha.h (LABEL_ALIGN_AFTER_BARRIER): Was ALIGN_LABEL_AFTER_BARRIER.
11175         (MD_SCHED_VARIABLE_ISSUE): New.
11176         * alpha.md (attr type): Add multi.
11177         (define_asm_attributes): New.
11178         (prologue_stack_probe_loop, builtin_setjmp_receiver): Set type multi.
11179         (arg_home): Likewise.
11180         (fnop, unop, realign): New.
11181
11182 Wed Aug 26 15:55:41 1998  Jim Wilson  <wilson@cygnus.com>
11183
11184         * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef.
11185         * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11186
11187         * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*.
11188         (rs6000-ibm-aix4.[12]*): Likewise.
11189         * configure: Regnerate.
11190
11191 Wed Aug 26 09:30:59 1998  Nick Clifton  <nickc@cygnus.com>
11192
11193         * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it
11194         already contains the return address.
11195
11196 Wed Aug 26 12:57:09 1998  Jeffrey A Law  (law@cygnus.com)
11197
11198         * calls.c (expand_call): Use bitfield instructions to extract/deposit
11199         word sized hunks when loading unaligned args into registers.
11200
11201         * haifa-sched.c (sched_analyze_insn): Only create scheduling
11202         barriers for LOOP, EH and SETJMP notes on the loop_notes list.
11203
11204         * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too.
11205
11206 Wed Aug 26 16:35:37 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11207
11208         * loop.c (check_dbra_loop): Add some code that would allow reversal
11209         of some loops without a known constant loop end if it were enabled.
11210
11211 Wed Aug 26 11:08:44 1998  Gavin Romig-Koch  <gavin@cygnus.com>
11212
11213         * mips.md (lshrsi3_internal2+2): Fix type-o.
11214
11215 Wed Aug 26 10:53:03 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11216
11217         * system.h: Include stdarg.h/varargs.h, make sure they are ordered
11218         correctly with regards to stdio.h.
11219         
11220         * calls.c: Remove stdarg.h/varargs.h.
11221         * cccp.c: Likewise.
11222         * cexp.y: Likewise.
11223         * combine.c: Likewise.
11224         * cpperror.c: Likewise.
11225         * cpplib.c: Likewise.
11226         * cpplib.h: Likewise.
11227         * doprint.c: Likewise.
11228         * emit-rtl.c: Likewise.
11229         * final.c: Likewise.
11230         * fix-header.c: Likewise.
11231         * gcc.c: Likewise.
11232         * genattr.c: Likewise.
11233         * genattrtab.c: Likewise.
11234         * gencodes.c: Likewise.
11235         * genconfig.c: Likewise.
11236         * genemit.c: Likewise.
11237         * genextract.c: Likewise.
11238         * genflags.c: Likewise.
11239         * genopinit.c: Likewise.
11240         * genoutput.c: Likewise.
11241         * genpeep.c: Likewise.
11242         * genrecog.c: Likewise.
11243         * mips-tfile.c: Likewise.
11244         * prefix.c: Likewise.
11245         * protoize.c: Likewise.
11246         * regmove.c: Likewise.
11247         * toplev.c: Likewise.
11248         * tree.c: Likewise.
11249
11250 Wed Aug 26 05:09:27 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11251
11252         * config/sparc/sparc.c (sparc_override_options): If not
11253         TARGET_FPU, turn off TARGET_VIS.
11254         * config/sparc/sparc.h (TARGET_SWITCHES): Add no-vis.
11255         (LEGITIMATE_CONSTANT_P): Allow SF/DF mode zero when TARGET_VIS.
11256         * config/sparc/sparc.md (movsi_insn): Use fzeros not fzero.
11257         (movdi_insn_sp64): Add VIS fzero alternative.
11258         (clear_sf, clear_df): New VIS patterns.
11259         (movsf, movdf expanders): Allow fp_zero_operand flat out when
11260         TARGET_VIS.
11261         (one_cmpldi2_sp64): Provide new fnot1 VIS alternative.
11262         
11263 Tue Aug 25 10:57:41 1998  Mark Mitchell  <mark@markmitchell.com>
11264
11265         * loop.c (n_times_set, n_times_used, may_not_optimize,
11266         reg_single_usage): Convert to varrays.  All uses changed.
11267         (insert_loop_mem): Return a value.
11268         (scan_loop): Tweak AVOID_CC_MODE_COPIES code.
11269         (load_mems_and_recount_loop_regs_set): Likewise.  Grow the arrays, if
11270         necessary.
11271
11272 Tue Aug 25 23:57:12 1998  Jeffrey A Law  (law@cygnus.com)
11273
11274         * From Alexandre:
11275         * configure.in: Do not set thread_file to "irix" since no such
11276         support exists yet.
11277
11278         * sparc.md (float abs/neg splits): Check reload_completed before
11279         calling alter_subreg.
11280
11281 Tue Aug 25 19:17:59 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11282
11283         * config/sparc/sparc.c (sparc_absnegfloat_split_legitimate): New
11284         function.
11285         * config/sparc/sparc.h: Declare it.
11286         * config/sparc/sparc.md (float abs/neg splits): Use it.
11287         (all other splits): Handle SUBREGs properly where necessary.
11288         (unnamed (1<<x)-1 V8PLUS pattern): Disable for now.
11289
11290 Tue Aug 25 19:48:46 1998  Jeffrey A Law  (law@cygnus.com)
11291
11292         * reorg.c (fill_simple_delay_slots): Do not abort if we encounter
11293         an insn on the unfilled_slots_list that has no delay slots.
11294         (fill_eager_delay_slots): Similarly.
11295
11296 Tue Aug 25 13:35:20 1998  Nick Clifton  <nickc@cygnus.com>
11297
11298         * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX
11299         as an ordinary operand.
11300
11301 Tue Aug 25 12:54:57 1998  Jason Merrill  <jason@yorick.cygnus.com>
11302
11303         * tree.c (valid_machine_attribute): Don't apply attributes to both
11304         decl and type.
11305
11306 Tue Aug 25 12:23:20 PDT 1998  Richard Henderson  <rth@cygnus.com>
11307
11308         * reload.c (operands_match_p): Handle rtvecs.
11309
11310         * i386.c (legitimate_pic_address_disp_p): New.
11311         (legitimate_address_p): Use it.
11312         (legitimize_pic_address): Use unspecs to represent @GOT and @GOTOFF.
11313         Handle constant pool symbols just like statics.
11314         (emit_pic_move): Use Pmode not SImode for clarity.
11315         (output_pic_addr_const) [SYMBOL_REF]: Remove @GOT and @GOTOFF hacks.
11316         [UNSPEC]: New, handling what we killed above.
11317         [PLUS]: Detect and abort on invalid symbol arithmetic.
11318         * i386.h (CONSTANT_ADDRESS_P): Remove HIGH.
11319
11320 Tue Aug 25 12:02:23 1998  Mark Mitchell  <mark@markmitchell.com>
11321
11322         * alias.c: Include output.h.
11323         (DIFFERENT_ALIAS_SETS_P): Don't treat alias sets as
11324         different if we're in a varargs function.
11325         * Makefile.in (alias.o): Depend on output.h
11326         
11327 Tue Aug 25 19:20:12 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11328
11329         * sh.h (GIV_SORT_CRITERION): Delete.
11330
11331 Tue Aug 25 13:19:46 1998  Dave Brolley  <brolley@cygnus.com>
11332
11333         * regclass.c (regclass): Use xmalloc/free instead of alloca.
11334         * stupid.c (stupid_life_analysis): Ditto.
11335         * reload1.c (reload): Ditto.
11336
11337 Tue Aug 25 05:48:18 1998  Jakub Jelinek  <jj@sunsite.ms.mff.cuni.cz>
11338
11339         * config/sparc/sparc.c (arith_4096_operand, arith_add_operand,
11340         arith_double_4096_operand, arith_double_add_operand): New
11341         predicates.
11342         * config/sparc/sparc.h (PREDICATE_CODES): Add them, declare them.
11343         * config/sparc/sparc.md (adddi3, addsi3, subdi3, subsi3): Use
11344         them to transform add/sub 4096 into add/sub -4096.
11345
11346 Mon Aug 24 23:31:03 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11347
11348         * loop.c (scan_loop): Allocate some slop to handle pseudos
11349         generated by move_movables.
11350         (load_mems_and_recount_loop_regs_set): Honor AVOID_CC_MODE_COPIES
11351         here too.
11352
11353 Mon Aug 24 19:45:40 1998  Jim Wilson  <wilson@cygnus.com>
11354
11355         * tree.def (DECL_RESULT): Correct documentation.
11356
11357 Tue Aug 25 01:15:27 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11358
11359         * reload1.c (reload_reg_free_before_p): New argument EQUIV;  Changed
11360         all callers.  Abort for RELOAD_FOR_INSN.  RELOAD_FOR_OUTADDR_ADDR:
11361         conflicts will all RELOAD_FOR_OUTPUT reloads.
11362
11363         * reload1.c (reload_cse_regs_1): When deleting a no-op move that
11364         loads the function result, substitute with a USE.
11365
11366 Mon Aug 24 15:20:19 1998  David Edelsohn  <edelsohn@gnu.org>
11367
11368         * rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Use TARGET_POWERPC64
11369         when testing LEGITIMATE_INDEXED_ADDRESS_P DFmode and DImode.
11370         (LEGITIMIZE_ADDRESS): Use TARGET_POWERPC64 for INDEXED fixup.
11371         * rs6000.c (print_operand, case 'L'): Add UNITS_PER_WORD, not 4.
11372         (print_operand, cases 'O' and 'T'): Fix typos in lossage strings.
11373         * rs6000.md (fix_truncdfsi2_store): Remove %w from non-CONST_INT
11374         operand. 
11375         (movdf_softfloat32, movdf_hardfloat64, movdf_softfloat64): Change
11376         'o' to 'm' for GPR variant constraints.
11377
11378 Mon Aug 24 10:25:46 1998  Jeffrey A Law  (law@cygnus.com)
11379
11380         * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES.
11381
11382         * h8300.h (STRIP_NAME_ENCODING): Fix typo.
11383
11384         * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect
11385         when the source and destination overlap.
11386
11387         * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid
11388         clash with global type.
11389
11390 Mon Aug 24 00:53:53 1998  Jason Merrill  <jason@yorick.cygnus.com>
11391
11392         * fixinc.irix: Add curses.h handling from fixinc.wrap.
11393
11394         * c-common.c (combine_strings): Also set TREE_READONLY.
11395         Change warn_write_strings to flag_const_strings.
11396         * c-decl.c, c-tree.h: Likewise.
11397
11398 Sun Aug 23 18:39:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11399
11400         * config/sparc/sparc.c (sparc_emit_set_const32): If outputting a
11401         CONST_INT, not a symbolic reference, don't use a HIGH/LO_SUM
11402         sequence, use SET/IOR instead so CSE can see it.
11403         * config/sparc/sparc.md (movhi_const64_special,
11404         movsi_const64_special): New patterns necessitated by that change.
11405         (movhi_high): Remove.
11406         (movhi_lo_sum): Change to match an IOR.
11407         (movdf_insn_sp32): Test TARGET_V9 not TARGET_ARCH64.
11408         (movdf_insn_v9only): New pattern for when V9 but not ARCH64.
11409         (movdf_insn_sp64): Test both TARGET_V9 and TARGET_ARCH64.
11410         (movdf splits): Allow when not V9 or when not ARCH64 and integer
11411         registers are involved.
11412         (snesi_zero_extend split): Remove reload_completed test.
11413         (unnamed plus and minus zero_extend sidi splits): Add it.
11414
11415 Sun Aug 23 11:56:08 1998  Mark Mitchell  <mark@markmitchell.com>
11416
11417         * extend.texi: Remove description of extension to explicit
11418         instantiation that is now endorsed by standard C++.
11419
11420 Sun Aug 23 09:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11421
11422         * config/arc/arc.c (arc_initialize_pic): Remove.
11423         * config/arc/arc.h (INITIALIZE_PIC): Similarly, this routine does
11424         nothing on any platform and is invoked by no-one, it does not even
11425         appear in the documentation.
11426         * config/sparc/sparc.h (INITIALIZE_PIC): Likewise.
11427         * config/sparc/sparc.c (initialize_pic): Likewise.
11428         (find_addr_reg): Remove this as well, no longer referenced after
11429         my rewrite.
11430
11431 Sun Aug 23 00:17:14 1998  Jeffrey A Law  (law@cygnus.com)
11432
11433         * recog.c (validate_replace_rtx_group): New function.
11434         * recog.h (validate_replace_rtx_group): Declare it.
11435         * regmove.c (optimize_reg_copy_3): If any substitution fails, then undo
11436         the entire group of substitutions.
11437
11438 Sat Aug 22 23:31:00 1998  Klaus-Georg Adams  (Klaus-Georg.Adams@chemie.uni-karlsruhe.de)
11439
11440         * loop.c (load_mems): Fix initializers.
11441
11442 Fri Aug 21 23:07:46 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11443
11444         * config/sparc/sparc.md (TFmode splits): Handle destination
11445         registers being referenced in the address correctly.
11446
11447         * expmed.c (make_tree) [CONST_INT]: Sign extend even if
11448         TREE_UNSIGNED, when bitsize of type's mode is larger than
11449         HOST_BITS_PER_WIDE_INT.
11450
11451 Fri Aug 21 19:31:31 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
11452
11453         * tree.def (LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR): New tree nodes.
11454         * tree.h (LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
11455         EXIT_BLOCK_LABELED_BLOCK, EXIT_BLOCK_RETURN, LOOP_EXPR_BODY): New
11456         macros.
11457         * expr.c (expand_expr): Handle LABELED_BLOCK_EXPR and
11458         EXIT_BLOCK_EXPR.
11459
11460 Thu Aug 20 19:43:44 1998  Jeffrey A Law  (law@cygnus.com)
11461
11462         * h8300.c (h8300_encode_label): Use '&' for tiny data items.
11463         * h8300.h (TINY_DATA_NAME_P): Likewise.
11464         (STRIP_NAME_ENCODING): Handle '&'.
11465
11466         * mn10200.h (REG_OK_FOR_INDEX_P): Do not check the mode of the
11467         register (it could be accessed via an outer SUBREG).
11468         (REG_OK_FOR_BASE_P): Likewwise.
11469         (GO_IF_LEGITIMATE_ADDRESS): Consistently use REGNO_OK_FOR_BASE_P.
11470
11471         * remove.c (optimize_reg_copy_3): Abort instead of silently generating
11472         bogus rtl.
11473
11474         * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative.
11475
11476 Thu Aug 20 17:35:20 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11477
11478         * config/sparc/sparc.md (movtf_insn_sp32): All memory operands
11479         must be offsettable so the splits can be made.
11480
11481 Thu Aug 20 13:56:53 1998  Michael Meissner  <meissner@cygnus.com>
11482
11483         * config/i386/winnt.c: Include system.h, not stdio.h to get
11484         sys/param.h pulled in before rtl.h in case the system defines MIN
11485         and MAX.
11486
11487 Thu Aug 20 13:44:20 1998  David Edelsohn  <edelsohn@gnu.org>
11488
11489         * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX.
11490
11491 Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
11492
11493         * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
11494         arrays of bits.
11495         * cpplib.c (cpp_define): Handle macros with parameters.
11496
11497 Wed Aug 19 21:33:19 1998  David Edelsohn  <edelsohn@gnu.org>
11498
11499         * rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
11500         (output_toc): Use single TOC slot or llong minimal-toc for DFmode
11501         and DImode 64-bit.  Use llong for minimal-toc SFmode and
11502         SYMBOL_REF / LABEL_REF 64-bit.
11503         (output_function_profiler): Use llong for profiler label and ld to
11504         load 64-bit label address.
11505
11506 Wed Aug 19 17:52:27 1998  Nick Clifton  (nickc@cygnus.com)
11507
11508         * config/arm/thumb.md (extendqisi2_insn): Cope with REG +
11509         OFFSET addressing.
11510
11511 Wed Aug 19 14:13:31 PDT 1998 Jeff Law  (law@cygnus.com)
11512
11513         * version.c: Bump for snapshot.
11514
11515 Wed Aug 19 13:10:30 PDT 1998 Jeff Law  (law@cygnus.com)
11516
11517         * version.c: Bump for snapshot.
11518
11519 Wed Aug 19 13:06:47 1998  Jason Merrill  <jason@yorick.cygnus.com>
11520
11521         * collect2.c (extract_init_priority): Use atoi instead of strtoul.
11522
11523 Wed Aug 19 13:51:35 1998  Hans-Peter Nilsson  <hp@axis.se>
11524
11525         * tm.texi (Misc): Fix typo "teh".
11526
11527         * tm.texi (PIC): Fix typo "PPIC".
11528
11529         * tm.texi (Caller Saves): Say that DEFAULT_CALLER_SAVES has no
11530         effect when -O2 and higher.
11531         * invoke.texi (Optimize Options): Likewise for -fcaller-saves.
11532
11533 1998-08-19  Michael Hayes  <michaelh@ongaonga.chch.cri.nz>
11534
11535         * regclass.c: Changed register set documentation to be consistent
11536         with GCC behaviour.
11537
11538         * final.c (final_start_function) Removed redundant test for
11539         call_fixed_regs.
11540
11541 Wed Aug 19 13:28:41 1998  Mark Mitchell  <mark@markmitchell.com>
11542
11543         * rtl.h (rtx_function): New type.
11544         (for_each_rtx): New function.
11545         * rtlanal.c (for_each_rtx): Define it.
11546         
11547         * recog.c (change_t): New type.
11548         (change_objects, change_old_codes, change_locs, change_olds):
11549         Replace with ...
11550         (changes): New variable.
11551         (validate_change): Dynamically allocate room for more changes, if
11552         necessary.  Uses changes array instead of change_objects, etc.
11553         (apply_change_group):  Use changes array instead of
11554         change_objects, etc.
11555         
11556         * loop.c (loop_mem_info): New type.
11557         (loop_mems): New variable.
11558         (loop_mems_idx): Likewise.
11559         (looop_mems_allocated): Likewise.
11560         (scan_loop): Remove nregs parameter.
11561         (next_insn_in_loop): New function.
11562         (load_mems_and_recount_loop_regs_set): Likewise.
11563         (load_mems): Likewise.
11564         (insert_loop_mem): Likewise.
11565         (replace_loop_mem): Likewise.
11566         (replace_label): Likewise.
11567         (INSN_IN_RANGE_P): New macro.
11568         (loop_optimize): Don't pass max_reg_num() to scan_loop.
11569         (scan_loop): Remove nregs parameter, compute it after any new
11570         registers are created by load_mems.  Use INSN_IN_RANGE_P and
11571         next_insn_in_loop rather than expanding them inline.  Call
11572         load_mems to load memory into pseudos, if appropriate.
11573         (prescan_loop): Figure out whether or not there are jumps from the
11574         loop to targets other than the label immediately following the
11575         loop.  Call insert_loop_mem to notice all the MEMs used in the
11576         loop, if it could be safe to pull MEMs into REGs for the duration
11577         of the loop.
11578         (strength_reduce): Use next_insn_in_loop.  Tweak comments.
11579
11580 Wed Aug 19 08:29:44 1998  Richard Earnshaw (rearnsha@arm.com)
11581
11582         * arm.c (arm_override_options): Remove lie about ignoring PIC flag.
11583
11584 Wed Aug 19 07:08:15 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11585
11586         * config/sparc/sparc.c (finalize_pic): Check for the correct
11587         nonlocal_goto_receiver UNSPEC number.
11588         * config/sparc/sparc.md (nonlocal_goto_receiver): Add comment
11589         making note of this dependency existing in sparc.c
11590         (negtf2_notv9 split): Give NEG SFmode.
11591         (negsf2): Fix insn output string.
11592         
11593 Tue Aug 18 12:40:27 1998  Richard Henderson  <rth@cygnus.com>
11594
11595         * c-common.c (decl_attributes): Issue an error if the argument
11596         to alias is not a string.
11597
11598 Tue Aug 18 10:33:30 1998  Jeffrey A Law  (law@cygnus.com)
11599
11600         * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last
11601         pending memory flush list.
11602
11603         * combine.c (can_combine_p): Allow combining insns with REG_RETVAL
11604         notes.
11605         (try_combine): Allow combining insns with REG_LIBCALL notes.
11606
11607         * expr.c (emit_block_move): Do not call memcpy as a libcall
11608         instead build up a CALL_EXPR and call it like any other
11609         function.
11610         (clear_storage): Similarly for memset.
11611
11612         * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p
11613         on notes.
11614
11615         * Makefile.in (cplus-dem.o): Provide explicit rules for building
11616         cplus-dem.o
11617
11618         * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED
11619         and REG_LIVE_LENGTH as successful substitutions are made.
11620
11621 Tue Aug 18 07:15:27 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11622
11623         * config/sparc/sparc.c (ultra_find_type): Add empty semicolon
11624         statement after end of loop label.
11625
11626 Tue Aug 18 07:13:27 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11627
11628         * config/sparc/sparc.c (ultra_types_avail): New variable.
11629         (ultra_build_types_avail): New function to record mask of insn
11630         types in ready list at this cycle.
11631         (ultrasparc_sched_reorder): Call it.
11632         (ultra_find_type): Use it to quicken the search.  Also simplif
11633         dependency check, don't use rtx_equal_p because we know exactly
11634         what we are looking for.
11635
11636 Tue Aug 18 03:20:53 1998  Richard Earnshaw  (rearnsha@arm.com)
11637
11638         * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling
11639         for architecture v4.
11640
11641 Mon Aug 17 21:26:38 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11642
11643         * config/sparc/sparc.md (sltu, sgeu): Don't FAIL, call
11644         gen_compare_reg.
11645         (movsf_const_intreg, movsf_const_high, movsf_const_lo,
11646         movdf_const_intreg and helper splits): New patterns to move float
11647         constants into integer registers.
11648         (negtf2, negdf2, abstf2, absdf2): Rework using new patterns and
11649         splits.
11650
11651 Mon Aug 17 11:46:19 1998  Jeffrey A Law  (law@cygnus.com)
11652
11653         * From Graham
11654         * tree.c (build_index_type): Copy TYPE_SIZE_UNIT from sizetype
11655         to itype.
11656         * c-decl.c (finish_enum): Copy TYPE_SIZ_UNIT from enumtype to tem.
11657
11658         * rs6000.c (secondary_reload_class): For TARGET_ELF, indicate that
11659         a BASE_REGS register is needed as an intermediate when copying
11660         a symbolic value into any register class other than BASE_REGS.
11661
11662         * expr.c (move_by_pieces): No longer static.  Remove prototype.
11663         * rtl.h (move_by_pieces): Add extern prototype.
11664         * mips.c (expand_block_move): Handle aligned straight line copy by
11665         calling move_by_pieces.
11666
11667         * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs
11668         and VAR_DECLs.
11669
11670 Mon Aug 17 10:28:52 1998  Mark Mitchell  <mark@markmitchell.com>
11671
11672         * stmt.c (expand_end_loop): Tidy.  Allow unconditional
11673         jumps out of the loop to be treated as part of the exit test.
11674
11675 Mon Aug 17 10:06:11 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11676                           Jeff Law <law@cygnus.com>
11677
11678         * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty.
11679         * cplus-dem.c: Delete.
11680
11681         * Makefile.in (fold-const.o): depend on $(RTL_H).
11682
11683         * fold-const.c: Include rtl.h to get the prototype for
11684         `set_identifier_local_value'.
11685
11686         * loop.c (express_from_1): Remove unused variable `tmp'.
11687         (combine_givs): cast the first argument of bzero to char *.
11688
11689         * toplev.c (display_help): Remove unused variable `looking_for_start'.
11690
11691         * c-decl.c (init_decl_processing): Remove unneeded &.
11692
11693         * alpha.h (alpha_initialize_trampoline): Provide prototype.
11694         
11695         * except.c (set_exception_lang_code, set_exception_version_code):
11696         Change parameter from `short' to `int' to avoid using a gcc
11697         extension.
11698
11699         * except.h (set_exception_lang_code, set_exception_version_code):
11700         Likewise for prototypes.
11701
11702         * flow.c (count_reg_references): Remove unused variables `regno'
11703         and `i'.
11704
11705         * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'.
11706
11707         * prefix.c (translate_name): Cast the result of `alloca'.
11708
11709         * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement.
11710
11711 Mon Aug 17 09:23:42 1998  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
11712
11713         * config/m68k/m68k.c: Include "system.h" instead of <stdio.h>.
11714         Include "toplev.h".
11715         (valid_dbcc_comparison_p): Mark mode argument as unused.
11716         (symbolic_operand): Likewise.
11717         (legitimize_pic_address): Likewise.
11718         (const_uint32_operand): Likewise.
11719         (const_sint32_operand): Likewise.
11720         * sched.c [!INSN_SCHEDULING]: Define only dummy function
11721         schedule_insns and comment out rest of file.
11722
11723         * m68k.c (output_move_simode_const): Use subl to move a zero into an
11724         address register.
11725         (output_move_[hq]imode): Likewise.
11726
11727 Mon Aug 17 09:15:47 1998  Jeffrey A Law  (law@cygnus.com)
11728
11729         * toplev.c (main): Enable -fstrict-aliasing for -O2 and above.
11730         * invoke.texi: Corresponding changes.
11731
11732 Mon Aug 17 02:03:55 1998  Richard Henderson  <rth@cygnus.com>
11733
11734         * regclass.c (allocate_reg_info): Respect MIN when clearing data.
11735
11736 Sun Aug 16 17:37:06 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11737
11738         * config/sparc/sparc.c (ultra_code_from_mask,
11739         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
11740         ultra_find_type, ultra_schedule_insn, ultra_flush_pipeline,
11741         ultrasparc_sched_init, ultrasparc_variable_issue,
11742         ultra_rescan_pipeline_state, ultrasparc_sched_reorder): New
11743         functions to describe UltraSPARC pipeline exactly to Haifa.
11744         (ultrasparc_adjust_cost): Indicate IMUL type insns have zero cost,
11745         as there is nothing the scheduler can do about it.  Indicate that
11746         REG_DEP_OUTPUT's collide.  Fixup formatting.
11747         * config/sparc/sparc.h (RTX_COSTS): Fixup integer multiply and
11748         divide costs on Ultra for DImode.
11749         (MD_SCHED_INIT, MD_SCHED_REORDER, MD_SCHED_VARIABLE_ISSUE):
11750         Define.
11751         * config/sparc/sparc.md (ieu_unnamed function unit): Rename to
11752         ieuN and add call_no_delay_slot to type list.
11753         (cti function unit): New unit for branches on UltraSPARC.
11754         (subx/addx insns): Set type to misc.
11755         (sidi zero/sign extension insns on arch64): Set type to shift.
11756         (sign_extendhidi2_insn): Set type to sload.
11757
11758 Sun Aug 16 13:52:00 1998  David Edelsohn  <edelsohn@gnu.org>
11759
11760         * rs6000.c (rs6000_stack_info): Use if == 0 for sizes.
11761         (output_epilog): Use if != 0 for offset.
11762         (rs6000_fatal_bad_address): Prepare for Intl.
11763         * rs6000.h (rs6000_fatal_bad_address): Declare.
11764         * rs6000.md (movsfcc, movdfcc): Use else if.
11765         (elf_high): Use {liu|lis}.
11766         (elf_low): Use {cal|la}.  Remove %a template from old mnemonics.
11767         (movsi): Use rs6000_fatal_bad_address.
11768         
11769 Sun Aug 16 01:53:21 1998  Richard Henderson  <rth@cygnus.com>
11770
11771         * reload.c (find_equiv_reg): Reject equivalences separated
11772         by a volatile instruction.
11773
11774 Sun Aug 16 00:21:44 1998 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
11775
11776         * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define.
11777
11778 Sat Aug 15 20:51:35 1998  Richard Henderson  <rth@cygnus.com>
11779
11780         * alpha.md (movsicc): Fix mode mismatch.
11781
11782 Sat Aug 15 20:22:33 1998  H.J. Lu  (hjl@gnu.org)
11783
11784         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated
11785         return type.
11786         * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise.
11787
11788 Sat Aug 15 08:39:49 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11789
11790         * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove
11791         write-only modifier from operand 1 constraint.
11792
11793 Sat Aug 15 06:28:19 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11794
11795         * config/sparc/sparc.c (sparc_emit_set_const64_quick1): If
11796         emitting a XOR of -1 at the end, emit a NOT instead for combine's
11797         sake.
11798         (sparc_emit_set_const64): Likewise, also when computing trailing
11799         bits do not negate low_bits and make fast_int an int.
11800
11801 Fri Aug 14 21:07:03 1998  Jeffrey A Law  (law@cygnus.com)
11802
11803         * loop.c (add_label_notes): Do not ignore references to labels
11804         before dispatch tables.  Mirrors Apr 8 change to mark_jump_label.
11805         * gcse.c (add_label_notes): Similarly.
11806
11807         * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding.
11808
11809         * m68k.md (adddi_dilshr32): One of the operands must be a register.
11810         (adddi_dishl32): Similarly.
11811
11812 Fri Aug 14 14:12:59 1998  Jason Merrill  <jason@yorick.cygnus.com>
11813
11814         * i386.h (MODES_TIEABLE_P): Reorganize to shut up warnings.
11815         * alias.c (memrefs_conflict_p): Add braces to shut up warnings.
11816         * cse.c (cse_basic_block): Add parens to shut up warnings.
11817
11818 Fri Aug 14 12:58:21 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11819
11820         * config/sparc/sparc.c (sparc_emit_set_const64_quick2,
11821         sparc_emit_set_const64_longway, const64_is_2insns,
11822         create_simple_focus_bits, sparc_emit_set_const64): Fix more bugs
11823         in 64-bit constant formation.
11824         * config/sparc/sparc.md (snesi_zero_extend split): Generate
11825         rtl for addx not subx.
11826         (define_insn movdi_const64_special): Make available even when
11827         HOST_BITS_PER_WIDE_INT is not 64.
11828         (movdi_lo_sum_sp64_cint, movdi_high_sp64_cint): Remove.
11829         (losum_di_medlow, sethm, setlo): Make op2 symbolic_operand.
11830         (cmp_siqi_trunc_set, cmp_diqi_trunc_set): Encapsulate both
11831         instances of operand 1 inside a QI subreg.
11832         (xordi3_sp64_dbl): Remove '%' constraint for op1.
11833         (one_cmpldi2_sp64): Fix output string.
11834         (one_cmplsi2_not_liveg0): Rewrite to remove unneeded extra
11835         alternative case.
11836         (unnamed arch64 ashift DI): Truncate shift count if greater than
11837         63, not 31.
11838
11839 Fri Aug 14 21:52:53 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
11840
11841         * expr.c (store_expr): Don't optimize away load-store pair
11842         when either source or destination have a side effect.
11843
11844 Fri Aug 14 16:50:10 1998  John Carr  <jfc@mit.edu>
11845
11846         * genrecog.c (add_to_sequence): Fatal error if the modes of the
11847         operands of SET are incompatible.
11848
11849         * alpha.md: Fix max and min patterns so modes of SET operands match.
11850
11851 Fri Aug 14 12:22:55 1998  Ian Lance Taylor  <ian@cygnus.com>
11852
11853         * configure.in: Avoid [[ by using test and changequote.
11854         * configure: Rebuild.
11855
11856 Fri Aug 14 01:22:31 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11857
11858         * rtl.def (CONSTANT_P_RTX): Fix typo in string name.
11859
11860         * config/sparc/sparc.md (seqdi_special_trunc, snedi_special_trunc,
11861         seqsi_special_extend, snesi_special_extend, snesi_zero_extend and
11862         split, snedi_zero_trunc and split, seqsi_zero_extend and split,
11863         seqdi_zero_trunc and split, pic_lo_sum_di, pic_sethi_di,
11864         movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc, addx_extend_sp32 and
11865         split, addx_extend_sp64, subx_extend_sp64, subx_extend and split):
11866         Fix mismatching modes in SET operands.
11867         (conditional move patterns): Fix formatting.
11868         (unnamed subx arch64 pattern): Remove duplicate insn.
11869         
11870 Fri Aug 14 00:34:34 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11871
11872         * config/sparc/sparc.c (const64_operand, const64_high_operand):
11873         Get it right when HOST_BITS_PER_WIDE_INT is not 64.
11874         (input_operand): Fixup test for what we accept for constant
11875         integers.
11876         (sparc_emit_set_const32, sparc_emit_set_symbolic_const64): Give
11877         set VOIDmode.
11878         (safe_constDI): Remove.
11879         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
11880         gen_safe_XOR64): New functions.
11881         (sparc_emit_set_const64_quick1, sparc_emit_set_const64_quick2,
11882         sparc_emit_set_const64_longway, sparc_emit_set_const64): Use
11883         them.
11884         * config/sparc/sparc.md (define_insn xordi3_sp64_dbl): Only make
11885         available when HOST_BITS_PER_WIDE_INT is not 64.
11886         (define_insn movdi_sp64_dbl, movdi_const64_special): Likewise and
11887         move before movdi_insn_sp64 pattern.
11888         (define_insn movdi_lo_sum_sp64_dbl, movdi_high_sp64_dbl): Remove.
11889         (define_insn sethi_di_medlow, seth44, setm44, sethh): Use
11890         symbolic_operand as predicate for second operand.
11891         (DImode minus split on arch32, negsi2 expander, one_cmplsi2
11892         expander): Give set VOIDmode.
11893         
11894 Fri Aug 14 01:45:06 1998  Mumit Khan  <khan@xraylith.wisc.edu>
11895
11896         * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define.
11897
11898 Fri Aug 14 01:40:21 1998  Geoffrey Keating  <geoffk@ozemail.com.au>
11899
11900         * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker.
11901
11902 Fri Aug 14 01:23:23 1998  Richard Earnshaw (rearnsha@arm.com)
11903
11904         * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating 
11905         point.
11906         (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly.
11907
11908 Fri Aug 14 01:19:08 1998  Robert Lipe  <robertl@dgii.com>
11909
11910         * install.texi: Various SCO OpenServer tweaks.
11911
11912 Thu Aug 13 20:14:40 1998  Jim Wilson  <wilson@cygnus.com>
11913
11914         * reload1.c (eliminate_regs_in_insn): Handle another case when
11915         eliminating the frame pointer to the hard frame pointer.  Add
11916         missing ep->to_rtx check to one existing case.
11917
11918         * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI.
11919
11920 Thu Aug 13 17:08:11 1998  Jason Merrill  <jason@yorick.cygnus.com>
11921
11922         * tree.h: De-conditionalize init_priority code.
11923
11924         * mips.h (NM_FLAGS): Change from -Bp to -Bn.
11925         * collect2.c (NM_FLAGS): Change from -p to -n.
11926
11927         * configure.in: Turn on collect2 for mipstx39-elf.
11928         Handle use_collect2=no properly.
11929
11930         * c-common.c: De-conditionalize init_priority code.
11931         * collect2.c (extract_init_priority, sort_ids): New fns.
11932         (main): Call sort_ids.
11933         Move sequence_number to file scope.
11934
11935         * configure.in: Handle --enable-init-priority.
11936         * c-common.c (attrs): Add A_INIT_PRIORITY.
11937         (init_attributes, decl_attributes): Likewise.
11938         * tree.h (DEFAULT_INIT_PRIORITY, MAX_INIT_PRIORITY): New macros.
11939         * tree.c (get_file_function_name_long): Split out...
11940         (get_file_function_name): ...from here.
11941
11942 Thu Aug 13 16:09:53 1998  Martin von Loewis  <loewis@informatik.hu-berlin.de>
11943
11944         * expr.c (safe_from_p): Change code to ERROR_MARK only when not
11945         accessing nodes.
11946
11947 Thu Aug 13 15:24:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
11948
11949         * toplev.c (display_help): Add braces to shut up warnings.
11950         * tree.c (simple_cst_equal): Likewise.
11951
11952         * fold-const.c (non_lvalue): Don't deal with null pointer 
11953         constants here.
11954         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
11955
11956         * c-typeck.c (initializer_constant_valid_p): Allow conversion of 0
11957         of any size to a pointer.
11958
11959 Thu Aug 13 12:53:13 1998  Jim Wilson  <wilson@cygnus.com>
11960
11961         * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED.
11962
11963 Wed Aug 12 17:25:18 1998  Jeffrey A Law  (law@cygnus.com)
11964
11965         * mn10300.c (REG_SAVE_BYTES): Only reserve space for registers
11966         which will be saved.
11967         * mn10300.md (prologue insn): Only save registers which need saving.
11968         (epilogue insn): Similarly.
11969
11970         * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register"
11971         optimizations.
11972
11973 Wed Aug 12 12:39:16 1998  Gavin Romig-Koch  <gavin@cygnus.com>
11974
11975         * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for
11976         VAR_DECL's in gp addressable sections.
11977
11978 Tue Aug 11 23:02:31 1998  John Carr  <jfc@mit.edu>
11979
11980         * sparc.c: Change return <exp> to <exp>; return; in functions
11981         returning void.
11982         * sparc.md: Add empty semicolon statement after final label in
11983         move expanders.
11984
11985 Tue Aug 11 22:42:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
11986
11987         * config/sparc/sparc.md (define_insn addx_extend): Rename to
11988         addx_extend_sp64, only allow when TARGET_ARCH64.
11989         (define_insn addx_extend_sp32 and split): Version that works when
11990         not TARGET_ARCH64.
11991         (define_insn subx_extend): Likewise.
11992         (define_split adddi3 and subdi3 with zero extension): Fixup and
11993         correct bugs when not TARGET_ARCH64.
11994
11995 Tue Aug 11 16:04:34 1998  John Carr  <jfc@mit.edu>
11996
11997         * except.c (set_exception_lang_code, set_exception_version_code):
11998         Use prototype-style definition if __STDC__, to match declaration
11999         in except.h.
12000
12001         * genemit.c: Change FAIL and DONE macros not to use loops.
12002
12003 Tue Aug 11 12:27:03 1998  Jim Wilson  <wilson@cygnus.com>
12004
12005         * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use
12006         ASM_OUTPUT_DWARF2_ADDR_CONST if defined.
12007
12008         * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16.
12009
12010 Tue Aug 11 18:12:53 1998  Dave Love  <d.love@dl.ac.uk>
12011
12012         * README.g77: Update from Craig.
12013
12014 Tue Aug 11 04:46:01 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12015
12016         * config/sparc/sparc.c (sparc_emit_set_const32): INTVAL is of
12017         type HOST_WIDE_INT.
12018         (safe_constDI sparc_emit_set_const64_quick1,
12019         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
12020         analyze_64bit_constant, const64_is_2insns,
12021         create_simple_focus_bits): Fix some bugs when compiled on real
12022         64-bit hosts.
12023         (function_arg_record_value_3, function_arg_record_value_2,
12024         function_arg_record_value): Add fully prototyped forward decls.
12025         * config/sparc/sparc.md (define_insn cmpsi_insn_sp32): Rename back
12026         to cmpsi_insn and use on both 64 and 32 bit targets.
12027         (define_insn cmpsi_insn_sp64): Remove.
12028         (define_expand zero_extendsidi2): Allow for 32-bit target too.
12029         (define_insn zero_extendsidi2_insn): Rename to
12030         zero_extendsidi2_insn_sp64.
12031         (define_insn zero_extendsidi2_insn_sp32): New pattern and
12032         assosciated forced split for it.
12033
12034         * config/sparc/sparc.c (const64_operand, const64_high_operand):
12035         New predicates.
12036         * config/sparc/sparc.h: Declare them.
12037         (PREDICATE_CODES): Add them.
12038         * config/sparc/sparc.md (movdi_lo_sum_sp64_dbl,
12039         movdi_high_sp64_dbl, xordi3_sp64_dbl): Use them.
12040
12041 Mon Aug 10 22:57:24 1998  John Carr  <jfc@mit.edu>
12042
12043         * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt
12044         in v9 case as the latter makes the Solaris assembler crash.
12045
12046 Mon Aug 10 22:39:09 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12047
12048         * config/sparc/sparc.c (input_operand): Do not accept a LO_SUM MEM
12049         for TFmode when !v9.  We require offsettable memory addresses.
12050         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Handle TFmode to
12051         DFmode register number conversions.
12052         * config/sparc/sparc.md (define_split DFmode moves): If register
12053         is a SUBREG do alter_subreg on it before using.
12054         (define_expand movtf): Fixup comment about alignment on v9.
12055         (define_split TFmode moves): Don't use gen_{high,low}part, create
12056         explicit SUBREGs instead.
12057
12058 Mon Aug 10 19:02:55 1998  John Carr  <jfc@mit.edu>
12059
12060         * Makefile.in (mbchar.o): Depend on mbchar.c.
12061
12062 Mon Aug 10 04:28:13 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12063                           Richard Henderson  <rth@cygnus.com>
12064         
12065         Rewrite Sparc backend for better code generation and
12066         improved sparc64 support.
12067         * config/sparc/sp64-elf.h: Set JUMP_TABLES_IN_TEXT_SECTION to
12068         zero.
12069         * config/sparc/sysv4.h: Likewise.
12070         * config/sparc/sparc.c (v8plus_regcmp_p, sparc_operand,
12071         move_operand, v8plus_regcmp_op, emit_move_sequence,
12072         singlemove_string, doublemove_string, mem_aligned_8,
12073         output_move_double, output_move_quad, output_fp_move_double,
12074         move_quad_direction, output_fp_move_quad, output_scc_insn):
12075         Remove.
12076         (small_int_or_double): New predicate.
12077         (gen_compare_reg): Remove TARGET_V8PLUS cmpdi_v8plus emission.
12078         (legitimize_pic_address): Emit movsi_{high,lo_sum}_pic instead of
12079         old pic_{sethi,lo_sum}_si patterns.
12080         (mem_min_alignment): New generic function to replace
12081         mem_aligned_8, which uses REGNO_POINTER_ALIGN information when
12082         available and can test for arbitrary alignments.  All callers
12083         changed.
12084         (save_regs, restore_regs, build_big_number,
12085         output_function_prologue, output_cbranch, output_return,
12086         sparc_flat_save_restore, sparc_flat_output_function_prologue,
12087         sparc_flat_output_function_epilogue): Prettify
12088         insn output.
12089         (output_function_epilogue): Likewise and add code to output
12090         deferred case vectors.
12091         (output_v9branch): Likewise, add new arg INSN and use it to tack
12092         on branch prediction settings.  All callers changed.
12093         (print_operand): Likewise and output %l44 for LO_SUMs when
12094         TARGET_CM_MEDMID.
12095         (sparc_splitdi_legitimate): New function to make sure DImode
12096         splits can be run properly when !arch64.
12097         (sparc_initialize_trampoline, sparc64_initialize_trampoline):
12098         Reformat example code in comments.
12099         (set_extends): Remove UNSPEC/v8plus_clear_high case.
12100         (sparc_addr_diff_list, sparc_addr_list): New statics to keep track
12101         of deferred case vectors we need to output.
12102         (sparc_defer_case_vector): Record a case vector.
12103         (sparc_output_addr_vec, sparc_output_addr_diff_vec,
12104         sparc_output_deferred_case_vectors): New functions to output them.
12105         (sparc_emit_set_const32): New function to form 32-bit constants in
12106         registers when that requires more than one instruction.
12107         (safe_constDI, sparc_emit_set_const64_quick1,
12108         sparc_emit_set_const64_quick2, sparc_emit_set_const64_longway,
12109         analyze_64bit_constant, const64_is_2insns,
12110         create_simple_focus_bits, sparc_emit_set_const64): New functions
12111         which do the same for 64-bit constants when arch64.
12112         (sparc_emit_set_symbolic_const64): New function to emit address
12113         loading for all code models on v9.
12114         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Do not make
12115         %g1 fixed when arch64, unfix %g0 when TARGET_LIVE_G0.
12116         (ALTER_HARD_SUBREG): Fix thinko, return REGNO + 1 not 1.
12117         (SECONDARY_INPUT_RELOAD_CLASS, SECONDARY_OUTPUT_RELOAD_CLASS): Fix
12118         inaccuracies in comments, add symbolic and text_segment operands
12119         when TARGET_CM_MEDANY and TARGET_CM_EMBMEDANY respectively.  Use
12120         GENERAL_REGS in these cases as a temp REG is needed to load these
12121         addresses into a register properly.
12122         (EXTRA_CONSTRAINT): Document more accurately, remove Q case as it
12123         is no longer used.
12124         (GO_IF_LEGITIMATE_ADDRESS): Allow TFmode for LO_SUM on v9 since fp
12125         quads are guarenteed to have 16-byte alignment.
12126         (LEGITIMIZE_ADDRESS): For SYMBOL_REF, CONST, and LABEL_REF use
12127         copy_to_suggested_reg instead of explicit LO_SUM and HIGH.
12128         (ASM_OUTPUT_ADDR_VEC, ASM_OUTPUT_ADDR_DIFF_VEC): New macros for
12129         deferred case vector implementation.
12130         (ASM_OUTPUT_ADDR_VEC_ELT): Use fputc to output newline.
12131         (ASM_OUTPUT_ADDR_DIFF_ELT): Parenthesize LABEL in macro calls.
12132         Generate "internal label - label" instead of "label - 1b".
12133         (PRINT_OPERAND_ADDRESS): For LO_SUM use %l44 on TARGET_CM_MEDMID.
12134         (PREDICATE_CODES): Remove sparc_operand, move_operand,
12135         v8plus_regcmp_op.  Add small_int_or_double, input_operand, and
12136         zero_operand.
12137         (doublemove_string, output_block_move, output_fp_move_double,
12138         output_fp_move_quad, output_move_double, output_move_quad,
12139         output_scc_insn, singlemove_string, mem_aligned_8, move_operand,
12140         sparc_operand, v8plus_regcmp_op, v8plus_regcmp_p): Remove externs.
12141         (sparc_emit_set_const32, sparc_emit_set_const64,
12142         sparc_emit_set_symbolic_const64, input_operand, zero_operand,
12143         mem_min_alignment, small_int_or_double): Add externs.
12144         * config/sparc/sparc.md: Document the many uses of UNSPEC and
12145         UNSPEC_VOLATILE in this backend.
12146         (define_function_unit ieu): Rename to ieu_unnamed.  Add move and
12147         unary to types which execute in it.
12148         (define_function_unit ieu_shift): Rename to ieu0.
12149         (define_function_unit ieu1): New, executes compare, call, and
12150         uncond_branch type insns.
12151         (define_function_units for type fdivs, fdivd, fsqrt): These
12152         execute in the fpu multiply unit not the adder on UltraSparc.
12153         (define_expand cmpdi): Disallow TARGET_V8PLUS.
12154         (define_insn cmpsi_insn): Rename to cmpsi_insn_sp32.
12155         (define_insn cmpsi_insn_sp64): New, same as sp32 variant except it
12156         allows the arith_double_operand predicate and rHI constraint when
12157         TARGET_ARCH64.
12158         (define_insn cmpdi_sp64, cmpsf_fpe, cmpdf_fpe, cmptf_fpe,
12159         cmpsf_fp, cmpdf_fp, cmptf_fp, sltu_insn, neg_sltu_insn,
12160         neg_sltu_minux_x, neg_sltu_plus_x, sgeu_insn, neg_sgeu_insn,
12161         sltu_plus_x, sltu_plus_x, sltu_plus_x_plus_y, x_minus_sltu,
12162         sgeu_plus_x, x_minus_sgeu, movqi_cc_sp64, movhi_cc_sp64,
12163         movsi_cc_sp64, movdi_cc_sp64, movsf_cc_sp64, movdf_cc_sp64,
12164         movtf_cc_sp64, movqi_cc_reg_sp64, movhi_cc_reg_sp64,
12165         movsi_cc_reg_sp64, movdi_cc_reg_sp64, movsf_cc_reg_sp64,
12166         movdf_cc_reg_sp64, movtf_cc_reg_sp64, zero_extendhisi2_insn,
12167         cmp_siqi_trunc, cmp_siqi_trunc_set, sign_extendhisi2_insn,
12168         sign_extendqihi2_insn, sign_extendqisi2_insn,
12169         sign_extendqidi2_insn, sign_extendhidi2_insn,
12170         extendsfdf2, extendsftf2, extenddftf2, truncdfsf2, trunctfsf2,
12171         trunctfdf2, floatsisf2, floatsidf2, floatsitf2, floatdisf2,
12172         floatdidf2, floatditf2, fix_truncsfsi2, fix_truncdfsi2,
12173         fix_trunctfsi2, fix_truncsfdi2, fix_truncdfdi2, fix_trunctfdi2,
12174         adddi3_sp64, addsi3, cmp_ccx_plus, cmp_cc_plus_set, subdi_sp64,
12175         subsi3, cmp_minus_ccx, cmp_minus_ccx_set, mulsi3, muldi3,
12176         muldi3_v8plus, cmp_mul_set, mulsidi3, mulsidi3_v8plus,
12177         const_mulsidi3_v8plus, mulsidi3_sp32, const_mulsidi3,
12178         smulsi3_highpart_v8plus, unnamed subreg mult,
12179         const_smulsi3_highpart_v8plus, smulsi3_highpart_sp32,
12180         const_smulsi3_highpart, umulsidi3_v8plus, umulsidi3_sp32,
12181         const_umulsidi3, const_umulsidi3_v8plus, umulsi3_highpart_v8plus,
12182         const_umulsi3_highpart_v8plus, umulsi3_highpart_sp32,
12183         const_umulsi3_highpart, divsi3, divdi3, cmp_sdiv_cc_set, udivsi3,
12184         udivdi3, cmp_udiv_cc_set, smacsi, smacdi, umacdi, anddi3_sp64,
12185         andsi3, and_not_di_sp64, and_not_si, iordi3_sp64, iorsi3,
12186         or_not_di_sp64, or_not_si, xordi3_sp64, xorsi3, xor_not_di_sp64,
12187         xor_not_si, cmp_cc_arith_op, cmp_ccx_arith_op,
12188         cmp_cc_arith_op_set, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
12189         cmp_cc_xor_not_set, cmp_ccx_xor_not_set, cmp_cc_arith_op_not,
12190         cmp_ccx_arith_op_not, cmp_cc_arith_op_not_set,
12191         cmp_ccx_arith_op_not_set, negdi2_sp64, cmp_cc_neg, cmp_ccx_neg,
12192         cmp_cc_set_neg, cmp_ccx_set_neg, one_cmpldi2_sp64, cmp_cc_not,
12193         cmp_ccx_not, cmp_cc_set_not, cmp_ccx_set_not, addtf3, adddf3,
12194         addsf3, subtf3, subdf3, subsf3, multf3, muldf3, mulsf3,
12195         muldf3_extend, multf3_extend, divtf3, divdf3, divsf3, negtf2,
12196         negdf2, negsf2, abstf2, absdf2, abssf2, sqrttf2, sqrtdf2, sqrtsf2,
12197         ashlsi3, ashldi3, unnamed DI ashift, cmp_cc_ashift_1,
12198         cmp_cc_set_ashift_1, ashrsi3, ashrdi3, unnamed DI ashiftrt,
12199         ashrdi3_v8plus, lshrsi3, lshrdi3, unnamed DI lshiftrt,
12200         lshrdi3_v8plus, tablejump_sp32, tablejump_sp64, call_address_sp32,
12201         call_symbolic_sp32, call_address_sp64, call_symbolic_sp64,
12202         call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
12203         call_address_untyped_struct_value_sp32,
12204         call_symbolic_untyped_struct_value_sp32, call_value_address_sp32,
12205         call_value_symbolic_sp32, call_value_address_sp64,
12206         call_value_symbolic_sp64, branch_sp32, branch_sp64,
12207         flush_register_windows, goto_handler_and_restore,
12208         goto_handler_and_restore_v9, goto_handler_and_restore_v9_sp64,
12209         flush, all ldd/std peepholes, return_qi, return_hi, return_si,
12210         return_addsi, return_di, return_adddi, return_sf, all call+jump
12211         peepholes, trap, unnamed trap insns): Prettify output strings.
12212         (define_insn anddi3_sp32, and_not_di_sp32, iordi3_sp32,
12213         or_not_di_sp32, xordi3_sp32, xor_not_di_sp32, one_cmpldi2):
12214         Likewise and force + implement splits for integer cases.
12215         (define_insn return_sf_no_fpu): Likewise and allow to match when
12216         no-fpu because of our subreg SFmode splits.
12217         (define_insn zero_extendqihi2, zero_extendqisi2_insn,
12218         zero_extendqidi2_insn, zero_extendhidi2_insn,
12219         zero_extendsidi2_insn, sign_extendsidi2_insn): Likewise and use
12220         input_operand for second operand.
12221         (cmp_minus_cc, cmp_minus_cc_set): Likewise and use
12222         reg_or_0_operand for operand 2 so new splits can use it.
12223         (cmp_zero_extendqisi2, cmp_zero_extendqisi2_set, cmp_cc_plus,
12224         cmp_cc_xor_not): Likewise and don't forget to check TARGET_LIVE_G0
12225         too.
12226         (cmp_zero_extract, cmp_zero_extract_sp64): Likewise and allow
12227         CONST_DOUBLEs for operand 2.
12228         (define_insn move_label_di): Likewise and label distance
12229         optimization because it no longer works with new deferred case
12230         vector scheme.  To be revisited.
12231         (define_insn x_minus_y_minus_sltu, x_minus_sltu_plus_y): Likewise
12232         and allow reg_or_0_operand and J constraint for second operand.
12233         (define_insn jump): Set branch predict taken on V9.
12234         (define_insn tablejump): Emit LABEL_REF + PLUS memory address for
12235         new deferred case vector scheme.
12236         (define_insn pic_tablejump_32, pic_tablejump_64): Remove.
12237         (define_insn negdi2_sp32): Force + implement splits.
12238         (define_insn negsi2, one_cmplsi2): Rename to negsi2_not_liveg0 and
12239         one_cmplsi2_not_liveg0 respectively, and create expander of original
12240         names which emit special rtl for TARGET_LIVE_G0.
12241         (define_insn cmpdi_v8plus, scc_si, scc_di): Remove.
12242         (define_insn seq, sne, slt, sge, sle, sltu, sgeu): Don't do
12243         gen_compare_reg, FAIL instead.
12244         (define_insn sgtu, sleu): Likewise and check gen_s*() return
12245         values when trying to reverse condition codes, if they FAIL then
12246         do likewise.
12247         (define_insn snesi_zero, neg_snesi_zero, snesi_zero_extend,
12248         snedi_zero, neg_snedi_zero, snedi_zero_trunc, seqsi_zero,
12249         neg_seqsi_zero, seqsi_zero_extend, seqdi_zero, neg_seqdi_zero,
12250         seqdi_zero_trunc, x_plus_i_ne_0, x_minus_i_ne_0, x_plus_i_eq_0,
12251         x_minus_i_eq_0): Add new splits to perform these multi-insn cases,
12252         set output string to # to indicate they are mandatory splits.
12253         (define_insn pic_lo_sum_si, pic_sethi_si, pic_lo_sum_di,
12254         pic_sethi_di, move_pic_label_si): Remove.
12255         (define_insn movsi_low_sum, movsi_high, movsi_lo_sum_pic,
12256         movsi_high_pic, movsi_pic_label_reg): New patterns to take their
12257         place.
12258         (define_expand movsi_pic_label_ref, define_insn
12259         movsi_high_pic_label_ref, movsi_lo_sum_pic_label_ref): New
12260         expander and insns to handle PIC label references and deferred
12261         case vectors.
12262         (define_insn get_pc_via_rdpc): Comment out as it is no longer
12263         used.
12264         (define_expand movqi, movhi, movsi, movdi, movsf, movdf, movtf):
12265         Rewrite to not use emit_move_sequence, make use of new constant
12266         formation code, and new splits for all multi-insn cases.
12267         (define_insn movqi_insn): Remove sethi case, it can never happen.
12268         Use reg_or_zero_operand instead of const0_rtx explicit test,
12269         use input_operand instead of move_operand for source, and use
12270         general_operand now for dest.
12271         (define_insn movhi_insn): Similar but leave sethi case.
12272         (define_insn lo_sum_qi, store_qi, store_hi): Remove.
12273         (define_insn sethi_hi lo_sum_hi): Rename to movhi_high and
12274         movhi_lo_sum respectively, prettify output string.
12275         (define_insn movsi_zero_liveg0): New pattern to put zero into a
12276         register when needed on TARGET_LIVE_G0.
12277         (define_insn movsi_insn): Use general_operand and input_operand
12278         for dest and src respectively.  Simplify applicability test.
12279         Prettify output strings, and add clr alternative for J
12280         constraint.
12281         (define_insn movdi_sp32_v9, movdi_sp32, define_splits for
12282         deprecated std and reg-reg DI moves): Remove and...
12283         (define_insn movdi_insn_sp32, movdi_insn_sp64): Replace with new
12284         implementation which uses forced splits for all non-single insn
12285         cases.
12286         (define_split DI move cases on !arch64): New splits to handle all
12287         situations of 64-bit double register DImode on 32bit, and
12288         unaligned registers and memory addresses for all subtargets.
12289         (define_insn movsf_const_insn, movdf_const_insn, store_sf):
12290         Remove.
12291         (define_insn movsf_insn, movsf_no_f_insn): Use general_operand and
12292         input_operand for dest and src respectively, prettify output
12293         strings.
12294         (define_insn movdf_insn, movdf_no_e_insn, store_df,
12295         movtf_const_insn, movtf_insn, movtf_no_e_insn, store_tf): Remove
12296         and...
12297         (define_insn movdf_insn_sp32, movdf_no_e_insn_sp32,
12298         movdf_insn_sp64, movdf_no_e_insn_sp64, movtf_insn,
12299         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_sp64,
12300         movtf_no_e_insn_sp64) Replace with new
12301         implementation which uses forced splits for all non-single insn
12302         cases.
12303         (define_split DF move cases): New splits in similar vein to DI
12304         move counterparts.
12305         (define_insn sethi_di_medlow, sethi_di_medium_pic,
12306         sethi_di_embmedany_data, sethi_di_embmedany_text, sethi_di_sp64,
12307         movdi_sp64_insn): Remove old v9 code model and constant loading
12308         support insns and..
12309         (define_insn pic_lo_sum_di, pic_sethi_di,
12310         sethi_di_medlow_embmedany_pic, sethi_di_medlow, losum_di_medlow,
12311         seth44, setm44, setl44, sethh, setlm, sethm, setlo,
12312         embmedany_sethi, embmedany_losum, embmedany_brsum,
12313         embmedany_textuhi, embmedany_texthi, embmedany_textulo,
12314         embmedany_textlo, movdi_lo_sum_sp64_cint, movdi_lo_sum_sp64_dbl,
12315         movdi_high_sp64_cint, movdi_high_sp64_dbl): Replace with new
12316         scheme, using unspecs, secondary reloads, and one to one sparc
12317         insn to rtl insn mapping for better scheduling and code gen.
12318         (define_expand reload_indi, reload_outdi): Reload helpers for
12319         MEDANY and EMBMEDANY symbol address loading cases which require a
12320         temporary register.
12321         (define_expand movsicc): Remove v8plus_regcmp cases.
12322         (define_insn movdi_cc_sp64_trunc, movdi_cc_reg_sp64_trunc,
12323         cmp_zero_extendqidi2, cmp_zero_extendqidi2_set, cmp_qidi_trunc,
12324         cmp_diqi_trunc_set): New patterns used by some of the new scc
12325         splits on arch64.
12326         (define_insn xordi3_sp64_dbl): New pattern used for constant
12327         formation when crossing from 32-bit targets.
12328         (define_insn movsi_cc_reg_v8plus, v8plus_clear_high, and helper
12329         split): Remove.
12330         (define_insn addx, subx): Make visible and prettify.
12331         (define_insn adddi3_insn_sp32): Likewise and force split.
12332         (define_insn addx_extend, subx_extend, unnamed): New patterns for
12333         64bit scc split usage.
12334         (define_insn unnamed plusDI zero_extend, unnamed minusDI
12335         zero_extend, subdi3): Force and implement splits.
12336         
12337         * final.c (final_scan_insn): Don't output labels if target
12338         specifies ASM_OUTPUT_ADDR_{DIFF}_VEC.  Do these macro operations
12339         instead.
12340         
12341         * reorg.c (dbr_schedule): When taking on BR_PRED notes at the end,
12342         don't forget to walk inside SEQUENCESs too as these are what the
12343         delay slot scheduler will create.
12344         
12345 Mon Aug 10 01:21:01 1998  Richard Henderson  <rth@cygnus.com>
12346
12347         * alpha.md (extxl+1,+2): New patterns to work around
12348         combine lossage.
12349
12350 Sat Aug  8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org)
12351
12352         * rs6000.c (rs6000_allocate_stack_space) Fix typo which
12353         caused bad assembly code to be generated.
12354
12355 Sat Aug  8 18:53:28 1998  Jeffrey A Law  (law@cygnus.com)
12356
12357         * netbsd.h: Fix typo.
12358
12359 Mon Aug  3 00:06:42 1998  Robert Lipe  <robertl@dgii.com> 
12360
12361         * config.sub: Fix typo.
12362
12363 Sun Aug  2 22:39:08 1998  Hans-Peter Nilsson  <hp@axis.se>
12364
12365         * invoke.texi (Environment Variables): Typo: Change "ascpects"
12366         into "aspects".
12367         (Running Protoize): Typo: Change "ther" into "other".
12368
12369 Sun Aug  2 00:42:50 1998  Jeffrey A Law  (law@cygnus.com)
12370
12371         * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO.
12372         * m68k/netbsd.h: Likewise.
12373         * ns32k/netbsd.h: Likewise.
12374         * sparc/netbsd.h: Likewise.
12375
12376 Sat Aug  1 17:59:30 1998  Richard Henderson  <rth@cygnus.com>
12377
12378         * ginclude/va-alpha.h (va_list): Use a typedef, not a define.
12379         * ginclude/va-clipper.h (va_list): Likewise.
12380
12381 Fri Jul 31 20:22:02 1998  Michael Meissner  <meissner@cygnus.com>
12382
12383         * rs6000.c (rs6000_override_options): If big endian and -Os, use
12384         load/store multiple instructions unless user overrides.
12385
12386 Fri Jul 31 17:08:59 1998  Jeffrey A Law  (law@cygnus.com)
12387
12388         * ns32k/netbsd.h: Fix typo.
12389
12390 Fri Jul 31 10:23:55 1998  Doug Evans  <devans@canuck.cygnus.com>
12391
12392         * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number
12393         labels with .debugsym if no parallel insns.
12394
12395 Thu Jul 30 19:15:53 1998  Richard Henderson  <rth@cygnus.com>
12396
12397         * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN.
12398         (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap.
12399
12400 Thu Jul 30 19:50:15 1998  David Edelsohn  <edelsohn@gnu.org>
12401
12402         * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete.
12403         (AR_FOR_TARGET): Define.
12404
12405 Thu Jul 30 12:29:12 1998  Mark Mitchell  <mark@markmitchell.com>
12406
12407         * dyn-string.h: New file.
12408         * dyn-string.c: Likewise.
12409         * Makefile.in (OBJS): Add dyn-string.o.
12410         (dwarf2out.o): Add dyn-string.h dependency.
12411         (dyn-string.o): List dependencies.
12412         * dwarf2out.c: Include dyn-string.h.
12413         (ASM_NAME_TO_STRING): Use dyn_string_append, rather than strcpy.
12414         (addr_const_to_string): Take a dyn_string_t, not a char* as a
12415         prototype.  Use dyn_string_append rather than strcat, throughout.
12416         (addr_to_string): Use dyn_string_t.
12417
12418 Thu Jul 30 13:08:07 1998  Ken Raeburn  <raeburn@cygnus.com>
12419
12420         Function entry/exit profiling instrumentation:
12421         * expr.h (profile_function_entry_libfunc,
12422         profile_function_exit_libfunc): Declare new variables.
12423         * optabs.c: Define them here.
12424         (init_optabs): Initialize them.
12425         * tree.h (struct tree_decl): New flag
12426         no_instrument_function_entry_exit.
12427         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT): New accessor macro.
12428         * c-decl.c (duplicate_decls): Merge it.
12429         * c-common.c (enum attrs): New value A_NO_INSTRUMENT_FUNCTION.
12430         (init_attributes): Use it for "no_instrument_function".
12431         (decl_attributes): Handle it, for functions that have not yet been
12432         compiled.  Set decl flag.
12433         * flags.h (flag_instrument_function_entry_exit): Declare new
12434         variable.
12435         * toplev.c (flag_instrument_function_entry_exit): Define it here.
12436         (f_options): New option "instrument-functions".
12437         * function.h (struct function): New field instrument_entry_exit.
12438         * function.c (current_function_instrument_entry_exit): New
12439         variable.
12440         (push_function_context_to, pop_function_context_from): Save and
12441         restore.
12442         (expand_function_start): Set current_ variable, maybe emit return
12443         label and entry profile call.
12444         (expand_function_end): Maybe emit exit profile call.
12445
12446 Thu Jul 30 00:58:34 1998  Jeffrey A Law  (law@cygnus.com)
12447
12448         * i386.md (movqi): When optimizing a load of (const_int 1) into a
12449         NON_QI_REG_P, pretend the register is SImode.
12450
12451 Wed Jul 29 23:49:23 1998  Todd Vierling <tv@netbsd.org>
12452
12453         * configure.in: Use xm-netbsd.h as the NetBSD xm file (not xm-siglist).
12454         Accept arm32 as arm, m68k4k as m68k, mipsle as mips-dec, and any
12455         manufacturer id for ns32k.
12456         * configure: Regenerated.
12457         * config/netbsd.h: When using ASM_WEAKEN_LABEL, make it global too.
12458         * config/t-netbsd: Don't compile libgcc1-test as the fns are in libc.
12459         * config/i386/netbsd.h: Undefine DWARF2_UNWIND_INFO, not define as 0.
12460         * config/m68k/netbsd.h: Same.
12461         * config/ns32k/netbsd.h: Same.
12462         * config/sparc/netbsd.h: Same.
12463
12464 Wed Jul 29 22:39:21 1998  Jeffrey A Law  (law@cygnus.com)
12465
12466         * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO
12467         or UNROLL_COMPLETELY loop that starts with a jump to its
12468         exit code.
12469
12470 Wed Jul 29 22:18:14 1998  David Edelsohn  <edelsohn@gnu.org>
12471
12472         * rs6000/rs6000.md (absdi2 define_split): Swap operands of MINUS.
12473         * rs6000/rs6000.c (mask64_operand): Use HOST_BITS_PER_WIDE_INT.
12474         (print_operand, case 'B'): Don't fall through.
12475         (print_operand, case 'S'): Correct mask begin/end computation.
12476         Use HOST_BITS_PER_WIDE_INT.
12477         * rs6000/rs6000.h (CPP_PREDEFINES): Define _LONG_LONG.
12478         (CONDITIONAL_REGISTER_USAGE): GPR13 fixed if TARGET_64BIT.
12479         * rs6000/aix41.h (CPP_PREDEFINES): Same.
12480         * rs6000/aix43.h (CPP_PREDEFINES): Same.
12481
12482 Wed Jul 29 11:47:10 1998  Nick Clifton  <nickc@cygnus.com>
12483
12484         * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber
12485         constraint from second alternative.
12486
12487 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
12488
12489         * configure.in: Fix --without/--disable cases for local-prefix, 
12490         gxx-include-dir and checking.
12491
12492 Tue Jul 28 22:01:23 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12493
12494         * configure.in (enable_haifa): Set by default for sparc64 too.
12495         configure: Rebuilt.
12496
12497 Tue Jul 28 23:29:04 1998  Jason Merrill  <jason@yorick.cygnus.com>
12498
12499         * i386/cygwin32.h (VALID_MACHINE_TYPE_ATTRIBUTE): New macro.
12500         * i386/winnt.c (associated_type): New fn.
12501         (i386_pe_valid_type_attribute_p): New fn.
12502         (i386_pe_check_vtable_importexport): Remove.
12503         (i386_pe_dllexport_p): Use associated_type.
12504         (i386_pe_dllimport_p): Likewise.
12505
12506         From Antonio M. O. Neto <anmendes@cruzeironet.com.br>:
12507         * i386.c (i386_valid_type_attribute_p): Also accept
12508         attributes for METHOD_TYPEs.
12509
12510 Tue Jul 28 23:17:39 1998  Peter Gerwinski <peter@gerwinski.de>
12511
12512         * tree.c (build_range_type): Copy TYPE_SIZE_UNIT.
12513
12514 Tue Jul 28 22:31:12 1998  Craig Burley  <burley@gnu.org>
12515
12516         * gcc.c: Fix commentary describing %g, %u, %U, and %O.
12517
12518         * gcc.c (do_spec_1): Fix handling of %g%O and %U%O to prevent
12519         them from generating a new base name for each occurence of
12520         a specific suffix.
12521
12522 1998-07-28  Vladimir N. Makarov  <vmakarov@cygnus.com>
12523
12524         * cse.c (cse_insn): Enable subsitution inside libcall only for REG,
12525         SUBREG, MEM.
12526         * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. 
12527
12528
12529
12530         * cplus-dem.c (type_kind_t): New type.
12531         (demangle_template_value_parm): Add type_kind_t parameter.  Rely
12532         on this paramter, rather than demangling the type again.
12533         (demangle_integral_value): Pass tk_integral.
12534         (demangle_template_: Pass the value returned from do_type.
12535         (do_type): Return a type_kind_t.  Pass tk_integral to
12536         demangle_template_value_parm for array bounds.
12537         (demangle_fund_type): Likewise.
12538         
12539 Mon Jul 27 00:54:41 1998  Jason Merrill  <jason@yorick.cygnus.com>
12540
12541         * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are
12542         identical.
12543
12544 Mon Jul 27 22:18:36 1998  Jeffrey A Law  (law@cygnus.com)
12545
12546         * pa.c (move_operand): Accept CONSTANT_P_RTX.
12547
12548 Mon Jul 27 17:18:52 1998  Dave Brolley  <brolley@cygnus.com>
12549
12550         * stor-layout.c (layout_type): Handle arrays of bits, for Chill.
12551
12552         * expr.c (get_inner_reference): Handle zero-based, unsigned, array
12553         index conversion.
12554
12555 Mon Jul 27 14:51:33 1998  Jeffrey A Law  (law@cygnus.com)
12556
12557         * mn10300.h (DEBUGGER_AUTO_OFFSET): Define.
12558         (DEBUGGER_ARG_OFFSET): Likewise.
12559
12560         * mn10300.md (movsf): Remove last change.  Not needed.
12561
12562 Mon Jul 27 14:22:36 1998  Dave Brolley  <brolley@cygnus.com>
12563
12564         * c-lex.c (yylex): Fix boundary conditions in character literal and
12565         string literal loops.
12566
12567 Mon Jul 27 11:43:54 1998  Stan Cox  <scox@cygnus.com>
12568
12569         * longlong.h (count_leading_zeros): Sparclite scan instruction was
12570         being invoked incorrectly.
12571
12572         * i386.c (ix86_prologue): Added SUBTARGET_PROLOGUE invocation.
12573         * i386/cygwin32.h (STARTFILE_SPEC, LIB_SPEC, SUBTARGET_PROLOGUE): 
12574         Add -pg support. 
12575         * i386/win32.h: New file.  Hybrid mingw32.h/cygwin32.h configuration.
12576         * configure.in: Added i[34567]86-*-win32
12577         * config.sub: Ditto.
12578         * configure: Rebuilt.
12579         
12580 Sun Jul 26 01:11:12 1998  H.J. Lu  (hjl@gnu.org)
12581
12582         * i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Return 0 when eliminating
12583         the frame pointer and compiling PIC code and reload has not completed.
12584
12585         * i386.c (output_to_reg): Add code to emulate non-popping DImode
12586         case.
12587
12588 Sun Jul 26 01:01:32 1998  Jeffrey A Law  (law@cygnus.com)
12589
12590         * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head.
12591
12592 Sat Jul 25 23:29:23 1998  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12593
12594         * Makefile.in (install-info): Only try to update the info
12595         directory file if it exists in the first place.
12596
12597 Fri Jul 24 18:58:37 1998  Klaus Espenlaub  <kespenla@student.informatik.uni-ulm.de>
12598
12599         * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete.
12600
12601 Fri Jul 24 14:20:26 1998  Jeffrey A Law  (law@cygnus.com)
12602
12603         * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle
12604         CONST_DOUBLE source.
12605
12606 Fri Jul 24 11:17:04 1998  Nick Clifton  <nickc@cygnus.com>
12607
12608         * config/arm/thumb.c (thumb_print_operand): Decode %_ in asm
12609         strings as the insertion of USER_LABEL_PREFIX.
12610         * config/arm/thumb.h (PRINT_OPERAND_PUNCT_VALID_P): Accept _ as a
12611         valid code.
12612         * config/arm/thumb.md: Use %_ as a prefix to gcc library function
12613         calls. 
12614
12615 Thu Jul 23 18:53:20 1998  Jim Wilson  <wilson@cygnus.com>
12616
12617         * dbxout.c (dbxout_range_type): Only call dbxout_type_index for
12618         already defined type.
12619
12620 Thu Jul 23 13:49:41 1998  Jeffrey A Law  (law@cygnus.com)
12621
12622         * expr.c (check_max_integer_computation_mode): Allow conversions
12623         of constant integers to MAX_INTEGER_COMPUTATION_MODE.
12624         (expand_expr): Likewise.
12625
12626 Thu Jul 23 11:12:06 1998  Alexandre Petit-Bianco  <apbianco@cygnus.com>
12627
12628         * expr.c (expand_expr): Expand RETURN_EXPR.
12629
12630 Thu Jul 23 11:00:29 1998  Jim Wilson  <wilson@cygnus.com>
12631
12632         * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION.
12633
12634 Wed Jul 22 19:10:00 1998  Catherine Moore  <clm@cygnus.com>
12635
12636         * dwarf2out.c (output_aranges):  Call stripattributes
12637         for TEXT_SECTION references.
12638         (output_line_info): Likewise.
12639
12640 Wed Jul 22 14:08:54 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12641
12642         * profile.c (branch_prob): Call allocate_reg_info after outputting
12643         profile rtl in instrument_arcs.
12644
12645 Wed Jul 22 12:47:49 1998  Jim Wilson  <wilson@cygnus.com>
12646
12647         * fixinc.irix (math.h): Install wrapper instead of copying.
12648
12649 Wed Jul 22 12:37:14 1998  Alexandre Petit-Bianco <apbianco@cygnus.com>
12650
12651         * tree.def (EXPR_WITH_FILE_LOCATION): Defined as an 'e' expression
12652         so WFL are expanded correctly when contained in a COMPOUND_EXPR.
12653         * tree.h (EXPR_WFL_EMIT_LINE_NOTE): Change macro not to use
12654         lang_flag_0. Added documentation in the flag table.
12655
12656 Tue Jul 21 23:28:35 1998  Klaus Kaempf <kkaempf@rmi.de>
12657
12658         * cccp.c (do_include): Fix vax c style include handling.
12659
12660 Tue Jul 21 13:28:19 1998  Jason Merrill  <jason@yorick.cygnus.com>
12661
12662         * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays.
12663
12664 Sun Jul 12 01:27:05 1998  Jason Merrill  <jason@yorick.cygnus.com>
12665
12666         * fold-const.c (non_lvalue): Don't deal with null pointer 
12667         constants here.
12668         (fold, case COMPOUND_EXPR): Wrap a constant 0 in a NOP_EXPR.
12669
12670 Tue Jul 21 15:49:31 1998  David Edelsohn  <edelsohn@gnu.org>
12671
12672         * rs6000.h (PREDICATE_CODES): Add CONSTANT_P_RTX.
12673         * rs6000.md (movsi, movdi): Add CONSTANT_P_RTX.
12674         * rs6000.c (short_cint_operand): Add CONSTANT_P_RTX.
12675         (u_short_cint_operand): Same.
12676         (reg_or_cint_operand): Same.
12677         (logical_operand): Same.
12678         (input_operand): Same.
12679         (reg_or_short_operand): Use u_short_cint_operand.
12680
12681 Tue Jul 21 08:56:42 1998  Richard Henderson  <rth@cygnus.com>
12682
12683         * alpha.md (fix_truncdfsi2, fix_truncsfsi2): Remove the define_expands,
12684         but keep the insns and splits.  Adjust so when the ultimate destination
12685         is memory, use cvtql.
12686
12687 Tue Jul 21 08:55:09 1998  Richard Henderson  <rth@cygnus.com>
12688
12689         * flow.c (regno_uninitialized): Fixed regs are never uninitialized.
12690
12691 Tue Jul 21 00:31:01 1998  Jeffrey A Law  (law@cygnus.com)
12692
12693         * gcc.c (do_spec): Call "error" not "warning".
12694
12695         * configure.in: Fix minor problems with gas feature detection code.
12696         * configure: Rebuilt.
12697
12698         * gcc.c (do_spec): Issue a warning for '%[]' usage.
12699
12700         * Undo this change.
12701         * gcc.c: Delete %[spec] support.
12702         (do_spec_1, case '('): Likewise.
12703         (do_spec_1, case '['): Call error.
12704
12705 Mon Jul 20 22:34:17 1998  Richard Henderson  <rth@cygnus.com>
12706
12707         * alpha.h (CPP_SPEC): Tidy.  Hook to cpp_cpu and cpp_subtarget.
12708         (CPP_SUBTARGET_SPEC): Default to empty string.
12709         (CPP_AM_*, CPP_IM_*, CPP_CPU_*, CPP_CPU_SPEC): New.
12710         (EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): New.
12711         * alpha/elf.h (LD_SPEC): Use %(elf_dynamic_linker).
12712         * alpha/linux-elf.h (SUBTARGET_EXTRA_SPECS): New.
12713         (LIB_SPEC): Tidy.
12714         * alpha/linux.h (CPP_PREDEFINES): Tidy.
12715         * alpha/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): New.
12716         * alpha/netbsd.h (CPP_PREDEFINES): Tidy.
12717         * alpha/osf.h (CPP_PREDEFINES): Remove bits subsumed by CPP_CPU_SPEC.
12718         * alpha/win-nt.h (CPP_PREDEFINES): Likewise.
12719         * alpha/vsf.h (CPP_PREDEFINES): Likewise.
12720         (CPP_SUBTARGET_SPEC): New.  Do this instead of overriding CPP_SPEC.
12721         * alpha/vxworks.h: Likewise.
12722
12723 Mon Jul 20 22:51:57 1998  Ken Raeburn  <raeburn@cygnus.com>
12724
12725         * mips.md (reload_outsi): Added missing REGNO call.
12726         (smulsi3_highpart, umulsi3_highpart): Provide prototype for
12727         function pointer.
12728         (mul_acc_di, mul_acc_64bit_di): Don't use match_op_dup, use
12729         another match_operator and compare the codes.
12730
12731         * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero.
12732
12733         * MIPS multiply pattern fixes:
12734         * mips.h (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
12735         Add union classes for HI, LO, or HILO plus general registers.
12736         (GENERATE_MADD): Deleted.
12737         * mips.md (mulsi3_mult3): Don't disparage output-LO alternative.
12738         Add TARGET_MAD to condition.
12739         (mulsi3): Test HAVE_mulsi3_mult3, not specific flags.
12740         (mul_acc_si): Expand GENERATE_MADD here; it's the only use.  Use
12741         "*d" for accumulator, to give preference to LO initially but not
12742         during reload.
12743
12744 Mon Jul 20 16:16:38 1998  Dave Brolley  <brolley@cygnus.com>
12745
12746         * configure.in (enable_c_mbchar): New configure option.
12747         (extra_cpp_objs): Always available now.
12748
12749         * cexp.y (mbchar.h): #include it.
12750         (yylex): Handle Multibyte characters in character literals.
12751
12752         * cccp.c (mbchar.h): #include it.
12753         (main): Set character set based on LANG environment variable.
12754         (rescan): Handle multibyte characters in comments.
12755         (skip_if_group): See above.
12756         (validate_else): See above.
12757         (skip_to_end_of_comment): See above.
12758         (macarg1): See above.
12759         (discard_comments): See above.
12760         (rescan): Handle multibyte characters in string and character literals.
12761         (collect_expansion): See above.
12762         (skip_quoted_string): See above.
12763         (macroexpand): See above.
12764         (macarg1): See above.
12765         (discard_comments): See above.
12766         (change_newlines): See above.
12767
12768         * c-lex.c (mbchar.h): #include it.
12769         (GET_ENVIRONMENT): New macro.
12770         (init_lex): Set character set based on LANG environment variable.
12771         (yylex): Handle multibyte characters in character literals.
12772         (yylex): Handle multibyte characters in string literals.
12773
12774         * Makefile.in (mbchar.o): New target.
12775         (cccp$(exeext)): @extra_cpp_objs@ is always available.
12776         (cppmain$(exeext)): @extra_cpp_objs@ is always available.
12777
12778         * mbchar.[ch]: New files for multibyte character handling.
12779
12780 Mon Jul 20 01:11:11 1998  David S. Miller  <davem@pierdol.cobaltmicro.com>
12781
12782         * jump.c (jump_optimize): When simplifying noop moves and
12783         PUSH_ROUNDING, fix thinko so we use same criterion for identifying
12784         the PUSHes to rewrite in second loop as we did in the first.
12785
12786 Sun Jul 19 08:23:53 1998  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12787
12788         * cplus-dem.c (demangle_nested_args): Make function definition
12789         static to match the prototype.
12790
12791 Fri Jul 17 14:58:44 1998  Richard Henderson  <rth@cygnus.com>
12792
12793         * alloca.c: Respect USE_C_ALLOCA.
12794         * gencheck.c (xmalloc): Ignore __GNUC__ for definition.
12795         * gengenrtl.c (xmalloc): Likewise.
12796
12797 Fri Jul 17 14:18:14 1998  Richard Henderson  <rth@cygnus.com>
12798
12799         * loop.h (struct induction): Add no_const_addval.
12800         * loop.c (the_movables, reg_address_cost): New variables.
12801         (init_loop): Init reg_address_cost.
12802         (loop_optimize): Call end_alias_analysis.
12803         (scan_loop): Init the_movables.
12804         (record_giv): Init induction->no_const_addval.
12805         (basic_induction_var) [PLUS]: Use rtx_equal_p instead of ==.
12806         [REG]: Rearrange loop search test to catch more cases.
12807         (general_induction_var): Return success not benefit; take an extra
12808         argument for that.  Change all callers.
12809         (simplify_giv_expr) [PLUS]: Always combine invariants.  Use sge_plus.
12810         [MULT]: Use rtx_equal_p instead of ==.  Combine simple invariants.
12811         [default]: Search the_movables for additional combinations.
12812         (sge_plus_constant, sge_plus): New functions.
12813         (express_from_1): New function.
12814         (express_from): Always define.  Rewrite using express_from_1.
12815         (combine_givs_p): Handle more cases.  Ignore address cost.
12816         (cmp_combine_givs_stats): New function.
12817         (combine_givs_used_once, combine_givs_benefit_from): New functions.
12818         (combine_givs): Rewrite to do best-fit combination.
12819
12820         * fold-const.c (operand_equal_p): Handle RTL_EXPR.
12821         (fold): Do a complete (A*C)+(B*C) association check.
12822
12823 Fri Jul 17 11:21:55 1998  Jim Wilson  <wilson@cygnus.com>
12824
12825         * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT.
12826
12827 Fri Jul 17 11:48:55 1998  Jeffrey A Law  (law@cygnus.com)
12828
12829         * mn10300.c (MODES_TIEABLE_P): Fix typo.
12830
12831 Fri Jul 17 03:26:12 1998  Rihcard Earnshaw (rearnsha@arm.com)
12832
12833         * tree.c (valid_machine_attribute): Only create a new type variant if
12834         there is a decl to use it.
12835
12836 Thu Jul 16 14:48:04 1998  Nick Clifton  <nickc@cygnus.com>
12837
12838         * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have
12839         a suffix.
12840
12841 Fri Jul 17 03:24:40 1998  Hans-Peter Nilsson  <hp@axis.se>
12842
12843         * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may
12844         be deleted" 
12845
12846 Thu Jul 16 14:48:47 1998  Jeffrey A Law  (law@cygnus.com)
12847
12848         * mn10300.c (count_tst_insns): New arg oreg_countp.  Callers changed.
12849         Simplify tests for clearing an address register.
12850         (expand_prologue): Corresponding changes.
12851
12852         * mn10300.md (movXX patterns): Make sure the destination is an
12853         ADDRESS_REG when substituting "zero_areg" for (const_int 0).
12854         (logical patterns): Split into expanders + patterns
12855         (zero and sign extension patterns): Similarly.
12856         (shift patterns): Similarly.
12857
12858 Thu Jul 16 01:17:44 1998  Richard Henderson  <rth@cygnus.com>
12859
12860         * loop.c (emit_iv_add_mult): Scan the entire insn list generated
12861         for the sequence, recording base values.
12862
12863 Wed Jul 15 10:49:55 1998  Richard Henderson  <rth@cygnus.com>
12864
12865         * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix).
12866
12867 Tue Jul 14 14:15:30 1998  Nick Clifton  <nickc@cygnus.com>
12868
12869         * gcc.c: Remove ANSI-C ism from --help code.
12870
12871         * toplev.c: Support --help with USE_CPPLIB.
12872
12873 Tue Jul 14 14:46:08 1998  Jeffrey A Law  (law@cygnus.com)
12874
12875         * configure.in: Rework gas feature code to work with symlink based
12876         source trees.
12877
12878         * extend.texi: Clarify some issues related to local variables
12879         assigned to explicit registers.
12880
12881         * mn10300.md (mulsi): Turn into expander + pattern.
12882
12883         * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a
12884         alternative.
12885
12886 Tue Jul 14 07:41:59 1998  Richard Earnshaw (rearnsha@arm.com)
12887
12888         * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h.
12889
12890 Tue Jul 14 03:02:44 1998  Jeffrey A Law  (law@cygnus.com)
12891
12892         * version.c: Bump again to distinguish mainline tree from the
12893         egcs-1.1 branch.
12894
12895 See ChangeLog.0 for earlier changes.
12896
12897 Local Variables:
12898 add-log-time-format: current-time-string
12899 End: