OSDN Git Service

2e8578036c9ae1be2fc62e6591faaf9655c58619
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-16  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2
3         * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable.
4
5         * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux
6         according to given options.
7
8 Tue May 16 12:17:31 2000  Jeffrey A Law  (law@cygnus.com)
9
10         * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS
11         if X has VOIDmode either.
12         (LIMIT_RELOAD_CLASS): Similarly.
13
14         * mn10200.md (indirect_jump, tablejump): Use "register_operand",
15         not "general_operand" to match the processor's capabilities.
16
17 2000-05-16  Bruce Korb  <bkorb@gnu.org>
18
19         * fixinc/README:  corrected return address
20         * fixinc/check.diff:  regenerate, now that test works
21         * fixinc/fixfixes.c(format_fix,format_write): reformatted
22         (char_macro_def_fix,char_macro_use_fix): corrected and
23         rewrote to use regex to parse the text
24         * fixinc/inclhack.def: more testing
25         * fixinc/fixincl.x:  regenerated
26
27         * fixinc/inclhack.def: added several "test_text" attributes
28         changed several fixes to use `c_fix = format'
29         re-alphabetized the fixes
30
31         * fixinc/check.diff: regenerate
32         * fixinc/fixincl.x: regenerate
33         * fixinc/check.tpl: added `sparc' and `netinet' to the list
34         of created dirs
35
36
37 2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
38
39         * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove.
40
41 2000-05-15  Richard Henderson  <rth@cygnus.com>
42
43         * toplev.c (rest_of_compilation): Run full jump pass before
44         find_basic_blocks of flow2.
45
46 2000-05-15  Richard Henderson  <rth@cygnus.com>
47
48         * jump.c: Fix typos and clarify commentary from last change.
49         (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE.
50         (safe_to_remove_jump_p): Remove.
51         (condjump_label): Use pc_set.
52
53 2000-05-15  Richard Henderson  <rth@cygnus.com>
54
55         * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns
56         that get in the way after reload.
57         (cond_exec_process_if_block): Skip a label heading THEN block.
58
59 2000-05-15  Richard Henderson  <rth@cygnus.com>
60
61         * varasm.c (output_constant_pool): Abort instead of converting
62         (improperly) deleted labels to zero.
63
64 2000-05-16  Neil Booth  <NeilB@earthling.net>
65
66         * cpplex.c (parse_string2): Update comment.
67         (cpp_lex_line): No special assertion treatment for '('.
68         * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT.
69         * cpplib.h (SYNTAX_ASSERT): Remove.
70
71 Mon May 15 21:45:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
72
73         * jump.c (condjump_p):  Mark as depreached.
74         (any_condump_p): New.
75         (any_uncondump_p): New.
76         (pc_set): New.
77         (safe_to_remove_jump_p): New.
78         * rtl.h (any_condump_p, any_uncondjump_p, pc_set
79         safe_to_remove_jump_p): Declare.
80
81 Mon May 15 21:07:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
82
83         * calls.c: Re-install both patches reverted by last patch.
84         (struct arg_data): New field tail_call_reg.
85         (initialize_argument_information): Initialize tail_call_reg
86         (load_register_parameters): New argument flags, use
87         tail_call_reg when emiting tail call sequence.
88         (expand_call): Update call of load_register_parameters;
89         copy unadjusted_args_size to adjusted_args_size.
90
91 Mon May 15 19:01:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
92
93         * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p
94         and bct_p parameters to flags.
95         * loop.h (LOOP_UNROLL, LOOP_BCT): New constants.
96         * rtl.h (loop_optimize): Update prototype.
97         * toplev.c (rest_of_compilation): Update call of loop_optimize.
98
99 2000-05-15  Jakub Jelinek  <jakub@redhat.com>
100
101         * calls.c (expand_call): Move expand_start_target_temps call after
102         start_sequence().
103
104 2000-05-15  Neil Booth  <NeilB@earthling.net>
105
106         * cpphash.c (trad_stringify, warn_trad_stringify,
107         collect_params): Make some pointers pointers to const.
108         * cpplex.c (auto_expand_name_space) Guaranteed to always
109         expand by at least one character.
110         (SPELL_CHAR, SPELL_NONE): Temporarily reverse order.
111         (struct token_spelling): Use const U_CHAR * rather than PTR.
112         (expand_name_space): Fix up token pointers if name space
113         is moved when expanding.
114         (INIT_NAME, cpp_scan_line, parse_name, parse_number,
115         parse_string2, save_comment, spell_token, cpp_output_list):
116         Update so the routines handle tokens with a direct pointer to
117         their text, rather than an offset into the token's list's namebuf.
118         (_cpp_lex_line): Rearrange for clarity.
119
120         * cpplib.c (_cpp_check_directive): Similarly.
121         (do_define): Make SYM a pointer to const.
122         * cpplib.h (struct cpp_name): Replace offset with direct pointer.
123         (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT.
124         (TOK_OFFSET): Delete.
125         (TOK_NAME): Update.
126
127 2000-05-14  Geoffrey Keating  <geoffk@cygnus.com>
128
129         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for
130         64-bit ABI.
131
132         * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE 
133         into account.
134         (logical_u_operand): Delete.
135         (non_logical_cint_operand): Rewrite to take MODE into account.
136         (non_logical_u_cint_operand): Delete.
137         (boolean_operator): New function.
138         (print_operand): Add new %q operand.
139         * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator,
140         remove logical_u_operand and non_logical_u_cint_operand,
141         update logical_operand and non_logical_cint_operand.
142         * config/rs6000/rs6000.md: Rewrite the patterns for performing
143         logical operations to use %q.
144
145         * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place.
146         (movdi): Make similar to movsi.
147         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There
148         is no such thing as a DImode CONST_DOUBLE.
149         * config/rs6000/rs6000.c (output_toc): Likewise.
150         
151         * config/rs6000/rs6000.c (output_cbranch): Don't output prediction
152         codes when old mnemonics are in use.  Print register names
153         for cc registers when requested.
154
155         * optabs.c (expand_float): Don't allow mode widening that causes
156         double rounding.
157
158         * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32
159         flags to their current names -maix64 and -maix32.
160
161 2000-05-14  Bruce Korb  <bkorb@gnu.org>
162
163         * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before
164         and/or after current text of file
165         * fixinc/fixlib.c(must_malloc):
166         * fixinc/fixlib.h(must_malloc): + reformatting
167         * fixinc/inclhack.def: replace the "1i" and "$a" sed commands
168         with usages of ``c_fix = wrap;''
169         Add several tests and use the ``c_fix = format'' fixer more.
170         * fixinc/fixincl.x: regen
171         * fixinc/check.diff: regen
172         * fixinc/check.tpl: emit the associated header with the missing
173         test message
174
175 Sun May 14 17:58:59 2000  Hans-Peter Nilsson  <hp@axis.com>
176
177         * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset
178         variables $src and $dst.
179         
180 2000-05-13  Gabriel Dos Reis <gdr@codesourcery.com>
181
182         * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro.
183         (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise.
184         (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise.
185         (struct output_buffer: emitted_prefix_p, prefixing_rule): New
186         fields. 
187         (set_message_prefixing_rule): Declare.
188
189         * diagnostic.c: (current_prefixing_rule): New variable.
190         (set_message_prefixing_rule): Define.
191         (output_set_prefix): Adjust buffer->emitted_prefix_p.
192         (init_output_buffer): Adjust Initialization.
193         (output_emit_prefix): Rewrite.  Take prefixing rules into account.
194         
195 Sat May 13 11:05:47 2000  Philippe De Muyter  <phdm@macqel.be>
196
197         * ifcvt.c (if_convert): Do not free NULL.
198
199 2000-05-12  Nick Clifton  <nickc@cygnus.com>
200
201         * config/fr30/fr30.c (fr30_move_double): New function:  Emit code
202         to move a double word value.
203         (di_operand): New function: Return true if the operand is suitbale
204         for a double word move operation.
205         (nonimmediate_di_operand): New function: Return true if the
206         operand is a DImode register or MEM.
207
208         * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and
209         nonimmediate_di_operand.
210
211         * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and
212         nonimmediate_di_operand.
213
214         * config/fr30/fr30.md (movdi): New pattern.  Required because
215         other patterns generate DImode results.
216         (movdi_insn): New pattern.
217
218 2000-05-12  Richard Henderson  <rth@cygnus.com>
219
220         * config/alpha/alpha.c (struct shadow_summary): Define
221         bitfields as type unsigned int.
222
223 Sat May 13 00:09:59 2000  Denis Chertykov  <denisc@overta.ru>
224
225         * config/avr/t-avr: Added definition of FLOAT while generates
226         fp-bit.c
227
228         * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in
229         peepholes for tst+jump = sbrs/sbrc optimization.
230
231 Fry May 12 20:03:00 CEST 2000  Jan Hubicka  <jh@suse.cz>
232
233         * expr.c (emit_push_insn): Do not adjust stack pointer when
234         preallocating.
235
236 Fri May 12 19:03:58 2000  Philippe De Muyter  <phdm@macqel.be>
237
238         * ggc-simple.c (offsetof): Macro fallback definition moved from here ..
239         * system.h (offsetof): ... to here.
240
241 2000-05-12  Richard Henderson  <rth@cygnus.com>
242
243         * Makefile.in (final.o): Depend on BASIC_BLOCK_H.
244         * final.c (final_end_function): Use app_disable.  Rearrange note
245         handling into a switch.  Emit deleted labels.
246         (output_asm_label): Generate label strings for deleted labels.
247         * flow.c (tail_recursion_label_list): New.
248         (find_basic_blocks_1): Set label_value_list directly.  Collect list
249         of tail recursion labels from call_placeholders.  Don't add deleted
250         labels to the label value list.
251         (cleanup_cfg): Use free_EXPR_LIST_list.
252         (flow_delete_insn_chain): Turn non-removable labels into notes.
253         (flow_delete_block): Don't disable deleting the block because of
254         a non-removable label.
255         (tail_recursion_label_p): New.
256         (merge_blocks_move_predecessor_nojumps): Don't disable the merge
257         because of a label.
258         (merge_blocks_move_successor_nojumps): Likewise.  Also move a
259         jump table.
260         (merge_blocks): Disable a merge because of tail recursion labels.
261         * ifcvt.c (merge_if_block): Don't disable a merge because of a label.
262         Use a more accurate measure of not merging the join block.
263         (find_if_block): Don't disable conversion because of a label.
264         (find_if_case_1, find_if_case_2): Likewise.
265         * jump.c (duplicate_loop_exit_test): Preserve the kind of list
266         element when copying.
267         (squeeze_notes): Also leave EH notes.
268         (mark_jump_label): Ignore deleted labels.  Use an INSN_LIST for
269         REG_LABEL notes.
270         (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when
271         deleting a label.
272         * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for
273         NOTE_INSN_DELETED_LABEL.  Print `[# deleted]' for a label_ref
274         referring to a deleted label.  Convert tail handling to a switch.
275         * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE
276         for NOTE_INSN_DELETED_LABEL.
277         (NOTE): Fix commentary.
278         * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST.
279         (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise.
280         (CODE_LABEL_NUMBER, LABEL_NAME): Update index.
281         (LABEL_NUSES, LABEL_REFS): Likewise.
282         * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL.
283
284 2000-05-12  Bruce Korb  <bkorb@gnu.org>
285
286         * fixinc/fixfixes.c(format_write): buglet & relaxed rules
287         * fixinc/check.diff: updated
288         * fixinc/inclhack.def: corrected & added some test_text-s
289         * fixinc/genfixes: removed unneeded options to autogen invocation
290         * fixinc/fixincl.tpl: Specified the output file
291         * fixinc/fixfixes.c: visual appearance
292         * fixinc/fixincl.x: regenerate
293
294 2000-05-12  Zack Weinberg <zack@wolery.cumb.org>
295
296         * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix,
297         CTRL_defn_fix): Delete.
298         (fix_char_macro_defines, fix_char_macro_uses): Rename to
299         char_macro_def_fix and char_macro_use_fix, respectively.  Put
300         them into the FIXUP_TABLE.  Get the string to search for from
301         a c_fix_arg.
302
303         (format_write): New function.
304         (format_fix): Use it.
305
306         (FIX_PROC_HEAD): Constify text parameter.
307         (machine_name_fix): Constify all char *s.
308         * fixtests.c (skip_quote): Remove double static.
309
310         * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes,
311         ctrl_use_quotes): Update for new scheme.
312         * fixincl.x: Regenerate.
313
314 2000-05-12  Alexandre Oliva  <aoliva@cygnus.com>
315
316         * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as
317         DWARF2_DEBUG.
318         (DWARF2_ASM_LINE_DEBUG_INFO): Define.
319         (ASM_OUTPUT_DWARF2_ADDR_CONST): Define.
320
321 2000-05-11  Robert Lipe <robertlipe@usa.net>
322
323         * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO.
324         * fixincl.x: Regenerate.
325
326 2000-05-11  Richard Henderson  <rth@cygnus.com>
327
328         * calls.c: Revert both 05-09 patches.
329
330 2000-05-11  Alexandre Oliva  <aoliva@cygnus.com>
331
332         * config/mn10300/mn10300.c (print_operand): Print FP constants in
333         hexadecimal.
334         * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint
335         for FP values.
336
337         * mklibgcc.in (EQ): Define it to an equal sign in the Makefile,
338         and replace any occurrences of `=' in multilib dirs with `$(EQ)'.
339
340 2000-05-11  Jason Merrill  <jason@casey.cygnus.com>
341
342         * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine.
343
344 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
345
346         * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary.
347
348 Thu May 11 22:28:05 2000  Denis Chertykov  <denisc@overta.ru>
349
350         * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration.
351         * config/avr/avr.c (jump_over_one_insn_p): New function.
352         * config/avr/avr.md: New peepholes added. Output test and
353         conditional jump to "sbrc" or "sbrs" command.
354
355 2000-05-11  Mark Elbrecht  <snowball3@bigfoot.com>
356
357         * cppmain.c (main): Use IS_DIR_SEPARATOR.
358
359 2000-05-11  Jakub Jelinek  <jakub@redhat.com>
360
361         * except.c (find_exception_handler_labels_1): New function.
362         (find_exception_handler_labels): Split into two functions, dive
363         into CALL_PLACEHOLDERs when looking for exception handler labels.
364
365 2000-05-11 Stan Cox <scox@cygnus.com>
366
367         * regrename.c (replace_reg_in_block): Improve REG_DEAD handling.
368         * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2.
369         * toplev.c (rest_of_compilation): Call regrename_optimize before sched2.
370
371 2000-05-11  Bruce Korb  <bkorb@gnu.org>
372
373         * fixinc/fixfixes.c (double_slash_fix):  obsolete
374         (else_endif_label_fix): obsolete
375         (format_fix):  new, unused as yet
376         (main): obsolete
377         * fixinc/fixlib.h: added fix description struct for use by format_fix
378         * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using
379         * fixinc/Makefile.in:  compile fixfixes.c and fixtests.c as separate
380         modules.  Removed the vestiges of the script version.
381         Added support for "make check".
382         * fixinc/check.diff: base diff file (needs work!!)
383         * fixinc/check.tpl: quiet the fixup output
384         * fixinc/fixtests.c (main): obsolete
385         * fixinc/fixincl.sh:  don't bother copying fixincl to ..
386         * fixinc/fixincl.tpl:  provide for arguments to c_fix routines
387
388 Thu May 11 11:57:02 MET DST 2000  Jan Hubicka <jh@suse.cz>
389
390         * toplev.c (rest_of_compilation): Remove dead code after
391         combine.
392
393 2000-05-11  Zack Weinberg  <zack@wolery.cumb.org>
394
395         * cpphash.c (collect_funlike_expansion): Make "# is not
396         followed by a macro argument name" a pedwarn, not an error.
397         Preserve the # in the output.  Suppress the warning if lang_asm.
398
399 Thu May 11 01:19:31 2000  Jeffrey A Law  (law@cygnus.com)
400
401         * configure.in (hppa*64*-*-hpux11*): New target for PA64 support.
402         * configure: Rebuilt.
403
404 2000-05-10 Laurynas Biveinis <lauras@softhome.net>
405
406         * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace.
407
408 2000-05-10  Kazu Hirata  <kazu@hxi.com>
409
410         * combine.c (try_combine): Fix a typo.
411
412 Wed May 10 21:31:44 2000  Jim Wilson  <wilson@cygnus.com>
413
414         * config/ia64/ia64.md (insv): Add comment.
415
416 2000-05-10  Richard Henderson  <rth@cygnus.com>
417
418         * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT.
419         * mklibgcc.in: Rewrite to not use functions.  Don't shortcut
420         dependancies on FPBIT and DPBIT.
421
422 2000-05-10  Nick Clifton  <nickc@redhat.com>
423
424         * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth
425         when optimising for size.
426         (mark_used_regs:) Ditto.
427         (try_pre_increment_1): Ditto.
428
429 2000-05-10  Zack Weinberg  <zack@wolery.cumb.org>
430
431         * cppexp.c (lex): Use %.*s to print non-NUL-terminated string.
432         Make error message friendlier.
433
434         * cpphash.h (struct hashnode): Use struct hack for name
435         member.
436         * cpphash.c (struct hashdummy): New.
437         (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE.
438         (make_HASHNODE): No need to set ->name pointer.  Correct
439         setting of p.
440         (cpp_lookup): Make 'dummy' a struct hashdummy.  Tidy up a bit.
441
442 2000-05-10  Richard Henderson  <rth@cygnus.com>
443
444         * flow.c (find_basic_blocks_1): Remove any spare bb_note
445         after completion.
446
447 2000-05-10  Bruce Korb  <bkorb@gnu.org>
448
449         * fixinc/gnu-regex.c:  reg_syntax_t re_syntax_options must be static
450
451 2000-05-10  Eric Schweitz  <schweitz@nortelnetworks.com>
452
453         * dwarfout.c (dwarfout_finish): Call retry_incomplete_types
454         after we enter .debug.
455
456 2000-05-10  Jason Merrill  <jason@casey.cygnus.com>
457
458         * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
459         abstract instance of a nested inline function.
460
461         * stor-layout.c (finish_record_layout): finalize_type_size
462         before laying out the pending_statics.
463
464 Wed 10 May 09:36:47 2000  Neil Booth  <NeilB@earthling.net>
465
466         * cpplex.c (spell_token): New function.
467         (spell_string, spell_comment, spell_name): fold into
468         spell_token.    
469         (I, S): Add macros.
470         (E, H): Remove macros.
471         (save_comment): Save comment opening characters too.
472         (_cpp_lex_file): Update to use spell_token.  Tidy up comment
473         handling.
474         * cpplib.h (I, S): Add macros.
475         (E, H): Remove macros.
476         (TTYPE_TABLE): Update entries for new speller.
477         (SYNTAX_ASSERT): Remove.
478
479 Wed 10 May 09:08:30 2000  Neil Booth  <NeilB@earthling.net>
480
481         * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag
482         when removing escaped newlines.  Reverse sense of test for
483         escaped newline.
484
485 2000-05-09  Richard Henderson  <rth@cygnus.com>
486
487         * flow.c (find_basic_blocks_1): Do not delete the first
488         bb_note we run across.
489         (create_basic_block): Use reorder_insns to move an existing
490         bb_note to the correct place.
491
492 2000-05-09  Richard Henderson  <rth@cygnus.com>
493
494         * calls.c (expand_call): Increment currently_expanding_call
495         before calling optimize_tail_recursion.
496
497 Tue May  9 18:54:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
498
499         * reload1.c (reload_combine): Fix errors in last change.
500
501 2000-05-09  Zack Weinberg  <zack@wolery.cumb.org>
502
503         * gcc.c (used_arg): Skip over a semicolon at the end of the
504         split-up loop; don't break out of it.
505
506         * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings.
507         (tree.o): Depend on output.h.
508
509         * c-decl.c (pending_invalid_xref_file,
510         current_function_prototype_file): Constify.
511         (pushdecl): Constify a local char *.
512         (define_label): Constify filename parameter.
513         * c-lex.c (init_parse): Constify parameter and return value.
514         * c-typeck.c (c_expand_asm_operands): Constify filename parameter.
515         * c-tree.h: Update prototypes.
516         * c-parse.in: Constify filename member of %union, and if_stmt_file.
517         * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y,
518         objc/objc-parse.c: Regenerate.
519
520         * dwarfout.c (dwarfout_init): Constify main_input_filename parameter.
521         * dwarfout.h: Update prototypes.
522         * expr.c (expand_expr): Constify a local char *.
523         * flags.h: Constify main_input_filename.
524         * function.c (expand_function_end): Constify filename parameter.
525         * genrecog.c (make_insn_sequence): Use a character array for
526         c_test_pos.
527         (main): Remove unused variables.
528         * input.h: Constify input_filename, main_input_filename, and
529         file_stack.name.  Update prototypes.
530         * output.h: Declare first_global_object_name and
531         weak_global_object_name here, as const char *.
532         * stmt.c (expand_asm_operands): Constify filename parameter.
533         * toplev.c (compile_file, push_srcloc, debug_start_source_file):
534         Constify filename parameter.
535         (input_filename, main_input_filename): Constify.
536         * toplev.h: Update prototypes.
537         * tree.c: Include output.h.  Don't declare
538         first_global_object_name or weak_global_object_name.  Clean up string
539         bashing in get_file_function_name_long.
540         * tree.h (struct tree_decl): Constify filename member.
541         (input_filename): Constify.
542         Update prototypes.
543         * varasm.c (first_global_object_name, weak_global_object_name):
544         Constify.
545         (assemble_start_function, assemble_variable): Clean up string bashing.
546
547         * gcc.c: Constify all spec-related strings initialized,
548         transitively, from string constants.  Constify all strings
549         and string variables related to multilibs.
550         (set_spec, read_specs): Cast argument to free to PTR.
551         (used_arg): Do not modify multilib_matches.  Use strncmp plus
552         length comparison to compare multilib switches.
553         * genmultilib: Constify everything declared in multilib.h.
554
555 Tue May  9 22:28:03 2000  Denis Chertykov  <denisc@overta.ru>
556
557         * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn
558         as deleted.
559
560 Tue May  9 20:52:43 2000  Denis Chertykov  <denisc@overta.ru>
561
562         * config/avr/avr-protos.h (extra_constraint): change a type of
563         second argument from char to int to avoid warnings.
564         (asm_output_byte): Likewise.
565         
566         * config/avr/avr.c (MAX_LD_OFFSET) New macro.
567         (initial_elimination_offset): Handle elimination from
568         FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM.
569         (legitimate_address_p): Use MAX_LD_OFFSET.
570         (legitimize_address): Likewise.
571         (out_movqi_r_mr): Likewise.
572         (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'.
573         (out_movsi_r_mr): Use MAX_LD_OFFSET.
574         (out_movsi_mr_r): Likewise.
575         (out_movqi_mr_r): Likewise.
576         (out_movhi_mr_r): Likewise.
577         (notice_update_cc): Correct CC for the ashrqi3 with the shift
578         count as CONST_INT != 6.
579         (ashlqi3_out): Coding style modifications. Run `fatal_insn' if
580         shift count is a CONSTANT_P, but not a CONST_INT.
581         (ashlhi3_out): Coding style modifications.
582         (ashlsi3_out): Likewise.
583         (ashrhi3_out): Likewise.
584         (ashrsi3_out): Likewise.
585         (lshrhi3_out): Likewise.
586         (lshrsi3_out): Likewise.
587         (ashrqi3_out): Generate shift for any known constant count without
588         scratch register. Run `fatal_insn' if shift count is a CONSTANT_P,
589         but not a CONST_INT.
590         (lshrqi3_out): Coding style modifications. Run `fatal_insn' if
591         shift count is a CONSTANT_P, but not a CONST_INT. 
592         (extra_constraint): change a type of
593         second argument from char to int to avoid warnings.
594         (asm_output_byte): Likewise.
595         (asm_file_end): Output size generated commands count as a hex
596         number too.
597
598         * config/avr/avr.h (RETURN_ADDR_RTX): New macro.
599
600         * config/avr/avr.md (addhi3): Fragment commented by &&0 is
601         removed.
602         (ashlqi3): Values of "length" attribute changed. Shift count
603         uses constraints 'n' instead of 'i'.
604         (ashrqi3): Likewise. Values of "cc" attribute changed. Generate
605         shifts without clobber register.
606         (lshrqi3): Shift count uses constraints 'n' instead of 'i'.
607         (call_insn): Correct test for which_alternative == 1 (was 0).
608         (call_value_insn): Likewise.
609         
610         * config/avr/t-avr: Remove definition of FLOAT while generates
611         fp-bit.c
612
613 2000-05-09  Bruce Korb  <bkorb@gnu.org>
614
615         * fixinc/check.tpl:  Template for checking fixes
616         * fixinc/inclhack.def:  Added 'test_text' for many fixes
617         disable hpux8_bogus_inlines on SCO
618         * fixinc/fixinc.sco:  Oh, yes, we don't need this any more.
619
620 Tue May  9 16:30:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
621
622         * calls.c (expand_call): Reorganize somewhat in order
623         to avoid unnecesary recalculation inside loop and make
624         tail call failure code cleaner.
625         
626 Tue May  9 06:30:20 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
627
628         * alias.c (nonlocal_reference_p): Minor reformatting.
629         * reload.c (find_equiv_reg): Simplify logic for
630         CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and
631         some some reformatting.
632         * reload1.c (reload_combine): Don't assume everything in
633         CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit.
634
635 2000-05-08  Richard Henderson  <rth@cygnus.com>
636
637         * final.c (current_insn_predicate): New.
638         (final_scan_insn): Set it.
639         * output.h (current_insn_predicate): Declare.
640
641         * ifcvt.c (cond_exec_process_insns): New argument prob_val.
642         Attach it to call insns.
643         (cond_exec_process_if_block): Track probability for true and
644         false branches.
645         (dead_or_predicable): Likewise.
646
647         * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New.
648         (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New.
649         (PROB_VERY_LIKELY, PROB_ALWAYS): New.
650         (estimate_probability, expected_value_to_br_prob): Use them.
651
652         * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare.
653         * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'.
654         (ia64_expand_prediction): New.
655         (emit_insn_group_barriers): Don't look at notes.  Emit barriers
656         as needed after calls.
657         (ia64_epilogue_uses): Mark b0 used.
658         * config/ia64/ia64.md (beq_true, beq_false): Remove.
659         (bne_true, bne_false): Remove.
660         (eq_return, eq_not_return, ne_return, ne_not_return): Remove.
661         (br_true, br_false): New.  Use predicate_operator and
662         ia64_expand_prediction.
663         (return_true, return_false): Likewise.
664         (call_internal): Use ia64_expand_prediction.  Don't emit stop bit.
665         (call_internal1, call_value_internal): Likewise.
666         (call_value_internal1, call_multiple_values_internal1): Likewise.
667
668         * config/ia64/ia64.c (ia64_direct_return): Require frame size zero.
669
670         * config/ia64/ia64.md (extendsfdf2): Split only after reload.
671
672 2000-05-08  Richard Henderson  <rth@cygnus.com>
673
674         * rtlanal.c (may_trap_p): Consider old-style and volatile
675         asms to trap.
676
677 Mon May  8 17:16:48 2000  Jim Wilson  <wilson@cygnus.com>
678
679         * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count.
680
681 2000-05-08  Richard Henderson  <rth@cygnus.com>
682
683         * config/ia64/ia64.h (predicate_operator): Declare.
684
685         * config/ia64/ia64.md (extendsfdf2): Split the nop case out
686         of existance.
687
688         * gensupport.c (process_rtx): Copy and post-process each member
689         of the define_insn rtvec individually.
690
691 Mon  8 May 22:17:35 2000  Neil Booth  <NeilB@earthling.net>
692
693         * cpplex.c (spell_token): New function.
694         (TOKEN_LEN): Add 1 for whitespace.
695         (_cpp_lex_file): Update to use spell_token.
696         * cpplib.h (E): Remove.
697         (TTYPE_TABLE): Update CPP_VSPACE entry.
698
699 2000-05-08  Richard Henderson  <rth@cygnus.com>
700
701         * flow.c (init_propagate_block_info): Watch out for conditional
702         branch to next instruction, and thus one outgoing edge.
703
704         * config/ia64/ia64.c (ia64_encode_section_info): Exit early
705         for global register variables; don't special case __[CD]TOR_LIST__;
706         mind ggc_p for string allocation.
707
708 2000-05-08  Nick Clifton  <nickc@cygnus.com>
709
710         * config/i386/i386.h (ELIMINABLE_REGS): Fix comment.
711
712 2000-05-08  Bruce Korb  <bkorb@gnu.org>
713
714         * fixinc/mkfixinc.sh:  fixinc.sco is no longer used
715         i?86-*-msdosdjgpp* no longer uses fixincludes
716         * fixinc/genfixes:  inclhack.sh and fixincl.sh are no longer generated
717         * fixinc/inclhack.sh:  deleted
718         * fixinc/hackshell.tpl:  deleted
719         * fixinc/inclhack.tpl:  deleted
720         * fixinc/Makefile.in:  Remove dependencies on above
721         * fixinc/fixincl.sh:  "DO NOT EDIT" text modified
722
723 2000-05-08  Andreas Jaeger  <aj@suse.de>
724
725         * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor
726         support.
727
728 2000-05-07  Zack Weinberg  <zack@wolery.cumb.org>
729
730         * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed
731         substitutions.
732
733 Sun  7 May 08:43:53 2000  Neil Booth  <NeilB@earthling.net>
734
735         * cpplex.c: Move new lexer definitions and prototypes
736         to top.  Conditional include these and the code if
737         NEW_LEXER is defined.  Rename functions whose names
738         clash if this code included.
739
740 Sun May  7 00:54:57 EDT 2000  John Wehle  (john@feith.com)
741
742         * rtl.def (COND_EXEC): Clarify.
743
744         * i386.md (extendsidi2): Clobber (reg:CC 17) in the
745         same fashion as zero_extendsidi2.
746
747 2000-05-06  Richard Henderson  <rth@cygnus.com>
748
749         * config/ia64/ia64.c (predicate_operator): New.
750         (ia64_print_operand): Handle 'J'.
751         (rtx_needs_barrier): Handle COND_EXEC.
752         * config/ia64/ia64.h (BRANCH_COST): Define.
753         (PREDICATE_CODES): Update.
754         * config/ia64/ia64.md: Docuement used unspec values.
755         (attr predicable): New.
756         (movxf, movxf_internal): New.
757         (extendsfdf2): Don't comment out nop.
758         (floatdidf2): Remove.
759         (truncxfsf2, truncxfdf2, floatdixf2): New.
760         (abssi2, absdi2): Put the neg in the "true" slot.
761         (conditional branch instructions): Mark not predicable.
762         (cmov*_internal): Use predicate_operator.  Split to cond_exec.
763         (abs*_internal): Likewise.
764         (alloc, set_bsp): Mark not predicable.
765         (barrier, insn_group_barrier, flush_cache): Likewise.
766         (define_cond_exec): New.
767
768 2000-05-06  Richard Henderson  <rth@cygnus.com>
769
770         * c-decl.c: Include "tm_p.h".
771
772         * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness.
773         (fetchadd_operand, ia64_expand_fetch_and_op): Declare.
774         (ia64_expand_op_and_fetch): Declare.
775         * config/ia64/ia64.c: Include "toplev.h".  Kill trailing whitespace.
776         (setjmp_operand): Constify variables for XSTR.
777         (ia64_encode_section_info): Likewise.
778         (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed
779         values to int.
780         (ia64_asm_output_external): Constify name.
781         (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size.
782         (process_for_unwind_directive): Provide switch default.
783         (ia64_expand_compare_and_swap): Remove unused variables.
784         (ia64_expand_builtin): Likewise.
785         * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int
786         for printing.
787
788         * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args.
789         (symbolic_operand, function_operand, setjmp_operand): Likewise.
790         (shift_count_operand, shift_32bit_count_operand): Likewise.
791         (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise.
792         (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise.
793         (ia64_function_arg_partial_nregs, ia64_function_value): Likewise.
794         (ia64_print_operand_address, ia64_secondary_reload_class): Likewise.
795         (ia64_expand_builtin): Likewise.
796         (call_multiple_values_operation): Make dest_regno unsigned.
797
798 2000-05-06  Richard Henderson  <rth@cygnus.com>
799
800         * rtl.def (DEFINE_COND_EXEC): New.
801         * md.texi: Document it.
802
803         * gensupport.c (input_file): Remove.
804         (struct queue_elem): Add lineno.
805         (rtx_ready_queue): Remove.
806         (errors): New.
807         (predicable_default): New.
808         (predicable_true, predicable_false): New.
809         (define_attr_queue, define_attr_tail): New.
810         (define_insn_queue, define_insn_tail): New.
811         (define_cond_exec_queue, define_cond_exec_tail): New.
812         (other_queue, other_tail): New.
813         (queue_pattern): New.
814         (process_rtx): Add patterns to the appropriate queues.
815         (is_predicable, identify_predicable_attribute): New.
816         (n_alternatives, collect_insn_data): New.
817         (alter_predicate_for_insn, alter_test_for_insn): New.
818         (shift_output_template, alter_output_for_insn): New.
819         (process_one_cond_exec, process_define_cond_exec): New.
820         (init_md_reader): Read the entire file.  Process define_cond_exec.
821         (read_md_rtx): Return elements from the queues.
822
823 2000-05-06  Richard Henderson  <rth@cygnus.com>
824
825         * flow.c (mark_set_1): Don't update conditional life info
826         if the register is not_dead.
827
828 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
829
830         * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h.
831         (mostlyclean): Also delete fixincl, fixinc.sh, and
832         specs.ready, and make clean in the fixinc subdir.
833
834 2000-05-06  Richard Henderson  <rth@cygnus.com>
835
836         * Makefile.in (gensupport.o): Compile for the host.
837         (host-prefix gensuuprt.o): Remove.
838         (genflags.o): Depend on gensupport.h and OBSTACK_H.
839         (genattrtab.o): Likewise.
840         (gencodes.o): Depend on gensupport.h.
841         (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise.
842         (genpeep.o, genattr.o, genoutput.o): Likewise.
843
844         * gensupport.c (obstack, rtl_obstack): New.
845         (init_md_reader): Initialize rtl_obstack.
846         * gensupport.h (rtl_obstack): Declare.
847         (message_with_line): Declare.
848
849         * genattr.c: Remove all traces of obstack manipulation.
850         * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise.
851         * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise.
852
853         * genattrtab.c (obstack, rtl_obstack): Remove.
854         (main): Don't init rtl_obstack.
855         * genflags.c: Likewise.
856
857         * genrecog.c (message_with_line): Move ...
858         * gensupport.c: ... here.
859
860 2000-05-06  Richard Henderson  <rth@cygnus.com>
861
862         * c-typeck.c (build_c_cast): Remove dead code.
863
864 2000-05-06  Richard Henderson  <rth@cygnus.com>
865
866         * flow.c (split_edge): Don't allocate global_live_at_start for
867         the new block unless the old blocks had them as well.
868
869         * flow.c (mark_set_1): Respect not_dead when updating reg_live.
870
871         * ifcvt.c (noce_process_if_block): Don't use an insn_b from
872         test_bb if a or b uses x.
873
874 2000-05-06  Zack Weinberg  <zack@wolery.cumb.org>
875
876         * cpphash.h: Remove conditional #define of __extension__.
877         * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2,
878         RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros
879         (ENABLE_RTL_CHECKING only).
880         * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK,
881         CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros
882         (ENABLE_TREE_CHECKING only).
883         * varray.h: Add __extension__ to VARRAY_CHECK macro
884         (ENABLE_CHECKING only).
885
886 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
887
888         Use new tail-calling mechanism on ARM.
889         * arm.md (sibcall, sibcall_value): New expands.
890         (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns.
891         (tailcalling peepholes): Delete.
892         (push_multi): Simplify.
893         * arm.c (lr_save_eliminated): Delete definition.
894         (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete.
895         (output_return_instruction): Remove checks on lr_save_eliminated.
896         (output_arm_prologue): Remove old tail-calling code.
897         (arm_output_epilogue): New parameter, really_return.  All callers
898         changed.  Handle tail-calling epilogues.
899         * arm.h (lr_save_eliminated): Delete declaration.
900         (frame_pointer_needed): Delete declaration.
901         * arm-protos.h (arm_output_epilogue): Adjust prototype.
902
903         * arm.md (is_thumb): Examine symbol thumb_code, not expression
904         TARGET_ARM.
905         * arm.c (thumb_code): Define it.
906         (arm_override_options): Set it.
907         * arm.h (thumb_code): Declare it.
908         
909 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
910
911         * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify.
912
913 2000-05-06  Richard Earnshaw (reanrsha@arm.com)
914
915         * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add
916         bogus clobber to insns.
917         (load_multiple_operation, store_mulitple_operation): Don't check 
918         for it.
919         * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly.
920
921         * arm.md (and_scc, ior_scc): Add missing mode.
922
923         * arm.md (call_value_symbol): Remove predicate from op2.
924
925         * arm.h (SPECIAL_MODE_PREDICATES): Define.
926         
927 Sat May  6 06:25:56 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
928
929         * expr.c (get_subtarget): New function.
930         (force_operand, expand_expr, do_store_flag): Use it.
931
932         * toplev.c (compile_file): Don't take strlen of NAME if null.
933
934 2000-05-06  David Edelsohn  <edelsohn@gnu.org>
935
936         * xcoffout.c (xcoff_current_include_file,
937         xcoff_current_function_file, xcoff_lastfile): Constify char *.
938         (xcoffout_source_file, xcoffout_source_line): Make filename 'const
939         char *'.
940         (xcoffout_declare_function): Make name 'const char *'.
941         (xcoffout_end_epilogue): Make fname 'const char *'
942         * xcoffout.h (xcoff_current_include_file, xcoff_lastfile,
943         xcoffout_declare_function, xcoffout_source_line): Match above.
944
945         * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without
946         -maix64 is error.
947         * rs6000.c (print_operand): Fix lossage typo.
948         (output_cbranch): Remove "cr" decoration for now.
949         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. 
950
951 Sat May  6 06:55:32 2000  Denis Chertykov  <denisc@overta.ru>
952
953         * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by
954         constant count.
955
956 2000-05-05  Bruce Korb  <bkorb@gnu.org>
957
958         * fixinc/genfixes: Improve the matching for make target names
959
960 2000-05-05  Catherine Moore  <clm@cygnus.com>
961
962         * c-common.c (decl_attributes):  For TYPE_DECLs attach the
963         attribute to the decl.
964         * c-decl.c (pushdecl): Propagate the USED attribute to the 
965         type copy.
966
967 2000-05-05  Richard Henderson  <rth@cygnus.com>
968
969         * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the
970         same way emit_group_load does.
971
972 2000-05-05 Mark Elbrecht <snowball3@bigfoot.com>
973
974         * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name.
975
976         * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR.
977         (main): Likewise.
978
979 2000-05-05 Rodney Brown <RodneyBrown@mynd.com>
980
981         * pa.h (FUNCTION_ARG_ADVANCE): Warning removal.
982
983 Fri May  5 10:29:21 2000  Marc Espie <espie@cvs.openbsd.org>
984
985         * config/openbsd.h (LINK_SPEC): pass correct flags to ld 
986         to support -shared, on platforms with dynamic libraries.
987
988 Fri May  5 10:27:06 2000  Philippe De Muyter  <phdm@macqel.be>
989
990         * system.h (S_ISBLK): Provide fallback definition.
991
992 2000-05-05  Geoff Berry  <geoffb@bops.com>
993
994         * extend.texi (Extended Asm): Document inability to give asm
995         statements access to condition codes.
996
997 2000-05-05  Marek Michalkiewicz  <marekm@linux.org.pl>
998
999         * varasm.c (asm_emit_uninitialised): Use 0, not NULL
1000         as arg 2 of UNIQUE_SECTION.
1001
1002 Fri May  5 10:11:41 2000  Jeffrey A Law  (law@cygnus.com)
1003
1004         * predict.c: Remove May 4 change.
1005         * bb-reorder.c (make_reorder_chain): Do not perform block movement
1006         if we have predicted the branch at 50-50 probability.
1007
1008 2000-05-05  Richard Henderson  <rth@cygnus.com>
1009
1010         * flow.c (init_propagate_block_info): Fix merge error
1011         in HAVE_conditional_execution code.
1012
1013 Fri May  5 07:43:50 2000  Denis Chertykov  <denisc@overta.ru>
1014
1015         * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal
1016         shift cycle for unknown shift count. Also generates dec + brpl.
1017         (ashlqi3_out): Don't generate dec + brpl which now generates by
1018         `out_shift_with_cnt'.
1019         (ashlhi3_out): Likewise.
1020         (ashlsi3_out): Likewise.
1021         (ashrqi3_out): Likewise.
1022         (ashrhi3_out): Likewise.
1023         (ashrsi3_out): Likewise.
1024         (lshrqi3_out): Likewise.
1025         (lshrhi3_out): Likewise.
1026         (lshrsi3_out): Likewise.
1027
1028 2000-05-04 Mark Elbrecht <snowball3@bigfoot.com>
1029
1030         * gcc.c (free_split_directories): Correct typo in explanation
1031         of make_relative_prefix.
1032
1033 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
1034
1035         * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point
1036         comparison codes to branch_comparison_operator.
1037
1038 2000-05-04  Richard Henderson  <rth@cygnus.com>
1039
1040         * ifcvt.c (noce_process_if_block): Always reset X in the A == B case.
1041
1042 2000-05-04  Richard Henderson  <rth@cygnus.com>
1043
1044         * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi.
1045         (DPBIT_FUNCS): Remove _sf_to_usi.
1046         (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk.
1047
1048         * ifcvt.c (noce_process_if_block): Fail if A or B modified
1049         between condition and jump.
1050
1051         * libgcc2.c (near eh_context_specific): Comment #endif string.
1052         * longlong.h: Don't use strings with embedded newlines.
1053
1054 2000-05-04  Geoff Keating  <geoffk@cygnus.com>
1055
1056         * config/rs6000/rs6000-protos.h: Add output_cbranch.
1057         * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete.
1058         (print_operand): Delete %t and %T codes.
1059         (output_cbranch): New function.  Support branch prediction.
1060         * config/rs6000/rs6000.md: Use output_cbranch for
1061         conditional branches and returns.
1062
1063 2000-05-04  Jason Merrill  <jason@casey.cygnus.com>
1064
1065         * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned.
1066         * stor-layout.c (place_field): Likewise.
1067         * integrate.h (struct inline_remap): Make regno_pointer_align unsigned.
1068         * expr.c (store_expr): Make align unsigned.
1069         * explow.c (plus_constant_wide): Make low words unsigned.
1070         * expmed.c (choose_multiplier): Likewise.
1071         * fold-const.c (fold):  Likewise.
1072         * tree.h (build_int_2): Likewise.
1073         * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise.
1074         * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*.
1075         (init_emit): Change cast to unsigned char*.
1076         * varasm.c (compare_constant_1): Add cast to char*.
1077         * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*.
1078         * reload1.c (reload): Likewise.
1079
1080         * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0).
1081
1082 Thu May  4 14:37:23 2000  Jeffrey A Law  (law@cygnus.com)
1083
1084         * predict.c (estimate_probability): If no prediction was found, then
1085         predict the successor that is the next physical block (if such a
1086         successor exists).
1087
1088 2000-05-04  Richard Henderson  <rth@cygnus.com>
1089
1090         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
1091
1092 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1093
1094         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
1095
1096 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
1097
1098         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
1099         attribute macros from here ...
1100         (CPP_SPEC): to here.
1101         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
1102         (CPP_SPEC): Likewise.
1103         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
1104
1105         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
1106         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
1107
1108 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1109
1110         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
1111         
1112         * diagnostic (vbuild_message_string, build_message_string,
1113         build_location_prefix, output_get_prefix, init_output_buffer,
1114         output_notice, vline_wrapper_message_with_location,
1115         v_message_with_decl, default_print_error_function): De-constify.
1116         (set_real_maximum_length): Prototype.
1117
1118         * diagnostic.h (struct output_buffer, init_output_buffer,
1119         output_get_prefix, output_set_prefix): De-constify.
1120
1121         * function.c (init_function_start): Constify.
1122
1123         * gensupport.c (remove_constraints, process_rtx): Prototype.
1124
1125         * gthr-posix.h: Indent uses of #pragma.
1126
1127         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
1128         Prototype.
1129
1130         * predict.c (find_expected_value): Delete prototype.
1131         (expected_value_to_br_prob): Initialize variable `ev_reg'.
1132
1133         * sbitmap.h (debug_sbitmap): Prototype.
1134
1135         * ssa.c (compute_coalesced_reg_partition): Prototype.
1136
1137         * stor-layout.c (debug_rli): Prototype.
1138
1139         * tree.h (round_down): Prototype.
1140         (init_function_start): Constify.
1141
1142 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
1143
1144         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
1145         (overly conservative).  Change extern inline wrappers to
1146         static inline, define them always, use PARAMS properly.
1147         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
1148         whitespace warnings for \f and \v at the beginning of a line.
1149
1150 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
1151
1152         * haifa-sched.c (schedule_insns): Free the flow edge list when it
1153         is no longer needed
1154
1155 2000-05-04  Bruce Korb  <bkorb@gnu.org>
1156
1157         * fixincl/inclhack.def: added broken_cabs -
1158         Remove `extern double cabs' declarations from math.h
1159         * fixincl/inclhack.sh: regen
1160         * fixincl/fixincl.x: regen
1161         * fixincl/fixincl.c: Remove BOGOSITY code
1162         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
1163
1164 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1165
1166         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
1167         MEM_ALIAS_SET.
1168         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
1169         when calling MEM_COPY_ATTRIBUTES.
1170         * emit-rtl.c (operand_subword, change_address): Likewise.
1171         * explow.c (stabilize): Likewise.
1172         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
1173         * integrate.c (copy_rtx_and_substitute): Likewise.
1174         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
1175         when calling MEM_COPY_ATTRIBUTES.
1176         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
1177         Likewise.
1178         * cse.c (gen_lowpart_if_possible): Likewise.
1179         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
1180         * optabs.c (gen_move_insn): Likewise.
1181         * recog.c (validate_replace_rtx_1): Likewise.
1182         * simplify-rtx.c (add_mem_for_addr): Likewise.
1183         * stmt.c (expand_anon_union_decl): Likewise.
1184         * config/arm/arm.md: Likewise.
1185         * config/h8300/h7300.c (fix_bit_operand): Likewise.
1186         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
1187         (block_move_no_loop, block_move_sequence): Likewise.
1188         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
1189         * config/alpha/alpha.c (get_aligned_mem): Likewise.
1190         Clear MEM_ALIAS_SET.
1191         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
1192         MEM_COPY_ATTRIBUTES.
1193
1194 2000-05-03  Robert Lipe <robertlipe@usa.net>
1195         
1196         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
1197         to suppress libgcc1.
1198         (i[34567]86-*-sco3.2v5*) Likewise.
1199         (i[34567]86-*-sco3.2v4*) Likewise.
1200         (i[34567]86-*-sco) Likewise.
1201         (i[34567]86-*-solaris2) Likewise.
1202         (i[34567]86-*-sysv5*) Likewise.
1203         (i[34567]86-*-sysv4*) Likewise.
1204         (i[34567]86-*-udk*) Likewise.
1205         (i[34567]86-*-sysv*) Likewise.
1206
1207 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
1208
1209         * cpphash.h (U): New define, to correct type of string constants.
1210         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
1211         routines, to do casts when passing unsigned strings to libc.
1212         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
1213
1214         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
1215         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
1216         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
1217         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
1218         second argument an U_CHAR *.
1219
1220         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
1221         length field, clean up initializer.
1222         (ISTABLE): Add __extension__ to designated-
1223         initializers version.
1224         * cpplex.c (CHARTAB): Likewise.
1225
1226         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
1227         case so the file won't be empty.
1228
1229 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
1230
1231         * bb-reorder.c (struct reorder_block_def): Member succ removed.
1232         (REORDER_BLOCK_SUCC): Removed.
1233         (enum reorder_skip_type): Removed.
1234         (skip_insns_between_block): Renamed to skip_insns_after_block.
1235         Removed second argument. Removed dead code and cleaned up.
1236         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
1237         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
1238         second parameter to skip_insns_after_block.
1239
1240 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1241
1242         * tree.c (staticp, case LABEL_DECL): New case.
1243
1244 2000-05-03  Richard Henderson  <rth@cygnus.com>
1245
1246         * Makefile.in (start.encap): Do not depend on LIBGCC1.
1247
1248         * mklibgcc1.in: Fix typo last change.
1249
1250 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
1251
1252         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
1253         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
1254         (GCC_CFLAGS): Use it.
1255         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
1256         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
1257         objc/Make-lang.in: Use it.
1258
1259 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
1260
1261         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
1262
1263 2000-05-03  Richard Henderson  <rth@cygnus.com>
1264
1265         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
1266         LIBGCC1 empty with libgcc1.null.
1267
1268 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
1269
1270         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
1271         change.
1272
1273 2000-05-03  Greg McGary  <gkm@gnu.org>
1274
1275         * tree.h (tree_common): Add bounded_flag member.  Remove
1276         inaccurate comment about number of remaining bits.
1277         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
1278         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
1279         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
1280         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
1281         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
1282         (TYPE_QUAL_BOUNDED): New constant.
1283         (TYPE_QUALS): Handle bounded qualifier.
1284         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
1285         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
1286         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
1287         TYPE_AMBIENT_BOUNDEDNESS): New macros.
1288         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
1289         (tree_type): Add pointer_depth member.  Remove
1290         inaccurate comment about number of remaining bits.
1291         (DECL_POINTER_DEPTH): Add macro.
1292         (tree_decl): Add pointer_depth member.
1293
1294 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
1295
1296         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
1297         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
1298         (lshrhi3_out): Likewise.
1299         (ashrsi3_out): bugfix in shift by 8.
1300         (test_hard_reg_class): New function.
1301         * config/avr/avr.md: Bugfix inside conditions in peepholes.
1302         (ashlhi3): removed define_expand of this pattern.
1303         (*ashlhi3_insn): renamed to ashlhi3.
1304         (ashlsi3): removed define_expand of this pattern.
1305         (*ashlsi3_insn): renamed to ashlsi3.
1306         (ashrqi3): removed define_expand of this pattern.
1307         (*ashrqi3_insn): renamed to ashrqi3.
1308         (ashrhi3): removed define_expand of this pattern.
1309         (*ashrhi3_insn): renamed to ashrhi3.
1310         (ashrsi3): removed define_expand of this pattern.
1311         (*ashrsi3_insn): renamed to ashrsi3.
1312         (lshrhi3): removed define_expand of this pattern.
1313         (*lshrhi3_insn): renamed to lshrhi3.
1314         (lshrsi3): removed define_expand of this pattern.
1315         (*lshrsi3_insn): renamed to lshrsi3.
1316
1317 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
1318
1319         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
1320         inclusion of "system.h".
1321
1322 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
1323
1324         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
1325         TREE_ASM_WRITTEN.
1326
1327 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
1328
1329         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
1330         if -mauto-pic is on.
1331         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
1332         -mconstant-gp is in effect and function-descriptors are being used
1333         to make indirect calls.
1334         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
1335         (MASK_AUTO_PIC): Ditto.
1336         (TARGET_CONST_GP): Ditto.
1337         (TARGET_AUTO_PIC): Ditto.
1338         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
1339         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
1340         -mno-pic is in effect.
1341         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
1342         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
1343         -mauto-pic is in effect.
1344         (gprel64_offset): New pattern.
1345         (load_gprel64): Ditto.
1346         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
1347         -mconstant-gp is in effect, no need to preserve gp around direct
1348         calls.
1349         (call_value): Ditto.
1350         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
1351         (FUNCTION_PROFILER): Define.
1352         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
1353         @fptr() directive when -mno-pic or -mauto-pic is in effect.
1354         (ASM_OUTPUT_DESTRUCTOR): Ditto.
1355
1356 2000-05-03  Richard Henderson  <rth@cygnus.com>
1357
1358         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
1359         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
1360         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
1361         (mklibgcc, libgcc.mk): New targets.
1362         (libgcc.a): Use libgcc.mk.
1363         (stmp-multilib): Likewise.
1364         (stmp-multilib-sub): Remove.
1365         (mostlyclean): Don't delete libgcc2 temp files.
1366         * configure.in (AC_PROG_CC_C_O): Add.
1367         (NO_MINUS_C_MINUS_O): Substitute it.
1368         (all_outputs): Add mklibgcc.
1369         * mklibgcc.in: New file.
1370
1371 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
1372
1373         * cppexp.c (op_t): Make an int.
1374
1375         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
1376
1377         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
1378
1379         * gensupport.c (process_rtx): Fix macros used.
1380
1381 2000-05-03  Richard Henderson  <rth@cygnus.com>
1382
1383         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
1384         call-clobbered registers of a call.
1385
1386 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
1387
1388         * gensupport.c: New file.
1389         * gensupport.h: New file.
1390         * Makefile.in (HOST_RTL): Depend on gensupport.
1391         (gensupport.o) New rule.
1392         * genattr.c: Use gensupport for reading .md files.
1393         * genattrtab.c: Ditto. 
1394         * gencodes.c: Ditto. 
1395         * genconfig.c: Ditto. 
1396         * genemit.c: Ditto. 
1397         * genextract.c: Ditto. 
1398         * genflags.c: Ditto. 
1399         * genopinit.c: Ditto. 
1400         * genoutput.c: Ditto. 
1401         * genpeep.c: Ditto. 
1402         * genrecog.c: Ditto.
1403         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
1404         * md.texi (Insn Splitting): Document define_insn_and_split.
1405
1406 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
1407
1408         * flow.c (verify_flow_info): Added two more sanity checks. The
1409         first checks that the blocks are numbered consecutively. The second
1410         checks that n_basic_blocks is actually equal to the number of
1411         basic blocks in the insn chain.
1412
1413 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
1414
1415         * cpplib.h: Add accessor macros for token lists.
1416         * cpplib.c, cpphash.c, cpplex.c: Use them.
1417
1418 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1419
1420         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
1421         memory usage if not in a function.
1422         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
1423         return address if static.
1424
1425 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1426
1427         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
1428         whether address may trap.
1429
1430 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
1431
1432         * bb-reorder (chain_reorder_blocks): Changed code to test for
1433         EDGE_FALLTHRU rather than making erroneous assumption that the
1434         first outgoing edge is the fall-through edge.
1435
1436 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
1437
1438         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
1439         ABI for varargs, across all MIPS. This is incompatible because the
1440         va_list (__builtin_va_list) structure is different, so a compilation
1441         unit passing a va_list and a compilation unit being passed one, should
1442         both be compiled with the same ABI. (The old structure had two 
1443         pointers, now it has three.)
1444
1445 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
1446
1447         * bb-reorder.c (struct reorder_block_def): Remove members end,
1448         block_begin, and block_end.
1449         (REORDER_BLOCK_OLD_END): Delete.
1450         (REORDER_BLOCK_BEGIN): Delete.
1451         (REORDER_BLOCK_END): Delete.
1452         (chain_reorder_blocks): Remove dead code.
1453
1454 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
1455
1456         * bb-reorder.c (remove_scope_notes): Check for both types of scope
1457         notes as the end of a basic block before deleting.
1458
1459 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
1460
1461         * final.c (final_start_function): Fix spelling of "necessary".
1462
1463 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
1464
1465         * toplev.c (debug_ignore_block): Return int.
1466         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
1467         * toplev.h, dwarf2out.h: Adjust.
1468         * emit-rtl.c (remove_unnecessary_notes): Test return value.
1469
1470         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
1471         * toplev.c, final.c, rtl.h: Adjust.
1472
1473 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1474
1475         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
1476         * configure.in: Look for makeinfo in the unified tree, then
1477         for a system makeinfo which is sufficiently new.
1478         * Makefile.in: If configure says makeinfo is too old, don't
1479         build or install Info documentation.
1480
1481 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1482
1483         * cpphash.c (collect_params): Fix off-by-one error.
1484         (dump_hash_helper): Dump all four macro nodetypes.
1485
1486 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
1487
1488         * cpphash.c (trad_stringify): Adjust p after stringification as
1489         well.
1490
1491 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
1492
1493         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
1494         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
1495
1496         * cppfiles.c (file_cleanup): Delete.
1497         * cpphash.c (macro_cleanup): Delete.
1498         (collect_objlike_expansion, collect_funlike_expansion,
1499         macarg, scan_arguments): Remove CPP_POP case.
1500
1501         * cpplex.c (null_cleanup): Delete.
1502         (cpp_pop_buffer): Do the work that was done in the cleanups
1503         here.  Call _cpp_unwind_if_stack from here.
1504         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
1505         cpp_scan_buffer): Run until we see CPP_EOF and the top of
1506         stack is the buffer _below_ the one we stacked.
1507         (cpp_get_token): Always pop an exhausted buffer.  Return
1508         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
1509         * cpplib.c (skip_if_group): Don't call cpp_get_token to
1510         increment the line number.
1511         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
1512
1513         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
1514         we see CPP_EOF and the top of stack is the buffer _below_ the
1515         one we stacked.
1516         * scan-decls.c: Likewise.
1517
1518 2000-05-02  Andrew Haley  <aph@cygnus.com>
1519
1520         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
1521         where this function is called for the second time on a decl that
1522         has had its section info changed in such a way as to move it out
1523         of small data/bss.  
1524         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
1525
1526 2000-05-01  Richard Henderson  <rth@cygnus.com>
1527
1528         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
1529         the sequence we're moving, not to merge_bb->head.
1530
1531 2000-05-01  Richard Henderson  <rth@cygnus.com>
1532
1533         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
1534         reference to alpha/t-linux.
1535         (alpha*-*-linux-gnu*): Likewise.
1536         * configure: Rebuild.
1537
1538         * calls.c (expand_call): Don't emit reg notes for a sibcall.
1539
1540         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
1541         if not in SSA form.
1542
1543         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
1544
1545 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
1546
1547         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
1548         TREE_THIS_VOLATILE.
1549
1550 2000-05-01  Richard Henderson  <rth@cygnus.com>
1551
1552         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
1553         emit_conditional_move.
1554
1555 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
1556
1557         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
1558         as the dynamic linker.
1559
1560 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
1561
1562         * cppfiles.c (open_include_file): Open file in blocking mode.
1563         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
1564         Only exclude block devices and directories.
1565
1566         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
1567         static.  Allocate the hashnode and its string in the same
1568         block of memory.
1569         (del_HASHNODE): Don't free h->name.
1570         (_cpp_lookup): If there is no entry for this string, create
1571         one, of type T_VOID.
1572         (_cpp_lookup_slot): Delete.
1573         * cpphash.h: Update prototypes.
1574
1575         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
1576         not hp == NULL.
1577         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
1578         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
1579         node here, just fill in the value field properly.  "Delete"
1580         entries by setting the value field to T_VOID.  Check for
1581         hp->type == T_VOID, not hp == NULL.
1582
1583         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
1584         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
1585         hashtab.h.
1586
1587 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
1588
1589         * config/mn10300/mn10300.c (print_operand_address): Do not add
1590         zero to SP.
1591
1592         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
1593         adjusted by less than 256 bytes, use ret regardless of having any
1594         callee-saved register to restore.
1595
1596 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
1597
1598         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
1599
1600 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
1601
1602         * config/i386/djgpp.h (INT_ASM_OP): Define.
1603         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
1604         (ASM_WEAKEN_LABEL): Define.
1605         (MASK_BNU210): Define.
1606         (SUBTARGET_SWITCHES): Define.
1607         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
1608         (MAKE_DECL_ONE_ONLY): Define.
1609         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
1610
1611 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
1612
1613         * i386/cygwin.h (INT_ASM_OP): Define.
1614
1615 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
1616
1617         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
1618         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
1619
1620 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
1621
1622         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
1623         __tmp_reg__ and __zero_reg__ initialization.
1624
1625 2000-04-30  Richard Henderson  <rth@cygnus.com>
1626
1627         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
1628
1629         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
1630         referenced bewteen the condition and the jump.  Don't delete
1631         anything but the jump.
1632
1633 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
1634
1635         * bb-reorder.c (scope_def): New struct.
1636         (scope_forest_info): New struct.
1637         (struct reorder_block_def): New member "scope".
1638         (REORDER_BLOCK_SCOPE): New macro.
1639         (relate_bbs_with_scopes): New function and prototype.
1640         (make_new_scope): Likewise.
1641         (build_scope_forest): Likewise.
1642         (remove_scope_notes): Likewise.
1643         (insert_intra_1): Likewise.
1644         (insert_intra_bb_scope_notes): Likewise.
1645         (insert_inter_bb_scope_notes): Likewise.
1646         (rebuild_scope_notes): Likewise.
1647         (free_scope_forest_1): Likewise.
1648         (free_scope_forest): Likewise.
1649         (dump_scope_forest): Likewise.
1650         (dump_scope_forest_1): Likewise.
1651         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
1652         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
1653         block.
1654         (reorder_basic_blocks): Added calls to build_scope_scope_forest
1655         and remove_scope_notes before reordering is done. Added calls to
1656         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
1657         after reordering is done.
1658
1659 2000-40-30  Bruce Korb  <bkorb@gnu.org>
1660
1661         * fixinc/inclhack.def:  Added definitions needed by OSR5,
1662         removed two stale entries (defined away with OLD_CPP).
1663         * fixinc/inclhack.sh: regen
1664         * fixinc/fixincl.x: regen
1665
1666 2000-04-30  Richard Henderson  <rth@cygnus.com>
1667
1668         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
1669         from the last insn in the sequence.
1670
1671 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
1672
1673         * cpplex.c (cpp_idcmp): New function.
1674         * cpplib.h: Prototype it.
1675         * scan_decls.c (scan_decls): Use it to inspect token names.
1676         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
1677         the file being run through the preprocessor.
1678         (check_macro_names): Provide length of token to cpp_defined.
1679
1680         * Makefile.in: Remove stale warning message.
1681
1682         * cppfiles.c (redundant_include_p): Provide length of token to
1683         cpp_defined.
1684         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
1685         values are unsigned int.
1686         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
1687         (_cpp_lookup_slot): Do not calculate the hash, either.
1688         * cpphash.h: Update prototypes.
1689         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
1690         Hashes are unsigned int.  Calculate hash here, pass by value
1691         to _cpp_lookup_slot.
1692
1693 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
1694
1695         * simplify-rtx.c (check_value_useless): Delete function.
1696         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
1697         by hand.
1698         (cselib_invalidate_regno): Likewise.
1699         (cselib_invalidate_mem_1): Likewise.
1700         (references_value_p): Recognize useless values by the fact that they
1701         have no locations.
1702         (discard_useless_values): Likewise.
1703         (cselib_record_set): This may turn a useless value
1704         into a useful one.
1705
1706 2000-04-30  Richard Henderson  <rth@cygnus.com>
1707
1708         * config/d30v: New port.
1709
1710         * configure.in (d30v-*): Set fp format.
1711         * configure: Rebuild.
1712
1713 2000-04-30  Richard Henderson  <rth@cygnus.com>
1714
1715         * ifcvt.c: New file.
1716         * Makefile.in (OBJS): Add it.
1717         (ifcvt.o): New target.
1718         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
1719         and conditional arithmetic.
1720         (find_insert_position): Remove.
1721         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
1722         * toplev.c (DFI_ce, DFI_ce2): New.
1723         (dump_file): Add ce and ce2 dumps.
1724         (rest_of_compilation): Run if_convert a couple o times.  Set
1725         cse_not_expected after cse2.  Don't set no_new_pseudos until
1726         after sched1 or recompute_reg_usage.
1727
1728 2000-04-30  Richard Henderson  <rth@cygnus.com>
1729
1730         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
1731         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
1732
1733 2000-04-30  Richard Henderson  <rth@cygnus.com>
1734
1735         * flow.c (struct reg_cond_life_info): New.
1736         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
1737         (init_propagate_block_info): Initialize them.
1738         (free_propagate_block_info): Destruct them.
1739         (mark_set_1): Consider conditional life before killing a register.
1740         (mark_regno_cond_dead): New.
1741         (free_reg_cond_life_info): New.
1742         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
1743         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
1744         (mark_used_reg): Record conditional life.
1745
1746         * haifa-sched.c (schedule_insns): Disable death counting
1747         sanity check for HAVE_conditional_execution.
1748
1749 2000-04-30  Richard Henderson  <rth@cygnus.com>
1750
1751         * Makefile.in (TIMEVAR_H): New.
1752         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
1753         (timevar.h): Remove rule.
1754
1755 2000-04-29  Richard Henderson  <rth@cygnus.com>
1756
1757         * config/alpha/crtend.asm: Use C comments instead of #.
1758         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
1759
1760         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
1761
1762 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
1763
1764         * cpphash.h (enum node_type: Take out T_MCONST.
1765         (union hashval): Move into struct hashnode.
1766         (struct hashnode): Pack tighter.  Remove file, line, col
1767         members.
1768         * cpphash.c: Constify most of the macro-definition structures.
1769         (struct definition): Replace by struct object_defn
1770         and struct funct_defn.  Put file, line, column information
1771         here.  All users updated to match.
1772         (_cpp_create_definition, _cpp_macroexpand): Remove special
1773         case for #define WORD OTHERWORD.
1774         * cpplib.c (do_undef): Remove T_MCONST case.
1775
1776         * cpphash.h: Move struct reflist, struct definition, and the
1777         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
1778         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
1779         * cpphash.c (_cpp_free_definition): Free data pointed to by
1780         MCONST, XCONST, MACRO, and FMACRO nodes properly.
1781         (_cpp_create_definition, del_HASHNODE): Just call
1782         _cpp_free_definition to clear out a hashnode.
1783         * cpplib.c (do_pragma_poison): Likewise.
1784
1785 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
1786
1787         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
1788         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
1789         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
1790         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
1791         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
1792         REGNO_AM33_P): Redefine in terms of the new macros.
1793         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
1794         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
1795         STRUCT_VALUE): Likewise.
1796         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
1797         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
1798
1799 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1800
1801         * regmove.c (struct record_stack_memrefs_data): New.
1802         (record_stack_memrefs): New function.
1803         (combine_stack_adjustments_for_block): Use it.
1804
1805 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1806
1807         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
1808         use special_function_p to detect alloca.
1809
1810 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
1811
1812         * gcc.texi: Fixes for makeinfo 4.0 --html.
1813
1814 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
1815
1816         * pcp.h: Delete file.
1817
1818 2000-04-28  Kazu Hirata  <kazu@hxi.com>
1819
1820         * h8300.c (function_epilogue): Clean up flags when the last insn
1821         in a function is a barrier.
1822
1823 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
1824
1825         * configure.in (sparc-hal-solaris2*): protect [] glob from
1826         my expansion.
1827         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
1828         rather than hard-coded constants in target_cpu_default2.
1829         * configure: Regenerate.
1830
1831 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
1832
1833         * tree.c (get_callee_fndecl): Extract the initial value from
1834         a readonly decl.
1835
1836 2000-04-28  Richard Henderson  <rth@cygnus.com>
1837
1838         * varasm.c (record_constant_1): Record the CODE_LABEL when
1839         taking the address of a LABEL_REF.
1840
1841 2000-04-28  Richard Henderson  <rth@cygnus.com>
1842             Jan Hubicka  <jh@suse.cz>
1843
1844         * calls.c (combine_pending_stack_adjustment_and_call): Return the
1845         adjustment; don't do the stack adjust.
1846         (expand_call): Call compute_argument_block_size right before
1847         allocating the block; update comment; don't do alignment sanity
1848         checking for sibling call; use args_size instead of
1849         unadjusted_args_size before args_size is adjusted.  Use
1850         combine_pending_stack_adjustment_and_call to compute stack adjust
1851         for must_preallocate case.
1852
1853         * expr.c (push_block): Remove shadow `temp' in inner scope.
1854
1855 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
1856
1857         * toplev.c (rest_of_compilation): Call
1858         note_deferral_of_defined_inline_function even if the function
1859         can't be inlined.
1860
1861 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
1862
1863         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
1864
1865 2000-04-28  Richard Henderson  <rth@cygnus.com>
1866
1867         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
1868
1869 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1870
1871         * timevar.c (init_timevar): DeANSIfy function definition.
1872
1873 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
1874
1875         * Makefile.in (timevar.o): Depend on flags.h.
1876         * timevar.c (unused_stack_instances): New variable.
1877         (timevar_push): Take a timevar_stack_def from
1878         unused_stack_instances if available.
1879         (timevar_pop): Push the popped timevar_stack_def onto
1880         unused_stack_instances.
1881         (TIMEVAR_ENABLE): New macro.
1882         (timevar_def): Make standalone a 1-bit field.  Add field used.
1883         (get_time): Rename parameter to now.  Return after clearing it if
1884         not TIMEVAR_ENABLE.
1885         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
1886         (timevar_pop): Likewise.
1887         (timevar_stop): Likewise.
1888         (timevar_push): Likewise.  Mark the timing variable as used.
1889         (timevar_start): Likewise.
1890         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
1891         timevars that were never used.
1892
1893 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
1894
1895         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
1896         always TREE_READONLY.
1897
1898 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
1899
1900         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
1901         for call instruction with mode QImode.
1902
1903 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
1904
1905         * Makefile.in (OBJS): Add timevar.o.
1906         (toplev.o): Depend on timevar.h.
1907         (ggc-simple.o): Likewise.
1908         (ggc-page.o): Likewise.
1909         (timevar.o): New rule.
1910         (timevar.h): New rule.
1911
1912         * timevar.h: New file.
1913         * timevar.c: Likewise.
1914         * timevar.def: Likewise.
1915
1916         * toplev.h (gc_time, parse_time, varconst_time): Remove.
1917         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
1918         throughout.
1919         (TIMEVAR): Remove macro.
1920         (gc_time, parse_time, varconst_time, integration_time, jump_time,
1921         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
1922         flow_time, combine_time, regmove_time, sched_time,
1923         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
1924         sched2_time, dbr_sched_time, reorder_blocks_time,
1925         rename_registers_time, shorten_branch_time, stack_reg_time,
1926         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
1927         all_time): Remove.
1928         (compile_file): Don't initialize time variables.  Call
1929         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
1930         of many calls to print_time.
1931         (rest_of_compilation): Add timing for reload_cse_regs.
1932         (get_run_time): Removed to timevar.c.
1933         (print_time): Likewise.
1934         (get_run_time): Implement using TV_TOTAL time variable.
1935         (print_time): Get total run time from get_run_time.
1936         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
1937         computing elapsed time explicitly.
1938         * ggc-simple.c (ggc_collect): Likewise.
1939         (gc_time): Remove declaration.
1940
1941 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
1942
1943         * calls.c (combine_pending_stack_adjustment_and_call): New function.
1944         (expand_call): Use it.
1945
1946 2000-04-27  Jan Hubicka  <jh@suse.cz>
1947
1948         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
1949         fields.
1950
1951 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
1952
1953         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
1954         registers.
1955
1956 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1957
1958         * function.c (epilogue_done): Pass whole insn to record_insns.
1959
1960 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1961
1962         * cse.c (CSE_ADDRESS_COST): Remove.
1963         (find_best_addr): Add new parameter "MODE", use address_cost instead
1964         of CSE_ADDRESS_COST
1965         (address_cost): New.
1966         (fold_rtx): Update call of find_best_addr.
1967         * rtl.h (address_cost): Declare.
1968         * loop.c (general_induction_var): Add new parameter "MODE", use
1969         address_cost instead of ADDRESS_COST
1970         (init_loop): Use address_cost instead of ADDRESS_COST.
1971         (check_insn_for_givs): Update call of general_induction_var.
1972         (find_mem_givs): Likewise.
1973         (consec_sets_giv): Likewise.
1974         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
1975         * i386.c (ix86_address_cost): New.
1976         * i386-protos.h (ix86_address_cost): Declare.
1977
1978 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
1979
1980         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
1981         registers.
1982
1983 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1984
1985         * expr.c (store_expr): Use clear_storage instead of direct memset
1986         libcall.
1987
1988 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
1989
1990         * config/mn10300/mn10300.c (mn10300_address_cost): Test
1991         ASHIFT, AND and LABEL_REF.
1992
1993 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1994
1995         * invoke.texi (-foptimize-sibling-calls): Fix.
1996
1997 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1998
1999         * loop.c (load_mems)  Don't use hard registers for the hoisting.
2000
2001         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
2002         calculation; rename const_equiv array in the preconditioning code
2003         from loop_unroll to loop_unroll_precondition
2004
2005 2000-04-27  Richard Henderson  <rth@cygnus.com>
2006
2007         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
2008         add new_set.
2009         (propagate_one_insn): Clear it.  Don't update reg_live here.
2010         (init_propagate_block_info): Update for pbi member changes.
2011         (free_propagate_block_info): Likewise.
2012         (mark_set_1): Know that zero_extract, sign_extract, and
2013         strict_low_part don't kill their argument.  Alter hard subregs.
2014         Update new_set for non-CLOBBER sets.  Update reg_live.
2015         (find_auto_inc): Update reg_live, not new_dead.
2016         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
2017         to determine if the reg in question was set this insn.  Only update
2018         reg info with PROP_REG_INFO.
2019
2020 2000-04-26  Richard Henderson  <rth@cygnus.com>
2021
2022         * flow.c (allocate_reg_life_data): Set max_regno here ...
2023         (life_analysis): ... not here.
2024
2025         * flow.c (calculate_global_regs_live): Force stack pointer
2026         live at end.
2027
2028 2000-04-26  Richard Henderson  <rth@cygnus.com>
2029
2030         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
2031         commit change group changes.
2032         (invert_exp_1): Similarly.
2033         (redirect_exp, invert_exp): Use them.
2034         (redirect_jump_1): New.
2035         (invert_jump_1): New.
2036         (jump_optimize_1): Remove code subsumed by condexec.c.
2037         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
2038
2039 2000-04-26  Richard Henderson  <rth@cygnus.com>
2040
2041         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
2042
2043         * genconfig.c (main): Set all HAVE_foo to 1.
2044
2045         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
2046
2047 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
2048
2049         * invoke.texi: Document -fssa flag.
2050
2051 2000-04-26  Richard Henderson  <rth@cygnus.com>
2052
2053         * flow.c (count_reg_sets_1): Remove.
2054         (count_reg_sets, count_reg_references): Remove.
2055         (recompute_reg_usage): Implement with update_life_info.
2056         Reallocate life data.
2057
2058 2000-04-26  Richard Henderson  <rth@cygnus.com>
2059
2060         * flow.c (update_life_info): Consider blocks null to mean the
2061         universal set.
2062         (calculate_global_regs_live): Likewise.
2063         (life_analysis): Do that instead of collecting all_blocks.
2064
2065 2000-04-26  Richard Henderson  <rth@cygnus.com>
2066
2067         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
2068         a still-valid conditional jump.
2069
2070 2000-04-26  Richard Henderson  <rth@cygnus.com>
2071
2072         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
2073
2074         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
2075         * flow.c (calculate_loop_depth): Remove.
2076         * output.h (calculate_loop_depth): Don't declare.
2077         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
2078         inline; run estimate_probability at the same time.
2079
2080 2000-04-26  Neil Booth  <NeilB@earthling.net>
2081
2082         * cpplib.h: "~=" is not a single pp-token.
2083         * cpplex.c: Correct commentary.
2084
2085 2000-04-26  Richard Henderson  <rth@cygnus.com>
2086
2087         * flow.c (mark_set_1): New arguments code and flags; update all
2088         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
2089         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
2090         loop_depth when optimizing for size.  Do new_dead update after
2091         emitting REG_UNUSED notes.  Merge mark_set_reg code.
2092         (mark_set_reg): Remove.
2093         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
2094         arrange to not emit REG_UNUSED notes.
2095
2096 2000-04-26  Richard Henderson  <rth@cygnus.com>
2097
2098         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
2099         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
2100
2101 2000-04-26  Richard Henderson  <rth@cygnus.com>
2102
2103         * flow.c (propagate_one_insn): Break out from propagate_block.
2104         (init_propagate_block_info): Likewise.
2105         (free_propagate_block_info): Likewise.
2106         (propagate_block): Use them.  Export.
2107         * basic-block.h: Declare them all.
2108
2109 2000-04-26  Richard Henderson  <rth@cygnus.com>
2110
2111         * basic-block.h (life_analysis): Declare here ...
2112         * output.h: ... not here.
2113         * flow.c (life_analysis): Remove nregs parameter; replace
2114         remove_dead_code with flags.  Remove ssa dead code check.
2115         Only init alias analysis if we'll use it.
2116         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
2117         * ssa.c (convert_to_ssa): Likewise.
2118         (convert_from_ssa): Likewise.
2119         * toplev.c (rest_of_compilation): Likewise.
2120
2121 2000-04-26  Richard Henderson  <rth@cygnus.com>
2122
2123         * flow.c (flow_delete_block): Rename from delete_block.  Export.
2124         * basic-block.h (flow_delete_block): Declare.
2125
2126 2000-04-26  David S. Miller  <davem@redhat.com>
2127
2128         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
2129         taking a PATTERN of it.
2130
2131 2000-04-26  <NeilB@earthling.net>
2132
2133         * cpplex.c (spell_other, spell_char): Remove.
2134         (SPELL_CHAR): New.
2135         (token_spelling, trigraph_map): Use unsigned chars.
2136         (_cpp_lex_line): Tidy up the switch statement.
2137         * cpplib.h: Implement spell_char with spell_string.
2138         (C): New.
2139
2140 2000-04-26  <RodneyBrown@pmsc.com>
2141
2142         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
2143         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
2144
2145 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2146
2147         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
2148         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
2149         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
2150         dwarf2out_return_save, dwarf2out_return_reg,
2151         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
2152         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
2153         gen_compile_unit_die, dwarf2out_init): Constify a char*.
2154
2155         * dwarf2out.h (dwarf2out_init): Likewise.
2156
2157         * dwarfout.c (filename_entry, primary_filename, last_filename,
2158         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
2159
2160         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
2161         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
2162         dwarf2out_return_reg): Likewise.
2163
2164 2000-04-26  Andreas Jaeger  <aj@suse.de>
2165
2166         * extend.texi (Function Attributes): Fix description of pure
2167         attribute.
2168
2169 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
2170
2171         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
2172         before calling rest_of_compilation.
2173
2174 2000-04-26  Andreas Jaeger  <aj@suse.de>
2175
2176         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
2177         last patch.
2178
2179 2000-04-25  Richard Henderson  <rth@cygnus.com>
2180
2181         * cse.c (cse_insn): Emit barrier after unconditional jump.
2182
2183         * calls.c (expand_call): Disable tail call generation once
2184         rtx_equal_function_value_matters is false.
2185
2186         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
2187         like EDGE_EH edges.
2188
2189 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
2190
2191         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
2192
2193         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
2194
2195         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
2196         is the primary DIE for a member function.
2197         (gen_decl_die): Call set_decl_origin_self here.
2198         * dwarfout.c (output_decl): And here.
2199         * integrate.c (output_inline_function): Not here.
2200         Don't clear DECL_INLINE until after calling rest_of_compilation.
2201         (set_decl_origin_self): No longer static.
2202         * tree.h: Add prototype.
2203         * toplev.c (note_deferral_of_defined_inline_function): Only write
2204         out abstract instance for actual inlines.
2205
2206 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
2207
2208         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
2209         EXTENDED_REGS only if TARGET_AM33.
2210         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
2211         SP_REGS to register allocation and reloading unless absolutely
2212         necessary.
2213         (movsi3): Remove special-case of adding non-constants to SP.
2214
2215 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2216
2217         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
2218         INCLUDES to search and does not provide any of its own.  Also it
2219         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
2220         parameters.  Also it does not call AC_DEFINE.
2221         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
2222         AC_DEFINE and provides for automatic entries for autoheader.
2223         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
2224
2225         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
2226         so we can pass -I flags and include gansidecl.h/system.h in this
2227         test.
2228
2229         * acconfig.h: Delete all NEED_DECLARATION_* entries.
2230
2231 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2232
2233         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
2234         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
2235         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
2236
2237         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
2238         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
2239         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
2240         for these macros.  Clean up spacing and linewraps.
2241
2242 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
2243
2244         * calls.c (expand_call): Use get_callee_fndecl.
2245
2246         * print-tree.c (print_node): Print the chain of an _EXPR.
2247
2248 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
2249                           Jim Wilson  <wilson@cygnus.com>
2250                           Andrew Haley  <aph@cygnus.com>
2251
2252         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
2253         and gp save/restore problems.
2254         * config/ia64/crtend.asm: Add IA-64 unwind support.
2255         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
2256         in fr_pad_size calculation.
2257         (save_restore_insns): Move PR save area.  Correct uses of
2258         RTX_FRAME_RELATED_P.
2259         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
2260         (ia64_expand_epilogue): Add eh_epilogue support.
2261         (ia64_function_prologue): Emit .prologue directive.
2262         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
2263         (ia64_override_options): Set init_machine_status and
2264         mark_machine_status.
2265         (rtx_needs_barrier): Handle bsp reads and writes.
2266         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
2267         New static variables.
2268         (process_set, process_for_unwind_directive): New functions.
2269         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
2270         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
2271         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
2272         macros.
2273         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
2274         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
2275         (struct machine_function): Define.
2276         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
2277
2278 2000-04-25  Bruce Korb  <bkorb@gnu.org>
2279
2280         * fixinc/Makefile.in: make the removal of old programs more
2281         robust
2282         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
2283         install-bin and install-sh
2284
2285 2000-04-25  Nick Clifton  <nickc@cygnus.com>
2286
2287         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
2288         defined, define to return zero.
2289         (function_cannot_inline_p): If a function has any target
2290         specific attributes, then use the macro
2291         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
2292         whether it can be inlined.  If it cannot, issue a suitable
2293         explanation.
2294
2295         * tm.texi: Add a new node 'Inlining' to document the new macro
2296         FUNCTION_ATTRIBUTE_INLINABLE_P.
2297
2298 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
2299
2300         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
2301         commentary.
2302
2303 2000-04-25  Neil Booth  <NeilB@earthling.net>
2304
2305         Restore previous patch, plus the following fixes:
2306
2307         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
2308         flags, not CPP_OPEN_PAREN.
2309         * cpplex.c (expand_token_space, init_token_list,
2310         cpp_free_token_list): Put the dummy token at list->tokens[-1].
2311         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
2312
2313 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2314
2315         * config/i386/freebsd.h (INT_ASM_OP): Define.
2316
2317 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2318
2319         * loop.c (strength_reduce): Fix typo in the last checkin.
2320
2321 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2322
2323         * stor-layout.c (finalize_record_size): Simplify to use existing
2324         functions.
2325         (compute_record_mode): No longer static.
2326         * tree.h (compute_record_mode): New declaration.
2327
2328 2000-04-25  Neil Booth  <NeilB@earthling.net>
2329
2330         * Revert my patch below until cause of build failures
2331         determined.
2332
2333 2000-04-25  Richard Henderson  <rth@cygnus.com>
2334
2335         * combine.c (combine_instructions): Add missing argument
2336         to try_combine.
2337
2338         * toplev.c (rest_of_compilation): Delay sibcall optimization
2339         until after emit_eh_context.
2340
2341 2000-04-24  Nick Clifton  <nickc@redhat.com>
2342
2343         * combine.c (combine_instructions): Do not try to combine a
2344         sequence of insns when the second insn has been replaced by a
2345         note.
2346
2347 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
2348
2349         * gcc.c (load_specs): New static function.
2350         (read_specs): Use it.
2351
2352         * gcc.c (lookup_compiler): Make multiple passes for case
2353         insensitive filesystems.
2354
2355 2000-04-24  Neil Booth  <NeilB@earthling.net>
2356
2357         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
2358         * cpphash.h (_cpp_check_directive): new.
2359         * cpplex.c (handle_newline, cpp_free_token_list,
2360         init_trigraph_map, trigraph_ok, trigraph_replace,
2361         backslash_start, skip_block_comment, skip_line_comment,
2362         skip_whitespace, parse_name, parse_number, parse_string,
2363         copy_comment, _cpp_lex_line, spell_char, spell_string,
2364         spell_comment, spell_name, spell_other, _cpp_lex_file,
2365         _cpp_output_list): new.
2366         (expand_name_space): take length argument.
2367         (init_token_list): add comment list initialisation.
2368         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
2369         instead of HSPACE_BEFORE.
2370
2371         * cpplib.c (_cpp_check_directive): new
2372         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
2373         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
2374         (HSPACE_BEFORE): delete.
2375         (TTYPE_TABLE): rearrange.
2376         (struct cpp_toklist): update.
2377
2378 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2379
2380         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
2381         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
2382         argument form of AC_DEFINE.
2383
2384         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
2385         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
2386         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
2387         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
2388         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
2389
2390         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
2391
2392 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2393
2394         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
2395         deduced.h): Use -isystem, not -I, for including system headers.
2396
2397 2000-04-24  Nick Clifton  <nickc@cygnus.com>
2398
2399         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
2400         the source register is the frame pointer or arg pointer.
2401         (addsi3_small_int): Disallow if source register is the frame
2402         pointer or arg pointer.
2403
2404 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2405
2406         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
2407         call to AC_MSG_RESULT.
2408
2409 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2410
2411         * invoke.texi: Correct grammatical errors, document
2412         -fno-gnu-keywords as identical to -fno-asm for C++.
2413
2414 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2415
2416         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
2417         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
2418         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
2419         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
2420         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
2421
2422         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
2423         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
2424         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
2425         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
2426         new macros names.
2427
2428 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
2429
2430         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
2431         (pop_alignment): Likewise.
2432         (handle_pragma_token): Likewise.
2433
2434 2000-04-24  Robert Lipe <robertlipe@usa.net>
2435
2436         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
2437
2438 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
2439
2440         * combine.c (try_combine): Update reg_nonzero_bits of
2441         newi2pat before newpat.
2442
2443 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2444
2445         * loop.c (strength_reduce): Simplify test to INSN_P.
2446         (record_giv): Attempt to simplify the add value, use CONSTANT_P
2447         expressions instead of CONST_INT.
2448         (express_from_1): Likewise.
2449
2450 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
2451
2452         * regs.h (reg_n_max): Don't declare.
2453         * flow.c (reg_n_max): Don't define.
2454         * regclass.c (renumber): Don't initialize to zero.
2455         (regno_allocated): Likewise.
2456         (reg_n_max): Define.
2457         (allocate_reg_info): Don't initialize unnecessarily.
2458
2459 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
2460
2461         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
2462         and blockage_p in the newly allocated attribute.
2463
2464 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
2465
2466         * config/mn10300/mn10300.md (addsi): `inc4' on address
2467         registers does not modify cc, but `inc' on an extended
2468         register does.
2469
2470 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
2471
2472         * reload.c (find_equiv_reg): Checks all valueno regs
2473         as a reload_reg_p regs.
2474
2475 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
2476
2477         * cpphash.c (collect_objlike_expansion): Add sanity check.
2478         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
2479         the buffer is the empty string, return.  Mark __DATE__ and
2480         __TIME__ as XCONST nodes, not MCONST.
2481         (_cpp_macroexpand): Avoid pushing an empty buffer.
2482         (funlike_macroexpand): Don't pop token_buffer here.
2483
2484 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
2485
2486         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
2487         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
2488         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
2489         (REGNO_OK_FOR_BASE_P): Define in terms of them.
2490         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
2491         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
2492         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
2493
2494 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2495
2496         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
2497         constant MULT givs.
2498
2499 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
2500
2501         * cpphash.h (struct definition): Move file, line, col members...
2502         (struct hashnode): ... here.  Also add 'disabled' flag.
2503         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
2504         T_IDENTITY.  Remove T_DISABLED.
2505         Update prototypes.
2506
2507         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
2508         (collect_expansion): Split into collect_objlike_expansion and
2509         collect_funlike_expansion.
2510         (_cpp_macroexpand): Split out scan_arguments, stringify, and
2511         funlike_macroexpand.
2512         (_cpp_compare_defs): Rename compare_defs, make static.
2513         (_cpp_make_hashnode): Initialize hp->disabled.
2514         (macro_cleanup): Adjust for new token types.  Clear
2515         m->disabled.
2516         (_cpp_create_definition): Move code here to determine what
2517         sort of macro it is, and code to check for redefinitions, from
2518         do_define.  Implement a few simple cases without creating a
2519         full DEFINITION.
2520         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
2521         Handle the simple cases.
2522         (push_macro_expansion): Set buf->has_escapes and hp->disabled
2523         here.
2524
2525         * cppinit.c (builtin_array): Change MCONST to XCONST
2526         everywhere.
2527         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
2528         fix check for disabled and function-like macros.
2529         * cpplib.c (do_define): Move most logic to
2530         _cpp_create_definition.
2531         (do_undef): Handle new special token types.
2532
2533 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2534
2535         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
2536         of CONSTANT_P for mult_val; always use validate_change to update insn.
2537
2538 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
2539
2540         * cpphash.c (trad_stringify, add_pat): New functions.
2541         (collect_expansion): Restore support for -traditional syntax.
2542         Use trad_stringify and add_pat.
2543         (_cpp_macroexpand): Restore support for -traditional semantics.
2544         * cpplex.c (_cpp_scan_line): Don't change space_before if we
2545         get a COMMENT token.
2546         (_cpp_lex_token): Provide COMMENT tokens to caller if
2547         traditional and parsing_define_directive.
2548         (skip_comment): Warn about // comments if -Wtraditional.
2549         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
2550         proper node type.
2551         (do_undef): Don't warn about undefining EMPTY nodes.
2552
2553 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2554
2555         * loop.c (strength_reduce): Fix biv removal code.
2556
2557 2000-04-22  Richard Henderson  <rth@cygnus.com>
2558
2559         * predict.c (estimate_probability): Examine both sides of
2560         a branch for no exits.  Use 90% not 50% for predict taken.
2561         Reorg for one copy of note generation code.
2562
2563 2000-04-22  Richard Henderson  <rth@cygnus.com>
2564
2565         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
2566
2567 2000-04-22  Richard Henderson  <rth@cygnus.com>
2568
2569         * diagnostic.c (init_output_buffer): Don't initialize format_args.
2570         (output_clear): Likewise.
2571         (output_printf): Use va_copy.
2572         (vline_wrapper_message_with_location): Likewise.
2573         (v_message_with_decl): Likewise.
2574         (line_wrapper_printf): VA_START infor buffer.format_args directly.
2575         * system.h (va_copy): Provide default implementation.
2576
2577 2000-04-22  Richard Henderson  <rth@cygnus.com>
2578
2579         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
2580         the collected condition is not a constant.
2581
2582 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
2583
2584         * diagnostic.h: New file.
2585
2586         * Makefile.in (diagnostic.o): Depends on diagnostic.h
2587
2588         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
2589         various function prototypes.
2590         (diagnostic.h): #include.
2591         (struct output_buffer): Move into diagnostic.h.
2592         (get_output_prefix): Rename to output_get_prefix.  Export.
2593         (init_output_buffer): Export. Break out.  Ajust intialization.
2594         (output_space_left, output_append): Export.
2595         (output_newline): Rename to output_add_newline.  Export.
2596         (output_clear): Nullify additional output_buffer fields.
2597         (output_puts): Rename to output_add_string.  Export.
2598         (dump_output): Rename to output_flush_on.  Export.
2599         (build_location_prefix): Constify return-type.
2600         (emit_output_prefix): Rename to output_emit_prefix. Export.
2601         (set_real_maximum_length): New function.
2602         (output_set_maximum_length): Ditto
2603         (output_clear): Ditto.
2604         (output_add_character): Ditto.
2605         (output_add_integer): Ditto.
2606         (output_add_space): Ditto.
2607         (output_format): Ditto.
2608         (output_printf): Adjust buffer initialization.
2609         (vline_wrapper_message_with_location): Ditto.
2610         (v_message_with_decl): Ditto.  Adjust call to output_puts
2611         and get_output_prefix.
2612         (default_print_error_function): Adjust buffer intialization.
2613
2614 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2615
2616         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
2617         of VOID_TYPE.
2618
2619 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
2620
2621         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
2622         of explicit 0.
2623
2624 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
2625
2626         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
2627         accurate data about SP moves.
2628
2629 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
2630
2631         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
2632         aliases to AM33 registers.
2633
2634 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
2635
2636         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
2637         to all EXTENDED bitmaps.
2638
2639 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
2640
2641         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
2642         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
2643         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
2644
2645 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
2646
2647         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
2648         the operand is not constant.
2649
2650 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
2651
2652         * reload.c (find_equiv_reg): Checks all valueno and regno regs
2653         as a call-clobbered regs.
2654
2655 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2656
2657         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
2658         * rtl.h: Likewise.
2659         * rtl.def: Update comment.
2660         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
2661         * integrate.c (expand_inline_function): Likewise.
2662         * profile.c (branch_prob): Likewise.
2663         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
2664         * print-rtl.c (print_rtx): Likewise.
2665         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
2666         (reemit_notes): Likewise; also use enum insn_note.
2667
2668         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
2669         (place_field): Properly compute know and actual alignment.
2670
2671         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
2672         in proper format.
2673
2674         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
2675         note for REG1.
2676
2677 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
2678
2679         * cpphash.c (struct arg, struct arglist): Const-ify strings.
2680         (warn_trad_stringify, duplicate_arg_p): New helper functions.
2681         (collect_expansion): Rewrite to scan over a token list.
2682         Remove -traditional support.
2683         (collect_formal_parameters): Rename to collect_params; rewrite
2684         to scan over a token list.
2685         (_cpp_create_definition): Adjust to scan a token list.
2686         (_cpp_macroexpand): Remove -traditional support.
2687         (_cpp_compare_defs): Whitespace is now canonicalized.
2688         (comp_def_part): Delete function.
2689
2690         * cpphash.h: Update prototypes.
2691         * cpplex.c (init_token_list): Don't set lineno if there is no
2692         buffer.
2693         (pedantic_whitespace): New function.
2694         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
2695         consume a newline.  Use pedantic_whitespace.
2696         (_cpp_lex_token): Remove support for -traditional macros.
2697         (_cpp_get_define_token): Delete.
2698         (_cpp_get_directive_token): Do the real work here.  Use
2699         pedantic_whitespace.
2700         (_cpp_init_input_buffer): Initialize pfile->directbuf.
2701
2702         * cpplib.c (get_macro_name): Delete.
2703         (do_define): Read the entire line into pfile->directbuf, then
2704         feed the token list to _cpp_create_definition.
2705         * cpplib.h (HSPACE_BEFORE): new define.
2706         (struct cpp_reader): Add a toklist member, "directbuf".
2707
2708         * predict.c (estimate_probability): New heuristic: if a jump
2709         branches around a block with no successors, predict it taken.
2710         Disentangle control flow.
2711
2712 2000-04-20  Richard Henderson  <rth@cygnus.com>
2713
2714         * loop.c (emit_iv_add_mult): Revert last change.
2715
2716 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
2717
2718         * cpplib.h (enum cpp_ttype): Add token types for all
2719         punctuators.  Distinguish pp-numbers from valid C numbers.
2720         Give some tokens better names.  Initialize from macro.
2721         (struct cpp_name, cpp_token, cpp_toklist): New data
2722         structures.
2723         Update prototypes.
2724         * cpplex.c (bump_column, expand_name_space,
2725         expand_token_space, init_token_list, cpp_output_list,
2726         _cpp_scan_line):  New functions.
2727         (output_line_command): Add third argument, new line number.
2728         * cpphash.h: Update prototypes.
2729         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
2730         token names.
2731
2732 2000-04-20  Richard Henderson  <rth@cygnus.com>
2733
2734         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
2735
2736 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
2737
2738         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
2739         object pointed to.
2740
2741 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2742
2743         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
2744         REG_EQUAL note explaining the calculated value.
2745
2746         * calls.c (expand_call): Avoid unnecesary precalculation
2747         and outgoing parameters space guarding for sibling calls.
2748         (store_one_arg): Likewise.
2749
2750 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2751
2752         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
2753         (rest_of_compilation): Write sibling dump file and account
2754         for time as jump time.
2755         * invoke.texi: Update documentation on dump flags.
2756
2757 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
2758
2759         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
2760
2761 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
2762
2763         * cpphash.c (special_symbol): Represent an empty macro with
2764         "\r \r " not just "\r ".
2765         (_cpp_macroexpand): Correct condition for the foo ( ) special
2766         case.
2767         (unsafe_chars): Handle EOF as second argument.
2768         (push_macro_expansion): Simplify test for removing escape at
2769         end.  Do not trim both escapes if there is no text in between.
2770
2771 2000-04-19  Jim Blandy  <jimb@redhat.com>
2772
2773         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
2774         of PTR_SIZE, when appropriate.
2775
2776 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
2777
2778         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
2779         (USE_ENUM_BITFIELDS): Fix typo.
2780
2781 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2782
2783         * stor-layout.c (place_field): Set rli->offset_align properly.
2784
2785 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2786
2787         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
2788         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
2789         PARM_BOUNDARY): Remove unnecessary casts.
2790
2791 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2792
2793         * calls.c (precompute_arguments): Remove must_preallocate and
2794         args_size calls.
2795         (expand_call): Update call of precompute_arguments.
2796
2797         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
2798         check_insn_for_givs): Break out from ...
2799         (strength_reduce) ... here; use for_every_insn_in_loop to call
2800         check_insn_for_givs.
2801         * loop.h (for_every_insn_in_loop): Declare.
2802         (loop_insn_callback): New type.
2803
2804 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
2805
2806         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
2807         not nul-terminated.
2808
2809 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
2810
2811         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
2812         flag_pic and RELOC.
2813
2814 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
2815
2816         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
2817
2818         * configure.in: Delete --disable-cpplib option and all
2819         references to cpp_main.
2820         * configure: Regenerate.
2821         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
2822         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
2823         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
2824         cpp$(exeext).  Add --no-headers to makeinfo command line when
2825         generating INSTALL.  Install and uninstall cpp.1 manpage, not
2826         cccp.1.
2827         * install.texi: Delete all references to cexp.y/cexp.c.
2828         Delete ancient instructions for compiling GCC on 3b1.
2829         * INSTALL: Regenerate.
2830
2831         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
2832         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
2833         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
2834         cexp.c/cexp.y.
2835         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
2836         which is no longer tested anywhere.
2837
2838         * cppinit.c (handle_option): Don't run error message through
2839         gettext twice.
2840
2841 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2842
2843         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
2844         * cpperror.c (hashtab.h): Now include.
2845         * cppexp.c (hashtab.h): Likewise.
2846         * cpplex.c (hashtab.h): Likewise.
2847         * cppfiles.c (hashtab.h): Likewise.
2848         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
2849         to htab_find_slot_with_hash.
2850         * cpphash.c (hashtab.h): Now include.
2851         (_cpp_lookup_slot): INSERT is now enum insert_option.
2852         * cpphash.h (_cpp_lookup_slot): Likewise.
2853         * cppinit.c (hashtab.h): Include earlier.
2854         (initialize_builtins): Pass enum to htab_find_slot.
2855         * cpplib.c (hashtab.h): Now include.
2856         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
2857         (do_pragma_poison, do_assert): Likewise.
2858         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
2859         htab_find_slot_with_hash.
2860         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
2861         * tree.c (type_hash_add): Likewise.
2862         (build1): Minor cleanup.
2863
2864         * ggc-common.c: Add missing blanks.
2865         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
2866         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
2867
2868         * stmt.c (mark_case_node): New function.
2869         (mark_case_nesting): Call it.
2870
2871         * expmed.c (emit_store_flag): If comparing two-word integer
2872         with zero, can optimize NE, EQ, GE, and LT.
2873
2874         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
2875         * conflict.c: Minor cleanups.
2876         * optabs.c: Add blank line
2877         * simplify-rtx.c: Minor cleanups.
2878
2879 2000-04-18  Stan Cox  <scox@cygnus.com>
2880
2881         * gengenrtl.c (genlegend): Fix misspelling.
2882
2883 2000-04-18  Robert Lipe  <robertlipe@usa.net>
2884
2885         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
2886         bitfields of the host compiler are not signed quantities.
2887         * config.in: Regenerate.
2888         * configure: Regenerate.
2889         * system.h (USE_ENUM_BITFIELDS): Added.
2890         (ENUM_BITFIELDS): Added.
2891         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
2892         (SHORT_ENUM_BUG): Deleted.
2893         * tree.h (tree_common): Members `code', `mode', `built_in_class',
2894         now ENUM_BITFIELD.
2895         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
2896         (CODE_FIELD_BUG): Likewise.
2897         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
2898         (OLD_CC): Likewise.
2899         * config/m68k/x-ccur (X_CFLAGS): Likewise.
2900
2901 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
2902
2903         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
2904         mark is active.
2905
2906 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
2907
2908         * cppexp.c (lex): Don't assume tokens are NUL terminated.
2909         * cpplib.c (do_include, do_import, do_include_next,
2910         read_line_number, detect_if_not_defined): Likewise.
2911         * cpphash.c (collect_expansion): Likewise.
2912         (special_symbol, _cpp_macroexpand): Check return from
2913         cpp_file_buffer.
2914         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
2915         macros.  Delete all uses.
2916
2917         * gcc.dg/cpp-mi.c: Add two more test cases.
2918         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
2919
2920 2000-04-17  Richard Henderson  <rth@cygnus.com>
2921
2922         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
2923         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
2924
2925 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
2926
2927         * function.c (expand_function_start): Use hard_function_value to
2928         compute the RTL to use for DECL_RESULT.
2929
2930 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2931
2932         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
2933         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
2934          x86_memory_mismatch_stall): New global variables.
2935         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
2936         alloved; fix load penalties for Athlon.
2937         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
2938         x86_memory_mismatch_stall): Declare.
2939         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
2940          TARGET_MEMORY_MISMATCH_STALL): New.
2941         * i386.md (athlon scheduling parameters): Fix latencies according to
2942         Athlon Optimization Manual.
2943         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
2944         vector.
2945         (fsqrt instruction patterns): Set athlon_decode to direct.
2946         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
2947         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
2948         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
2949         and TARGET_PARTIAL_REGISTER_STALL machines.
2950         (pushdf_nointeger): New pattern.
2951         (pushdf_integer): Rename from pushdf.
2952         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
2953         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
2954
2955 2000-04-17  Richard Henderson  <rth@cygnus.com>
2956
2957         * loop.c (canonicalize_condition): Add WANT_REG argument.
2958         Stop the search if we match it.
2959         * expr.h (canonicalize_condition): Update decl.
2960         * predict.c (expected_value_to_br_prob): Use it.  Track last
2961         expected value note.
2962         (find_expected_value): Remove.
2963
2964         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
2965
2966 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
2967
2968         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
2969         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
2970         a plain file.
2971         * configure.in: Call AC_FUNC_MMAP_FILE.
2972         * configure: Regenerate.
2973         * config.in: Regenerate.
2974
2975         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
2976         * fixinc/fixincl.c: Likewise.
2977
2978 2000-04-17  Richard Henderson  <rth@cygnus.com>
2979
2980         * builtins.c (expand_builtin_expect): New.
2981         (expand_builtin): Call it.
2982         * builtins.def (BUILT_IN_EXPECT): New.
2983         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
2984         * extend.texi: Document it.
2985
2986         * predict.c (expected_value_to_br_prob): New.
2987         (find_expected_value): New.
2988         * basic-block.h (expected_value_to_br_prob): Declare.
2989         * toplev.c (rest_of_compilation): Invoke it.
2990
2991         * rtl.h (NOTE_EXPECTED_VALUE): New.
2992         (NOTE_INSN_EXPECTED_VALUE): New.
2993         * rtl.c (note_insn_name): Update.
2994         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
2995         cases; handle NOTE_INSN_EXPECTED_VALUE.
2996
2997 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
2998
2999         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
3000         leaf sibcall delay slot if flag_pic.
3001         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
3002
3003 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3004
3005         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
3006
3007         * fixproto: If fix-header fails, exit with an error.
3008
3009 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3010
3011         * cse.c (struct check_depdendence_data): New.
3012         (check_dependence): New function.
3013         (invalidate): Use check_depdenence.
3014
3015 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
3016
3017         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
3018         UNITS_PER_WORD is unsigned.
3019
3020         * tree.h (struct tree_common): Remove misleading comment.
3021
3022 2000-04-16  Dave Pitts  <dpitts@cozx.com>
3023
3024         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
3025         message in quotes. Otherwise, IBM's make program treats the '#' as the
3026         start of a comment and ignores the remainder of the line.
3027
3028         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
3029         upper case.
3030         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
3031         * cexp.y (initialize_random_junk): Likewise.
3032         * cppfiles.c (find_include_file): Cast alloca return value.
3033         * cppinit.c (initialize_standard_includes): Likewise.
3034         * cpplib.c (cpp_define, cpp_undef): Likewise.
3035         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
3036         * final.c (output_asm_insn): Allow for holes in EBCDIC.
3037         * fold-const.c (CHARMASK): New.
3038         (real_hex_to_f): Use it.
3039         * real.c (CHARMASK): New.
3040         (etoasc, asctoeg): Use it.
3041         (asctoeg): EBCDIC lower case characters preceed upper case.
3042
3043         * i370.c (mvs_add_label): Change spacing for coding conventions.
3044         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
3045         outputing case vectors.
3046         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
3047         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
3048         since vector in in the data CSECT.
3049         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
3050         * i370.md (Many patterns): Put the length in the XL directives.
3051         (movdi): Put back STM and MVC in definition.
3052         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
3053         pattern using the TCA.
3054         * oe.h (CPP_SPEC): Added to allow trigraphs.
3055         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
3056         not support the "long long" type.
3057
3058 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
3059
3060         * config/mips/mips-protos.h (mips_legitimate_address_p): New
3061         function.
3062         (mips_reg_mode_ok_for_base_p): Likewise.
3063         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
3064         (REG_OK_FOR_INDEX_P): Define unconditionally.
3065         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
3066         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
3067         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
3068         that GET_MODE_SIZE is unsigned.
3069         (mips_reg_mode_ok_for_base_p): Define.
3070         (mips_legitimate_address_p): Likewise.  Adjust now
3071         that GET_MODE_SIZE is unsigned.
3072         (block_move_loop): Make the number of bytes unsigned.
3073         (expand_block_move): Likewise.
3074         (function_arg): Make the loop counter unsigned to match the
3075         boundary condition.
3076
3077 2000-04-16  Richard Henderson  <rth@cygnus.com>
3078
3079         * rtl.h (enum insn_note): New enumeration.  Subsume
3080         NOTE_INSN_DELETED and friends.
3081         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
3082         * rtl.c (note_insn_name): Tweak string order.
3083
3084 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
3085
3086         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
3087         to offset * 2.
3088
3089         * cpplex.c (output_line_command): Remove debugging prints.
3090         (cpp_output_tokens): Don't write out a zero-length buffer or
3091         try to see if it has a newline in it.
3092         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
3093         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
3094         the end of the loop.  Use memmove.  Don't read past the end of
3095         the buffer.  Remove trailing newlines from error messages.
3096
3097 2004-04-16  Neil Booth  <NeilB@earthling.net>
3098
3099         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
3100         * cpplib.c: Add new syntax flags to directive table, and
3101         supporting macros.
3102
3103 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
3104
3105         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
3106         using ret $N.
3107
3108 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
3109
3110         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
3111         * haifa-sched.c: Update -fsched-verbose comments to use "=".
3112
3113 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3114
3115         * Makefile.in (ggc-page.o): Now includes toplev.h.
3116         * ggc-page.c (toplev.h): Now included.
3117         (gc_time): Remove declaration.
3118         (ggc_collect): TIME now long.
3119         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
3120         others static.
3121         * toplev.h (gc_time, parse_time, gc_time): New declarations.
3122
3123         * toplev.c: Make *_time variable long to reduce chance of overflow.
3124         (TIMEVAR): Likewise for `otime'.
3125         (print_time): Arg is now long; compute percentage in FP and round.
3126         * toplev.h (print_time): Arg is long.
3127
3128         * tree.c: Minor whitespace changes.
3129
3130         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
3131         * configure: Rebuilt.
3132         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
3133         (__fixunsxfDI): Renamed from __fixunsxfdi.
3134         (__fixunsdfDI): Renamed from __fixunsdfdi.
3135         (__fixunssfDI): Renamed from __fixunssfdi.
3136         (__floatdisf): Use proper type in REP_BIT macro.
3137         (__fixunsxfSI): Renamed from __fixunsxfsi.
3138         (__fixunsdfSI): Renamed from __fixunsdfsi.
3139         (__fixunssfSI): Renamed from __fixunssfsi.
3140         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
3141         Change location of macros and upper-case some names as above.
3142         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
3143         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
3144
3145         * varasm.c (assemble_variable): Add cast to remove warning.
3146         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
3147
3148         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
3149         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
3150         region number to -1.
3151
3152 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
3153
3154         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
3155         call unshare_all_rtl.
3156
3157         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
3158
3159 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
3160
3161         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
3162         Use .s1 not .s0 for all FP instructions.
3163
3164 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
3165
3166         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
3167         interfaces.
3168         (safe_fwrite, output_line_command): New static functions.
3169         (cpp_expand_to_buffer): Now private to cpplib.
3170         (cpp_scan_buffer): Take a printer.
3171
3172         * cpphash.h: Update prototypes.
3173         * cpplib.h: Update prototypes.
3174         (cpp_printer): New.
3175         (cpp_buffer): Remove last_nominal_fname.
3176         (cpp_reader): Remove lineno.
3177
3178         * cppmain.c: Use a cpp_printer.
3179         * fix-header.c: No need to inhibit line commands.  Call
3180         cpp_start_read with no printer.
3181
3182         * cpperror.c (cpp_notice_from_errno): Provide default name.
3183         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
3184         (find_include_file, cpp_read_file): Use make_IHASH.
3185         (file_cleanup): Set control_macro and clear
3186         input_stack_listing_current here.
3187         (_cpp_execute_include): Don't output entering-file marker.
3188         * cpphash.c (special_symbol): Look for the line number in the
3189         buffer, not the reader.
3190         (_cpp_macroexpand): No need to disable line commands.
3191         (_cpp_dump_definition): No need to generate line commands.
3192         (dump_hash_helper): Remove excess newline from output.
3193         * cppinit.c (dump_special_to_buffer): No need to generate line
3194         commands.
3195         (cpp_printer_init): New.
3196         (cpp_start_read): Take a printer, and start it up if it's not
3197         NULL.  No need to generate line commands.
3198         (cpp_finish): Expect no buffers stacked at all.  Take a
3199         printer argument, and flush the output buffer if it's not
3200         NULL.
3201         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
3202         Don't put two hashes at the beginning of an assertion.
3203         (cpp_get_token): Don't increment pfile->lineno or emit line
3204         commands here.  Return EOF if there's no buffer when we get
3205         EOF.
3206         * cpplib.c (do_define, skip_if_group):
3207         No need to disable line commands.
3208         (_cpp_output_line_command): Delete function.
3209         (do_line): Don't emit line commands here, but set things up so
3210         they will be emitted if necessary.  Use _cpp_fake_ihash to
3211         make unique nominal_fnames if necessary.
3212         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
3213         with 0 for column, not -1.
3214         (_cpp_handle_eof): Don't set the control macro here.  Don't
3215         clear input_stack_listing_current here.  Don't emit line
3216         commands.
3217
3218 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
3219
3220         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
3221         always, use the default SVR4 start address.
3222
3223         * config/rs6000/linux.h (LINK_SPEC): Don't define.
3224         (LINK_SHLIB_SPEC): Define.
3225         (LINK_START_DEFAULT_SPEC): Define.
3226         (LINK_OS_DEFAULT_SPEC): Define.
3227
3228         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
3229
3230         * config/rs6000/eabi.asm (__eabi): Call __init rather than
3231         __do_global_ctors to handle constructors.
3232         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
3233         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
3234         (STARTFILE_MVME_SPEC): Likewise.
3235         (STARTFILE_SIM_SPEC): Likewise.
3236         (ENDFILE_ADS_SPEC): Use crtend.
3237         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
3238         (ENDFILE_MVME_SPEC): Likewise.
3239         (ENDFILE_SIM_SPEC): Likewise.
3240         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
3241         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
3242         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
3243         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
3244         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
3245         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
3246         (CRTSTUFF_T_CFLAGS_S): Define.
3247         * config/rs6000/eabi-ctors.c: Delete.
3248
3249         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
3250         boundary.
3251         (__fini): Likewise.
3252         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
3253         boundary.
3254         (__fini): Likewise.
3255
3256 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
3257
3258         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
3259         plus mask size is smaller or equal to the mode size.
3260
3261 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3262
3263         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
3264         not yet set.
3265
3266         * expr.c (reload.h): Now included.
3267         (emit_block_move): Set volatile_ok when checking for movstr.
3268         (emit_move_1): Check for replacements in addresses in multi-word case.
3269         * Makefile.in (expr.o): Now includes reload.h.
3270
3271         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
3272         Never have a LIBCALL end a basic block.
3273         (find_basic_blocks_1): Likewise.
3274         Reorganize CALL_INSN cases.
3275
3276         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
3277
3278 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
3279
3280         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
3281         completers from mov.ret instruction.
3282
3283 2000-04-14  Richard Henderson  <rth@cygnus.com>
3284
3285         * fold-const.c (extract_muldiv): Don't distribute and widen
3286         multiply across plus for non-sizetype unsigned types.
3287
3288 2000-04-14  Richard Henderson  <rth@cygnus.com>
3289
3290         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
3291         If the original source is dead in the incr insn, it's dead now.
3292
3293 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3294
3295         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
3296         see if DECL_BIT_FIELD needs to still be set.
3297
3298         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
3299
3300         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
3301         print_int_cst_octal with something that's not an INTEGER_CST.
3302
3303         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
3304         and not a SUBREG to a FLOAT rtl.
3305
3306 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
3307
3308         * emit-rtl.c (try_split): Avoid infinite loop if the split
3309         results in a sequence that contains the original insn.
3310
3311 2000-04-13  Andreas Jaeger  <aj@suse.de>
3312
3313         * config/mips/mips.c (expand_block_move): Pass alignment
3314         argument to move_by_pieces in bits, not bytes.
3315
3316         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
3317         __pic__ for little endian.
3318
3319 2000-04-13  Andreas Jaeger  <aj@suse.de>
3320
3321         * config/i386/i386-protos.h: Add prototype for
3322         uno_comparison_operator.
3323
3324 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3325
3326         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
3327         * calls.c (ECF_PURE): New flag.
3328         (emit_call_1): Handle ECF_PURE calls.
3329         (initialize_argument_information): Unset ECF_PURE flag too.
3330         (precompute_arguments): Precompute for ECF_PURE too.
3331         (expand_call): Handle ECF_PURE calls too.
3332         (emit_library_call_value_1): Rename no_queue argument to fn_type,
3333         accept value of 2 as pure function.
3334         (emit_library_call_value, emit_library_call): Rename no_queue argument
3335         to fn_type.
3336         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
3337
3338         * tree.h (DECL_IS_PURE): New macro.
3339         (struct tree_decl): Add pure_flag.
3340         * c-common.c (enum attrs): Add attribute "pure".
3341         (init_attributes): Initialize attribute "pure"
3342         (decl_attributes): Handle attribute "pure".
3343         * extend.texi (Attribute "pure"): Document.
3344         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
3345         in pure function.
3346         (flags_from_decl_or_type): Support attribute "pure".
3347
3348 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
3349
3350         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
3351         the token except for numbers and identifiers.
3352
3353 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
3354
3355         * i386.c (ix86_expand_binary_operator,
3356         ix86_expand_unary_operator): Check no_new_pseudos
3357         instead of reload_in_progress and reload_completed.
3358         (ix86_split_ashldi, ix86_split_ashrdi,
3359         ix86_split_lshrdi): Check no_new_pseudos instead
3360         of reload_completed.
3361
3362 2000-04-12  Jeffrey A Law  (law@cygnus.com)
3363
3364         * function.c (purge_addressof): Unshare any shared rtl created by
3365         purge_addressof and its children.
3366
3367 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
3368
3369         * function.c (aggregate_value_p): VOID_TYPE nodes are never
3370         aggregates.
3371
3372 2000-04-05  Andreas Jaeger  <aj@suse.de>
3373
3374         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
3375         not compiling PIC code, add flags for mabi=64.
3376         (SUBTARGET_CPP_SIZE_SPEC): New.
3377         (SUBTARGET_CPP_SPEC): New.
3378         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
3379         for MIPS/Linux and lots of code needs these defines.
3380
3381 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
3382
3383         * reorg.c (fill_slots_from_thread): Check side_effects_p when
3384         trying the "opposite arithmetic" approach.
3385
3386 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3387
3388         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
3389         (struct sh_args): Add new field force_mem.
3390         (INIT_CUMULATIVE_ARGS): Initialize it.
3391         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
3392
3393 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3394
3395         * calls.c (expand_call): Do not reverse args in "equal from" field.
3396         (emit_library_call_value_1): Emit_libcall_block for const and pure
3397         function.
3398
3399 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3400
3401         * reload1.c (reload_combine): Don't enable optimization for fixed
3402         registers when encountering a BARRIER.
3403
3404 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3405
3406         * builtins.c (expand_builtin_memcmp): Do expansion even with
3407         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
3408
3409         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
3410         stack is propertly aligned; add sanity checking for aligned
3411         stack pointer.
3412         (expand_library_call_value_1): Add sanity checking for aligned
3413         stack pointer.
3414
3415 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
3416
3417         * calls.c (emit_library_call_value_1): Change 3rd arg to
3418         locate_and_pad_parm to disregard the setting of partial.
3419
3420 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3421
3422         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
3423
3424         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
3425         CALL_INSN from the normal case.
3426
3427 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3428
3429         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
3430         New global variables.
3431         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
3432         adjustment.
3433         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
3434         Declare,
3435         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
3436          TARGET_ADD_ESP_8): New macros.
3437         * i386.md: Add peep2s to convert esp adjustments to push and pop
3438         instructions.
3439         (pushsi_prologue, popsi_epilogue): New patterns.
3440
3441 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
3442
3443         * real.c (toe64): Remove stale #endif from the last change.
3444
3445 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
3446
3447         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
3448         * real.c (toe64): Revert previous change.
3449
3450 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
3451
3452         * objc/objc-act.c: Include ggc.h.
3453         (objc_tree_index, objc_global_trees): Convert most of the
3454         static tree variables into a static array with previous names
3455         as defines.
3456         (objc_ellipsis_node): New variable.
3457         (lang_init): Call objc_act_parse_init and c_parse_init.
3458         Create objc_ellipsis_node.
3459         (build_selector_translation_table): Use objc_ellipsis_node instead
3460         of (tree)1.
3461         (hack_method_prototype): Likewise.
3462         (get_arg_type_list): Likewise.
3463         (start_method_def): Likewise.
3464         (continue_method_def): Likewise.
3465         (gen_method_decl): Likewise.
3466         (ggc_mark_imp_list): New function.
3467         (ggc_mark_hash_table): New function.
3468         (objc_act_parse_init): New function.
3469         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
3470         * c-parse.in (c_parse_init): For objc add roots of objc specific
3471         local tree variables.
3472         * objc/objc-parse.y: Rebuilt.
3473         * objc/objc-parse.c: Rebuilt.
3474         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
3475
3476 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
3477
3478         * cse.c (delete_trivially_dead_insns): Also delete insns
3479         that copy a register to itself where the destination is
3480         a strict_low_part.
3481
3482 2000-04-11  Richard Henderson  <rth@cygnus.com>
3483
3484         * flow.c (struct propagate_block_info): Add new_dead, new_live.
3485         (propagate_block): Initialize them.  Use them in parallel instead
3486         of one tmp variable, ie revert much of the 0408 and 0407 functional
3487         changes, but keep the structural changes.
3488         (mark_set_regs): Take new_dead from propagate_block_info instead.
3489         (mark_set_1, mark_set_reg): Likewise.
3490         (mark_used_regs): Likewise with new_live.
3491         (mark_used_reg): Likewise.  Revert 0408 change.
3492
3493 2000-04-11  Nick Clifton  <nickc@cygnus.com>
3494
3495         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
3496         restriction.
3497         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
3498
3499 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
3500
3501         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
3502         const section to output a CONSTRUCTOR based on the same conditions
3503         used for VAR_DECLs.
3504
3505 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
3506
3507         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
3508         * pa/pa-protos.h (output_call): Add additional argument indicating
3509         if the call is a sibling/tail call.
3510         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
3511         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
3512         (function_arg, function_arg_partial_nregs): Likewise
3513         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
3514         (emit_move_sequence): Zero extend certain constants as needed
3515         for TARGET_64BIT.
3516         (compute_zdepdi_operands, output_64bit_and): New functions.
3517         (output_64bit_ior, function_arg): Likewise.
3518         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
3519         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
3520         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
3521         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
3522         (output_bvb): Likewise.
3523         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
3524         (output_call): New argument 'sibcall'.  Generate sibcall sequences
3525         as needed.
3526         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
3527         (ouput_arg_descriptor): Do not emit argument descriptors for
3528         TARGET_64BIT.
3529         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
3530         defined.
3531         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
3532         (FUNCTION_OK_FOR_SIBALL): Define.
3533         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
3534         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
3535         (CPP_SPEC): Use new spec infrastructure.
3536         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
3537         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
3538         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
3539         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
3540         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
3541         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
3542         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
3543         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
3544         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
3545         (FUNCTION_ARG); Call out to C code.
3546         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
3547         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
3548         (MIN_UNITS_PER_WORD): Likewise.
3549         * pa/pa.md (cmpdi): New expander.
3550         (scc patterns, movstrsi): Not available for TARGET_64BIT.
3551         (64bit conditional arithmetic): New patterns.
3552         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
3553         (movsicc): Not available if modes on all the operands to not match.
3554         (movdicc): New expander and associated patterns.
3555         (64bit branches): New patterns.
3556         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
3557         (pre_ldd, post_std): New patterns.
3558         (64bit addil, load low part): New patterns.
3559         (special movsf constant): Not available for TARGET_64BIT.
3560         (movsf, movdf expanders): Force constants into memory.
3561         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
3562         (64bit movdf/movdi patterns): New patterns.
3563         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
3564         for TARGET_64BIT.
3565         (extendqidi2, extendhidi2, extendsidi2): Similarly.
3566         (adddi3 expander): Allow "arith_operand" for second input.
3567         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
3568         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
3569         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
3570         (muldi3): New expander for TARGET_64BIT.
3571         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
3572         for TARGET_64BIT.
3573         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
3574         patterns for TARGET_64BIT.
3575         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
3576         patterns for TARGET_64BIT.
3577         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
3578         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
3579         (sibcall_epilogue): New expander.
3580         (casesi): Tweak for TARGET_64BIT.
3581         (call expanders): Set & use the outgoing argument pointer.  Use the
3582         64bit call patterns as needed. Add additional arg to output_call.
3583         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
3584         (sibcall, sibcall_internal_symref): New expanders.
3585         (sibcall_value, sibcall_value_internal_symref
3586         (interspace_jump): Turn into an expander + matching patterns.
3587         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
3588         * pa/pa64-regs.h: Eliminate trigraph sequences.
3589         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
3590
3591 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
3592
3593         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
3594         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
3595         cpp_token with cpp_ttype everywhere.
3596         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
3597         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
3598         CPP_BUF_COL.  Line and column numbers are unsigned int, not
3599         long.
3600         * cpplex.c (cpp_buf_line_and_col): Delete.
3601         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
3602         'long lineno' to 'unsigned int lineno'.
3603         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
3604
3605 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3606
3607         * extend.texi: ISO C99 is not a draft anymore.
3608         * invoke.texi: ISO C++ is not a draft anymore.
3609         * cpp.texi: __cplusplus is required by the ISO standard.
3610
3611         * extend.texi (-fthis-is-variable): Undocument.
3612         * flags.h (warn_template_debugging): Remove declaration.
3613         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
3614         -Wenum-clash, -Wtemplate-debugging): Undocument.
3615
3616 2000-04-10  Nick Clifton  <nickc@cygnus.com>
3617
3618         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
3619         integer.
3620         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
3621         integer.
3622         (ARM_SIGN_EXTEND): Use HOST_UINT.
3623         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
3624         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
3625         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
3626         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
3627
3628         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
3629         (arm_gen_constant): Use HOST_UINT.
3630         (arm_canonicalize_constant): Use HOST_UINT.
3631         (arm_reload_in_hi): Use HOST_UINT.
3632         (arm_reload_out_hi): Use HOST_UINT.
3633         (output_multi_immediate): Use HOST_UINT.
3634         (int_log2): Use HOST_UINT.
3635         (arm_poke_function_name): Use HOST_UINT.
3636         (arm_output_epilogue): Use arm_volatile_func().
3637         (output_thumb_prologue): Use arm_strip_name_encoding().
3638
3639 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3640
3641         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
3642         of sequence point problems.
3643
3644 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
3645
3646         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
3647         Recomment.
3648         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
3649
3650 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3651
3652         * sbitmap.h: Whitespace changes and use upper-case macro args.
3653         (struct simple_bitmap_def): All sizes now unsigned.
3654         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
3655         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
3656         (sbitmap_vector_alloc): Parms and local vars now unsigned.
3657         (sbitmap_zero): Cast bzero arg to PTR.
3658         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
3659         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
3660         loop to make structure clearer.
3661         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
3662         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
3663         (sbitmap_a_and_b_or_c): Likewise.
3664         (sbitmap_intersection_of_succs): Minor cleanups.
3665         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
3666         (sbitmap_union_of_preds): Likewise.
3667         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
3668         (debug_sbitmap): New function.
3669
3670         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
3671         * c-typeck.c (convert_for_assignment): Likewise.
3672
3673         * expmed.c (init_expmed): Don't free objects we make.
3674         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
3675
3676         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
3677         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
3678
3679         * gcse.c (expr_hash_table_size): Now unsigned.
3680         (compute_ae_gen): Local variable `i' now unsigned.
3681         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
3682         (compute_transout, hoist_code): Likewise.
3683         (compute_local_properties): Likewise, also hash_table_size.
3684         (alloc_expr_hash_table): N_INSNS now unsigned.
3685         (delete_null_pointer_checks): Mark arg F as unused.
3686
3687         * regrename.c: Minor cleanups, including chang some variables
3688         to unsigned int.
3689
3690 2000-04-10  Neil Booth  <NeilB@earthling.net>
3691
3692         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
3693         than GETC ().
3694         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
3695
3696 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
3697
3698         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
3699         __classof__, and __headof__ from the list of gnu keywords.
3700         (-ansi): Remove -foperator-names from list of implied options.
3701         Do not call it ANSI C++.
3702         (-foperator-names): Document as -fno-operator-names.
3703
3704 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
3705
3706         * cpphash.c (timestamp): Delete.
3707         (del_HASHNODE): If type is T_MCONST, free value.cpval.
3708         (special_symbol): Remove unnecessary braces.  Remove
3709         T_VERSION.  Treat T_STDC like T_CONST unless
3710         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
3711         when one is encountered, then convert them into T_MCONST
3712         nodes.
3713         * cppinit.c (builtin_array): version_string is T_MCONST.
3714         __STDC__ has a "1" in its cpval.  Don't have a terminator
3715         entry.  Clean up which entries are dumped.
3716         (initialize_builtins): Only __STDC__ gets the special
3717         -traditional treatment.  Count the length of builtin_array.
3718         Render version_string here.
3719         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
3720         * cpplib.h (struct cpp_reader): Remove timebuf.
3721
3722 2000-04-09  Richard Henderson  <rth@cygnus.com>
3723
3724         * genrecog.c (pred): Update comparison_operator for the unordered
3725         operators.
3726
3727         * config/i386/i386.c (no_comparison_operator): Disallow unordered
3728         operators.
3729         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
3730         (uno_comparison_operator): New.
3731         (put_condition_code): Handle UNORDERED/ORDERED.
3732         (unsigned_comparison): Likewise.
3733         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
3734         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
3735         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
3736         update all callers.  Handle all 8 unordered operators.
3737         (ix86_expand_setcc): Lose the unordered argument, update all callers.
3738         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
3739         * config/i386/i386.h (PREDICATE_CODES): Update.
3740         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
3741         (ix86_expand_branch, ix86_expand_setcc): Update.
3742         * config/i386/i386.md (sunordered, sordered): New.
3743         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
3744         (bunordered, bordered): New.
3745         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
3746         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
3747         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
3748
3749 2000-04-09  Philip Blundell  <philb@gnu.org>
3750
3751         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
3752
3753 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
3754
3755         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
3756         fix_truncxfhi2): New patterns.
3757         * i386.c (output_fix_trunc): Handle converting to HImode.
3758
3759 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
3760
3761         * ssa.c (convert_to_ssa): Eliminate dead code when calling
3762         life_analysis.
3763         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
3764         (for_each_successor_phi): Change parameter to basic_block.
3765         (coalesce_regs_in_successor_phi_nodes): Likewise.
3766         (coalesce_regs_in_copies): Likewise.
3767         (compute_coalesced_reg_partition): Use basic_block instead of index.
3768         * rtl.h (convert_to_ssa): Delete.
3769         (convert_from_ssa): Likewise.
3770         (successor_phi_fn): Likewise.
3771         (for_each_successor_phi): Likewise.
3772         (in_ssa_form): Likewise.
3773         * basic-block.h (convert_to_ssa): Moved from rtl.h.
3774         (convert_from_ssa): Likewise.
3775         (successor_phi_fn): Likewise.
3776         (in_ssa_form): Likewise.
3777         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
3778         * flow.c (calculate_global_regs_live): Pass a basic_block to
3779         for_each_successor_phi.
3780
3781 2000-04-08  Richard Henderson  <rth@cygnus.com>
3782
3783         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
3784         was modified in the current insn.
3785
3786 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
3787
3788         * arm/thumb.md: Delete.
3789         * arm/thumb-protos.h: Delete.
3790
3791 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
3792
3793         Merge changes from merged-arm-thumb-backend-branch onto trunk.
3794
3795         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
3796
3797         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
3798         into branch.
3799
3800         * arm.md (nop): Use the standard RTL expression.  Don't code as a
3801         define_expand.
3802         (*arm_nop, *thumb_nop): Delete.
3803
3804         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
3805         constants.  Use casts instead.
3806         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
3807         output_multi_immediate, arm_poke_function_name): Likewise.
3808         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
3809         MASK_RETURN_ADDDR): Likewise.
3810
3811         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
3812
3813         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
3814         into branch.
3815
3816         * arm.md (eh_epilogue): New function.
3817         * arm.h (struct machine_function): Move to here ...
3818         * arm.c: ... from here.
3819         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
3820         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
3821         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
3822
3823         2000-03-30  Nick Clifton  <nickc@cygnus.com>
3824
3825         * config/arm/semi.h (ASM_SPEC): Restore definition.
3826         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
3827
3828         * config/arm/elf.h (ASM_SPEC): Restore definition.
3829         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
3830
3831         * config/arm/arm.h (ASM_SPEC): Remove definition.
3832         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
3833
3834         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
3835
3836         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
3837
3838         2000-03-24  Nick Clifton  <nickc@cygnus.com>
3839
3840         Various formating tidyups, elimination of compile time
3841         warnings and synchronisation with internal sources:
3842
3843         * config/arm/arm-protos.h (assemble_align): Add prototype.
3844         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
3845         (gen_comapre_reg): Rename to arm_gen_compare_reg.
3846         (arm_return_addr_rtx): Rename to arm_return_addr.
3847
3848         * config/arm/arm.c: Include except.h.
3849         Define shorter typenames for strict minipool_node and struct
3850         minipool_fix.
3851         (arm_return_in_memory): For WinCE return all structures <= 32 bits
3852         in memory.
3853         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
3854         (gen_comapre_reg): Rename to arm_gen_compare_reg.
3855
3856         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
3857         already defined.
3858         (ASM_SPEC): Define if not already defined.
3859         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3860
3861         * config/arm/arm.md: Rename references to gen_rotated_half_load to
3862         arm_gen_rotated_half_load, and references to gen_comapre_reg to
3863         arm_gen_compare_reg.
3864         (indirect_jump):  Only accept register operands.
3865         (load_indirect_jump): Keep this pattern since combine can generate
3866         it.
3867
3868         * config/arm/coff.h: Include aout.h.
3869         (MULTILIB_DEFAULTS): Only define if not already defined.
3870
3871         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
3872         into arm.h (so that COFF ports can support thumb based aliases).
3873         (ASM_SPEC): Move definition into arm.h
3874
3875         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
3876         redundant apcs spec.
3877         (ASM_SPEC): Move definition to arm.h
3878
3879         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
3880
3881         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
3882         for entries in the .bss section
3883
3884         2000-03-23  Nick Clifton  <nickc@cygnus.com>
3885
3886         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
3887         to thumb_far_jump_used_p.
3888
3889         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
3890         single integer parameter.
3891
3892         * config/arm/arm.c (struct machine_function): Add two new
3893         fields, 'far_jump_used' and 'arg_pointer_live'.
3894         (thumb_far_jump_used_p): Once the decision has been made that
3895         far jumps might be used, always return true.
3896         If being called from the initial elimination offset macro then
3897         do not bother to perform the test if the arg pointer is not
3898         being used.
3899         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
3900         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
3901
3902         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
3903
3904         * arm.c (output_return_instruction): Handle more cases where we can
3905         return from a function with an ldr instruction.
3906         (arm_output_epilogue): Likewise.
3907
3908         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
3909         if we need to push a large stack frame and there are no callee-saved
3910         registers.
3911
3912         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
3913         in ARM code if the frame pointer has been eliminated.
3914
3915         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
3916         unspec_volatile arguments to avoid duplicates.
3917         (consttable_1, consttable_2): Fixes for big-endian mode.
3918
3919         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
3920         as appropriate.
3921
3922         Re-write constant pool code.
3923         * arm.c (minipool_node, minipool_fix): New types.
3924         (minifix): Delete type.
3925         (arm_add_minipool_constant): Delete.
3926         (arm_compute_minipool_offsets, arm_find_barrier,
3927         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
3928         (get_jump_table_size): Now returns HOST_WIDE_INT.
3929         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
3930         functions.
3931         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
3932         (assign_minipool_offsets, arm_print_value): Likewise.
3933         (dump_minipool): Rewrite.
3934         (arm_barrier_cost): New function.
3935         (create_fix_barrier): New function.
3936         (push_minipool_barrier): New function.
3937         (push_minipool_fix): Record additional information about the fixup
3938         required.
3939         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
3940         check the mode of what needs fixing.
3941         (arm_reorg): Rewrite.
3942
3943         2000-03-08  Nick Clifton  <nickc@cygnus.com>
3944
3945         * config/arm/arm.md (indirect_jump): Force constant addresses into
3946         a register.
3947
3948         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
3949
3950         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
3951
3952         2000-02-24  Nick Clifton  <nickc@cygnus.com>
3953
3954         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
3955         adjust is word aligned.
3956         (thumb_expand_epilogue): Make sure that stack adjust is word
3957         aligned.
3958
3959         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
3960
3961         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
3962
3963         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
3964         pointer relative addresses.
3965
3966         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
3967
3968         * arm.c (find_barrier): Find the last barrier within the allowed
3969         range.
3970
3971         2000-02-09  Nick Clifton  <nickc@cygnus.com>
3972
3973         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
3974
3975         2000-02-09  Nick Clifton  <nickc@cygnus.com>
3976
3977         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
3978         ARM_FUNCTION_PROFILER.
3979
3980         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
3981         ARM_FUNCTION_PROFILER.
3982
3983         * config/arm/linux-oldld.h: Imported from mainline sources.
3984
3985         2000-02-07  Nick Clifton  <nickc@cygnus.com>
3986
3987         * config/arm/lib1funcs.asm: Merge in thumb functions from
3988         lib1thumb.asm.
3989
3990         * config/arm/lib1thumb.asm: Delete.
3991
3992         2000-02-04  Nick Clifton  <nickc@cygnus.com>
3993
3994         * config/arm/arm.c: Sychronised with current Red hat local
3995         sources.
3996         * config/arm/arm.h: Ditto.
3997         * config/arm/arm-protos.h: Ditto.
3998
3999         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
4000
4001         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
4002
4003         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
4004         byte stores.
4005
4006         2000-02-02  Nick Clifton  <nickc@cygnus.com>
4007
4008         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
4009
4010         * config/arm/arm.md (epilogue): Fix rtl checking abort because
4011         (return) was emited using an emit_insn() call.
4012
4013         2000-01-31  Nick Clifton  <nickc@cygnus.com>
4014
4015         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
4016         thumb stack frame.
4017         (thumb_exit): Move frame pointer back into hard frame pointer
4018         register if backtracing is being used.
4019
4020         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
4021
4022         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
4023         into branch.
4024
4025         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
4026
4027         * config/arm/arm.md (neg_pool_offset): Provide default for new
4028         attribute.
4029         (arm_movsi_insn): Add neg_pool_offset attribute.
4030         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
4031         rtx for the insn that starts the scan and an unsigned long for its
4032         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
4033         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
4034         instructions in *PINSERTED.
4035         (struct minipool_fixup): Add MIN_ADDRESS elt.
4036         (sort_fixups): Compute it.
4037         (arm_reorg): Changes to support inserting pools before the insn to be
4038         fixed up.
4039
4040         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
4041
4042         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
4043         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
4044         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
4045
4046         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
4047
4048         * config/arm/semi.h (TARGET_VERSION): Do not define if already
4049         defined.
4050         (TARGET_DEFAULT): Do not define if already defined.
4051
4052         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
4053
4054         * config/arm/arm.md (anddi3): Allow disjoint source operands.
4055         (iordi3): Allow disjoint source operands.
4056         (xordi3): Allow disjoint source operands.
4057         (negdi2): Permit construction for ARM and Thumb.
4058         (arm_negdi2): Renamed version of old negdi2 pattern.
4059         (thumb_negdi2): New pattern: Only permit non-overlapping
4060         source and destination.
4061
4062         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
4063
4064         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
4065         scratch low register so that it will not be deleted.
4066
4067         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
4068
4069         * config/arm/pe.h (ARM_PE): Define.
4070
4071         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
4072         interfacearm attribute if this is a PE toolchain.
4073         (output_return_instruction): Do not emit anything if the function
4074         has the naked attribute set.
4075         (is_called_in_ARM_mode): If the function has the interfacearm
4076         attribute then return true.
4077         (thumb_expand_prologue): Do not generate a prologue for naked
4078         functions.
4079         (thumb_expand_epilogue): Do not generate an epilogie for a naked
4080         function.
4081         (output_thumb_prologue): Do not bother if the function is naked.
4082         Strip PE encoding from function name before emitting.
4083
4084         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
4085
4086         * arm.md (pic_load_addr): Fix constraints.
4087
4088         * arm.md (casesi_insn): Fix mis-applied patch.
4089
4090         * arm.md ("core" function unit): Add rules for single- and
4091         multi-cycle insns.
4092         (All TARGET_THUMB patterns): Add "type" attribute information
4093         where needed.
4094         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
4095         the following insn is a CALL.
4096
4097         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
4098         pointer.
4099         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
4100         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
4101         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
4102
4103         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
4104
4105         * config/arm/linux-gas.h: oops - this file was missed out when the
4106         branch was created...
4107
4108         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
4109
4110         * thumb.c: Deleted.  Move contents to ...
4111         * arm.c: ... here.
4112         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
4113         rule for thumb.o
4114         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
4115         * configure: Regen.
4116
4117         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
4118         declare a prototype for asm_output_align();
4119
4120         * arm.c (thumb_condition_code): Delete.
4121         (arm_print_operand): Always use arm_condition_code array.
4122
4123         * arm.c (thumb_return_addr_rtx): Delete.
4124         (arm_save_machine_status, arm_restore_machine_status): Delete.
4125         (arm_init_machine_status, arm_mark_machine_status): New functions.
4126         (arm_init_expanders): Update accordingly.
4127         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
4128         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
4129         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
4130
4131         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
4132
4133         * configure.in : Fix arm-*-aout target to use new t-arm-aout
4134         script.
4135         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
4136         targets.
4137
4138         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
4139
4140         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
4141         stack backtrace structure.
4142
4143         * config/arm/arm-protos.h: Add prototypes for functions defined in
4144         arm/pe.h.
4145
4146         * config/arm/arm.c (arm_override_options): Fix selection of
4147         attributes of default processor.
4148
4149         * config/arm/coff.h: Delete needless #include.
4150
4151         * config/arm/pe.c: Delete unused code.
4152
4153         * config/arm/pe.h (CPP_DEFINES): Delete
4154         (SUBTARGET_CPP_SPEC): Define.
4155         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
4156
4157         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
4158
4159         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
4160
4161         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
4162         updated.
4163         (CAN_DEBUG_WITHOUT_FP): Define.
4164         (FIXED_REGISTERS): Make r11 call-saved.
4165         (CALL_USED_REGISTERS): Likewise.
4166         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
4167         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
4168         frame-pointer is required.
4169         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
4170         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
4171         if the target normally needs a stack frame in non-leaf functions.
4172         (use_return_insn): Correct logic for determining when a return
4173         instruction can be used.
4174         (output_return_instruction): Handle the frame-pointer register as
4175         a normal register when not TARGET_APCS_FRAME.
4176         (arm_output_prologue): Likewise.
4177         (arm_output_epilogue): Likewise.
4178         (output_func_epilogue): Likewise.
4179         (arm_expand_prologue): Likewise.
4180         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
4181
4182         * arm.c (use_return_insn): No need to check floating point regs if
4183         TARGET_SOFT_FLOAT.
4184         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
4185         the code of value stored in the minipool array.
4186         (arm_add_minipool_constant): Likewise.
4187
4188 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4189
4190         * basic-block.h (conflict_graph_enum_fn): K&R fix.
4191
4192 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4193
4194         * tree.c (tree_expr_nonnegative_p): New function.
4195
4196         * tree.h (tree_expr_nonnegative_p): Declare.
4197
4198         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
4199         elide some sign_compare warnings.
4200         (build_conditional_expr): Likewise.
4201
4202 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
4203
4204         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
4205
4206         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
4207         * i386.c (print_operand): Use the proper suffix for a 387 HImode
4208         operand.  Abort if a 387 operand has an unsupported size.
4209
4210 2000-04-08  Neil Booth  <NeilB@earthling.net>
4211
4212         * cppexp.c (parse_charconst): Null does not end character
4213         constants.
4214         * cppinit.c (ISTABLE): Null character handled as whitespace.
4215         * cpplex.c (null_warning):  new function.
4216         (skip_string): Emit warning if nulls encountered.
4217         (_cpp_skip_hspace): Emit warning if nulls encountered.
4218         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
4219         them.
4220         * cpp.texi: Update.
4221
4222 2000-04-07  Richard Henderson  <rth@cygnus.com>
4223
4224         * flow.c (loop_depth): Remove.
4225         (reg_next_use, cc0_live, mem_set_list): Replace with ...
4226         (struct propagate_block_info): New.
4227         (life_analysis): Don't allocate reg_next_use.
4228         (propagate_block_delete_insn): Break out of propagate_block.
4229         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
4230         (propagate_block_delete_libcall): Likewise.
4231         (propagate_block): Create a propagate_block_info struct to pass
4232         to subroutines.  Allocate one not two temporary regsets.  Don't
4233         clobber memory for const calls.  Look for clobbers in
4234         CALL_INSN_FUNCTION_USAGE.
4235         (mark_set_regs): Recognize COND_EXEC.
4236         (mark_set_reg): Break out of mark_set_1.
4237         (mark_used_reg): Break out of mark_used_regs.
4238         (mark_used_regs): Recognize COND_EXEC.
4239         (insn_dead_p): Use propagate_block_info struct.
4240         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
4241         (find_auto_inc, try_pre_increment_1): Likewise.
4242         (print_rtl_with_bb): Dump regs live at end too.
4243         (count_reg_sets_1): Pass in loop_depth.
4244         (count_reg_sets, count_reg_references): Likewise.
4245         (recompute_reg_usage): Provide it.
4246
4247 2000-04-07  Richard Henderson  <rth@cygnus.com>
4248
4249         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
4250         not the raw files.
4251
4252 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
4253
4254         * cpplib.c (do_elif): Skip the rest of the line if we're
4255         not going to bother evaluating it.
4256         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
4257         to avoid pointless calls to the lexer.
4258
4259 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
4260
4261         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
4262
4263 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
4264
4265         * calls.c (expand_call): emit_queue if we're trying a sibcall.
4266
4267 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
4268
4269         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
4270
4271 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
4272
4273         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
4274         crtend so they can be multilibbed.
4275         (STAGESTUFF): Remove s-crt and s-crtS.
4276
4277 2000-04-07  Richard Henderson  <rth@cygnus.com>
4278
4279         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
4280         if we discover we need a pseudo and no_new_pseudos is true.
4281         * config/alpha/alpha.md (ne:DI insn): New.
4282         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
4283
4284 2000-04-07  Richard Henderson  <rth@cygnus.com>
4285
4286         * rtl.def (COND_EXEC): New.
4287         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
4288         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
4289
4290         * genconfig.c (have_cond_arith_flag): Remove.
4291         (have_cond_exec_flag): New.
4292         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
4293         (main): Print HAVE_conditional_execution.
4294
4295         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
4296         (sched_analyze_insn, print_pattern): Likewise.
4297         * reload.c (find_equiv_reg): Likewise.
4298         * rtlanal.c (reg_referenced_p): Likewise.
4299         (note_stores, dead_or_set_regno_p): Likewise.
4300         (reg_overlap_mentioned_p): Rewrite to use a switch.
4301
4302         * ggc.h (struct rtx_def): Forward declare.
4303
4304         * print-rtl.c (debug_rtx_range): New.
4305         * rtl.h (debug_rtx_range): Declare.
4306
4307         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
4308
4309         * gcse.c (gcse_main): Don't rebuild the CFG here.
4310         (delete_null_pointer_checks): Likewise.
4311         * ssa.c (convert_to_ssa): Likewise.
4312         * toplev.c (rest_of_compilation): Do it here instead.  Combine
4313         sequential calls to TIMEVAR.  Consistently use `insns' instead of
4314         `get_insns()'.  Always split insns after reload when optimizing.
4315
4316         * basic-block.h (merge_blocks_nomove): Declare.
4317         (tidy_fallthru_edge): Declare.
4318         * flow.c (merge_blocks_nomove): Document as merging into previous
4319         blocks.  Remove cruft from between blocks; remove all edges out of A.
4320         (tidy_fallthru_edge): Export.
4321
4322 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
4323
4324         * ssa.c (compute_conservative_reg_partition): Declare with
4325         void arguments.
4326         * toplev.c (clean_dump_file): Remove previously-deleted function
4327         inadvertantly merged back in.
4328         * conflict.c (conflict_graph_add): Use a single call to
4329         htab_find_slot to look up and insert.
4330
4331 2000-04-06  Richard Henderson  <rth@cygnus.com>
4332
4333         * genrecog.c (*): Rename _last_insn to last_insn.
4334         (make_insn_sequence): Set the position of the peephole2 C test
4335         to be at the last insn.
4336
4337 2000-04-06  Richard Henderson  <rth@cygnus.com>
4338
4339         * flow.c (compute_flow_dominators): Free worklist.
4340
4341 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
4342
4343         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
4344
4345 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
4346
4347         * rtl.h (INSN_P): New macro.
4348         (successor_phi_fn): New typedef.
4349         (for_each_successor_phi): New prototype.
4350         (in_ssa_form): New variable.
4351         (PHI_NODE_P): Likewise.
4352         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
4353         phi nodes in successors.
4354         (mark_used_regs): Add PHI case.
4355         (set_phi_alternative_reg): New function.
4356         (life_analysis): Assert that dead code elimination is not selected
4357         when in SSA form.
4358         * toplev.c (to_ssa_time): New variable.
4359         (from_ssa_time): Likewise.
4360         (compile_file): Zero to_ssa_time and from_ssa_time.
4361         Print time to convert to and from SSA.
4362         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
4363         (print_time): Compute percent fraction as integer.
4364         * ssa.c (PHI_NODE_P): Moved to rtl.h.
4365         (convert_to_ssa): Check if we're already in SSA.
4366         Don't eliminate dead code in life_analysis.
4367         Rerun flow and life analysis at bottom.
4368         (eliminate_phi): Use canonical regnos when adding nodes.
4369         (mark_reg_in_phi): New function.
4370         (mark_phi_and_copy_regs): Likewise.
4371         (convert_from_ssa): Rerun life analysis at top.
4372         Use coalesced partition.
4373         Check for removing a phi node at the end of the block.
4374         (compute_coalesced_reg_partition): New function.
4375         (coalesce_regs_in_copies): Likewise.
4376         (coalesce_reg_in_phi): Likewise.
4377         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
4378         (for_each_successor_phi): Likewise.
4379         (rename_context): New struct.
4380         (rename_block): Use a rename_context with rename_insn_1.  When
4381         renaming sets of a subreg, emit a copy of the entire reg first.
4382         (rename_insn_1): Treat data as a rename_context *.  Save current
4383         insn in set_data.
4384         (rename_set_data): Add field set_insn.
4385         * Makefile.in (HASHTAB_H): Move up in file.
4386         (OBSTACK_H): New macro.
4387         (collect2.o): Use OBSTACK_H in dependencies.
4388         (sdbout.o): Likewise.
4389         (emit-rtl.o): Likewise.
4390         (simplify-rtx.o): Likewise.
4391         (fix-header.o): Likewise.
4392         (OBJS): Add conflict.o.
4393         (conflict.o): New rule.
4394         * basic-block.h: Include partition.h.
4395         (conflict_graph): New typedef.
4396         (conflict_graph_enum_fn): Likewise.
4397         (conflict_graph_new): New prototype.
4398         (conflict_graph_delete): Likewise.
4399         (conflict_graph_add): Likewise.
4400         (conflict_graph_conflict_p): Likewise.
4401         (conflict_graph_enum): Likewise.
4402         (conflict_graph_merge_regs): Likewise.
4403         (conflict_graph_print): Likewise.
4404         (conflict_graph_compute): Likewise.
4405         * conflict.c: New file.
4406
4407 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
4408
4409         * tlink.c (read_repo_files): Don't look for .rpo info for
4410         linker flags.
4411
4412 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4413
4414         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
4415
4416 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4417
4418         * config/sh/lib1funcs.asm (___udivsi3_i4):
4419         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
4420         only depends on FMOVD_WORKS.
4421
4422 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4423
4424         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
4425         make double constant 8-byte aligned.
4426
4427 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
4428
4429         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
4430         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
4431         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
4432         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
4433         Accept storing GENERAL_REGS into offsetable memory.
4434         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
4435         building a TFmode constant other than 0.0L into GENERAL_REGS.
4436
4437 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
4438
4439         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
4440
4441 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
4442
4443         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
4444         (macro_cleanup): No need to cast pbuf->macro.
4445         (collect_expansion): Use _cpp_get_define_token.  Goto done if
4446         it returns VSPACE.  Remove check for trailing space after
4447         CPP_COMMENT.
4448         (_cpp_create_definition): Don't diddle flags here.  Return
4449         directly on error.
4450         (unsafe_chars): Handle c1 being EOF.
4451         (push_macro_expansion): Use unsafe_chars for both accidental-paste
4452         checks.  Don't push the buffer till after we're done with
4453         them.
4454         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
4455         (PEEKN, FORWARD, GETC, PEEKC): Use them.
4456         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
4457         appropriately.
4458         (_cpp_parse_assertion): Don't NUL terminate.
4459         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
4460         hspace before calling _cpp_parse_assertion.  Remove all sets
4461         of only_seen_white. Treat '\f' as hspace.  Don't do anything
4462         special with '\n' here.
4463         (maybe_macroexpand): Handle T_EMPTY hash entries without
4464         pushing a buffer at all.
4465         (cpp_get_token): Handle clearing only_seen_white here.  Handle
4466         incrementing the line number here.  Clear
4467         potential_control_macro as well as only_seen_white, if
4468         appropriate.
4469         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
4470         (_cpp_get_define_token): New function, basically like
4471         _cpp_get_directive_token was but doesn't eat horizontal space.
4472         Don't do anything with only_seen_white here.
4473         (_cpp_get_directive_token): Just call _cpp_get_define_token
4474         repeatedly till it returns non-hspace.
4475
4476         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
4477         (conditional_skip, skip_if_group): Return int.
4478         (DIRECTIVE_TABLE): Change origin of all conditional directives
4479         to "COND".
4480         (TRAD_DIRECT_P): New macro.
4481         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
4482         an error for a bogus directive, unless -lang-asm.  Use
4483         TRAD_DIRECT_P. Loop calling handler functions till one returns
4484         zero.
4485         (get_macro_name): Don't diddle flags here.
4486         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
4487         Create T_EMPTY nodes for #define macro /* nothing */.
4488         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
4489         Use hp->name when calling pass_thru_directive.
4490         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
4491         Return the result of conditional_skip and/or skip_if_group.
4492         Don't call _cpp_output_line_command.
4493         (consider_directive_while_skipping): Use _cpp_get_directive_token.
4494         Issue -Wtraditional warnings as appropriate.  Don't complain
4495         about unrecognized directives.  If we are to stop skipping,
4496         return the number of the directive that ended the skip.
4497         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
4498         expansion and line commands while skipping.  Return the result
4499         of consider_directive_while_skipping, if nonzero.
4500         (do_endif): Just set potential_control_macro here.
4501         (validate_else): Use _cpp_get_directive_token.
4502         (do_assert, do_unassert): Don't save pointers into the
4503         token_buffer across calls to the lexer.  Use
4504         _cpp_get_directive_token.
4505
4506         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
4507         pointer, not an offset.  Replace 'data', which was a generic
4508         pointer, with 'macro', which points to a struct hashnode.
4509         (cpp_reader): Add 'potential_control_macro' pointer.
4510         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
4511         (CPP_BUF_GET, CPP_FORWARD): Delete.
4512         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
4513         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,
4514         ACTIVE_MARK_P): Update.
4515         (_cpp_get_define_token): New internal function.
4516         * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno.
4517
4518 2000-04-05   Benjamin Kosnik  <bkoz@cygnus.com>
4519
4520         * configure.in: And here.
4521         * configure: Regenerate.
4522         * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if
4523         --enable-libstdcxx-v3 is passed at configure time.
4524         * config.h.in: Regenerate.
4525
4526 2000-04-05  Mark Mitchell  <mark@codesourcery.com>
4527
4528         * final.c (final): Use xcalloc to allocate line_note_exists.
4529         * function.c (free_after_compilation): Free the temp_slots.
4530         (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots.
4531         (combine_temp_slot): Free temp_slots when they get combined.
4532         (purge_addressof): Fix typo in comment.
4533         * stmt.c (mark_goto_fixup): Mark the fixup itself.
4534         (expand_fixup): Allocate the fixup with ggc_alloc_obj.
4535
4536         * ggc.h: Include varray.h.
4537         (ggc_pending_trees): Declare.
4538         (ggc_mark_tree_children): Remove declaration.
4539         (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees.
4540         * ggc-common.c (ggc_pending_trees): New variable.
4541         (ggc_mark_roots): Call ggc_mark_trees.
4542         (ggc_mark_tree_children): Rename to ggc_mark_trees.  Process all
4543         the ggc_pending_trees.
4544         * Makefile.in (GGC_H): New variable.  Use it throughout in place
4545         of ggc.h.
4546
4547 Thu Apr  6 00:30:50 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4548
4549         * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accomodate an unsigned
4550         GET_MODE_SIZE.
4551
4552 Wed Apr  5 23:17:10 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4553
4554         * sh.c (sh_insn_length_adjustment): New function.
4555         * sh-protos.h (sh_insn_length_adjustment): Declare.
4556         * sh.h (ADJUST_INSN_LENGTH): Use it.
4557
4558 Wed Apr  5 12:35:18 2000  Hans-Peter Nilsson  <hp@axis.com>
4559
4560         * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes
4561         from the insn where REG_RETVAL is added.
4562         (emit_no_conflict_block): Ditto.
4563
4564         * md.texi (Standard Names): Clarify when movX is needed.
4565
4566         * combine.c (simplify_comparison) [MINUS]: Do not replace
4567         all (op (minus A B) 0) with (op A B).
4568
4569 Wed Apr  5 18:03:31 2000  Toshiyasu Morita  (toshi.morita@sega.com)
4570                           J"orn Rennecke <amylaar@cygnus.co.uk>
4571
4572         * sh.md (block_lump_real_i4): Add missing clobber of T_REG
4573         (block_lump_real): Likewise.
4574
4575 2000-04-05  Chris Demetriou  <cgd@netbsd.org>
4576
4577         * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the
4578         remaining non-zero debugging masks.
4579
4580 Wed Apr  5 09:44:07 2000  Jeffrey A Law  (law@cygnus.com)
4581
4582         * basic-block.h (verify_flow_info): Declare.
4583         (flow_loop_outside_edge_p): Declare.
4584         * flow.c (verify_flow_info): Remove declaration.
4585         (clear_log_links, flow_loop_outside_edge_p): Likewise.
4586
4587 Wed Apr  5 09:34:26 2000  Philippe De Muyter <phdm@macqel.be>
4588
4589         * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0',
4590         not C++ comments.
4591
4592 2000-04-05  Jakub Jelinek  <jakub@redhat.com>
4593
4594         * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1,
4595         snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1,
4596         seqdi_zero_trunc+1): Allow splits only if registers are
4597         different.
4598
4599 2000-04-04  Ulrich Drepper  <drepper@cygnus.com>
4600
4601         * acconfig.h: Add HAVE_GAS_HIDDEN.
4602         * config.in: Regenerated.
4603         * configure.in: Add test for .hidden pseudo-op in gas.
4604         * configure: Regenerated.
4605         * crtstuff.c: Include auto-host.h.
4606         Emit additional .hidden pseudo-op for __dso_handle if the
4607         assembler knows about it.
4608
4609 2000-04-04  Philippe De Muyter  <phdm@macqel.be>
4610
4611         * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0,
4612         before freeing argnames.
4613         * cpplib.c (do_ifndef): Cast return value of xstrdup.
4614
4615 2000-04-05  Michael Meissner  <meissner@redhat.com>
4616
4617         * config/rs6000/rs6000.c (print_operand): Patch from Jonathan
4618         Walton <jonboy@gordian.com> to make memory references with update
4619         work wtih -mregnames.
4620
4621 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4622
4623         * regrename.c (regno_first_use_in): Wrap prototype in PARAMS.
4624         (regrename_optimize): Rename variables `def_uses' and
4625         `ext_basic_blocks' to avoid conflicts with similarly named
4626         typedefs in traditional C.
4627
4628         * calls.c (initialize_argument_information): Fix typo in previous
4629         change.
4630
4631 2000-04-04  Richard Henderson  <rth@cygnus.com>
4632
4633         * regrename.c (consider_available): Test fixed_regs not
4634         PIC_OFFSET_TABLE_REGNUM.
4635
4636 2000-04-04  Geoff Keating  <geoffk@cygnus.com>
4637
4638         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin,
4639         crtend.
4640         (CRTSTUFF_T_CFLAGS_S): Delete definition.
4641         * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin.
4642         (ENDFILE_LINUX_SPEC): Always use crtend.
4643         * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts.
4644         (powerpc-*-linux-gnu): Likewise.
4645         * configure: Regenerate.
4646
4647         * config/rs6000/eabi.h: Don't include sysv4.h.
4648         (MULTILIB_DEFAULTS): Don't define.
4649         * config/rs6000/eabiaix.h: Don't include eabi.h.
4650         * config/rs6000/eabile.h: Delete.
4651         * config/rs6000/eabilesim.h: Delete.
4652         * config/rs6000/eabisim.h: Don't include eabi.h.
4653         * config/rs6000/linux.h: Don't include sysv4.h.
4654         (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine.
4655         (MULTILIB_DEFAULTS): Don't redefine.
4656         * config/rs6000/rtems.h: Don't include eabi.h.
4657         * config/rs6000/sol2.h: Don't include sysv4le.h.
4658         * config/rs6000/sysv4le.h: Don't include sysv4.h.
4659         * config/rs6000/t-ppc: Delete.
4660         * config/rs6000/t-ppcgas: Correct comment.
4661         * config/rs6000/t-ppcos: Correct comment.  Don't build
4662         multilibs for -fPIC, rather use -fPIC -mstrict-align
4663         as default.
4664         * config/rs6000/t-ppc: Delete.
4665         * config/rs6000/vxppc.h: Don't include sysv4.h.
4666         * config/rs6000/vxppcle.h: Delete.
4667         * configure.in: Use multiple header files for p2pc ELF targets
4668         powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi,
4669         powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu,
4670         powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv,
4671         powerpc-vxworks, powerpcle-vxworks.  Assume GAS functionality is
4672         always available for these platforms.
4673
4674 2000-04-04  Richard Henderson  <rth@cygnus.com>
4675
4676         * calls.c (try_to_integrate): Initialize reg_parm_stack_space.
4677
4678 2000-04-04  Stan Cox  <scox@cygnus.com>
4679
4680         * Makefile.in: Add rules for regrename.o
4681         * regrename.c: New file.
4682         * rtl.h (regrename_optimize): Add prototype.
4683         * toplev.c (rename_registers_dump, flag_rename_registers): New variables
4684         (compile_file, decode_d_option): Add support for -frename-registers.
4685         (rest_of_compilation): Call regrename_optimize.
4686         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS):
4687         New macros.
4688
4689 2000-04-04  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
4690
4691         * Makefile (gccbug): New target.
4692         (doc): Depend on it.
4693         * gcc.texi (Bugs): Link subnodes.
4694         (gccbug): New node.
4695         * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc.
4696         Document severities, priorities, and classes in bug form.
4697
4698 2000-04-04  Zack Weinberg  <zack@wolery.cumb.org>
4699
4700         * cpplex.c (trigraph_map, speccase): Combine into single
4701         table, chartab.
4702         (NORMAL, NONTRI): New macros.
4703         (_cpp_read_and_prescan): Change to use unified table.  Use
4704         is_hspace to test for whitespace.
4705
4706         * dbxout.c (CONTIN): If it doesn't have to do anything, give it a
4707         definition that doesn't provoke the "empty body in an
4708         if-statement" warning.
4709
4710 2000-04-04  Clinton Popetz  <cpopetz@cygnus.com>
4711
4712         * builtins.c (expand_builtin_strlen): Force the source to
4713         be a memory address.
4714
4715 2000-04-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4716
4717         * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace.
4718
4719 Tue Apr  4 19:17:20 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4720
4721         * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE,
4722          ECF_LONGJMP, ECF_FORK_OR_EXEC):  New constants.
4723         (ECF_IS_CONST): Rename to ECF_CONST.
4724         (special_function_p): Make static, change interface.
4725         (flags_from_decl_or_type, try_to_integrate): Break out from ...
4726         (expand_call) ... here; convert number of variables to flags.
4727         (emit_library_call_vlue_1): Likewise.
4728         (setjmp_call_p): New function.
4729         (initialize_argument_information): Accepts flags as argument;
4730         return flags.
4731         (precompute_arguments): Likewise.
4732         * tree.h (special_function_p): Remove.
4733         (setjmp_call_p): Add prototype.
4734
4735 2000-04-04  Jakub Jelinek  <jakub@redhat.com>
4736
4737         * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin
4738         so that addresses are offsetable by up to 16 bytes.
4739         (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for
4740         non-optimizing TARGET_ARCH32 in DF or DI modes because it is not
4741         offsetable.
4742
4743         * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern.
4744         (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64.
4745         (movsf): Don't force any constant to memory if target is integer
4746         hard register.
4747         Move fp_zero_operand check below the const0_rtx check.
4748         (movtf): Likewise. Also allow fp_zero_operand for stores into
4749         memory.
4750         (movdf): Likewise. Also allow fp_zero_operand for stores into
4751         memory and into integer hard registers.
4752         (clear_df, clear_dfp, movdf_const_intreg_sp32,
4753         movdf_const_intreg_sp64): Remove.
4754         (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and
4755         conditions.
4756         (movdf_no_e_insn_v9_sp32): New pattern.
4757         (movdf_insn_v9only): Remove.
4758         (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns.
4759         (movdf_insn_sp64): Remove.
4760         (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns.
4761         (movdf_no_e_insn_sp64): Allow storing 0.0 into memory.
4762         (following splits): Rewrite conditions. Add two new splits
4763         for storing 0.0 into memory and registers.
4764         (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove.
4765         (movtf_insn_sp32): Redo constraints and conditions.
4766         (movtf_insn_vis_sp32): New pattern.
4767         (movtf_no_e_insn_sp32): Redo constraints and conditions.
4768         (movtf_insn_hq_sp64): Likewise.
4769         (movtf_insn_hq_vis_sp64): New pattern.
4770         (movtf_insn_sp64): Redo constraints and conditions.
4771         (movtf_insn_vis_sp64): New pattern.
4772         (movtf_no_e_insn_sp64): Redo constraints and conditions.
4773         (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers
4774         or memory.
4775         * config/sparc/sparc.c (sparc_override_options): Assume v9 if either
4776         -mvis or -m64 to take down the number of various reload patterns.
4777
4778 Tue Apr  4 00:41:53 2000  Jeffrey A Law  (law@cygnus.com)
4779
4780         * pa/pa-64.h: New file.
4781         * pa/pa64-regs.h: New file.
4782         * pa/pa64-start.h: New file.
4783         * pa/t-pa64: New file.
4784         * pa/xm-pa64hpux.h: New file.
4785
4786 2000-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4787
4788         * sparc.c (output_restore_regs): Prototype.
4789         (sparc_emit_float_lib_cmp): Constification.
4790
4791         * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise.
4792
4793         * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify):
4794         Prototype.
4795
4796         * simplify-rtx.c (entry_and_rtx_equal_p): Constification.
4797         (get_value_hash, hash_rtx): Likewise.
4798
4799         * ssa.c (compute_conservative_reg_partition): Prototype.
4800
4801         * tree.c (mark_hash_entry): Prototype.
4802
4803 2000-04-03  Zack Weinberg  <zack@wolery.cumb.org>
4804
4805         * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING.
4806         * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0.
4807         * i386.md (call_value, call_value_pop): Remove unused variable 'addr'.
4808
4809         * gcc.c (C specs): Pass -fno-show-column to the preprocessor.
4810         * objc/lang-specs.h: Likewise.
4811
4812 2000-04-03  Neil Booth  <NeilB@earthling.net>
4813
4814         * cppexp.c: wrap long lines.  New macros CPP_ICE, SYNTAX_ERROR
4815         and SYNTAX_ERROR2. Replace `' in messages with ''.
4816         (op_to_str): Make re-entrant.
4817         (_cpp_parse_expr): Implement new error macros. Use | rather
4818         than || to logically or 2 boolean integers.  Simply expression
4819         checking we have a left operand iff needed.
4820
4821 2000-04-03  Nick Clifton  <nickc@cygnus.com>
4822
4823         * Makefile.in (diagnostic.o): Depend upon diagnostic.c
4824
4825 2000-04-03  Philip Blundell  <philb@gnu.org>
4826
4827         * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos.
4828
4829 2000-04-03  Felix Lee  <flee@cygnus.com>
4830
4831         * fixinc/server.c (find_shell): New function.  Avoid $SHELL.
4832         (run_shell): Use it.
4833
4834 2000-04-03  Jonathan Larmour  <jlarmour@redhat.co.uk>
4835
4836         * Makefile.in (stmp-int-hdrs): Make include subdir here...
4837         (stmp-fixproto): ...rather than here.
4838
4839 Mon Apr  3 00:50:06 2000  Jason Eckhardt <jle@cygnus.com>
4840
4841         * pa.c (print_operand): Compute 'base' only inside the code paths
4842         that use it.
4843
4844 2000-04-03  Geoffrey Keating  <geoffk@cygnus.com>
4845
4846         * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than
4847         CEIL_DIV_EXPR.
4848
4849 2000-04-03  Philipp Thomas  <pthomas@suse.de>
4850
4851         * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo.
4852
4853 Mon Apr  3 00:02:59 2000  Brad Lucier <lucier@math.purdue.edu>
4854
4855         * Makefile.in (alias.o): Depend on $(TREE_H).
4856
4857 2000-04-02  Zack Weinberg  <zack@wolery.cumb.org>
4858
4859         * cppinit.c (cpp_start_read): Turn off -Wtraditional if
4860         processing C++.
4861         * cpplib.c (_cpp_handle_directive): Improve warnings for
4862         traditional C and indented directives.
4863
4864         * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex,
4865         fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap,
4866         fixinc/inclhack.def: Indent the # of #include_next one space.
4867         * cp/rtti.c: Un-indent #if and #endif.
4868
4869         * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a
4870         syntax error, but an error has already been printed.
4871         * cpplex.c (_cpp_parse_assertion): Give a more specific error
4872         message when called with nothing remaining on the line.
4873         (_cpp_lex_token): If _cpp_parse_assertion fails, return an
4874         OTHER token, not an ASSERTION.
4875         * cpplib.c (do_assert): When we create a 'base' node, clear
4876         its aschain pointer.
4877
4878 2000-04-02  Neil Booth <NeilB@earthling.net>
4879
4880         * cppexp.c:  New typedef op_t.  struct operation and struct
4881         token updated to use it.
4882         (op_to_str): New function.
4883         (_cpp_parse_expr): Error messages modified to use op_to_str.
4884
4885 2000-04-02  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
4886
4887         * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node
4888         before checking MUST_PASS_IN_STACK.
4889
4890 2000-04-02  Neil Booth <NeilB@earthling.net>
4891
4892         * cppexp.c:  New FINISHED dummy token.  Combine operator initial
4893         flags and initial priority into a single constant.  New
4894         EQUALITY macro.  New operator flag SHORT_CIRCUIT.
4895         (_parse_cpp_expr): Implement new constants.  Take left operand
4896         checks out of reduction loop.  Handle SHORT_CIRCUIT.  End of
4897         parse indicated by reducing FINISHED token.  Remove new lines
4898         from cpp_error messages.
4899
4900 2000-04-01  Mark Mitchell  <mark@codesourcery.com>
4901
4902         * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the
4903         permanent obstack.
4904
4905 2000-04-01  Zack Weinberg  <zack@wolery.cumb.org>
4906
4907         * cpplib.c: Include symcat.h.  Add 'origin' field to struct
4908         directive.  Add origin values to DIRECTIVE_TABLE.  Generate
4909         the strings and function names on the fly.  Take the #sccs
4910         entry out of the table if SCCS_DIRECTIVE is not defined.
4911         (_cpp_handle_directive): Decide if the # was at the beginning
4912         of the line here.  Issue -pedantic warnings for extended
4913         directives here.  Warn about K+R directives with the #
4914         indented, and C89/extended directives with the # not indented,
4915         here.
4916         (do_import, do_include_next, do_warning, do_ident, do_sccs,
4917         do_assert, do_unassert): Don't issue pedantic warning here.
4918
4919         * cpphash.h: Add CPP_WTRADITIONAL macro.
4920         * cpplib.h (struct cpp_options): Rename warn_stringify to
4921         warn_traditional; update comments.
4922         * cppinit.c (handle_option): Set warn_traditional not
4923         warn_stringify.
4924         * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with
4925         CPP_WTRADITIONAL (pfile).
4926         * cpplex.c (_cpp_lex_token): Don't decide if directives should
4927         be ignored in -traditional mode here.
4928
4929         * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them
4930         to initialize speccase[] and trigraph_map[].  Delete all
4931         references to pfile->input_speccase.  Always treat '?' as a
4932         special character.  Remove table-initialization code from
4933         _cpp_init_input_buffer.
4934
4935         * cpplib.h (struct cpp_reader): Remove input_speccase field.
4936         * cppinit.c (cpp_cleanup): Don't free input_speccase.
4937
4938 2000-04-01  Richard Henderson  <rth@cygnus.com>
4939
4940         * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once.
4941         (mostlyclean): Likewise.
4942
4943         * toplev.c (rtl_dump, jump_opt_dump, etc): Remove.
4944         (struct dump_file_info, enum dump_file_index, dump_file): New.
4945         (open_dump_file): Take a dump_file_index not a suffix, and a decl
4946         not a string.  Clean out file if we havn't yet done so.  Do nothing
4947         if the dump isn't enabled.
4948         (close_dump_file): Do nothing if the dump isn't open.  Dump
4949         graph data if requested.
4950         (dump_rtl, clean_dump_file): Remove.
4951         (compile_file): Don't clean the dump files.  Only finalize .bp dump
4952         if flag_test_coverage or flag_branch_probabilities.  Only finalize
4953         .combine dump if optimizing.  Iterate over dump_file to finalize the
4954         graph dumps.
4955         (rest_of_compilation): Update for open_dump_file/close_dump_file.
4956         Convert all uses of dump_rtl.
4957         (decode_d_option): Iterate over dump_file to implement 'a' and to
4958         locate pass-specific dumps.
4959
4960 2000-04-01  Neil Booth <NeilB@earthling.net>
4961
4962         * cppexp.c: Redefine priority constants.
4963         (_cpp_parse_expr): Replace left and right priority scheme with
4964         single priority logic.  Move LOGICAL to same place as COMPARE.
4965         Remove bogus check for multiple unary +/- operators.
4966
4967 2000-04-01  Neil Booth <NeilB@earthling.net>
4968
4969         * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed
4970         within the switch statement.  Binary operations break out of
4971         the switch naturally.  '(' tokens handled by forcing
4972         immediate shift.  ')' handled by forcing immediate reduce to
4973         the previous '('.  New error messages.
4974
4975 2000-03-31  Geoff Keating  <geoffk@cygnus.com>
4976
4977         * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low
4978         part', it's already in use.  Use %K instead.  Add a return at the
4979         end of what is now %K.
4980         * config/rs6000/rs6000.md (elf_low): Use %K instead of %l.
4981
4982 Sat Apr  1 02:05:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4983
4984         * builtins.c  (expand_builtin_apply):  Pass proper parameters to
4985         allocate_dynamic_stack_space.
4986         * calls.c (emit_call_1):  Do not adjust stack pointer for SIB,
4987         update stack_pointer_delta; do not update arg_size_so_far.
4988         (compute_argument_block_size): Use stack_delta instead of
4989         stack_pointer_pending and arg_size_so_far.
4990         (expand_call): Add sanity checking for stack_pointer_delta;
4991         save and restore stack_pointer_delta for SIB, use
4992         stack_pointer_delta for alignment; do not update arg_space_so_far.
4993         (emit_library_call_value): Use stack_pointer_delta for alignment.
4994         (store_one_arg): Do not update arg_space_so_far.
4995         * explow.c (adjust_stack, anti_adjust_stack): Update
4996         stack_pointer_delta.
4997         (allocate_dynamic_stack_space): Add sanity checking for
4998         stack_pointer_delta.
4999         * expr.c (init_expr, clear_pending_stack_adjust): Clear
5000         stack_pointer_delta.
5001         (emit_push_insn): Update stack_pointer_delta.
5002         * function.h (struct expr_status): Add x_stack_pointer_delta;
5003         remove x_arg_space_so_far.
5004         (arg_space_so_far): Remove.
5005         (stack_pointer_delta): New macro.
5006
5007 2000-03-31  Zack Weinberg  <zack@wolery.cumb.org>
5008
5009         * cpplib.h: Merge struct cpp_options into struct cpp_reader.
5010         Reorder struct cpp_options and struct cpp_reader for better
5011         packing.  Replace CPP_OPTIONS macro with CPP_OPTION which
5012         takes two args.  Change all 'char' flags to 'unsigned char'.
5013         Move show_column flag into struct cpp_options.  Don't
5014         prototype cpp_options_init.
5015         * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c,
5016         cppinit.c, cpplex.c, cpplib.c:
5017         Replace CPP_OPTIONS (pfile)->whatever with
5018         CPP_OPTION (pfile, whatever), and likewise for
5019         opts = CPP_OPTIONS (pfile); ... opts->whatever;
5020
5021         * cppinit.c (merge_include_chains): Take a cpp_reader *.
5022         Extract CPP_OPTION (pfile, pending) and work with that
5023         directly.
5024         (cpp_options_init): Delete.
5025         (cpp_reader_init): Turn on on-by-default options here.
5026         Allocate the pending structure here.
5027         (cl_options, enum opt_code): Define these from the same table,
5028         kept in a large macro.  Add -fshow-column and -fno-show-column
5029         options.
5030
5031         * cpperror.c (v_message): If show_column is off, don't print
5032         the column number.
5033
5034         * cppmain.c: Update for new interface.
5035         * fix-header.c: Likewise.
5036
5037 2000-03-30  Geoff Keating  <geoffk@cygnus.com>
5038
5039         * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new
5040         definition.
5041         * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that
5042         are passed to any invocation of AR_FOR_TARGET.
5043         (AR_CREATE_FOR_TARGET): New macro.
5044         (AR_EXTRACT_FOR_TARGET): New macro.
5045         (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET,
5046         AR_EXTRACT_FOR_TARGET.
5047         (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET
5048         in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and
5049         `$(AR_FOR_TARGET) x'.  Pass AR_CREATE_FOR_TARGET and
5050         AR_EXTRACT_FOR_TARGET to sub-makes.
5051
5052 2000-03-31  Neil Booth <NeilB@earthling.net>
5053
5054         * cppexp.c: Delete SKIP_OPERAND.  Correct priority
5055         PAREN_INNER_PRIO.
5056         (_cpp_parse_expr): Check for multiple unary +/- operators.
5057         Correct priorities of ':' and '?'.  Treat ')' as having a
5058         value.  Ensure conditional expression is not void.
5059
5060 2000-03-31  Mark Mitchell  <mark@codesourcery.com>
5061
5062         * alias.c (canon_rtx): Make it global.
5063         (rtx_equal_for_memref_p): CONST_INT equality is now pointer
5064         equality.
5065         * cse.c (struct table_elt): Add canon_exp.
5066         (insert): Clear it.
5067         (invalidate): Canonicalize expressions only once.
5068         * rtl.h (canon_rtx): Declare.
5069
5070 2000-03-30  Mark Mitchell  <mark@codesourcery.com>
5071
5072         * Makefile.in (emit-rtl.o): Depend on HASHTAB_H.
5073         * alias.c (reg_known_value): Add comments.
5074         (init_alias_analysis): Likewise.
5075         * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same
5076         address.
5077         (cse_basic_block): Fix typo in comment.
5078         * emit-rtl.c: Include hashtab.h.
5079         (const_int_htab): New variable.
5080         (const_int_htab_hash): New function.
5081         (const_int_htab_eq): Likewise.
5082         (rtx_htab_mark_1): Likewise.
5083         (rtx_htab_mark): Likewise.
5084         (gen_rtx_CONST_INT): Cache all CONST_INTs.
5085         (unshare_all_rtx): Fix formatting.
5086         (init_emit_once): Initialize const_int_htab.
5087         * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same
5088         address.
5089         * rtl.texi: Document the fact that all CONST_INTs with the same
5090         value are shared.
5091
5092 2000-03-30  Richard Henderson  <rth@cygnus.com>
5093
5094         * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits.
5095
5096 2000-03-30  Zack Weinberg  <zack@wolery.cumb.org>
5097
5098         * configure.in: Comment out --enable-c-cpplib stanza.
5099         * configure: Regenerate.
5100
5101 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5102
5103         * expr.c (store_constructor): Properly compute displacement and
5104         alignment when offset is variable.
5105
5106         * expmed.c (store_bit_field, store_fixed_bit_field): Fix more
5107         cases of alignment in bytes.
5108
5109 Thu Mar 30 13:30:40 2000  Jeffrey A Law  (law@cygnus.com)
5110
5111         * c-parse.in (cast_expr): Move change from March 21 into c-parse.in
5112         since it is used to generate c-parse.y.
5113         * objc-parse.c, objc-parse.y: Regenerated.
5114
5115         * function.c (expand_function_end): Pass alignment argument to
5116         emit_block_move in bits, not bytes.
5117
5118 Thu Mar 30 06:32:51 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5119
5120         * expr.c (move_by_pieces_ninsns): Fix one more missing align
5121         correction.
5122
5123         * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits.
5124
5125         * calls.c (expand_call): Pass bit alignment to mark_reg_pointer.
5126         * explow.c (memory_address, allocate_dynamic_stack_space): Likewise.
5127         * function.c (assign_parms): Likewise.
5128         * integrate.c (expand_inline_function): Likewise.
5129         * stmt.c (expand_decl): Likewise.
5130         (copy_rtx_and_substitute): Likewise.
5131         * expr.c (expand_expr, expand_expr_unaligned): Likewise.
5132         (clear_by_pieces): Fix error in last change.
5133         * emit-rtl.c (init_emit): Set known registers alignment in bits.
5134         * function.h (regno_pointer_align): Now unsigned.
5135         * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN
5136         is in bits.
5137         * config/i386/i386.c (aligned_operand): Likewise.
5138         * config/sparc/sparc.c (mem_min_alignment): Likewise.
5139         * config/alpha/alpha.c (aligned_memory_operand): Likewise.
5140         (unaligned_memory_operand): Likewise.
5141         (alpha_expand_block_move, alpha_expand_block_clear): Likewise.
5142         Also make alignments and sizes unsigned and some whitespace cleanup.
5143         (alpha_va_start): Do nothing if VALIST's type is error_mark_node.
5144
5145         * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst.
5146         (expand_builtin_apply): Pass alignment to emit_block_move in bits.
5147         (expand_builtin_memcpy, expand_builtin_va_copy): Likewise.
5148         (expand_builtin_memset): Likewise, but to clear_storage.
5149         * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces.
5150         (restore_fixed_argument_area): Likewise.
5151         (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field.
5152         (load_register_parameters): Likewise, to emit_group_load.
5153         (expand_call): Likewise, to emit_group_store and emit_block_move.
5154         (emit_library_call_value_1): Likewise, to emit_block_move.
5155         (store_one_arg): Likewise, and to emit_push_insn.
5156         * expmed.c (extract_bit_field): Alignment is in bits, not bytes.
5157         (extract_fixed_bit_field, extract_split_bit_field): Likewise.
5158         * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise.
5159         (emit_block_move, emit_group_load, emit_group_store): Likewise.
5160         (clear_by_pieces, clear_storage, emit_push_insn): Likewise.
5161         (expand_assigment, store_expr, store_constructor_field): Likewise.
5162         (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise.
5163         (store_constructor, store_field, get_inner_reference): Likewise.
5164         Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT.
5165         (expand_expr, case COMPONENT_REF): Likewise.
5166         (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes
5167         and positions; reindent code.
5168         * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned.
5169         * function.c (purge_addressof_1): Pass bit align to store_bit_field.
5170         (assign_parms): Likewise to emit_group_store.
5171         * optabs.c (prepare_cmp_insn): Alignment is in bits.
5172         (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned.
5173         * stmt.c (expand_value_return): Pass align in bits to emit_group_load.
5174         (expand_return): Likewise to {extract,store}_bit_field.
5175         * stor-layout.c (get_mode_alignment): Minor cleanup.
5176         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits.
5177         * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise.
5178
5179 2000-03-29  Nick Clifton  <nickc@cygnus.com>
5180
5181         * config/arm/arm.h: Undo effects of previous delta:
5182         (ASM_SPEC): Do not define.
5183         (SUBTARGET_EXTRA_ASM_SPEC): Do not define.
5184
5185         * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix
5186         typo.
5187
5188 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
5189
5190         * cppinit.c (cpp_start_read): Call initialize_dependency_output
5191         only after reading in the primary source file.
5192
5193 2000-03-29  Geoff Keating  <geoffk@cygnus.com>
5194
5195         * c-common.c (c_common_nodes_and_builtins): The first parameter to
5196         __builtin_va_start and __builtin_va_copy is now either a 'va_list'
5197         or a reference to a va_list.
5198         * builtins.c (stabilize_va_list): Simplify now we don't have to
5199         work around C array address decay.
5200         * c-typeck.c (convert_for_assignment): Handle assignment to
5201         a reference parameter by taking the address of the RHS.
5202         * ginclude/stdarg.h (va_start): Don't take address of first parameter.
5203         (va_copy): Likewise.
5204         (__va_copy): Likewise.
5205         * ginclude/varargs.h (va_start): Likewise.
5206         (__va_copy): Likewise.
5207
5208 Wed Mar 29 15:44:53 2000  Jeffrey A Law  (law@cygnus.com)
5209
5210         * i386/djgpp.h: Remove extraneous "+".
5211
5212         * stmt.c (stmt_loop_nest_empty): Fix thinko in last change.
5213
5214         * calls.c (expand_call): Fix typo in last change.
5215
5216 2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
5217
5218         * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't
5219         been expanded.
5220
5221 Wed Mar 29 15:39:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5222
5223         * stor-layout.c (bit_from_pos, byte_from_pos): New functions.
5224         (pos_from_byte, pos_from_bit, normalize_offset): Likewise.
5225         (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them.
5226         * tree.c (bit_position, byte_position): Likewise.
5227         * tree.h: Declare new functions.
5228
5229 2000-03-29  Nick Clifton  <nickc@cygnus.com>
5230
5231         * config/arm/arm.c: Minor formatting changes/
5232         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
5233         already defined.
5234         (ASM_SPEC): Define if not already defined.
5235
5236 2000-03-29  Zack Weinberg  <zack@wolery.cumb.org>
5237
5238         * cppfiles.c (cpp_read_file): Don't pass zero-length string to
5239         _cpp_calc_hash.
5240
5241 2000-03-29  Jakub Jelinek  <jakub@redhat.com>
5242
5243         * dwarf2out.c (gen_enumeration_type_die): If enum has a negative
5244         value, don't output it as unsigned.
5245
5246 Wed Mar 29 10:53:49 2000  Jeffrey A Law  (law@cygnus.com)
5247
5248         * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL.
5249
5250 2000-03-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5251
5252         * c-common.c (c_common_nodes_and_builtins): Don't special case
5253         cplus_mode when declaring builtin bzero/bcmp, always avoid
5254         prototype arguments.
5255
5256 2000-03-29  Bruce Korb  <bkorb@gnu.org>
5257
5258         * fixinc/mkfixinc.sh: Initially set the variable "fixincludes"
5259         to a non-file
5260
5261 Wed Mar 29 15:08:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5262
5263         Convert ACCUMULATE_OUTGOING_ARGS to an expression.
5264         * calls.c (PUSH_ARGS_REVERSED) Change to expression.
5265         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value.
5266         (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS.
5267         (save_fixed_argument_area, restore_fixed_argument_area):
5268         conditionize by #ifdef REG_PARM_STACK_SPACE only.
5269         (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS
5270         to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS.
5271         (precompute_register_parameters): Avoid #ifdefs on
5272         ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED.
5273         (stire_one_args): Likewise.
5274         (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS.
5275         (emit_library_call_value_1): Likewise.
5276         (compute_argument_block_size): Align to STACK_BOUNDARY only for
5277         ACCUMULATE_OUTGOING_ARGS.
5278         * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default
5279         value.
5280         (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH.
5281         (use_crosses_set_p): Likewise.
5282         * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to
5283         #define ACCUMULATE_OUTGOING_ARGS 1.
5284         * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS
5285         frames.
5286         * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New
5287         constants.
5288         (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros.
5289         (TARGET_SWITCHES): Add push-args, no-push-args,
5290         accumulate-outgoing-args and no-accumulate-outgoing-args.
5291         (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro.
5292         * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default.
5293         (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS
5294         and PUSH_ROUNDING.
5295         (emit_push_insn): Likewise.
5296         * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
5297         (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS.
5298         * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default.
5299         (STACK_DYNAMIC_OFFSET): Define correctly for both
5300         ACCUMULATE_OUTGOING_ARGS and normal mode.
5301         * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document.
5302         * tm.texi (PUSH_ARGS): Document.
5303         (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation.
5304
5305 Wed Mar 29 11:51:13 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5306
5307         * flags.h (flag_optimize_sibling_calls): Declare.
5308         * calls.c (expand_call): Fail sibcall when
5309         !flag_optimize_sibling_calls
5310         * invoke.texi (flag_optimize_sibling_calls): Document.
5311         * toplev.c (flag_optimize_sibling_calls): New global variable.
5312         (f_options): Add flag_optimize_sibling_calls.
5313         (rest_of_compilation): Conditionize
5314         optimize_sibling_and_tail_recursive_calls by
5315         flag_optimize_sibling_calls.
5316         (main): Set flag_optimize_sibling_calls for -O2.
5317         * stmt.c (expand_return): Conditionize tail recursion by
5318         flag_optimize_sibling_calls.
5319
5320 2000-03-29  Richard Henderson  <rth@cygnus.com>
5321
5322         * config/i386/att.h (LOCAL_LABEL_PREFIX): Define.
5323         (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it.
5324
5325 2000-03-29  Nathan Sidwell  <nathan@codesourcery.com>
5326
5327         * except.c (add_eh_table_entry): Mark type_info's as referenced.
5328
5329 2000-03-29  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
5330
5331         * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi
5332         is given.
5333         * config/rs6000/aix43.h (CPP_SPEC): Likewise.
5334         * config/rs6000/rs6000.h (CPP_SPEC): Moved to...
5335         * config/rs6000/aix.h: then modified likewise.
5336
5337 2000-03-28  Richard Henderson  <rth@cygnus.com>
5338
5339         * rtl.h: Redistribute enum reg_note documentation.
5340         Kill trailing whitespace.
5341         * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks.
5342         Kill trailing whitespace.
5343
5344 2000-03-28  Zack Weinberg  <zack@wolery.cumb.org>
5345
5346         * cppfiles.c (hash_IHASH): Just return i->hash.
5347         (cpp_included): Set dummy.hash using _cpp_calc_hash.  Use
5348         htab_find_with_hash.
5349         (cpp_read_file): Likewise.
5350         (find_include_file): Likewise.  Properly initialize
5351         ih->nshort.  Share ih->name and ih->nshort if possible.
5352         * cpphash.c (_cpp_calc_hash): New function.
5353         (hash_HASHNODE): Just return h->hash.
5354         (_cpp_lookup): Set dummy.hash using _cpp_calc_hash.  Use
5355         htab_find_with_hash.
5356         * cpphash.h: Prototype _cpp_calc_hash.
5357         * cppinit.c (initialize_builtins): Provide a valid hash
5358         to _cpp_make_hashnode, using _cpp_calc_hash.
5359
5360         * cpphash.c (collect_expansion): # is not a special character
5361         in object-like macros.  In -traditional mode, /**/ is not
5362         token paste at the beginning or end of the line.
5363         * cpplib.c (do_include, do_import, do_include_next): If
5364         parse_include fails, return immediately.
5365
5366 2000-03-28  Jason Merrill  <jason@casey.cygnus.com>
5367
5368         * config/arm/arm.md (return peepholes): Update to reflect the new
5369         call insn patterns.
5370         * config/arm/arm.c (arm_volatile_func): Also check
5371         current_function_nothrow.
5372         (output_return_instruction, output_func_prologue): Use it.
5373         (arm_output_epilogue, arm_expand_prologue): Likewise.
5374
5375 2000-03-27  Tom Tromey  <tromey@cygnus.com>
5376
5377         * gcc.c (handle_braces): In {x*...} case, break out of loop if
5378         switch is found.
5379
5380 Tue Mar 28 11:55:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5381
5382         * expr.c (store_constructor): SIZE now signed.
5383         For EXPR_SIZE, don't evaluate size; just needed if constant.
5384         * fold-const.c (fold): Fix a number of cases when folded tree is
5385         wrong type.
5386         * function.c (flush_addressof): Reenable.
5387         * tree.h (flush_addressof): Likewise.
5388         * toplev.c (independent_decode_option): Look at strings_processed.
5389         * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned.
5390
5391 Tue Mar 28 08:29:46 2000  Jan Hubicka  <jh@suse.cz>
5392
5393         * sibcall.c (indentify_call_return_value): Find last call in the chain;
5394         Allow stack adjustment after function call.
5395
5396         * regmove.c (struct csa_memlist): Make mem field rtx *.
5397         (record_one_stack_ref): Accept rtx * instead of rtx as parameter.
5398         (try_apply_stack_adjustment): Replace whole MEM rtx.
5399         (combine_stack_adjustments_for_block): Update calls
5400         to record_one_stack_ref.
5401
5402 2000-03-28  Neil Booth  <NeilB@earthling.net>
5403
5404         * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with
5405         '\\' rather than a null character, so nulls are not special.  Fix
5406         "\\\n" handling in end-of-buffer conditions.  Use trigraph map to
5407         speed trigraph conversion.
5408         (_cpp_init_input_buffer): Initialize trigraph map.
5409
5410 2000-03-27  Alan Modra  <alan@linuxcare.com.au>
5411
5412         * config/i386/i386.c (output_387_binary_op): Correct intel
5413         mode assembly output, and add spaces after commas in AT&T
5414         output.  Correct Unixware assembler comment.  Document input
5415         constraints.  Comment fp operations.  Reduce profligate buffer
5416         size.  Remove extraneous abort.  Localize temp var.
5417         (SYSV386_COMPAT): Define.  Add !SYSV386_COMPAT code.
5418         (output_fix_trunc): Add spaces after commas in assembly output.
5419
5420 2000-03-27  Richard Henderson  <rth@cygnus.com>
5421
5422         * i386-protos.h (ix86_match_ccmode): Declare.
5423         * i386.c (ix86_match_ccmode): New.
5424         (ix86_expand_fp_compare): Update for pattern renames.
5425         (ix86_expand_strlensi_unroll_1): Likewise.
5426         * i386.h (EXTRA_CC_MODES): Add CCZ.
5427         (SELECT_CC_MODE): Use it for EQ/NE zero.
5428         * i386.md (cmpsi_ccz_1): New.
5429         (cmpqi_ccz_1): New.
5430         (*testsi_ccz_1): New.
5431         (testqi_ccz_1): New.
5432         (cmpsi_ccno_1): Rename from cmpsi_0.
5433         (testsi_ccno_1): Rename from testsi_1.
5434         (testqi_ccno_1): Rename from testqi_1.
5435         (*testqi_ext_ccz_0): Rename from testqi_ext_0.
5436         (testqi_ext_ccno_0): Rename from *testqi_ext_1.
5437         (*cmphi_0): Use ix86_match_ccmode.
5438         (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise.
5439         (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise.
5440         (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise.
5441         (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise.
5442         (*iorsi_2, *iorhi_2, *iorqi_2): Likewise.
5443         (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise.
5444         (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise.
5445         (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise.
5446         (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise.
5447         (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise.
5448         (appropriate peepholes): Likewise.
5449         (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name.
5450         (*subsi_3, *subhi_3, *subqi_3): Remove.
5451         (*negdi2_1+1 splitter): Use CCZ for neg patterns.
5452         (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove.
5453         (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ.
5454         (*neghi2_cmpz, *negqi2_cmpz): Similarly.
5455         (x86_shift_adj_1): Use CCZ.
5456         (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise.
5457
5458 2000-03-27  Stan Cox  <scox@cygnus.com>
5459
5460         * resource.h (mark_resource_type): New.
5461         * resource.c (find_dead_or_set_registers, mark_target_live_regs,
5462         find_free_register): Use mark_resource_type.
5463         (mark_set_resources): Change include_delayed_effects
5464         to mark_resource_type.
5465         * reorg.c (steal_delay_list_from_target, try_merge_delay_insns,
5466         redundant_insn, fill_simple_delay_slots, fill_slots_from_thread):
5467         Use mark_resource_type.
5468
5469 2000-03-27  Richard Henderson  <rth@cygnus.com>
5470
5471         * i386.md (call_pop_0, call_value_pop_0): New.
5472         (call_pop_1): Remove constraint from unused arg.  Support sibcalls.
5473         (call_value_pop_1): Likewise.
5474         (call_0, call_value_0): New.
5475         (call_1, call_value_1): Remove constraint from unused arg.
5476
5477 2000-03-27  Nick Clifton  <nickc@cygnus.com>
5478
5479         * invoke.texi (Spec Files): Document new spec % command created by
5480         Tom Tromey's recent patch.
5481
5482 2000-03-27  Jakub Jelinek  <jakub@redhat.com>
5483
5484         * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD
5485         if not defined.
5486
5487 Mon Mar 27 06:04:22 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5488
5489         * expr.c (expand_assignment): Fix typo in last change.
5490
5491         * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD.
5492
5493 Sun Mar 26 20:15:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5494
5495         * c-convert.c (convert): Return if output or input type is ERROR_MARK.
5496         * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI
5497         and DECL_INLINE if FUNCTION_DECL.
5498         (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE.
5499         (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK.
5500         Use DECL_WEAK, not DECL_RESULT, to flag for already seen.
5501         (combine_parm_decls): Likewise.
5502         * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD.
5503         * print-tree.c (print_node): Likewise.
5504         Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and
5505         DECL_TRANSPARENT_UNION on proper decl types.
5506         Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS.
5507         * stor-layout.c (layout_decl): Only check DECL_PACKED and
5508         DECL_BIT_FIELD of FIELD_DECL.
5509         * tree.h (DECL_RESULT_FLD): New macro.
5510
5511         * expr.c (expand_assignment): Add code to handle variable-sized
5512         BLKmode case.
5513
5514 2000-03-26  Richard Henderson  <rth@cygnus.com>
5515
5516         * calls.c (expand_call): Pass parms not original exp to
5517         optimize_tail_recursion.  Mind return value instead of looking
5518         for a barrier.
5519         * stmt.c (optimize_tail_recursion): Take parameter list, not entire
5520         call_expr.  Move checks for call_expr and current_function_decl ...
5521         (expand_return): ... here.
5522
5523 2000-03-26  Tom Tromey  <tromey@cygnus.com>
5524
5525         * gcc.c (handle_braces): Recognize `%{<S}' construct.
5526         (SWITCH_OK, SWITCH_FALSE, SWITCH_IGNORE, SWITCH_LIVE): New
5527         defines.
5528         (process_command): Use them.
5529         (check_live_switch): Likewise.
5530         (give_switch): Skip ignored switches.
5531
5532 2000-03-26  Jan Hubicka  <jh@suse.cz>
5533
5534         * jump.c (jump_optimize_1): Fix typo in elide optimizations
5535         for minimal jump pass test.
5536
5537 2000-03-26  Mark Mitchell  <mark@codesourcery.com>
5538
5539         * integrate.c (function_cannot_inline_p): Do inline functions that
5540         return `void'.
5541
5542 Sun Mar 26 11:37:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5543
5544         * stor-layout.c (layout_type, set_sizetype): early_type_list is
5545         now a list of TREE_LIST entries, not types.
5546         * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets.
5547
5548         * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX.
5549         * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and
5550         int_bit_position.
5551         * config/mips/mips.c (function_arg): Likewise; also remove cast
5552         and make variables unsigned or HOST_WIDE_INT and use tree_low_cst.
5553         (mips_function_value): Use int_byte_position and make HOST_WIDE_INT.
5554         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned.
5555         * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned.
5556         (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise.
5557         (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise.
5558         (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed.
5559         (struct mips_arg): arg_number, arg_words, fp_arg_words, and
5560         num_adjusts now unsigned.
5561         (FUNCTION_ARG_BOUNDARY): Remove unneeded cast.
5562         * config/sparc/sparc.c (struct function_arg_record_value_parms):
5563         NREGS now unsigned.
5564         (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT
5565         as is BITPOS variable; use host_integerp and int_bit_position.
5566         (function_arg_record_value_2): Likewise.
5567         (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT.
5568         Variable REGNO now unsigned.
5569         (function_arg_record_value): NREGS now unsigned.
5570
5571 2000-03-26  Bernd Schmidt  <bernds@cygnus.co.uk>
5572
5573         * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs.
5574
5575 Sat Mar 25 09:12:10 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5576
5577         * Rework fields used to describe positions of bitfields and
5578         modify sizes to be unsigned and use HOST_WIDE_INT.
5579         * alias.c (reg_known_value_size): Now unsigned.
5580         * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position.
5581         (really_start_incremental_init): Use bitsize_zero_node.
5582         (push_init_level, pop_init_level, output_init_element): Likewise.
5583         Use bitsize_unit_node and bitsize_one_node.
5584         (output_pending_init_elements, process_init_element): Likewise.
5585         * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned.
5586         (make_extraction): Position and length HOST_WIDE_INT and unsigned
5587         HOST_WIDE_INT, respectively.
5588         (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT.
5589         (num_sign_bit_copies): Returns unsigned.
5590         BITWIDTH now unsigned; rework arithmetic.
5591         Remove recursive call from arg to MAX.
5592         (combine_instructions, init_reg_last_arrays): NREGS now unsigned.
5593         (setup_incoming_promotions, can_combine_p, try_combine, simplify_set):
5594         REGNO now unsigned.
5595         (set_nonzero_bit_and_sign_copies): NUM now unsigned.
5596         (find_split_point, expand_compound_operation, make_extraction): LEN
5597         now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT.
5598         (make_field_assignment): Likewise.
5599         (combine_simplify_rtx): Add cast.
5600         (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic.
5601         (force_to_mode): WIDTH now unsigned; add cast.
5602         (if_then_else_cond): SIZE now unsigned.
5603         (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned.
5604         (extended_count): Now returns unsigned.
5605         (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT.
5606         Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned.
5607         (simplify_comparison): MODE_WIDTH now unsigned.
5608         (update_table_tick): REGNO and ENDREGNO now unsigned; new var R.
5609         (mark_used_regs_combine): Likewise; rework arithmetic.
5610         (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned.
5611         (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise.
5612         (record_promoted_value): REGNO now unsigned.
5613         (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned.
5614         (get_last_value): REGNO now unsigned.
5615         (use_crosses_set_p): REGNO and ENDREGNO now unsigned.
5616         (reg_dead_regno, reg_dead_endregno): Now unsigned.
5617         (remove_death): Arg REGNO now unsigned.
5618         (move_deaths):  REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned.
5619         (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO
5620         now unsigned.
5621         * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned.
5622         * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned.
5623         (struct cse_reg_info): REGNO now unsigned.
5624         (cached_regno): Now unsigned.
5625         (REGNO_QTY_VALID_P): Add cast.
5626         (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned.
5627         (remove_invalid_regs): Likewise.
5628         (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned
5629         as are variables END and I.
5630         (get_cse_reg_info, insert): Likewise.
5631         (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned.
5632         (canon_hash): Likewise.
5633         (insert_regs, lookup_for_remove): REGNO now unsigned.
5634         (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned.
5635         New variable RN.
5636         * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0.
5637         * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast.
5638         * emit-rtl.c (subreg_realpart_p): Add cast.
5639         (operand_subword): Arg I is now unsigned as is var PARTWORDS.
5640         (operand_subword_force): Arg I is now unsigned.
5641         * except.c (eh_regs): Variable I is now unsigned.
5642         * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT.
5643         * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT;
5644         length is unsigned HOST_WIDE_INT; likewise for internal variables.
5645         (store_split_bit_field, extract_fixed_bit_field): Likewise.
5646         (extract_split_bit_field, store_bit_field, extract_bit_field):
5647         Likewise.
5648         * expr.c (store_constructor_fields, store_constructor, store_field):
5649         Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT.
5650         (expand_assignment, expand_expr, expand_expr_unaligned): Likewise.
5651         (do_jump): Likewise.
5652         (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces):
5653         MAX_SIZE is now unsigned.
5654         (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned.
5655         (emit_group_store): Likewise.
5656         (emit_move_insn): I now unsigned.
5657         (store_constructor): Use host_integerp, tree_low_cst, and
5658         bitsize_unit_node.
5659         (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT.
5660         Rework all calculations to use trees and new fields.
5661         * expr.h (promoted_input_arg): Regno now unsigned.
5662         (store_bit_field, extract_bit_field): Adjust types of pos and size.
5663         (mark_seen_cases): Arg is HOST_WIDE_INT.
5664         * flow.c (verify_wide_reg_1): REGNO now unsigned.
5665         * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT;
5666         precisions and alignments are unsigned.
5667         (optimize_bit_field_compare, fold_truthop): Likewise.
5668         (int_const_binop): Adjust threshold for size_int_type_wide call.
5669         (fold_convert): Likewise.
5670         (size_int_type_wide): Make table larger and fix thinko that only
5671         had half of table used.
5672         (all_ones_mask_p, fold): Precisions are unsigned.
5673         * function.c (put_reg_info_stack): REGNO is unsigned.
5674         (instantiate_decl): Size is HOST_WIDE_INT.
5675         (instantiate_virtual_regs): I is unsigned.
5676         (assign_parms): REGNO, REGNOI, and REGNOR are unsigned.
5677         (promoted_input_arg): REGNO is unsigned.
5678         * function.h (struct function): x_max_parm_reg is now unsigned.
5679         * gcse.c (max_gcse_regno): Now unsigned.
5680         (struct null_pointer_info): min_reg and max_reg now unsigned.
5681         (lookup_set, next_set): REGNO arg now unsigned.
5682         (compute_hash_table): REGNO and I now unsigned.
5683         (handle_avail_expr): regnum_for_replacing now unsigned.
5684         (cprop_insn): REGNO now unsigned.
5685         (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned.
5686         * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case.
5687         * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned.
5688         * hard-reg-set.h (reg_class_size): Now unsigned.
5689         * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO.
5690         * jump.c (mark_modified_reg): I now unsigned; add cast.
5691         (rtx_equal_for_thread_p): Add cast.
5692         * loop.c (max_reg_before_loop): Now unsigned.
5693         (struct_movable): REGNO now unsigned.
5694         (try_copy_prop): REGNO arg unsigned.
5695         (regs_match_p): XN and YN now unsigned.
5696         (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned.
5697         (strength_reduce): Likewise; NREGS also unsigned.
5698         (first_increment_giv, last_increment_giv unsigned): Now unsigned.
5699         * loop.h (struct iv_class): REGNO now unsigned.
5700         (max_reg_before_loop, first_increment_giv, last_increment_giv):
5701         Now unsigned.
5702         * machmode.h (mode_size, mode_unit_size): Now unsigned.
5703         (mode_for_size, smallest_mode_for_size): Pass size as unsigned.
5704         * optabs.c (expand_binop): I and NWORDS now unsigned.
5705         (expand_unop): I now unsigned.
5706         * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do
5707         print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET.
5708         * real.c (significand_size): Now returns unsigned.
5709         * real.h (significand_size): Likewise.
5710         * regclass.c (reg_class_size): Now unsigned.
5711         (choose_hard_reg_mode): Both operands now unsigned.
5712         (record_reg_classes): REGNO and NR now unsigned.
5713         (reg_scan): NREGS now unsigned.
5714         (reg_scan_update): old_max_regno now unsigned.
5715         (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned.
5716         * reload.c (find_valid_class): BEST_SIZE now unsigned.
5717         (find_dummy_reload): REGNO, NWORDS, and I now unsigned.
5718         (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned.
5719         Likewise for variable R.
5720         (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned,
5721         as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R.
5722         (find_equiv_reg): Add casts.
5723         (regno_clobbered_p): Arg REGNO now unsigned.
5724         * reload.h (struct reload): NREGS now unsigned.
5725         (refers_to_regno_for_reload_p): Regno args are unsigned.
5726         (regno_clobbered_p): Likewise.
5727         * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned.
5728         (compute_use_by_pseudos): REGNO now unsigned.
5729         (find_reg): I and J now unsigned, new variable K, and change loop
5730         variables accordingly; THIS_NREGS now unsigned.
5731         (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned.
5732         (spill_hard_reg): REGNO arg now unsigned; add casts.
5733         (forget_old_reloads_1): REGNO, NR, and I now unsigned.
5734         (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned.
5735         (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO,
5736         END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned.
5737         (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned.
5738         (choose_reload_regs): MAX_GROUP_SIZE now unsigned.
5739         (emit_reload_insns): REGNO now unsigned.
5740         (reload_cse_move2add): Add cast.
5741         (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO
5742         and rework loop.
5743         * resource.c (mark_referenced_resources, mark_set_resources): New
5744         variable R; REGNO and LAST_REGNO now unsigned.
5745         (mark_target_live_regs): J and REGNO now unsigned.
5746         * rtl.c (mode_size, mode_unit_size): Now unsigned.
5747         * rtl.h (union rtunion_def): New field rtuint.
5748         (XCUINT): New macro.
5749         (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT.
5750         (operand_subword, operand_subword_force): Word number is unsigned.
5751         (choose_hard_reg_mode): Operands are unsigned.
5752         (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned.
5753         (find_regno_note, find_regno_fusage, replace_regs): Likewise.
5754         (regno_use_in, combine_instructions, remove_death): Likewise.
5755         (reg_scan, reg_scan_update): Likewise.
5756         (extended_count): Return is unsigned.
5757         * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I,
5758         INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO.
5759         (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned.
5760         (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned.
5761         (reg_reg_last_1): FIRS and LAST now unsigned.
5762         (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned.
5763         (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO
5764         now unsigned.
5765         (find_regno_note, regno_use_in): Arg REGNO now unsigned.
5766         (find_regno_fusage): Likewise; also var REGNOTE now unsigned.
5767         (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned.
5768         (replace_regs): Arg NREGS now unsigned.
5769         * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0.
5770         * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned.
5771         (simplify_binary_operation): Likewise.
5772         (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and
5773         THIS_LAST now unsigned.
5774         (cselib_record_set): Add cast.
5775         * ssa.c (ssa_max_reg_num): Now unsigned.
5776         (rename_block): REGNO now unsigned.
5777         * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT;
5778         sizes now unsigned.
5779         (all_cases_count): Just return -1 not -2.
5780         COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT.
5781         Rework tests to use trees whenever possible.
5782         Use host_integerp and tree_low_cst.
5783         (mark_seen_cases): COUNT arg now HOST_WIDE_INT;
5784         Likewise variable NEXT_NODE_OFFSET; XLO now unsigned.
5785         (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT.
5786         * stor-layout.c (mode_for_size): SIZE arg now unsigned.
5787         (smallest_mode_for_size): Likewise.
5788         (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT.
5789         KNOWN_ALIGN is now an alignment, so simplify code.
5790         Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type.
5791         (start_record_layout): Renamed from new_record_layout_info.
5792         Update to new fields.
5793         (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far):
5794         New functions.
5795         (place_union_field): Renamed from layout_union_field.
5796         Update to use new fields in rli.
5797         (place_field): Renamed from layout_field.
5798         Major rewrite to use new fields in rli; pass alignment to layout_decl.
5799         (finalize_record_size): Rework to use new fields in rli and handle
5800         union.
5801         (compute_record_mode): Rework to simplify and to use new DECL fields.
5802         (finalize_type_size): Make rounding more consistent.
5803         (finish_union_layout): Deleted.
5804         (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either.
5805         (layout_type, case RECORD_TYPE): Call new function names.
5806         (initialize_sizetypes): Set TYPE_IS_SIZETYPE.
5807         (set_sizetype): Set TYPE_IS_SIZETYPE earlier.
5808         (get_best_mode): UNIT is now unsigned; remove casts.
5809         * tree.c (bit_position): Compute from new fields.
5810         (byte_position, int_byte_position): New functions.
5811         (print_type_hash_statistics): Cast to remove warning.
5812         (build_range_type): Use host_integerp and tree_low_cst to try to hash.
5813         (build_index_type): Likewise; make subtype of sizetype.
5814         (build_index_2_type): Pass sizetype to build_range_type.
5815         (build_common_tree_nodes): Use size_int and bitsize_int to
5816         initialize nodes; add bitsize_{zero,one,unit}_node.
5817         * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK.
5818         (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise.
5819         (DECL_PACKED, DECL_BIT_FIELD): Likewise.
5820         (DECL_FIELD_BITPOS): Deleted.
5821         (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields.
5822         (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK.
5823         (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise.
5824         (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise.
5825         (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise.
5826         (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise.
5827         (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise.
5828         (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK.
5829         (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK.
5830         (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise.
5831         (DECL_ALIGN): Adjust to new field in union.
5832         (DECL_OFFSET_ALIGN): New field.
5833         (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK.
5834         (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK.
5835         (union tree_decl): Add struct for both aligns.
5836         (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}.
5837         (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added.
5838         (struct record_layout_info): Rework fields to have offset
5839         alignment and byte and bit position.
5840         (start_record_layout, place_field): Renamed from old names.
5841         (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls.
5842         (byte_position, int_byte_position): Likewise.
5843         (get_inner_reference): Change types of position and length.
5844         * unroll.c (unroll_loop): New variable R; use for some loops.
5845         MAX_LOCAL_REGNUM and MAXREGNUM now unsigned.
5846         (calculate_giv_inc): Arg REGNO now unsigned.
5847         (copy_loop_body): REGNO and SRC_REGNO now unsigned.
5848         * varasm.c (assemble_variable): Clean up handling of size using
5849         host_integerp and tree_low_cst.
5850         (decode_addr_const): Use byte, not bit, position.
5851         (output_constructor): bitpos and offsets are HOST_WIDE_INT;
5852         use tree_low_cst and int_bit_position.
5853         * objc/objc-act.c (build_ivar_list_initializer): Use byte_position.
5854
5855 Fri Mar 24 20:13:49 2000  Jason Eckhardt  <jle@cygnus.com>
5856
5857         * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed.
5858         (reorder_block_def): New members eff_head and eff_end.
5859         (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros.
5860         (verify_insn_chain): New function.
5861         (skip_insns_between_block): Add code to skip deleted insns.
5862         Check for note before using.
5863         (chain_reorder_blocks): Replace calls to skip_insns_between_block
5864         with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END.
5865         Check for note before using.
5866         (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB.
5867         (fixup_reorder_chain): Restructure, clean up, defect removal.
5868         (reorder_basic_blocks): Remove last_insn and references to it.
5869         Moved insn chain verification code into a new function (see above).
5870         Delete defective code that sets last insn.
5871         Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for
5872         all blocks.
5873
5874 2000-03-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5875
5876         * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space.
5877
5878 2000-03-24  Richard Henderson  <rth@cygnus.com>
5879
5880         * tree.c (lang_safe_for_unsave): Remove.
5881         (unsafe_for_reeval): Transmute and rename from safe_for_unsave,
5882         allowing for two levels of unsafeness.  Remove lang hook.
5883         * tree.h: Update declarations.
5884         * calls.c (expand_call): Rename safe_for_reeval to try_tail_call.
5885         Create temporary VAR_DECLs to protect very unsafe_for_reeval trees.
5886         Always fail sibcalls when there are pending cleanups.
5887
5888 2000-03-24  Geoff Keating  <geoffk@cygnus.com>
5889
5890         * flow.c (propagate_block): When we delete an ADDR_VEC,
5891         also delete the BARRIER following it if there is one.
5892
5893 2000-03-24  Richard Henderson  <rth@cygnus.com>
5894
5895         * builtins.c (expand_builtin_bzero): Convert `length' argument
5896         to sizetype.
5897
5898 2000-03-24  Jakub Jelinek  <jakub@redhat.com>
5899
5900         * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for
5901         comparison if regno's are equal.
5902         * calls.c (initialize_argument_informat): Add ecf_flags argument.
5903         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
5904         (expand_call): Update caller.
5905         Avoid making a sibling call if argument size of the callee is larger
5906         than argument size of the caller.
5907         Call hard_function_value with outgoing set if in sibcall pass.
5908         Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL.
5909
5910         * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used):
5911         Change LEAF_REGISTERS from an array initializer to actual array
5912         identifier. Move static global variable into the function.
5913         (leaf_function_p): Allow SIBLING_CALL_P calls even outside of
5914         sequences for leaf functions.
5915         * global.c (global_alloc): Likewise.
5916         * tm.texi (LEAF_REGISTERS): Update documentation.
5917
5918         * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly
5919         TARGET_FLAT leaf disabling hack.
5920         (LEAF_REGISTERS): Changed from an array initializer to actual array
5921         identifier to avoid duplication and remove the above hack.
5922         (FUNCTION_OK_FOR_SIBCALL): Define.
5923         * config/sparc/sparc.md (sibcall): New attr type. Use it almost
5924         always like call attribute.
5925         (eligible_for_sibcall_delay): New attribute.
5926         (sibcall): New delay type.
5927         (sibcall, sibcall_value, sibcall_epilogue): New expands.
5928         (sibcall_symbolic_sp32, sibcall_symbolic_sp64,
5929         sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns.
5930         * config/sparc/sparc.c (sparc_leaf_regs): New array.
5931         (eligible_for_sibcall_delay, output_restore_regs, output_sibcall):
5932         New functions.
5933         (output_function_epilogue): Move part of the code into
5934         output_restore_regs.
5935         (ultra_code_from_mask, ultrasparc_sched_reorder): Handle
5936         TYPE_SIBCALL.
5937         * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New
5938         prototypes.
5939
5940         * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change
5941         until infrastructure is finished.
5942
5943 Fri Mar 24 13:49:45 2000  Jeffrey A Law  (law@cygnus.com)
5944
5945         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here.
5946         (save_parm_insns): Not here.
5947
5948 2000-03-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5949
5950         * builtins.c (expand_builtin_bzero): New function.
5951         (expand_builtin): Handle bzero.
5952
5953         * builtins.def: Add BUILT_IN_BZERO.
5954
5955         * c-common.c (c_common_nodes_and_builtins): Provide builtin
5956         prototype & function for bzero.
5957
5958 2000-03-23  Michael Meissner  <meissner@redhat.com>
5959
5960         * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21
5961         change adding TARGET_FP to the TF floating point insns, except for
5962         trunctfsf2, which generates direct calls to truncdfsf2.
5963
5964 2000-03-23  Geoff Keating  <geoffk@cygnus.com>
5965
5966         * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
5967         try to protect against middle-end changes that break binary
5968         compatibility.
5969         (DWARF_FRAME_REGISTERS): New definition, likewise for backend.
5970
5971 2000-03-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5972
5973         * config/c4x/c4x.md (load_immed_address):  Add DP reg clobber.
5974
5975 Thu Mar 23 17:10:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5976
5977         * calls.c (expand_call): If TARGET is passed by reference and
5978         is readonly, write a CLOBBER.
5979
5980 2000-03-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5981
5982         * builtins.c (expand_builtin): Handle bcmp.
5983
5984         * builtins.def: Add BUILT_IN_BCMP.
5985
5986         * c-common.c (c_common_nodes_and_builtins): Provide builtin
5987         prototype & function for bcmp.
5988
5989 Thu Mar 23 11:34:39 2000  Jim Wilson  <wilson@cygnus.com>
5990
5991         * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
5992         (rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
5993         * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
5994
5995 Thu Mar 23 16:04:40 2000  Andrew Haley  <aph@cygnus.com>
5996
5997         * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F')
5998         alternative when using -fp64 -gp32.
5999
6000 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
6001
6002         * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define.
6003         * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define.
6004         * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define.
6005
6006         * frame.h (frame_state): Revert last change.
6007         * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
6008         * libgcc2.c (throw_helper): Revert last change.
6009
6010 2000-03-22  Richard Henderson  <rth@cygnus.com>
6011
6012         * stmt.c (expand_asm_operands): Don't promote the temporary.
6013
6014 2000-03-22  Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
6015
6016         * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros.
6017         * c-common.c (decl_attributes,check_format_info,truthvalue_conversion,
6018           c_get_alias_set): Likewise.
6019         * c-decl.c (duplicate_decls): Likewise.
6020         * c-typeck.c (default_conversion,build_unary_op): Likewise.
6021         * calls.c (initialize_argument_information): Likewise.
6022         * dwarf2out.c (decl_class_context,add_abstract_origin_attribute):
6023         Likewise.
6024         * dwarfout.c (decl_class_context,output_type): Likewise.
6025         * expr.c (get_inner_reference): Likewise.
6026         * fold-const.c (simple_operand_p,fold): Likewise.
6027         * function.c (aggregate_value_p): Likewise.
6028         * stmt.c (expand_asm_operands): Likewise.
6029         * varasm.c (named_section): Likewise.
6030
6031 2000-03-22  Jason Merrill  <jason@casey.cygnus.com>
6032
6033         Implement dwarf2 exception handling for the ARM.
6034         * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define.
6035         (DWARF_FRAME_RETURN_COLUMN): Define.
6036         * config/arm/arm.c (emit_multi_reg_push): Return rtx.  Attach
6037         REG_FRAME_RELATED_EXPR note.
6038         (emit_sfm): Likewise.
6039         (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything.
6040         * dwarf2out.c (reg_save): Handle saving a register to itself.
6041         (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg.
6042         * except.c (eh_regs): Don't use the static chain reg if it's
6043         callee-saved.
6044         * frame.h (frame_state): Add cfa_saved field.
6045         * frame.c (execute_cfa_insn): Set it.
6046         * libgcc2.c (throw_helper): Don't adjust sp if it's restored in
6047         the epilogue.
6048         * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET.
6049         Now takes a parm.
6050         (instantiate_virtual_regs): Adjust.
6051         * tm.texi: Adjust.
6052         * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define.
6053         * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define.
6054         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm.
6055
6056         * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER.
6057         (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number.
6058
6059 2000-03-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6060
6061         * builtins.def: New file.
6062
6063         * Makefile.in (TREE_H): Depend on builtins.def.
6064
6065         * builtins.c (built_in_names): Use builtins.def.
6066
6067         * tree.h (built_in_function): Likewise.
6068
6069 2000-03-22  Mark Mitchell  <mark@codesourcery.com>
6070
6071         * tree.c (size_in_bytes): Return size_zero_node, not
6072         integer_zero_node.
6073
6074 2000-03-22  Geoff Keating  <geoffk@cygnus.com>
6075
6076         * config/fp-bit.c (pack_d): Correct the case when a denormal
6077         is rounded up and stops being denormal.
6078
6079 2000-03-21  Richard Henderson  <rth@cygnus.com>
6080
6081         * config/alpha/alpha.c (function_arg): Check for void_type_node
6082         before using MUST_PASS_IN_STACK.
6083
6084 2000-03-21  Stephane Carrez  <stcarrez@worldnet.fr>
6085
6086         * regmove.c (combine_stack_adjustments_for_block): Check that
6087         the stack pointer is a valid memory address.
6088
6089 Wed Mar 22 11:44:50 MET 2000  Jan Hubicka  <jh@suse.cz>
6090
6091         * calls.c: re-install Mar 16 emit_library_call merge.
6092
6093 2000-03-21  Jakub Jelinek  <jakub@redhat.com>
6094
6095         * config/sparc/sparc.c (mem_min_alignment): If not optimizing,
6096         we cannot be sure that if reload_completed base register will
6097         be properly aligned.
6098
6099 2000-03-21  Richard Henderson  <rth@cygnus.com>
6100
6101         * flow.c (delete_block): Fix typo last change.
6102
6103 2000-03-21  Mark Mitchell  <mark@codesourcery.com>
6104
6105         * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P,
6106         not COMPLETE_TYPE_P, to check the type of the expression.
6107
6108 2000-03-21  Michael Meissner  <meissner@redhat.com>
6109
6110         * config/alpha/alpha.md (floating point insns): Add TARGET_FP to
6111         all floating point insns that just tested the macro
6112         TARGET_HAS_XFLOATING_LIBS.
6113         (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is
6114         used to only use the gprs.
6115
6116 2000-03-21  Nathan Sidwell  <nathan@codesourcery.com>
6117
6118         * tree.h (COMPLETE_TYPE_P): New macro.
6119         (COMPLETE_OR_VOID_TYPE_P): New macro.
6120         (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro.
6121         * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE.
6122         * c-aux-info.c (gen_type): Use them.
6123         * c-common.c (c_expand_expr_stmt): Likewise.
6124         * c-decl.c (poplevel, pushdecl, start_decl, finish_decl,
6125         grokdeclarator, grokparms, finish_struct, start_function,
6126         store_parm_decls, combine_parm_decls): Likewise.
6127         * c-parse.y (cast_expr): Likewise.
6128         * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn,
6129         c_size_in_bytes, c_alignof, build_component_ref,
6130         build_indirect_ref, build_array_ref, convert_arguments,
6131         build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise.
6132         * calls.c (initialize_argument_information): Likewise.
6133         * convert.c (convert_to_integer): Likewise.
6134         * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise.
6135         * dwarfout.c (location_or_const_value_attribute,
6136         output_enumeration_type_die, output_structure_type_die,
6137         output_union_type_die, output_type): Likewise.
6138         * expr.c (safe_from_p, expand_expr): Likewise.
6139         * function.c (assign_parms): Likewise.
6140         * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise.
6141         * tree.c (build_array_type, build_function_type,
6142         build_method_type, build_offset_type, build_complex_type): Likewise.
6143         * c-parse.c, c-parse.h: Regenerated.
6144
6145 2000-03-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6146
6147         * config/c4x/rtems.h: Include config/rtems.h.
6148
6149 Tue Mar 21 09:24:00 2000  Denis Chertykov  <denisc@overta.ru>
6150
6151         * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if
6152         decl is a FUNCTION_DECL
6153
6154 Mon Mar 20 19:53:53 2000  Jim Wilson  <wilson@cygnus.com>
6155
6156         * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
6157         function uses output registers.  Don't save RP for leaf functions.
6158         Do save RP even if no epilogue.
6159         * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
6160         (CALL_USED_REGISTERS): Unmark in registers.
6161         (REG_ALLOC_ORDER): Move out regs up, to near the top.  Move in regs up,
6162         to near the middle.
6163
6164 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
6165
6166         * config/rs6000/rs6000.md (bunordered): New expander.
6167         (bordered): New expander.
6168         (buneq): New expander.
6169         (bunge): New expander.
6170         (bungt): New expander.
6171         (bunle): New expander.
6172         (bunlt): New expander.
6173         (bltgt): New expander.
6174
6175         * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
6176         (ccr_bit_negated_p): New function.
6177         (print_operand): For %C, generate appropriate cror for UNEQ,
6178         UNLT, UNGT, and LTGT.  For %T and %t, use ccr_bit_negated_p.
6179
6180 2000-03-20  Andreas Jaeger  <aj@suse.de>
6181
6182         * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else"
6183         warning.
6184
6185         * tree.h (safe_for_unsave): Prototype.
6186
6187 2000-03-20  Richard Henderson  <rth@cygnus.com>
6188
6189         * regmove.c (stack_memref_p): Fix typo, reorg for readability.
6190         (combine_stack_adjustments_for_block): Don't allow sp references
6191         in the side of a set we're not fixing up.
6192         * toplev.c (rest_of_compilation): Run combine_stack_adjustments
6193         after life_analysis.
6194
6195 2000-03-20  Richard Henderson  <rth@cygnus.com>
6196
6197         * calls.c (expand_call): Don't bother generating tail call
6198         sequences if there are pending cleanups.  Use
6199         expand_start_target_temps/expand_end_target_temps to elide
6200         cleanups created during sibcall expansion.
6201
6202 2000-03-20  Geoff Keating  <geoffk@cygnus.com>
6203
6204         * configure.in: Set $IFS to a value if it doesn't already have one
6205         in the --enable-checking handling.
6206         * configure: Regenerate.
6207
6208 2000-03-20  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6209
6210         * c-parse.in (SAVE_WARN_FLAGS): Use size_int.
6211         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
6212         Regenerated.
6213
6214 Mon Mar 20 11:43:15 MET 2000  Jan Hubicka  <jh@suse.cz>
6215
6216         * jump.c (delete_noop_moves): Remove code attempting to
6217         combine stack adjustments.
6218
6219 2000-03-19  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6220
6221         * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions.
6222         * except.c (emit_cleanup_handler): Use them.
6223         (expand_end_all_catch): Likewise.
6224         * function.c (fixup_var_refs): Likewise.
6225         (expand_function_end): Clear catch_clauses_last.
6226         * rtl.h (push_to_full_sequence, end_full_sequence): Declare.
6227         * except.h (struct eh_status): New field x_catch_clauses_last.
6228         (catch_clauses_last): New define.
6229
6230         * Makefile.in (tree.o): Depend on HASHTAB_H.
6231         * tree.c: Include hashtab.h.
6232         (struct type_hash): Remove next field.
6233         (TYPE_HASH_SIZE): Remove.
6234         (TYPE_HASH_INITIAL_SIZE): New define.
6235         (type_hash_table): Change type to htab_t.
6236         (type_hash_eq, type_hash_hash, print_type_hash_statistics,
6237         mark_hash_entry): New functions.
6238         (init_obstacks): Allocate type hash.
6239         (type_hash_lookup): Use htab functions.
6240         (type_hash_add, mark_type_hash): Likewise.
6241         (dump_tree_statistics): Call print_type_hash_statistics.
6242
6243 2000-03-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6244
6245         * rs6000/t-aix41: New file.
6246
6247         * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it.
6248
6249 Sun Mar 19 13:27:30 2000  Hans-Peter Nilsson  <hp@axis.com>
6250
6251         * tm.texi (Driver): Fix typos and tweak entry for
6252         INCLUDE_DEFAULTS.
6253         Move misplaced STRUCT_FORCE_BLK entry ...
6254         (Storage Layout): ... to here.
6255         (Run-time Target): Recommend having TARGET_MASK_... helper macros.
6256
6257 2000-03-19  Richard Henderson  <rth@cygnus.com>
6258
6259         * flow.c (delete_block): Delete the addr_vec along with the block.
6260         (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
6261         reference labels.
6262
6263         * fold-const.c (extract_muldiv): Apply type check for defined
6264         overflow to multiply as well as divide.
6265
6266         * stor-layout.c (layout_decl): Don't abort on any zero sized decl.
6267
6268 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
6269
6270         * emit-rtl.c (remove_unncessary_notes): Check that all
6271         NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an
6272         associated NOTE_BLOCK.
6273         * function.h (identify_blocks): Update comments.
6274         (reorder_blocks): Declare.
6275         * function.c (identify_blocks): Don't take paramters.
6276         (reorder_blocks): Don't take parameters.
6277         * loop.h (find_loop_tree_blocks): Remove.
6278         (unroll_block_trees): Likewise.
6279         * loop.c (loop_optimize): Don't call find_loop_tree_blocks.  Use
6280         reorder_blocks instead of unroll_block_trees.h
6281         * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise.
6282         * stmt.c (find_loop_tree_blocks): Remove.
6283         (unroll_block_trees): Likewise.
6284         * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks
6285         in whole-function mode.
6286         * tree.h (reorder_blocks): Remove declaration.
6287
6288         * expr.c: Include intl.h.
6289         * Makefile.in (expr.o): Depend on intl.h.
6290
6291 2000-03-18  Richard Henderson  <rth@cygnus.com>
6292
6293         * expr.c (emit_move_insn_1): Clarify cannot_inline message.
6294
6295 2000-03-18  Mark Mitchell  <mark@codesourcery.com>
6296
6297         * tree.h (tree_index): Remove enumerals for integer types.
6298         (integer_type_kind): New type.
6299         (integer_types): New variable.
6300         (char_type_node): Adjust.
6301         (signed_char_type_node): Likewise.
6302         (unsigned_char_type_node): Likewise.
6303         (short_integer_type_node): Likewise.
6304         (short_unsigned_type_node): Likewise.
6305         (integer_type_node): Likewise.
6306         (unsigned_type_node): Likewise.
6307         (long_integer_type_node): Likewise.
6308         (long_unsigned_type_node): Likewise.
6309         (long_long_integer_type_node): Likewise.
6310         (long_long_unsigned_type_node): Likewise.
6311         * tree.c (integer_types): New variable.
6312         (init_obstacks): Register it as a root.
6313
6314 Sat Mar 18 14:38:00 2000  Jason Eckhardt  <jle@cygnus.com>
6315
6316         * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as
6317         NEXT_INSN. Update last insn in chain.
6318
6319 2000-03-17  Jason Merrill  <jason@casey.cygnus.com>
6320
6321         * dwarf2out.c (dwarf2out_decl): Don't emit anything for types
6322         with TYPE_DECL_SUPPRESS_DEBUG set.
6323
6324 2000-03-18  Richard Henderson  <rth@cygnus.com>
6325
6326         * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value.
6327
6328 2000-03-18  Richard Henderson  <rth@cygnus.com>
6329
6330         * i386.c (call_insn_operand): Always allow SYMBOL_REF,
6331         care for HALF_PIC_P.
6332         (expander_call_insn_operand): Remove.
6333         (ix86_expand_epilogue): New arg `emit_return' to control return insn.
6334         * i386.h (PREDICATE_CODES): Update.
6335         * i386.md (all call expanders): Remove predicates, remove special
6336         handling for half-pic.
6337         (*call_1, *call_value_1): Handle SIBLING_CALL_P insns.
6338         (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove.
6339         (sibcall_epilogue): New.
6340
6341 2000-03-17  Richard Henderson  <rth@cygnus.com>
6342
6343         * rtlanal.c (single_set): Reject if the parallel has anything
6344         except SET or USE or CLOBBER.
6345
6346 2000-03-17  Jeff Law  <law@cygnus.com>
6347             Richard Henderson  <rth@cygnus.com>
6348
6349         * Makefile.in (OBJS): Add sibcall.o.
6350         (sibcall.o): New.
6351         * sibcall.c: New file.
6352         * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default.
6353         (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New.
6354         (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'.
6355         Emit sibcall patterns when requested.  Update all callers.
6356         (expand_call): Generate CALL_PLACEHOLDER insns when tail call
6357         elimination seems feasable.
6358         * final.c (leaf_function_p): Sibling calls don't discount being
6359         a leaf function.
6360         * flow.c (HAVE_sibcall_epilogue): Provide default.
6361         (find_basic_blocks_1): Sibling calls don't throw.
6362         (make_edges): Make edge from sibling call to EXIT.
6363         (propagate_block): Don't remove sibcall_epilogue insns.
6364         * function.c (prologue, epilogue): Turn into varrays.  Update all uses.
6365         (sibcall_epilogue): New.
6366         (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences.
6367         (identify_blocks_1): Likewise.  Break out from ...
6368         (identify_blocks): ... here.
6369         (reorder_blocks_1): Scan CALL_PLACEHOLDER.  Break out from ...
6370         (reorder_blocks): ... here.
6371         (init_function_for_compilation): Zap prologue/epilogue as varrays.
6372         (record_insns): Extend a varray instead of mallocing new memory.
6373         (contains): Read a varray not array of ints.
6374         (sibcall_epilogue_contains): New.
6375         (thread_prologue_and_epilogue_insns): Emit and record
6376         sibcall_epilogue patterns.
6377         (init_function_once): Allocate prologue/epilogue varrays.
6378         * genflags.c (gen_insn): Treat sibcall patterns as calls.
6379         * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns.
6380         Broken out from ...
6381         (save_for_inline_nocopy): ... here.
6382         (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns.
6383         Broken out from ...
6384         (expand_inline_function): ... here.
6385         (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL.
6386         (subst_constants): Handle 'n' formats.
6387         * jump.c (jump_optimize_minimal): New.
6388         (jump_optimize_1): New arg `minimal'; update callers.  Elide most
6389         optimizations if it's set.
6390         * rtl.c (copy_rtx): Do copy jump & call for insns.
6391         * rtl.h (struct rtx_def): Document use of jump and call for insns.
6392         (SIBLING_CALL_P): New.
6393         (sibcall_use_t): New.
6394         * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier.
6395         Invoke optimize_sibling_and_tail_recursive_calls.
6396         * tree.c (lang_safe_for_unsave): New.
6397         (safe_for_unsave): New.
6398         * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare.
6399
6400         * alpha.h (FUNCTION_OK_FOR_SIBCALL): New.
6401         * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New.
6402         (*sibcall_osf_1, *sibcall_value_osf_1): New.
6403
6404 2000-03-17  Mark Mitchell  <mark@codesourcery.com>
6405
6406         * objc/objc-act.c (encode_method_prototype): Pass types, not
6407         PARM_DECLs, to int_size_in_bytes.
6408
6409 Fri Mar 17 11:51:34 2000  Jim Wilson  <wilson@cygnus.com>
6410
6411         * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template.
6412
6413         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
6414         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again.
6415
6416 Fri Mar 17 08:09:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6417
6418         * Clean up usages of TREE_INT_CST_LOW.
6419         * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst.
6420         * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c:
6421         Regenerated.
6422         * c-tree.h (min_precision): Move declaration to here.
6423         * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst.
6424         (build_unary_op, add_pending_init): Use bit_position.
6425         (pending_init_member, process_init_element): Likewise.
6426         (really_start_incremental_init, push_init_level, pop_init_level):
6427         Don't make copies of nodes or modify them in place, use consistent
6428         types when tracking positions, and use tree routines computations.
6429         (set_init_index, output_init_element): Likewise.
6430         (output_pending_init_elements, process_init_element): Likewise.
6431         * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp,
6432         tree_low_cst and int_bit_position; also minor cleanup.
6433         (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise.
6434         (print_cst_octal): Precision is unsigned.
6435         (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst.
6436         * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT.
6437         (simple_type_align_in_bits): Result is unsigned int.
6438         Use tree_int_low_cst and host_integerp.
6439         (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT.
6440         (field_byte_offset): Result is HOST_WIDE_INT.
6441         Change types of internal variables so alignments are unsigned int,
6442         offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT.
6443         Use host_integerp, tree_low_cst, and int_bit_position.
6444         (add_bit_offset_attribute): Likewise.
6445         (add_data_member_location_attribute): Use tree_cst_low.
6446         (add_bound_info): Use host_integerp, integer_zerop, and integer_onep.
6447         (add_bit_size_attribute): Use tree_low_cst.
6448         (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise.
6449         * dwarfout.c: Similar changes to dwarf2out.c.
6450         * expr.c (expand_expr, case ARRAY_REF): Remove redundant code.
6451         * genoutput.c (n_occurences): Return -1 for null string.
6452         (strip_whitespace): Accept null string and make into function.
6453         (scan_operands): Reflect above changes.
6454         * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst.
6455         (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position.
6456         * ssa.c (rename_registers): Add missing cast of arg to bzero.
6457         * tree.c (int_size_in_bytes): Check for too big to represent.
6458         (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns.
6459         * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position):
6460         New declarations.
6461         (min_precision): Delete from here.
6462         * varasm.c (decode_addr_const): Use host_integerp, bit_position,
6463         and int_bit_position.
6464         * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT.
6465         (encode_method_def): Likewise.
6466         (build_ivar_list_initializer): Use int_bit_position.
6467         (generate_shared_structures): Convert size.
6468         (encode_type, encode_complete_bitfield): Use integer_zerop.
6469         (encode_bitfield): Use tree_low_cst and int_bit_position.
6470
6471 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6472
6473         * config/c4x/c4x.h (CPP_SPEC): Fix typo.
6474
6475 2000-03-17  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
6476
6477         * call.c (special_function_p): It is only malloc if it returns
6478         Pmode.
6479
6480 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6481
6482         * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33.
6483         (C33_FLAG, TARGET_C3X): Add macros.
6484         (TARGET_SWITCHES): Add -m33 option.
6485         * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33.
6486
6487 2000-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6488
6489         * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add.
6490         (PARALLEL_PACK_FLAG): Delete.
6491         (TARGET_SWITCHES): Update.
6492         (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG.
6493
6494 Thu Mar 16 18:52:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6495
6496         * fold-const.c (fold): Fix a few cases when the returned result
6497         is not of the same type as the input.
6498
6499 2000-03-16  Nick Clifton  <nickc@cygnus.com>
6500
6501         * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time
6502         warning.
6503
6504 2000-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6505
6506         * libgcc2.h: Move prototypes above macros with the same name.
6507         Wrap some function prototypes in the conditional which indicates
6508         whether they are supported, i.e. "BITS_PER_UNIT == 8".
6509
6510 2000-03-16  Richard Henderson  <rth@cygnus.com>
6511
6512         * calls.c: Revert last two changes.
6513
6514 2000-03-16  Bernd Schmidt  <bernds@cygnus.co.uk>
6515
6516         * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that
6517         has exponent 0 is a zero.
6518
6519         * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that
6520         HASH may already be nonzero.  Add code/mode into hash value
6521         immediately after repeat label.
6522         (cselib_lookup): Don't leave the hash table in an inconsistent
6523         state before a hash lookup operation.
6524
6525 Thu Mar 16 17:03:10 MET 2000  Jan Hubicka  <jh@suse.cz>
6526
6527         * i386.md (all HI and QI mode non-move patterns):  Conditionize
6528         by TARGET_[HQ]IMODE_MATH.
6529         * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
6530         x86_promote_qi_regs): Declare.
6531         (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS,
6532         TARGET_PROMOTE_QI_REGS): New macros.
6533         (PROMOTE_MODE): New macro.
6534         * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs,
6535         x86_promote_qi_regs): New global variables.
6536
6537 Thu Mar 16 16:50:44 MET 2000  Jan Hubicka  <jh@suse.cz>
6538
6539         * calls.c (emit_library_call_value_1): Break out from ...; handle
6540         VOIDmode function calls too.
6541         (emit_library_call_value): ... here.
6542         (emit_library_call): Implement by calling emit_library_call_value_1.
6543
6544 Thu Mar 16 16:01:30 MET 2000  Jan Hubicka  <jh@suse.cz>
6545
6546         * calls.c (expand_call): Do sanity checking on arg_space_so_far.
6547         Update arg_space_so_far on stack adjustments.
6548         (emit_library_call, emit_library_call_value): Likewise; take into
6549         account arg_space_so_far and pending_stack_adjust when calculcating
6550         the boundary.
6551
6552 Thu Mar 16 09:02:19 2000  Jason Eckhardt  <jle@cygnus.com>
6553
6554         * flow.c: Move all basic block reordering code into its own file.
6555         (create_basic_block): Externalize.
6556         * bb-reorder.c: New file. Copy all basic block reordering code from
6557         flow.c to this file.
6558         (reorder_basic_blocks): Fix fencepost error in for-loop.
6559         (reorder_basic_blocks): Remove braces from single statement for-loops.
6560         * basic-block.h: Add declaration for create_basic_block.
6561         * Makefile.in: Add rules for bb-reorder.o.
6562
6563 2000-03-16  Neil Booth  <NeilB@earthling.net>
6564
6565         * cppinit.c (handle_option):  Implement #unassert directive
6566         as -A- command line option.
6567         (print_help):  Update.
6568         * cpptexi.c:  Update.
6569
6570 Thu Mar 16 02:14:16 2000  Hans-Peter Nilsson  <hp@bitrange.com>
6571
6572         * md.texi (Standard Names): Document `jump'.
6573
6574 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
6575
6576         * calls.c (emit_call_1): Nothrow functions can still have nonlocal
6577         gotos.
6578
6579 2000-03-15  Geoff Keating  <geoffk@cygnus.com>
6580
6581         Merge changes from newppc-branch onto trunk.
6582
6583         2000-03-15  Geoff Keating  <geoffk@cygnus.com>
6584
6585         * rs6000.c (toc_hash_table): Update for new hash table functions.
6586         (toc_hash_function): Likewise.
6587         (toc_hash_eq): Likewise.
6588         (toc_hash_mark_entry): Likewise.
6589         (toc_hash_mark_table): Likewise.
6590         (output_toc): Likewise.
6591         (rs6000_add_gc_roots): Likewise.
6592
6593         2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
6594
6595         * t-aix43 (AR_FOR_TARGET): Deleted.  Moved `-X32_64'...
6596         (AR_FLAGS_FOR_TARGET): here.  New macro.
6597
6598         2000-03-05  Clinton Popetz  <cpopetz@cygnus.com>
6599
6600         * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size,
6601         fpmem_operand) Delete.
6602         (xer_operand) New.
6603         (rs6000_reg_names, alt_reg_names): Change fpmem to xer.
6604         (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p.
6605         (rs6000_save_machine_status, rs6000_restore_machine_status,
6606         rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove
6607         references to above variables.
6608         (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P.
6609         * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES,
6610         DEBUG_REGISTER_NAMES): Chagne fpmem to xer.
6611         (FPMEM_REGNO_P, FPMEM_REGNUM): Delete.
6612         (XER_REGNO_P, XER_REGNO): New.
6613         (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size.
6614         (PREDICATE_CODES): Change fpmem_operand to xer_operand.
6615         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to
6616         XER_REGNO_P.
6617         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS,
6618         REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS,         and remove FLOAT_OR_FPMEM_REGS.
6619         (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS.
6620
6621         2000-02-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6622
6623         * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX,
6624         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here...
6625         * rs6000.h: from here.
6626
6627         * rs6000-protos.h (rs6000_select_section): Provide prototype.
6628         (rs6000_select_rtx_section): Likewise.
6629         (rs6000_encode_section_info): Likewise.
6630         (sdata_section): Likewise.
6631         (sdata2_section): Likewise.
6632         (sbss_section): Likewise.
6633         * sysv4.h (rs6000_select_section): Delete prototype.
6634         (rs6000_select_rtx_section): Likewise.
6635         (rs6000_encode_section_info): Likewise.
6636         (sdata_section): Likewise.
6637         (sdata2_section): Likewise.
6638         (sbss_section): Likewise.
6639         (REG_SAVE_AREA): Delete definition duplicated in rs6000.h.
6640
6641         * sysv4.h: Delete various unnecessary #undef's and put a comment
6642         on the remaining ones.
6643         Change various comments according to coding standard.
6644
6645         2000-02-29  Clinton Popetz  <cpopetz@cygnus.com>
6646
6647         * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO,
6648         CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define.
6649         (CR0_REGNO_P) Remove.
6650         * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand,
6651         setup_incoming_varargs, mtcrf_operation, print_operand,
6652         rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue):
6653         Use the above macros.
6654
6655         2000-02-24  Clinton Popetz  <cpopetz@cygnus.com>
6656
6657         * config/rs6000/rs6000.md: Added a new alternative for each
6658         pattern that had a 'x' alternative but no 'y' alternative.
6659         Added a new split for each of the above patterns.
6660
6661         2000-02-18  Geoff Keating  <geoffk@cygnus.com>
6662
6663         * aix41.h (ASM_CPU_SPEC): Delete.
6664         (CPP_CPU_SPEC): Delete.
6665
6666         * aix.h (RS6000_OUTPUT_BASENAME): Define.
6667         (ASM_OUTPUT_LABEL): Define.
6668         (ASM_GLOBALIZE_LABEL): Define.
6669         (STRIP_NAME_ENCODING): Define.
6670         * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define.
6671         (STRIP_NAME_ENCODING): Don't define.
6672         (ASM_OUTPUT_LABEL): Don't define.
6673         (ASM_GLOBALIZE_LABEL): Don't define.
6674         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output
6675         names, and ASM_OUTPUT_LABEL to output labels, rather than
6676         asm_fprintf.
6677         (ASM_OUTPUT_LABEL): Define.
6678         (ASM_OUTPUT_INT): Use assemble_name.
6679         (ASM_OUTPUT_DWARF_ADDR): Use assemble_name.
6680         (STRIP_NAME_ENCODING): Don't undefine first.
6681         (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for
6682         ELF.
6683         (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels
6684         specified with 'asm' even with -fleading-underscore.
6685         * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX.
6686         (output_epilog): Likewise.
6687         (output_toc): Likewise.
6688         * tramp.asm: Handle -fleading-underscore correctly.
6689
6690         * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and
6691         -mminimal-toc.
6692         (nonlocal_goto_receiver): Delete.
6693         * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete.
6694
6695         * rs6000.h (ASM_OUTPUT_DEF): Don't define.
6696         (SET_ASM_OP): Define.
6697         * sysv4.h (ASM_OUTPUT_DEF): Don't undefine.
6698
6699         * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define.
6700         (ASM_LONG): Define.
6701
6702         * rs6000.c (rs6000_dll_import_ref): Delete, not used.
6703         * rs6000-protos.h (rs6000_dll_import_ref): Delete.
6704
6705         * rs6000.h: Add 'u' to more constants.
6706
6707         2000-02-18  David Edelsohn  <edelsohn@gnu.org>
6708
6709         * rs6000.md (mfcr+shift): Delete PowerPC64 version.
6710
6711         2000-02-15  David Edelsohn  <edelsohn@gnu.org>
6712
6713         * rs6000.c (reg_or_u_cint_operand): New function.
6714         (logical_operand): Handle 64-bit hosts.
6715         (logical_u_operand): New function.
6716         (non_logical_cint_operand): Handle 64-bit hosts.
6717         (non_logical_u_cint_operand): New function.
6718         * rs6000.h (DATA_SECTION_ASM_OP): Add tab.
6719         (PREDICATE_CODES): Define new functions.
6720         * rs6000-protos.h: Declare new functions.
6721         * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits.
6722         (movdi_64): Bracket code intended for 64-bit hosts.  Create
6723         CONST_DOUBLE for 32-bit values.
6724         (scc insns): Generate DImode compares.
6725         (mfcr insns): Create DImode versions.
6726         (sge matchers): New patterns.
6727
6728         2000-02-15  Gabriel Paubert  <paubert@iram.es>
6729
6730         * rs6000.md: Correct instructions length attributes and
6731         constraints on unsigned compare instructions.
6732         (*ne0): Disable for PowerPC64.
6733
6734         2000-02-11  Geoff Keating  <geoffk@cygnus.com>
6735
6736         * rs6000.c (output_function_profiler): Use .long for a 32-bit
6737         quantity, fix profile1.C test failure under -fPIC.
6738
6739         * rs6000.c: Add 'u' to many constants to suppress warnings.
6740         (constant_pool_expr_1): Make static.
6741         (rs6000_emit_eh_toc_restore): Remove unused 'r2'.
6742         * rs6000.h: Add 'u' to many constants to suppress warnings.
6743
6744         * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX
6745         for the start of the TOC, instead of LCTOC..0.
6746         * aix.h (toc_section): Use LCTOC..1 under AIX for the start
6747         of the TOC.
6748         * rs6000.md (load_toc_aix_si): Use LCTOC..1.
6749         (load_toc_aix_di): Use LCTOC..1.
6750
6751         * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function.
6752         * rs6000.c (rs6000_legitimize_address): New function from
6753         LEGITIMIZE_ADDRESS.  Only use create_TOC_reference on
6754         symbols in the constant pool that really are TOC references.
6755         (print_operand_address): For ELF, write TOC offsets under
6756         -fPIC as subtractions in the insn.
6757         (output_toc): For ELF, define symbols in TOC as normal labels,
6758         to match RTL.
6759         (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx.
6760         * rs6000-protos.h (rs6000_legitimize_address): Prototype.
6761         (create_TOC_reference): Prototype only when RTX_CODE is defined.
6762         * rs6000.md (movsi): Only use create_TOC_reference on
6763         symbols in the constant pool that really are TOC references.
6764
6765         * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define.
6766         * rs6000.c (rs6000_reorg): Delete.
6767         * rs6000-protos.h (rs6000_reorg): Delete.
6768
6769         2000-02-09  Geoff Keating  <geoffk@cygnus.com>
6770
6771         * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro.
6772
6773         * aix.h (SETUP_FRAME_ADDRESSES): Define.
6774         * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable.
6775         [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function.
6776         [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function.
6777         * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore,
6778         rs6000_aix_emit_builtin_unwind_init.
6779         * rs6000.md (eh_epilogue) [TARGET_AIX]: Call
6780         rs6000_emit_eh_toc_restore on AIX.
6781         (return_eh_si): Use r2.
6782         (return_eh_di): Use r2.
6783
6784         * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH,
6785         since we're breaking binary compatibility anyway.
6786
6787         2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
6788
6789         * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC,
6790         constant_pool_expr_p): Declare them.
6791         (constant_pool_expr_p): Declare it.
6792         * config/rs6000/rs6000.c (toc_label_name): Define.
6793         (rs6000_override_options): Set toc_label_name.
6794         (input_operand): Allow any TOC_RELATIVE_EXPR_P.
6795         (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1,
6796         uses_TOC): New functions.
6797         (print_operand): Delete old '*' case.
6798         (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
6799         and strip off rtl for TOC before calling output_addr_const.
6800         (rs6000_emit_load_toc_table): Use toc_label_name.
6801         * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog
6802         the default.
6803         (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete.
6804         (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros.
6805         (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P.
6806         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs
6807         into explicit TOC_REGISTER offsets.
6808         (TOC_REGISTER): New macro.
6809         * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under
6810         TARGET_TOC to reference TOC_REGISTER.
6811         (load_toc_v4_PIC_1b): Add 4 to offset for toc reload.
6812         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call
6813         uses_TOC before emitting label references.
6814
6815         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
6816
6817         * rs6000.md (stack_tie): Fix warning.
6818
6819         * eabi-ctors.c: Use 'asm' names for the start/end variables,
6820         to handle -fleading-underscore.
6821         * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U.
6822         (USER_LABEL_PREFIX): New macro.
6823         (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L.
6824         (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U.
6825         * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and
6826         call-linux can use the same multilibs.
6827         * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv
6828         and call-linux multilibs.  Do multilib with -fleading-underscore.
6829         (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change.
6830         (MULTILIB_EXCEPTIONS): Remove call-linux exceptions.  Add restrictions
6831         to call-aix.
6832
6833         * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that
6834         have MASK_SOFT_FLOAT set.
6835         (CPP_FLOAT_DEFAULT_SPEC): New macro.
6836         (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of
6837         CPP_FLOAT_DEFAULT_SPEC.
6838
6839         * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'.
6840         * rs6000.md: Whitespace change.
6841         * sysv4.h (LINK_TARGET_SPEC): Whitespace change.
6842         * sysv4le.h (LINK_TARGET_SPEC): Whitespace change.
6843
6844         2000-02-05  Geoff Keating  <geoffk@cygnus.com>
6845
6846         * rs6000.md (eh_epilogue): New expander.
6847         (eh_reg_restore): New expand/split/insn combination.
6848         (return_eh_si): New insn.
6849         (return_eh_di): New insn.
6850
6851         * eabi-ci.asm: Put a label at the start of the .eh_frame section.
6852         * eabi-cn.asm: Put a zero at the end of the .eh_frame section.
6853         * eabi-ctors.c (__do_global_ctors): Register this object's
6854         frame.  Clean up.  Call atexit() after the constructors.
6855         (__do_global_dtors): Deregister this object's frame.  Clean up.
6856         Allow for recursive calls to exit().
6857         * rs6000.c (fixuplabelno): New variable.
6858         * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not
6859         TARGET_RELOCATABLE, it slows down exec() under linux.
6860         (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE.
6861
6862         * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro.
6863         (ASM_OUTPUT_DWARF_DELTA_VAR): New macro.
6864         (ASM_OUTPUT_DWARF_DELTA2): New macro.
6865         (ASM_OUTPUT_DWARF_DELTA4): New macro.
6866         (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro.
6867         (ASM_OUTPUT_DWARF_ADDR): New macro.
6868         (ASM_OUTPUT_DWARF_DATA4): New macro.
6869         (ASM_OUTPUT_DWARF_DATA2): New macro.
6870         (ASM_OUTPUT_DWARF_OFFSET4): New macro.
6871         (ASM_OUTPUT_DWARF_OFFSET): New macro.
6872         (UNALIGNED_INT_ASM_OP): New macro, fake definition.
6873
6874         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
6875
6876         * rs6000.c (rs6000_sr_alias_set): New variable.
6877         (rs6000_override_options): Initialise rs6000_sr_alias_set.
6878         (rs6000_emit_stack_tie): New function.
6879         (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P
6880         in a way that dwarf2out can understand.
6881         (rs6000_frame_related): New function.
6882         (rs6000_emit_prologue): Use rs6000_sr_alias_set.  Specify
6883         RTX_FRAME_RELATED_P in a way that dwarf2out can understand.
6884         Use rs6000_emit_stack_tie when needed.
6885         (rs6000_emit_epilogue): Use rs6000_sr_alias_set.  Don't set
6886         RTX_FRAME_RELATED_P.  Use rs6000_emit_stack_tie when needed.
6887         * rs6000.md (stack_tie): New insn.
6888         (return_internal_si): Allow return value to be in the count
6889         register.
6890         (return_internal_di): Likewise.
6891
6892         * rs6000.c (output_mi_thunk): Remove unused variable `sp'.
6893
6894         2000-02-03  Geoff Keating  <geoffk@cygnus.com>
6895
6896         * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h.
6897
6898         2000-01-31  Geoff Keating  <geoffk@cygnus.com>
6899
6900         * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro.
6901
6902         * rs6000.md (stmw): Use the right POWER opcode.
6903         (lmw): Likewise.
6904
6905         2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6906
6907         * rs6000-protos.h: New file.
6908
6909         * rs6000.c: Include tm_p.h.  Fix compile time warnings.
6910
6911         * rs6000.h: Move prototypes to rs6000-protos.h.  Fix compile time
6912         warnings.
6913
6914         * sysv4.h: Likewise.
6915
6916         2000-01-28  Geoff Keating  <geoffk@cygnus.com>
6917
6918         * ../../configure.in: Delete powerpcle-*-winnt*
6919         and powerpcle-*-pe|powerpcle-*-cygwin*.
6920         * ../../configure: Regenerated.
6921         * cygwin.h: Delete.
6922         * rs6000.h (OBJECT_WINDOWS_NT): Delete.
6923         (TARGET_WINDOWS_NT): Delete.
6924         (ABI_NT): Delete.
6925         (CALL_NT_DLLIMPORT): Delete.
6926         Delete NT-specific code.
6927         * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code.
6928         * win-nt.h: Delete.
6929         * t-winnt: Delete.
6930         * nt-ci.asm: Delete.
6931         * nt-cn.asm: Delete.
6932         * ntstack.asm: Delete.
6933
6934         2000-01-27  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6935
6936         * rs6000.h (SELECT_RTX_SECTION): Move to aix.h.
6937         (ASM_FILE_START): Likewise.
6938         (ASM_DECLARE_FUNCTION_NAME): Likewise.
6939         (ASM_OUTPUT_LABELREF): Likewise.
6940         (ASM_OUTPUT_SKIP): Likewise.
6941         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
6942         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
6943         (ASM_OUTPUT_CASE_LABEL): Likewise.
6944         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
6945         (ASM_OUTPUT_ASCII): Likewise.
6946
6947         2000-01-27  Clinton Popetz  <cpopetz@cygnus.com>
6948
6949         * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and
6950         reload_toc_labelno for non-prologue TOC reloads.  Also, don't
6951         increment rs6000_pic_labelno here.
6952         (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table,
6953         and increment rs6000_pic_labelno here.
6954
6955         2000-01-24  Geoffrey Keating  <geoffk@cygnus.com>
6956
6957         * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)]))
6958         rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register
6959         allocation knows (reg) is dead before the insn.
6960
6961         2000-01-21  Geoff Keating  <geoffk@cygnus.com>
6962
6963         * rs6000.md (movsi_to_cr): Correct typo in output template.
6964
6965         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
6966
6967         * rs6000.c (rs6000_pic_labelno): Always define.
6968         (rs6000_pic_func_labelno): Delete.
6969         (lmw_operation): Check for a zero base register,
6970         which doesn't mean what we want.
6971         (stmw_operation): New function.
6972         (print_operand): Define new 'l' modifier.
6973         (rs6000_stack_info): We must save all 64 bits of the registers
6974         if TARGET_POWERPC64.
6975         (rs6000_output_load_toc_table): Delete.
6976         (rs6000_emit_load_toc_table): New function.
6977         (rs6000_allocate_stack_space): Delete.
6978         (rs6000_emit_allocate_stack): New function.
6979         (rs6000_emit_prologue): New function.
6980         (output_prolog): Use rs6000_emit_prologue.
6981         (rs6000_emit_epilogue): Change a few variable names to be
6982         more accurate.  Restore all 64 bits of the registers if
6983         TARGET_POWERPC64.  Only restore the FP registers which were used
6984         if they are being saved/restored one-at-a-time.
6985         (output_mi_thunk): Delete inefficient code generation.
6986         (output_function_profiler): Don't use rs6000_output_load_toc_table.
6987         * rs6000.h: Declare rs6000_emit_load_toc_table,
6988         rs6000_allocate_stack_space, stmw_operation.  Don't declare
6989         rs6000_output_load_toc_table.
6990         * rs6000.md (elf_high): Allow register 0, but discourage it
6991         heavily.
6992         (elf_low): Support loading into register 0.
6993         (load_toc_aix_si): New pattern.
6994         (load_toc_aix_di): New pattern.
6995         (load_toc_v4_pic_si): New pattern.
6996         (load_toc_v4_pic_di): New pattern.
6997         (load_toc_v4_PIC_1): New pattern.
6998         (load_toc_v4_PIC_1b): New pattern.
6999         (load_toc_v4_PIC_2): New pattern.
7000         (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table.
7001         (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table.
7002         (prologue): New expander.
7003         (movesi_from_cr): New pattern.
7004         (stmw): New pattern.
7005         (save_fpregs_si): New pattern.
7006         (save_fpregs_di): New pattern.
7007
7008         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7009
7010         * rs6000.md (movsi): Don't use force_reg when no_new_pseudos.
7011         (movdi): Likewise.
7012         (movhi): Likewise.
7013         (movqi): Likewise.
7014
7015         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7016
7017         * rs6000.md (movsi_got): 'unspec 8' returns a SImode result,
7018         at present.
7019         (movsi_got_internal): Likewise.
7020         (movsi_got_internal+1): Likewise.
7021         (set_sp): 'unspec 7' does a SImode clobber.
7022
7023         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7024
7025         * rs6000.md (floatsidf2): Don't use the fpmem "register", just
7026         allocate a stack temporary.
7027         (floatsidf2_internal): Likewise.
7028         (floatsidf2_internal+1): Likewise.  Don't do bizzare hacks
7029         with unspec.
7030         (floatunssidf2): Don't use the fpmem "register", just
7031         allocate a stack temporary.
7032         (floatunssidf2_internal): Likewise.
7033         (floatunssidf2_internal+1): Likewise.  Don't do bizzare hacks
7034         with unspec.
7035         (floatsidf2_loadaddr): Delete.
7036         (floatsidf2_store1): Delete.
7037         (floatsidf2_store2): Delete.
7038         (floatsidf2_load): Delete.
7039         (fix_truncdfsi2): Don't use the fpmem "register", just
7040         allocate a stack temporary.
7041         (fix_truncdfsi2_internal_si): Delete.
7042         (fix_truncdfsi2_internal_di): Delete.
7043         (fix_truncdfsi2_internal): New insn.
7044         (fix_truncdfsi2_internal+1): Don't use the fpmem "register".
7045         (fix_truncdfsi2_store): Delete.
7046         (fix_truncdfsi2_load): Delete.
7047         (fctiwz): Produce gen_fctiwz.
7048
7049         2000-01-19  Geoffrey Keating  <geoffk@cygnus.com>
7050
7051         * eabi.h (INVOKE__main): Define.
7052         * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN
7053         specially.
7054         (rs6000_emit_prologue): Likewise.
7055         * rs6000.h (struct rs6000_stack): Don't keep track of whether
7056         this is the main program.
7057
7058         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7059
7060         * rs6000.c (rs6000_va_arg): Delete some unused variables.
7061
7062         2000-01-19  Geoff Keating  <geoffk@cygnus.com>
7063
7064         * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments
7065         goes after the argument.
7066
7067         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7068
7069         * rs6000.md: Document 'unspec' values used.
7070         (epilogue): New expander.
7071         (movesi_to_cr_one): New expander.
7072         (movesi_to_cr and following): New pattern.
7073         (lmw): New pattern.
7074         (return_internal_si): New pattern.
7075         (return_internal_di): New pattern.
7076         (return_and_restore_fpregs_si): New pattern.
7077         (return_and_restore_fpregs_di): New pattern.
7078         * rs6000.h: Declare new functions.
7079         * rs6000.c (rs6000_stack_info): Use current_function_is_leaf
7080         rather than rs6000_calls_p.
7081         (rs6000_makes_calls): Delete.
7082         (lmw_operation): New function.
7083         (mtcrf_operation): New function.
7084         (rs6000_emit_epilogue): New function.
7085         (output_epilog): Call rs6000_emit_epilogue and final if
7086         !TARGET_SCHED_PROLOG, instead of writing text unconditionally.
7087
7088         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7089
7090         * aix43.h (SUBSUBTARGET_SWITCHES): Document switches.
7091         * aix41.h (SUBSUBTARGET_SWITCHES): Document switches.
7092         * aix.h (SUBTARGET_SWITCHES): Document switches.
7093         * rs6000.h: (TARGET_SWITCHES): Don't print options twice.  Make
7094         sched-prolog and sched-epilog the same.  Document all the
7095         switches.
7096         (TARGET_OPTIONS): No longer allow -mdebug-.
7097
7098         2000-01-12  Geoff Keating  <geoffk@cygnus.com>
7099
7100         * rs6000.h (ASM_FILE_END): Move to aix.h.
7101         (EXTRA_SECTIONS): Move to aix.h.
7102         (READONLY_DATA_SECTION): Move to aix.h.
7103         (EXTRA_SECTION_FUNCTIONS): Move to aix.h.
7104         (SELECT_SECTION): Move to aix.h.
7105         (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h.
7106         (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM.
7107         (LINK_REGISTER_REGNUM): New definition.
7108         (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM.
7109         (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both
7110         AIX and SVR4.
7111         * sysv4.h: Delete the code between the inclusion of rs6000.h
7112         and svr4.h.
7113         (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h.
7114         (FP_ARG_MAX_REG): Move generic definition to rs6000.h.
7115         (RS6000_REG_SAVE): Move generic definition to rs6000.h.
7116         (RS6000_SAVE_AREA): Move generic definition to rs6000.h.
7117         * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode.
7118         (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si.
7119         (fix_truncdfsi2_internal_di): New pattern.
7120         (fix_truncdfsi2_store): The second arg here is Pmode too.
7121         (fix_truncdfsi2_load): The second arg here is Pmode too.
7122         (tablejumpdi): Now that switch tables hold only SImode values,
7123         gcc needs to know how to add them to the pc which is DImode.
7124         * rs6000.c (rs6000_stack_info): Use symbolic name for
7125         LINK_REGISTER_REGNUM.
7126         (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used.
7127         (output_toc): Delete unused variables s1 and s2.
7128         (output_ascii): Use fputs not fprintf on a variable string.
7129
7130         2000-01-07  David Edelsohn  <edelsohn@gnu.org>
7131
7132         * rs6000.c (processor_target_table): Add power3 as alias for 630.
7133         * aix43.h: Revert Aug 2 change.
7134         (HAS_INIT_SECTION): Define, not visible yet.
7135         (LD_INIT_SWITCH): Define, not visible yet.
7136         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
7137
7138         2000-01-04  Joel Sherrill (joel@OARcorp.com>
7139
7140         * config/rs6000/rtems.h: Include config/rtems.h.
7141
7142         2000-01-04  David Edelsohn  <edelsohn@gnu.org>
7143
7144         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
7145         (SLOW_UNALIGNED_ACCESS): Define.
7146         (CASE_VECTOR_MODE): Always use 32-bit offsets.
7147         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
7148         (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op.
7149         (toc_section): Likewise and .toc pseudo-op.
7150         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
7151         64-bit mode.
7152         (TEXT_SECTION_ASM_OP): Likewise.
7153         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
7154         32-bit offsets.
7155
7156         1999-12-17  Jakub Jelinek  <jakub@redhat.com>
7157
7158         * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure
7159         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
7160         compiling libgcc2.
7161
7162         2000-01-06  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7163
7164         * rs6000.h: Move more stuff from here...
7165         * aix.h: to here.
7166         * sysv4.h: Cleanup accordingly.
7167         * netware.h: Likewise
7168
7169         2000-01-05  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
7170
7171         * rs6000.h: Continue cleanup.
7172         * aix.h: Likewise.
7173         * lynx.h: Likewise.
7174         * netware.h: Likewise.
7175         * sol2.h: Likewise.
7176         * sysv4.h: Likewise.
7177         * win-nt.h: Likewise.
7178
7179         * rs6000.h (TARGET_SWITCHES): Add descriptions.
7180         (TARGET_OPTIONS): Likewise.
7181
7182         * sysv4.h (SUBTARGET_SWITCHES): Add descriptions.
7183         (SUBTARGET_OPTIONS): Likewise.
7184
7185         * rs6000.md: Fix compile time warnings.
7186
7187         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7188
7189         vxworks patches from the Cygnus tree originally by
7190         Michael Meissner <meissner@cygnus.com> and Vladimir Makarov
7191         <vmakarov@cygnus.com>.
7192         * sysv4.h (SUBTARGET_SWITCHES): Add vxworks.
7193         (ENDFILE_SPEC): Likewise.
7194         (LIB_VXWORKS_SPEC): New macro.
7195         (STARTFILE_VXWORKS_SPEC): New macro.
7196         (ENDFILE_VXWORKS_SPEC): New macro.
7197         (LINK_START_VXWORKS_SPEC): New macro.
7198         (LINK_OS_VXWORKS_SPEC): New macro.
7199         (CPP_OS_VXWORKS_SPEC): New macro.
7200         (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs.
7201         * vxppc.h: Rewrite to use proper configuration method.
7202         * vxppcle.h: New file.
7203         * ../../configure.in: Add powerpcle-wrs-vxworks*.
7204         * ../../configure: Rebuilt.
7205
7206         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7207
7208         Lots of changes to rs6000.h, sysv4.h, aix.h,
7209         aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h,
7210         with the aim that rs6000.h is the first header
7211         included and the others override it.
7212         * aix.h: New file.
7213
7214         * x-aix41-gld: Remove.
7215         * x-aix43: Remove.
7216         * x-aix41: Remove target-specific switches, and don't specify
7217         -Wl,-bbigtoc as we don't need it any more.
7218         * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above.
7219         Use t-aix43 for AIX 4.3 and above.
7220         * ../../configure: Regenerated.
7221
7222         * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling
7223         options, that don't do anything yet.
7224         (MASK_SCHED_PROLOG): New macro.
7225         (MASK_SCHED_EPILOG): New macro.
7226         (TARGET_SCHED_PROLOG): New macro.
7227         (TARGET_SCHED_EPILOG): New macro.
7228
7229         2000-01-04  Geoff Keating  <geoffk@cygnus.com>
7230
7231         * rs6000.c: Correct comment, the `minimal' TOCs are actually
7232         one per translation unit, not one per function.
7233         (output_toc): Also do duplicate constant elimination
7234         for per-translation-unit TOCs.
7235
7236         * rs6000.md (nonlocal_goto_receiver): Put it back as before.  Add
7237         a comment explaining _exactly_ when this pattern gets used.
7238         (builtin_setjmp_receiver): New pattern for better clarity.
7239         (init_v4_pic): Move it into a section dealing with TOC registers.
7240
7241         1999-12-30  Geoff Keating  <geoffk@cygnus.com>
7242
7243         * rs6000.c (toc_hash_table): New variable.
7244         (rs6000_hash_constant): New function.
7245         (toc_hash_function): New function.
7246         (toc_hash_eq): New function.
7247         (toc_hash_mark_entry): New function.
7248         (toc_hash_mark_table): New function.
7249         (output_toc): Don't output duplicate TOC entries in
7250         a single file.
7251         (rs6000_add_gc_roots): Add the hash table as a GC root.
7252         * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43,
7253         where they clearly shouldn't be.  This may need to be fixed
7254         later when there is a GNU ar for AIX.
7255         * x-aix43: Don't define CLIB or AR_FOR_TARGET.
7256         Don't define BOOT_LDFLAGS as it is now not necessary.
7257
7258         1999-12-29  Geoff Keating  <geoffk@cygnus.com>
7259
7260         * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *'
7261         for va_list on AIX.  Use unsigned_char_type_node rather than
7262         constructing our own version on svr4.
7263
7264         1999-12-17  Geoff Keating  <geoffk@cygnus.com>
7265
7266         * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment,
7267         since patently it's not.
7268
7269         1999-12-08  Geoff Keating  <geoffk@cygnus.com>
7270
7271         * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into
7272         define_expand/define_insn pair, and handle restore of the
7273         SVR4 -fpic register.
7274
7275 Wed Mar 15 15:43:38 2000  Jeffrey A Law  (law@cygnus.com)
7276
7277         * acconfig.h (HAVE_GAS_WEAK): New define.
7278         * configure.in (assembler weak support): Check for .weak support.
7279         * config.in, configure: Rebuilt.
7280         * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if
7281         HAVE_GAS_WEAK is defined.
7282
7283 2000-03-15  Nick Clifton  <nickc@cygnus.com>
7284
7285         * config/arm/arm.c (arm_output_epilogue): Do not pass %c to
7286         asm_fprintf().
7287
7288 2000-03-15  Zack Weinberg  <zack@wolery.cumb.org>
7289
7290         * cppfiles.c (open_include_file): New function.
7291         (find_include_file, cpp_read_file): Use it.
7292
7293 2000-03-15  Jason Merrill  <jason@casey.cygnus.com>
7294
7295         * cpphash.c (dump_hash_helper): Take the slot, not the element.
7296
7297 Wed Mar 15 14:28:54 2000  Jason Eckhardt  <jle@cygnus.com>
7298
7299         * flow.c (verify_flow_info): Check for unconditional return.
7300
7301 Wed Mar 15 11:34:27 2000  Jim Wilson  <wilson@cygnus.com>
7302
7303         * config/ia64/ia64.md (restore_stack_nonlocal): New.
7304         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop.
7305         (__ia64_restore_stack_nonlocal): New.
7306         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal.
7307
7308 2000-03-15  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
7309
7310         * cpphash.c (collect_formal_parameters): Do not complain about
7311         parameter names that just start with `__VA_ARGS__'.
7312
7313 Wed Mar 15 13:26:58 MET 2000  Jan Hubicka  <jh@suse.cz>
7314
7315         * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and
7316         movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines.
7317         * i386.c (pentiumpro_cost): Set mul cost to 4.
7318         (x86_use_movx): Set for PPro.
7319
7320 Wed Mar 15 13:07:05 MET 2000  Jan Hubicka  <jh@suse.cz>
7321
7322         * i386.md (ix86_compute_frame_size): stack_alignment_needed is
7323         STACK_BOUNDARY for empty frames now.
7324
7325 2000-03-14  Mark Mitchell  <mark@codesourcery.com>
7326
7327         * stor-layout.c (layout_union): Remove.
7328         (layout_union_field): New function, split out from layout_union.
7329         (finish_union_layout): Likewise.
7330         (layout_field): Handle unions by calling layout_union_field.
7331         (finish_record_layout): Handle unions.
7332         (layout_type): Combine RECORD_TYPE, UNION_TYPE, and
7333         QUAL_UNION_TYPE handling.
7334
7335 Wed Feb 23 13:00:06 CET 2000  Jan Hubicka  <jh@suse.cz>
7336
7337         * flow.c (fixup_reorder_chain): Avoid double labels in the basic block;
7338         end of basic block is jump_insn, not barrier; use create_basic_block
7339         instead of creating basic block by hand.
7340
7341 2000-03-14  Jason Eckhardt  <jle@cygnus.com>
7342
7343         * flow.c (reorder_basic_blocks): Account for barriers when writing
7344         over NEXT_INSN (last_bb->end).
7345         (verify_flow_info): Add check for missing barriers.
7346
7347 2000-03-14  Greg McGary  <gkm@gnu.org>
7348
7349         * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED.
7350         * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED.
7351         * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__,
7352         __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__,
7353         __unbounded, __unbounded__): New keywords.
7354         * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens.
7355         * c-parse.y, c-parse.c, c-parse.h: Regenerate.
7356         * objc/objc-parse.y, objc/objc-parse.c: Regenerate.
7357
7358 2000-03-14  Bernd Schmidt  <bernds@cygnus.co.uk>
7359
7360         * cselib.h: New file.
7361         * alias.c: Include "cselib.h".
7362         (fixed_scalar_and_varying_struct_p): Accept the addresses of the
7363         MEMs as two new arguments.
7364         (get_addr): New static function.
7365         (find_base_term): Handle VALUEs.
7366         (memrefs_conflict_p): Likewise.
7367         (true_dependence): Call get_addr on the addresses.
7368         Call fixed_scalar_and_varying_struct_p with addresses that have been
7369         passed through get_addr and canon_rtx.
7370         (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency
7371         with true_dependence.
7372         Call get_addr on the addresses; don't call canon_rtx on the MEMs.
7373         * loop.c: Include "cselib.h".
7374         (load_mems): Process extended basic block that enters the loop with
7375         cselib.  Use that information to change initialization of the shadow
7376         register so that a constant equivalence is seen by later passes.
7377         * reload1.c: Include "cselib.h".
7378         (reload_cse_invalidate_regno): Delete function.
7379         (reload_cse_mem_conflict_p): Likewise.
7380         (reload_cse_invalidate_mem): Likewise.
7381         (reload_cse_invalidate_rtx): Likewise.
7382         (reload_cse_regno_equal_p): Likewise.
7383         (reload_cse_check_clobber): Likewise.
7384         (reload_cse_record_set): Likewise.
7385         (reg_values): Delete static variable.
7386         (invalidate_regno_rtx): Likewise.
7387         (reload_cse_delete_noop_set): New static function.
7388         (reload_cse_simplify): New static function, broken out of
7389         reload_cse_regs_1.
7390         (reload_cse_noop_set_p): Delete unused argument INSN.
7391         Just call rtx_equal_for_cselib_p on set source and destination.
7392         (reload_cse_regs_1): Break out some code into reload_cse_simplify and
7393         reload_cse_delete_noop_set.  Delete code to keep track of values; use
7394         cselib functions instead.  Delete code to push/pop obstacks.
7395         (reload_cse_simplify_set): Use cselib to find equivalent values.
7396         Delete code to push/pop obstacks.
7397         (reload_cse_simplify_operands): Likewise.
7398         * rtl.def (VALUE): New rtx code.
7399         * rtl.h (union rtunion_def): New elt rt_cselib.
7400         (X0CSELIB, CSELIB_VAL_PTR): New macros.
7401         * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h".
7402         (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table,
7403         unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values,
7404         discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p,
7405         hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash,
7406         cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno,
7407         cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx,
7408         cselib_record_set, cselib_record_sets): New static functions.
7409         (cselib_lookup, cselib_update_varray_sizes, cselib_init,
7410         cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p,
7411         references_value_p): New functions.
7412         (MAX_USELESS_VALUES, REG_VALUES): New macros.
7413         (table, cselib_current_insn, next_unknown_value, cselib_nregs,
7414         n_useless_values, reg_values, callmem, cselib_obstack,
7415         cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists):
7416         New static variables.
7417         * varray.h (union varray_data_tag): New elt te.
7418         (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros.
7419         * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update
7420         dependencies.
7421
7422 2000-03-14  Nick Clifton  <nickc@cygnus.com>
7423
7424         * gcc.c (do_spec_1): Catch the case where %* is used in a
7425         substitution pattern, but it has not been initialised.
7426         Issue a meaningful error message if an unrecognised operator
7427         is encountered in a spec string.
7428
7429 2000-03-14  Richard Earnshaw <rearnsha@arm.com>
7430
7431         * function.c (prepare_function_start): Correctly initialize
7432         cfun->stack_alignment_needed.
7433
7434 2000-03-14  Zack Weinberg  <zack@wolery.cumb.org>
7435
7436         * cppfiles.c (find_include_file): Don't assume nshort is a
7437         substring of name.
7438
7439 Tue Mar 14 08:42:21 2000  Jeffrey A Law  (law@cygnus.com)
7440
7441         * configure.in (hppa configurations): Add pa32-regs.h to the
7442         list of tm files as appropriate.
7443         * configure: Rebuilt.
7444         * pa.c (compute_frame_size): Remove explicit knowledge about FP
7445         register numbering.
7446         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
7447         (fmpyaddoperands, fmpysuboperands): Likewise.
7448         * pa.h: Remove various definitions which depend on knowing
7449         how registers are numbered.
7450         * pa32-regs.h: New file with PA32 register numbering specific
7451         definitions.
7452
7453 2000-03-14  Richard Henderson  <rth@cygnus.com>
7454
7455         * regmove.c (combine_stack_adjustments): New.
7456         (stack_memref_p, single_set_for_csa): New.
7457         (free_csa_memlist, record_one_stack_memref): New.
7458         (try_apply_stack_adjustment): New.
7459         (combine_stack_adjustments_for_block): New.
7460         * rtl.h (combine_stack_adjustments): Declare.
7461         * toplev.c (rest_of_compilation): Call it.
7462
7463         * i386.md: Revert 2000-01-16 change.
7464
7465 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7466
7467         * gccbug.in: Add web category, gcc specific classes.
7468
7469 2000-03-14  Nathan Sidwell  <nathan@codesourcery.com>
7470
7471         * stor-layout.c (finalize_record_size): Fix typo.
7472
7473 2000-03-14  Stan Shebs  <shebs@apple.com>
7474
7475         * c-typeck.c (c_alignof): Error on incomplete types.
7476         * extend.texi (Alignment): Document this.
7477
7478 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7479
7480         * cppfiles.c: Include mkdeps.h.
7481         (find_include_file, read_include_file): Remove _cpp_ prefix
7482         from name, make static.
7483         (_cpp_execute_include): New function, broken out of
7484         do_include.
7485
7486         * cpplib.c: Don't include mkdeps.h.
7487         (struct directive): Remove type field. Reorder entries.  The
7488         function takes only one argument.
7489         (struct if_stack): Make type field an int.
7490         (directive_table): Rename to dtable.  Generate it, the
7491         prototypes of the directive handlers, and the enum for the
7492         directive numbers, from a template macro.
7493         (do_ifndef, do_include_next, do_import): New functions.
7494         (do_define, do_include, do_endif, do_ifdef, do_if, do_else,
7495         do_undef, do_line, do_elif, do_error, do_pragma, do_warning,
7496         do_ident, do_assert, do_unassert, do_sccs): Take only one
7497         argument.
7498         (do_sccs): Define always, but alter behavior based on
7499         SCCS_DIRECTIVE.
7500         (_cpp_handle_directive, consider_directive_while_skipping):
7501         Restructure for new directive table layout.
7502
7503         (pass_thru_directive): Take a directive number, not a pointer
7504         to a struct directive.
7505         (parse_include): New function, broken out of do_include.
7506         (do_include, do_import, do_include_next): Use parse_include
7507         and _cpp_execute_include.
7508         (do_elif, do_else): Test for T_ELSE specifically when checking
7509         for #elif/#else after #else.
7510         (parse_ifdef): New function, broken out of do_ifdef.
7511         (validate_else): Expect a name arg without a leading #.
7512         (if_directive_name): Delete.
7513         (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call
7514         directive handlers with only one argument.
7515
7516         * cpphash.h: Update prototypes.
7517         (enum node_type): Remove entries for directives.
7518         * Makefile.in: Update dependencies.
7519
7520         * cpphash.c (dump_hash_helper): Only dump nodes of type
7521         T_MACRO.  Emit a newline after each definition.
7522
7523 2000-03-14  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
7524
7525         * gccbug.in: New file.
7526         * configure.in (all_outputs): Add gccbug.
7527         * Makefile.in (install-common): Install gccbug.
7528         (GCCBUG_INSTALL_NAME): New variable.
7529         * configure: Rebuilt.
7530
7531 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
7532
7533         * function.c (put_var_into_stack): Use type_for_mode to calculate
7534         part_type.  Use MEM_SET_IN_STRUCT_P.
7535         * expr.c (store_field): Handle CONCAT.
7536         (store_constructor): Use fields_length.
7537         * tree.c (fields_length): New fn.
7538         * tree.h: Declare it.
7539
7540 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7541
7542         * Makefile.in (LIBCPP_OBJS): Add cpplex.o.
7543         (cpplex.o): New target.
7544         * po/POTFILES.in: Add cpplex.c.
7545
7546         * cpplex.c (_cpp_grow_token_buffer, null_cleanup,
7547         cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer,
7548         cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer,
7549         skip_block_comment, skip_line_comment, skip_comment,
7550         copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line,
7551         _cpp_parse_name, skip_string, parse_string,
7552         _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token,
7553         _cpp_get_directive_token, find_position,
7554         _cpp_read_and_prescan, _cpp_init_input_buffer): Move here.
7555         (maybe_macroexpand, _cpp_lex_token): New functions.
7556
7557         * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark,
7558         parse_goto_mark): Delete.
7559         (_cpp_handle_eof): New function.
7560         (_cpp_handle_directive): Rename from handle_directive.
7561         (_cpp_output_line_command): Rename from output_line_command.
7562         (do_if, do_elif): Call _cpp_parse_expr directly.
7563         * cppfiles.c (_cpp_read_include_file): Don't call
7564         init_input_buffer here.
7565         * cpphash.c (quote_string): Move here, rename _cpp_quote_string.
7566         * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive
7567         here; pop the token_buffer and skip the rest of the line here.
7568         * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer
7569         here.
7570
7571         * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P):
7572         Define here.
7573         (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK,
7574         CPP_GOTO_MARK): New macros.
7575         (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line,
7576         _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token,
7577         _cpp_read_and_prescan, _cpp_init_input_buffer,
7578         _cpp_grow_token_buffer, _cpp_get_directive_token,
7579         _cpp_handle_directive, _cpp_handle_eof,
7580         _cpp_output_line_command): Prototype them here.
7581         * cpplib.h (enum cpp_token): Add CPP_MACRO.
7582         (CPP_RESERVE, get_directive_token, cpp_grow_buffer,
7583         quote_string, output_line_command): Remove.
7584
7585 2000-03-13  Bernd Schmidt  <bernds@cygnus.co.uk>
7586
7587         * stmt.c (expand_end_case): RANGE may be signed, and when checking
7588         whether it is too large we must also verify that it isn't negative.
7589
7590 2000-03-13  Jakub Jelinek  <jakub@redhat.com>
7591
7592         * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0.
7593         (movsi_zero_liveg0): Remove.
7594         (movsf_insn_novis_liveg0): Remove.
7595         (negsi2): Remove.
7596         (negsi2_not_liveg0): Rename to negsi2.
7597         (one_cmplsi2): Remove.
7598         (one_cmplsi2_not_liveg0): Rename to one_cmplsi2.
7599         (one_cmplsi2_liveg0): Remove.
7600         * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE,
7601         MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove.
7602         (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if.
7603         (PREDICATE_CODES): Remove zero_operand.
7604         * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and
7605         TARGET_BROKEN_SAVERESTORE.
7606         (zero_operand): Remove.
7607         * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0,
7608         -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore
7609         options.
7610         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
7611         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
7612         TARGET_BROKEN_SAVERESTORE): Remove.
7613         * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7614         Remove.
7615         * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7616         Remove.
7617         * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE):
7618         Remove.
7619
7620         * config/sparc/sparc.md (return_df_no_fpu): New pattern.
7621
7622 2000-03-13  Zack Weinberg  <zack@wolery.cumb.org>
7623
7624         * cpplib.c (do_pragma_implementation): Fix off-by-one error
7625         truncating a string.  Don't assume tokens are nul terminated.
7626         Problem noted by Andreas Jaeger <aj@suse.de>
7627
7628 2000-03-13  Jason Merrill  <jason@casey.cygnus.com>
7629
7630         * dwarf2out.c (add_name_and_src_coords_attributes): Only add
7631         DW_AT_MIPS_linkage_name for TREE_PUBLIC decls.
7632         (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline.
7633
7634 2000-03-13  Richard Earnshaw <rearnsha@arm.com>
7635
7636         * stor-layout.c (new_record_layout_info): Fix typo inside ifdef
7637         STRUCTURE_SIZE_BOUNDARY.
7638
7639 2000-03-13  Mark Mitchell  <mark@codesourcery.com>
7640
7641         * tree.h (record_layout_info_s): New structure.
7642         (record_layout_info): New type.
7643         (new_record_layout_info): New function.
7644         (layout_field): Likewise.
7645         (finish_record_layout): Likewise.
7646         * stor-layout.c (layout_record): Remove.
7647         (new_record_layout_info): New function.
7648         (layout_field): New function, broken out from layout_record.
7649         (finalize_record_size): Likewise.
7650         (compute_record_mode): Likewise.
7651         (finalize_type_size): New function, broken out from layout_type.
7652         (finish_record_layout): Likewise.
7653         (layout_type): Use them.
7654
7655 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
7656
7657         * cpphash.c: Don't include version.h.
7658         (special_symbol) [case T_VERSION]: Look for the string in
7659         hp->value.cpval; don't use version_string.
7660         * cppinit.c (initialize_builtins): Set hp->value.cpval for
7661         __VERSION__ to version_string.
7662         * Makefile.in (cpphash.o): Update deps.
7663
7664 2000-03-12  Zack Weinberg  <zack@wolery.cumb.org>
7665
7666         Convert cpplib to use libiberty/hashtab.c.
7667
7668         * cpplib.h (struct cpp_reader): Make hashtab and
7669         all_include_files of type 'struct htab *'.  Delete HASHSIZE
7670         and ALL_INCLUDE_HASHSIZE macros.
7671
7672         * cpphash.h: Update prototypes.
7673         (struct hashnode): Remove next, prev, and bucket_hdr members.
7674         Make length a size_t.  Add hash member.
7675         (struct ihash): Remove next member.  Add hash member.  Make
7676         name a flexible array member.
7677
7678         * cppfiles.c: Include hashtab.h.
7679         (include_hash): Delete.
7680         (IHASHSIZE): New macro.
7681         (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions.
7682         (cpp_included): Do the hash lookup here.
7683         (_cpp_find_include_file): Rewrite.
7684         (cpp_read_file): Put the "fake" hash entry into the hash
7685         table.  Honor the control_macro, if it turns out we've seen
7686         the file before.  Don't push the buffer here.
7687         (_cpp_read_include_file): Push the buffer here.
7688         (OMODES): New macro.  Use it whenever we call open(2).
7689
7690         * cpphash.c: Include hashtab.h.
7691         (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper,
7692         _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode,
7693         _cpp_lookup_slot): New functions.
7694         (HASHSIZE): new macro.
7695         (hashf, _cpp_install, _cpp_delete_macro): Delete.
7696         (_cpp_lookup): Use hashtab.h routines.
7697
7698         * cppinit.c: Include hashtab.h.
7699         (cpp_reader_init): Call _cpp_init_macro_hash and
7700         _cpp_init_include_hash.  Don't allocate hashtab directly.
7701         (cpp_cleanup): Just call htab_delete on pfile->hashtab and
7702         pfile->all_include_files.
7703         (initialize_builtins): Use _cpp_make_hashnode and
7704         htab_find_slot to add hash entries.
7705         (cpp_finish): Just call _cpp_dump_macro_hash.
7706         * cpplib.c: Include hashtab.h.
7707         (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to
7708         create hash entries.
7709         (do_pragma_poison, do_assert): Likewise.
7710         (do_include): Don't push the buffer here.  Don't increment
7711         system_include_depth unless _cpp_read_include_file succeeds.
7712         (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot
7713         or htab_remove_elt.
7714         (do_pragma_implementation): Use alloca to create copy.
7715
7716         * Makefile.in: Update dependencies.
7717
7718 2000-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7719
7720         * cppinit.c (cl_directive_handler): More K&R fixing.
7721
7722 Sat Mar 11 23:54:26 2000  Jim Wilson  <wilson@cygnus.com>
7723
7724         * config/ia64/ia64.c (ia64_compute_frame_size): Align size to
7725         STACK_BOUNDARY.
7726         * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses.
7727
7728 2000-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7729
7730         * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth):
7731         Change from char[] to macros.
7732
7733 2000-03-12  Neil Booth  <NeilB@earthling.net>
7734
7735         * cppinit.c (cpp_start_read): Update indirect function
7736         call to K&R C.
7737
7738 Sat Mar 11 16:18:12 2000  Jim Wilson  <wilson@cygnus.com>
7739
7740         * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79
7741         entry.
7742
7743         * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
7744         config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages.
7745
7746 2000-03-11  Neil Booth  <NeilB@earthling.net>
7747
7748         * cppinit.c (struct pending option): Replace undef with a
7749         pointer to a directive handling routine.
7750         (struct cpp_pending): Replace separate assert_ and define_
7751         lists with one directive_ list.
7752         (new_pending_define): Rename new_pending_directive. Extra
7753         argument is the directive's handling routine.
7754         (handle_option): Update to use new_pending_directive.
7755
7756 2000-03-11  Neil Booth  <NeilB@earthling.net>
7757
7758         * cppfiles.c (file_cleanup, _cpp_find_include_file,
7759         remap_filename, _cpp_read_include_file, actual_directory,
7760         hack_vms_include_specification): Replace bcopy(), index() etc
7761         calls.  Add casts to some allocations.  Make some variables
7762         pointers to const [unsigned] char.
7763         * cpphash.c (_cpp_install, macro_cleanup, collect_expansion,
7764         collect_formal_parameters): Similarly.
7765         * cppinit.c (struct pending_option, append_include_chain,
7766         cpp_options_init, cpp_reader_init, initialize_standard_includes,
7767         cpp_start_read, new_pending_define, handle_option): Similarly.
7768         * cpplib.c (cpp_define, copy_comment, do_define, do_include,
7769         do_undef, do_error, do_warning, do_pragma, do_pragma_once,
7770         do_pragma_implementation, detect_if_not_defined,
7771         do_ifdef, skip_if_group, cpp_get_token, parse_string,
7772         do_assert, do_unassert): Similarly.
7773         * cpplib.h (cpp_buffer, cpp_options): Update types.  Update
7774         function prototypes.
7775         * mkdeps.c (deps_add_target, deps_add_dep): cast allocations.
7776
7777 2000-03-10  Richard Henderson  <rth@cygnus.com>
7778
7779         * builtins.c (expand_builtin_strlen): Revert last change.
7780         Use emit_insn_before if we're at the beginning of a sequence.
7781
7782 2000-03-10  Jason Merrill  <jason@casey.cygnus.com>
7783
7784         * builtins.c (expand_builtin_strlen): Make sure that we have something
7785         at the beginning of the sequence.
7786
7787         * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for
7788         deferred inlines.
7789
7790         * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs.
7791
7792 2000-03-10  Richard Henderson  <rth@cygnus.com>
7793
7794         * except.c (can_throw): Use INTVAL on a CONST_INT.
7795         (reachable_handlers): Likewise.
7796         * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise.
7797
7798 2000-03-10  Andreas Jaeger  <aj@suse.de>
7799
7800         * config/mips/linux.h: Undefine MD_EXEC_PREFIX and
7801         MD_STARTFILE_PREFIX since those are not needed on linux.
7802         (ASM_FILE_START): New, from mips/gnu.h.
7803
7804 2000-03-09  Richard Henderson  <rth@cygnus.com>
7805             Alex Samuel  <samuel@codesourcery.com> and others
7806
7807         * Makefile.in (ssa.o): New rule.
7808         (OBJS): Add ssa.o.
7809         (STAGESTUFF): Add *.ssa and *.ussa.
7810         (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa.
7811         * rtl.def (PHI): New RTL expression.
7812         * rtl.h (clear_log_links): New declaration.
7813         (convert_to_ssa): Likewise.
7814         (convert_from_ssa): Likewise.
7815         * flow.c (split_edge): If the entry node falls through to the
7816         split edge's source block, split the entry edge.
7817         (clear_log_links): New function.
7818         * toplev.c (ssa_dump): New variable.
7819         (flag_ssa): Likewise.
7820         (f_options): Add "ssa".
7821         (compile_file): Create SSA dump files.
7822         (rest_of_compilation): Go to and from SSA if enabled.
7823         (decide_d_option): Handle -de for SSA dump files.
7824         * ssa.c: New file.
7825
7826 Thu Mar  9 20:01:38 2000  Jim Wilson  <wilson@cygnus.com>
7827
7828         * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL
7829         same as VAR_DECL.
7830
7831 2000-03-09  Benjamin Kosnik  <bkoz@cygnus.com>
7832
7833         * config/alpha/linux.h (WCHAR_TYPE): Make consistent.
7834
7835 Thu Mar  9 18:10:02 2000  Jeffrey A Law  (law@cygnus.com)
7836
7837         * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case.
7838         (MD_STARTFILE_PREFIX_1): New macro.
7839
7840 2000-03-09  Robert Lipe  <robertl@sco.com>
7841
7842         * config/ia64/ia64.c: Include system.h.
7843
7844 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
7845
7846         * except.c (nothrow_function_p): If -fno-exceptions, just return.
7847         (init_eh_nesting_info): Likewise.
7848
7849         * tree.h (struct tree_common): Rename raises_flag to nothrow_flag.
7850         (TREE_NOTHROW): Rename from TREE_RAISES.
7851         * toplev.c (rest_of_compilation): Set it.
7852         * print-tree.c (print_node): Adjust.
7853         * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES.
7854         (stabilize_reference_1, get_unwidened, get_narrower): Likewise.
7855         * calls.c (emit_call_1): Add 'nothrow' parm.  Add
7856         REG_EH_REGION note as appropriate.
7857         (libfunc_nothrow): New fn.
7858         (emit_library_call, emit_library_call_value): Use it.
7859         (expand_call): Check TREE_NOTHROW.
7860
7861         * varasm.c (make_decl_rtl): Skip initial '*' when setting
7862         DECL_ASSEMBLER_NAME.
7863
7864 2000-03-09  Andreas Jaeger  <aj@suse.de>
7865
7866         * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define.
7867         (TARGET_MEM_FUNCTIONS): Define.
7868
7869 2000-03-09  Jason Merrill  <jason@casey.cygnus.com>
7870
7871         * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int.
7872
7873         * except.c (can_throw): See through a SEQUENCE.
7874         (nothrow_function_p): New fn.
7875         * except.h: Declare it.
7876         * function.c (current_function_nothrow): New var.
7877         (prepare_function_start): Initialize it.
7878         * output.h: Declare it.
7879         * toplev.c (rest_of_compilation): Set it.
7880         * dwarf2out.c (dwarf2out_begin_prologue): Use it.
7881
7882 2000-03-09  Zack Weinberg  <zack@wolery.cumb.org>
7883
7884         * cpphash.c (collect_formal_parameters): strncmp returns 0 for
7885         match.  (cpp_compare_defs): Count the nul separator when
7886         advancing over argument names.
7887
7888 2000-03-09  Bernd Schmidt  <bernds@cygnus.co.uk>
7889
7890         * recog.c (preprocess_constraints): Matching constraints affect
7891         same alternative/different operand, not same operand/different
7892         alternative.
7893
7894         * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable
7895         register and a constant specially.
7896
7897 2000-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7898
7899         * libgcc2.h: New file.
7900         * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h.
7901
7902 Wed Mar  8 16:19:42 2000  Jim Wilson  <wilson@cygnus.com>
7903
7904         * configure.in (ia64*-*-elf*, ia64*-*-linux*): New.
7905         * configure: Regenerate.
7906         * config/ia64: New.
7907
7908 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
7909
7910         * Makefile.in (LIBCPP_DEPS): New macro.
7911         (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use
7912         it to declare deps.
7913         * cpperror.c: Include cpphash.h.
7914         * cppexp.c: Include cpphash.h.  Remove MULTIBYTE_CHARS
7915         dingleberry.
7916         (lex): Don't use CPP_WARN_UNDEF.
7917         (_cpp_parse_expr): Return an int, the truth value.
7918         * cppfiles.c: Include cpphash.h.
7919         (_cpp_merge_include_chains): Move to cppinit.c and make static.
7920         * cppinit.c (include_defaults_array): Disentangle.
7921         (cpp_cleanup): Don't free the if stack here.
7922         (cpp_finish): Pop off all buffers, not just one.
7923         * cpplib.c (eval_if_expr): Return int.
7924         (do_xifdef): Rename do_ifdef.
7925         (handle_directive): Don't use CPP_PREPROCESSED.
7926         (cpp_get_token): Don't use CPP_C89.
7927         * fix-header.c: Don't use CPP_OPTIONS.
7928
7929         * cpplib.h: Move U_CHAR, enum node_type, struct
7930         file_name_list, struct ihash, is_idchar, is_idstart,
7931         is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK,
7932         CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC,
7933         CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q,
7934         CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER,
7935         CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes
7936         of _cpp_simplify_pathname, _cpp_find_include_file,
7937         _cpp_read_include_file, and _cpp_parse_expr to cpphash.h.
7938         Move struct if_stack to cpplib.c.  Move struct cpp_pending to
7939         cppinit.c.
7940         Change all uses of U_CHAR to be unsigned char instead.
7941         Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED.
7942
7943 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
7944
7945         * dwarf2out.c (dw_fde_struct): Add 'nothrow'.
7946         (dwarf2out_begin_prologue): Set it.
7947         (output_call_frame_info): Don't emit EH unwind info for leaves.
7948
7949         * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow
7950         can occur outside of an EH region.
7951         * except.c: Correct comments about rethrow behavior.
7952         (rethrow_symbol_map): Do nothing if !flag_new_exceptions.
7953
7954 2000-03-08  Andrew MacLeod  <amacleod@cygnus.com>
7955
7956         * flow.c (make_edges): Always call make_eh_edge for calls.
7957
7958 2000-03-08  Zack Weinberg  <zack@wolery.cumb.org>
7959
7960         * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete.
7961         (struct cpp_buffer): Remove fname and underflow fields.
7962         (struct cpp_reader): Remove get_token field.
7963         (struct include_hash): Rename to struct ihash.  Add typedef to
7964         IHASH.
7965         (struct if_stack): Remove fname field.
7966         (IF_STACK_FRAME): Rename to IF_STACK.
7967
7968         * cpperror.c (print_containing_files): Trust that there are no
7969         macro buffers below the top file buffer.
7970         * cppfiles.c: Replace all references to 'struct include_hash'
7971         with 'IHASH'.  Rename initialize_input_buffer to
7972         init_input_buffer.  Don't set or reference cpp_buffer->fname,
7973         use buffer->ihash->name instead.
7974         * cpphash.c (special_symbol): Use cpp_file_buffer.  Use NULL
7975         not CPP_NULL_BUFFER.
7976         * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not
7977         IF_STACK_FRAME, IHASH not struct include_hash.
7978         * cpplib.c: Rename eval_if_expression to eval_if_expr.  Remove
7979         null_underflow.  Use IF_STACK not IF_STACK_FRAME, IHASH not
7980         struct include_hash, NULL not CPP_NULL_BUFFER.  Remove all
7981         references to cpp_buffer->fname (delete entirely, or use
7982         ->ihash->name instead) and IF_STACK->fname.
7983         (cpp_push_buffer): Don't set new->underflow.
7984         (do_include): Use cpp_file_buffer.
7985
7986         * cpphash.c (collect_formal_parameters): Remove duplicate
7987         increment of argslen.  Pedwarn in C99 mode if __VA_ARGS__ is
7988         used as a macro argument name.  Don't append "..." to namebuf
7989         for varargs macros.  After we're done scanning, go through
7990         namebuf and make it NUL separated, not comma separated.
7991         (_cpp_compare_defs): Remove register tag from variables.
7992         Expect defn->argnames to be NUL separated.
7993         (_cpp_dump_definition): Expect defn->argnames to be NUL
7994         separated and in forward order.
7995         * cpphash.h: Update documentation of argnames field.
7996
7997 2000-03-08  Richard Henderson  <rth@cygnus.com>
7998
7999         * builtins.c (expand_builtin_strlen): Be prepared for strlensi
8000         to fail.  Don't pre-expand the source operand.
8001
8002         * i386.md (strlensi): Initialize eoschar and align before use.
8003
8004 2000-03-08  Jason Merrill  <jason@casey.cygnus.com>
8005
8006         * expr.c (expand_expr, case ARRAY_REF): Still check for missing
8007         CONSTRUCTOR element.
8008
8009 2000-03-08  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
8010
8011         * mips.c (mips_expand_prologue): If the last
8012         named argument is the vararg marker "va_list", treat it as
8013         an unnamed argument.
8014
8015 2000-03-08  Clinton Popetz  <cpopetz@cygnus.com>
8016
8017         * dbxout.c (dbxout_parms): When correcting for promoted
8018         big-endian parameters, use the mode of the DECL_RTL rather
8019         than UNITS_PER_WORD.
8020
8021 2000-03-08  Nathan Sidwell  <nathan@codesourcery.com>
8022
8023         * c-common.h (make_fname_decl): Declare.
8024         * c-common.c (make_fname_decl): Define.
8025         (declare_hidden_char_array): Remove.
8026         (declare_function_name): Use make_fname_decl.
8027         * c-decl.c (c_make_fname_decl): New function.
8028         (init_decl_processing): Set make_fname_decl.
8029
8030 Tue Mar  7 23:50:31 2000  Jeffrey A Law  (law@cygnus.com)
8031
8032         * cccp.c (handle_directive): Initialize backslash_newlines_p.
8033
8034 2000-03-07  Philipp Thomas  <pthomas@suse.de>
8035
8036         * po/POTFILES.in: Remove cppalloc.c from file list.
8037
8038 2000-03-07  Steve Chamberlain  <sac@pobox.com>
8039
8040         * pj.c (pj_expand_prologue): current_function->args_info is
8041         now current_function_args_info.
8042
8043         * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX,
8044         LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL,
8045         ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define.
8046
8047 2000-03-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8048
8049         * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is
8050         output as hexadecimal rather than the default octal.
8051
8052 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
8053
8054         * cpphash.c (special_symbol): Fix thinko in previous commit.
8055
8056 2000-03-07  Neil Booth  <NeilB@earthling.net>
8057
8058         * cppexp.c (struct operation, left_shift, right_shift,
8059         cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some
8060         "int"s to "unsigned int"s.
8061         * cpplib.c (detect_if_not_defined, do_assert, do_unassert):
8062         Similarly.
8063         * cpplib.h: Update for above.
8064         * mkdeps.c (deps_init, deps_calc_target): Cast pointers
8065         returned from allocations.
8066
8067         * cppinit.c (opt_comp, parse_options): New functions.
8068         (handle_option): Use parse_option to parse a single command
8069         line option, that possibly takes an argument.
8070         (cpp_handle_options): Sort the array of command line options on
8071         first invocation (non-ASCII hosts only).
8072         (print_help): Update.
8073
8074 2000-03-07  Zack Weinberg  <zack@wolery.cumb.org>
8075
8076         * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in
8077         backslash counting loops.  Problem noted by Matt Kraai <kraai@ghs.com>.
8078
8079         * cppfiles.c (_cpp_find_include_file): Make sure ih->name is
8080         initialized.
8081         * cppinit.c (cpp_cleanup): Free imp->nshort also.
8082
8083         * cpperror.c (cpp_print_containing_files,
8084         cpp_print_file_and_line, v_cpp_message): Rename to
8085         print_containing_files, print_file_and_line, and v_message.
8086         * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename
8087         to _cpp_parse_expr, parse_escape, and lex.
8088         (parse_charconst): Remove broken multibyte support.
8089         * cppfiles.c (include_hash): Make static.
8090         (cpp_included): New function.
8091         (merge_include_chains, find_include_file, finclude,
8092         simplify_pathname): Rename to _cpp_merge_include_chains,
8093         _cpp_find_include_file, _cpp_read_include_file, and
8094         _cpp_simplify_pathname.
8095         * cpphash.c (cpp_lookup, free_definition, delete_macro,
8096         cpp_install, create_definition, macroexpand, compare_defs,
8097         dump_definition): Rename to _cpp_lookup, _cpp_free_definition,
8098         _cpp_delete_macro, _cpp_install, _cpp_create_definition,
8099         _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition.
8100         * cppinit.c (cpp_handle_option): Rename to handle_option, make
8101         static.
8102         * cpplib.c: Remove extern prototype of cpp_parse_expr.
8103
8104         * cpphash.h: Update prototypes.
8105         * cpplib.h: Likewise.  Prototype _cpp_parse_expr here.
8106
8107 2000-03-07  Andrew Haley  <aph@cygnus.com>
8108
8109         * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change;
8110         PTRDIFF_TYPE should be based solely on Pmode.
8111         (SIZE_TYPE): ditto.
8112
8113 2000-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8114
8115         * rtl.h (rtunion_def): Constify member `rtstr'.
8116         (emit_line_note_after, emit_line_note, emit_line_note_force,
8117         emit_note, decode_asm_operands): Constify.
8118
8119         * cse.c (canon_hash): Likewise.
8120
8121         * dbxout.c (dbxout_block): Likewise.
8122
8123         * diagnostic.c (file_and_line_for_asm, v_error_for_asm,
8124         v_warning_for_asm): Likewise.
8125
8126         * dwarfout.c (function_start_label): Likewise.
8127
8128         * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note,
8129         emit_line_note_force): Likewise.
8130
8131         * final.c (last_filename, asm_insn_count, final_scan_insn,
8132         output_source_line): Likewise.
8133
8134         * function.h (struct emit_status): Likewise.
8135
8136         * gcse.c (hash_expr_1): Likewise.
8137
8138         * genattr.c (gen_attr, main): Likewise.
8139
8140         * genattrtab.c (struct function_unit, current_alternative_string,
8141         write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq,
8142         attr_numeral, check_attr_test, check_attr_value,
8143         convert_set_attr_alternative, convert_set_attr,
8144         compute_alternative_mask, simplify_by_exploding, gen_attr,
8145         gen_unit): Likewise.
8146
8147         * genflags.c (gen_insn): Likewise.
8148
8149         * gengenrtl.c (type_from_format): Likewise.
8150
8151         * genopinit.c (gen_insn): Likewise.
8152
8153         * genoutput.c (n_occurrences, process_template, process_template):
8154         Likewise.
8155
8156         * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
8157         Likewise.
8158
8159         * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size):
8160         Likewise.
8161
8162         * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable,
8163         ggc_set_mark, ggc_get_size): Likewise.
8164
8165         * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise.
8166
8167         * optabs.c (init_one_libfunc): Likewise.
8168
8169         * output.h (assemble_start_function): Likewise.
8170
8171         * recog.c (decode_asm_operands): Likewise.
8172
8173         * toplev.c (rest_of_compilation): Likewise.
8174
8175         * tree.h (emit_line_note_after, emit_line_note,
8176         emit_line_note_force): Likewise.
8177
8178         * varasm.c (asm_output_bss, asm_output_aligned_bss,
8179         asm_emit_uninitialised, assemble_start_function,
8180         assemble_variable, const_hash, compare_constant_1,
8181         find_pool_constant, mark_constant_pool, assemble_alias): Likewise.
8182
8183         * xcoffout.h (DBX_FINISH_SYMBOL): Likewise.
8184
8185         * alpha/alpha.md (call_vms, call_value_vms): Likewise.
8186
8187         * arm/aof.h (ASM_OUTPUT_ASCII): Likewise.
8188
8189         * arm/aout.h (ASM_OUTPUT_ASCII): Likewise.
8190
8191         * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p,
8192         arm_dllimport_name_p): Likewise.
8193
8194         * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op):
8195         Likewise.
8196
8197         * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise.
8198
8199         * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8200
8201         * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p,
8202         arm_mark_dllexport, arm_mark_dllimport,
8203         arm_pe_encode_section_info): Likewise.
8204
8205         * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS,
8206         ASM_FINISH_DECLARE_OBJECT): Likewise.
8207
8208         * arm/thumb.c (thumb_function_prologue): Likewise.
8209
8210         * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise.
8211
8212         * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8213
8214         * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise.
8215
8216         * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise.
8217
8218         * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise.
8219
8220         * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8221
8222         * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING,
8223         ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise.
8224
8225         * i386/i386-protos.h (asm_output_function_prefix): Likewise.
8226
8227         * i386/i386.c (asm_output_function_prefix): Likewise.
8228
8229         * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise.
8230
8231         * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8232
8233         * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise.
8234
8235         * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT,
8236         ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII,
8237         ASM_OUTPUT_SECTION_NAME): Likewise.
8238
8239         * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise.
8240
8241         * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise.
8242
8243         * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise.
8244
8245         * m32r/m32r.c (m32r_encode_section_info): Likewise.
8246
8247         * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8248
8249         * mcore/mcore.c (mcore_encode_section_info): Likewise.
8250
8251         * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8252
8253         * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8254
8255         * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8256
8257         * mips/mips.h (ASM_OUTPUT_IDENT): Likewise.
8258
8259         * mips/mips.md (movdi, movsi): Likewise.
8260
8261         * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8262
8263         * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8264
8265         * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
8266
8267         * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
8268         ASM_OUTPUT_ASCII): Likewise.
8269
8270         * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog,
8271         output_mi_thunk, output_toc): Likewise.
8272
8273         * rs6000/rs6000.md (movsi): Likewise.
8274
8275         * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise.
8276
8277         * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise.
8278
8279         * v850/v850.c (print_operand, print_operand_address,
8280         v850_encode_data_area): Likewise.
8281
8282 2000-03-07  Clinton Popetz  <cpopetz@cygnus.com>
8283
8284         * config/mips/mips.md (zero_extendsidi2): Always force operand
8285         one to memory for mips16.
8286
8287 Mon Mar  6 15:22:29 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8288
8289         * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts.
8290         (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT.
8291         (attribute_hash_list, type_hash_canon): hashcode is now unsigned.
8292         (type_hash_lookup, type_hash_add, type_hash_list): Likewise.
8293         (min_precision): Result is unsigned.
8294         (add_double, neg_double, mul_double): Low word is unsigned.
8295         (lshift_double, rshift_double, lrotate_double): Likewise.
8296         (rrotate_double, div_and_round_double): Likewise.
8297         (tree_floor_log2, compare_tree_int): New functions.
8298         (preserve_rtl_expr_temps): New declaration.
8299         * c-common.c (declare_hidden_char_array): Use compare_tree_int.
8300         (decl_attributes): Use tree_log2 to find alignment.
8301         Check for TREE_INT_CST_HIGH for format args.
8302         (min_precision): Now unsigned.
8303         Use tree_floor_log2.
8304         (truthvalue_conversion): Delete long-disabled code.
8305         * c-decl.c (finish_struct): Clean up tests on field width.
8306         (finish_function): Use compare_tree_int.
8307         * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment.
8308         * c-typeck.c (comptypes): Use tree_int_cst_equal.
8309         (default_conversion, digest_init): Use compare_tree_int.
8310         (build_binary_op): Use integer_all_onesp and compare_tree_int.
8311         Fix type errors in forming masks.
8312         * calls.c (initialize_argument_information): Use compare_tree_int.
8313         * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
8314         * except.c (expand_eh_region_start_tree): Use compare_tree_int.
8315         * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop.
8316         (store_field): Use compare_tree_int.
8317         (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT.
8318         (expand_expr, case ARRAY_REF): Use compare_tree_int.
8319         (do_jump, case BIT_AND_EXPR): Use tree_floor_log2.
8320         (do_store_flag): Use compare_tree_int.
8321         * fold-const.c (encode, decode): Low part is always unsigned.
8322         (force_fit_type, add_double, neg_double, mul_double): Likewise.
8323         (lshift_double, rshift_double, lrotate_double): Likewise.
8324         (rrotate_double, div_and_round_double, int_const_binop): Likewise.
8325         (fold_convert): Use compare_tree_int.
8326         (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal.
8327         (invert_truthvalue, case INTEGER_CST): Likewise.
8328         (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW.
8329         * mkdeps.c (deps_dummy_targets): Make I unsigned.
8330         * rtl.h (add_double, neg_double, mul_double): Low words are unsigned.
8331         (lshift_double, rshift_double, lrotate_double, rrotate_double):
8332         Likewise.
8333         * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree.
8334         (expand_end_case): Use compare_tree_int.
8335         (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT.
8336         * stor-layout.c (mode_for_size_tree): Use compare_tree_int.
8337         (layout_decl): Likewise.
8338         (layout_record, layout_union): Make sizes unsigned.
8339         (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype.
8340         (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int.
8341         * tree.c (struct type_hash): hashcode is unsigned.
8342         (build_type_attribute_variant, type_hash_list): Likewise.
8343         (type_hash_lookup, type_hash_add, type_hash_canon): Likewise.
8344         (attribute_hash_list, build_array_type, build_method_type): Likewise.
8345         (build_complex_type): Likewise.
8346         (real_value_from_int_cst): Remove unneeded casts.
8347         (integer_all_onesp): Add casts.
8348         (tree_floor_log2, compare_tree_int): New functions.
8349         (build_index_type): Use tree_int_cst_sgn.
8350         * varasm.c (assemble_variable): Use compare_tree_int.
8351
8352 2000-03-06  Jason Merrill  <jason@casey.cygnus.com>
8353
8354         * cpphash.c (collect_expansion): Also catch ## at start of macro.
8355
8356         * varasm.c (make_decl_rtl): Don't add a number to members of
8357         local classes.
8358         (make_function_rtl): Likewise.
8359
8360 2000-03-06  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
8361
8362         * gcse.c (compute_can_copy): Adjust if/else blocks from rth's
8363         patch from 2000-01-28.
8364
8365 2000-03-06  Clinton Popetz  <cpopetz@cygnus.com>
8366
8367         * config/sh/sh.c: (barrier_align): Handle a delay slot that is
8368         filled with an insn from the jump target.
8369
8370 2000-03-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8371
8372         * config/c4x/c4x-protos.h (c4x_global_name): Constify char *.
8373         (c4x_external_ref): Likewise.
8374         * config/c4x/c4x.c (struct name_list): Likewise.
8375
8376 1999-12-16  Ben Collins  <bcollins@debian.org>
8377
8378         * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth
8379         argument to genmultilib.
8380         * genmultilib: accept new MULTILIB_EXCLUSIONS option and output
8381         the contents into the multilib.h header.
8382         * gcc.c: Declare multilib_exclusions for the specs file.
8383         (set_multilib_dir): Use it.
8384         (print_multilib_info): Likewise.
8385         * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option
8386         to pass to genmultilib.
8387
8388 2000-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8389
8390         * builtins.c (built_in_class_names, built_in_names): Constify a
8391         char*.
8392
8393         * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not
8394         int.
8395         (_mcleanup): Ensure value matches format specifier in sprintf.
8396
8397         * cpphash.c (special_symbol): Don't needlessly cast away
8398         const-ness.
8399
8400         * cppinit.c (base_name): Delete unused prototype.
8401
8402         * mkdeps.c (deps_init): Make definition K&R safe.
8403
8404         * tree.h (built_in_class_names, built_in_names): Constify a
8405         char*.
8406
8407 2000-03-06  Jakub Jelinek  <jakub@redhat.com>
8408
8409         * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept
8410         floating point instructions for epilogue delay.
8411
8412         * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs
8413         to gas if it supports .register pseudo.
8414
8415         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to
8416         LONG_DOUBLE_TYPE_SIZE if not defined.
8417         Use MAX_LONG_DOUBLE_TYPE_SIZE instead of
8418         LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses.
8419         * real.c: Likewise.
8420         * gengenrtl.c: Likewise.
8421         * print-rtl.c: Likewise.
8422         * rtl.c: Likewise.
8423         * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set
8424         MASK_LONG_DOUBLE_128.
8425         * config/sparc/sol2.h (TARGET_DEFAULT): Likewise.
8426         * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise.
8427         * config/sparc/linux64 (TARGET_DEFAULT): Likewise.
8428         (SUBTARGET_SWITCHES): Define.
8429         (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling
8430         with -mlong-double-128.
8431         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
8432         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8433         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
8434         (CC1_SPEC): Include -mlong-double-{64,128} as needed.
8435         * config/sparc/linux.h (SUBTARGET_SWITCHES): Define.
8436         (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling
8437         with -mlong-double-128.
8438         (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags.
8439         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
8440         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros.
8441         * config/sparc/sparc.h (MASK_LONG_DOUBLE_128,
8442         TARGET_LONG_DOUBLE_128): Define.
8443         * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8444         * config/sparc/sparc.c (sparc_override_options): Disallow 64bit
8445         long double on TARGET_ARCH64.
8446
8447 2000-03-06  Mark Mitchell  <mark@codesourcery.com>
8448
8449         * function.c (free_temps_for_rtl_expr): Don't free slots
8450         that have been pushed into a higher level.
8451
8452         Revert this patch:
8453         2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8454
8455 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8456
8457         * basic-block.h (ALLOCA_REG_SET): Remove.
8458         (INITIALIZE_REG_SET): New macro.
8459         * flow.c (update_life_info): Use it.
8460         (calculate_global_regs_live): Likewise.
8461         (propagate_block): Likewise.
8462         * global.c (build_insn_chain): Likewise.
8463         * haifa-sched.c (schedule_region): Likewise.
8464
8465 2000-03-05  Stephane Carrez  <stcarrez@worldnet.fr>
8466
8467         * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer.
8468         (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP.
8469         (DWARF_ARANGES_PAD_SIZE): New define.
8470         (output_aranges): Use it to pad the address range header.
8471         (DWARF_ROUND): Fix for non power of 2 rounding.
8472
8473 2000-03-05  Jason Merrill  <jason@casey.cygnus.com>
8474
8475         * mkdeps.c (deps_calc_target): Remove incorrect 'const'.
8476
8477 2000-03-05  Mark Mitchell  <mark@codesourcery.com>
8478
8479         * tree.def (RTL_EXPR): Update documentation.
8480         * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro.
8481         * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE.
8482         * function.c (preserve_rtl_expr_temp): New function.
8483         (preserve_rtl_expr_temps): Likewise.
8484         (preserve_rtl_expr_result): Use it.
8485
8486         Revert this patch:
8487         2000-03-04  Mark Mitchell  <mark@codesourcery.com>
8488
8489 2000-03-04  Thomas Schuster <Thomas.Schuster@gmx.net>
8490
8491         * regmove.c (copy_src_to_dest)  Do not create src->dest move
8492         for unchanging destination.
8493
8494 2000-03-04  Mark Mitchell  <mark@codesourcery.com>
8495
8496         * function.h (struct sequence_stack): Remove rtl_expr.
8497         (struct emit_staus): Likewise.
8498         (seq_rtl_expr): Remove.
8499         * tree.h (free_temps_for_rtl_expr): Don't declare.
8500         (start_sequence_for_rtl_expr): Likewise.
8501         * rtl.h (preserve_rtl_expr_result): Likewise.
8502         * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr.
8503         (start_sequence_for_rtl_expr): Remove.
8504         (push_topmost_sequence): Don't save sequence_rtl_expr.
8505         (pop_topmost_sequence): Remove comment about not restoring it.
8506         (end_sequence): Don't set seq_rtl_expr.
8507         (init_emit): Don't initialize it.
8508         (mark_sequence_stack): Don't mark it.
8509         (mark_emit_status): Likewise.
8510         * except.c (protect_with_terminate): Use
8511         start_sequence_for_rtl_expr, not start_sequence.
8512         * expr.c (expand_expr, case RTL_EXPR): Don't call
8513         preserve_rtl_expr_result or free_temps_for_rtl_expr.
8514         * function.c (assign_stack_temp_for_type): Don't set rtl_expr.
8515         (preserve_rtl_expr_result): Remove.
8516         (free_temps_for_rtl_expr): Likewise.
8517         (pop_temp_slots): Likewise.
8518         (mark_temp_slot): Don't mark the rtl_expr.
8519         * stmt.c (expand_start_stmt_expr): Use start_sequence, not
8520         start_sequence_for_rtl_expr.
8521
8522 2000-03-04  Zack Weinberg  <zack@wolery.cumb.org>
8523
8524         * mkdeps.c, mkdeps.h: New files.
8525         * po/POTFILES.in: Add them.
8526         * Makefile.in (LIBCPP_OBJS): Add mkdeps.o.
8527         (cpplib.o, cppinit.o): Depend on mkdeps.h.
8528         (mkdeps.o): New target.
8529
8530         * cppfiles.c: Delete deps_output.
8531         * cppinit.c: Include mkdeps.h.  Delete known_suffixes,
8532         OBJECT_SUFFIX, and base_name.
8533         (cpp_cleanup): Use deps_free.  Free ihash->name when clearing
8534         the include hash.
8535         (initialize_dependency_output): Use deps_init,
8536         deps_add_target, deps_calc_target, and deps_add_dep.  Remove
8537         all the unnecessary string bashing.
8538         (cpp_finish): Use deps_write.  Remove an unnecessary nesting
8539         level.
8540         * cpplib.c (do_include): Use deps_add_dep.
8541         * cpplib.h (struct cpp_reader): Replace deps_buffer,
8542         deps_allocated_size, deps_size, deps_column members with
8543         single pointer to a struct deps.  Delete prototype of
8544         deps_output.
8545
8546         * cppinit.c: Fix thinko in previous patch.
8547
8548 Sat Mar  4 11:32:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8549
8550         * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed.
8551         * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise.
8552         (mode_for_size_tree): New function.
8553         (layout_decl, layout_type): Call it and clean up BLKmode checks.
8554         * tree.h (mode_for_size_tree): New declaration.
8555
8556         * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused.
8557
8558 2000-03-04  Jason Merrill  <jason@casey.cygnus.com>
8559
8560         * stmt.c (is_body_block): Move...
8561         * dwarfout.c, dwarf2out.c: ...from here.
8562         * tree.h: Declare it.
8563         * emit-rtl.c (remove_unncessary_notes): Don't remove the body block.
8564         * final.c (final_start_function): Do call remove_unnecessary_notes
8565         when scheduling.
8566
8567 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
8568
8569         * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX.
8570
8571         * cpplib.h (_dollar_ok): New macro.
8572         (is_idchar, is_idstart): Use it.
8573         (IStable): Rename to _cpp_IStable.  Declare it const if
8574         gcc >=2.7 or C99.  Delete all references to FAKE_CONST.
8575         (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace,
8576         is_space): Update for renamed IStable.
8577
8578         * cppinit.c: Delete all references to FAKE_CONST and CAT
8579         macros. Define init_IStable as empty macro if gcc >=2.7 or
8580         C99. Change TABLE() to ISTABLE and hardcode name of table.
8581         (cpp_start_read): Don't change the IStable based on
8582         dollars_in_ident.
8583
8584         * cpphash.c (unsafe_chars): Add pfile argument.  All callers
8585         changed.  Handle '$' for char1 correctly.
8586         * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers.
8587
8588         * cppexp.c (tokentab2): Make const.
8589         (cpp_lex): Make toktab const.
8590         * cppinit.c (include_defaults_array): Make const.
8591         (initialize_standard_includes): Make default_include const.
8592
8593 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
8594
8595         * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning.
8596         (dwarf2out_decl): Functions can now have DECL_IGNORED_P.
8597         (gen_decl_die): Likewise.
8598         * dwarfout.c (dwarfout_file_scope_decl): Likewise.
8599         (output_decl): Likewise.
8600
8601         * varasm.c (make_function_rtl): If we change the name used in the
8602         rtl, update DECL_ASSEMBLER_NAME accordingly.
8603         (make_decl_rtl): Likewise.
8604
8605         * toplev.c (rest_of_compilation): Tweak formatting.
8606
8607         * toplev.c (rest_of_compilation): find_loop_tree_blocks before
8608         remove_unnecessary_notes.
8609         (debug_ignore_block): New fn.
8610         * toplev.h: Declare it.
8611         * emit-rtl.c (remove_unncessary_notes): Call it.
8612         * dwarf2out.c (dwarf2out_ignore_block): New fn.
8613         * dwarf2out.h: Declare it.
8614         * final.c (final_start_function): Don't call remove_unnecessary_notes
8615         if we did insn scheduling.
8616
8617 2000-03-03  Zack Weinberg  <zack@wolery.cumb.org>
8618
8619         * cppinit.c (cpp_handle_option): Set opts->pedantic directly.
8620         * cpplib.h: Delete SET_CPP_PEDANTIC.
8621
8622 Fri Mar  3 14:56:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8623
8624         * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if
8625         result is a RECORD_TYPE.
8626
8627 2000-03-03  Jonathan Larmour  <jlarmour@cygnus.co.uk>
8628
8629         * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added.
8630
8631 2000-03-03  Richard Henderson  <rth@cygnus.com>
8632
8633         * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer
8634         addition over compliments over shifts.
8635
8636 Fri Mar  3 12:49:28 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8637
8638         * reload1.c (reload_combine_note_use): Handle return register USEs.
8639         REG case: Handle multi-hard-register hard regs.
8640
8641 Fri Mar  3 07:38:34 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8642
8643         * md.texi: Document use of '*' in insn pattern name.
8644
8645 2000-03-03  Jason Merrill  <jason@casey.cygnus.com>
8646
8647         * calls.c (special_function_p): operator new may not be malloc-like.
8648
8649         * gcse.c (dump_hash_table): Really fix error in last change.
8650
8651 2000-03-02  Denis Chertykov  <denisc@overta.ru>
8652
8653         * avr.c (print_operand): Use print_operand_address instead of
8654         output_addr_const.
8655         * avr/libgcc.S: Cleanup code.
8656
8657 2000-03-02  Richard Henderson  <rth@cygnus.com>
8658
8659         * alpha.c (alpha_emit_set_const_1): Also try c + small constant.
8660
8661 2000-03-02  Mark Mitchell  <mark@codesourcery.com>
8662
8663         * tree.h (TYPE_ALIGN_UNIT): New macro.
8664
8665 2000-03-02  Clinton Popetz  <cpopetz@cygnus.com>
8666
8667         * i386.c: (constant_call_address_operand): Reject CONST_INT.
8668
8669 2000-03-02  Jason Merrill  <jason@casey.cygnus.com>
8670
8671         * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set
8672         for the buffer.
8673         (SET_CPP_PEDANTIC): New macro.
8674         * cpplib.c (do_include): Don't bother checking system_header_p.
8675         (do_warning, do_ident, do_assert, do_unassert): Likewise.
8676         * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC.
8677
8678         * function.h (struct expr_status): Add x_arg_space_so_far.
8679         (arg_space_so_far): New macro.
8680         * expr.c (init_expr): Initialize it.
8681         * calls.c (emit_call_1): Reset it.
8682         (compute_argument_block_size, expand_call): Use it.
8683         (expand_call, store_one_arg): Increment it.
8684
8685 Thu Mar  2 17:27:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8686
8687         * varasm.c (output_constant): Strip off a CONVERT_EXPR to
8688         a UNION_TYPE.
8689
8690 2000-03-02  Zack Weinberg  <zack@wolery.cumb.org>
8691
8692         * cppfiles.c (cpp_read_file): New function.
8693
8694         * cpphash.c (collect_expansion): Make sure to reset last_token
8695         to NORM when we hit a string.  Handle trailing whitespace
8696         properly when the expansion is empty.
8697         (create_definition): Disable line commands while parsing the
8698         directive line.
8699         (dump_definition): If pfile->lineno == 0, output a line
8700         command ahead of the dump, and add a trailing newline.
8701
8702         * cppinit.c (append_include_chain): Add fifth argument, which
8703         indicates whether or not system headers are C++ aware.
8704         (initialize_standard_includes): New function,
8705         broken out of read_and_prescan.  Pass 'cxx_aware' value from
8706         the include_defaults_array on to append_include_chain.
8707         (dump_special_to_buffer): Const-ify char array.
8708         (builtin_array): Don't dump __BASE_FILE__.
8709         (cpp_start_read): Use cpp_read_file.  Reorder code for
8710         clarity.  Don't output line commands here for -D/-A/-U
8711         switches.  Don't call deps_output for files included with
8712         -include or -imacros.
8713
8714         * cpplib.c (do_define): Don't pay any attention to the second
8715         argument.
8716         (cpp_expand_to_buffer): Disable line commands while scanning.
8717         (output_line_command): Work in the file buffer.
8718         * cpplib.h: Remove no_record_file flag from struct cpp_reader.
8719         Fix formatting of comments.  Prototype cpp_read_file.
8720
8721 Thu Mar  2 13:29:46 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8722
8723         * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink
8724         reference the language-equivalent of sizetype.
8725         * c-typeck.c (comptypes): Treat sizetype like its language equivalent.
8726         * fold-const.c (size_binop, size_diffop): Put back checks.
8727         * gcse.c (dump_hash_table): Fix minor error in last change.
8728         * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype.
8729         Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of
8730         all sizetypes.
8731
8732 Thu Mar  2 12:48:45 MET 2000  Jan Hubicka  <jh@suse.cz>
8733
8734         * calls.c (expand_call)  Do not attempt to combine stack adjustments
8735         with inhibit_defer_pop set.
8736
8737 2000-03-01  Mark Mitchell  <mark@codesourcery.com>
8738
8739         * stor-layout.c (layout_decl): Allow front-ends to explicitly set
8740         the DECL_SIZE for a FIELD_DECL.
8741
8742 2000-03-01  Bruce Korb  <bkorb@gnu.org>
8743
8744         * fixinc/inclhack.tpl: remove unused symlinks
8745         * fixinc/README: GCC Maintainer info
8746         * fixinc/inclhack.sh: regen
8747         * fixinc/fixincl.sh: regen
8748
8749 2000-03-01  Zack Weinberg  <zack@wolery.cumb.org>
8750
8751         * cpphash.c (collect_expansion): Trim trailing white space
8752         from macro definitions, but don't go past the last insertion
8753         point.
8754
8755 Wed Mar  1 12:14:31 MET 2000  Jan Hubicka  <jh@suse.cz>
8756
8757         * i386.md (mulqi3): New pattern.
8758
8759 2000-02-29  Zack Weinberg  <zack@wolery.cumb.org>
8760
8761         * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New
8762         token types.
8763         (struct cpp_reader): Add parsing_if_directive and
8764         parsing_define_directive flags.
8765         (struct cpp_options): Remove output_conditionals flag.
8766         (check_macro_name): Delete prototype.
8767
8768         * cpphash.h (struct macrodef): Delete.
8769         (struct reflist): Separate from struct definition.
8770         (struct definition): Remove unused fields.  Add column number.
8771         (create_definition): Returns a DEFINITION *.  Takes a
8772         cpp_reader * and an int.
8773
8774         * cpphash.c (SKIP_WHITE_SPACE): Delete.
8775         (PEEKC): Copy defn from cpplib.c.
8776         (rest_extension, REST_EXTENSION_LENGTH): Delete.
8777         (struct arg): New.
8778         (struct arglist): Simplify.
8779         (collect_expansion): Rewrite.  Get tokens by calling
8780         cpp_get_token.  Add more error checking.
8781         (collect_formal_parameters): New function, broken out of
8782         create_definition and reworked to use get_directive_token.
8783         (create_definition): All real work is now in collect_expansion
8784         and collect_formal_parameters.  do_define handles finding the
8785         macro name.  Return a DEFINITION, not a MACRODEF.
8786         (macroexpand): Replace bcopy with memcpy throughout.  Replace
8787         character-at-a-time copy loop with memcpy and pointer increments.
8788         (compare-defs): d1->argnames / d2->argnames might be null.
8789
8790         * cpplib.c (copy_rest_of_line): Delete function.
8791         (skip_rest_of_line): Do all the work ourselves.
8792         (skip_string): New function.
8793         (parse_string): Use skip_string.
8794         (get_macro_name): New function.
8795         (check_macro_name): Delete.
8796         (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q.
8797         (cpp_skip_hspace): Use CPP_BUMP_LINE.
8798         (handle_directive): ICE if we're called on a macro buffer.
8799         (do_define): Determine macro name and type (funlike/objlike)
8800         here.  Expunge all uses of MACRODEF.
8801         (cpp_push_buffer): Set line_base to NULL.
8802         (do_undef, read_line_number): Don't worry about getting a POP token.
8803         (eval_if_expression): Set/reset parsing_if_directive around
8804         cpp_parse_expr. Don't clear only_seen_white.
8805         (skip_if_group): Remove output_conditionals logic.  Use
8806         skip_rest_of_line.
8807         (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE
8808         tokens under appropriate conditions.
8809         (cpp_unassert): Call do_unassert not do_assert.  Oops.
8810
8811         * cppexp.c (parse_defined): New function, break out of
8812         cpp_lex.
8813         (cpp_lex): We now get CPP_ASSERTION tokens and can check them
8814         ourselves, with cpp_defined.
8815         * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput.
8816
8817         * gcc.dg/20000209-2.c: Turn off -pedantic-errors.
8818         * gcc.dg/strpaste-2.c: New.
8819
8820 2000-02-29  Mark Mitchell  <mark@codesourcery.com>
8821
8822         * fold-const.c (size_binop): Don't asert inputs are the same and
8823         have TYPE_IS_SIZETYPE set.
8824         (size_diffop): Likewise.
8825
8826 2000-02-29  Jason Merrill  <jason@casey.cygnus.com>
8827
8828         * dwarfout.c (output_block): Output abstract blocks even if they
8829         don't have TREE_ASM_WRITTEN set.
8830
8831         * calls.c (emit_library_call): Check for null REG.
8832
8833 2000-03-01  Martin von Loewis  <loewis@informatik.hu-berlin.de>
8834
8835         * c-decl.c (current_function_decl): Move to toplev.c.
8836         (init_decl_processing): Don't add current_function_decl as a ggc
8837         root here.
8838         * dbxout.c (dbxout_symbol): Change return type to int.
8839         (dbxout_symbol_location, dbxout_syms): Likewise.
8840         (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without
8841         any locals. Use current_function_func_begin_label if set.
8842         * dbxout.h (dbxout_symbol, dbxout_syms): Change return type.
8843         * dwarf2out.c (dwarf2out_begin_prologue): Set
8844         current_function_func_begin_label.
8845         * final.c (final_start_function): Reset it.
8846         * toplev.c (current_function_decl): Define it here.
8847         (current_function_func_begin_label): New variable.
8848         (main): Add both as ggc roots.
8849         * tree.h (current_function_func_begin_label): Declare.
8850
8851 Tue Feb 29 14:07:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8852
8853         * gcse.c: Cleanups throughout: mostly white-space, but also
8854         some minor rearrangement of code.
8855
8856 Tue Feb 29 10:45:59 2000  Jeffrey A Law  (law@cygnus.com)
8857
8858         * calls.c (emit_library_call): Do not abort if FUNCTION_ARG
8859         returns a PARALLEL.  Use emit_group_load and use_group_regs
8860         as needed.
8861         (emit_library_call_value): Similarly.
8862
8863         * pa/t-pa: Use quadlib.c instead of quadlib.asm.
8864         * pa/quadlib.asm: Remove.
8865         * pa/quadlib.c: New file.
8866
8867         * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format.
8868         * configure: Rebuilt.
8869
8870 2000-02-29  Philip Blundell  <pb@futuretv.com>
8871
8872         * config/arm/conix-elf.h: New file.
8873         * configure.in (arm*-*-conix*): New configuration.
8874         * configure: Regenerate.
8875
8876 2000-02-28  Jason Merrill  <jason@casey.cygnus.com>
8877
8878         * dwarf2out.c (gen_block_die): Output abstract blocks even if they
8879         don't have TREE_ASM_WRITTEN set.
8880
8881 Mon Feb 28 21:07:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8882
8883         * Eliminate DECL_FIELD_SIZE.
8884         * builtins.c (built_in_class_names, built_in_names): New variables.
8885         * c-decl.c (finish_struct): Set specified size in DECL_SIZE.
8886         * expr.c (expand_expr, case COMPONENT_REF): Get field size from
8887         DECL_SIZE, not DECL_FIELD_SIZE.
8888         * print-tree.c (print_node): Remove code that prints extra blank
8889         lines in some cases.
8890         Properly handle inline and builtin function cases.
8891         * stor-layout.c (layout_decl): Get specified size from DEC_SIZE.
8892         * tree.h (built_in_class_named, built_in_names): New declarations.
8893         (union tree_decl): Rename internal unions to u1 and u2 and change
8894         some of their components.
8895         Add new field built_in_class.
8896         (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE):
8897         Reflect above changes.
8898         (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise.
8899         (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted.
8900         * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE.
8901         (encode_field_decl): Likewise; also remove obsolete test for bitfield.
8902
8903 2000-02-28  Dmitri Makarov  <dim@windriver.com>
8904
8905         * extend.texi: Document ARM's support for long/short calls.
8906
8907         * invoke.texi: Document ARM's -mlong-calls command line switch.
8908
8909         * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype.
8910         (arm_encode_call_attribute): Add prototype.
8911         (arm_set_default_type_attribute): Add prototype.
8912         (arm_strip_name_encoding): Add prototype.
8913
8914         * config/arm/arm.c (arm_init_cumulative_args): replace
8915         initialisation og 'long_calls' field with initialisation of
8916         'call_cookie' field.
8917         (enum arm_pragma_enum): New enum.
8918         (arm_pragma_long_calls): New static variable.
8919         (arm_process_pragma): Also process "#pragma long_calls_off".
8920         (arm_valid_type_attribute_p): Accept short_call attribute.
8921         (arm_comp_type_attributes): Check long/short call attributes.
8922         (arm_encode_call_attribute):  New function:  Encode long_call
8923         or short_call attribute in function name.
8924         (arm_set_default_type_attributes): New function: Assign
8925         default attributes to newly defined type.
8926         (current_file_function_operand): New function: Return true if
8927         the symbol is a function which has already been compiled.
8928         (arm_is_longcall_p): New function: Return true if the
8929         indicated function should be called via a long call.
8930         (arm_get_strip_length): New function.  Returns number of
8931         prefix characters to be stripped from a function's name.
8932         (arm_strip_name_encoding): New function.  Strip prefix characters
8933         from a function's name.
8934
8935         * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field
8936         with 'call_cookie'.
8937         (SHORT_CALL_FAG_CHAR): Define.
8938         (LONG_CALL_FAG_CHAR): Define.
8939         (ENCODED_SHORT_CALL_ATTR_P): Define.
8940         (ENCODED_LONG_CALL_ATTR_P): Define.
8941         (ARM_NAME_ENCODING_LENGTHS): Define.
8942         (STRIP_NAME_ENCODING): Define.
8943         (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding.
8944         (ARM_ENCODE_CALL_TYPE): Define.
8945         (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE.
8946         (ARM_DECLARE_FUNCTION_SIZE): Define.
8947         (SET_DEFAULT_TYPE_ATTRIBUTES): Define.
8948
8949         * config/arm/arm.md (call): Call arm_is_longcall_p to decide
8950         if a long call is needed.
8951         (call_value): Ditto.
8952         (call_symbol): Ditto.
8953
8954         * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of
8955         ARM_DECLARE_FUNCTION_SIZE.
8956
8957         * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define.
8958         (SUBTARGET_NAME_ENCODING_LENGTHS): Define.
8959         (ARM_STRIP_NAME_ENCODING): Undefine.
8960         (STRIP_NAME_ENCODING): Undefine.
8961         (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding.
8962         (ASM_DECLARE_FUNCTION_NAME): Ditto.
8963         (ASM_OUTPUT_COMMON): Ditto.
8964         (ASM_DECLARE_OBJECT_NAME): Ditto.
8965
8966         * config/arm/pe.c (arm_dllexport_name_p): Check for
8967         ARM_PE_FLAG_CHAR.
8968         (arm_dllimport_name_p): Ditto.
8969         (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR.
8970         (arm_mark_dllimport): Ditto.
8971
8972 Mon Feb 28 22:11:12 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8973
8974         * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define.
8975
8976 2000-02-28  Mark Mitchell  <mark@codesourcery.com>
8977
8978         * xcoffout.c (xcoffout_begin_function): Fix typo in previous change.
8979
8980 2000-02-28  Zack Weinberg  <zack@wolery.cumb.org>
8981
8982         * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE.
8983         * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if
8984         NO_BUILTIN_WCHAR_TYPE is not defined.
8985         (CPP_WCHAR_TYPE): Delete.
8986         * cccp.c (main): Don't change wchar_type if cplusplus.
8987         (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE.
8988
8989 2000-02-28  Nick Clifton  <nickc@cygnus.com>
8990
8991         * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long".
8992
8993 Mon Feb 28 14:21:15 2000  Catherine Moore  <clm@cygnus.com>
8994
8995         * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define.
8996         (ASM_WEAKEN_LABEL): Define.
8997
8998 Mon Feb 28 13:07:19 MET 2000  Jan Hubicka  <jh@suse.cz>
8999
9000         * expr.c (store_constructor): Do not emit USE.
9001         * rtl.h (stupid_life_analysis): Remove.
9002
9003 Mon Feb 28 07:03:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9004
9005         * function.c (number_blocks): Reset next_block_index based on
9006         what debugging format is used, not what is defined.
9007
9008         * lcm.c: Minor reformatting throughout.
9009         (reg_dies, reg_becomes_live): Properly handle multiple hard regs.
9010
9011         * toplev.c (rest_of_compilation): Account for time in
9012         optimize_mode_switching.
9013
9014         * jump.c (jump_optimize_1): Don't call delete_barrier_successors
9015         if only marking labels.
9016
9017 Mon Feb 28 12:53:57 MET 2000  Jan Hubicka  <jh@suse.cz>
9018
9019         * calls.c (expand_call): Attempt to combine stack adjustments with
9020         pending stack adjustments.
9021
9022 Mon Feb 28 11:34:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9023
9024         * loop.c (reg_in_basic_block_p): Don't abort when falling through
9025         to the end of the function.
9026
9027 2000-02-27  Mark Mitchell  <mark@codesourcery.com>
9028
9029         * emit-rtl.c (remove_unncessary_notes): Remove notes for empty
9030         blocks.
9031         * final.c (next_block_index): Remove.
9032         (max_block_depth): Likewise.
9033         (pending_blocks): Likewise.
9034         (init_final): Don't initialize them.
9035         (final_start_function): Don't set next_block_index.  Set up
9036         BLOCK_NUMBER.
9037         (final_scan_insn): Use BLOCK_NUMBER, not next_block_index.
9038         * function.h (number_blocks): New function.
9039         * function.c (get_block_vector): New function.
9040         (identify_blocks): Use it.
9041         (reorder_blocks): Set NOTE_BLOCK.
9042         (number_blocks): New function.
9043         * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag.
9044         * tree.h (BLOCK_NUMBER): New macro.
9045         (tree_block): Add block_num field.
9046         * dbxout.c (next_block_number): Remove.
9047         (dbxout_init): Don't set it.
9048         (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN
9049         set.  Use BLOCK_NUMBER, rather than next_block_num, to determine
9050         block numbers.
9051         * toplev.c (rest_of_compilation): Always call
9052         find_loop_tree_blocks.  Fix indentation.
9053         * dwarf2out.c (next_block_number): Remove.
9054         (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
9055         to determine block numbers.
9056         (gen_inlined_subroutine_die): Likewise.
9057         (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set.
9058         (decls_for_scope): Don't increment next_block_number.
9059         * dwarfout.c (next_block_number): Remove.
9060         (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number,
9061         to determine block numbers.
9062         (output_inlined_subroutine_die): Likewise.
9063         (output_block): Only output blocks that have TREE_ASM_WRITTEN set.
9064         (output_decls_for_scope): Don't increment next_block_number.
9065         * sdbout.c (next_block_number): Remove.
9066         (sdbout_block): Use BLOCK_NUMBER.
9067         (sdbout_begin_block): Simplify.
9068         * xcoffout.c (next_block_number): Remove.
9069         (xcoffout_block): Use BLOCK_NUMBER, not next_block_number.
9070         (xcoffout_begin_block): Don't set next_block_number.
9071         (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not
9072         next_block_number.
9073
9074 Sun Feb 27 16:40:33 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9075
9076         * builtins.c (c_strlen): Use size_diffop and return ssizetype value.
9077         (expand_builtin_strcpy): Pass correct type to size_binop.
9078         (expand_builtin_strcmp): Likewise.
9079         Clean up conditional structure.
9080         * c-decl.c (init_decl_processing): Don't call set_sizetype twice.
9081         (complete_array_type): Don't use size_binop for MAXINDEX.
9082         * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT.
9083         (c_sizeof_nowarn, c_size_in_bytes): Likewise.
9084         (c_alignof): Use size_one_node.
9085         (build_unary_op): Pass arg of proper type to size_binop.
9086         (really_start_incremental_init, push_init_level): Use sizetype for
9087         constructor{,_bit,_unfilled}_index.
9088         (pop_init_label, output_init_element): Likewise.
9089         (output_pending_init_elements, process_init_element): Likewise.
9090         * calls.c (compute_argument_block_size): Field VAR is ssizetype.
9091         * expr.c (store_expr): Use size_int.
9092         (store_constructor): Use proper types for size_binop args.
9093         (get_inner_reference, expand_expr, case ARRAY_REF): Likewise.
9094         (expand_expr_unaligned): Likewise.
9095         (string_contant): Return object of sizetype.
9096         * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types.
9097         (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE.
9098         (ARGS_SIZE_TREE): Pass proper types to size_binop.
9099         * fold-const.c (int_const_binop): Refine when size_int is called.
9100         (fold_convert): Likewise.
9101         (size_int_wide): Rework to take KIND as arg, only take low order
9102         bits, handle new sizetype_tab datatype, and chain entries in
9103         size_table.
9104         (size_int_type_wide): New function.
9105         (size_binop): Validate types of arguments.
9106         (ssize_binop): Deleted.
9107         (size_diffop): New function.
9108         (extract_muldiv): Only fold division into multiplication for sizetypes.
9109         * function.c (assign_parms): Use size_diffop and make sure
9110         VAR field is of ssizetype; also pass proper type to size_binop.
9111         (locate_and_pad_parm, pad_to_arg_alignment): Likewise.
9112         (round_down): Deleted from here.
9113         * store-layout.c (sizetype_tab): Now an array.
9114         (sizetype_set, early_root_list): New variables.
9115         (variable_size): Use size_one_node.
9116         (round_up): Pass proper type to size_binop.
9117         (round_down): Moved to here and corrected as above.
9118         (layout_record): Pass proper arg types to size_binop.
9119         (layout_type): Likewise.
9120         If sizetype_set is zero, record the type just laid out.
9121         (make_unsigned_type): Don't call set_sizetype;
9122         (make_signed_type): Likewise; also, call fixup_signed_type.
9123         (initialize_sizetypes): New function.
9124         (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and
9125         set name of bitsizetype to "bit_size_type".
9126         Fix up type of sizes of all types made before call.
9127         * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro.
9128         * tree.c (fix_sizetype): Deleted.
9129         (build_common_tree_nodes): Call initialize_sizetypes.
9130         (build_common_tree_nodes_2): Don't call fix_sizetype.
9131         * tree.h (TYPE_IS_SIZETYPE): New macro.
9132         (initialize_sizetype): New declaration.
9133         (enum size_type_kind): New type.
9134         (struct sizetype_tab): Deleted.
9135         (sizetype_tab): Now array; adjust sizetype macros.
9136         (size_diffop, size_int_type_wide): New functions.
9137         (size_int_wide): Change number of args and type; access macros changed.
9138         (ssize_int, sbitsize_int): New macros.
9139         * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int.
9140         (ROUND_TYPE_SIZE_UNIT): New macro.
9141
9142 2000-02-27  Zack Weinberg  <zack@wolery.cumb.org>
9143
9144         * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *.
9145
9146 Sun Feb 27 07:44:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9147
9148         * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long):
9149         Mark as possibly unused.
9150
9151         * cse.c (cse_insn): Delete dead code involving tablejump.
9152         Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE.
9153
9154         * Makefile.in (libcpp.a): Start by deleting it.
9155
9156 2000-02-27  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9157
9158         * cpplib.h (enum file_change_code): Added rename_file.
9159         * cpplib.c (do_line): If a filename is given, set file_change to
9160         rename_file.
9161         (output_line_command): If file_change is rename_file, always
9162         output a # directive with the file name.
9163
9164         * cpplib.c (do_pragma): Accept #pragma without consecutive token.
9165
9166 2000-02-26  Mark Mitchell  <mark@codesourcery.com>
9167
9168         * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE
9169         when copying a PARM_DECL or RESULT_DECL.
9170
9171 2000-02-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9172
9173         * fix-header.c (recognized_function): Also fix prototypes for
9174         functions taking "void".
9175
9176 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
9177
9178         * reload1.c (do_output_reload): Check reg_reloaded_valid before
9179         looking at reg_reloaded_contents.
9180
9181 2000-02-26  Zack Weinberg  <zack@wolery.cumb.org>
9182
9183         * Makefile.in (STMP_FIXINC): New toggle.
9184         (LIBGCC2_DEPS): Delete all references.
9185         (stmp-headers): Delete target.  All references either deleted
9186         or changed to stmp-int-headers.
9187         (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO.
9188         (LIBCPP_OBJS): Take out cppalloc.o.
9189         (cppalloc.o): Delete target.
9190         (stmp-int-hdrs): Depend on $(STMP_FIXINC).
9191         (gen-protos, fix-header): Link with libiberty.a.
9192         * build-make: Don't change FIXINCLUDES.  Override STMP_FIXINC
9193         to empty.
9194
9195         * configure.in: Remove refs to strerror.
9196         * acconfig.h: Take out NEED_DECLARATION_STRERROR.
9197         * system.h: Take out strerror stanza.
9198
9199         * cpperror.c (my_strerror): Delete function.
9200         (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror.
9201         * cppmain.c (main): Call xmalloc_set_program_name first thing.
9202         * cppalloc.c: Delete file.
9203         * gen-protos.c: Don't provide xrealloc.
9204
9205         * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use
9206         xstrerror throughout.
9207
9208 2000-02-26  Bruce Korb  <bkorb@gnu.org>
9209
9210         * fixinc/inclhack.def (undefine_null): the bypass pattern needs to
9211         match for DOS headers, too.
9212         * fixinc/inclhack.sh,fixincl.x: Regenerate.
9213
9214 2000-02-26  Geoff Keating  <geoffk@cygnus.com>
9215
9216         * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define.  The default
9217         is right for most ELF targets.
9218         * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define.
9219         Let the default file use %U properly.
9220         * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define.  Use the
9221         default.
9222
9223         * config/fp-bit.c (pack_d): Properly handle rounding of denormal
9224         numbers.
9225
9226 Sat Feb 26 09:39:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9227
9228         * toplev.c (documented_lang_options): Correct spelling error.
9229         (decode_d_option, decode_f_option, main): Likewise.
9230
9231         * toplev.c (print_time): Avoid SIGFPE when all_time is zero.
9232
9233         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at
9234         to tell assembler it is permitted to expand large constants.
9235
9236 2000-02-25  Mumit Khan  <khan@xraylith.wisc.edu>
9237
9238         * protoize.c: (AUX_INFO_SUFFIX): New macro.
9239         (aux_info_suffix): Use.
9240         (SAVE_SUFFIX): New macro.
9241         (save_suffix): Use.
9242         (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null.
9243         (gen_aux_info_file): Use aux_info_suffix instead of ".X".
9244         (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames.
9245
9246         * invoke.texi (Running Protoize): Update documentation.
9247
9248 2000-02-25 Mark Elbrecht <snowball3@bigfoot.com>
9249
9250         * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines.
9251
9252 2000-02-25  John Wehle  (john@feith.com)
9253
9254         * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to.
9255
9256 2000-02-25  Anthony Green  <green@cygnus.com>
9257
9258         * toplev.c (rest_of_compilation): Rebuild jump labels if
9259         combine_instructions has created a new direct jump.
9260         * combine.c (try_combine): Add new_direct_jump_p argument.  Set it
9261         when appropriate.
9262         (combine_instructions): Call try_combine with new argument.
9263         Return non-null value when new direct jump instruction is created.
9264         * rtl.h: combine_instructions returns an int.
9265
9266 Fri Feb 25 19:49:08 2000  Jeffrey A Law  (law@cygnus.com)
9267
9268         * cse.c (cse_insn): Replace the PATTERN of the insn with an new
9269         jump when changing a computed jump into a jump to a known
9270         target.
9271
9272 Fri Feb 25 19:22:44 2000  Graham Stott <grahams@rcp.co.uk>
9273
9274         * resource.c (mark_referenced_resources): Changed use SET_DEST (...)
9275         to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER.
9276
9277         * i386.md (define_expand "clrstrsi"): Fix typo.
9278
9279 Fri Feb 25 18:49:39 2000  "K. Richard Pixley" <rich@microunity.com>
9280
9281         * rtl.texi: Fix typo.
9282
9283 Fri Feb 25 20:02:35 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9284
9285         * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by
9286         UNITS_PER_WORD.  Change caller initial_elimination_offset.
9287         (rounded_frame_size): Take into account that argument pushed has
9288         changed.  Fix TARGET_ALIGN_DOUBLE problem.
9289
9290 2000-02-25  Geoff Keating  <geoffk@cygnus.com>
9291
9292         * haifa-sched.c (schedule_block): Explain the real reason
9293         we delete REG_SAVE_NOTEs on the first insn of a block.
9294         Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP.
9295
9296 2000-02-24  Mark Mitchell  <mark@codesourcery.com>
9297
9298         * input.h (push_srcloc): New function.
9299         (pop_srcloc): Likewise.
9300         * toplev.c (push_srcloc): Define it.
9301         (pop_srcloc): Likewise.
9302
9303 2000-02-24  Richard Henderson  <rth@cygnus.com>
9304
9305         * flow.c (life_analysis): When collecting reg info, clear
9306         regs_ever_live.
9307
9308 Thu Feb 24 22:06:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9309
9310         Fix bug exposed by reload.c no longer rounding the frame
9311         size to BIGGEST_ALIGNMENT:
9312         * sh.c (rounded_frame_size): New function.
9313         (sh_expand_prologue, sh_expand_epilogue): Use it.
9314         (initial_elimination_offset): Likewise.
9315
9316 Thu Feb 24 20:04:11 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9317
9318         Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change:
9319         * sh-protos.h (sh_need_epilogue): Declare.
9320         * sh.c (sh_need_epilogue_known): New static variable.
9321         (sh_need_epilogue): New function.
9322         (function_epilogue): Clear need_epilogue_known.
9323         * sh.md (return): Split into expander / insn pattern.
9324         Make the expander conditional on ! sh_need_epilogue ().
9325
9326 2000-02-24  Nathan Sidwell  <nathan@codesourcery.com>
9327
9328         * machmode.h (get_mode_alignment): Declare.
9329         (GET_MODE_ALIGNMENT): Call it.
9330         * stor-layout.c (get_mode_alignment): New function. Make
9331         sure alignment is always power of 2.
9332
9333 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9334
9335         * i386.h: Remove useless definition of "I386" and misleading
9336         comment above it.
9337
9338 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9339
9340         * tree.h (TREE_SET_PERMANENT): New macro.  Document conditions
9341         under which TREE_PERMANENT will be set.
9342         * tree.c (make_node, copy_node, make_tree_vec, tree_cons,
9343         build1): Use TREE_SET_PERMANENT.
9344         * print-tree.c (print_node): Don't report value of
9345         TREE_PERMANENT if ggc_p is true.
9346
9347         * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to
9348         decide whether to give a type a new alias set.
9349         * objc/objc-act.c (build_objc_string_object): Never copy the string.
9350         * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective
9351         of value of 'obstack'.
9352
9353
9354 2000-02-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9355
9356         * config/c4x/c4x.c (c4x_process_after_reload): Split all insns.
9357
9358 2000-02-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9359
9360         * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING.
9361         * cpplib.c (cpp_get_token): Produce them.
9362         * cppexp.c (cpp_lex): Handle them.
9363
9364 2000-02-23  Nick Clifton  <nickc@cygnus.com>
9365
9366         * config/arm/arm.c (arm_comp_type_attributes): Simply and
9367         comment tests on type attributes.
9368
9369 Wed Feb 23 16:42:21 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9370
9371         * final.c (shorten_branches): Make value passed to LOOP_ALIGN
9372         conform to documentation.
9373         * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align
9374         to check for special cases.
9375         * sh-protos.h (sh_loop_align): Declare.
9376         * sh.c (sh_loop_align): Define.
9377
9378 2000-02-22  Andrew Haley  <aph@cygnus.com>
9379
9380         * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas.
9381         (SIZE_TYPE): Is 32 bits when using -mgp32.
9382         (PTRDIFF_TYPE): Ditto.
9383
9384 Wed Feb 23 07:26:27 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9385
9386         * diagnostic.c (init_output_buffer): Handle case of null PREFIX.
9387
9388 2000-02-23  Zack Weinberg  <zack@wolery.cumb.org>
9389
9390         * config/i386/i386.h: If IN_TARGET_LIBS is defined, make
9391         BIGGEST_FIELD_ALIGNMENT a constant.
9392
9393 2000-02-21  Jason Merrill  <jason@casey.cygnus.com>
9394
9395         * dwarf2out.c (output_line_info): Put the marker for the end of
9396         the line number info at the actual end.
9397         (gen_struct_or_union_type_die): Use decl_function_context
9398         to check for local classes.
9399         * dwarfout.c (output_type): Likewise.
9400
9401 Tue Feb 22 01:38:57 2000  Jeffrey A Law  (law@cygnus.com)
9402
9403         * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference
9404         for arguments with a mode, but no type.
9405         (FUNCTION_ARG_CALLEE_COPIES): Similarly.
9406         * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm.
9407         * pa/long_double.h: New file.
9408         * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11
9409         both have 128bit wide long doubles.
9410         * configure: Rebuilt.
9411
9412 2000-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9413
9414         * defaults.h (ASM_OUTPUT_ASCII): Constify a char*.
9415
9416         * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain,
9417         fixup_reorder_chain, skip_insns_between_block): Add static prototypes.
9418         (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS.
9419
9420         * haifa-sched.c (rank_for_schedule): Don't cast away const-ness.
9421
9422         * integrate.c (compare_blocks, find_block): Likewise.
9423
9424         * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2.
9425
9426         * rtl.h (set_file_and_line_for_stmt): Constify a char*.
9427
9428         * stmt.c (stmt_status, set_file_and_line_for_stmt,
9429         expand_asm_operands): Likewise.
9430
9431 Mon Feb 21 17:06:27 2000  Jason Eckhardt  <jle@cygnus.com>
9432
9433         * predict.c (estimate_probability): Added the pointer heuristic to
9434         the collection of static branch predictors.
9435
9436 2000-02-21  Catherine Moore  <clm@cygnus.com>
9437
9438         * config/mips/mips.h (ASM_SPEC): Add -mfix700.
9439         * invoke.texi (-mfix7000): Document.
9440
9441 2000-02-21  Gabriel Dos Reis  <gdr@codesourcery.com>
9442
9443         * diagnostic.c (init_output_buffer): Make it possible to output at
9444         least 32 characters if we're given a too long prefix.
9445
9446 2000-02-20  Mark Mitchell  <mark@codesourcery.com>
9447
9448         * varasm.c (initializer_constant_valid_p): Call
9449         lang_expand_constant to simplify the constant.
9450
9451 2000-02-20  Bruce Korb  <bkorb@gnu.org>
9452
9453         * fixinc/inclhack.def(stdio_va_list):
9454         typedef needs to be disabled.
9455         * fixinc/inclhack.sh: regen
9456         * fixinc/fixincl.x: regen
9457
9458 2000-02-20  Geoff Keating  <geoffk@cygnus.com>
9459
9460         * print-rtl.c (print_rtx): Don't print addresses when
9461         flag_dump_unnumbered.
9462
9463 2000-02-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9464
9465         * sparc.c (sparc_output_scratch_registers): Mark parameter with
9466         ATTRIBUTE_UNUSED.
9467         (sparc_va_arg, sparc_flat_output_function_prologue,
9468         sparc_flat_output_function_epilogue): Cast value to unsigned in
9469         comparison.
9470         (sparc_emit_float_lib_cmp): Remove unused variable `cmp'.
9471
9472         * sparc.md: Add default case in switch.
9473
9474 2000-02-19  Richard Henderson  <rth@cygnus.com>
9475
9476         * c-typeck.c (add_pending_init): Don't abort for multiple
9477         fields at the same offset.
9478         (pending_init_member): Test the correct member.
9479
9480 2000-02-19  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9481
9482         * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node)
9483         instead of SImode.
9484         (start_catch_handler) : Same.
9485
9486 2000-02-19  Brad Lucier  (lucier@math.purdue.edu)
9487
9488         * Makefile.in: Have flow.o depend on $(EXPR_H)
9489
9490 Sat Feb 19 18:43:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9491
9492         * c-common.c (decl_attributes): Set DECL_SIZE_UNIT.
9493         * c-decl.c (duplicate_decls, finish_enum): Likewise.
9494         (finish_decl): Remove -Wlarger-than code from here.
9495         * flags.h (id_clash_len): Now int.
9496         (larger_than_size): Now HOST_WIDE_INT.
9497         * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed.
9498         Clean up checking to see if in table.
9499         (make_bit_field_ref): Remove extra parm to bitsize_int.
9500         * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT.
9501         * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT.
9502         * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size
9503         and for computing size of decl.
9504         * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT.
9505         Move -Wlarger-than code to here.
9506         (layout_record): Remove extra arg to bitsize_int.
9507         Set TYPE_BINFO_SIZE_UNIT.
9508         (layout_union): Remove extra arg to bitsize_int.
9509         Use proper type for size of QUAL_UNION.
9510         (layout_type): Remove extra arg to bitsize_int.
9511         * toplev.c (id_clash_len): Now int.
9512         (larger_than_size): Now HOST_WIDE_INT.
9513         (decode_W_option): Clean up id-clash and larger-than- cases.
9514         * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts.
9515         (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined.
9516         * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New.
9517         (struct tree_decl): New field size_unit.
9518         (size_int_wide): No HIGH operand; NUMBER is now signed.
9519         (size_int_2): Deleted.
9520         (size_int, bitsize_int): Don't use it and rework args.
9521         * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT.
9522
9523 Fri Feb 18 20:01:58 2000  Jeffrey A Law  (law@cygnus.com)
9524
9525         * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call.
9526
9527 2000-02-18  Geoff Keating  <geoffk@cygnus.com>
9528
9529         * invoke.texi (Warning Options): Add an explanation of why
9530         you might want the -Wfloat-equal flag.
9531
9532 Fri Feb 18 20:08:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9533
9534         * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned.
9535         * cppinit.c (new_pending_define): Add cast to avoid warning.
9536         * expmed.c (extract_bit_field): Likewise.
9537         * flow.c (enum reorder_skip_type): New type.
9538         (skip_insns_between_blcok): New it.
9539         Rework to avoid warning about possibly undefined variable.
9540         * function.c (assign_parms): Make thisparm_boundary unsigned.
9541         * genrecog.c (write_switch): Cast XWINT result to int.
9542         * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING.
9543         * mips-tfile.c (init_file): Make two versions of FDR intializer:
9544         one for MIPS and one for Alpha.
9545         (get_tag, copy_object): Add casts to avoid warnings.
9546         * optabs.c (init_one_libfunc): Cast NAME to (char *).
9547         * reload.c (find_reloads): Make TYPE enum reload_type.
9548         * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L".
9549         * unroll.c (unroll_loop): Initialize UNROLL_NUMBER.
9550         * varasm.c (compare_constant_1): Add cast to avoid warning.
9551         * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC
9552         to (char *).
9553         (alpha_expand_unaligned_load, alpha_expand_unaligned_store):
9554         Cast switch operand of size to int.
9555         (alpha_expand_epilogue): Always initialize fp_offset and sa_reg.
9556         * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort
9557         in unhandled case.
9558
9559 2000-02-18  Nick Clifton  <nickc@cygnus.com>
9560
9561         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
9562         anything for an alignment of zero.
9563
9564         * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
9565         anything for an alignment of zero.
9566
9567 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
9568
9569         * gcc.texi (Bug Reporting): Refer to bugs.html.
9570         (Bug Lists): Likewise.
9571         * system.h (GCCBUGURL): New preprocessor define.
9572         * rtl.c (fancy_abort): Use it.
9573         * gcc.c (main): Likewise.
9574
9575 2000-02-18  Richard Henderson  <rth@cygnus.com>
9576
9577         * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove.
9578         (life_analysis_1): Subsume into ...
9579         (life_analysis): ... here.  Force PROP_REG_INFO off after reload.
9580         Use update_life_info for the relaxation.
9581         (update_life_info): Update REG_BASIC_BLOCK for registers live on
9582         entry and regs_live_at_setjmp.
9583         (set_noop_p): Simplify.
9584         (notice_stack_pointer_modification_1): Renamed from s/_1//.
9585         (record_volatile_insns): Split into ...
9586         (delete_noop_moves): ... here,
9587         (notice_stack_pointer_modification): ... here,
9588         (insn_dead_p): ... and here.
9589         (propagate_block): Don't query INSN_VOLATILE.
9590         (mark_used_regs): Mind !PROP_REG_INFO.
9591         * toplev.c (rest_of_compilation): Call mark_constant_function here,
9592         not in life_analysis.
9593
9594 Fri Feb 18 01:29:22 EST 2000  John Wehle  (john@feith.com)
9595
9596         * loop.c (canonicalize_condition): New function,
9597         broken out of get_condition.
9598         (get_condition): Use it.
9599         * expr.h (canonicalize_condition): Prototype it.
9600
9601         * tree.h (tree_int_cst_msb): Declare.
9602         * tree.c (tree_int_cst_msb): New function.
9603
9604 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
9605
9606         * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt
9607         isn't set.
9608
9609         * invoke.texi (-fmessage-length=n): Document.
9610
9611 2000-02-17  Jason Merrill  <jason@casey.cygnus.com>
9612
9613         * bitmap.c (bitmap_operation): Don't leak bitmap elements.
9614
9615 2000-02-17  Mark Mitchell  <mark@codesourcery.com>
9616
9617         * function.c (thread_prologue_and_epilogue_insns): Put a line note
9618         after the prologue.
9619
9620 2000-02-17  Nick Clifton  <nickc@cygnus.com>
9621
9622         * config/arm/thumb.c: Replace includes of system headers with
9623         #include "system.h".
9624
9625 2000-02-16  Richard Henderson  <rth@cygnus.com>
9626
9627         * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]:
9628         Add crtbeginS.o and crtendS.o.
9629         * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o.
9630         (ENDFILE_SPEC): Use crtendS.o.
9631         * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets.
9632
9633         * alpha/crtbegin.asm (__do_frame_takedown): Merge into ...
9634         (__do_global_dtors_aux): ... here.  Call __cxa_finalize if
9635         shared and present.
9636         (__dso_handle): New variable.
9637         * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime
9638         bias to __CTOR_END__.
9639
9640 2000-02-16  Richard Henderson  <rth@cygnus.com>
9641
9642         * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T).
9643
9644 Wed Feb 16 21:40:04 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9645
9646         * longlong.h (__clz_tab): Declare as static to match definition.
9647
9648 2000-02-16 Mark Elbrecht <snowball3@bigfoot.com>
9649
9650         * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h.
9651         (XREF_FILE_NAME): Define.
9652
9653         * i386/djgpp.h (DATA_SECTION_ASM_OP): Define.
9654         (EH_FRAME_SECTION_ASM_OP): Define.
9655         (IDENT_ASM_OP): Define.
9656         (TEXT_SECTION_ASM_OP): Define.
9657         (CPP_SPEC): Define.
9658         (CTORS_SECTION_ASM_OP): Define.
9659         (CTOR_SECTION_FUNCTION): Use it.
9660         (DTORS_SECTION_ASM_OP): Define.
9661         (DTOR_SECTION_FUNCTION): Use it.
9662
9663 2000-02-16  Zack Weinberg  <zack@wolery.cumb.org>
9664
9665         * reg-stack.c (emit_swap_insn): Do not put a new insn before a
9666         NOTE_BASIC_BLOCK.
9667
9668         * flow.c (dump_regset, debug_regset, dump_bb, debug_bb,
9669         debug_bb_n): New functions.
9670         (dump_flow_info, print_rtl_with_bb): Use dump_regset.
9671         * basic-block.h: Prototype new functions.
9672
9673 Wed Feb 16 21:07:53 2000  Denis Chertykov  <denisc@overta.ru>
9674
9675         * configure.in: Add support for avr target.
9676         * configure: Rebuilt.
9677
9678         * invoke.texi: Add AVR invocation docs.
9679         * install.texi: Add information about AVR.
9680         * md.texi: Add AVR constraint letters description.
9681         * extend.texi: Add description for AVR specific attributes.
9682
9683 2000-02-16  Jason Merrill  <jason@casey.cygnus.com>
9684
9685         * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C".
9686
9687 2000-02-16  Nick Clifton  <nickc@cygnus.com>
9688
9689         * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw.
9690         (make_insn_raw): Move RTL check here.
9691
9692 2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9693
9694         * version.c: Include gansidecl.h and version.h.
9695
9696         * version.h: Wrap entire file in macro __GCC_VERSION_H__.
9697
9698         * configure.in (gcc_version): When setting, narrow search to
9699         lines containing `version_string'.
9700
9701         * Makefile.in (mainversion): Likewise.
9702         (GCC_H): New variable.
9703         (gcc.h): Delete target.
9704         (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h.
9705         (version.o): Depend on version.h.
9706         (dbxout.o): Don't depend on gcc.h.
9707
9708 Wed Feb 16 15:04:49 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9709                           Michael Meissner  <meissner@cygnus.com>
9710
9711         * md.texi (Simple Constraints): Add item about whitespace.
9712         * genoutput.c (strip_whitespace): New.
9713         (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call
9714         strip_whitespace for constraints.
9715         Test pointer using NULL, not 0.
9716
9717 2000-02-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
9718
9719         * cpplib.c (do_line): Pedwarn for #line > 32767.
9720
9721         * c-lex.c (readescape): Warn about '\x', but do not reject it.
9722
9723 2000-02-15  Jonathan Larmour  <jlarmour@redhat.co.uk>
9724
9725         * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define
9726         to default cpp spec.
9727         (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__.
9728         * cpp.texi: Document __GNUC_PATCHLEVEL__.
9729         * cpp.1: Likewise.
9730
9731         * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to
9732         default spec.
9733
9734 2000-02-15  Denis Chertykov  <denisc@overta.ru>
9735
9736         * configure.in: Add support for avr target.
9737
9738 Wed Feb 16 03:21:43 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9739
9740         * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode.
9741         (sh_addr_diff_vec_mode): Don't declare.
9742         * sh.c (sh_addr_diff_vec_mode): Delete.
9743
9744 Wed Feb 16 01:27:52 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9745
9746         * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn.
9747
9748 Wed Feb 16 00:58:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9749
9750         * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name.
9751         (smulsi3_highpart_i): Name.
9752         (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes.
9753         (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise.
9754         (smulsi3_highpart, umulsi3_highpart): Likewise.
9755
9756         (mulsidi3_i, umulsidi3_i): Make rtl describe operation
9757         correctly independent of endianness.
9758         (mulsidi3, umulsidi3): Now define_insn.  Hide details that
9759         confuse the optimizers.
9760         (mulsidi3+1, umulsidi3+1): New define_split.
9761
9762 Tue Feb 15 23:22:26 2000  Andrew Haley  <aph@cygnus.com>
9763
9764         * config/sh/sh.md: Guard insn splits against illegal registers.
9765         * config/sh/sh.h: Correct comment about macros.
9766
9767 Tue Feb 15 22:30:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
9768                           Andrew MacLeod  <amacleod@cygnus.com>
9769
9770         * Makefile.in (lcm.o): Depend on insn-attr.h.
9771         * basic-block.h (optimize_mode_switching): Declare.
9772         * lcm.c (tm_p.h, insn-attr.h): #include.
9773         (seginfo, bb_info): New structs.
9774         (antic, transp, comp, delete, insert) : New file-scope static variables.
9775         (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions.
9776         (reg_becomes_live, optimize_mode_switching): Likewise.
9777         * tm.texi: Add description of mode switching macros.
9778         * toplev.c (rest_of_compilation): Call optimize_mode_switching.
9779
9780         * sh-protos.h (remove_dead_before_cse): Remove prototype.
9781         (fldi_ok, fpscr_set_from_mem): New prototypes.
9782         * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set.
9783         (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS):
9784         Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
9785         (sh_flag_remove_dead_before_cse): Remove declaration.
9786         (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros.
9787         (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise.
9788         (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise.
9789         * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD).
9790         (barrier_align): Allow for JUMP_INSNS containing a parallel.
9791         (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set.
9792         (fldi_ok): New function.
9793         (get_fpscr_rtx): Add fpscr_rtx as GC root.
9794         (emit_sf_insn): Only generate fpu switches when optimize < 1.
9795         (emit_df_insn): Likewise.
9796         (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete.
9797         (sh_flag_remove_dead_before_cse): Delete.
9798         (get_free_reg, fpscr_set_from_mem): New functions.
9799         * sh.md (movdf, movsf): Remove no_new_pseudos code.
9800         (return): Remove emit_fpscr_use / remove_dead_before_cse calls.
9801
9802 2000-02-15  Loren Rittle  <ljrittle@acm.org>
9803
9804         * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD.
9805
9806 2000-02-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9807
9808         * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o,
9809         cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h.
9810
9811         * cccp.c: Include version.h and/or don't declare `version_string'.
9812         * collect2.c: Likewise.
9813         * alpha.c: Likewise.
9814         * arm/aof.h: Likewise.
9815         * arm/coff.h: Likewise.
9816         * arm/elf.h: Likewise.
9817         * arm/pe.h: Likewise.
9818         * arm/tcoff.h: Likewise.
9819         * arm/telf.h: Likewise.
9820         * arm/tpe.h: Likewise.
9821         * arm/vxarm.h: Likewise.
9822         * convex/convex.c: Likewise.
9823         * i386/dgux.c: Likewise.
9824         * i386/sun386.h: Likewise.
9825         * m88k/m88k.c: Likewise.
9826         * mcore/mcore-pe.h: Likewise.
9827         * mips/mips.h: Likewise.
9828         * romp/romp.h: Likewise.
9829         * sh/sh.c: Likewise.
9830         * cpphash.c: Likewise.
9831         * cppinit.c: Likewise.
9832         * dwarf2out.c: Likewise.
9833         * dwarfout.c: Likewise.
9834         * gcc.c: Likewise.
9835         * gcc.h: Likewise.
9836         * mips-tfile.c: Likewise.
9837         * protoize.c: Likewise.
9838         * toplev.c: Likewise.
9839         * tree.h: Likewise.
9840
9841         * version.c (version_string): Constify a char*.
9842
9843         * version.h: New file.
9844
9845 2000-02-14  Nick Clifton  <nickc@cygnus.com>
9846
9847         * configure.in: Add mcore-elf and mcore-pe targets.
9848         * configure: Regenerate.
9849
9850         * NEWS: Add note that MCore port has been contributed.
9851
9852         * invoke.texi: Document command line switches for MCore port.
9853         * install.texi: Add MCore to list of supported targets.
9854
9855 2000-02-14  Geoff Keating  <geoffk@cygnus.com>
9856
9857         * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames,
9858         then we will need to import the frame handling functions.
9859         (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need
9860         to import the frames themselves.
9861
9862 Mon Feb 14 13:31:01 2000  Stan Cox  <scox@cygnus.com>
9863                           Jason Eckhardt  <jle@cygnus.com>
9864
9865         * basic_block.h: Added prototype for reorder_basic_blocks.
9866         * toplev.c: Changes to add -freorder-blocks and graph dump after
9867         block reordering is done.
9868         * flow.c (reorder_block_def): New structure for use during block
9869         reordering.
9870         (REORDER_BLOCK_*): New macros to access members of above structure.
9871         (skip_insns_between_block, get_common_dest, chain_reorder_blocks,
9872         make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New
9873         functions for block reordering.
9874
9875 Mon Feb 14 11:24:44 2000  Hans-Peter Nilsson  <hp@bitrange.com>
9876
9877         * gcc.texi (Passes): Fix typo.
9878         * md.texi (Standard Names): Ditto.
9879         * tm.texi (Storage Layout): Ditto.
9880
9881 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
9882
9883         * cpplib.c (do_define): Only free the old definition if it
9884         actually had one.
9885
9886 2000-02-13   Neil Booth  <NeilB@earthling.net>
9887
9888         * cppfiles.c (read_and_prescan): When emitting deferred
9889         newlines, test speccase[] again instead of checking each
9890         possible whitespace character in turn.  When we encounter \r,
9891         look behind for \n first, then ahead.
9892
9893 2000-02-13  Zack Weinberg  <zack@wolery.cumb.org>
9894
9895         * cse.c (cse_altered): New internal flag.
9896         (cse_insn): Set it if we changed an insn.
9897         (cse_main): Clear cse_altered before each basic block.
9898         Only garbage collect if cse_altered is true afterward.
9899
9900 Sun Feb 13 14:12:28 2000  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9901
9902         * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling.
9903
9904 Sun Feb 13 13:21:55 2000  Jeffrey A Law  (law@cygnus.com)
9905
9906         * combine.c (simplify_comparison): Fix typo.
9907
9908 Sun Feb 13 12:57:52 2000  Neil Booth <NeilB@earthling.net>
9909
9910         * prefix.c (concat, lookup_key): Use xmalloc and xrealloc
9911         consistently.
9912
9913 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9914
9915         * flow.c (flow_loop_tree_node_add): Use better algorithm by passing
9916         previously inserted node instead of root node.  Caller changed.
9917
9918 2000-02-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9919
9920         * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete.
9921
9922 2000-02-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9923
9924         * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor,
9925         __dereg_frame_dtor): Add prototype argument.
9926
9927         * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise.
9928
9929         * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise.
9930
9931         * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise.
9932
9933         * gthr-vxworks.h (__gthread_once): Likewise.
9934
9935         * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise.
9936
9937 Sat Feb 12 01:44:26 MET 2000  Jan Hubicka  <jh@suse.cz>
9938
9939         * i386.c (ix86_emit_restore_regs_using_mov): Break out from ...
9940         (ix86_expand_epilogue): ... here. Use mov instead of add to restore
9941         stack pointer in functions w/o saved registers, output LEAVE more often
9942         on TARGET_USE_LEAVE machines.
9943
9944 2000-02-07  Dmitri Makarov  <dim@wrs.com> & Bernd Schmidt <bernds@redhat.com>
9945
9946         * config/arm/arm.c (arm_init_cumulative_args); New function:
9947         Initlaise the CUMULATIE_ARGS strcuture for a function
9948         defintion.
9949         (arm_function_arg): New function: Determine where to place a
9950         function's argument.  Also handles deciding the function's
9951         call cookie.
9952         (current_file_function_operand): New function: Return true if
9953         the symbol is a function which has already been compiled.
9954         (arm_is_long_call_p): New function: Return true if the
9955         indicated function should be called via a long call.
9956         (arm_valid_type_attribute_p): New function: Return true if the
9957         attribute is a valid, arm specific, attribute.
9958         (arm_comp_type_attribute): New function: Return true if the
9959         two types have compatable, arm specific, attributes.
9960
9961         * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a
9962         structure.
9963         (FUNCTION_ARG): Redefine to call arm_function_arg.
9964         (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct
9965         structure field.
9966         (INIT_CUMULATIVE_ARGS): Redefine to call
9967         arm_init_cumulative_args.
9968         (FUNCTION_ARG_ADVANCE): Redefine to use correct structure
9969         field.
9970         (SETUP_INCOMING_VARARGS): Redefine to use correct structure
9971         field.
9972         (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled
9973         functions.
9974         (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION.
9975         (VALID_MACHINE_TYPE_ATTRIBUTE): Define.
9976         (COMP_TYPE_ATTRIBUTES): Define.
9977
9978         * config/arm/arm.md (call): Call arm_is_long_call_p to decide
9979         if a long call is needed.
9980         (call_value): Call arm_is_long_call_p to decide if a long call
9981         is needed.
9982         (call_symbol): Call arm_is_long_call_p to decide if a long call
9983         is needed.
9984
9985         * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p.
9986
9987 2000-02-11  Denis Chertykov  <denisc@overta.ru>
9988
9989         * README.AVR: New file with information about the avr ports.
9990         * config/avr: New directory with avr port files.
9991
9992 2000-02-11  Andreas Jaeger  <aj@suse.de>
9993
9994         * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@.
9995
9996 2000-02-11  Zack Weinberg  <zack@wolery.cumb.org>
9997
9998         * cpphash.c: Fix formatting, update commentary.
9999         (dump_definition): Take three separate arguments instead of a
10000         MACRODEF structure argument.
10001         * cpphash.h: Update prototype of dump_definition.
10002         * cppinit.c (cpp_finish): Update call of dump_definition.
10003
10004         * cpplib.c (do_define): Always create new hash entry with
10005         T_MACRO type.  Remove redundant check for redefinition of
10006         poisoned identifier.  Update call of dump_definition.
10007         (do_undef): Don't call check_macro_name.  Rename sym_length to
10008         len.
10009         (do_error, do_warning): Don't use copy_rest_of_line or
10010         SKIP_WHITE_SPACE.
10011         (do_warning): Don't use pedwarn for the actual warning,
10012         only the notice about its not being in the standard.  (Fixes
10013         bug with #warning in system headers.)
10014         (do_ident): Stricter argument checking - accept only a single
10015         string after #ident.  Also, macro-expand the line.
10016         (do_xifdef): Use cpp_defined.  De-obfuscate.
10017
10018         (do_pragma): Split out specific pragma handling to separate
10019         functions.  Use get_directive_token.  Update commentary.  Do
10020         not pass on #pragma once or #pragma poison to the front end.
10021         (do_pragma_once, do_pragma_implementation, do_pragma_poison,
10022         do_pragma_default): New.
10023
10024 Feb 11 12:30:53 2000  Jeffrey A Law  (law@cygnus.com)
10025
10026         * jump.c (jump_optimize_1): The first operand in a relational
10027         can be a CONST_INT.
10028         * optabs.c (emit_conditional_move): Handle relationals which
10029         have a known true/false result.
10030
10031 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
10032
10033         * function.c (thread_prologue_and_epilogue_insns): Don't insert
10034         a RETURN insn into a block which already ends with a jump.
10035
10036 2000-02-11  Geoff Keating  <geoffk@cygnus.com>
10037
10038         * haifa-sched.c (BUF_LEN): Increase a lot.
10039
10040 2000-02-11  Nick Clifton  <nickc@cygnus.com>
10041
10042         * configure.in: Add tm_p_file specification for thumb targets.
10043         * configure: Regenerate.
10044
10045         * config/arm/thumb-protos.h: New file: Prototypes for exported
10046         functions defined in thumb.c.
10047
10048 2000-02-11  Robert Lipe  <robertl@sco.com>
10049
10050         * Makefile.in (bootstrap-lean): Remove additional files.
10051         (bootstrap2-lean): Likewise.
10052         (VOL_FILES): List of files for above.
10053
10054 2000-02-11  Nathan Sidwell  <nathan@acm.org>
10055
10056         * cpphash.c (special_symbol): Remove spurious argument to
10057         cpp_lookup.
10058
10059 2000-02-11  Joel Sherrill (joel@OARcorp.com>
10060
10061         * configure.in: (i*86-*-rtems*): Swapped elf and coff
10062         stanzas.
10063         * configure: Rebuilt.
10064
10065 2000-02-11  Rodney Brown  <RodneyBrown@pmsc.com>
10066
10067         * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef.
10068
10069 Fri Feb 11 02:59:05 2000  Jeffrey A Law  (law@cygnus.com)
10070
10071         * pa.c, pa.h: Remove trigraph sequences within comments.
10072
10073 Fri Feb 11 02:51:56 2000  Pavel Roskin <pavel_roskin@geocities.com>
10074
10075         * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics.
10076
10077 Fri Feb 11 02:48:30 2000  Brad Lucier  (lucier@math.purdue.edu)
10078
10079         * sbitmap.h: Make SBITMAP_ELT_BITS unsigned.
10080
10081 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10082
10083         * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE.
10084
10085 2000-02-11  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10086
10087         * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label.
10088         (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref.
10089         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
10090         (ASM_FILE_END): Use c4x_file_end.
10091         * config/c4x/c4x.c (c4x_global_label): New function.
10092         (c4x_external_ref, c4x_file_end): Likewise.
10093
10094         * config/c4x/c4x-protos.h (c4x_global_label): Add prototype.
10095         (c4x_external_ref, c4x_end_file): Likewise.
10096
10097 2000-02-10  Zack Weinberg  <zack@wolery.cumb.org>
10098
10099         * cppexp.c: Don't include cpphash.h.
10100         (parse_charconst, cpp_lex): Use cpp_defined.
10101         (cpp_lex): Use get_directive_token throughout.  Remove
10102         unnecessary cases from switch.  Move assertion-handling code
10103         down to OTHER case.
10104         (cpp_parse_expr): If we see '+' or '-', check the context to
10105         determine if they are unary or binary operators.  Streamline
10106         the jumps a bit.  Do not call skip_rest_of_line.
10107
10108         * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace
10109         static.  Export get_directive_token.  Update commentary.
10110         (cpp_defined): New function.
10111         (do_define): Remove reference to T_PCSTRING.  Call
10112         free_definition to release memory for old definition, when
10113         redefining a macro.
10114         (eval_if_expression): Set only_seen_white to 0 before calling
10115         cpp_parse_expr.  Call skip_rest_of_line after it returns.
10116         (cpp_read_check_assertion): Don't preserve a pointer into the
10117         token buffer across a call to cpp_get_token.
10118
10119         * Makefile.in (cppexp.o): Don't depend on cpphash.h.
10120         * cppfiles.c (redundant_include_p): Use cpp_defined.
10121         * cpphash.c (free_definition): New function.
10122         (delete_macro): Use it.  Update commentary.
10123         * cpphash.h: Typedef HASHNODE here.  Prototype cpp_lookup and
10124         free_definition.
10125         * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING
10126         from enum node_type.  Prototype cpp_defined and get_directive_token.
10127         Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace.
10128
10129         * fix-header.c (check_macro_names): Use cpp_defined.
10130         (read_scan_file): Set inhibit_warnings and inhibit_errors in
10131         the options structure.
10132
10133 2000-02-10  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
10134
10135         * c-pragma.c (maximum_field_alignment): Remove duplicate declaration.
10136
10137 2000-02-10  Jason Merrill  <jason@casey.cygnus.com>
10138
10139         * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin)
10140         rather than die->die_tag.
10141
10142 Thu Feb 10 16:26:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10143
10144         * combine.c (make_extraction, force_to_mode): Avoid warning on
10145         mixed-signedness conditionals.
10146         (make_field_assignment, nonzero_bits): Likewise.
10147         * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned.
10148         (store_split_bit_field, extract_split_bit_field): Likewise.
10149         (extract_fixed_bit_field, store_bit_field,
10150         * expr.c: Change alignment to be unsigned everywhere.
10151         (move_by_pieces, store_constructor_field, store_constructor):
10152         Alignment parm is unsigned.
10153         (emit_block_move, emit_group_load, emit_group_store): Likewise.
10154         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
10155         (do_compare_rtx_and_jump): Likewise.
10156         (move_by_pieces_ninsns, clear_by_pieces): Likewise.
10157         Compare align with GET_MODE_ALIGNMENT.
10158         (expand_expr_unaligned): Pointer to alignment is pointer to unsigned.
10159         (get_inner_reference): Likewise.
10160         (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts.
10161         (expand_assignment): Local vars for alignment now unsigned.
10162         (store_constructor, store_field, expand_expr, do_jump): Likewise.
10163         (do_compare_and_jump): Likewise.
10164         (store_field): Call new function expr_align.
10165         * expr.h (emit_block_move, emit_group_load, emit_group_store):
10166         Alignment arg now unsigned.
10167         (clear_storage, emit_push_insn, compare_from_rtx): Likewise.
10168         (do_compare_rtx_and_jump, store_bit_field): Likewise.
10169         (extract_bit_field): Likewise.
10170         * fold-const.c (add_double): Add cast to eliminate signedness warning.
10171         * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned.
10172         (get_best_mode): Alignment arg is unsigned.
10173         * rtl.h (move_by_pieces): Likewise.
10174         * store-layout.c (maximum_field_alignment, set_alignment):
10175         Now unsigned.
10176         (layout_decl): Alignment arg is now unsigned.
10177         Remove unneeded casts.
10178         (layout_record, layout_union, layout_type): Remove unneeded casts.
10179         Local alignment variables now unsigned.
10180         (get_best_mode): Alignment arg now unsigned.
10181         * tree.c (expr_align): New function.
10182         * tree.h (expr_align): Likewise.
10183         (maximum_field_alignment, set_alignment): Now unsigned.
10184         (get_inner_reference): Alignment argument is now pointer to unsigned.
10185         * varasm.c (assemble_variable): Add cast to eliminate warning.
10186
10187 Thu Feb 10 12:56:47 2000  Jim Wilson  <wilson@cygnus.com>
10188
10189         * expmed.c (store_bit_field): If op0 and fieldmode are the same size,
10190         then store directly into op0.
10191
10192         * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for
10193         the CALL_INSN, and emit the note immediately after it.
10194
10195 2000-02-10  Nick Clifton  <nickc@cygnus.com>
10196
10197         * config/arm/thumb.md (epilogue): Include a (return) in the
10198         generated insn, and emit it using emit_jump_insn not
10199         emit_insn.
10200
10201 Thu Feb 10 18:28:59 MET 2000  Jan Hubicka  <jh@suse.cz>
10202
10203         * function.c (assign_temp): Change zero-sized arrays to size 1.
10204         * integrate.c (expand_inline_function): Do not update
10205         stack_alignment_needed
10206         * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY,
10207         add some sanity checking, remove optimization for function with
10208         zero frame size.
10209
10210 2000-02-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10211
10212         * flow.c (mark_regs_live_at_end): Delete unused variables.
10213
10214         * ggc-page.c (ggc_page_print_statistics): bzero -> memset.
10215
10216         * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment'
10217         in macro FRAME_GROWS_DOWNWARD.
10218
10219         * stmt.c (expand_end_bindings): Delete unused variable.
10220
10221         * unroll.c (iteration_info): Mark parameter `loop' with
10222         ATTRIBUTE_UNUSED.
10223
10224 2000-02-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
10225
10226         * fixinc/server.c (load_data): Return NULL if the marker line is
10227         not found.
10228         (run_shell): If load_data returns NULL, retry the command once, in
10229         a new shell.
10230
10231         * configure: Rebuilt.
10232
10233 2000-02-09  Bruce Korb  <bkorb@gnu.org>
10234
10235         * gcc/fixincludes:  ** DELETED **
10236         * gcc/fixcpp:  ** DELETED **
10237         * gcc/fixinc-nt.sed:  ** DELETED **
10238         * gcc/just-fixinc:  ** DELETED **
10239         * gcc/Makefile.in:  Removed out-dated commentary
10240         * gcc/configure.in: Removed fast-fixincludes disablement.
10241         * MAINTAINERS(Ian Taylor) moved to "Write after approval" group.
10242
10243 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
10244         * function.c (thread_prologue_and_epilogue_insns): Uncomment
10245         last change.
10246
10247 2000-02-09  Richard Henderson  <rth@cygnus.com>
10248
10249         * jump.c (delete_insn): Don't delete user labels at -O0.
10250
10251 2000-02-09  Robert Lipe  <robertl@sco.com>
10252
10253         * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS.
10254         Don't link with HOST_LIBS.
10255
10256 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10257
10258         * configure.in: Correct --help text for --with-dwarf2.
10259         Put tm-dwarf2.h after other tm files, if it's requested.
10260         * configure: Regenerate.
10261         * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before
10262         defining it.
10263
10264 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10265
10266         * cpplib.h: Provide HASHNODE typedef and forward decl of
10267         struct hashnode only.  Kill cpp_hashnode typedef.  MACRODEF,
10268         DEFINITION, struct hashnode, struct macrodef, struct
10269         definition, scan_decls prototype, default defn of
10270         INCLUDE_LEN_FUDGE moved elsewhere.
10271
10272         * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct
10273         definition, and struct hashnode moved here. Remove the unused
10274         'predefined' field from struct definition.  Replace the 'args'
10275         union with its sole member.  All users updated (cpphash.c).
10276         Delete HASHSTEP and MAKE_POS macros, and hashf prototype.  Add
10277         multiple include guard.
10278
10279         * cpphash.c (hashf): Make static; use better algorithm; drop
10280         HASHSIZE parameter; return an unsigned int.
10281         (cpp_lookup): Drop HASH parameter.  PFILE parameter is
10282         used. Calculate HASHSIZE modulus here.
10283         (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus
10284         here.
10285         (create_definition): Drop PREDEFINITION parameter.
10286         * cpplib.c (do_define): Don't calculate a hash value here.
10287         Don't pass (keyword == NULL) to create_definition.
10288
10289         * scan.h: Prototype scan_decls here.
10290         * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here.
10291         * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All
10292         callers of cpp_lookup and cpp_install updated.
10293
10294         * cpphash.c (macarg): Hoist all the flag diddling out of the
10295         function...
10296         (macroexpand): ... and out of the loop that calls macarg.
10297         Skip over the initial paren before macro arguments with
10298         cpp_get_non_space_token; point may be some distance before
10299         that paren.  Abort if it's not there.
10300
10301         * cpplib.c (parse_clear_mark): Delete function.
10302         (parse_set_mark, parse_goto_mark): Make static.
10303         (ACTIVE_MARK_P): New macro.
10304         (skip_block_comment, skip_line_comment): Do not bump the line
10305         if ACTIVE_MARK_P is true.
10306         (cpp_pop_buffer): The buffer to be popped may not have an
10307         active mark.
10308         (cpp_get_token): When looking for the initial paren before
10309         macro arguments, only set a mark in a file buffer, Always
10310         return to that mark before proceeding to call macroexpand or
10311         return a NAME token.
10312
10313         * cpplib.h: Remove prototypes of parse_set_mark,
10314         parse_clear_mark, parse_goto_mark.
10315         (struct cpp_options): Rename 'put_out_comments' to
10316         'discard_comments' and invert its sense.
10317         * cppinit.c, cpphash.c, cpplib.c: All users of
10318         put_out_comments changed to use discard_comments, with
10319         opposite sense.
10320
10321 2000-02-09  Clinton Popetz  <cpopetz@cygnus.com>
10322
10323         * function.c (thread_prologue_and_epilogue_insns): Don't delete
10324         the edge from a block that both jumps and falls through to the
10325         fallthru block.
10326
10327 2000-02-09  Scott Bambrough  <scottb@netwinder.org>
10328
10329         * config/arm/arm.md (movsi): In PIC mode, make sure that a
10330         constant source address is legitimate.
10331
10332 2000-02-09  Philip Blundell  <pb@futuretv.com>
10333
10334         * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF
10335         correctly.
10336
10337         * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when
10338         generating PIC.
10339         (LEGITIMATE_PIC_OPERAND): Disallow references to labels.
10340
10341 2000-02-09  Zack Weinberg  <zack@wolery.cumb.org>
10342
10343         * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer
10344         ends with a newline and a NUL.  Don't be so clever manipulating
10345         strings.
10346
10347 Wed Feb  9 14:18:08 MET 2000  Jan Hubicka  <jh@suse.cz>
10348
10349         * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed,
10350         not to BIGGEST_ALIGNMENT.
10351
10352 2000-02-08  Geoff Keating  <geoffk@cygnus.com>
10353
10354         * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant.
10355         * dwarf2out.c (dwarf_cfi_name): Print name of new constant.
10356         (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed.
10357         (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended.
10358         * frame.c (execute_cfa_insn): Handle
10359         DW_CFA_GNU_negative_offset_extended.
10360
10361 2000-02-08  Richard Henderson  <rth@cygnus.com>
10362
10363         * flow.c (tidy_fallthru_edges): Split out from ...
10364         (delete_unreachable_blocks): ... here.
10365         (find_basic_blocks): Use it.
10366
10367 Tue Feb  8 15:51:50 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10368
10369         * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY.
10370
10371 2000-02-08  Zack Weinberg  <zack@wolery.cumb.org>
10372
10373         * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a.
10374         (gen_protos.o): Don't depend on cpplib.h or cpphash.h.
10375         (fix-header.o): Don't depend on cpphash.h.
10376
10377         * scan.c (hashstr): New function.
10378         * scan.h: Prototype it.
10379         * fix-header.c: Don't include cpphash.h.  Use hashstr.
10380         * gen-protos.c: Don't include cpphash.h or cpplib.h.  Use
10381         hashstr.  Report hash table statistics.  Add private
10382         definition of xrealloc.
10383
10384 2000-02-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10385
10386         * i386.h (TARGET_SWITCHES): Fix typo in option name.
10387
10388 2000-02-08  Clinton Popetz  <cpopetz@cygnus.com>
10389
10390         * function.c (thread_prologue_and_epilogue_insns): Don't replace
10391         jumps with returns unless they are jumps to the fallthru block.
10392
10393 Tue Feb  8 07:53:55 2000  Jan Hubicka  <jh@suse.cz>
10394
10395         * i386.md (addqi3_cc): Fix contraints.
10396
10397 Tue Feb  8 01:39:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10398
10399         * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return.
10400
10401 2000-02-07  Mark Mitchell  <mark@codesourcery.com>
10402
10403         * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a
10404         carriage return after a macro name.
10405
10406 2000-02-07  Fred Fish  <fnf@be.com>
10407
10408         * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing
10409         so the gcc2_compiled symbol doesn't confuse BeOS debuggers.
10410
10411 2000-02-07  Zack Weinberg  <zack@wolery.cumb.org>
10412
10413         * cppfiles.c (deps_output): Count spacers in deps_column.
10414
10415 2000-02-07  Neil Booth  <NeilB@earthling.net>
10416
10417         * cppinit.c (initialize_dependency_output): If there is no
10418         suffix, don't try to look for known suffixes.  Use strrchr.
10419         (cpp_start_read): Remove duplicate initialization.
10420
10421 Mon Feb  7 18:36:41 MET 2000  Jan Hubicka  <jh@suse.cz>
10422
10423         * calls.c (compute_argument_block_size): New argument
10424         preferred_stack_boundary.
10425         (expand_call): update cfun->preferred_stack_boundary, update call of
10426         compute_argument_block_size
10427         (emit_library_call): Increate cfun->preferred_stack_boundary
10428         to PREFERRED_STACK_BOUNDARY
10429         (emit_library_call_value): Likewise.
10430         * explow.c (allocate_dynamic_stack_spave): Likewise.
10431         * function.c (prepare_function_start): Set
10432         cfun->preferred_stack_boundary
10433         * function.h (struct function): Add preferred_stack_boundary field.
10434         * integrate.c (expand_inline_function): Update
10435         cfun->preferred_stack_boundary and cfun->stack_alignment_needed.
10436         (copy_rtx_and_substitute): Align frame to stack_alignment_needed only.
10437         * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary.
10438
10439 2000-02-06  Zack Weinberg  <zack@wolery.cumb.org>
10440
10441         * cpplib.c (my_strerror, cpp_error, cpp_error_with_line,
10442         cpp_error_from_errno, cpp_warning, cpp_warning_with_line,
10443         cpp_pedwarn, cpp_pedwarn_with_line,
10444         cpp_pedwarn_with_file_and_line): Move to cpperror.c.
10445         (cpp_print_file_and_line, v_cpp_error, v_cpp_warning,
10446         v_cpp_error_with_line, v_cpp_warning_with_line,
10447         cpp_message_from_errno, cpp_perror_with_name): Delete.
10448
10449         * cpperror.c (cpp_print_containing_files): Take starting
10450         buffer as argument.
10451         (cpp_file_line_for_message): Rename to cpp_print_file_and_line.
10452         (v_cpp_message): Now called directly by all entry points.
10453         Remove -1 case.
10454         (cpp_pfatal_with_name, cpp_message): Delete.
10455         (cpp_notice_from_errno, cpp_ice): New functions.
10456         (cpp_notice): Is now for reporting error conditions, just
10457         without an associated file.
10458         (cpp_error, cpp_error_with_line): Don't do anything if
10459         opts->inhibit_errors is on.
10460         (cpp_pedwarn_with_file_and_line): Take column argument also.
10461
10462         * cpplib.h: Update prototypes of exported functions.
10463         (struct cpp_options): Add inhibit_errors.
10464
10465         * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for
10466         non-error messages.  Include intl.h.
10467
10468         * cppinit.c, cppmain.c: Likewise.  Also, use
10469         cpp_notice_from_errno instead of cpp_perror_with_name or
10470         cpp_pfatal_with_name, and cpp_notice instead of cpp_message.
10471
10472         * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to
10473         report internal errors.
10474
10475         * cpplib.c (do_define): Switch bcopy to memcpy.
10476         Give cpp_pedwarn_with_file_and_line a dummy column argument.
10477
10478         * cpplib.c (copy_rest_of_line): Revert previous change: don't
10479         bail out early if we hit a line comment.
10480
10481 2000-02-06  Richard Henderson  <rth@cygnus.com>
10482
10483         * flow.c (flow_delete_insn, make_edge, remove_edge): Export.
10484         * basic-block.h: Declare them.
10485         * emit-rtl.h (active_insn_p): New.
10486         (next_active_insn, prev_active_insn): Use it.
10487         * rtl.h: Declare it.
10488         * function.c (emit_return_into_block): New.
10489         (thread_prologue_and_epilogue_insns): Insert return insns instead
10490         of epilogues when possible.
10491         * jump.c (jump_optimize_1): Remove code to insert a return insn
10492         on the fallthru to the exit block.
10493
10494         * i386.c (ix86_can_use_return_insn_p): Fail for large poped args
10495         and for non-empty stack frames.
10496         * i386.md (return): Expand to return-pop as needed.
10497
10498 2000-02-06  Richard Henderson  <rth@cygnus.com>
10499
10500         * simplify-rtx.c (simplify_relational_operation): Canonicalize
10501         constant to op1 for testing.
10502
10503 2000-02-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10504
10505         * config/c4x/c4x.md (*ldi_on_overflow): New pattern.
10506         (fixuns_truncqfqi2): Use it.
10507
10508 2000-02-06  Richard Henderson  <rth@cygnus.com>
10509
10510         * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack
10511         as a TYPE_LEA insn.
10512
10513         * i386.md (widening and peepholes): Mask the constant instead of
10514         using gen_lowpart.
10515
10516 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
10517
10518         * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump
10519         input pointer before possibly branching off to the backslash
10520         code.
10521         * cpphash.c (macroexpand): Correctly delete \r escapes when
10522         stringifying parameters.
10523         * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment
10524         if we can; bail out early if we hit a line comment.
10525         (handle_directive): Treat '# 123' in an .S file just like
10526         '# <punctuation>'.  Discard the shifted '#' if we hit '#\n'.
10527         Return 1 for '# not_a_directive'.
10528         (get_directive_token): Pop macro buffers here, so that
10529         cpp_get_token can't sneakily move past a newline.
10530         Add sanity checks.
10531         (cpp_get_token): goto randomchar if handle_directive returns 0.
10532
10533         * cppalloc.c: Update copyright.
10534         * cpplib.c: Merge all the static function prototypes into one
10535         block.
10536         * cpplib.h: Remove #if 0 block.
10537
10538         * cpperror.c: Remove #ifdef EMACS block.
10539         * cppmain.c: Likewise.
10540         * cpphash.c: Remove #if 0 blocks.
10541         * cppinit.c: Remove #if 0 blocks, and the -lint option.
10542         * cpplib.c: Remove #if 0 blocks and code referencing
10543         pcp_inside_if or for_lint.  Remove duplicate error message.
10544         Fix error messages for #else after #else or #elif.  Reformat.
10545         Remove archaic TODO list.
10546         * cpplib.h: Remove pcp_inside_if and for_lint flags.
10547
10548 2000-02-05  Zack Weinberg  <zack@wolery.cumb.org>
10549
10550         * i386/osf1elf.h: Add missing backslash to multiline string.
10551
10552 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10553
10554         * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg.
10555
10556 2000-02-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10557
10558         * Makefile.in (c-common.o): Depend on $(EXPR_H).
10559
10560         * c-common.c: Include expr.h.
10561
10562         * c-pragma.c (mark_align_stack): Add prototype.
10563
10564         * caller-save.c (add_stored_regs): Likewise.
10565
10566         * combine.c (record_promoted_value): Likewise.
10567
10568         * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro):
10569         Likewise.
10570
10571         * cppinit.c (new_pending_define): Likewise.
10572
10573         * cpplib.c (skip_block_comment, skip_line_comment): Likewise.
10574
10575         * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists,
10576         AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
10577         AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p,
10578         class_scope_p): Likewise.
10579
10580         * dwarf2out.h (dwarf2out_set_demangle_name_func,
10581         dwarf2out_add_library_unit_info): Likewise.
10582
10583         * ggc.h (ggc_page_print_statistics): Likewise.
10584
10585         * haifa-sched.c (propagate_deps): Likewise.
10586
10587         * reg-stack.c (next_flags_user, record_label_references): Likewise.
10588
10589         * rtl.h (set_stack_check_libfunc): Likewise.
10590
10591         * toplev.h (set_fatal_function): Likewise.
10592
10593         * toplev.c (set_fatal_function): Delete prototype.
10594
10595         * diagnostic.c: Deconstify functions returning malloc'ed ptrs.
10596
10597 2000-02-05  Geoff Keating  <geoffk@cygnus.com>
10598
10599         * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX.
10600         (FUNC_END): Likewise.
10601
10602 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10603
10604         * caller-save.c: Include tm_p.h.
10605
10606 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10607
10608         * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2).
10609
10610 2000-02-04  Neil Booth  <NeilB@earthling.net>
10611
10612         * cccp.c (main): Check 'dir' for a NULL pointer before passing
10613         it to strcmp.
10614
10615 2000-02-04  Zack Weinberg  <zack@wolery.cumb.org>
10616
10617         * recog.h: Remove NO_MD_PROTOTYPES ifdefs.
10618         * genflags.c: Use the max_operand_1 logic from genemit.c to
10619         calculate how many arguments gen_insn prototypes have.  Remove
10620         NO_MD_PROTOTYPES ifdefs from the generated file.
10621         * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated
10622         file.  Cast gen_insn initializers to insn_gen_fn.
10623         * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES.
10624         * gcc.texi: Remove documentation of NO_MD_PROTOTYPES.
10625
10626 2000-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10627
10628         * fixinc/Makefile.in (HDR): Add machname.h.
10629         (clean): Likewise.
10630
10631 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10632
10633         * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ...
10634         (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto.
10635         (c4x_cpu_version): Ditto.
10636         * config/c4x/c4x-protos.h: ... here.
10637
10638 2000-02-04  Jason Merrill  <jason@casey.cygnus.com>
10639
10640         * dwarf2out.c (add_abstract_origin_attribute): Don't call
10641         gen_abstract_function on our context if we're a nested function.
10642
10643 2000-02-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10644
10645         * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite.
10646         * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix.
10647
10648 2000-02-04  Bruce Korb  <bkorb@gnu.org>
10649
10650         * fixinc/genfixes(machname.h):
10651         Move the functionality from gen-machine.h into this file.
10652         UNdef MN_NAME_PAT if there are no names to change.
10653         Also, be a little kinder when AutoGen is not present.
10654
10655         * fixinc/Makefile.in(machname.h):
10656         Change the generation rule to use genfixes.
10657
10658         * fixinc/fixfixes.c(machine_name):
10659         machine_name_fix's functionality now dependent upon whether
10660         MN_NAME_PAT is defined.
10661
10662         * fixinc/fixtests.c(machine_name):
10663         ditto.
10664
10665         * fixinc/fixlib.c(mn_get_regexps): conditional on definition
10666         of MN_NAME_PAT.
10667
10668         * fixinc/fixlib.h(mn_get_regexps):
10669         ditto
10670
10671         * fixinc/gen-machine.h: DELETED
10672
10673 2000-02-04  Jan Hubicka  <jh@suse.cz>
10674             Richard Henderson  <rth@cygnus.com>
10675
10676         * i386.c (SAVE_REGS_FIRST): Remove.
10677         (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode.
10678         (ix86_compute_frame_size): Likewise.
10679         (ix86_expand_prologue): Likewise.  Use pro_epilogue_adjust_stack.
10680         (ix86_emit_restore_regs): Remove.
10681         (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack
10682         when a frame pointer is in use.
10683         (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode.  Use mov
10684         instead of pop to restore a register when profitable; emit leave
10685         when profitable.
10686         (ix86_attr_length_default): Handle pro_epilogue_adjust_stack
10687         as a TYPE_LEA insn.
10688         (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU.
10689         * i386.md (prologue_allocate_stack): Remove.
10690         (epilogue_deallocate_stack): Remove.
10691         (pro_epilogue_adjust_stack): New.
10692
10693 2000-02-04  Richard Henderson  <rth@cygnus.com>
10694
10695         * function.c (diddle_return_value): Rework to use a callback function.
10696         Use current_function_return_rtx if it's been set up.
10697         (do_clobber_return_reg, clobber_return_register): New.
10698         (do_use_return_reg, use_return_register): New.
10699         (expand_function_end): Use them.
10700         * stmt.c (expand_null_return): Likewise.
10701         * function.h: Declare them.
10702         * flow.c (mark_regs_live_at_end): Use diddle_return_value.
10703         (mark_reg): Change arguments as appropriate for callback.
10704         * integrate.c (expand_inline_function): Revert 19 Jan change.
10705
10706 Fri Feb  4 20:25:42 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10707
10708         * tm.texi (Values in Registers): Fix typo: "fo" "for".
10709         (Misc): Say the scheduler, not the Haifa scheduler.
10710
10711 2000-02-04  Clinton Popetz  <cpopetz@cygnus.com>
10712
10713         * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs
10714         when in_mem is set.  Update all callers.
10715
10716 2000-02-04  Richard Henderson  <rth@cygnus.com>
10717
10718         * i386/openbsd.h (INT_ASM_OP): Define.
10719
10720 Fri Feb  4 10:51:30 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10721
10722         * tm.texi: Fix various typos.
10723
10724 Thu Feb  3 17:17:32 2000  Steve Ellcey <sje@cup.hp.com>
10725
10726         * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case.
10727         (MD_STARTFILE_PREFIX_1): New macro.
10728
10729 Thu Feb  3 15:08:13 MET 2000  Jan Hubicka  <jh@suse.cz>
10730
10731         * i386.md (movstrsi, clrstrsi): Support variable sized copies, align
10732         destination when needed.
10733         (strmovsi, strsetsi): New expander.
10734         (strmovsi_1, strsetsi_1): New pattern.
10735         * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP,
10736         TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros.
10737         (TARGET_SWITCHES) Add align-stringops and inline-all-stringops.
10738         * invoke.texi (align-stringops, inline-all-stringops): Document.
10739
10740 Wed Feb  2 23:04:47 2000   Krister Walfridsson <cato@df.lth.se>
10741
10742         * i386/netbsd.h (INT_ASM_OP): Define.
10743
10744 2000-02-02  Zack Weinberg  <zack@wolery.cumb.org>
10745
10746         * cpplib.h (cpp_reader): Add new flag, no_directives.
10747         * cpphash.c (macarg): Set it.
10748         * cpplib.c (handle_directive): If no_directives is on and we
10749         find a directive, issue an error and discard the line.
10750
10751 Wed Feb  2 13:07:10 2000  Jim Wilson  <wilson@cygnus.com>
10752
10753         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for
10754         FP constants.  Add ! TARGET_FPU check for FP constants.
10755
10756 2000-02-02  Clinton Popetz  <cpopetz@cygnus.com>
10757
10758         * flow.c (find_basic_blocks): Don't kill label_value_list
10759         here.
10760         (cleanup_cfg): Kill it here.
10761
10762 Wed Feb  2 08:12:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10763
10764         * expr.c (store_field): Ensure ALIGN is no stricter than the
10765         alignment of EXP.
10766
10767 2000-02-02  Richard Henderson  <rth@cygnus.com>
10768
10769         * jump.c (delete_insn): Partially revert 19 Jan change;
10770         don't convert unused code labels to notes at -O0.
10771
10772 2000-02-02 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10773
10774         * toplev.c (rest_of_compilation): Run rebuild_jump_labels after
10775         split_all_insns to recreate REG_LABEL notes for flow2 pass.
10776
10777 2000-02-01  Richard Henderson  <rth@cygnus.com>
10778
10779         * i386.c (general_no_elim_operand): New.
10780         (nonmemory_no_elim_operand): New.
10781         (ix86_expand_move): Copy eliminable operands before a push.
10782         * i386-protos.h: Declare new functions.
10783         * i386.h (CAN_ELIMINATE): Simplify.
10784         (PREDICATE_CODES): Update.
10785         * i386.md (push insns): Don't allow eliminable register operands.
10786
10787 2000-02-01  Richard Henderson  <rth@cygnus.com>
10788
10789         * flow.c (mark_regs_live_at_end): Follow expand_function_end and
10790         replace BLKmode with DECL_RTL's mode.
10791
10792 2000-02-01  Zack Weinberg  <zack@wolery.cumb.org>
10793
10794         * frame.c (find_fde): Convert for loop to do-while so compiler
10795         sees it's always executed at least once.
10796         * libgcc2.c (BBINBUFSIZE): Kill.
10797         (__bb_init_prg): Use fgets.
10798         (__bb_exit_trace_func): Don't paste strings.
10799         * unroll.c (unroll_loop): Initialize unroll_type, not
10800         unroll_number, and tweak logic to match.
10801
10802         * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in
10803         all failure paths.
10804         (ix86_flags_dependant): Likewise.  Disentangle control flow.
10805         (ix86_sched_reorder): Break guts out to
10806         ix86_sched_reorder_pentium and ix86_sched_reorder_ppro.
10807         (ix86_sched_reorder_ppro): Initialize pair2 and insnp before
10808         any possible use.
10809
10810         * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't
10811         use string concatenation.  Don't save and restore esi.
10812
10813         * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def.
10814         (machname.h): Remove script to separate file.  Use two-step
10815         sequence so target is not created if script fails.
10816         * fixinc/gen-machname.h: New file.  Handle case where no non-reserved
10817         identifiers are defined.
10818         * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is
10819         an empty string, machine_name doesn't need to do anything at
10820         all.
10821         (is_cxx_header): Add more cases to regexp.
10822         * fixinc/fixlib.h: Update prototype.
10823         * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of
10824         mn_get_regexps.
10825         * fixinc/fixincl.c: Define NO_BOGOSITY.
10826
10827         * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out.
10828         (hp_sysfile): Add missing comma.
10829         (math_exception): Put the wrapper ifdefs at the beginning and
10830         the end of the file.
10831         * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate.
10832
10833 2000-02-01  Richard Henderson  <rth@cygnus.com>
10834
10835         * sparc.c (fp_zero_operand): Turn into a normal predicate.
10836         Use CONST0_RTX.  Update all callers.
10837         * sparc.h, sparc-protos.h: Update accordingly.
10838         * sparc.md (fp mov insns): Use fp_zero_operand directly
10839         where applicable.
10840
10841 Wed Feb  2 02:59:45 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10842
10843         * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS
10844         example.
10845
10846 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10847
10848         * Makefile.in (specs.ready): New target.
10849         (fixinc.sh): Depend on `specs.ready' instead of `specs'.
10850
10851 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10852
10853         * fixinc.irix: Use unique filenames for writing into /tmp,
10854         * fixinc.ptx: Likewise.
10855         * fixinc.sco: Likewise.
10856         * fixinc.svr4: Likewise.
10857         * fixinc.winnt: Likewise.
10858
10859 2000-02-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10860
10861         * tsystem.h: New file.
10862
10863         * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o,
10864         s-crtS): Depend on tsystem.h.
10865
10866         * crtstuff.c: Include tsystem.h.
10867         * frame.c: Likewise.
10868         * libgcc2.c: Likewise.
10869
10870 Tue Feb  1 19:53:27 CET 2000  Jan Hubicka  <jh@suse.cz>
10871
10872         * builtins.c (expand_builtin_memset): Expand for variable sized
10873         lengths too.
10874
10875 2000-02-01  David Billinghurst <David.Billinghurst@riotinto.com.au>
10876
10877         * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based
10878         on ABI.
10879
10880 Tue Feb  1 00:57:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
10881
10882         * dwarfout.c (SHORT_TYPE_SIZE): Correct default.
10883
10884         * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE.
10885
10886 2000-01-31  Chandra Chavva <cchavva@cygnus.com>
10887
10888         * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
10889         case 3->2 combining (combining with splitting) in which 2 is CC0
10890         setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
10891         checked at the begining of the function with the aid of calling
10892         function 'can_combine_p'.
10893
10894 2000-01-31  Dave Brolley  <brolley@redhat.com>
10895
10896         * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'.
10897
10898 2000-01-31  Jason Merrill  <jason@casey.cygnus.com>
10899
10900         * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the
10901         new label.
10902
10903 2000-01-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10904
10905         * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros.
10906
10907         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit):
10908         PROTO -> PARAMS.
10909
10910 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
10911
10912         * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h,
10913         i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h,
10914         i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h,
10915         i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h,
10916         i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h,
10917         i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h,
10918         i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h,
10919         i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h,
10920         i386/vxi386.h, i386/win-nt.h, i386/win32.h:
10921         Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES.
10922
10923         * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h:
10924         Add %(cpp_cpu) to CPP_SPEC.
10925
10926         * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h:
10927         Add %(cc1_cpu) to CC1_SPEC.
10928
10929 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
10930
10931         * c-decl.c (c_decode_option): Accept optional numeric argument to
10932         -Wformat and set warn_format.
10933         * c-common.c: Don't emit warning about non-constant printf format
10934         string unless warn_format > 1.
10935
10936 2000-01-30  Richard Henderson  <rth@cygnus.com>
10937
10938         * alpha.md (return_internal): Allow after reload only.
10939
10940 2000-01-30  Richard Henderson  <rth@cygnus.com>
10941
10942         * i386.c (ix86_compute_frame_size): Omit padding1 if the
10943         local frame size is zero.
10944
10945 2000-01-30  Richard Henderson  <rth@cygnus.com>
10946
10947         * alpha.c (alpha_expand_epilogue): Don't emit the return insn.
10948         * alpha.h (EPILOGUE_USES): New.  Mark $26 live.
10949         * alpha.md (return): Turn into an expander.
10950         (return_internal): Don't use $26.
10951         (epilogue): Emit the return insn.
10952
10953 2000-01-30  Richard Henderson  <rth@cygnus.com>
10954
10955         * alpha.md (negtf2, abstf2): Fix word order thinko.
10956         (extendsftf2): New.
10957         (trunctfsf2): Avoid intermediate rounding errors.
10958
10959 2000-01-30  Zack Weinberg  <zack@wolery.cumb.org>
10960
10961         * cppfiles.c (find_position): Drop 'colp' argument, return the
10962         new line base.
10963         (read_and_prescan): Adjust to match.  Don't ever manipulate
10964         line or line_base except via find_position.
10965
10966 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
10967
10968         * c-parse.in: Apply Ulrich's changes from c-parse.y.
10969         * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c:
10970         Regenerate.
10971
10972 2000-01-29  Zack Weinberg  <zack@wolery.cumb.org>
10973
10974         * cpperror.c (cpp_file_line_for_message): If 'line' is zero,
10975         just print "<command line>".  If 'filename' is null or an
10976         empty string, print "<stdin>" for the filename.
10977         * cpplib.c (do_define): Don't print the 'location of the
10978         previous definition' message if we're still parsing the
10979         command line.
10980         (cpp_pedwarn_with_file_and_line): Always call
10981         cpp_file_line_for_message.
10982
10983 2000-01-29  Mark Mitchell  <mark@codesourcery.com>
10984
10985         * flow.c (mark_regs_live_at_end): Fix typo.
10986
10987 2000-01-28  Ulrich Drepper  <drepper@redhat.com>
10988
10989         * c-common.c: Adjust variable names, comments, help strings to c99.
10990         * c-lex.c: Likewise.
10991         * c-parse.y: Likewise.
10992         * c-tree.h: Likewise.
10993         * cccp.c: Likewise.
10994         * cpplib.h: Likewise.
10995         * c-decl.c: Likewise.  Recognize options with names "*99" as well.
10996         * cppinit.c: Likewise.
10997
10998 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
10999
11000         * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
11001         * c4x.c: Define the optab rtx values.
11002         (c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
11003         (c4x_emit_libcall): Use new optab rtx values.
11004         (c4x_emit_libcall3): Likewise.
11005         (c4x_emit_libcall_mulhi): Likewise.
11006         * c4x-protos.h: Add prototypes for optab rtx values and change
11007         prototypes for above c4x_emit_libcall functions.
11008
11009 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11010
11011         * c4x.c (c4x_output_ascii): Restrict line length of output when TI
11012         syntax is used.
11013         (c4x_function_prologue): Use regnames intead of float_reg_names when
11014         TI syntax is used.
11015         (c4x_function_epilogue): Likewise.
11016         (c4x_print_operand): Likewise.
11017         * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
11018         * c4x.md (set_high): Disable for TARGET_TI.
11019
11020 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11021
11022         * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
11023         of framepointer + constant to ADDR_REGS class.
11024         * c4x.md (addqi3, addqi3_noclobber_reload): Update.
11025         * c4x.c (std_or_reg_operand): New function.
11026         * c4x-protos.h (std_or_reg_operand): Prototype it.
11027
11028 2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
11029
11030         * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
11031                 object names as libgcc2.c.
11032         * libgcc.S: Use newly defined names.
11033
11034 Fri Jan  7 19:48:04 CET 2000  Jan Hubicka  <jh@suse.cz>
11035         * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
11036         function.
11037         * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
11038         * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
11039         (FLOW_LOOP_LAST_BLOCK): Likewise.
11040
11041 2000-01-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11042
11043         * basic-block.h (struct loop): New fields 'first' and 'last'.
11044         * flow.c (flow_loops_find): Compute loop->first and loop->last.
11045         (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
11046         and loop->last to check for NOTE_INSN_LOOP_END.
11047
11048 Fri Jan 28 10:57:58 2000  Jason Eckhardt  <jle@cygnus.com>
11049
11050         * predict.c (estimate_probability): Use the new FIRST and LAST fields
11051         of the loop descriptor rather than HEADER and LATCH. Also added
11052         missing break statements as well making some coding style modifications
11053         as suggested by Michael Hayes.
11054
11055 2000-01-28  Richard Henderson  <rth@cygnus.com>
11056
11057         * flow.c (find_basic_blocks): Remove do_cleanup argument.
11058         Break out that code ...
11059         (cleanup_cfg): ... here.
11060         (commit_one_edge_insertion): Detect a return instruction being
11061         emitted to an edge.  Emit a barrier following; clear fallthru.
11062         (commit_edge_insertions): Verify CFG consistency.
11063         * function.c (expand_function_start): Kill unused variable.
11064         (expand_function_end): Likewise.
11065         (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge
11066         to insert the epilogue.
11067
11068         * gcse.c (gcse_main): Adjust for find_basic_blocks change.
11069         (delete_null_pointer_checks): Likewise.
11070         * output.h: Likewise.
11071         * reg-stack.c (reg_to_stack): Likewise.
11072         * toplev.c (rest_of_compilation): Likewise.  Run
11073         thread_prologue_and_epilogue_insns after rebuilding the CFG.
11074
11075 2000-01-28  Richard Henderson  <rth@cygnus.com>
11076
11077         * Makefile.in (flow.o): Revert 24 Jan change.
11078         * flow.c (mark_regs_live_at_end): Likewise.  Force BLKmode
11079         FUNCTION_VALUE result to DECL_RESULT's mode.
11080
11081         * haifa-sched.c (schedule_insns): Don't recompute reg info
11082         after reload.
11083
11084 2000-01-28  Zack Weinberg  <zack@wolery.cumb.org>
11085
11086         * configure.in: Make --enable-cpplib the default.
11087         * configure: Regenerate.
11088         * gcc.dg/990119-1.c: No longer expected to fail.
11089
11090 2000-01-28  Bernd Schmidt  <bernds@cygnus.co.uk>
11091
11092         * jump.c (jump_optimize_1): Delete an optimization that is also done
11093         by merge_blocks in flow.
11094
11095 2000-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11096
11097         * diagnostic.c (build_message_string, output_printf,
11098         line_wrapper_printf): Add ATTRIBUTE_PRINTF_*.
11099         (build_location_prefix): Fix non-literal format string.
11100
11101 2000-01-27  Richard Henderson  <rth@cygnus.com>
11102
11103         * alpha.md (trunctfsf2): New.
11104
11105 2000-01-27  Andrew Hobson  <ahobson@eng.mindspring.net>
11106
11107         * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH.
11108
11109 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
11110
11111         * cppinit.c (cpp_handle_option): Recognize C++ comments under
11112         -std=gnu89.
11113         * cpplib.c (skip_block_comment, skip_line_comment): Split code
11114         out of...
11115         (skip_comment) ... here.  Permit C++ comments in system
11116         headers always.  Warn about C++ comments in user code under
11117         -std=gnu89 -pedantic.
11118         (copy_comment): Use skip_comment.
11119         (cpp_skip_hspace, cpp_get_token): skip_comment can no longer
11120         return EOF.
11121         (consider_directive_while_skipping, do_else, do_endif): Call
11122         validate_else unconditionally.
11123         (validate_else): Check CPP_PEDANTIC here.  Accept non-comment
11124         text after the conditional in a system header.
11125         * cpplib.h (struct cpp_buffer): Add flag
11126         warned_cplusplus_comments.
11127
11128 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
11129
11130         * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too.
11131         Use unshare_all_rtl_1.
11132         (unshare_all_rtl_again): New function.
11133         (unshare_all_rtl_1): New function split out of unshare_all_rtl.
11134
11135         * function.c (purge_addressof_1): Use unshare_all_rtl_again
11136         rather than resetting the 'used' flags ourself.
11137
11138         * toplev.c (rest_of_compilation): Add current_function_decl
11139         to the unshare_all_rtl call.
11140         * tree.h: Prototype unshare_all_rtl.
11141         * rtl.h: Prototype unshare_all_rtl_again here.
11142
11143 2000-01-27  Geoffrey Keating  <geoffk@cygnus.com>
11144
11145         * genoutput.c (output_prologue): Include ggc.h in generated
11146         files.
11147         * Makefile.in (insn-output.o): Depends on ggc.h.
11148
11149 2000-01-27  Ian Dall  <ian@sibyl.beware.dropbear.id.au>
11150             Hans-Peter Nilsson  <hp@bitrange.com>
11151
11152         * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete.
11153         Remove redundant include of xm-ns32k.h.
11154         * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions.
11155         Remove redundant include of xm-ns32k.h.
11156         * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine.
11157         Remove redundant include of xm-ns32k.h.
11158         * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions.
11159
11160         * ns32k/ns32k.h: Update comment on multiply-add instructions.
11161         (TARGET_SWITCHES): Add documentation strings.
11162         (DWARF_FRAME_REGNUM): Override default definition.
11163         (REG_CLASS_CONTENTS): Add comments.
11164         (SUBSET_P): Format to reduce line length.
11165         (SMALL_REGISTER_CLASSES): Make a run time option.
11166         (GO_IF_NONINDEXED_ADDRESS): Reformat.
11167         (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before
11168         dereferencing it.  Braces to avoid "ambiguous else" were misplaced.
11169         (regclass_map): fix typo in comment.
11170         * ns32k/ns32k.c: Add spaces before parentheses for consistant style.
11171         Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...).
11172         (trace, reg_or_mem_operand): Delete, unused function.
11173         (calc_address_cost): Small offsets are cheaper than large ones.
11174         (expand_block_move): Generate more efficient code when bytes is a
11175         known at compile time.
11176         * ns32k/ns32k.md: Alternate constraints for multiply-add instructions.
11177         (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand
11178         instead of reg_or_mem_operand.
11179
11180         * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs,
11181         not general_operand.  Similarly use "=rm" or stricter, not "=g".
11182         For input operands, use stricter constraints than "g" if not
11183         general_operand.  Similarly use stricter predicate than
11184         "general_operand" when stricter constraints than "g" are present,
11185         except for matching constraints.
11186         (movstrsi): Use "memory_operand" for operands 0 and 1.
11187         (truncsiqi2, truncsihi2, trunchiqi2): Remove.
11188         (udivmoddisi4_internal): Use nonimmediate_operand for operand 0,
11189         not reg_or_mem_operand.
11190         (udivmoddisi4): Ditto.
11191         Use nonimmediate_operand for operand 1, not reg_or_mem_operand.
11192         Use nonimmediate_operand for operand 3, not register_operand.
11193         (udivmoddiqi4_internal): Use register_operand for operand 1, not
11194         reg_or_mem_operand.
11195
11196 2000-01-27  Fred Fish  <fnf@be.com>
11197
11198         * gthr-posix.h: Fix typo; compatibily -> compatibility.
11199         * gthr-single.h: Likewise.
11200         * gthr-solaris.h: Likewise.
11201         * gthr-vxworks.h: Likewise.
11202         * gthr-win32.h: Likewise.
11203         * gthr.h: Likewise.
11204
11205 2000-01-27  Zack Weinberg  <zack@wolery.cumb.org>
11206
11207         * cppinit.c: Add " (cpplib)" to end of string printed by
11208         -v / --version.
11209
11210 2000-01-27  Richard Henderson  <rth@cygnus.com>
11211
11212         * alpha.c (alpha_emit_conditional_move): Use VOIDmode when
11213         testing for a signed comparison.
11214         (alpha_emit_floatuns): New.
11215         * alpha-protos.h: Declare it.
11216         * alpha.md (floatunsdisf2, floatunsdidf2): New.
11217         (extendsfdf2): Tidy.
11218
11219 2000-01-27  Jakub Jelinek  <jakub@redhat.com>
11220
11221         * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but
11222         no -g option specifying debugging format, default to -gstabs+.
11223
11224 Wed Jan 26 22:19:14 1999  J"orn Rennecke  <amylaar@cygnus.co.uk>
11225
11226         * calls.c (special_function_p): New argument fork_or_exec.
11227         (expand_call): When profile_arc_flag is set and the function
11228         is in the fork_or_exec group, call __bb_fork_func first.
11229         * libgcc2.c, _bb module (__bb_fork_func): New function.
11230         (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock
11231         output file.
11232         * config/svr4.h (TARGET_HAS_F_SETLKW): Define.
11233         * tree.h (special_function_p): Update prototype.
11234
11235 2000-01-26  Richard Henderson  <rth@cygnus.com>
11236
11237         * alpha.c (alpha_split_tfmode_pair): New.
11238         * alpha-protos.h: Declare it.
11239         * alpha.md (abstf2, negtf2): New.
11240         (movtf insn): Add input G constraint.
11241         (movtf splitter): Use alpha_split_tfmode_pair.
11242
11243 2000-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11244
11245         * i386/cygwin.h: PROTO -> PARAMS.
11246
11247 2000-01-26  Jakub Jelinek  <jakub@redhat.com>
11248
11249         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle
11250         TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons
11251         using _Qp_cmp/_Q_cmp and testing the return value.
11252         (print_operand): Call reverse_condition_maybe_unordered if
11253         we are handling CCFPmode or CCFPEmode.
11254         Handle ORDERED, UN* and LTGT comparisons.
11255         * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32
11256         if not TARGET_HARD_QUAD.
11257         (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble,
11258         bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt):
11259         Call sparc_emit_float_lib_cmp even on TARGET_ARCH32.
11260         Adjust gen_b* calls so that they reflect return comparison of
11261         sparc_emit_float_lib_cmp.
11262
11263 2000-01-26  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11264
11265         * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume
11266         incoming operands array is large enough for one more operand.
11267         (alpha_emit_xfloating_arith): Likewise.
11268
11269 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11270
11271         * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a
11272         file with one line and no trailing newline.
11273         Patch by Kaveh Ghazi <ghazi@caip.rutgers.edu>.
11274         * fixinc/fixtests.c (machine_name_test): Fix fencepost error
11275         checking if the match is on the line.
11276         * fixinc/gnu-regex.c: Provide regerror not __regerror.
11277
11278 2000-01-25  Richard Henderson  <rth@cygnus.com>
11279
11280         * sparc.c (output_cbranch): Fix accidental squashing of the
11281         fp branch pre-delay nop.
11282
11283 2000-01-25  Richard Henderson  <rth@cygnus.com>
11284
11285         * tree.def (UNNE_EXPR): Remove.
11286         * c-typeck.c (build_binary_op): Don't handle it.
11287         * expr.c (expand_expr, do_jump, do_store_flag): Likewise.
11288
11289         * rtl.def (UNNE): Remove.
11290         (LTGT): Add.
11291         * jump.c (reverse_condition): Update accordingly.
11292         (swap_condition): Likewise.
11293         (comparison_dominates_p): Handle unordered comparisons.
11294         (reverse_condition_maybe_unordered): New.
11295         * rtl.h (reverse_condition_maybe_unordered): Declare.
11296
11297         * sparc.c (select_cc_mode): Update for UNNE/LTGT.
11298         (output_cbranch): Use reverse_condition_maybe_unordered and LTGT.
11299         * sparc.h (REVERSIBLE_CC_MODE): Always true.  Update docs.
11300         * sparc.md (bltgt): New.
11301
11302 2000-01-25  Nick Clifton  <nickc@redhat.com>
11303
11304         * emit-rtl.c (emit_insn): Only check machine class insns for
11305         improper emission of a RETURN.
11306
11307 2000-01-25  Richard Henderson  <rth@cygnus.com>
11308
11309         * Makefile.in (flow.o): Depend on $(EXPR_H).
11310         * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e.
11311         duplicate the structure of diddle_return_value for keeping regs live.
11312
11313 2000-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11314
11315         * loop.c (current_loop_info): Delete.
11316         (consec_sets_invariant_p): Add loop argument, update callers.
11317         (get_condition_for_loop): Likewise.
11318         (count_nonfixed_reads, update_giv_derive): Likewise.
11319         (simplify_giv_expr, general_induction_var): Likewise.
11320         (consec_sets_giv, recombine_givs): Likewise.
11321         (move_movables): Delete loop_start and loop_end arguments,
11322         add loop argument, and update callers.
11323         (find_mem_givs, check_final_value): Likewise.
11324         (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise.
11325         (loop_invariant_p): Rename from invariant_p, add loop argument, and
11326         update callers.
11327         (basic_induction_var): Add loop argument, delete loop_level argument,
11328         and update callers.
11329         * unroll.c (iteration_info): Delete loop_start and loop_end arguments,
11330         add loop argument, and update callers.
11331         (find_splittable_regs, find_splittable_givs): Likewise.
11332         (reg_dead_after_loop, loop_find_equiv_value): Likewise.
11333         (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise.
11334         (biv_total_increment): Delete loop_start and loop_end arguments;
11335         update callers.
11336         (precondition_loop_p): Delete loop_start and loop_info arguments;
11337         update callers.
11338         * loop.h (get_condition_for_loop): Add loop argument.
11339         (biv_total_increment): Delete loop_start and loop_end arguments.
11340         (precondition_loop_p): Delete loop_start and loop_info arguments;
11341         add loop argument.
11342         (final_biv_value): Delete loop_start and loop_end arguments;
11343         add loop argument.
11344         (final_giv_value, back_branch_in_range_p): Likewise.
11345
11346 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
11347
11348         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16.
11349
11350 2000-01-25  Gavin Romig-Koch  <gavin@cygnus.com>
11351
11352         * Makefile.in (c-gperf.h) : Change the "See" pointer to
11353         point to the new "generated_files" doc.
11354
11355 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
11356
11357         * config/fp-bit.c (_unord_f2): Fix typo.
11358
11359 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11360
11361         * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c,
11362         c-typeck.c, objc/objc-act.c: Remove all references to obstack
11363         functions obsoleted by GC, such as push_obstacks_nochange,
11364         end_temporary_allocation, savealloc, saveable_tree_cons, etc.
11365         and code which existed only to decide whether or not to call
11366         them.  Remove now-unused NESTED argument from start_function;
11367         all callers changed.  Do not change behavior based on ggc_p.
11368         The use of the ixp_obstack in c-iterate.c and the util_obstack
11369         in objc/objc-act.c remain; these are not obsoleted by garbage
11370         collection.
11371         * c-tree.h: Update prototype for start_function.
11372
11373         * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild.
11374
11375 2000-01-25  Clinton Popetz  <cpopetz@cygnus.com>
11376
11377         * config/mips/mips.md (zero_extendsidi2_internal): Disable for
11378         mips16.
11379
11380 2000-01-25  Richard Henderson  <rth@cygnus.com>
11381
11382         * sparc-protos.h (select_cc_mode): Declare.
11383         * sparc.c (select_cc_mode): New.  Handle unordered compares.
11384         (output_cbranch): Always reverse via code change.  Handle
11385         unordered compares.  Factor tests and string updates.
11386         * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode.
11387         (REVERSIBLE_CC_MODE): Also exclude CCFPmode.
11388         * sparc.md (bunordered, bordered): New.
11389         (bungt, bunlt, buneq, bunge, bunle): New.
11390
11391 2000-01-25  Richard Henderson  <rth@cygnus.com>
11392
11393         * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root.
11394         * ggc-common.c (ggc_add_rtx_varray_root): New.
11395         (ggc_mark_rtx_varray): New.
11396         (ggc_mark_rtx_varray_ptr): New.  Shift all ggc_mark_foo_ptr
11397         functions down below ggc_mark_foo.
11398         * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare.
11399
11400 2000-01-25  Richard Henderson  <rth@cygnus.com>
11401
11402         * alpha.c (secondary_reload_class): Don't allocate a secondary
11403         for integral mode memories into FLOAT_REGS.  Rearrange the more
11404         complicated memory expression inward.
11405
11406 2000-01-25  Zack Weinberg  <zack@wolery.cumb.org>
11407
11408         * inclhack.def: Fixes to play nicer with FreeBSD, and
11409         corrections to comments.
11410         (cxx_unready): Add select expression.
11411         (irix_sockaddr): Add bypass expression.
11412         (machine_ansi_h_va_list): New fix.
11413         (stdio_va_list): No need to edit _BSD_VA_LIST_.
11414         Split out addition of "#include <stdarg.h>" to...
11415         (stdio_stdarg_h): ... here.
11416         (systypes_for_aix): Rename to systypes_stdlib_size_t.  Apply
11417         to stdlib.h also.  Do not munge _BSD_SIZE_T_.
11418         (sysz_stdlib_for_sun): Delete duplicate fix for unprotected
11419         size_t.
11420         (ultrix_ifdef): Tighten up select expression.
11421
11422         * fixincl.tpl: Exorcise 'exesel'.  Rewrite calculations of
11423         re_ct and max_mach to avoid use of shell.  Make printed names
11424         match names in inclhack.def.  Use static copyright date.
11425         Don't count c_test and test expressions as requiring regex_t
11426         slots.  Add some commentary.
11427         * inclhack.tpl: Do not include the 'This script contains N
11428         fixup scripts' line if PROGRAM is defined.  Use static
11429         copyright date.
11430
11431 2000-01-24  Jason Merrill  <jason@casey.cygnus.com>
11432
11433         * dwarf2out.c: include "varray.h", not dyn-string.h.
11434         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose.
11435         (addr_const_to_string, addr_to_string): Lose.
11436         (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c.
11437         (struct dw_val_struct): val_addr is now an rtx.
11438         (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust.
11439         (used_rtx_varray): New varray.
11440         (dwarf2out_init): Initialize it.
11441         (save_rtx): New fn.
11442         (mem_loc_descriptor, add_const_value_attribute): Call it instead of
11443         addr_to_string.
11444         * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h,
11445         sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST.
11446         * Makefile.in (dwarf2out.o): Update dependencies.
11447
11448 2000-01-24  Richard Henderson  <rth@cygnus.com>
11449
11450         * i386.c (i386_dwarf_output_addr_const): New.
11451         * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New.
11452
11453         * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR
11454         if defined.
11455         * dwarfout.c (output_mem_loc_descriptor): Likewise.
11456         * i386.c (i386_simplify_dwarf_addr): New.
11457         * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New.
11458
11459 Mon Jan 24 16:56:10 2000  Jim Wilson  <wilson@cygnus.com>
11460
11461         * dwarf2out.c (gen_struct_or_union_type_die): Set complete if
11462         TYPE_STUB_DECL is NULL.
11463
11464 2000-01-24  Richard Henderson  <rth@cygnus.com>
11465
11466         * builtins.c (expand_tree_builtin): Move ...
11467         * c-common.c (expand_tree_builtin): ... here.
11468
11469 2000-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11470
11471         * loop.h (LOOP_INFO): New accessor macro.
11472         * basic-block.h (struct loop): Rename field `info' to `aux'.
11473         * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop).
11474         (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise.
11475         * unroll.c (loop_iterations, unroll_loop): Likewise.
11476
11477 2000-01-24  Christopher Faylor <cgf@cygnus.com>
11478
11479         * config/i386/t-cygwin: Accomodate new winsup directory layout
11480         when searching for include files.
11481
11482 2000-01-24  Richard Henderson  <rth@cygnus.com>
11483
11484         * rtl.def: Add unordered fp comparisions.
11485         * tree.def: Likewise.
11486         * tree.h: Add ISO C 9x unordered fp comparision builtins.
11487
11488         * builtins.c (expand_tree_builtin): New function.
11489         * c-typeck.c (build_function_call): Use it.
11490         (build_binary_op): Support unordered compares.
11491         * c-common.c (c_common_nodes_and_builtins): Add unordered compares.
11492
11493         * combine.c (known_cond): Handle reverse_condition returning UNKNOWN.
11494         (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed.
11495         * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing.
11496         (record_jump_equiv): Handle reverse_condition returning UNKNOWN.
11497         * jump.c (reverse_condition): Don't abort for UNLE etc, but
11498         return UNKNOWN.
11499         (swap_condition): Handle unordered compares.
11500         (thread_jumps): Check can_reverse before reversing.
11501         * loop.c (get_condition): Likewise.  Allow UNORERED/ORDERED to be
11502         reversed for FP.
11503
11504         * optabs.c (can_compare_p): New argument CODE.  Verify branch or
11505         setcc is present before acking for cmp_optab.  Update all callers.
11506         (prepare_float_lib_cmp, init_optabs): Handle UNORDERED.
11507         * expmed.c (do_cmp_and_jump): Update for can_compare_p.
11508         * expr.c (expand_expr): Likewise.  Support unordered compares.
11509         (do_jump, do_store_flag): Likewise.
11510         * expr.h (enum libfunc_index): Add unordered compares.
11511
11512         * Makefile.in (FPBIT_FUNCS): Add _unord_sf.
11513         (DPBIT_FUNCS): Add _unord_df.
11514         * config/fp-bit.c (_unord_f2): New.
11515         * fp-test.c (main): Try unordered compare builtins.
11516
11517         * alpha-protos.h (alpha_fp_comparison_operator): Declare.
11518         * alpha.c (alpha_comparison_operator): Check mode properly.
11519         (alpha_swapped_comparison_operator): Likewise.
11520         (signed_comparison_operator): Likewise.
11521         (alpha_fp_comparison_operator): New.
11522         (alpha_emit_conditional_branch): Handle unordered compares.
11523         * alpha.h (PREDICATE_CODES): Update.
11524         * alpha.md (fp compares): Use alpha_fp_comparison_operator.
11525         (bunordered, bordered): New.
11526
11527 2000-01-24  Richard Henderson  <rth@cygnus.com>
11528
11529         * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation.
11530         * alpha.md (movtf): New expander, insn, and splitter.
11531
11532 Mon Jan 24 19:49:47 MET 2000  Jan Hubicka  <jh@suse.cz>
11533
11534         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
11535         dead registers.
11536
11537 Mon Jan 24 17:37:31 MET 2000  Jan Hubicka  <jh@suse.cz>
11538
11539         * i386.h (FIRST_PSEUDO_REGISTER): Set to 21.
11540         (FIXED_REGISTERS, CALL_USED_REGISTERS,
11541          REG_ALLOC_ORDER): Add frame pointer
11542         (FRAME_POINTER_REGNUM): Set to 20
11543         (HARD_FRAME_POINTER_REGNUM): New macro.
11544         (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER
11545         to HARD_FRAME_POINTER.
11546         (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM
11547         (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
11548         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
11549         (HI_REGISTER_NAMES): Add "frame".
11550         (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination.
11551         (debug_reg): Handle FRAME_POINTER_REGNUM.
11552         (reg_class): Add arg pointer and frame pointer to NON_Q_REGS,
11553         GENERAL_REGS and INDEX_REGS.
11554         * i386.c (SAVED_REGS_FIRST): new macro.
11555         (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx
11556         (ix86_decompose_address, memory_address_length): Likewise.
11557         (regclass_map): Add frame pointer.
11558         (call_insn_operand): Handle frame_pointer_rtx.
11559         (reg_no_sp_operand): Likewise.
11560         (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx.
11561         (print_operand, legitimize_pic_address): Fix formating.
11562         (ix86_compute_frame_size): Make static, update prototype, new
11563         parameters padding1, padding2, use ix86_nsaved_regs, use
11564         stack_alignment_needed.
11565         (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM
11566         to HARD_FRAME_POINTER_REGNUM conversions.
11567         (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues.
11568         (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues.
11569         (print_reg): Abort on FRAME_POINTER_REGNUM
11570
11571 Mon Jan 24 16:50:08 MET 2000  Jan Hubicka  <jh@suse.cz>
11572
11573         * i386.h (PREDICATE_CODES): Add aligned_operand.
11574         * i386.c (aligned_operand): New function.
11575         (ix86_aligned_p): Kill.
11576         * i386.md (movhi_1): Emit mov for aligned operands.
11577         (promoting peep2s): Use aligned_operand.
11578
11579 2000-01-23  Zack Weinberg  <zack@wolery.cumb.org>
11580
11581         * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular
11582         expression to allow underscores in macro names.
11583         (fix_char_macro_defines): Increment scanning pointer.
11584
11585 2000-01-23  Richard Henderson  <rth@cygnus.com>
11586
11587         * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define.
11588         * alpha/osf5.h: New file.
11589         * configure.in (alpha-*-osf5): Add it to tm_file.
11590
11591         * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target.
11592
11593         * alpha-protos.h (alpha_emit_xfloating_arith): Declare.
11594         (alpha_emit_xfloating_cvt, function_arg): Declare.
11595         * alpha.c (alpha_emit_conditional_branch): Call
11596         alpha_emit_xfloating_compare for TFmode compares.
11597         (alpha_lookup_xfloating_lib_func): New.
11598         (alpha_compute_xfloating_mode_arg): New.
11599         (alpha_emit_xfloating_libcall): New.
11600         (alpha_emit_xfloating_arith): New.
11601         (alpha_emit_xfloating_compare): New.
11602         (alpha_emit_xfloating_cvt): New.
11603         (print_operand): Add default abort case.
11604         (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE.
11605         * alpha.h (TARGET_HAS_XFLOATING_LIBS): New.
11606         (BIGGEST_ALIGNMENT): Increase to 128 bits.
11607         (RETURN_IN_MEMORY): True for TF/TCmode.
11608         (ALPHA_ARG_SIZE): TF/TCmode is passed indirect.
11609         (FUNCTION_ARG): Move to function_arg.
11610         (FUNCTION_ARG_PASS_BY_REFERENCE): New.
11611         (ASM_OUTPUT_LONG_DOUBLE): New.
11612         (ASM_OUTPUT_DOUBLE): Always output bits.
11613         * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New.
11614         (fix_trunctfdi2, floatditf2, floatunsditf2): New.
11615         (extenddftf2, trunctfdf2): New.
11616
11617 2000-01-23  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
11618
11619         * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved...
11620         * config/sparc/sol2.h: ... here.
11621
11622 2000-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11623
11624         * basic-block.h (struct loops): New field `levels'.
11625         * flow.c (flow_loops_level_compute): Traverse all outer loops.
11626         (flow_loop_level_compute): Initialise level to 1.
11627         (flow_loops_find): Set loops->levels.
11628         (flow_loops_dump): Print loops->levels.
11629
11630 2000-01-23  Richard Henderson  <rth@cygnus.com>
11631
11632         * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS.
11633         (throw_helper): Iterate over DWARF_FRAME_REGISTERS.
11634
11635 2000-01-23  Richard Henderson  <rth@cygnus.com>
11636
11637         * i386.c (dbx_register_map, svr4_dbx_register_map): New.
11638         * i386.h (DBX_REGISTER_NUMBER): Use them.
11639         * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise.
11640         * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise.
11641         * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise.
11642         * i386/sequent.h: Kill incorrect comment.
11643
11644 2000-01-23  Mark Mitchell  <mark@codesourcery.com>
11645
11646         * ggc-page.c (struct page_entry): Make `context_depth' an
11647         `unsigned short'.
11648         (struct globals): Likewise.
11649
11650 2000-01-23  Clinton Popetz  <cpopetz@cygnus.com>
11651
11652         * loop.c (check_dbra_loop): When checking a loop for
11653         reversability, check the source of any stores to ensure
11654         they don't depend on an initial value.
11655
11656 2000-01-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11657
11658         * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine.
11659
11660 2000-01-22  Zack Weinberg  <zack@wolery.cumb.org>
11661
11662         * fixinc/fixincl.c: Move declarations of 'pz_fname' and
11663         'pz_scan' into scope of entire function.  Only affects
11664         compiles with -DDEBUG.
11665
11666 2000-01-22  Alan Modra <alan@SPRI.Levels.UniSA.Edu.Au>
11667
11668         * config/elfos.h (UNIQUE_SECTION): Restore uninitialised data
11669         section naming to that prior to 2000-01-07 patch.
11670         * config/mips/elf.h (UNIQUE_SECTION): Ditto.
11671         * config/mips/elf64.h (UNIQUE_SECTION): Ditto.
11672         * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto.
11673         * config/i386/interix.c (UNIQUE_SECTION): Ditto.
11674         * config/i386/winnt.c (UNIQUE_SECTION): Ditto.
11675
11676 2000-01-22  Bernd Schmidt  <bernds@cygnus.co.uk>
11677
11678         * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a
11679         constant.
11680
11681 2000-01-21  Jim Wilson  <wilson@cygnus.com>
11682
11683         * fixinc/inclhack.tpl: Test for directory before trying to cd into it.
11684         * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate.
11685
11686 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
11687
11688         * cpphash.c (change_newlines): Delete function.
11689         (struct argdata): Delete 'newlines' and 'use_count' fields.
11690         (macroexpand): Remove code referencing those fields.
11691
11692 2000-01-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11693
11694         * loop.c (loops_info): New variable.
11695         (loop_optimize): Allocate loops->array and free it on exit.
11696         Allocate memory for loops_info and assign to each loop,
11697         replacing alloca.
11698         (find_and_verify_loops): Do not allocate loops->array.
11699
11700 2000-01-21  Zack Weinberg  <zack@wolery.cumb.org>
11701
11702         * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'.
11703
11704 2000-01-21  Jakub Jelinek  <jakub@redhat.com>
11705
11706         * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new
11707         pseudos if expanded after first flow.
11708         (movdi_pic_label_ref): Likewise.
11709
11710 2000-01-20  Richard Henderson  <rth@cygnus.com>
11711
11712         * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0.
11713
11714 2000-01-20  Zack Weinberg  <zack@wolery.cumb.org>
11715
11716         * Makefile.in (fixinc.sh): Depend on specs.
11717         * fixinc/Makefile.in: Add rule to create machname.h.
11718         (fixlib.o): Depend on machname.h.
11719         * fixinc/fixtests.c (machine_name): New test.
11720         * fixinc/fixfixes.c (machine_name): New fix.
11721         * fixinc/fixlib.c (mn_get_regexps): New helper function for
11722         the machine_name test and fix.
11723         * fixinc/fixlib.h: Prototype it.
11724         * fixinc/inclhack.def (machine_name): Use the C test and fix.
11725         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild.
11726
11727         * gcc.c (do_spec_1) [case P]: Take care not to create
11728         identifiers with three leading or trailing underscores.
11729
11730         * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC.
11731         (fixincl): Don't specify libraries twice on link line.
11732         (gnu-regex.o): Remove special rule.
11733         * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was
11734         defined by config.h.  Do not define _REGEX_RE_COMP.
11735         (regcomp): Allocate and initialize a fastmap.
11736         * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP.
11737
11738 2000-01-20  Brad Lucier  <lucier@math.purdue.edu>
11739
11740         * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h.
11741
11742 2000-01-19  Richard Henderson  <rth@cygnus.com>
11743
11744         * flow.c (propagate_block): Replace FIRST, LAST and BNUM
11745         arguments with BB.  Update all callers.  Tidy line wrapping.
11746
11747 2000-01-19  Clinton Popetz  <cpopetz@cygnus.com>
11748
11749         * emit-rtl.c (try_split): Return last_insn if we split the
11750         last_insn.
11751
11752 Thu Jan 20 01:01:23 MET 2000  Jan Hubicka  <jh@suse.cz>
11753
11754         * i386-protos.h (ix86_compute_frame_size): Remove prototype.
11755         (ix86_initial_elimination_offset): Declare.
11756         * i386.c (ix86_nsaved_regs): Break out from ...
11757         (ix86_can_use_return_insn_p): ... here.
11758         (ix86_emit_save_regs): Break out from ...
11759         (ix86_expand_prologue): ... here.
11760         (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break
11761         out from ...
11762         (ix86_expand_epilogue): ... here.
11763         (ix86_compute_frame_size): Make static, add prototype.
11764         (ix86_initial_elimination_offset): Break out from ...
11765         * i386.h (INITIAL_ELIMINATION_OFFSET): ... here.
11766
11767 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11768
11769         * recog.h (OUT_FCN): Delete.
11770
11771         * vax.md: Call `get_insn_template' instead of OUT_FCN.
11772
11773 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11774
11775         * cppalloc.c: PROTO -> PARAMS.
11776         * cpperror.c: Likewise.
11777         * cppfiles.c: Likewise.
11778         * cpplib.c: Likewise.
11779         * cpplib.h: Likewise.
11780
11781         * config/arm/arm-protos.h: PROTO -> PARAMS.
11782         * config/arm/arm.c: Likewise.
11783         * config/c4x/c4x.c: Likewise.
11784         * config/fr30/fr30-protos.h: Likewise.
11785         * config/nextstep.c: Likewise.
11786         * config/pa/pa.c: Likewise.
11787         * config/pj/pj.c: Likewise.
11788         * config/rs6000/rs6000.c: Likewise.
11789         * config/v850/v850-protos.h: Likewise.
11790         * config/v850/v850.c: Likewise.
11791
11792 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11793
11794         * i370-protos.h: New file.
11795
11796         * i370.c: Include tm_p.h.  Fix compile time warnings.
11797
11798         * i370.h: Move prototypes to i370-protos.h.  Fix compile time
11799         warnings.
11800
11801         * i370.md: Likewise.
11802
11803 2000-01-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11804
11805         * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS.
11806         (target_isinf, target_isnan, eisnan): Mark parameter with
11807         ATTRIBUTE_UNUSED.
11808         (eiisinf): Wrap in INFINITY.
11809         (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY.
11810         (ibmtoe): Remove unused variable `rndsav'.
11811
11812 Wed Jan 19 20:23:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11813
11814         * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis.
11815         (GO_IF_LEGITIMATE_ADDRESS): Added missing tab.
11816
11817 2000-01-19  Zack Weinberg  <zack@wolery.cumb.org>
11818
11819         * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o.
11820         * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes.
11821         (fix_char_macro_defines, fix_char_macro_uses): New functions.
11822
11823         * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp.
11824         Recognize Emacs mode markers also.
11825         * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of
11826         C++ comments in C++ headers.  Call is_cxx_header only if
11827         necessary.
11828
11829         * fixinc/inclhack.def (avoid_bool): Add select for the problem and
11830         bypass for ncurses.
11831         (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with...
11832         (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes):
11833         ... these, which use the new C fixes.
11834         (math_exception): Escape literal '+' in bypass expression.
11835
11836         * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh:
11837         Regenerate.
11838
11839 2000-01-19  Geoff Keating  <geoffk@cygnus.com>
11840
11841         * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs
11842         inside the MEM.
11843
11844 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11845
11846         * loop.c (loop_optimize): Allocate loop_info structure for each loop
11847         prior to calling scan_loop.
11848
11849 Wed Jan 19 19:54:38 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11850
11851         * sh.c (find_barrier, gen_block_redirect): Fix indentation.
11852         (split_branches, calc_live_regs): Likewise.
11853
11854 Wed Jan 19 19:12:36 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
11855
11856         * sh.md (fpu_single, fp_mode): New attributes.
11857
11858 2000-01-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11859
11860         * loop.c (current_loop_info): Renamed from loop_info_data
11861         and changed to a pointer.
11862         (loop_optimize): Allocate loop_info structure for each loop
11863         and initialise to zero.
11864         (scan_loop): Set current_loop_info.
11865
11866         * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set
11867         on iteration_var.
11868
11869 2000-01-19  Richard Henderson  <rth@cygnus.com>
11870
11871         * stupid.c: Die die die.
11872         * Makefile.in (OBJS): Remove stupid.o.
11873         (stupid.o): Likewise.
11874
11875         * except.c (emit_eh_context): Don't emit USEs for stupid.
11876         * explow.c (probe_stack_range): Likewise.
11877         * flags.h (obey_regdecls): Remove.
11878         * flow.c (find_basic_blocks): Don't run try_merge_blocks
11879         when not optimizing.
11880         (life_analysis): Limit data collection when not optimizing.
11881         (mark_regs_live_at_end): Always mark the return value registers.
11882         (mark_used_regs): Remove dummy RETURN case.
11883         (print_rtl_with_bb): Don't consult obey_regdecls.
11884         * function.c (use_variable, use_variable_after): Remove.
11885         (assign_parms): Consult optimize not obey_regdecls.
11886         (expand_function_start): Don't emit USEs for stupid.
11887         (expand_function_end): Likewise.
11888         * global.c (build_insn_chain): Export.
11889         * integrate.c (expand_inline_function): Kill return-value USE
11890         handling code.
11891         * jump.c (jump_optimize_1): Do simple jump optimizations and
11892         dead code elimination.
11893         (calculate_can_reach_end): Remove check_deleted argument.
11894         (delete_insn): Patch out insns even when not optimizing.
11895         * local-alloc.c (block_alloc): Don't do tying when not optimizing.
11896         * rtl.h (use_variable, use_variable_after): Remove declarations.
11897         (build_insn_chain): Declare.
11898         * stmt.c (expand_value_return): Don't emit USEs for stupid.
11899         (expand_end_bindings): Likewise.
11900         (expand_decl): Likewise.  Consult optimize not obey_regdecls.
11901         * toplev.c (obey_regdecls): Remove.
11902         (rest_of_compilation): Don't set it.  Kill stupid in favour of
11903         flow1, local-alloc, and reload.
11904         (main): Don't set obey_regdecls.
11905
11906         * config/nextstep.c (handle_pragma): Likewise.
11907
11908         * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid.
11909
11910         * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid.
11911
11912 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11913
11914         * alpha-protos.h: PROTO -> PARAMS.
11915         * alpha.c: Likewise.
11916         * elf.h: Likewise.
11917         * h8300.c: Likewise.
11918         * i386-protos.h: Likewise.
11919         * i386.c: Likewise.
11920         * m32r-protos.h: Likewise.
11921         * m32r.c: Likewise.
11922         * mips.c: Likewise.
11923         * mips.md: Likewise.
11924         * gmon-sol2.c: Likewise.
11925         * sparc.c: Likewise.
11926
11927 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11928
11929         * ns32k-protos.h: New file.
11930
11931         * ns32k.c: Fix compile time warnings.
11932
11933         * ns32k.h: Move prototypes to ns32k-protos.h.  Fix compile time
11934         warnings.
11935
11936         * ns32k.md: Likewise.
11937
11938 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11939
11940         * vax-protos.h: New file.
11941
11942         * vax.c: Fix compile time warnings.
11943
11944         * vax.h: Move prototypes to vax-protos.h.  Fix compile time
11945         warnings.
11946
11947         * vax.md: Likewise.
11948
11949         * vaxv.md: Likewise.
11950
11951 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11952
11953         * romp-protos.h: New file.
11954
11955         * romp.c: Fix compile time warnings.
11956
11957         * romp.h: Move prototypes to romp-protos.h.  Fix compile time
11958         warnings.
11959
11960         * romp.md: Likewise.
11961
11962 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11963
11964         * we32k-protos.h: New file.
11965
11966         * we32k.c: Fix compile time warnings.
11967
11968         * we32k.h: Move prototypes to we32k-protos.h.  Fix compile time
11969         warnings.
11970
11971 2000-01-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11972
11973         * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED.
11974
11975         * except.c (eh_regs): Likewise.
11976
11977         * final.c (output_operand): Likewise.
11978
11979         * fold-const.c (target_isinf, target_isnan): Likewise.
11980
11981 Tue Jan 18 16:19:55 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
11982
11983         * i386.h (BIGGEST_ALIGNMENT): Set to 128.
11984         (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32)
11985
11986         * i386.md (memstr): Do not use rep stosb for counts divisible by 4
11987         when optimize_size.
11988         (clrstrsi): Rewrite.
11989         (strsethi, strsetqi): New expanders.
11990         (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns.
11991         (cmpstrsi): Emit compare insn before cmpstrsi_1
11992         (cmpstrsi_nz): use flags, set type to str, prefix_length to 1.
11993         (strlensi_1): Likewise.
11994         (cmpstrsi_1): Likewise; do not output compare.
11995         (strlen expander): Do not unroll when optimizing for size.
11996         (*subsi3_carry): Rename to subsi3_carry
11997         (addqi3_cc): New pattern.
11998         * i386.h (processor_costs): Add move_ratio field.
11999         (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE
12000         * i386.c (*_cost): Set move_ratio.
12001         (x86_unroll_strlen): Enable for Athlon, PPro and K6 too.
12002         (x86_expand_strlensi_1): Rewrite the main loop.
12003
12004 2000-01-17  Richard Henderson  <rth@cygnus.com>
12005
12006         * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode.
12007         * cse.c (find_comparison_args, fold_rtx): Likewise.
12008         * integrate.c (subst_constants): Likewise.
12009         * loop.c (get_condition): Likewise.
12010
12011         * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs.
12012
12013         * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF.
12014
12015 2000-01-18  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
12016
12017         * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST.
12018         (RESTORE_WARN_FLAGS): Unpack it.
12019         Change semantic type of extension to ttype.
12020         * c-common.c (split_specs_attrs): Expect an INTEGER_CST.
12021         * c-parse.y, c-parse.c, objc/objc-parse.y,
12022         objc/objc-parse.c: Regenerate.
12023
12024 2000-01-17  Zack Weinberg  <zack@wolery.cumb.org>
12025
12026         * fixinc/fixlib.c: Add copyright notice.
12027         (compile_re): New function.
12028         * fixinc/fixlib.h: Prototype compile_re.
12029
12030         * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c:
12031         Use compile_re to compile regular expressions.
12032
12033         * fixinc/fixincl.c (egrep_test): Don't bother asking regexec
12034         where the pattern matched.
12035
12036         * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy,
12037         use 'replace'.
12038         (ultrix_ansi_compat): Likewise.
12039         (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test,
12040         add egrep test.
12041         (interactv_add2, interactv_add3): Delete.
12042         (x11_sprintf): Don't use filename glob.
12043         * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh:
12044         Regenerate.
12045
12046 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12047
12048         * print-rtl.c: PROTO -> PARAMS.
12049         * real.c: Likewise.
12050         * reg-stack.c: Likewise.
12051         * resource.c: Likewise.
12052         * sdbout.h: Likewise.
12053         * simplify-rtx.c: Likewise.
12054         * stor-layout.c: Likewise.
12055         * stupid.c: Likewise.
12056         * xcoffout.c: Likewise.
12057         * xcoffout.h: Likewise.
12058
12059 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12060
12061         * toplev.c: PROTO -> PARAMS.
12062         * toplev.h: Likewise.
12063         * tree.c: Likewise.
12064         * tree.h: Likewise.
12065         * unroll.c: Likewise.
12066         * varasm.c: Likewise.
12067         * varray.c: Likewise.
12068         * varray.h: Likewise.
12069
12070 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12071
12072         * reload.c: PROTO -> PARAMS.
12073         * reload.h: Likewise.
12074         * reload1.c: Likewise.
12075         * reorg.c: Likewise.
12076         * resource.h: Likewise.
12077         * rtl.c: Likewise.
12078         * rtl.h: Likewise.
12079         * rtlanal.c: Likewise.
12080         * sbitmap.h: Likewise.
12081         * sdbout.c: Likewise.
12082         * stack.h: Likewise.
12083         * stmt.c: Likewise.
12084         * system.h: Likewise.
12085
12086 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12087
12088         * machmode.h: PROTO -> PARAMS.
12089         * mbchar.h: Likewise.
12090         * mips-tdump.c: Likewise.
12091         * mips-tfile.c: Likewise.
12092         * optabs.c: Likewise.
12093         * output.h: Likewise.
12094         * prefix.c: Likewise.
12095         * profile.c: Likewise.
12096         * protoize.c: Likewise.
12097         * real.h: Likewise.
12098         * recog.c: Likewise.
12099         * recog.h: Likewise.
12100         * regclass.c: Likewise.
12101         * regmove.c: Likewise.
12102         * regs.h: Likewise.
12103
12104 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12105
12106         * ggc-common.c: PROTO -> PARAMS.
12107         * ggc-page.c: Likewise.
12108         * ggc-simple.c: Likewise.
12109         * ggc.h: Likewise.
12110         * global.c: Likewise.
12111         * graph.c: Likewise.
12112         * gthr-win32.h: Likewise.
12113         * haifa-sched.c: Likewise.
12114         * halfpic.h: Likewise.
12115         * integrate.c: Likewise.
12116         * integrate.h: Likewise.
12117         * jump.c: Likewise.
12118         * lcm.c: Likewise.
12119         * local-alloc.c: Likewise.
12120         * loop.c: Likewise.
12121         * loop.h: Likewise.
12122
12123 2000-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12124
12125         * genattr.c: PROTO -> PARAMS.
12126         * genattrtab.c: Likewise.
12127         * gencheck.c: Likewise.
12128         * gencodes.c: Likewise.
12129         * genconfig.c: Likewise.
12130         * genemit.c: Likewise.
12131         * genextract.c: Likewise.
12132         * genflags.c: Likewise.
12133         * gengenrtl.c: Likewise.
12134         * genopinit.c: Likewise.
12135         * genoutput.c: Likewise.
12136         * genpeep.c: Likewise.
12137         * genrecog.c: Likewise.
12138
12139 2000-01-16  Mark Mitchell  <mark@codesourcery.com>
12140
12141         * tree.h (BINFO_VPTR_FIELD): Augment documentation.
12142
12143 2000-01-16  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12144
12145         * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro.
12146         * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP.
12147         * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO.
12148         * configure, config.in: Rebuilt.
12149
12150 2000-01-16  Zack Weinberg  <zack@wolery.cumb.org>
12151
12152         * config/i386/i386.md: Add peephole to merge successive stack
12153         adjusts.
12154
12155 Sat Jan 15 15:41:14 EST 2000  John Wehle  (john@feith.com)
12156
12157         * gcse.c (insert_insn_end_bb): Use emit_block_insn_before
12158         instead of emit_insn_before.  Also handle NOTE_INSN_BASIC_BLOCK
12159         when walking backwards to find all the parameter loads when
12160         the basic block ends in a call.
12161
12162 2000-01-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12163
12164         * loop.c (this_loop_info): Delete.
12165         (uid_loop): Add in place of uid_loop_num.  All uses updated.
12166         (loop_number_exit_count): Delete and replace with entry in loop
12167         structure.  All uses updated.
12168         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
12169         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
12170         (loop_outer_loop): Likewise.
12171         (loop_invalid, loop_number_exit_labels): Likewise.
12172         (loop_used_count_register): Delete and replace with entry in
12173         loop_info structure.
12174         (find_and_verify_loops): Add loops argument.
12175         (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start,
12176         loop_end, etc. arguments with loop structure pointer.  All callers
12177         changed.
12178         (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise.
12179         (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise.
12180         (load_mems_and_recount_loop_regs_set, load_mems): Likewise.
12181         (insert_bct): Likewise.
12182         (basic_induction_var): New argument level.
12183         * loop.h (struct loop_info): Delete fields num, loops_enclosed,
12184         vtop, and cont.  Add used_count_register.
12185         (uid_loop): Delete declaration.
12186         (loop_number_exit_count): Likewise.
12187         (loop_number_loop_starts, loop_number_loop_ends): Likewise.
12188         (loop_number_loop_cont, loop_number_cont_dominator): Likewise.
12189         (loop_outer_loop, loop_used_count_register): Likewise.
12190         (loop_invalid, loop_number_exit_labels): Likewise.
12191         (unroll_loop): Replace loop_start and loop_end arguments
12192         with loop structure pointer.
12193         (loop_precondition_p, loop_iterations): Likewise.
12194         Include basic-block.h.
12195         * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments
12196         with loop structure pointer.
12197         (loop_precondition_p, loop_iterations): Likewise.
12198         * basic-block.h (struct loop): New entries vtop, cont,
12199         cont_dominator, start, end, top, scan_start, exit_labels,
12200         exit_count.
12201         * Makefile.in (LOOP_H): Add basic-block.h to dependencies.
12202
12203 2000-01-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
12204
12205         * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT.
12206
12207 2000-01-14  Nathan Sidwell  <sidwell@codesourcery.com>
12208
12209         * config.in: Rebuilt for 2000-01-13 change to acconfig.h.
12210
12211 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12212
12213         * pdp11-protos.h: New file.
12214
12215         * pdp11.c: Include tm_p.h.  Add static prototypes.  Fix compile
12216         time warnings.
12217
12218         * pdp11.h: Move prototypes to pdp11-protos.h.  Fix compile time
12219         warnings.
12220
12221         * pdp11.md: Likewise.
12222
12223         * 2bsd.h: Likewise.
12224
12225 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12226
12227         * mn10300-protos.h: New file.
12228
12229         * mn10300.c: Include tm_p.h.  Add static prototypes.  Fix compile
12230         time warnings.
12231
12232         * mn10300.h: Move prototypes to mn10300-protos.h.  Fix compile time
12233         warnings.
12234
12235         * mn10300.md: Likewise.
12236
12237 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12238
12239         * mn10200-protos.h: New file.
12240
12241         * mn10200.c: Include tm_p.h.  Add static prototypes.  Fix compile
12242         time warnings.
12243
12244         * mn10200.h: Move prototypes to mn10200-protos.h.  Fix compile time
12245         warnings.
12246
12247         * mn10200.md: Likewise.
12248
12249 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12250
12251         * h8300-protos.h: New file.
12252
12253         * h8300.c: Include tm_p.h.  Add static prototypes.  Fix compile
12254         time warnings.
12255
12256         * h8300.h: Move prototypes to h8300-protos.h.  Fix compile time
12257         warnings.
12258
12259         * h8300.md: Likewise.
12260
12261 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12262
12263         * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED.
12264         (asm_emit_uninitialised): Likewise.
12265
12266 2000-01-13  Gavin Romig-Koch  <gavin@cygnus.com>
12267
12268         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New.
12269         * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE.
12270
12271 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12272
12273         * config/mips/mips.c (override_options): Don't turn on extra
12274         alignment for mips16.
12275
12276 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12277
12278         * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit
12279         eabi, and make sure queued POSTINCREMENT rtl is emitted at
12280         the right point.
12281
12282 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12283
12284         * builtins.c (PAD_VARARGS_DOWN): Define.
12285         (std_expand_builtin_va_arg): Use the above macro.
12286         * config/mips/mips.h (PAD_VARARGS_DOWN): Define.
12287         * tm.texi (Register Arguments): Document the above macro.
12288
12289 2000-01-14  Nick Clifton  <nickc@cygnus.com>
12290
12291         * emit-rtl.c (emit_insn): If checking is enabled, make sure
12292         that this function has not been used to emit a jump
12293         instruction.
12294
12295         * jump.c (return_jump_1): Cope with being passed a null rtx.
12296
12297 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12298
12299         * eh-common.h: PROTO -> PARAMS.
12300         * emit-rtl.c: Likewise.
12301         * errors.c: Likewise.
12302         * errors.h: Likewise.
12303         * except.c: Likewise.
12304         * except.h: Likewise.
12305         * explow.c: Likewise.
12306         * expmed.c: Likewise.
12307         * expr.c: Likewise.
12308         * expr.h: Likewise.
12309         * final.c: Likewise.
12310         * fix-header.c: Likewise.
12311         * flow.c: Likewise.
12312         * fold-const.c: Likewise.
12313         * function.c: Likewise.
12314         * function.h: Likewise.
12315         * gcc.c: Likewise.
12316         * gcov-io.h: Likewise.
12317         * gcov.c: Likewise.
12318         * gcse.c: Likewise.
12319
12320 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12321
12322         * sh-protos.h: New file.
12323
12324         * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h.
12325         Add static prototypes.  Fix compile time warnings.
12326
12327         * sh.h: Move prototypes to sh-protos.h.  Fix compile time warnings.
12328         * sh.md: Likewise.
12329         * elf.h: Likewise.
12330
12331 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12332
12333         * arc-protos.h: New file.
12334
12335         * arc.c: Include tm_p.h.  Add static prototypes.  Fix compile
12336         time warnings.
12337
12338         * arc.h: Move prototypes to arc-protos.h.  Fix compile time
12339         warnings.
12340
12341         * arc.md: Likewise.
12342
12343 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12344
12345         * dsp16xx-protos.h: New file.
12346
12347         * dsp16xx.c: Include tm_p.h.  Add static prototypes.  Fix compile
12348         time warnings.
12349
12350         * dsp16xx.h: Move prototypes to dsp16xx-protos.h.  Fix compile time
12351         warnings.
12352
12353         * dsp16xx.md: Likewise.
12354
12355 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12356
12357         * convex-protos.h: New file.
12358
12359         * convex.c: Include tm_p.h.  Add static prototypes.  Fix compile
12360         time warnings.
12361
12362         * convex.h: Move prototypes to convex-protos.h.  Fix compile time
12363         warnings.
12364
12365 2000-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12366
12367         * elxsi-protos.h: New file.
12368
12369         * elxsi.c: Include tm_p.h.  Add static prototypes.  Fix compile
12370         time warnings.
12371
12372         * elxsi.h: Move prototypes to elxsi-protos.h.  Fix compile time
12373         warnings.
12374
12375         * elxsi.md: Likewise.
12376
12377 2000-01-14  Clinton Popetz  <cpopetz@cygnus.com>
12378
12379         * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant
12380         case for moving from HI/LO/HI_LO_REG.  This makes the behavior
12381         match the comment for MIPS16.
12382
12383 Fri Jan 14 00:28:06 2000  Jeffrey A Law  (law@cygnus.com)
12384
12385         * flow.c (split_edge): Do not call set_block_for_insn if we
12386         do not have a basic_block_for_insn structure.
12387
12388         * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain
12389         and destination functions are 32bit aligned within the trampoline.
12390         (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes.
12391         (TRAMPOLINE_ALIGNMENT): Define.
12392
12393         * cse.c (cse_insn): When changing (set (pc) (reg)) to
12394         (set (pc) (label_ref)), verify the change creates a valid insn.
12395
12396         * fr30.c (call_operand): Tighten and rework to match rules for
12397         call RTL expressions.
12398         * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs.
12399         * fr30.md (call patterns): Improve constraints.
12400
12401 Thu Jan 13 23:44:03 2000  Richard Henderson  <rth@cygnus.com>
12402
12403         * fr30.c (fr30_expand_epilogue): Revert last change.
12404         Use emit_jump_insn for the return insn.
12405
12406 Thu Jan 13 14:46:03 2000  Jason Eckhardt  <jle@cygnus.com>
12407                           Stan Cox  <scox@cygnus.com>
12408
12409         * predict.c: New file. Preliminary infrastructure work for static
12410         branch prediction and basic block reordering.
12411         * basic-block.h: Add prototype for estimate_probability.
12412         * Makefile.in: Add rules for predict.o.
12413
12414 2000-01-13  Jason Merrill  <jason@yorick.cygnus.com>
12415
12416         * fixincludes (va_list): Use __not_va_list__ for the dummy.
12417         * fixinc/*: Likewise.
12418
12419 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12420
12421         * cccp.c: PROTO -> PARAMS.
12422         * cexp.y: Likewise.
12423         * collect2.c: Likewise.
12424         * combine.c: Likewise.
12425         * convert.h: Likewise.
12426         * cse.c: Likewise.
12427         * dbxout.c: Likewise.
12428         * dbxout.h: Likewise.
12429         * diagnostic.c: Likewise.
12430         * doprint.c: Likewise.
12431         * dwarf2out.c: Likewise.
12432         * dwarf2out.h: Likewise.
12433         * dwarfout.c: Likewise.
12434         * dwarfout.h: Likewise.
12435         * dyn-string.h: Likewise.
12436
12437 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12438
12439         * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in
12440         macro conditionals guarding use.
12441
12442         * dwarf2out.c: Include "tm_p.h".
12443
12444         * function.c (locate_and_pad_parm): Mark parameter with
12445         ATTRIBUTE_UNUSED.
12446         (expand_function_end): Likewise for variable `context'.
12447
12448         * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return.
12449
12450 2000-01-13  Nick Clifton  <nickc@cygnus.com>
12451
12452         * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed
12453         register to prevent compile time warnings.
12454
12455 2000-01-13  Zack Weinberg  <zack@wolery.cumb.org>
12456
12457         * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv'
12458         to avoid -Wtraditional warning.
12459
12460 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12461
12462         * 1750a-protos.h: New file.
12463
12464         * 1750a.c: Include tm_p.h.  Add static prototypes.  Fix compile
12465         time warnings.
12466
12467         * 1750a.h: Move prototypes to 1750a-protos.h.  Fix compile time
12468         warnings.
12469
12470         * 1750a.md: Likewise.
12471
12472 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12473
12474         * a29k-protos.h: New file.
12475
12476         * a29k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12477         time warnings.
12478
12479         * a29k.h: Move prototypes to a29k-protos.h.  Fix compile time
12480         warnings.
12481
12482 2000-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12483
12484         * clipper-protos.h: New file.
12485
12486         * clipper.c: Include tm_p.h.  Add static prototypes.  Fix compile
12487         time warnings.
12488
12489         * clipper.h: Move prototypes to clipper-protos.h.  Fix compile time
12490         warnings.
12491
12492 Thu Jan 13 16:03:06 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
12493
12494         * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS.
12495
12496 2000-01-13  Nathan Sidwell  <sidwell@codesourcery.com>
12497
12498         * configure.in (--enable-new-gxx-abi): New option.
12499         * acconfig.h (ENABLE_NEW_GXX_ABI): New define.
12500         * Makefile.in (GXX_ABI_FLAG): New variable.
12501         * configure: Regenerate.
12502
12503 2000-01-13  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12504
12505         * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK.
12506         * tm.texi (FORCE_STRUCT_BLK): Document.
12507         * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro.
12508
12509 Wed Jan 12 23:12:47 2000  Hans-Peter Nilsson  <hp@axis.com>
12510
12511         * config/ns32k/ns32k.md: Revert Jan 9 change.
12512
12513         * genrecog.c (maybe_both_true_2): Do not compare a predicate-test
12514         to a mode-test, if the predicate is address_operand.
12515
12516 Wed Jan 12 22:34:00 2000  Jeffrey A Law  (law@cygnus.com)
12517
12518         * combine.c (if_then_else_cond): Be careful about what kinds
12519         of RTL expressions are passed to operand_subword.
12520
12521         * flow.c (split_edge): If we have to insert a new jump, make
12522         sure to associate it with a basic block.
12523
12524         * flow.c (commit_one_edge_insertion): A block with one successor
12525         can end in a JUMP_INSN that is not a simplejump.
12526
12527 2000-01-12  Robert Lipe  <robertl@sco.com>
12528
12529         * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor".
12530         (BUILD_VA_LIST_TYPE): Define.
12531         (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact
12532         with crtstuff.c.
12533
12534 2000-01-12  Jason Merrill  <jason@casey.cygnus.com>
12535
12536         * cccp.c (do_pragma): Add cast to (char *).
12537
12538 2000-01-12  Richard Henderson  <rth@cygnus.com>
12539             Fred Fish  <fnf@be.com>
12540             Jason Merrill  <jason@cygnus.com>
12541
12542         * configure.in (i?86-*-beos{pe,elf,}*): Recognize.
12543         * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files.
12544         * i386/beos-elf.h, i386/beos-pe.h: New files.
12545
12546         * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New.
12547         * cross-make (SYSTEM_HEADER_DIR): Define using
12548         CROSS_SYSTEM_HEADER_DIR.
12549
12550         * gcc.c (LIBRARY_PATH_ENV): Provide default.
12551         (process_command): Use it.
12552         (main): Likewise.  Kill trailing = from env vars.
12553         (build_search_list): Put it back.
12554         * collect2.c (main): Use LIBRARY_PATH_ENV.
12555
12556         * configure.in (GCC_NEED_DECLARATIONS): Add environ.
12557         * toplev.c: Use NEED_DECLARATION_ENVIRON.
12558
12559         * tm.texi (Frame Layout): Document SMALL_STACK.
12560         * c-common.c (c_common_nodes_and_builtins): Check it.
12561
12562         * system.h: Undef alloca after including glibc's <stdlib.h>,
12563         if USE_C_ALLOCA is defined.
12564
12565         * gcc.c (set_input): New fn.
12566         (main): After all input files are compiled, reset the input file
12567         info to the first.
12568
12569         * aclocal.m4 (rindex, index): If already defined, don't attempt
12570         to redefine.
12571
12572         * ginclude/varargs.h: (__va_list__): Define ifndef.
12573         * ginclude/stdarg.h: Likewise.
12574
12575         * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int
12576         instead of unsigned char.
12577
12578         * hash.h (true, false, boolean): Undef before enum.
12579
12580         * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be
12581         proper type of "HOST_WIDE_INT *", rather than their natural type of
12582         "unsigned HOST_WIDE_INT *".
12583
12584 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12585
12586         * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets.
12587
12588         * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED.
12589
12590         * regclass.c (choose_hard_reg_mode): Likewise.
12591
12592         * reload.c (find_valid_class, strict_memory_address_p): Likewise.
12593
12594         * reorg.c (optimize_skip): Wrap prototype in macro conditionals.
12595
12596 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12597
12598         * c-common.c: PROTO -> PARAMS.
12599         * c-common.h: Likewise.
12600         * c-decl.c: Likewise.
12601         * c-iterate.c: Likewise.
12602         * c-lang.c: Likewise.
12603         * c-lex.c: Likewise.
12604         * c-lex.h: Likewise.
12605         * c-parse.in: Likewise.
12606         * c-pragma.c: Likewise.
12607         * c-pragma.h: Likewise.
12608         * c-tree.h: Likewise.
12609         * c-typeck.c: Likewise.
12610         * objc/objc-act.c: Likewise.
12611         * objc/objc-act.h: Likewise.
12612
12613 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12614
12615         * m88k-protos.h: New file.
12616
12617         * m88k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12618         time warnings.
12619
12620         * m88k.h: Move prototypes to m88k-protos.h.  Fix compile time warnings.
12621
12622         * m88k.md: Likewise.
12623
12624         * tekXD88.h: Likewise.
12625
12626 2000-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12627
12628         * m68k-protos.h: New file.
12629
12630         * m68k.c: Include tm_p.h.  Add static prototypes.  Fix compile
12631         time warnings.
12632
12633         * m68k.h: Move prototypes to m68k-protos.h.  Fix compile time warnings.
12634
12635         * mot3300.h: Likewise.
12636
12637 2000-01-12  Richard Earnshaw <rearnsha@arm.com>
12638
12639         * haifa-sched.c (split_edges): Pass edgeset_size as second arg to
12640         extract_bitlst.
12641         (extract_bitlist): Declare bitlen.
12642
12643 2000-01-12  Zack Weinberg  <zack@wolery.cumb.org
12644
12645         * cccp.c: Accept and ignore -lang-fortran.
12646
12647         * c-typeck.c (build_c_cast): Issue -Wcast-qual warnings if the
12648         qualifiers don't match at any level of pointerness.
12649
12650 2000-01-12  Robert Lipe  <robertl@sco.com>
12651
12652         * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT.
12653
12654 2000-01-12  Bernd Schmidt  <bernds@cygnus.co.uk>
12655
12656         * reload1.c (reload_reg_unavailable): New static variable.
12657         (reload_reg_free_p): Test it.
12658         (reload_reg_free_for_value_p): Test it instead of
12659         reload_reg_used.
12660         (choose_reload_regs_init): Compute it.
12661
12662 Wed Jan 12 03:24:41 2000  Toshiyasu Morita (toshi.morita@sega.com)
12663
12664         * reorg.c (fill_slots_from_thread): Check modified_in_p
12665         before replacing.
12666
12667 Wed Jan 12 03:20:31 2000  John Marshall <john_w_marshall@palm.com>
12668
12669         * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format
12670         these nodes even if INTERNALS is not set.
12671
12672 Wed Jan 12 09:39:22 2000  Nick Burrett  <nick.burrett@btinternet.com>
12673
12674         * gcse.c (delete_null_pointer_checks_1): Cope when
12675         get_condition cannot determine the condition.
12676
12677 2000-01-12  Gabriel Dos Reis  <gdr@codesourcery.com>
12678
12679         * toplev.h (set_message_length): Declare.
12680
12681         * diagnostic.c (obstack_chunk_alloc): Define macro.
12682         (obstack_chunk_free): Likewise.
12683         (struct output_buffer): New data structure.
12684         (vmessage): Remove.
12685         (output_maximum_width): New variable.
12686         (doing_line_wrapping, set_message_length, init_output_buffer,
12687         get_output_prefix, output_space_left, emit_output_prefix,
12688         output_newline, output_append, output_puts, dump_output,
12689         vbuild_message_string, build_message_string, build_location_prefix,
12690         voutput_notice, output_printf, line_wrapper_printf,
12691         vline_wrapper_message_with_location):  New functions. Implement
12692         automatic line wrapping.
12693         (v_message_with_decl): Make it handle automatic line wrapping.
12694         (v_error_with_file_and_line): Likewise.
12695         (v_warning_with_file_and_line): Likewise.
12696         (announce_function): Likewise.
12697         (default_print_error_function): Likewise.
12698
12699 2000-01-11 16:24 -0800  Zack Weinberg  <zack@wolery.cumb.org>
12700
12701         * cpplib.h (struct cpp_options): Change lang_asm to char.
12702         Add lang_fortran.
12703         * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's
12704         done in cpp_handle_option now.
12705         (initialize_builtins): Take out special case code used only by
12706         __STDC_VERSION__.
12707         (cpp_handle_option): Turn off trigraphs and trigraph warnings
12708         if -traditional.  Recognize -lang-fortran and set
12709         lang_fortran, also turn off cplusplus_comments.
12710         (print_help): Document -lang-fortran.
12711         * cpplib.c (handle_directive): Ignore `# 123 "file"' if
12712         lang_asm. Ignore all directives other than `# 123 "file"' if
12713         CPP_PREPROCESSED.
12714         (cpp_get_token): If -traditional, don't recognize directives
12715         unless the # is in column 1.
12716         (parse_string): If lang_fortran or lang_asm, silently
12717         terminate strings ('' or "") at end of line.
12718         Remove unnecessary braces.
12719
12720 2000-01-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12721             Richard Henderson  <rth@cygnus.com>
12722
12723         * resource.c (mark_referenced_resources): Mark a set strict_low_part
12724         as used.
12725         * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set
12726         strict_low_part when possible.
12727
12728 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12729
12730         * alias.c: PROTO -> PARAMS.
12731         * basic-block.h: Likewise.
12732         * bitmap.c: Likewise.
12733         * bitmap.h: Likewise.
12734         * builtins.c: Likewise.
12735         * c-aux-info.c: Likewise.
12736         * caller-save.c: Likewise.
12737         * calls.c: Likewise.
12738
12739 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12740
12741         * Makefile.in (toplev.o): Depend on regs.h.
12742
12743         * output.h (tdesc_section): Prototype.
12744
12745         * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED.
12746
12747         * sdbout.c: Include "tm_p.h".
12748
12749         * toplev.c: Include "regs.h".
12750
12751 Tue Jan 11 11:37:58 2000  Mike Stump  <mrs@wrs.com>
12752
12753         * unroll.c (unroll_loop): Add EH support.
12754
12755 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12756
12757         * pa-protos.h: New file.
12758
12759         * pa.c: Include recog.h and tm_p.h.
12760         (compute_zdepwi_operands, compute_movstrsi_length,
12761         remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d,
12762         find_addr_reg, import_milli): Add static prototypes.
12763         (pa_cpu_string, pa_arch_string): Constify a char*.
12764         (legitimize_pic_address): Pass argument `mode' to pic_label_operand.
12765         (read_only_operand): Add argument `mode'.
12766         (singlemove_string, output_move_double, output_fp_move_double,
12767         output_block_move, output_and, output_ior, output_ascii,
12768         remove_useless_addtr_insns, milli_names, output_mul_insn,
12769         output_div_insn, output_mod_insn, output_arg_descriptor,
12770         output_cbranch, output_bb, output_bvb, output_dbra, ,
12771         output_millicode_call, output_call, hppa_encode_label,
12772         output_parallel_movb, output_parallel_addb): Constify a char*.
12773         (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED.
12774         (output_parallel_addb): Remove extra arg to `constrain_operands'
12775
12776         * pa.h:  Move all prototypes to pa-protos.h.
12777         (pa_cpu_string, pa_arch_string): Constify a char*.
12778         (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument.
12779
12780         * pa.md: Call `function_label_operand' with mode argument.
12781         Likewise for `read_only_operand'.
12782         Fix nesting of parens in call to `symbolic_operand'.
12783
12784 2000-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12785
12786         * i860-protos.h: New file.
12787
12788         * i860.c: Include tm_p.h.  Add static prototypes.  Fix compile
12789         time warnings.
12790
12791         * i860.h: Move prototypes to i860-protos.h.  Fix compile time warnings.
12792
12793         * i860.md: Likewise.
12794
12795 Tue Jan 11 18:59:35 MET 2000  Jan Hubicka <jh@suse.cz>
12796
12797         * i386.md (movstrsi expander): Rewrite.
12798         (movstrsi_1 insn): Deleted.
12799         (strmovhi, strmovqi expander): New expanders.
12800         (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns.
12801         * i386.c (x86_single_stringop): New global variable.
12802         * i386.h (x86_single_stringop): Declare.
12803         (TARGET_SINGLE_STRINGOP): New macro.
12804
12805 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
12806
12807         * config/mips/mips.c (mips_va_arg): For EABI, emit the queued
12808         integer vararg POSTINCREMENT before the destination of the jump
12809         for the hard fp case.
12810         (function_arg_pass_by_reference): Pass a copy of CUM to
12811         FUNCTION_ARG.
12812
12813         * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check
12814         for CONSTANT_ADDRESS_P above while loop for subreg.
12815
12816 2000-01-11  Clinton Popetz  <cpopetz@cygnus.com>
12817
12818         * flow.c (propagate_block): When a prologue/epilogue insn
12819         is marked dead, unconditionally clear libcall_is_dead and
12820         insn_is_dead, and only dump rtl if warnings aren't being
12821         suppressed.
12822
12823 Tue Jan 11 16:26:47 MET 2000  Jan Hubicka <jh@suse.cz>
12824
12825         * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.
12826         * i386.md (FIRST_PSEUDO_REGISTER): Set to 20.
12827         (FIXED_REGISTERS): Set dirflag as fixed.
12828         (CALL_USED_REGISTERS): Set dirflag as used.
12829         (REG_ALLOC_ORDER): Set dirflag as last one.
12830         (DIRFLAG_REG): New macro.
12831         (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility.
12832         (HI_REGISTER_NAMES): Add dirflag.
12833         (DEBUF_PRINT_REG): Handle dirflag.
12834         * i386.md (type attribute): New cld and str types.
12835         (length_opcode attribute): Set cld and str to 1.
12836         (memory attribute): Set str to unknown - it is not clear from the
12837         patterns.
12838         (pent_np function unit): Prefixed string operations takes 12 cycles
12839         minimally; cld takes 2 cycles.
12840         (ppro_uops attribute): Str is "many" and cld is "few".
12841         (ppro_p0 unit): Handle cld here.
12842         (k6_alux unit): Handle cld and str types.
12843         (k6_load unit): It is ocupied by str opcodes.
12844         (k6_store unit): It is ocupied by str opcodes.
12845         (athlon_decode): Str is vector decoded.
12846         (athlon_ieu): Handle str and cld.
12847         (cld pattern): New.
12848         (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction
12849         (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1,
12850         cmpstrsi_nz_1 insn): Do not output cld instruction
12851
12852 Tue Jan 11 06:14:39 2000  David Starner <dstarner98@aasaa.ofe.org>
12853
12854         * gcc.texi (G++ and GCC): Add Java and Chill.
12855         (Bug Critera): Don't list languages.
12856
12857         * gcc.texi (Incompatibilities): No longer claim most C compilers
12858         are K&R.
12859
12860         * gcc.texi (G++ and GCC): Update other front-ends list.
12861
12862 Tue Jan 11 05:49:01 2000  Jeffrey A Law  (law@cygnus.com)
12863
12864         * i386.c (ix86_expand_setcc): Fix typo.
12865         (ix86_expand_movcc): Similarly.
12866
12867         * Band-aid until haifa's bitset implementation is nuked.
12868         * haifa-sched.c (extract_bitlst): New parameter for size of the
12869         bitset in bits.  All callers changed.  Avoid looking at undefined
12870         bits in the bitset.
12871         (edgeset_bitsize): New variable.
12872         (schedule_region): Initialize edgeset_bitsize.
12873
12874 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12875
12876         * Makefile.in (optabs.o): Depend on real.h
12877         (resource.o): Depend on insn-attr.h
12878
12879         * builtins.c (result_vector): Wrap prototype in macro conditions
12880         governing definition and use.
12881
12882         * c-common.c: Include tm_p.h.
12883
12884         * c-lex.c: Likewise.
12885
12886         * elfos.h: Constify a char*.
12887
12888         * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length.
12889         (get_attr_length, shorten_branches, profile_after_prologue): Mark
12890         parameter with ATTRIBUTE_UNUSED.
12891
12892         * fold-const.c (exact_real_inverse): Wrap variable `i' in
12893         CHECK_FLOAT_VALUE.
12894
12895         * haifa-sched.c (schedule_insns): Mark parameter with
12896         ATTRIBUTE_UNUSED.
12897
12898         * optabs.c: Include real.h.
12899
12900         * real.h (ereal_atof): Add prototype arguments.
12901
12902         * resource.c: Include insn-attr.h.
12903
12904         * sdbout.c (sdbout_queue_anonymous_type,
12905         sdbout_dequeue_anonymous_types): Wrap in macro
12906         SDB_ALLOW_FORWARD_REFERENCES.
12907         (sdbout_init, sdbout_start_new_source_file): Mark parameter with
12908         ATTRIBUTE_UNUSED.
12909
12910         * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return.
12911
12912         * stupid.c: Include tm_p.h.
12913
12914         * tree.c (real_value_from_int_cst): Mark parameter with
12915         ATTRIBUTE_UNUSED.
12916
12917 2000-01-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12918
12919         * i960-protos.h: New file.
12920
12921         * i960.c: Include tm_p.h.  Add static prototypes.  Fix compile
12922         time warnings.
12923
12924         * i960.h: Move prototypes to i960-protos.h.  Fix compile time warnings.
12925
12926 2000-01-10  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12927
12928         * combine.c (expand_field_assignment): Do not discard SUBREGs
12929         while computing nonzero_bits.
12930
12931 2000-01-09  Nick Clifton  <nickc@cygnus.com>
12932
12933         * config/arm/arm.c: Fix compile time warnings about signed vs
12934         unsigned constants.
12935         * config/arm/arm.h: Fix compile time warnings about signed vs
12936         unsigned constants.
12937
12938 2000-01-09  Philip Blundell  <philb@gnu.org>
12939
12940         * config/arm/arm.c (output_return_instruction): Use `ldr' rather
12941         than `ldm' with only one register.
12942         * config/arm/arm.md (push_multi): Use `str' rather than `stm' with
12943         only one register.
12944
12945         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is
12946         clobbered.
12947
12948 Sun Jan  9 17:50:23 2000  Hans-Peter Nilsson  <hp@axis.com>
12949
12950         * config/ns32k/ns32k.md (load or push effective address): Operand 1
12951         must have SImode.
12952
12953 2000-01-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12954
12955         * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around
12956         assignment used as truth value.
12957
12958         * function.c (assign_temp): Mark parameter `dont_promote' with
12959         ATTRIBUTE_UNUSED.  Wrap variable `unsignedp' with macro
12960         PROMOTE_FOR_CALL_ONLY.
12961
12962         * genrecog.c (write_subroutine): Mark variable `operands' with
12963         ATTRIBUTE_UNUSED.
12964
12965         * optabs.c (prepare_cmp_insn): Mark parameter `align' with
12966         ATTRIBUTE_UNUSED.
12967
12968         * sdbout.c (sdbout_init): Likewise for parameter `asm_file'.
12969         (sdbout_begin_block, sdbout_end_block): Likewise for `file'.
12970
12971         * toplev.c (note_deferral_of_defined_inline_function): Likewise
12972         for `decl'.
12973
12974 2000-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12975
12976         * config/c4x.h: Tidy up comments.
12977         * config/c4x.c: Likewise.
12978
12979 Sun Jan  9 01:02:55 EST 2000  John Wehle  (john@feith.com)
12980
12981         * fold-const.c (lshift_double, rshift_double): Handle
12982         shifting by 2 * HOST_BITS_PER_WIDE_INT correctly.
12983
12984 2000-01-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
12985
12986         * toplev.c (rest_of_compilation): Initialize cse_not_expected as
12987         in prepare_function_start().
12988
12989 Sat Jan  8 12:12:46 2000  Nick Clifton  <nickc@cygnus.com>
12990
12991         * config/v850/v850.c (expand_epilogue): Interrupt functions no
12992         longer allocate extra stack for function calls.
12993
12994 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12995
12996         * config/c4x/c4x.md (*subqf3_set): Fix typo.
12997
12998 2000-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
12999
13000         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0.
13001
13002 2000-01-07  David Edelsohn  <edelsohn@gnu.org>
13003
13004         * rs6000.c (processor_target_table): Add power3 as alias for 630.
13005         * aix43.h: Revert Aug 2 change.
13006         (HAS_INIT_SECTION): Define, not visible yet.
13007         (LD_INIT_SWITCH): Define, not visible yet.
13008         * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change.
13009
13010         * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too.
13011
13012         * collect2.c (main): Expand ld2 size further.
13013         (export_object_lst): Cast assignment to avoid warning.
13014         (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support.
13015         (scan_prog_file, COFF): Do not collect initialization or
13016         finalization functions generated for entire shared object if
13017         init/fini support present.
13018
13019 2000-01-07  Nick Clifton  <nickc@cygnus.com>
13020
13021         * config/elfos.h: Tidy up formatting of marcos.  Make sure
13022         that .section directives are always prefixed by a tab.
13023
13024         * config/svr4.h: Add #include "elfos.h" and remove duplicate
13025         definitions.
13026
13027 2000-01-07  Matt Austern  <austern@sgi.com>
13028
13029         * fold-const.c (real_hex_to_f): Remove duplicate declaration of
13030         expon.
13031
13032 Fri Jan  7 01:55:34 2000  Jeffrey A Law  (law@cygnus.com)
13033
13034         * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of
13035         crtstuff.c.
13036         (crtbegin.o, s-crtS): Likewise.
13037
13038 2000-01-06  Richard Henderson  <rth@cygnus.com>
13039
13040         * alpha.md (adddi_2+1): Limit offset such that it will be
13041         loadable with a single ldah+lda pair.
13042         (adddi_2+2): Explicitly fail split if we can't make it work.
13043
13044 2000-01-06  Mumit Khan  <khan@xraylith.wisc.edu>
13045
13046         * protoize.c: Conditionally include unistd.h.
13047         (IS_SAME_PATH_CHAR): New macro.
13048         (IS_SAME_PATH): New macro.
13049         (CPLUS_FILE_SUFFIX): New macro.
13050         (cplus_suffix): New static variable.
13051         (is_abspath): New static function.
13052         (in_system_include_dir): Handle DOS style pathnames.
13053         (file_could_be_converted): Likewise.
13054         (file_normally_convertible): Likewise.
13055         (directory_specified_p): Likewise.
13056         (file_excluded_p): Likewise.
13057         (abspath): Likewise.
13058         (shortpath): Likewise.
13059         (referenced_file_is_newer): Likewise.
13060         (save_def_or_dec): Likewise.
13061         (do_processing): Likewise.
13062         (main): Likewise.
13063         (edit_file): Likewise. Use rename instead of link.
13064         (rename_c_file): Likewise. Don't rename syscalls file.
13065         (munge_compile_params): Define null device for DOS based systems.
13066         (process_aux_info_file): Use binary mode if appliable.
13067         (edit_file): Likewise.
13068         * invoke.texi (Running Protoize): Document C++ suffixes used.
13069
13070         * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and
13071         IS_DIR_SEPARATOR macros.
13072         * collect2.c: Likewise.
13073         * cppinit.c: Likewise.
13074         * dwarf2out.c: Likewise.
13075         * gcc.c: Likewise.
13076         * gcov.c: Likewise.
13077         * prefix.c: Likewise.
13078         * rtl.c: Likewise.
13079         * toplev.c: Likewise.
13080         * system.h: And move to here.
13081
13082         * prefix.c (update_path): Fix typo in variable name.
13083
13084 2000-01-06  Richard Henderson  <rth@cygnus.com>
13085
13086         * flow.c (mark_set_1): Use loop_depth+1 as reference weight.
13087         (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise.
13088         (count_reg_sets_1, count_reg_references): Likewise.
13089         (flow_loops_level_compute): Start counting actual loop depth at 1.
13090         (flow_loops_find): Likewise.
13091         * local-alloc.c (update_equiv_regs): Likewise.
13092         * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change.
13093
13094 2000-01-06  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
13095
13096         * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to
13097         FIRST_PSEUDO_REGISTER
13098         * dwarf2out.c: Don't include frame.h
13099         * dwarfout.c: Likewise
13100         * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on
13101         frame.h
13102
13103 Thu Jan  6 13:44:59 CET 2000  Jan Hubicka  <jh@suse.cz>
13104
13105         * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of
13106         dead registers.
13107
13108         * i386.c (movsf splitter): Fix typo in my last checkin.
13109
13110 2000-01-05  Nick Clifton  <nickc@cygnus.com>
13111
13112         * varasm.c (IN_NAMED_SECTION): Allow targets to provide their
13113         own definition of this macro.
13114         (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either
13115         flag_data_sections or UNIQUE_SECTION_P are true.
13116
13117         * tm.texi (UNIQUE_SECTION): Document that it can be called for
13118         unitialised data decls.
13119
13120         * config/i386/winnt.c (i386_pe_unique_section): Cope with
13121         being called for uninitialised data.
13122
13123         * config/i386/interix.c (i386_pe_unique_section): Cope with
13124         being called for uninitialised data.
13125
13126         * config/mips/elf.h (UNIQUE_SECTION): Cope with being called
13127         for uninitialised data.
13128
13129         * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called
13130         for uninitialised data.
13131
13132         * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called
13133         for uninitialised data.
13134
13135         * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define.
13136         (UNIQUE_SECTION_P): Always generate a unique section if
13137         flag_data_sections is true.
13138         (UNIQUE_SECTION): Also generate unique sections for
13139         uninitialised data.
13140         (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section().
13141         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use
13142         named_section().
13143
13144 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13145
13146         * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF,
13147         SI, or DI.
13148
13149 2000-01-06  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13150
13151         * config/c4x/c4x.md (udivqi3, divqi3): Delete.
13152         (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise.
13153         (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New.
13154         (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise.
13155         (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise.
13156
13157         * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls.
13158
13159 2000-01-05 11:25 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
13160
13161         * c-decl.c (finish_enum): Simplify code to determine minimum and
13162         maximum values of the enum, and calculate the type.  Remove check
13163         for FUNCTION_DECLs in the values list, which cannot happen.  Replace
13164         the DECL_INITIAL of each enumeration constant with a copy converted
13165         to the enumeration type.  When updating variant types, don't bother
13166         updating the type itself.
13167
13168         * c-typeck.c (build_binary_op): Simplify conditional expressions
13169         when weeding out spurious signed-unsigned warnings.  Add new
13170         spurious warning category: if the unsigned quantity is an enum
13171         and its maximum value fits in signed_type(result_type).  Update
13172         commentary.
13173         (build_conditional_expr): Warn here if one alternative is signed
13174         and the other is unsigned.
13175
13176 2000-01-05  Nick Clifton  <nickc@cygnus.com>
13177
13178         * config/fr30/fr30.h: Remove extraneous comments.
13179
13180 2000-01-05  Bernd Schmidt  <bernds@cygnus.co.uk>
13181
13182         * reload1.c (choose_reload_regs): When disabling a reload, also
13183         set reload_spill_index to -1.
13184
13185 2000-01-04  Joel Sherrill (joel@OARcorp.com>
13186
13187         * configure.in (m68*-*-rtemscoff*): New target, formal name for
13188         old m68*-*-rtems*.
13189         (m68*-*-rtemself*): New target.
13190         (mips64orion-*-rtems*): Remove duplicate definition of tm_file.
13191         (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*.
13192         (sparc*-*-rtemself*): New target.
13193         (sparc*-*-rtems*): Now elf not a.out.
13194         * config/i386/rtems.h: Include config/rtems.h.
13195         * config/i386/rtemself.h: Include config/rtems.h.
13196         * config/i960/rtems.h: Include config/rtems.h.
13197         * config/m68k/rtems.h: Include config/rtems.h.
13198         * config/m68k/rtemself.h: Include config/rtems.h.
13199         * config/mips/rtems64.h: Include config/rtems.h.
13200         * config/pa/rtems.h: Include config/rtems.h.
13201         * config/rs6000/rtems.h: Include config/rtems.h.
13202         * config/sh/rtems.h: Include config/rtems.h.
13203         * config/sh/rtemself.h: Include config/rtems.h.
13204         * config/sparc/rtems.h: Include config/rtems.h.
13205         * config/sparc/rtemself.h: Include config/rtems.h
13206
13207 Tue Jan  4 23:59:26 2000  Denis Chertykov <denisc@overta.ru>
13208
13209         * final.c (shorten_branches): Correctly compute length of
13210         asms without operands.
13211
13212 Tue Jan  4 22:55:41 2000  Steve Chamberlain <sac@pobox.com>
13213
13214         * configure.in: Add pj target.
13215         * configure: Regenerate.
13216         * config/pj: New directory.
13217         * config/pj/lib1funcs.S: New file.
13218         * config/pj/linux.h: New file.
13219         * config/pj/pj.c: New file.
13220         * config/pj/pj.md: New file.
13221         * config/pj/pjl.h: New file.
13222         * config/pj/t-pj: New file.
13223         * config/pj/xm-pj.h: New file
13224
13225 Tue Jan  4 22:30:16 2000  Jeffrey A Law  (law@cygnus.com)
13226
13227         * toplev.c (rest_of_compilation): Run shorten-branches before
13228         reg-stack for now.
13229
13230 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13231
13232         * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behaviour of
13233         macros so that they're consistent with their names.
13234         * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise.
13235         * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise.
13236
13237 2000-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13238
13239         * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never
13240         modified inadvertently.
13241
13242 2000-01-04  Joel Sherrill <joel@OARcorp.com>
13243
13244         * configure.in (v850*-*-rtems*): New target.
13245         * configure: Regenerate.
13246         * config/v850/rtems.h: New file.
13247
13248 2000-01-04  Mumit Khan  <khan@xraylith.wisc.edu>
13249
13250         * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime.
13251         (__gthread_key_create): Likewise.
13252         (__gthread_key_dtor):  Likewise.
13253         (__gthread_once): Fix logic.
13254         (__gthread_key_delete): Cast away constness.
13255
13256         * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option.
13257         * invoke.texi: Document.
13258         * i386/mingw32.h (CPP_SPEC): Use.
13259         (LIBGCC_SPEC): Likewise.
13260         * i386/crtdll.h (LIBGCC_SPEC): Likewise.
13261
13262 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
13263
13264         * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine.
13265         (HANDLE_PRAGMA_PACK): Undefine.
13266         (SLOW_UNALIGNED_ACCESS): Define.
13267
13268 2000-01-04  David Edelsohn  <edelsohn@gnu.org>
13269
13270         * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
13271         to default definition.
13272         (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment.
13273         (store_fixed_bit_field): Call macro with word_mode and alignment.
13274         (extract_bit_field): Call macro with relevant mode and alignment.
13275         * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters
13276         to default definition.
13277         (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode
13278         and alignment.
13279         (move_by_pieces_ninsns): Likewise.
13280         (clear_by_pieces): Likewise.
13281         (emit_push_insn): Likewise.
13282         (store_field): Call macro with relevant mode and alignment.
13283         (expand_expr): Likewise.
13284         (expand_expr_unaligned): Likewise.
13285
13286         * rs6000.h (HANDLE_PRAGMA_PACK): Define.
13287         (SLOW_UNALIGNED_ACCESS): Define.
13288         (CASE_VECTOR_MODE): Always use 32-bit offsets.
13289         (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode.
13290         (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op.
13291         (toc_section): Likewise and .toc pseudo-op.
13292         (ASM_DECLARE_FUNCTION): Likewise.  Align text more strictly in
13293         64-bit mode.
13294         (TEXT_SECTION_ASM_OP): Likewise.
13295         (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use
13296         32-bit offsets.
13297
13298         * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters.
13299         * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise.
13300         * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise.
13301         * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise.
13302         * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise.
13303
13304 Tue Jan  4 11:44:13 2000  Jeffrey A Law  (law@cygnus.com)
13305
13306         * regclass.c: Revert my Jan 4 change to loop cost computation.
13307
13308 Tue Jan  4 19:22:39 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13309
13310         * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing
13311         compilation.
13312
13313 2000-01-04  Stan Cox  <scox@cygnus.com>
13314
13315         * haifa-sched.c (build_control_flow): Change unreachable simple
13316         loop test to check if current block has only one predecessor.
13317         (find_rgns): Initialize degree.  Use dest as degree index, not src.
13318
13319 2000-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13320
13321         * builtins.c (expand_builtin_strlen): Initialize variable `icode'.
13322
13323         * calls.c (expand_call): Likewise for
13324         `old_stack_arg_under_construction'.
13325
13326         * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'.
13327
13328         * function.c (pad_to_arg_alignment): Likewise for `save_var' and
13329         `save_constant'.
13330
13331         * gcc.c (execute): Likewise for `ut' and `st'.
13332
13333         * genattrtab.c (attr_rtx): Likewise for `rt_val'.
13334
13335         * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'.
13336
13337         * jump.c (jump_optimize_1): Likewise for `temp2'.
13338
13339         * local-alloc.c (block_alloc): Likewise for `r1'.
13340
13341         * loop.c (recombine_givs): Likewise for `life_start' and `life_end'.
13342
13343         * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'.
13344         (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'.
13345
13346         * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node'
13347         and `set2'.
13348
13349         * reload.c (find_reloads): Likewise for `goal_alternative_number'
13350         and `goal_earlyclobber'.
13351
13352         * scan-decls.c (scan_decls): Likewise for `prev_id_end'.
13353
13354         * sdbout.c (sdbout_one_type): Likewise for `member_scl'.
13355
13356         * stupid.c (stupid_life_analysis): Likewise for `chain'.
13357
13358         * unroll.c (copy_loop_body): Likewise for `copy'.
13359
13360         * varasm.c (output_constructor): Likewise for `byte'.
13361
13362 Tue Jan  4 15:34:34 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13363
13364         * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory
13365         all FP constants for constant->reg moves.
13366         (ix86_split_to_parts): Try to convert memory address into immediate
13367         when available in the constant pool.
13368         * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg
13369         moves.
13370         (LEGITIMATE_CONSTANT_P): Return 1.
13371         * i386.md (pushsf): New splitter to convert constant pool memory
13372         reference to immediate.
13373         (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before
13374         reload.
13375
13376 2000-01-04  Bernd Schmidt  <bernds@cygnus.co.uk>
13377
13378         * i386.md (ashlsi3_cmpno): Don't accept variables shifts.
13379         (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno,
13380         ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise.
13381         (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno,
13382         rotrhi3_cmpno, rotrqi3_cmpno): Likewise.
13383
13384 2000-01-04  Martin von Löwis  <loewis@informatik.hu-berlin.de>
13385
13386         * ginclude/stdbool.h:  Support compilation as C++.
13387
13388 Tue Jan  4 01:35:13 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
13389
13390         * fold-const.c (make_range): Don't try to reverse an unbounded range.
13391
13392 Tue Jan  4 00:18:46 2000  Jeffrey A Law  (law@cygnus.com)
13393
13394         * regclass.c (regclass): Properly compute loop_cost.  Adjust
13395         comments.
13396
13397         * regclass.c: Fix minor whitespace problems.
13398
13399 2000-01-03  Anthony Green  <green@cygnus.com>
13400
13401         * config/i386/i386.md (builtin_setjmp_receiver): New pattern.
13402         Restore the pic register if required.
13403
13404 2000-01-03  Ulrich Drepper  <drepper@cygnus.com>
13405
13406         * c-common.c (format_char_info): Update comment.
13407         (check_format_info): Recognize 'z' modifier in the same way 'Z'
13408         was recognized.  Emit warning for formats new in ISO C99 only
13409         if flag_isoc9x is not set.
13410
13411 Mon Jan  3 12:59:54 2000  Mark P. Mitchell  <mark@codesourcery.com>
13412
13413         * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs.
13414
13415 Mon Jan  3 15:33:37 MET 2000  Jan Hubicka  <hubicka@freesoft.cz>
13416
13417         * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to
13418         SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND.
13419         (make_compound_operation): Choose cheaper alternative between
13420         ZERO_EXTEND and SIGN_EXTEND when sign bit is not set.
13421
13422         * regclass.c (op_costs): Remove global variable.
13423         (record_reg_classes): New parameter "op_costs" and "reg_pref".
13424         (record_operand_costs): Break out from ...
13425         (scan_one_insn): ... here.
13426         (dump_regclass): Make dumps nicer.
13427         (regclass): Dump preferrences choosed and changes done during passes.
13428
13429 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
13430
13431         * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC.
13432
13433 2000-01-03  Jakub Jelinek  <jakub@redhat.com>
13434
13435         * config/sparc/sparc.c (gen_df_reg): New function.
13436         * config/sparc/sparc-protos.h (gen_df_reg): Add prototype.
13437         * config/sparc/sparc.md (movtf_no_e_insn_sp64+1,
13438         movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1,
13439         movtf_cc_reg_sp64+1): Use it.
13440
13441 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
13442
13443         * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on
13444         copied LABEL_DECLs.
13445
13446 Mon Jan  3 02:54:40 2000  Hans-Peter Nilsson  <hp@bitrange.com>
13447
13448         * config/i386/i386.c (ix86_expand_unary_operator): Function
13449         definition made void.
13450         (ix86_expand_binary_operator): Update outdated preceding comment.
13451         * config/i386/i386-protos.h (ix86_expand_unary_operator): Update
13452         prototype.
13453
13454         * config/i386/i386.c (override_options): Fix option-name typo.
13455
13456 2000-01-02  Mark Mitchell  <mark@codesourcery.com>
13457
13458         * system.h (CEIL): Define.
13459         * builtins.c (CEIL): Remove.
13460         * expmed.c (CEIL): Likewise.
13461         * expr.c (CEIL): Likewise.
13462         * stor-layout.c (CEIL): Likewise.
13463
13464 2000-01-02  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
13465
13466         * expr.c (store_constructor_field): Fix typo introduced with last
13467         gcc2 merge.
13468
13469 2000-01-01  Mark Mitchell  <mark@codesourcery.com>
13470
13471         * tree.h (BINFO_N_BASETYPES): New macro.
13472
13473 2000-01-01  Bernd Schmidt  <bernds@cygnus.co.uk>
13474
13475         * expmed.c (emit_store_flag): Prevent losing a pending stack
13476         adjust the same way we prevent losing queued increments.
13477
13478 Fri Dec 31 19:10:31 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13479
13480         * function.c (update_temp_slot_address): Handle case where sum of
13481         temporary address plus offset in register is a valid address.
13482
13483 1999-12-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
13484
13485         * genrecog.c (change_state) Corrected typo.
13486
13487 1999-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13488
13489         * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free,
13490         getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc,
13491         strerror, getrlimit, setrlimit, abort): Add prototype arguments.
13492
13493 1999-12-30  Bernd Schmidt  <bernds@cygnus.co.uk>
13494
13495         * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE
13496         case, expand GT comparisons correctly.  Fix a comment before this
13497         part of the code.
13498
13499 1999-12-30  Gabriel Dos Reis  <dosreis@cmla.ens-cachan.fr>
13500
13501         * dwarfout.c: Include "frame.h"
13502         * dwarf2out.c: Likewise.
13503         * Makefile.in (dwarfout.o): Depend on frame.h
13504         (dwarf2out.o): Likewise.
13505
13506 1999-12-29  "Martin v. Loewis" <martin@loewis.home.cs.tu-berlin.de>
13507
13508         Restore i386 binary compatibility in Dwarf EH info.
13509         * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old
13510         value of FIRST_PSEUDO_REGISTER.
13511         * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER.
13512         (struct frame_state): Use DWARF_FRAME_REGISTERS.
13513         * dwarfout.c (output_reg_number): Ditto.
13514         * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto.
13515         (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS.
13516
13517 1999-12-29  Bruce Korb  <autogen@linuxbox.com>
13518
13519         * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK
13520         * fixinc/fixincl.tpl(<hack>TEST_CT): Just do the existence test once
13521         (<hack>_RE_CT): not needed
13522         * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c
13523         rewritten to scan the file text once only
13524         "template<..." test added
13525         * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c
13526         (is_cxx_header): declaration added
13527         * fixinc/fixtests.c(is_cxx_header): removed
13528         (apply_fix_p_t): removed
13529         (double_slash_test): is_cxx_header is only called once now
13530         * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG
13531         * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state
13532         within the templates.
13533         The borken spelling of "broken" was fixed.
13534         * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages
13535         The default level depends on FIXINC_DEBUG.
13536
13537 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13538
13539         * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h.
13540         Otherwise provide a declaration for atexit.
13541         (init_dummy): Make sure dummy call to atexit is nevertheless
13542         called with correct number of args.
13543
13544         * frame.c: Update comments referring to other files.
13545
13546         * libgcc2.c: Likewise.
13547
13548 1999-12-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13549
13550         * cse.c (free_element, get_element): Remove unused prototypes.
13551
13552         * fold-const.c (extract_muldiv): Initialize variables `op0' and
13553         `op1'.
13554
13555         * jump.c (invert_exp): Add explicit braces to avoid ambiguous
13556         `else' clauses.
13557
13558 Wed Dec 29 12:44:54 1999  Donald Lindsay  <dlindsay@cygnus.com>
13559
13560         * configure.in,configure: case arm for mn10200-*-* now sets
13561         float_format=i32 so that float.h will correctly claim "double"
13562         to be 32 bits. Ran autoconf to generate configure from .in file.
13563
13564 Wed Dec 29 10:53:21 1999  Jeffrey A Law  (law@cygnus.com)
13565
13566         * pa.md (conditional zero): If op1 is a register, force it into
13567         the same register as op0.
13568
13569 1999-12-28  Mark Mitchell  <mark@codesourcery.com>
13570
13571         * tree.h (BINFO_BASETYPES): Improve documentation.
13572
13573 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13574
13575         * configure.in (--enable-checking): Use a more portable `for'
13576         loop syntax.
13577
13578 1999-12-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13579
13580         * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h,
13581         arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use.
13582
13583         * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h:
13584         Delete files.
13585
13586         * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED):
13587         Delete descriptions.
13588
13589         * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h,
13590         m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h,
13591         m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h,
13592         pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h,
13593         xm-svr4.h: Remove all instances of sys_siglist handling.
13594
13595 1999-12-27  Jakub Jelinek  <jakub@redhat.com>
13596
13597         * config/sparc/sparc.md (cmp_zero_qi,
13598         cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64,
13599         cmp_zero_extendqidi2_andcc_set): New patterns.
13600
13601 1999-12-28  Manfred Hollstein  <mhollstein@cygnus.com>
13602
13603         * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a.
13604         (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define.
13605         (fpgnulib.c, xfgnulib.c): Add rules.
13606         * m68k/t-mot3300-gas: Likewise.
13607
13608 1999-12-27  Ian Lance Taylor  <ian@zembu.com>
13609
13610         * configure.in: Avoid [[ by using test and changequote.  Add
13611         changequote required by 1999-12-14 change.
13612         * configure: Rebuild.
13613
13614 1999-12-27  Clinton Popetz  <cpopetz@cygnus.com>
13615
13616         * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix.
13617
13618 1999-12-27  Christophe Jaillet  <jaillet.christophe@caramail.com>
13619
13620         * alias.c (nonlocal_reference_p): Add else for disjoint ifs.
13621         * flow.c (find_use_as_address): Likewise.
13622         * function.c (fixup_var_refs_1): Likewise.
13623         (walk_fixup_memory_subreg, fixup_stack_1): Likewise.
13624         * jump.c (invert_exp, redirect_exp): Likewise.
13625         * loop.c (replace_call_address): Likewise.
13626         (count_nonfixed_reads): Likewise.
13627         * rtlanal.c (modified_between_p): Likewise.
13628         (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise.
13629         (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise.
13630         * unroll.c (remap_split_bivs): Likewise.
13631
13632 1999-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13633
13634         * diagnostic.c (v_message_with_decl): Use .* format specifier
13635         instead of building the format specifier width manually.
13636
13637         * system.h (strsignal): Don't check HAVE_STRSIGNAL when
13638         determining whether to provide a prototype.  Remove the
13639         sys_siglist clause in the conditional.
13640
13641 1999-12-23  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13642
13643         * fold-const.c (operand_equal_p): Use memcmp to compare string
13644         constants.
13645         Suggested by D. J. Bernstein
13646
13647 1999-12-17  Jakub Jelinek  <jakub@redhat.com>
13648
13649         * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure
13650         UNITS_PER_WORD and BITS_PER_WORD are compile time constants when
13651         compiling libgcc2.
13652         * config/mips/mips.h (TARGET_64BIT): Likewise.
13653         * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise.
13654         * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead
13655         of {SI,DI}type and DIunion.  Define these types to QI/HI modes on
13656         dsps.  Give routines proper names if SI/DI modes are not used.
13657         * longlong.h: Use DWunion instead of DIunion.
13658
13659 1999-12-26  Zack Weinberg  <zack@wolery.cumb.org>
13660
13661         * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING,
13662         GC_CHECKING, GC_ALWAYS_COLLECT.
13663         * configure.in: Allow --enable-checking with an argument
13664         listing check modes to enable.
13665         * config.in, configure: Rebuilt.
13666         * ggc-page.c, ggc-simple.c: Define GGC_POISON (and
13667         GGC_ALWAYS_VERIFY for ggc-simple.c) only if
13668         ENABLE_GC_CHECKING.  Define GGC_ALWAYS_COLLECT only if
13669         ENABLE_GC_ALWAYS_COLLECT.
13670         * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING
13671         throughout.
13672         * tree.h, tree.c: Change ENABLE_CHECKING to
13673         ENABLE_TREE_CHECKING throughout.
13674
13675 Sun Dec 26 07:48:20 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13676
13677         * fold-const.c (fold_truthop): Properly check for FP RHS.
13678
13679 1999-12-24  Mark Mitchell  <mark@codesourcery.com>
13680
13681         * toplev.h (note_deferall_of_defined_inline_function): Declare.
13682         * toplev.c (note_deferral_of_defined_inline_function): New
13683         function, split out from ...
13684         (rest_of_compilation): ... here.  Use it.
13685
13686 Fri Dec 24 12:34:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13687
13688         * expr.c (store_constructor): Don't call clear_storage if size is
13689         variable.
13690
13691 1999-12-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13692
13693         * Makefile.in (toplev.o): Depend on loop.h.
13694
13695         * dwarfout.c: Include tm_p.h.
13696
13697         * emit-rtl.c (restore_emit_status): Mark parameter with
13698         ATTRIBUTE_UNUSED.
13699
13700         * final.c (final_scan_insn): Likewise.
13701
13702         * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump,
13703         flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find,
13704         flow_depth_first_order_compute, flow_loop_pre_header_find,
13705         flow_loop_tree_node_add, flow_loops_tree_build,
13706         flow_loop_level_compute, flow_loops_level_compute,
13707         flow_loop_outside_edge_p): Add prototypes.
13708         (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED.
13709
13710         * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack):
13711         Mark with ATTRIBUTE_NORETURN.
13712
13713         * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED.
13714
13715         * local-alloc.c (no_conflict_p): Likewise.
13716
13717         * loop.c (insert_bct): Hide definitions of variables with hidden
13718         usage.
13719         (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED.
13720
13721         * regclass.c (memory_move_secondary_cost): Mark variable `mem'
13722         with ATTRIBUTE_UNUSED.
13723         (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED.
13724         (reg_scan): Likewise.
13725
13726         * reload.c (find_reloads): Remove unused variables `changed'.
13727
13728         * reload1.c (reload_reg_class_lower): Don't unnecessarily cast
13729         away const-ness.
13730         (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED.
13731         Remove unused variable `insn'.
13732
13733         * toplev.c: Include loop.h.
13734         (report_file_and_line): Remove unnecessary prototype.
13735
13736         * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED.
13737
13738         * unroll.c (biv_total_increment): Likewise.
13739
13740 Thu Dec 23 23:15:22 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13741
13742         * reload1.c (emit_input_reload_insns): Restore old behaviour
13743         wrt. 'special' reloads.
13744
13745 1999-12-23  Zack Weinberg  <zack@wolery.cumb.org>
13746
13747         * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on
13748         hash.h.  (cse.c): Don't depend on hashtab.h.
13749
13750         * cse.c: Don't include hashtab.h.
13751         (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes
13752         of dead functions.
13753         * ggc-simple.c: Don't include hash.h.
13754
13755 1999-12-22  Jason Merrill  <jason@casey.cygnus.com>
13756
13757         * dwarf2out.c (add_abstract_origin_attribute): Call
13758         gen_abstract_function on our function context.
13759
13760 Thu Dec 23 03:57:10 1999  Hans-Peter Nilsson  <hp@bitrange.com>
13761
13762         * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H.
13763
13764 1999-12-23  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13765
13766         * config/c4x/c4x.c (c4x_address_cost): Add statement to default
13767         case in switch.
13768
13769 1999-12-22  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13770
13771         * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0
13772         constraints to "a!r".
13773
13774 1999-12-21  Mark Mitchell  <mark@codesourcery.com>
13775
13776         * Makefile.in (calls.o): Depend on function.h.
13777         (alias.o): Likewise.
13778
13779 1999-12-21  Bernd Schmidt  <bernds@cygnus.co.uk>
13780
13781         * reload1.c (emit_reload_insns): Break out code and variables into...
13782         (input_reload_insns, other_input_address_reload_insns,
13783         other_input_reload_insns, input_address_reload_insns,
13784         inpaddr_address_reload_insns, output_reload_insns,
13785         output_address_reload_insns, outaddr_address_reload_insns,
13786         operand_reload_insns, other_operand_reload_insns,
13787         other_output_reload_insns): ... new static variables, and...
13788         (emit_input_reload_insns, emit_output_reload_insns, do_input_reload,
13789         do_output_reload): ... new functions.
13790
13791 Tue Dec 21 07:06:36 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13792
13793         * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0.
13794
13795 1999-12-21  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13796
13797         * md.texi: Add c4x constraints documentation.
13798
13799 1999-12-21  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
13800
13801         * config/i386/dgux.c (struct option): Rename to
13802         lang_independent_option.
13803         (struct m_options): Add description field.
13804         (output_options): Rename option type, add sep declaration, output
13805         ix86_cpu_string and ix86_arch_string only if set.
13806         (output_file_start): Rename option type.
13807
13808 Mon Dec 20 23:15:36 1999  Mike Stump  <mrs@wrs.com>
13809
13810         * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on
13811         stmp-int-hdrs.
13812         (libgcc2.a): Similarly.
13813
13814 Mon Dec 20 23:06:47 1999  David Edelsohn  <edelsohn@gnu.org>
13815
13816         * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss
13817         with W_TYPE_SIZE == 32.  Do not fall through to POWER architecture
13818         for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER.
13819
13820 Mon Dec 20 23:02:03 1999  Jeffrey A Law  (law@cygnus.com)
13821
13822         * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable.
13823         Remove redundant initialization of "frexpon" and "expon".
13824
13825 Mon Dec 20 15:00:04 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13826
13827         * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first.
13828
13829         * expr.c (store_constructor): New argument SIZE; pass to clear_storage.
13830         (store_constructor_field, expand_expr): Pass new arg.
13831
13832 1999-12-20  Mark Mitchell  <mark@codesourcery.com>
13833
13834         * Makefile.in (explow.o): Depend on function.h.
13835
13836         * stor-layout.c (set_sizetype): Fix typo.
13837
13838 1999-12-20  Bernd Schmidt  <bernds@cygnus.co.uk>
13839
13840         * function.c (cfun): Renamed from current_function.  All users
13841         changed.
13842         * function.h (cfun): Rename declaration as well.
13843
13844         * reload.h (struct insn_chain): Change live_throughout and dead_or_set
13845         to be of type regset_head, not regset.  All users changed by adding
13846         address operator.
13847         * reload1.c (new_insn_chain): Don't allocate regsets, just clear them.
13848
13849 1999-12-20  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13850
13851         * config/c4x/rtems.h: New file.
13852
13853 1999-12-19  Bernd Schmidt  <bernds@cygnus.co.uk>
13854
13855         * reload1.c (spill_failure): Take class of failed reload as argument
13856         and print it.  Caller changed.
13857
13858 Sun Dec 19 07:50:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13859
13860         * rs6000.h (SUBTARGET_DEFAULT): New macro.
13861         (TARGET_SWITCHES): Allow subtargets to default switches.
13862         * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro.
13863
13864 1999-12-18  Mark Mitchell  <mark@codesourcery.com>
13865
13866         * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize
13867         in a main program.
13868
13869 Sat Dec 18 20:42:43 1999  Richard Henderson  <rth@cygnus.com>
13870
13871         * cccp.c (main): Define __STDC_VERSION__ as necessary.
13872         * cppinit.c (cpp_handle_option): Likewise.
13873
13874         * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to
13875         determine when to define.
13876
13877 Sat Dec 18 20:34:00 1999  Richard Henderson  <rth@cygnus.com>
13878
13879         * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle
13880         cmove with mismatched test and data modes.
13881
13882 Sat Dec 18 20:30:15 1999  Richard Henderson  <rth@cygnus.com>
13883
13884         * c-typeck.c (c_expand_start_case): Don't warn for long switch
13885         in system headers.
13886
13887 Sat Dec 18 16:28:43 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13888
13889         * alias.c: Minor reformatting.
13890         * flow.c: Likewise.
13891         * regs.h: Likewise.
13892         * stor-layout.c: Likewise.
13893         * fold-const.c: Likewise.
13894         (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign.
13895         (struct cb_args, const_binop_1, const_binop): Pass type of arg,
13896         not arg itself.
13897         (size_int_wide): Cache nodes even if garbage collecting.
13898         (twoval_comparison_p): Reenable SAVE_EXPR case if operand
13899         of SAVE_EXPR has no side effects.
13900         * cse.c: Move a comment.
13901         * tree.c: Minor reformatting.
13902         (int_size_in_bytes): Return -1 if constant overflows.
13903
13904 Sat Dec 18 18:30:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
13905
13906         * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
13907
13908 1999-12-18 10:42 -0800  Zack Weinberg  <zack@wolery.cumb.org>
13909
13910         * objc/objc-parse.c: Regenerate.  This file must be rebuilt
13911         after any change to c-parse.in, even if objc-parse.y didn't
13912         change.  Oops.
13913
13914 1999-12-18  David S. Miller  <davem@redhat.com>
13915
13916         * toplev.c (rest_of_compilation): Restore BLOCK tree
13917         reconstruction and branch shortening changes lost in
13918         December 18th change.
13919
13920 Sat Dec 18 05:29:29 1999  Scott Bambrough  <scottb@netwinder.org>
13921
13922         * config/arm/linux-elf.h: Change all instances of
13923         ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS.
13924         * config/arm/uclinux-elf.h: Likewise.
13925
13926 1999-12-18 Gabriel Dos Reis  <gdr@codesourcery.com>
13927
13928         * toplev.c (notice, vmessage, v_message_with_file_and_line,
13929         v_message_with_decl, file_and_line_for_asm,
13930         v_error_with_file_and_line, v_error_with_decl, v_error_for_asm,
13931         verror, vfatal, v_warning_with_file_and_line, v_warning_with_decl,
13932         v_warning_for_asm, vwarning, vpedwarn, v_pedwarn_with_decl,
13933         v_pedwarn_with_file_and_line, vsorry, vnotice, count_error,
13934         pfatal_with_name, fatal_io_error, need_error_newline,
13935         last_error_function, last_error_tick, announce_function,
13936         default_print_error_function, print_error_function,
13937         report_error_function, fnotice, error_with_file_and_line,
13938         error_with_decl, error_for_asm, error, set_fatal_function, fatal,
13939         _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line,
13940         warning_with_decl, warning_for_asm, warning, pedwarn,
13941         pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to
13942         diagnostic.c
13943         (compile_file): Use fnotice instead of notice.  Adjust call.
13944
13945         * diagnostic.c: New file.
13946
13947         * Makefile.in (OBJS): Include diagnostic.o
13948         (diagnostic.o): Define dependence.
13949
13950 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13951
13952         * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0).
13953         Tweak formatting.
13954
13955 1999-12-18  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13956
13957         * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re.
13958
13959 1999-12-17 13:21 -0800  Zack Weinberg  <zack@rabi.columbia.edu>
13960
13961         * fixtests.c (is_cxx_header): New fn, split out of
13962         double_slash_test.
13963         (else_endif_label): Allow "#endif // comment" in C++ headers,
13964         as determined by is_cxx_header.
13965         * fixfixes.c (else_endif_label_fix): Update comment.
13966         * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not
13967         a tty.
13968         * genfixes: Correct double thinko in commandline parsing.
13969         * hackshell.tpl: Generate correct sh syntax for bypass
13970         entries.
13971
13972         * inclhack.def (all): Whenever an inserted preprocessor
13973         conditional is split over multiple lines, use double
13974         backslashes in this file so the fixed header will be readable.
13975
13976         (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h
13977         and add bypass entry for correct version of this header.
13978         (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h.
13979         (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h.
13980
13981         (hpux8_bogus_inlines): New fix, split from...
13982         (ultrix_atof_param) ... here.
13983         (math_expression): Add bypass entry keyed to glibc comment
13984         indicating the problem has been dealt with; disable
13985         unnecessary sed operations; update commentary.
13986         (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max,
13987         add select and bypass entries, simplify shell operation.
13988         (math_huge_val_ifndef): Split from math_gcc_ifndefs.
13989
13990         (ip_missing_semi, rs6000_param, tinfo_cplusplus,
13991          ultrix_atof_param): Add select entry.
13992         (stdio_va_list, sunos_mather_decl): Add bypass entry.
13993         (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the
13994         comments with the fixes they describe.
13995
13996         * c-parse.in (string action): Do not warn about ANSI string
13997         concatenation in system headers.  Affects C parser only.
13998         * c-parse.y, c-parse.c, c-parse.h: Rebuild.
13999
14000 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
14001
14002         * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if
14003         compiling libgcc2 the macro depends always on arch cpp defines.
14004
14005 Fri Dec 17 10:34:16 1999  Richard Earnshaw <rearnsha@arm.com>
14006
14007         * loop.c (insert_loop_mem): Don't record MEMs from inside
14008         EXPR_LISTs.
14009
14010 Fri Dec 17 12:08:11 MET 1999  Jan Hubicka  <hubicka@freesoftr.cz>
14011
14012         * regclass.c (regclass): Do not use flowgraph when not optimizing.
14013
14014         * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV
14015         notes too, create one when replacement failed, attempt to simplify
14016         resulting notes.
14017         (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL
14018         or REG_EQUIV notes.
14019
14020 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
14021
14022         * crtstuff.c (__dso_handle): Declare.
14023         (__cxa_finalize): Likewise.
14024         (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is
14025         non-NULL.
14026
14027         * invoke.texi: Document -fuse-cxa-atexit.
14028
14029         * tree.h (ptr_type_node): Document.
14030         (const_ptr_type_node): Likewise.
14031
14032 Fri Dec 17 01:32:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14033
14034         * regmove.c (optimize_reg_copy_1): Ignore LOOP notes.
14035         (optimize_reg_copy_2): Likewise.
14036         (optimize_reg_copy_3): Likewise.
14037         (fixup_match_2): Likewise.
14038         (regmove_optimize): Likewise.
14039         (fixup_match_1): Liekwise.
14040
14041         * i386.md (HI to SImode promoting splitters): Rewrite.
14042         (pushsf mem peep2): New.
14043         (testhi to andhi peep2): Remove.
14044         * i386.h (x86_promote_QImode): New.
14045         (TARGET_PROMOTE_QImode): New.
14046         (PREDICATE_CODES): Add promotable_binary_operator.
14047         * i386.c (x86_promote_QImode0: New.
14048         (promotable_binary_operator): New.
14049         * i386-protos.h (promotable_binary_operator): New.
14050
14051         * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify
14052         condition.
14053         (one_cmpl?i*): Pass "NOT" to unary_operator_ok.
14054
14055 1999-12-16  Mark Mitchell  <mark@codesourcery.com>
14056
14057         * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H.
14058         * function.c (insert_block_after_note): Remove.
14059         (retrofit_block): Likewise.
14060         (identify_blocks): Fix indentation.
14061         (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a
14062         NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END.
14063         * function.h (insert_block_after_note): Remove prototype.
14064         (retrofit_block): Likewise.
14065         * integrate.c (expand_inline_function): Don't call
14066         find_loop_tree_blocks.  Use expand_start_bindings_and_block, not
14067         just expand_start_bindings.  Use the block_map to remap old
14068         NOTE_BLOCKs to new ones.
14069         (integrate_decl_tree): Keep track of remapped blocks.
14070         * integrate.h (struct inline_remap): Add block_map.
14071         * stmt.c (expand_fixup): Don't try to retrofit_blocks.  Just set
14072         NOTE_BLOCK on the notes.
14073         (expand_start_bindings): Rename to ...
14074         (expand_start_bindings_and_block): Add parameter.  Set NOTE_BLOCK.
14075         (expand_end_bindings): Set NOTE_BLOCK.
14076         * toplev.c (rest_of_compilation): In function-at-a-time-mode,
14077         reconstruct the BLOCK tree.
14078         * tree.h (expand_start_bindings): Macroize.  Call ...
14079         (expand_start_bindings_and_block): New function.
14080
14081 1999-12-16  Jakub Jelinek  <jakub@redhat.com>
14082
14083         * config/sparc/sparc.c (print_operand): Cast fprintf arguments
14084         to match the format.
14085
14086 1999-12-16  David S. Miller  <davem@redhat.com>
14087
14088         * expr.c (emit_move_insn_1): Only emit clobbers if one of
14089         the outputs is a SUBREG.
14090         * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th
14091         change.
14092
14093         * config/sparc/sparc.c (epilogue_renumber): Add default case
14094         to switch stmt.
14095
14096 Thu Dec 16 11:33:57 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14097
14098         * toplev.c (rest_of_compilation): Run branch shortening after
14099         reg-stack.
14100
14101         * regclass.c (loop_depth): Remove
14102         (scan_one_insn): Do not handle LOOP_NOTE insns.
14103         (regclass): Go through basic blocks and set loop_cost
14104
14105 Thu Dec 16 02:56:25 1999  Zack Weinberg  <zack@bitmover.com>
14106
14107         * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too.
14108
14109 Thu Dec 16 10:43:35 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14110
14111         * i386.md (movqi): Use "nonimmediate_operand" for output operand.
14112         (movstrictqi, movdi, movsf, movdf, movxf): Likewise.
14113         (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise.
14114
14115 Thu Dec 16 02:41:26 1999  Richard Henderson (rth@cygnus.com)
14116
14117         * loop.c (insert_loop_mem): Ignore memory clobbers.
14118
14119         * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0)
14120         to (OP A B).
14121
14122 Thu Dec 16 02:26:11 1999  Jeffrey A Law  (law@cygnus.com)
14123
14124         * profile.c: Remove redundant #include "output.h".
14125
14126         * h8300.md (HImode preinc peephole): Fix typo.
14127
14128 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14129
14130         * function.c (retrofit_block): Abort if we don't find a suitable insn.
14131         (insert_block_after_note): Abort if we don't have a previous block.
14132         Remove FN parameter.
14133         * function.h: Adjust.
14134
14135 1999-12-15  Mark Mitchell  <mark@codesourcery.com>
14136
14137         * builtins.c (expand_builtin_mathfn): Make sure not to expand the
14138         argument more than once.
14139
14140 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14141
14142         * stmt.c (expand_decl): Expand upper bound of a dynamic array.
14143
14144 1999-12-15  Jakub Jelinek  <jakub@redhat.com>
14145
14146         * expr.c (emit_group_load): Use dst mode if src is VOIDmode.
14147
14148 Wed Dec 15 16:11:55 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14149
14150         * function.c (PREFERRED_STACK_BOUDNARY): Provide default value.
14151         (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY,
14152         update stack_alignment_needed.
14153         (prepare_function_start): Initialize stack_alignment_needed
14154         * function.h (struct function): Add field stack_alignment_needed.
14155
14156 Wed Dec 15 14:55:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14157
14158         * caller-save.c (insert_one_insn): Returns struct insn_chain *.
14159         Handle live_throughout / dead_or_set instead of live_before /
14160         live_after.
14161         (save_call_clobbered_regs): Get register livenessinformation from
14162         chain->live_throughout.
14163         (add_stored_regs): New function.
14164         (insert_restore, insert_save): Add restored / saved registers to
14165         dead_or_set.
14166         * global.c (reg_dies): New parameter chain.
14167         (reg_becomes_live): Third parameter is regs_set now.
14168         Changed all callers.
14169         (reg_dies): New parameter chain.  Changed all callers.
14170         (build_insn_chain): Set live_throughout instead of
14171         live_before / live_after.
14172         * reload.h (struct insn_chain): Replace members live_before /
14173         live_after with live_throughout / dead_or_set.
14174         * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set
14175         instead of live_before / live_after.
14176         (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise.
14177         (order_regs_for_reload, find_reg, finish_spills): Likewise.
14178         (choose_reload_regs_init): Likewise.
14179         * stupid.c (current_chain, find_clobbered_regs): Delete.
14180         (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set
14181         instead of chain->live_before / chain->live_after.
14182         (mark_hard_ref): New function.
14183         (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout.
14184
14185 1999-12-15  David S. Miller  <davem@redhat.com>
14186
14187         * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT.
14188
14189 Wed Dec 15 15:05:30 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14190
14191         * flow.c (calculate_loop_depth): Make global, remove prototype,
14192         rewrite to use new loop infrastructure.
14193         (find_basic_block): Remove calculate_loop_depth call.
14194         * toplev.c (rest_of_compilation): Call find_basic_block.
14195         * output.h (calculate_loop_depth): Declare.
14196
14197         * flow.c (dump_flow_info): Dump loop_depth.
14198         (flow_loops_nodes_find): Increase loop_depth for basic block in the
14199         body.
14200         (flow_loops_find): Initialize the loop_depth for each basic block.
14201
14202 1999-12-15  Jason Merrill  <jason@casey.cygnus.com>
14203
14204         * tree.c (decl_function_context): Handle virtual functions.
14205
14206         * tlink.c (scan_linker_output): Don't look in demangled name when
14207         looking for linker output keywords.
14208
14209         * dwarfout.c (output_type): We can defer namespace-scope classes.
14210
14211 Wed Dec 15 01:23:29 1999  Jeffrey A Law  (law@cygnus.com)
14212
14213         * regclass.c (record_reg_classes): Update comment for merging
14214         register class preferences in reg->reg copies.  Tighten conditions
14215         for merging register class preferences in reg->reg copies.
14216
14217 Wed Dec 15 02:19:32 1999  David Edelsohn  <edelsohn@gnu.org>
14218
14219         * rs6000.md (tablejumpdi): Generate DImode LABEL_REF.
14220
14221 1999-12-14  Geoff Keating  <geoffk@cygnus.com>
14222
14223         * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete.
14224         (INIT_SECTION_ASM_OP): Delete.
14225         (FINI_SECTION_ASM_OP): Delete.
14226         (STARTFILE_SPEC): Define to hold just crtbegin.o.
14227
14228 1999-12-14  Jason Merrill  <jason@casey.cygnus.com>
14229
14230         * dwarf2out.c (add_abstract_origin_attribute): Do call abort if
14231         the abstract origin wasn't emitted.
14232
14233         * dwarf2out.c (class_scope_p): New fn.
14234         (gen_subprogram_die): Use it.
14235         (gen_variable_die): Use it.  Tweak logic.
14236         (gen_struct_or_union_type_die): Check context_die to determine
14237         if we're function-local.
14238         (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE.
14239
14240 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14241
14242         * loop.c (check_dbra_loop): Can't reverse a biv that has
14243         maybe_multiple set.
14244
14245 1999-12-14  Nick Clifton  <nickc@cygnus.com>
14246
14247         * config/arm/arm.c: Add support for -mcpu=arm720 command line
14248         switch.
14249
14250 Tue Dec 14 18:13:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14251
14252         * loop.c (strength_reduce): Fix sign of giv lifetime calculation
14253         for givs made from biv increments.
14254
14255 Tue Dec 14 08:11:27 1999  Richard Henderson  <rth@cygnus.com>
14256
14257         * configure.in (alpha-osf, alpha-linux): Handle ev6[78].
14258         * alpha.c (override_options): Recognize -mcpu=ev67.
14259         * alpha.h (CPP_CPU_EV67_SPEC): New.
14260         (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it.
14261         (EXTRA_SPECS): Update.
14262
14263 Tue Dec 14 08:04:28 1999  Richard Henderson  <rth@cygnus.com>
14264
14265         * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as
14266         appropriate for -lang-c89 and -std=*.
14267         * cppinit.c (cpp_handle_option): Likewise.
14268         (new_pending_define): New, split out from cpp_handle_option.
14269         * gcc.c (default_compilers): Don't define __STRICT_ANSI__
14270         or enable trigraphs for -ansi/-std=*.
14271
14272         * ginclude/stdarg.h (__va_copy): New.
14273         (va_copy): Don't define for C89.
14274
14275 Tue Dec 14 08:37:27 CST 1999 Clinton Popetz  <cpopetz@cygnus.com>
14276
14277         * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns
14278         for long long multiply-accumulate.
14279
14280 Tue Dec 14 13:51:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14281
14282         * regclass.c (scan_one_insn): Set loop_cost to 1 when
14283         optimizing for size.
14284
14285 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14286
14287         * reload1.c (reload): Can't avoid select_reload_regs/finish_spills
14288         if something changed.  Back out that part of yesterday's changes.
14289
14290         * loop.c (loop_max_reg): New static variable.
14291         (loop_optimize): Initialize it.  Eliminate one unnecessary call to
14292         max_reg_num.
14293         (scan_loop): Call reg_scan_update whenever we may have added new
14294         registers, and update loop_max_reg.
14295
14296 Tue Dec 14 12:07:29 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14297
14298         * regclass.c  (record_reg_classes): Do not do the copying preferrencing
14299         when source does not die.
14300
14301         * regclass.c (record_reg_classes): Handle INOUT operands propertly.
14302
14303 1999-12-14  Jakub Jelinek  <jakub@redhat.com>
14304
14305         * config/sparc/linux64.h (TARGET_LIVE_G0,
14306         TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC
14307         variants on Linux.
14308         * config/sparc/linux.h (TARGET_LIVE_G0,
14309         TARGET_BROKEN_SAVERESTORE): Likewise.
14310         * config/sparc/linux-aout.h (TARGET_LIVE_G0,
14311         TARGET_BROKEN_SAVERESTORE): Likewise.
14312
14313         * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32.
14314         (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64,
14315         not %g2.
14316         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2
14317         as sparc64 block profiling register.
14318         * config/sparc/sparc.c (sparc_override_options): Allow block
14319         profiling with -m32.
14320         (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block
14321         profiling register.
14322         * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these
14323         macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64.
14324         * config/sparc/sol2.h (MACHINE_STATE_*): Likewise.
14325
14326         * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing
14327         for sparc64.
14328         * config/sparc/sparc.h: Likewise.
14329         * config/sparc/xm-sysv4-64.h: Likewise.
14330         * config/float-sparc.h: Likewise.
14331         * glimits.h: Likewise.
14332         * longlong.h: Likewise.
14333
14334         * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1.
14335         (ASM_IDENTIFY_GCC): Remove.
14336
14337 1999-12-14  Bernd Schmidt  <bernds@cygnus.co.uk>
14338
14339         * combine.c (combine_simplify_rtx): Don't make shared rtl.
14340         (simplify_logical): Likewise.
14341
14342 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
14343
14344         * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin.
14345         * cppfiles.c (INO_T_EQ): Likewise.
14346
14347 1999-12-14  Mumit Khan  <khan@xraylith.wisc.edu>
14348
14349         * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support.
14350         * i386/mingw32.h (LIB_SPEC): Likewise.
14351         (STARTFILE_SPEC): Likewise.
14352         * i386/uwin.h (LIB_SPEC): Likewise.
14353         (STARTFILE_SPEC): Likewise.
14354
14355         * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition.
14356         * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise.
14357
14358 Mon Dec 13 20:25:29 1999  Jeffrey A Law  (law@cygnus.com)
14359
14360         * combine.c (combine_simplify_rtx): Fix order of checks for
14361         (ashiftrt foo C) -> (lt foo (const_int 0)) simplification.
14362
14363 1999-12-13  Clinton Popetz  <cpopetz@cygnus.com>
14364
14365         * config/arm/arm.md  (*mulsidi3adddi, *umulsidi3adddi) Backed out
14366         12/10/99 change, reapplied to merged-arm-thumb-backend-branch.
14367
14368 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
14369
14370         * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is
14371         defined.
14372         * regclass.c (inv_reg_alloc_order): New array.
14373         (regclass_init): If REG_ALLOC_ORDER is defined, initialize it.
14374
14375         * reload.h (struct insn_chain): Delete fields group_size, group_mode,
14376         counted_for_groups, counted_for_nongroups.  Add fields rld and
14377         n_reloads.
14378         * reload.c (push_secondary_reload): Don't set nongroup field of
14379         new reloads.
14380         (push_reload): Likewise.
14381         (find_reloads): Delete code to compute nongroup fields.
14382         * reload1.c (reload_insn_firstobj): New static variable.
14383         (pseudos_counted, spilled_pseudos): Now of type regset_head.  All
14384         users changed.
14385         (calculate_needs, find_tworeg_group, find_group, possible_group_p,
14386         count_possible_groups, modes_equiv_for_class_p, new_spill_reg,
14387         dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete
14388         functions.
14389         (count_pseudo, select_reload_regs, copy_reloads, find_reg): New
14390         functions.
14391         (struct hard_reg_n_uses): Deleted.
14392         (potential_reload_regs): Deleted.
14393         (init_reload): Initialize spilled_pseudos and pseudos_counted.
14394         (reload): Don't try to allocate reload registers if we already know
14395         we have to make another pass.  Call select_reload_regs.  Free memory
14396         starting with reload_firstobj when starting another pass.
14397         Don't allocate spilled_pseudos.
14398         (calculate_needs_all_insns): Call copy_reloads for an insn that
14399         needs reloads; don't call calculate_needs.
14400         (spill_cost): New static array.
14401         (used_spill_regs_local): New static variable.
14402         (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code
14403         to compute potential_reload_regs.
14404         (find_reload_regs): Completely rewritten to use find_reg.
14405         (allocate_reload_reg): Don't test counted_for_groups or
14406         counted_for_nongroups.  Lose NOERROR arg and code to give an error;
14407         all cllers changed.
14408         (choose_reload_regs): Add fallback code that uses the existing
14409         register allocation from find_reload_regs.
14410
14411 Mon Dec 13 00:54:14 1999  Philippe De Muyter  <phdm@macqel.be>
14412
14413         * flow.c (create_edge_list): Cast xmalloc return value.
14414
14415 Mon Dec 13 00:47:58 1999  Jeffrey A Law  (law@cygnus.com)
14416
14417         * doprnt.c: Remove incorrect comment closure.
14418
14419         * cse.c: Fix a few minor whitespace goofs.
14420
14421 1999-12-13  Don Bowman  <don@pixstream.com>
14422
14423         * mips/vxworks.h: Fix problem with comment termination.
14424         (EXTRA_SECTIONS): Add in_sbss.
14425         (EXTRA_SECTION_FUNCTIONS): Corresponding changes.
14426
14427 1999-12-12  David S. Miller  <davem@redhat.com>
14428
14429         * cse.c (struct cse_reg_info): Add hash_next member,
14430         reorder rest of struct for better packing on 64-bit
14431         hosts.
14432         (cse_reg_info_tree): Kill.
14433         (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash,
14434         REGHASH_FN): New custom pow2 hash mechanism.
14435         (NBUCKETS): Kill.
14436         (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to
14437         use a pow2 hash table.
14438         (get_cse_reg_info): Rework to use new REGHASH.
14439         (new_basic_block): Likewise, use HASH_SIZE, and inline
14440         free_element call.
14441         (remove_from_table): Rework to use HASH_SIZE/HASH_MASK,
14442         and inline free_element call.
14443         (lookup_as_function, insert, flush_hash_table, invalidate,
14444         remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg,
14445         invalidate_for_call, use_related_value, find_comparison_args,
14446         fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise.
14447         (hash_cse_reg_info, cse_reg_info_equal_p, free_element,
14448         get_element): Kill.
14449
14450 Sun Dec 12 21:31:44 1999  Jeffrey A Law  (law@cygnus.com)
14451
14452         * cse.c (cse_basic_block): Free qty_table consistently.
14453
14454 1999-12-12  David S. Miller  <davem@redhat.com>
14455             Jakub Jelinek    <jakub@redhat.com>
14456
14457         * config/sparc/sparc.md (movtf reg/reg split): Don't generate
14458         SUBREGs by hand, gen the appropriate hard reg directly.
14459         (movtf reg/mem split): Likewise and alter_subreg on destination
14460         if necessary.
14461         (movtf mem/reg split): Similarly.
14462         (movdf_cc_sp64): Rename from hidden pattern.
14463         (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64.
14464         (movtf_cc_sp64, following split): New pattern and splitter.
14465         (movdf_cc_reg_sp64): Rename from hidden pattern.
14466         (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require
14467         TARGET_HARD_QUAD.
14468         (movtf_cc_reg_sp64, following split): New pattern and splitter.
14469
14470 1999-12-12  Stephen L Moshier <moshier@mediaone.net>
14471
14472         * loop.c (load_mems): Don't hoist written floating point mem
14473         if -ffloat-store.
14474
14475 1999-12-12  Mark Mitchell  <mark@codesourcery.com>
14476
14477         * except.h (struct eh_queue): Add `next' pointer.
14478         (struct eh_status): Make x_ehqueue a pointer.
14479         (push_ehqueue):  Declare.
14480         (pop_ehqueue): Likewise.
14481         * except.c (expand_eh_region_end): Adjust now that ehqueue is a
14482         pointer.
14483         (expand_fixup_region_end): Likewise.
14484         (expand_leftover_cleanups): Likewise.
14485         (push_ehqueue): Define.
14486         (pop_ehqueue): Likewise.
14487         (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather
14488         than doing it inline.
14489         (expand_start_all_catch):  Adjust now that ehqueue is a
14490         pointer.
14491         (mark_eh_queue): Mark all level of the queue.
14492         (mark_eh_status):  Adjust now that ehqueue is a
14493         pointer.
14494         (init_eh_for_function): Allocate ehqueue.
14495         (free_eh_status): Free it.
14496         * stmt.c (expand_cleanups): Save the ehqueue around the cleanup
14497         expansion for a fixup.
14498
14499 1999-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14500
14501         * gthr-single.h (__gthread_active_p): Add prototype arguments.
14502
14503         * libgcc2.c (__udivmoddi4): Remove unnecessary decls.
14504         (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg,
14505         __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret,
14506         function_ptr, getpagesize, __enable_execute_stack,
14507         __enable_execute_stack, __clear_insn_cache,
14508         __enable_execute_stack, __do_global_dtors, __do_global_ctors,
14509         _cleanup, _exit, __default_terminate, __terminate_func,
14510         __terminate, __empty, __throw, new_eh_context,
14511         eh_context_initialize, eh_context_static, eh_context_specific,
14512         get_eh_context, __get_eh_context, __get_eh_info,
14513         init_reg_size_table, eh_threads_initialize,
14514         __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow,
14515         __unwinding_cleanup, throw_helper, __throw, __rethrow,
14516         __pure_virtual): Add prototype arguments.
14517         (__bb_exit_func): Cast a sizeof to long when comparing against one.
14518         Cast a signed value to unsigned long when comparing against one.
14519         (new_eh_context): Wrap in _GTHREADS macro.
14520         (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at
14521         declaration.
14522         (in_reg_window): Mark parameters with __attribute__ ((__unused__)).
14523         (throw_helper): Initialize variables `handler_p' and `pc_p'.
14524
14525 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14526
14527         * combine.c (record_promoted_value): Remove unused variable
14528         `links2'.
14529
14530         * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'.
14531
14532         * global.c (record_conflicts): Likewise for `j'.
14533
14534         * genoutput.c (output_insn_data): Don't unnecessarily cast away
14535         const-ness.
14536
14537 1999-12-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14538
14539         * i386-protos.h (output_387_binary_op, output_fix_trunc,
14540         output_fp_compare): Constify a char*.
14541
14542         * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add
14543         static prototypes.
14544         (override_options, ix86_comp_type_attributes, print_operand,
14545         output_387_binary_op, output_fix_trunc, output_fp_compare):
14546         Constify a char*.
14547         (ix86_sched_reorder): Mark parameter `clock_var' with
14548         ATTRIBUTE_UNUSED.
14549
14550         * i386.h (DEBUG_PRINT_REG): Constify a char*.
14551
14552 Fri Dec 10 16:12:13 1999  Alexandre Petit-Bianco  <apbianco@cygnus.com>
14553
14554         * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third
14555         operand, for use in the Java front-end.
14556
14557 1999-12-10  Ben Collins  <bcollins@debian.org>
14558
14559         * configure.in: Fix typo for "-64" in 64bit as check.
14560         * configure: Rebuilt.
14561
14562 1999-12-10  Jakub Jelinek  <jakub@redhat.com>
14563
14564         * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where
14565         appropriate.
14566
14567 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14568
14569         * c-parse.in (string): With -Wtraditional, warn if ANSI string
14570         concatenation is utilized.
14571
14572         * invoke.texi (-Wtraditional): Document it.
14573
14574 1999-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14575
14576         * flow.c (flow_loops_dump): Avoid ANSI string concatenation.
14577         Cast a ptrdiff_t to long and pass it to printf with %ld.
14578
14579 1999-12-10  Geoff Keating  <geoffk@cygnus.com>
14580
14581         * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no
14582         68881, we have no 68881 registers at all.
14583         (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT
14584         value in a 68881 register if it is available.
14585
14586 1999-12-10  Clinton Popetz  <cpopetz@cygnus.com>
14587
14588         * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns
14589         for long long multiply-accumulate.
14590
14591 1999-12-10  Bernd Schmidt  <bernds@cygnus.co.uk>
14592
14593         * loop.c (insert_loop_mem): Undo last change.
14594
14595 1999-12-10  David S. Miller  <davem@redhat.com>
14596
14597         * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p):
14598         New functions.
14599         * config/sparc/sparc-protos.h: Add them.
14600         * config/sparc/sparc.h: Add them to PREDICATE_CODES.
14601         (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S
14602         constraints which use those helpers.
14603         (EXTRA_CONSTRAINT): Use this new macro.
14604         * md.texi: Update sparc target constraints documentation.
14605         * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg,
14606         movsf_const_high, movsf_const_lo, movsf_insn): Delete.
14607         (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0,
14608         movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns.
14609         (movsf high/lo_sum split): Rework for new patterns.
14610         (movsf expander): Allow storing fp_zero to memory if ! live_g0.
14611
14612 1999-12-09  Gavin Romig-Koch  <gavin@cetus.cygnus.com>
14613
14614         * c-common.c (c_common_nodes_and_builtins):
14615         Create __builtin_ptrdiff_t and __builtin_size_t.
14616
14617 Thu Dec  9 18:05:48 1999  Jeffrey A Law  (law@cygnus.com)
14618
14619         * pa/elf.h (MAX_OFILE_ALIGNMENT): Define.
14620
14621 Fri Dec 10 00:53:10 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14622
14623         * regclass.c (globalize_reg): Re-instate test that allows
14624         fixed registers to be declared as a variable even after functions
14625         are defined.
14626
14627 Fri Dec 10 00:52:13 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14628
14629         * i386.md (cpu attribute): Add "athlon".
14630         (athlon_decode): New attribute.
14631         (Athlon scheduling units definitions): New.
14632         (fcmp and shld patterns): Set athlon_decode to "vector".
14633         * i386.c (athlon_cost): New.
14634         (m_ATHLON): New.
14635         (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
14636         x86_use_sahf): Set for Athlon.
14637         (x86_use_fiop): Unset for Athlon.
14638         (override_options): Define Athlon alignments and "athlon" name.
14639         (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon.
14640         * i386.h (TARGET_ATHLON): New.
14641         (enum processor_type): Add PROCESSOR_ATHLON.
14642         (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__"
14643         for CPU_DEFAULT==5
14644         (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon.
14645
14646 1999-12-09  Andreas Jaeger  <aj@suse.de>
14647
14648         * loop.c (record_biv): Declare parameter as int.
14649
14650         * config/i386/i386-protos.h: Declare long_memory_operand.
14651
14652 1999-12-09  Mark Mitchell  <mark@codesourcery.com>
14653
14654         * tree.c (copy_node): Do zero the TREE_CHAIN, even for an
14655         EXPR_WITH_FILE_LOCATION.
14656
14657 Thu Dec  9 11:36:24 MET 1999 Jan Hubicka  <hubicka@freesoft.cz>
14658
14659         * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand
14660         in expander.
14661
14662         * flow.c (recompute_reg_usage): Use basic block info to get loop_depth.
14663
14664         * combine.c (try_combine, distribute_notes): Remove REG_N_REFS
14665         updating code.
14666
14667 1999-12-09  Jakub Jelinek  <jakub@redhat.com>
14668
14669         * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs
14670         default on linux64 again.
14671         * config/sparc/t-linux64: Add mno-app-regs and non-medlow code
14672         models for multilibing.
14673         * genmultilib: Accept | as alternative separator within a set in
14674         MULTILIB_OPTIONS.
14675
14676         * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define.
14677
14678         * calls.c (precompute_arguments): Make sure initial_value contains
14679         value pseudo which CSE expects.
14680         * cse.c (struct set): New entry orig_src.
14681         (cse_insn): Set it early on entry, use it for libcall EQUIV note
14682         replacement.
14683
14684 Wed Dec  8 22:24:15 1999  Richard Henderson  <rth@cygnus.com>
14685
14686         * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns.
14687
14688 1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
14689
14690         * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops.
14691
14692 1999-12-08  Jakub Jelinek  <jakub@redhat.com>
14693
14694         * config/sparc/sparc.c (ultra_cmove_results_ready_p,
14695         ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix.
14696
14697         * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits
14698         if TARGET_ARCH32.
14699
14700         * longlong.h: Merge in changes from glibc.
14701         Also don't clobber %g2 register in 32bit SPARC assembly, so that
14702         -mno-app-regs libgcc can be compiled.
14703         * libgcc2.c: Add defines so that the updated longlong.h
14704         can be used in libgcc2.a. Also, make sure on most architectures
14705         (at least on all which have optimized code in longlong.h defined
14706         for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests.
14707
14708 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
14709
14710         * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that
14711         `-m EMULATION' is added to non-default LINK_ARCH_SPECs.
14712         * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker
14713         is GNU ld.
14714         * configure: Rebuilt.
14715
14716 Wed Dec  8 03:45:40 1999  Richard Henderson  <rth@cygnus.com>
14717
14718         * alpha.c (secondary_reload_class): For !BWX, sub-simode
14719         outputs require a register.
14720
14721 1999-12-08  Brendan Kehoe  <brendan@cygnus.com>
14722
14723         * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi
14724         _df_to_usi.  Required by some targets, so US_SOFTWARE_GOFAST calls to
14725         functions like dptoul will be resolved.
14726         (libgcc2.a): Make sure that the object files from DPBIT are named
14727         differently (prefix `_dp') from those that would be coming from
14728         FPBIT.
14729
14730 1999-12-08  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>,  Jakub Jelinek  <jakub@redhat.com>
14731
14732         * configure.in: When target is sparc* and tm_file contains 64,
14733         test for 64bit support in assembler.  If not supported, remove
14734         sparc/t-sol2-64 from target-dependent Makefile fragments.
14735         (AS_SPARC64_FLAG): Define to the assembler flag for 64bit.
14736         (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags.
14737         (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache.
14738         * acconfig.h (AS_SPARC64_FLAG): Added.
14739         * configure, config.in: Rebuilt.
14740         * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit
14741         support.  Use AS_SPARC64_FLAG.
14742
14743 1999-12-07  Jakub Jelinek  <jakub@redhat.com>
14744
14745         * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers
14746         suitable for holding OFmode values so that gcc works with complex
14747         quad long doubles.
14748         (hard_64bit_mode_classes): Likewise.
14749
14750         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern
14751         so that it is actually matched.
14752         (sethi_di_medlow): Likewise.
14753
14754         * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L
14755         as legitimate constant if -mvis.
14756         * config/sparc/sparc.md (movtf): Likewise.
14757         (clear_sf): Use const_double_operand.
14758         (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns.
14759
14760         * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function.
14761         * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype.
14762         * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_*
14763         routines, _Qp_* cannot be handled like that now.
14764         (INIT_TARGET_OPTABS): Likewise.
14765         * config/sparc/sparc.md (cmptf): Accept soft float ARCH64.
14766         (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call
14767         sparc_emit_float_lib_cmp if ARCH64 and soft float.
14768         (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2,
14769         floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3,
14770         divtf3, sqrttf3): New expanders.
14771         (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq,
14772         floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq,
14773         addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from
14774         non-_hq patterns.
14775
14776         * configure.in (sparc64-*-linux*): Use posix threads if enabled.
14777         * configure: Rebuilt.
14778         * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no
14779         -mcpu is given and we're doing 64bit compiles.
14780
14781 Tue Dec  7 19:22:06 1999  Richard Henderson  <rth@cygnus.com>
14782
14783         * loop.h (struct induction): Add multi_insn_incr.
14784         * loop.c (basic_induction_var): New multi_insn_incr argument.
14785         Set it if we search back through previous insns for the biv.
14786         (record_biv): New multi_insn_incr argument; fill in struct induction.
14787         (strength_reduce): Discard an iv with multiple bivs, any of
14788         which require multiple insns to increment.
14789
14790 1999-12-07  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
14791
14792         * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std
14793         documentation.
14794
14795 1999-12-06  David S. Miller  <davem@redhat.com>
14796
14797         * combine.c (check_promoted_subreg): Do not conditionalize this upon
14798         PROMOTE_FUNCTION_RETURN.
14799
14800 Mon Dec  6 15:12:14 1999  Jim Wilson  <wilson@cygnus.com>
14801
14802         * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for
14803         and handle REG_UNUSED note on insn.
14804
14805         * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask.  Set
14806         inner_mask instead of mask.
14807
14808 1999-12-06  Brendan Kehoe  <brendan@cygnus.com>
14809
14810         * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be
14811         zero if there was an error.
14812
14813 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
14814
14815         * config/sparc/sparc.md (return_losum_di): Fix typo in asm
14816         output string.
14817
14818         * longlong.h: Fix clobbers in SPARC asm statements.
14819
14820         * config/sparc/sparc.c (input_operand): Allow HImode and QImode
14821         valid sethi operations when TARGET_ARCH64.
14822
14823         * calls.c (save_fixed_argument_area): If save_mode is BLKmode,
14824         always use move_by_pieces to avoid infinite recursion.
14825         (restore_fixed_argument_area): Likewise.
14826
14827         * combine.c (check_promoted_subreg, record_promoted_value): New
14828         functions.
14829         (combine_instructions): Use them to retain nonzero and sign bit
14830         information after SUBREGs are eliminated by optimizations in
14831         this pass if PROMOTE_FUNCTION_RETURN.
14832
14833         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document
14834         .register declaration. Don't use variables with __ prefixes.
14835
14836 Mon Dec  6 12:24:52 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14837
14838         * fold-const.c (optimize_bit_field_compare): Only use one mode
14839         for both RHS and LHS in non-constant case.
14840
14841 1999-12-06  Nathan Sidwell  <nathan@acm.org>
14842
14843         * frame.c (start_fde_sort): Only allocate erratic array, if
14844         linear one was allocated. Return allocated flag.
14845         (fde_insert): Only insert, if there's a valid array.
14846         (fde_end_sort): Split, sort and merge if linear and erratic
14847         arrays exist, else just sort linear one.
14848         (search_fdes): New function. Linear search through original fde
14849         structure.
14850         (frame_init): Permit multiple initializations. Cope with
14851         memory shortages.
14852         (find_fde): Fallback on linear search, if failed to sort array.
14853         (__deregister_frame_info): Only free sorted array, if we
14854         allocated it.
14855
14856 1999-12-06  Jakub Jelinek  <jakub@redhat.com>
14857
14858         * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro.
14859
14860 1999-12-05  Jakub Jelinek  <jakub@redhat.com>
14861
14862         * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi.
14863
14864 1999-12-05  Mark Mitchell  <mark@codesourcery.com>
14865
14866         * tree.h (special_function_p): Declare.
14867         * calls.c (special_function_p): Make it global.  Don't take `name'
14868         as a parameter.  Fix typo in 1999-11-28 change.
14869         (expand_cal): Adjust.
14870
14871 1999-12-04  Mark Mitchell  <mark@codesourcery.com>
14872
14873         * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting.
14874         * tree.h (EXPR_WFL_FILENAME): Define in terms of
14875         EXPR_WFL_FILENAME_NODE.
14876         (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than
14877         the TREE_CHAIN.
14878         * print-tree.c (print_note): Print TREE_PRIVATE and
14879         TREE_PROTECTED.
14880
14881         * dwarf2out.c (add_abstract_origin_attribute): Don't abort when
14882         the original die cannot be found.
14883
14884         * varray.h (varray_head_tag): Add elements_used.
14885         (VARRAY_PUSH): New macro.
14886         (VARRAY_POP): Likewise.
14887         (VARRAY_TOP): Likewise.
14888         Add variants of VARRAY_PUSH and VARRAY_POP for all varray element
14889         types.
14890         * varray.c (varray_init): Initialize elements_used.
14891         * Makefile.in (BASIC_BLOCK_H): Add varray.h.
14892         (INTEGRATE_H): New variable.
14893         (integrate.o): Depend on INTEGRATE_H.
14894         (unroll.o): Likewise.
14895
14896         * function.h (insert_block_after_note): Declare.
14897         * function.c (insert_block_after_note): Split out from ...
14898         (retrofit_block): ... here.
14899
14900         * stmt.c (expand_fixup): Fix typo in comment.
14901
14902 Sat Dec  4 14:13:38 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
14903
14904         * regmove.c (copy_src_to_dest): Remove loop_depth parameter.
14905         (optimize_reg_copy_1): Remove REG_N_REFS updating code.
14906         (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise.
14907         (regmove_optimize, fixup_match_1): Likewise.
14908
14909 1999-12-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14910
14911         * flow.c (flow_loops_dump): Add missing argument when calling
14912         flow_loop_nested_p.
14913
14914 1999-12-04  Geoffrey Keating  <geoffk@cygnus.com>
14915             Greg McGary  <gkm@gnu.org>
14916
14917         * c-common.c (enum attrs): Add A_NO_LIMIT_STACK.
14918         (init_attributes): Add A_NO_LIMIT_STACK.
14919         (decl_attributes): Handle A_NO_LIMIT_STACK.
14920         * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK.
14921         * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]:
14922         Handle stack bounds checking.
14923         * flags.h (flag_stack_check): Use the word 'probe' rather than
14924         'check', because the flag doesn't actually cause any checking to
14925         be done.
14926         * function.c (expand_function_start): Set
14927         current_function_limit_stack.
14928         * function.h (struct function): Add limit_stack.
14929         (current_function_limit_stack): Define.
14930         * invoke.texi (Code Gen Options): Document new options.
14931         * rtl.h: Declare stack_limit_rtx.
14932         * toplev.c (stack_limit_rtx): New variable.
14933         (decode_f_option): Handle new options -fstack-limit-register=REG,
14934         -fstack-limit-symbol=IDENT, -fno-stack-limit.
14935         (main): Add stack_limit_rtx as GC root.
14936         * tree.h (DECL_NO_LIMIT_STACK): New macro.
14937         (struct tree_decl): New member no_limit_stack.
14938
14939         * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle
14940         stack_limit_rtx.
14941         * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx.
14942         (conditional_trap+1): Get new mnemonic correct.
14943         (conditional_trap+2): New pattern for DImode traps.
14944
14945         * config/m68k/m68k.c (output_function_prologue): Handle
14946         stack_limit_rtx.
14947         * config/m68k/m68k.md (trap): New insn.
14948         (conditional_trap): New insn.
14949         * md.texi (Standard Names): Document `trap' and
14950         `conditional_trap'.
14951         * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence()
14952         so a cc0 setter doesn't get emitted at some random place in the
14953         function.
14954
14955         * config/i960/i960.md (trap): New insn.
14956         (conditional_trap): New expander.
14957         (conditional_trap+1, conditional_trap+2): New insns for signed
14958         and unsigned cases.
14959         * config/i960/i960.c (i960_function_prologue): Use
14960         STARTING_FRAME_OFFSET.  Handle stack_limit_rtx.
14961
14962 Thu Dec  2 21:22:45 1999  Greg McGary  <gkm@gnu.org>
14963                           Geoffrey Keating  <geoffk@cygnus.com>
14964
14965         * flags.h (warn_padded, warn_packed): Add global var decls.
14966         * toplev.c (warn_padded, warn_packed): Add global var defns.
14967         (W_options): Add warnings `-Wpacked' and `-Wpadded'.
14968         * stor-layout.c (layout_record): Add local variable `type'
14969         to hold often-used TREE_TYPE (field).  Add local variable
14970         `unpacked_align' to hold alignment that would be in force
14971         if no `packed' attribute were present.  Warn if `packed' attribute
14972         is unnecessary, or even harmful.  Warn when gcc inserts padding
14973         to satisfy alignment requirements of members.  Use NULL_TREE
14974         when checking whether var_size is set.
14975         * invoke.texi: Document new flags.
14976
14977 1999-12-03  Nathan Sidwell  <nathan@acm.org>
14978
14979         * frame.c (fde_split): Reimplement to avoid variable sized array.
14980
14981 Thu Dec  2 18:59:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
14982
14983         * combine.c (try_combine): Before fixing up LOG_LINKS for the
14984         i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL.
14985
14986 1999-12-02  Gavin Romig-Koch  <gavin@cygnus.com>
14987
14988         * invoke.texi: Document the mips option -mno-crt0
14989
14990 1999-12-02  Mike Karr  <mkarr@mathworks.com>
14991
14992         * cccp.c (argdata): Added free_ptr member.
14993         (macroexpand): Initialize free_ptr of each argument. When an
14994         argument's buffers are freed, if the argument's free_ptr corresponds
14995         to a buffer on the input stack, then return the free_ptr to that stack
14996         frame, otherwise, free it.
14997         (macarg): If an argument begins and ends on the same input stack level,
14998         then transfer the free_ptr of that buffer to the argument in case
14999         the stack is popped during the processing of a subsequent argument.
15000
15001 1999-12-02  Bernd Schmidt  <bernds@cygnus.co.uk>
15002
15003         * loop.c (note_reg_stored): New function.
15004         (struct note_reg_stored_arg): New structure.
15005         (try_copy_prop): Change to be more conservative; only replace within
15006         one extended basic block and stop replacing if a store to the
15007         replacement reg is seen.
15008
15009 1999-12-02  Nick Clifton  <nickc@cygnus.com>
15010
15011         * config/fp-bit.c: Initialise all fields of the NAN
15012         constants.
15013
15014         * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc
15015         to HANDLE_PRAGMA.
15016
15017 Wed Dec  1 18:16:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
15018
15019         * i386.md (extend?f?f2): Force the input into a register, not
15020         the output.
15021
15022 1999-12-01  Jakub Jelinek  <jakub@redhat.com>
15023
15024         * config/sparc/sparc.md (movsf_const_intreg): Add constraints for
15025         regclass' sake.
15026         (movdf_const_intreg_sp32): Likewise. Prefer the memory load
15027         alternative because setting up 64bit constant is usually costly,
15028         especially when reload is in progress or completed.
15029         (movdf_const_intreg_sp64): Likewise.
15030         (movdf_const_intreg split): Fix building up constants when
15031         HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit.
15032
15033 Wed Dec  1 16:51:22 1999  Jeffrey A Law  (law@cygnus.com)
15034
15035         * combine.c (if_then_else_cond): Use const_true_rtx instead of
15036         const1_rtx for return values in EQ/NE comparison against (const_int 0)
15037         case.
15038
15039         * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers.
15040         (asm_file_start): Emit .am33 into assembly file when compiling for
15041         the AM33.
15042         (print_operand_address): Handle POST_INC addresses.
15043         (can_use_return_insn, initial_offset): Check AM33 registers too.
15044         (expand_prologue): Check & save AM33 registers too.
15045         (expand_epilogue): Similarly.
15046         (secondary_reload_class): Handle AM33 specific secondary reloads.
15047         (output_tst): Emit efficient code for the AM33 too.
15048         * mn10300.h (CPP_SPEC, TARGET_AM33): Define.
15049         (TARGET_SWITCHES): Add -mam33 switch.
15050         (FIRST_PSEUDO_REGISTER): Handle new AM33 registers.
15051         (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise.
15052         (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise.
15053         (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise.
15054         (enum reg_class, REG_CLASS_NAMES): Likewise.
15055         (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise.
15056         (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise.
15057         (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise.
15058         (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise.
15059         (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise.
15060         (HAVE_POST_INCREMENT): Define.
15061         (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33.
15062         (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address.
15063         * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants.
15064         (mulsi, andsi, iorsi, xorsi, notsi): Likewise.
15065         (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise.
15066         (zero_extend to SI from QI/HI): Likewise.
15067         (sign_extend to SI from QI/HI): Likewise.
15068         (mulsidi3, umulsidi3): New patterns for the AM33.
15069         (tstsi with zero extension from QI/HI): Add AM33 variants.
15070         (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too.
15071         (return_internal_regs, store_movm): Handle new AM33 registers.
15072         * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define.
15073         (LIBGCC, INSTALL_LIBGCC): Likewise.
15074         * invoke.texi: Document new flags.
15075
15076 Fri Nov 26 10:59:12 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15077
15078         * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition.
15079         (addsi3_carry): Likewise.
15080         (sbbsi3_cc): Add "binary_operator_ok" to the condition.
15081         (sbbsi3_carry): Likewise.
15082         (mulsi3): Rewrite to expander, ensure that only one operand is memory.
15083         (mulhi3): Likewise.
15084         (test?i_1): Ensure that only one operand is memory.
15085         (conditional move patterns): likewise.
15086         (shift and rotate patterns): Rewrite to expander, add
15087         "binary_operator_ok" to the condition.
15088
15089         * i386.md (QImode patterns): Remove '*' before the 'r' constraints.
15090         * i386.h (procesor_costs): Add movzbl_load field.
15091         (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in
15092         non-Q registers, accept DImode registers anywhere.
15093         (Q_CLASS_P): New.
15094         (MEMORY_MOVE_COST): Calculate QImode moves correctly.
15095         * i386.c (*_cost): Set value for movxbl_load field.
15096
15097         * (addsi): New add to lea splitter.
15098         (ashlsi): Likewise.
15099         (lea to add/shift peep2): New.
15100
15101 1999-12-01  Mark Salter <msalter@cygnus.com>
15102
15103         * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0.
15104         * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0.
15105         * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0.
15106
15107 Tue Nov 30 15:20:52 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15108
15109         * i386.c (ix86_expand_move): Never add clobbers to move patterns.
15110         * i386.md (movsi_xor): New.
15111         (movsi_or): New.
15112         (movsi_1, movhi_1, movqi_1): Remove.
15113         (movsi_2): Rename to movsi_1.
15114         (movhi_2): Rename to movhi_1.
15115         (movqi_2): Rename to movqi_1.
15116         (movdi_1): Remove; remove splitter.
15117         (movdi_2): Rename to movdi_1.
15118         (divmodsi4 splitter): Do not emit clobbers for move patterns.
15119         (long move peep2): Do not create QI or HI mode mov0s
15120         (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole.
15121
15122         * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns,
15123         rewrite splitters.
15124
15125         * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives.
15126         (abs?f2_if): Likewise.
15127
15128 1999-11-30  Alex Samuel  <samuel@codesourcery.com>
15129
15130         * ggc.h (ggc_test_and_set_mark): New macro.
15131         (ggc_mark_rtx): Use ggc_test_and_set_mark.
15132         (ggc_mark_tree): Likewise.
15133         (ggc_mark_rtvec): Likewise.
15134         * ggc-common.c (ggc_mark_rtx_children): Reduce recursion.
15135
15136 1999-11-30  Jason Merrill  <jason@casey.cygnus.com>
15137
15138         * dwarf2out.c (scope_die_for): Only handle types.  Only search for
15139         containing types.
15140         (decl_scope_table): Just an array of trees now.
15141         (push_decl_scope): Simplify.
15142         (dwarf2out_init): Adjust.
15143         (local_scope_p): New fn.
15144         (gen_inlined_enumeration_type_die): Don't call scope_die_for.
15145         (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise.
15146         (gen_typedef_die): Likewise.
15147         (gen_lexical_block_die): Don't call push/pop_decl_scope.
15148         (gen_inlined_subroutine_die): Likewise.
15149         (gen_abstract_function): Set current_function_decl temporarily.
15150         (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration.
15151         Handle block extern declarations.  Don't call push/pop_decl_scope.
15152         (gen_decl_die): Fix logic for block externs.
15153
15154 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15155
15156         * calls.c (special_function_p): Remove `realloc' and add `strdup'
15157         to the list of functions which have attribute malloc by default.
15158
15159 1999-11-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15160
15161         * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an
15162         integer constant does not match the traditional type, limit the
15163         warnings to cases where the base of the type is ten.
15164
15165         * invoke.texi (-Wtraditional): Document it.
15166
15167 Tue Nov 30 15:18:35 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
15168
15169         * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST
15170         * rs6000.md: Only access a CONST_INT with INTVAL
15171
15172 Tue Nov 30 14:21:00 1999  Richard Henderson  <rth@cygnus.com>
15173
15174         * lcm.c (compute_laterin): Cast bb->aux to size_t not int.
15175         (compute_nearerout): Likewise.
15176         * ggc-page.c (ggc_page_print_statistics): Explicitly cast
15177         size_t to unsigned long for formatting.
15178
15179 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
15180
15181         * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE):
15182         Allow the user to override call-used/fixed state of %g2-5
15183         registers from the command line (with the exception of %g4 for
15184         embedded model).
15185         (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that
15186         there is a higher chance of having a leaf function.
15187         (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros
15188         for ARCH64 which has %ccr register.
15189         * config/sparc/sparc.md (return_losum_si, return_losum_di): New
15190         patterns.
15191         * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return
15192         insn accept into delay slot any insn which does not use %[ol]
15193         registers.  Accept some LO_SUM and shift left by 1 for the normal
15194         restore case.
15195         (output_function_epilogue): Likewise.
15196         (epilogue_renumber): Added argument which inhibits any renumbering
15197         and just tests if the rtx does not use any %[ol] registers.
15198         (output_return): Reflect above change.
15199
15200 1999-11-30  Jakub Jelinek  <jakub@redhat.com>
15201
15202         * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg
15203         aggregate passing for sizes <= 16 bytes.
15204
15205 1999-11-30  Bernd Schmidt  <bernds@cygnus.co.uk>
15206
15207         * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P.
15208         * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code.
15209         * reload.c (find_dummy_reload): Likewise.
15210         (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P.
15211         * reload1.c (reload_as_needed): Likewise.
15212         * stupid.c (stupid_find_reg): Likewise.
15213         * tm.texi (Obsolete Register Macros): Delete section.
15214         * gmicro.h: Remove all traces of the two macros.
15215         * i386.h: Likewise.
15216         * m88k.h: Likewise.
15217         * mips.h: Likewise.
15218
15219 1999-11-30  Brendan Kehoe  <brendan@cygnus.com>
15220
15221         * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define.
15222         (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags.
15223         (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs.
15224         * sparc.md (sparclite86x_branch, sparclite86x_shift): New function
15225         units for the sparclite86x chip.
15226         (flush): Revert October 14th change; add SImode specifically.
15227         (flushdi): Copy of flush, but DImode, to avoid genrecog warnings.
15228         * invoke.texi: Document it.
15229
15230 Tue Nov 30 14:58:14 1999  Nick Clifton  <nickc@cygnus.com>
15231
15232         * config/mn10200/mn10200.h (PREDICATE_CODES): Add
15233         psimode_truncation_operand.
15234
15235         * config/mn10200/mn10200.c (psimode_truncation_operand): New
15236         function.  Return true if the operand is either a MEM valid
15237         for a PSImode address or not a MEM at all.
15238
15239         * config/mn10200/mn10200.md (truncsipsi2): Use
15240         psimode_truncation_operand.
15241
15242 1999-11-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15243
15244         * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions.
15245         (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise.
15246         (flow_loop_exits_find, flow_loop_nodes_find): Likewise.
15247         (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise.
15248         (flow_loop_tree_node_add, flow_loops_tree_build): Likewise.
15249         (flow_loop_level_compute, low_loops_level_compute): Likewise.
15250         (flow_loops_find, flow_loop_outside_edge_p): Likewise.
15251         * basic-block.h: Protect from multiple inclusion.
15252         (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes.
15253         (struct loops, struct loop): Define structures.
15254         * sbitmap.c (sbitmap_a_subset_b_p): New function.
15255         * sbitmap.h: Protect from multiple inclusion.
15256         (sbitmap_a_subset_b_p): Add prototype.
15257         * Makefile.in (LOOP_H): New macro.
15258         (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H.
15259
15260 Tue Nov 30 01:34:47 1999  Philippe De Muyter  <phdm@macqel.be>
15261
15262         * cppinit.c (CAT): The argument list of this macro may not contain
15263         spaces !
15264
15265 1999-11-29  David S. Miller  <davem@redhat.com>
15266
15267         Move quantity tables and register equivalence chains into
15268         per-qty and per-register structure arrays respectively.
15269         * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const,
15270         qty_const_insn, qty_comparison_code, qty_comparison_const,
15271         qty_comparison_qty): Delete, replace with...
15272         (qty_table): this structure table.
15273         (reg_next_eqv, reg_prev_eqv): Delete, replace with...
15274         (reg_eqv_table): this structure table.
15275         (make_new_qty): Add argument MODE.  Caller updated.
15276         Update to use qty_table and reg_eqv_table.
15277         (make_regs_eqv, delete_reg_equiv, insert_regs,
15278         insert, exp_equiv_p, cse_rtx_varies_p, canon_reg,
15279         fold_rtx, equiv_constant, record_jump_cond, cse_insn,
15280         cse_process_notes, cse_main, cse_basic_block): Likewise.
15281
15282 Mon Nov 29 16:56:42 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15283
15284         * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse
15285         operation if C is negative.
15286         (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects.
15287         (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive
15288         law for some divisions if constant is negative and change other
15289         divisions to the opposite rounding.
15290
15291         * expr.c (store_constructor_field): If bit position is not multiple
15292         of alignment of TARGET's mode, use BLKmode.
15293
15294         * expr.c (expand_expr_unaligned): Add more code from full case
15295         that is needed when OP0 is in a register.
15296
15297 Mon Nov 29 18:09:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15298
15299         * dwarfout.c (field_byte_offset): Size can be zero if there was
15300         an error.
15301
15302 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
15303
15304         * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE.
15305         (associate_trees): Delete unused var TEM.
15306         (extract_muldiv): Delete unused var CANCEL_P.
15307
15308         * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT]
15309         (target_isinf, target_isnan, target_negative): Add return types to
15310         function definitions.
15311
15312 1999-11-29  Bruce Korb  <autogen@linuxbox.com>
15313
15314         * fixinc/fixincl.c(process): don't skip GLIBC files any more.
15315         * fixinc/hackshell.tpl: ditto
15316         * fixinc/fixtests.c(double_slash_test): more C++ header testing
15317         * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach
15318
15319 1999-11-29  Bernd Schmidt  <bernds@cygnus.co.uk>
15320
15321         * reload.c (push_reload): When looking for a register to put into
15322         reg_rtx, make sure all hard regs in a multi-reg register are in the
15323         right class and nonfixed.
15324
15325         * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers,
15326         pending_read_insns, pending_write_insns, pending_read_mems,
15327         pending_write_mems, pending_list_length, last_pending_memory_flush,
15328         last_function_call, sched_before_next_call): Move static variables
15329         into a structure.
15330         (bb_ prefixed versions): Replace with single array bb_deps.
15331         (struct deps): New structure.
15332         (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1,
15333         sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new
15334         argument of type "struct deps *"; use that instead of global
15335         variables.  All callers changed.
15336         (init_rgn_data_dependencies): Delete function.
15337         (init_rtx_vector): Delete function.
15338         (init_deps): New function.
15339
15340         (free_pending_lists): Simplify, we always use the bb_deps array even
15341         if only one basic block.
15342         (compute_block_backward_dependences): Likewise.
15343         (schedule_region): Likewise.
15344
15345         (propagate_deps): New function, broken out of
15346         compute_block_backward_dependences.
15347         (compute_block_backward_dependences): Use it.
15348
15349         * alpha.md: Delete useless patterns that tried to work around
15350         register elimination problems.
15351
15352         * unroll.c (loop_iterations): Don't abort if iteration variable
15353         was made by loop.
15354
15355         From Joern Rennecke:
15356         * reload1.c (reloads_conflict): Reverse test comparing operand
15357         numbers when testing for conflict between output/outaddr reloads.
15358
15359 1999-11-29  David S. Miller  <davem@redhat.com>
15360
15361         * config/sparc/sparc.c (init_cumulative_args): Fix type of third
15362         arg.
15363         * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE.
15364
15365 1999-11-28  Robert Lipe  <robertl@cygnus.com>
15366
15367         * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn
15368         table from .fini into .dtor.
15369
15370 1999-11-28  Anthony Green  <green@cygnus.com>
15371
15372         * tree.h (struct tree_decl): Add malloc_flag.
15373         (DECL_IS_MALLOC): Define.
15374         * c-common.c (attrs): Add A_MALLOC attribute.
15375         (init_attributes): Add this attribute to the table.
15376         (decl_attributes): Handle malloc attribute.
15377         * calls.c (special_function_p): Check for the malloc attribute.
15378         * extend.texi (Function Attributes): Document malloc attribute.
15379
15380 Sun Nov 28 13:21:00 1999  Jeffrey A Law  (law@cygnus.com)
15381
15382         * pa.md (reload shift-add patterns): Remove.
15383
15384 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15385
15386         * reorg.c (dbr_schedule) Print more statistics. Corrected
15387         problem when printing info when 3 delay slots are filled.
15388
15389 1999-11-28  Jakub Jelinek  <jakub@redhat.com>
15390
15391         * combine.c (setup_incoming_promotions): Pass an outgoing
15392         regno to FUNCTION_ARG_REGNO_P which it expects.
15393
15394 1999-11-28  Andreas Jaeger  <aj@suse.de>
15395
15396         * mips/linux.h (CPP_PREDEFINES): Undefine before redefining.
15397
15398 Sun Nov 28 00:48:15 1999  Philippe De Muyter  <phdm@macqel.be>
15399
15400         * cccp.c (do_include): Avoid initialization of automatic variable.
15401
15402         * integrate.c (mark_stores): Function definition made void, to match
15403         previous declaration.
15404         * regclass.c (dump_regclass): Ditto.
15405         * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'.
15406
15407 Sat Nov 27 08:38:26 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15408
15409         * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is
15410         known to be multiple of divisor.
15411
15412         * expr.c (store_constructor): Don't clobber TARGET if CLEARED.
15413
15414         * combine.c (try_combine): Add code to try to merge a set of a
15415         two-word pseudo to a constant with a setting of one of those words
15416         to a constant.
15417
15418         * fold-const.c (negate_expr, associate_trees, extract_muldiv): New.
15419         (split_tree): Completely rework to make more general.
15420         (make_range, fold): Call negate_expr.
15421         (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math.
15422         (fold, associate): Call new split_tree and associate_trees.
15423         (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv.
15424
15425 1999-11-26  Bernd Schmidt  <bernds@cygnus.co.uk>
15426
15427         * loop.c (try_copy_prop): Avoid GNU C extension.
15428
15429 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
15430
15431         * except.c (init_eh_for_function): Still zero eh_return_context,
15432         eh_return_stack_adjust, and eh_return_handler.
15433
15434         * except.h (eh_status): Adjust documentation for x_protect_list.
15435         (begin_protect_partials): New function.
15436         * except.c (enqueue_eh_entry): Fix formatting.
15437         (get_first_handler): Add consistency check.
15438         (add_partial_entry): Adjust usage of protect_list.
15439         (emit_cleanup_handler): Save and restore ehqueue.
15440         (expand_start_all_catch): Add comment.
15441         (begin_protect_partials): New function.
15442         (end_protect_partials): Adjust usage of protect_list.
15443         (init_eh_for_function): Use xcalloc.
15444
15445 1999-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15446
15447         * c-common.c (check_format_info): Don't call a variadic function
15448         with a non-literal format string.
15449
15450         * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise.
15451
15452         * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else,
15453         pedantic_lvalue_warning, error_init, pedwarn_init, warning_init):
15454         Likewise.
15455
15456         * cccp.c (check_macro_name, do_xifdef, vwarning_with_line):
15457         Likewise.
15458
15459         * collect2.c (collect_wait): Likewise.
15460
15461         * dbxout.c (dbxout_type): Likewise.
15462
15463         * gcc.c (do_spec_1): Likewise.
15464
15465         * genemit.c (gen_insn, gen_expand): Likewise.
15466
15467         * genrecog.c (write_switch, write_subroutine): Likewise.
15468
15469         * mips-tfile.c (catch_signal, botch): Likewise.
15470
15471         * print-rtl.c (print_rtx): Likewise.
15472
15473         * toplev.c (default_print_error_function, report_error_function,
15474         _fatal_insn): Likewise.
15475
15476 1999-11-25  Mark Mitchell  <mark@codesourcery.com>
15477
15478         * tree.c (unsave_expr_now): Handle NULL_TREE as input.
15479
15480 Wed Nov 24 17:08:09 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15481
15482         * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative
15483         operations when needed.
15484         * i386.md (fop_?f_comm): New.
15485         (fop_?f_1): Do not accept commutative operands.
15486
15487 1999-11-25  Andreas Jaeger  <aj@suse.de>
15488
15489         * config/mips/mips.md (casesi_internal): Add missing brace.
15490
15491 1999-11-25  Jason Merrill  <jason@casey.cygnus.com>
15492
15493         * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose.
15494         (splice_child_die): Handle moving a child DIE from the declaration
15495         DIE of a class to its specification.
15496         (gen_struct_or_union_type_die): Use 'complete' consistently.
15497         (gen_decl_die): Generate the virtual context DIE first.
15498         Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN.
15499
15500 1999-11-24  Gavin Romig-Koch  <gavin@cygnus.com>
15501
15502         * config/mips/mips.md (call_value_multiple_interanal1): New.
15503
15504 1999-11-24  Jason Merrill  <jason@casey.cygnus.com>
15505
15506         * dwarf2out.c (free_AT, free_die): New fns.
15507         (remove_children): Call them.
15508         (output_line_info): Disable removal of duplicate notes.
15509
15510         Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set.
15511         * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO
15512         means pretend the type isn't defined.
15513         Don't defer emitting types.
15514         (gen_type_die_for_member): New fn.
15515         (gen_decl_die): Call it.
15516         (splice_child_die): New fn.
15517         (gen_member_die): Call it rather than generate duplicate dies.
15518
15519         Defer emitting information for the abstract instance of an inline
15520         until we either inline it or emit an out-of-line copy.
15521         * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN
15522         from output_inline_function if DECL_ABSTRACT is also set.
15523         (block_ultimate_origin): Likewise.
15524         (gen_abstract_function): New fn.
15525         (gen_decl_die, gen_inlined_subroutine_die): Call it.
15526         (gen_subprogram_die):  An abstract instance is not a declaration
15527         just because it doesn't match current_function_decl.  Don't abort
15528         because DECL_DEFER_OUTPUT isn't set.  Do abort if a declaration
15529         has an abstract origin.
15530         * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the
15531         abstract instance here.
15532
15533 Wed Nov 24 18:39:18 1999  Andrew Haley  <aph@cygnus.com>
15534
15535         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case
15536         where we need to reload fpul from a system register.
15537
15538 1999-11-24  Andreas Jaeger  <aj@suse.de>
15539
15540         * config/mips/linux.h (CPP_PREDEFINES): Added.
15541         (LINK_SPEC): Remove -Y since this is only needed on sparc.
15542
15543 1999-11-24  Andreas Jaeger  <aj@suse.de>
15544
15545         * config/mips/linux.h (TARGET_VERSION): Added.
15546         (HANDLE_SYSV_PRAGMA): Added.
15547         (DEFAULT_VTABLE_THUNKS): Added.
15548
15549 Wed Nov 24 14:12:15 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15550
15551         * local-alloc.c (qty): New structure and static variable.
15552         (qty_phys_reg): Remove, all references changed to qty.
15553         (qty_n_refs): Likewise.
15554         (qty_min_class): Likewise.
15555         (qty_birth): Likewise.
15556         (qty_death): Likewise.
15557         (qty_size): Likewise.
15558         (qty_mode): Likewise.
15559         (qty_n_calls_crossed): Likewise.
15560         (qty_alternate_class): Likewise.
15561         (qty_changes_size): Likewise.
15562         (qty_first_reg): Likewise.
15563         (alloc_qty): Rename variable QTY to QTYNO.
15564         (finf_free_reg): Likewise.
15565         (local_alloc): Allocate qty, do not allocate the removed variables.
15566
15567 Wed Nov 24 17:26:05 1999  Geoffrey Keating  <geoffk@cygnus.com>
15568
15569         * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler
15570         when -membedded-pic is passed.
15571
15572         * config/mips/mips.md (casesi): Handle 64-bit case too.
15573         (casesi_internal_di): New insn.
15574
15575         * config/mips/mips.c (embedded_pic_offset): Always make the
15576         embedded-pic subtractions relative to the name of the current
15577         function by use of the magic string "..CURRENT_FUNCTION".
15578         * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen.
15579
15580 1999-11-24  Geoffrey Keating  <geoffk@cygnus.com>
15581
15582         * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO
15583         of (const_int 0), when what we really care about is
15584         whether it's a zero constant anyway.
15585         (div_trap_mips16): Likewise.
15586
15587 1999-11-23  Mark Mitchell  <mark@codesourcery.com>
15588
15589         * loop.c (loop_optimize): Always find_loop_tree_blocks and
15590         unroll_block_trees when generating debuggable code.
15591
15592         * tree.h (unsave_expr_1): New function.
15593         (lang_unsave): New variable.
15594         (get_callee_fndecl): New function.
15595         * tree.c (unsave_expr_now_r): New function.
15596         (lang_unsave): Define.
15597         (unsave_expr_1): Likewise.
15598         (unsave_expr_now_r): Split out from unsave_expr_now.
15599         (unsave_expr_now): Call lang_unsave if it is non-NULL.  Otherwise,
15600         call unsave_expr_now_r.
15601         (get_callee_fndecl): Define.
15602
15603         * Makefile.in (gencheck): Don't depend on lang_tree_files.
15604         (gencheck.o): Do depend on lang_tree_files.
15605
15606         * integrate.h (copy_decl_for_inlining): New declaration.
15607         * integrate.c (copy_and_set_decl_abstract_origin): Remove.
15608         (copy_decl_for_inlining): New function.
15609         (integrate_parm_decls): Use it.
15610         (integrate_decl_tree): Likewise.
15611
15612 1999-11-23  Gavin Romig-Koch  <gavin@cygnus.com>
15613
15614         * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split
15615         the second two from the first.
15616         (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4.
15617         * config/mips/mips.md (movcc,reload_incc,reload_outcc,
15618         conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
15619         ISA_HAS_FP4.
15620         * config/mips/mips.c (mips_move_1word,gen_conditional_branch,
15621         override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than
15622         ISA_HAS_FP4.
15623
15624 Tue Nov 23 11:15:04 1999  Jeffrey A Law  (law@cygnus.com)
15625
15626         * pa.md (call_internal_symref, call_value_internal_symref): No mode
15627         needed on the address operand.
15628         * pa.c (call_operand_address): Check for the correct mode.
15629
15630 1999-11-23  Bernd Schmidt  <bernds@cygnus.co.uk>
15631
15632         * loop.c: Include "basic-block.h".
15633         (try_copy_prop, replace_loop_reg): New functions.
15634         (load_mems): Detect registers that just hold copies of the hoisted
15635         mem, and call try_copy_prop to eliminate them.
15636         * Makefile.in (loop.o): Update dependencies.
15637
15638 Tue Nov 23 01:03:29 1999  Hans-Peter Nilsson  <hp@axis.com>
15639
15640         * Makefile.in (gencheck.o): Depend on gencheck.h.
15641         (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h.
15642         (insn-peep.o): Depend on except.h and function.h.
15643         (insn-attrtab.o): Depend on RECOG_H.
15644         (insn-output.o): Depend on toplev.h and flags.h.
15645         (gengenrtl.o): Depend on real.h.
15646         (gen-protos.o): Depend on cpplib.h and cpphash.h.
15647         Unify all dependencies to be on RECOG_H rather than recog.h.
15648
15649 Tue Nov 23 00:57:10 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15650
15651         From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998:
15652         * configure.in: Try building a bi-arch 32/64-bit compiler on
15653         sparc-*-solaris2.7 and higher.
15654         * configure: Rebuild.
15655
15656 Mon Nov 22 23:09:44 1999  David O'Brien  <obrien@FreeBSD.org>
15657
15658         * config/freebsd.h: New, FreeBSD architecture independent file.
15659         * config/i386/freebsd-elf.h: removed FreeBSD architecturally
15660         independent pieces.
15661         * config/i386/freebsd.h: include i386/perform.h via tm.h rather than
15662         directly by i386/freebsd.h.
15663         * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally
15664         independent configuration file.
15665         (*-*-freebsdelf): Include i386/perform.h via tm.h rather than
15666         directly by i386/freebsd.h.
15667         * configure: Rebuilt.
15668
15669         * xm-i386.h: Define `__i386__' if not defined, rather than `i386'
15670         which is in the user's namespace.
15671         * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs.
15672         `i386' which is not in our namespace.
15673
15674 Mon Nov 22 22:58:01 1999  "R. Kelley Cook" <KelleyCook@attglobal.net>
15675
15676         * invoke.texi (ARM Options): Add in -mno-alignment-traps
15677
15678 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
15679
15680         * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last.
15681         (add_dwarf_attr, add_child_die): Just push onto the front.
15682         (reverse_die_lists): New fn.
15683         (add_sibling_attributes): Use it.
15684         (push_decl_scope): Reorganize.
15685         (add_name_and_src_coords_attributes): Don't set file and line for
15686         an artificial decl.
15687         (gen_subprogram_die): An artificial function doesn't need to match
15688         file and line.
15689         (gen_compile_unit_die): Return the generated die.  Only add
15690         AT_comp_dir if the filename is relative.
15691         (remove_AT): Simplify loop.  Also free string values.
15692         (output_die): A DIE ref can't be null.
15693         (output_value_format, value_format): Take a dw_attr_ref.
15694         (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove.
15695         (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc,
15696         AT_addr, AT_lbl): New fns.
15697         (various): Use them.
15698         (various): Constify.
15699
15700 Mon Nov 22 23:53:50 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
15701
15702         * combine.c (combine_simplify_rtx): When handling a SUBREG,
15703         take SUBREG_WORD into account.
15704         (if_then_else_cond): Likewise.
15705
15706 1999-11-22  Jason Merrill  <jason@casey.cygnus.com>
15707
15708         * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising
15709         clause from BSD license, pursuant with
15710
15711           ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
15712
15713 1999-11-22  Bernd Schmidt  <bernds@cygnus.co.uk>
15714
15715         * loop.c (load_mems): Reformat slightly.
15716         * basic-block.h (regset_head): New typedef.
15717         (INIT_REG_SET): New macro.
15718
15719 1999-11-22  Bruce Korb  <autogen@linuxbox.com
15720
15721         * fixinc/mkfisinc.sh(i?86-*-linux): disable script, run fixincl exe
15722         (mips-dec-bsd*): non-functional code
15723         (alpha*-*-linux-gnu*): redundant, duplicated by "*-*-linux-gnu*"
15724
15725         * fixinc/inclhack.def(AAB_fd_zero_glibc_*):
15726         added three replacement fixes
15727         (no_double_slash): removed comments that are not (any longer) pertinent
15728         (bad_lval): this fix currently runs against many files.
15729         The comment seems to indicate that we should select for files
15730         containing 'pragma extern_prefix'.
15731
15732         * fixinc/fixinc.x86-linux-gnu: deleted
15733         * fixinc/inclhack.sh:  regen
15734         * fixinc/fixincl.x:  regen
15735         * fixinc/fixincl.sh:  regen
15736
15737 Fri Nov 12 14:08:40 1999  Andrew Haley  <aph@cygnus.com>
15738
15739         * emit-rtl.c (gen_sequence): Only return the pattern of an insn if
15740         its code is INSN and it has no notes.
15741
15742 1999-11-22  Andrew Haley  <aph@cygnus.com>
15743
15744         * varasm.c (function_defined): Remove.
15745         (make_function_rtl): Don't set function_defined.
15746         (make_decl_rtl): Remove global register warning.
15747         * regclass.c (no_global_reg_vars): New variable.
15748         (globalize_reg): Warn if function has already been defined.
15749         (regclass_init): Set no_global_reg_vars.
15750
15751 Mon Nov 22 14:42:22 MET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15752
15753         * regclass.c (reg_pref): New structure and static variable
15754         (prefclass): Delete.
15755         (altclass): Delete.
15756         (all uses of prefclass and altclass): Use reg_pref instead.
15757
15758 1999-11-21  Nick Clifton  <nickc@cygnus.com>
15759
15760         * invoke.texi (ARM Options): Replace -mshort-load-bytes with
15761         -malignment-traps.
15762         (arm.h): Replace -mshort-load-bytes with -malignment-traps.
15763         (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
15764         (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS.
15765
15766 Sun Nov 21 17:11:13 1999  Geoffrey Keating  <geoffk@cygnus.com>
15767
15768         * varasm.c (output_constructor): Solve problem with long long
15769         bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1).
15770
15771 Fri Nov 19 05:48:45 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15772
15773         * global.c (allocno): New structure and static variable.
15774         (allocno_reg): Remove, all references replaced by allocno.
15775         (allocno_size): Likewise.
15776         (hard_reg_conflicts): Likewise.
15777         (hard_reg_preferences): Likewise.
15778         (hard_reg_copy_preferences): Likewise.
15779         (hard_reg_full_preferences): Likewise.
15780         (regs_someone_prefers): Likewise.
15781         (allocno_calls_crossed): Likewise.
15782         (allocno_n_refs): Likewise.
15783         (allocno_live_length): Likewise.
15784         (find_reg): Rename ALLOCNO to NUM.
15785
15786         * regclass.c (may_move_in_cost): Rename from may_move_cost, all
15787         references updated.
15788         (may_move_out_cost): New variable.
15789         (init_reg_sets_1): Initialize may_move_out_cost.
15790         (record_reg_classes): Use may_move_out_cost.
15791
15792         * regclass.c (dump_regclass): New function.
15793         (regclass): New parameter DUMP, call DUMP_REGCLASS.
15794         * toplev.c (rest_of_compilation): Open lreg dump file before regclass,
15795         pass rtl_dump_file to regclass.
15796         * rtl.h (regclass): Update prototype.
15797
15798 Fri Nov 19 06:32:19 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15799
15800         * i386.md (neg, not and abs patterns): Revmap to use
15801         ix86_expand_unary_operator and ix86_unary_operator_ok.
15802         (add?f and sub?f expanders): Force operand 1 to register.
15803         * i386.c (ix86_expand_unary_operator): Rewrite.
15804         (ix86_unary_operator_ok): Ensure that memory operands
15805         match real opcode.
15806         (ix86_binary_operator_ok): Do not allow operand 1 to
15807         come into memory and operand 0 not.
15808         (ix86_expand_binary_operator): Ensure that
15809         src1 is not non-matching memory.
15810
15811         * i386.md (negs?2): Rewrite to expanders, new patterns and splitters
15812         to support integer registers and memory.
15813         (abss?2_integer): Likewise.
15814
15815         * i386.h (enum reg_class): Add FLOAT_INT_REGS.
15816         (REG_CLASS_NAMES): Likewise.
15817         (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS
15818         and GENERAL_REGS.
15819         * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS.
15820         (movsf): Likewise; unify 4th and 5th alternative.
15821         (pushdf): Likewise.
15822         (movdf_1): Likewise; rename to movdf_integer.
15823         (pushxf): Likewise; rename to pushxf_integer; fix output template;
15824         remove redundant splitter.
15825         (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition.
15826         (movdf_nointeger): New.
15827         (movxf_nointeger): New.
15828         (pushxf_nointeger): New.
15829
15830         * i386.md (extend?f?f): Split to expander and pattern, refuse two
15831         memory operands in patterns.
15832         (fop*): Refuse two memory operands.
15833
15834         * i386.md (ashrsi3_31): Allow cltd when optimizing for size even
15835         on !TARGET_USE_CLTD CPUs.
15836
15837 Fri Nov 19 10:41:15 GMT 1999  Nathan Sidwell  <nathan@acm.org>
15838
15839         * extend.texi: Document C++ restricted pointers and references.
15840
15841 1999-11-19  Bernd Schmidt  <bernds@cygnus.co.uk>
15842
15843         * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC.
15844         (invalidate_skipped_set): Call it unconditionally.
15845         (cse_set_around_loop): Likewise.
15846
15847 Thu Nov 18 17:29:34 MST 1999    Diego Novillo <dnovillo@cygnus.com>
15848
15849         * rtl.texi (mem): Add documentation for alias-set argument
15850         to RTX `mem'.
15851
15852 Fri Nov 18 13:39:22 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15853
15854         * i386.h (struct_processor_costs): New fields int_load, int_store,
15855         fp_move, fp_load and fp_store
15856         (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of
15857         fp->int moves
15858         (MEMORY_MOVE_COST): New macro.
15859         * i386.c (386_cost): Define new fields.
15860         (i486_cost): Likewise.
15861         (pentium_cost): Likewise.
15862         (pentiumpro_cost): Likewise.
15863         (k6_cost): Likewise.
15864
15865 Fri Nov 19 11:11:55 1999  Greg McGary  <gkm@gnu.org>
15866                           Geoffrey Keating  <geoffk@cygnus.com>
15867
15868         * config/m68k/m68kelf.h: Suppress '/* within comment' warning.
15869
15870         * config/m68k/m68k.h (MASK_PCREL): Don't use same value as
15871         MASK_ALIGN_INT.
15872
15873         * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro.
15874         (TARGET_STRICT_ALIGNMENT): New macro.
15875         (TARGET_SWITCHES): Add "strict-align" and "no-strict-align".
15876         (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT.
15877         * invoke.texi (M680x0 Options): Document -mstrict-align.
15878
15879 Thu Nov 18 11:10:03 1999  Jan Hubicka  <hubicka@freesoft.cz>
15880                           Richard Henderson  <rth@cygnus.com>
15881
15882         * i386-protos.h (split_xf, ix86_split_movdi): Remove.
15883         (ix86_split_long_move): Declare.
15884         * i386.c (split_xf, ix86_split_movdi): Remove.
15885         (ix86_split_to_parts, ix86_split_long_move): New.
15886         * i386.md (dimode move splitters): Use ix86_split_long_move.
15887         (dfmode move splitters): Likewise.
15888         (xfmode move splitters): Likewise.
15889         (movsf_1): Allow F->r.
15890         (movdf_1, movxf_1): Allow F->ro.
15891
15892 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
15893
15894         * except.h (struct eh_entry): Add goto_entry_p.
15895         (eh_region_from_symbol): Remove prototype.
15896         * except.c (find_func_region_from_symbol): New function.
15897         (emit_cleanup_handler): Likewise.
15898         (eh_region_from_symbol): Make it static.
15899         (add_new_handler): Verify the argument.
15900         (find_func_region): Update comment.
15901         (expand_eh_region_end): Expand handlers here, rater than waiting
15902         until expand_leftover_cleanups or start_all_catch.
15903         (expand_leftover_cleanups): Don't expand here.
15904         (expand_start_all_catch): Or here.
15905         (expand_rethrow): Check the return value from find_func_region.
15906         * function.c (expand_function_end): Emit the catch_clauses.
15907
15908 1999-11-18  Gavin Romig-Koch  <gavin@cygnus.com>
15909
15910         * integrate.c (expand_inline_function): Add necessary check for NULL.
15911
15912 1999-11-18  Nick Clifton  <nickc@cygnus.com>
15913
15914         * toplev.c (main): Correctly detect an unrecognised option.
15915
15916         * cppinit.c (cpp_handle_option): Do not claim to have consumed
15917         a -f option if it has not been recognised.
15918
15919 Thu Nov 18 00:59:11 1999  Michael Gschwind  <mikeg@alagoas.watson.ibm.com>
15920
15921         * basic-block.h (update_life_extent): Remove trailing comma on
15922         enumeration type list.
15923
15924 1999-11-18 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
15925
15926         * varasm.c (output_constructor) Solved problem with long long
15927         bitfields. Corrected calculating this_time and shift. Also
15928         corrected calculating mask when BITS_PER_UNIT == 32 (c4x).
15929
15930 Wed Nov 17 23:46:14 1999  Jeffrey A Law  (law@cygnus.com)
15931
15932         * flow.c (split_edge): Take looping structure into account when
15933         determining where to put the new block note.
15934
15935 Wed Nov 17 20:42:43 1999  Jeff Holcomb  <jeffh@cygnus.com>
15936
15937         * Makefile.in (ggc-none.o): Provide host specific version if
15938         needed.
15939
15940 Wed Nov 17 16:51:23 1999  Richard Henderson  <rth@cygnus.com>
15941
15942         * cse.c (delete_trivially_dead_insns): Identify no-op insns
15943         containing subregs too.
15944
15945 Wed Nov 17 17:39:48 MST 1999    Diego Novillo <dnovillo@cygnus.com>
15946
15947         * invoke.texi: Add documentation for -muninit-const-in-rodata.
15948         * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define.
15949         (TARGET_UNINIT_CONST_IN_RODATA): Define.
15950         (text_section): Add switches -munint-const-in-rodata and
15951         -mno-uninit-const-in-rodata.
15952         (ASM_OUTPUT_COMMON): Remove.
15953         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized
15954         const objects should be placed in read-only data. Otherwise declare
15955         them in common.
15956
15957 Wed Nov 17 16:38:32 1999  Richard Henderson  <rth@cygnus.com>
15958
15959         * jump.c (jump_optimize_1): Revert last change.
15960
15961 Wed Nov 17 15:18:30 1999  Richard Henderson  <rth@cygnus.com>
15962
15963         * jump.c (jump_optimize_1): Don't try to duplicate the loop exit
15964         test if optimizing for size.
15965
15966 1999-11-17  Mark Mitchell  <mark@codesourcery.com>
15967
15968         * Makefile.in (toplev.o): Depend on except.h.
15969         (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise.
15970
15971 Mon Nov 15 22:45:39 CET 1999  Jan Hubicka  <hubicka@freesoft.cz>
15972
15973         * i386.md (divmodsi4): Rewrite to expander.
15974         (*divmodsi4_nocltd): New.
15975         (*divmodsi4_cltd): New.
15976         (divmodsi4 splitter): Handle the case when input comes in edx.
15977         (udivmodhi4): Do not use constraints in exander.
15978         (ashrsi3_31): Conditionize by TARGET_USE_CLTD.
15979
15980 1999-11-17  Jason Merrill  <jason@yorick.cygnus.com>
15981
15982         * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1
15983         for the common case.
15984
15985 1999-11-16  Jakub Jelinek  <jakub@redhat.com>
15986
15987         * explow.c (hard_function_value): Add outgoing argument.
15988         * expr.h (hard_function_value): Declare it.
15989         * calls.c (expand_call, emit_library_call_value): Update callers.
15990         * function.c (aggregate_value_p): Ditto.
15991         (diddle_return_value): Must look at the outgoing registers
15992         on archs with register windows.
15993
15994 Mon Nov 15 20:46:45 1999  Richard Henderson  <rth@cygnus.com>
15995
15996         * alpha.c (alpha_build_va_list): Use make_lang_type and
15997         initialize TYPE_NAME for the va_list record.
15998
15999         * flow.c (calculate_global_regs_live): Zero bb->aux to begin.
16000
16001         * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long
16002         for printing.
16003         * ggc.h (struct ggc_statistics): Rearrange elements for better
16004         packing on 64-bit hosts.
16005         * lcm.c (compute_laterin): Store a size_t not an int in bb->aux.
16006         (compute_nearerout): Likewise.
16007
16008 Tue Nov 16 14:37:52 1999  Geoffrey Keating  <geoffk@cygnus.com>
16009
16010         * config/rs6000/rs6000.c (first_reg_to_save): Save
16011         PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed.
16012
16013 1999-11-15  Jason Merrill  <jason@casey.cygnus.com>
16014
16015         * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table
16016         notion of nesting to find the DIE for a type or function.
16017         DIEs can go in limbo even if we got a context_die.
16018         (push_decl_scope): Our context doesn't need to be in decl_scope_table.
16019         (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test
16020         for local type.
16021         (gen_decl_die): Ignore NAMESPACE_DECLs for now.
16022         (gen_type_die): Writing out the context doesn't cause member class
16023         template instantiations to be written out as well.
16024
16025 Mon Nov 15 15:33:18 1999  Richard Henderson  <rth@cygnus.com>
16026
16027         * rs6000.h (ASM_OUTPUT_DEF): New.
16028         Based on proposed addition from David Edelsohn.
16029
16030 1999-11-15  Robert Lipe  <RobertLipe@usa.net>
16031             Bruce Korb  <autogen@linuxbox.com>
16032
16033         * fixinc/inclhack.def
16034         (AAB_svr4_replace_byteorder): added.  Takes advantage of GCC features
16035         (unixware7_byteorder_fix): added.  Removes conflicts for new defs
16036                 in net/inet.h.
16037         (svr5_mach_defines): added.  Like svr4_mach_defines, with new syntax
16038         (svr4_endian): enabled with SVR5
16039         (svr4_mkdev): simplified syntax and enabled with SVR5
16040
16041 Sun Nov 14 18:49:37 1999  David O'Brien  <obrien@FreeBSD.org>
16042
16043         * configure.in: Handle libgcc2 threads support on FreeBSD platforms.
16044         * configure: Rebuilt.
16045         * config/t-freebsd-thread: New file.
16046
16047 Sun Nov 14 23:11:05 1999  Jeffrey A Law  (law@cygnus.com)
16048
16049         * i386.c (ix86_decompose_address): Verify the base is a REG
16050         before trying to examine its register number.
16051
16052         * basic-block.h: Remove all #defines and prototypes related to
16053         integer lists.
16054         (free_bb_mem, compute_preds_succs): Remove prototype.
16055         * rtl.h (free_bb_mem): Remove prototype.
16056         * flow.c (alloc_int_list_node); Remove function.
16057         (add_inst_list_node, free_int_list, add_pred_succ): Likewise.
16058         (compute_preds_succs, free_bb_mem): Likewise.
16059         * gcse.c (gcse_main): Do not call free_bb_mem anymore.
16060         * toplev.c (rest_of_compilation): Likewise.
16061         * haifa-sched.c (build_control_flow): Use flow generated edge
16062         list to build the haifa specific edge list.
16063         (find_rgns): Use new CFG data structures instead of pred/succ lists.
16064         (schedule_insns): Do not build pred/succ lists anymore.  Instead
16065         build the edge table.
16066
16067         * basic-block.h (dump_bb_data): Remove declaration.
16068         * flow.c (dump_bb_data): Remove function.
16069         * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function.
16070         (sbitmap_union_of_predsucc): Likewise.
16071
16072         * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds
16073         argument.  All callers changed.
16074         (delete_null_pointer_checks_1): No longer need to compute the
16075         pred/succ lists.
16076
16077         * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument.
16078         All callers changed.
16079         (pre_expr_reaches_here_p_work): Likewise.
16080         (pre_edge_insert): No longer call pre_expr_reaches_here_p.
16081         * lcm.c (compute_laterin): Fix initialization of LATER.
16082         (compute_nearerout): Similarly for NEARER.
16083
16084 Sun Nov 14 12:41:57 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16085
16086         * cse.c (set_nonvarying_address_components): Delete unused function.
16087         (refers_to_p): Likewise.
16088
16089 Fri Nov 12 20:53:22 1999  Jeffrey A Law  (law@cygnus.com)
16090
16091         * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as
16092         needed.
16093
16094 Sat Nov 13 16:20:09 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16095
16096         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro
16097         definition in do while (0).
16098
16099 Fri Nov 12 16:26:25 1999  Jim Wilson  <wilson@cygnus.com>
16100
16101         * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change.
16102
16103 Fri Nov 12 12:43:49 1999  Richard Henderson  <rth@cygnus.com>
16104
16105         * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT.
16106
16107 Fri Nov 12 15:14:19 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
16108
16109         * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it.
16110         (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto.
16111         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
16112         (INITIAL_FRAME_POINTER_OFFSET): Remove it.
16113
16114         * i960.c (i960_function_prologue): Don't allocate space for g8-g11
16115         saved on the stack.  Output more accurate stack frame statistics
16116         into assembler file.
16117
16118 1999-11-12 11:47 -0800  Zack Weinberg  <zack@bitmover.com>
16119
16120         * genextract.c (record_insn_name): New function.
16121         (get_insn_name): No longer a stub.
16122         (main): Call record_insn_name for each insn.  After each label
16123         written, print the insn name in a comment.
16124
16125 Fri Nov 12 13:45:02 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16126
16127         * output.h (const_section, init_section, fini_section): Add
16128         prototypes.
16129
16130         * alpha/elf.h (const_section): Delete declaration.
16131
16132         * svr4.h (const_section): Likewise.
16133
16134 Fri Nov 12 08:54:22 1999  Mark Mitchell  <mark@codesourcery.com>
16135
16136         * tree.h (SAVE_EXPR_PERSISTENT_P): New macro.
16137         * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially.
16138         (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P
16139         expressions.
16140         * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on
16141         variable-sized array bounds.
16142
16143 Fri Nov 12 08:04:45 1999  Catherine Moore  <clm@cygnus.com>
16144
16145         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME):  Use
16146         ASM_OUTPUT_LABEL.
16147
16148 Fri Nov 12 13:31:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16149
16150         * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode
16151         addresses the same way GO_IF_LEGITIMATE_INDEX does.
16152
16153 Fri Nov 12 12:36:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16154
16155         * cse.c (hash_arg_in_struct): Delete.
16156         (struct table_elt): Delete elt in_struct.
16157         (struct set): Delete elt src_in_struct.
16158         (merge_equiv_classes): Don't set either hash_arg_in_struct or
16159         the corresponding in_struct elts.
16160         (canon_hash): Likewise.
16161         (safe_hash): Likewise.
16162         (find_best_addr): Likewise.
16163         (record_jump_cond): Likewise.
16164         (cse_insn): Likewise.
16165
16166 Thu Nov 11 19:45:24 1999  Jim Wilson  <wilson@cygnus.com>
16167
16168         * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back.
16169
16170         * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large
16171         unsigned types.
16172
16173 Thu Nov 11 18:54:24 1999  Jeffrey A Law  (law@cygnus.com)
16174
16175         * function.c (diddle_return_value): Put back check that the DECL_RTL
16176         for the function is a register.
16177
16178         * function.c (diddle_return_value): Use hard_function_value to
16179         get an rtx suitable for use in the USE/CLOBBER insn.
16180
16181         * global.c (global_conflicts): Update comments.
16182         (record_conflicts): No need to record conflicts between pseudos here.
16183
16184 1999-11-11  Bruce Korb  <autogen@linuxbox.com>
16185
16186         * fixinc/fixincl.c: Added verbose levels for status messages
16187
16188 Thu Nov 11 13:23:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16189
16190         * jump.c (jump_optimize_1): Avoid passing an rtx that is not an
16191         operand as argument to expand_and or expand_binop.
16192
16193 Thu Nov 11 02:21:16 1999  Rodney Brown <RodneyBrown@pmsc.com>
16194
16195         * xcoffout.c (xcoffout_source_file): Change ggc_add_root to
16196         gcc_add_string_root.
16197
16198 Wed Nov 10 21:24:19 1999  Jason Eckhardt  <jle@cygnus.com>
16199
16200         * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4.
16201
16202 Wed Nov 10 15:56:16 1999  Jeffrey A Law  (law@cygnus.com)
16203
16204         * flow.c (compute_flow_dominators): Initially put all blocks on
16205         the worklist.
16206         * lcm.c (compute_antinout_edge, compute_available): Similarly.
16207         * gcse.c (compute_cprop_avinout): Remove.
16208         (compute_cprop_data): Use compute_available.
16209         (delete_null_pointer_checks_1): Use compute_available.
16210
16211         * basic-block.h (compute_available): Returns a void now.
16212         * gcse.c (one_classic_gcse_pass): Do not expect compute_available
16213         to return a value anymore.
16214         * lcm.c (compute_available, compute_antinout_edge): Revamp to use
16215         worklists.  Fix boundary cases. Compute maximal solutions.
16216         (compute_laterin, compute_nearerout): Similarly.
16217
16218         * dwarf2out.c (add_AT_location_description): Allow
16219         (mem (plus (pseudo) (...)) too.
16220
16221 Wed Nov 10 10:52:42 1999  Tom Tromey  <tromey@cygnus.com>
16222
16223         * gcc.c (do_spec_1): Support text between `%u' and `%O'.
16224
16225 Wed Nov 10 12:43:21 1999  Philippe De Muyter  <phdm@macqel.be>
16226                           Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16227
16228         * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'.
16229
16230         * gansidecl.h: Likewise.
16231
16232         * rtl.c: Likewise.
16233
16234         * rtl.h: Likewise.
16235
16236         * toplev.h: Likewise.
16237
16238         * tree.c: Likewise.
16239
16240         * tree.h: Likewise.
16241
16242         * varray.c: Likewise.
16243
16244         * varray.h: Likewise.
16245
16246 Wed Nov 10 10:57:22 1999  Clinton Popetz  <cpopetz@cygnus.com>
16247
16248         * gcov.c (struct arcdata): Add hits and total, remove prob.
16249         (output_branch_counts): New.
16250         (process_args): Set output_branch_counts if -c.
16251         (calculate_branch_probs): Store hits and total instead of
16252         percentage.
16253         (output_data): Emit counts if output_branch_counts is true.
16254         * gcov.texi (Invoking Gcov): Document -c switch..
16255
16256 Wed Nov 10 01:10:41 1999  Philippe De Muyter  <phdm@macqel.be>
16257
16258         * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and
16259         `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type.
16260
16261 Wed Nov 10 00:51:41 1999  Hans-Peter Nilsson  <hp@axis.se>
16262
16263         * invoke.texi (C Dialect Options): Add missing builtins from
16264         c-common.c to list.
16265         * extend.texi (Other Builtins): Copy to this list.
16266
16267 Wed Nov 10 04:58:09 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16268
16269         * Makefile.in (recog.o): Use BASIC_BLOCK_H macro.
16270         (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise.  Remove
16271         redundant bitmap.h.
16272
16273 Wed Nov 10 00:02:53 1999  Jeffrey A Law  (law@cygnus.com)
16274
16275         * flow.c (compute_flow_dominators): No longer treat basic block 0
16276         or (n_basic_blocks - 1) specially.  Clear the AUX field before
16277         starting computation of doms/pdoms.  Fix initial state for pdoms.
16278
16279 Wed Nov 10 03:58:08 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16280
16281         * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to
16282         match rtl.o's: added ggc.h and toplev.h
16283         ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h.
16284         ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h.
16285         ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H).
16286
16287 Tue Nov  9 10:30:08 1999  Tom Tromey  <tromey@cygnus.com>
16288
16289         * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed
16290         from HAVE_DOS_BASED_FILESYSTEM.
16291         * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not
16292         HAVE_DOS_BASED_FILESYSTEM.
16293         (main): Likewise.
16294         (split_directories): Only special-case DOS file names if
16295         HAVE_DOS_BASED_FILE_SYSTEM is defined.  Use IS_DIR_SEPARATOR
16296         instead of explicit tests.  Conditionalize on !VMS.
16297         (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit
16298         tests.  Conditionalize on !VMS.
16299         (process_command): Only use make_relative_prefix if !VMS.
16300         (free_split_directories): Conditionalize on !VMS.
16301         (DIR_UP): Conditionalize on !VMS.
16302
16303 Wed Jun  9 16:57:11 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16304
16305         * gcc.c (STANDARD_BINDIR_PREFIX): Provide default.
16306
16307 Fri Feb  5 14:22:01 1999  Mumit Khan  <khan@xraylith.wisc.edu>
16308
16309         * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX
16310         case.
16311
16312 Mon Nov  8 14:16:57 1999  Michael Meissner  <meissner@cygnus.com>
16313
16314         * invoke.texi (Environment Variables): Document relative path
16315         lookup.
16316         * gcc.c (DIR_UP): If not defined, define as "..".
16317         (standard_bindir_prefix): New static, holds target location to
16318         install binaries.
16319         (split_directories): New function to split a filename into
16320         component directories.
16321         (free_split_directories): New function, release memory allocated
16322         by split_directories.
16323         (make_relative_prefix): New function, make a relative pathname if
16324         the compiler is not in the expected location.
16325         (process_command): If GCC_EXEC_PREFIX was not specified, see if we
16326         can figure out an appropriate prefix from argv[0].
16327         * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of
16328         STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX.  Define
16329         STANDARD_BINDIR_PREFIX.
16330
16331 Wed Nov 10 11:47:54 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
16332
16333         * config/c4x/c4x-protos.h: New file.  Prototypes for functions defined
16334         in c4x.c.
16335         * config/c4x/c4x.h: Moved prototypes to c4x.h.
16336         * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class,
16337         c4x_secondary_memory_needed) Delete.
16338         (fp_zero_operand): Add mode argument.
16339
16340 Thu Nov  4 15:52:35 1999  Andrew Haley  <aph@cygnus.com>
16341
16342         * reload1.c (reload_reg_free_for_value_p): Don't use a register
16343         that is in reload_reg_used.
16344
16345 Tue Nov  9 16:43:00 1999  Nick Clifton  <nickc@cygnus.com>
16346
16347         * config/arm/arm-protos.h: New file: Prototypes for functions
16348         defined in arm.c and pe.c.
16349         * config/arm/arm.h: Fix compile time warnings.
16350         * config/arm/arm.c: Fix compile time warnings.
16351         * config/arm/pe.h: Fix compile time warnings.
16352         * config/arm/aout.h: Fix compile time warnings.
16353
16354 Tue Nov  9 14:55:44 1999  Nick Clifton  <nickc@cygnus.com>
16355
16356         * config/m32r/m32r-protos.h: New file: Prototypes for functions
16357         defined in m32r.c
16358
16359         * config/m32r/m32r.h: Move prototypes to m32r-protos.h
16360         Add support for subtargets.
16361         Add prototypes for new predicates.
16362         Add scheduling macros.
16363
16364         * config/m32r/m32r.c: Fix compile time warnings.
16365         (int8_operand): New predicate function.
16366         (reg_or_cmp_int16_operand): New predicate function.
16367         (extend_operand): New predicate function.
16368         (m32r_adjust_code): New scheduling function.
16369         (m32r_adjust_priorty): New scheduling function.
16370         (m32r_sched_init): New scheduling function.
16371         (m32r_sched_reorder): New scheduling function.
16372         (m32r_sched_variable_issue): New scheduling function.
16373         (direct_return): New codegen function.
16374         (m32r_not_same_reg): New rtl testsing function.
16375
16376         * config/m32r/m32r.md: Fix compile time warnings.
16377         Add support for pre decrement and post increment memory
16378         references.
16379         Add S<cc> patterns.
16380         Add fabs patterns.
16381
16382 Mon Nov  8 22:20:13 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16383
16384         * global.c (EXECUTE_IF_CONFLICT): Don't define.
16385         (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead.
16386         (find_reg): Likewise.
16387
16388 Mon Nov  8 13:16:46 1999  Jason Eckhardt  <jle@cygnus.com>
16389
16390         * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0
16391         to avoid assembler errors.
16392
16393 Mon Nov  8 15:38:41 1999  Nick Clifton  <nickc@cygnus.com>
16394
16395         * config/v850/v850-protos.h: New file: Prototypes for functions
16396         defined in v850.c
16397         * config/v850/v850.h: Move prototypes to v850-protos.h
16398         * config/v850/v850.c: Move prototypes to v850-protos.h
16399         * config/v850/v850.md: Fix compile time warnings.
16400
16401         * config/fr30/fr30-protos.h: New file: Prototypes for functions
16402         defined in fr30.c
16403         * config/fr30/fr30.h: Move prototypes to fr30-protos.h
16404         * config/fr30/fr30.c: Fix compile time warnings.
16405         * config/fr30/fr30.md: Fix compile time warnings.
16406
16407 Mon Nov  8 07:25:37 1999  Mark Mitchell  <mark@codesourcery.com>
16408
16409         * tree.h (get_containing_scope): Declare it.
16410         * tree.c (get_containing_scope): New fucntion.
16411         (decl_function_context): Use it.
16412         * toplev.c (rest_of_compilation): Use get_containing_scope.
16413
16414 aMon Nov  8 03:03:07 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16415
16416         * Makefile.in (rtl.o): Depend on toplev.h.
16417
16418 Sun Nov  7 20:55:14 1999  Mark Mitchell  <mark@codesourcery.com>
16419
16420         * cse.c (delete_trivially_dead_insns): Replace alloca with
16421         xmalloc/xcalloc.
16422         * except.c (update_rethrow_references): Likewise.
16423         (init_eh_nesting_info): Likewise.
16424         * function.c (identify_blocks): Likewise.
16425         * gcse.c (dump_hash_table): Likewise.
16426         * graph.c (print_rtl_graph_with_bb): Likewise.
16427         * loop.c (combine_movables): Likewise.
16428         (move_movables): Likewise.
16429         (count_loop_regs_set): Likewise.
16430         (strength_reduce): Likewise.
16431         * profile.c (compute_branch_probabilities): New function, split
16432         out from ...
16433         (branch_prob): Here.  Replace alloca with xmalloc/xcalloc.
16434         * regclass.c (regclass): Likewise.
16435         * regmove.c (regmove_optimize): Likewise.
16436         * toplev.c (compile_file): Likewise.
16437         (main): Don't mess with the stack rlimit.
16438
16439 Sun Nov  7 19:41:17 1999  Catherine Moore  <clm@cygnus.com>
16440
16441         * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define.
16442         (ASM_DECLARE_FUNCTION_SIZE): Conditionally define.
16443
16444 Sun Nov  7 10:23:28 1999  Mark P. Mitchell  <mark@codesourcery.com>
16445
16446         * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns.
16447
16448 Sun Nov  7 02:58:48 1999  Jeffrey A Law  (law@cygnus.com)
16449
16450         * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change.
16451         (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in
16452         macro expansion.
16453
16454 Sat Nov  6 23:48:30 1999  Robert Lipe  (robertlipe@usa.net)
16455
16456         * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo.
16457
16458 Sat Nov  6 17:34:39 1999  Jeffrey A Law  (law@cygnus.com)
16459
16460         * gcse.c (post_dominators): Kill.
16461         (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators.
16462         (compute_code_hoist_data): Use compute_flow_dominators.  Do not
16463         pass in a pdom array since we do not need pdoms.
16464         * haifa-sched.c (schedule_insns): Similarly.
16465         * flow.c (compute_dominators): Remove dead function.
16466         (compute_flow_dominators): Do not compute doms or pdoms if the
16467         caller does not request them.  Split up loop to build doms and
16468         pdoms.  Use a worklist to compute doms and pdoms.
16469         * basic-block.h (compute_dominators): Remove prototype.
16470
16471 Sat Nov  6 11:38:39 1999  Richard Henderson  <rth@cygnus.com>
16472
16473         * haifa-sched.c (struct haifa_insn_data, h_i_d): New.
16474         (insn_luid, insn_priority, insn_costs, insn_units): Remove.
16475         (insn_reg_weight, insn_depend, insn_dep_count): Remove.
16476         (insn_blockage, insn_ref_count, line_note, insn_tick): Remove.
16477         (cant_move, fed_by_spec_load, is_load_insn): Remove.
16478         (schedule_region): Remove unused variable.
16479         (schedule_insns): Allocate h_i_d, and not all the separate arrays.
16480
16481 Sat Nov  6 10:00:34 1999  Mark Mitchell  <mark@codesourcery.com>
16482
16483         * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca.
16484         (update_equiv_regs): Likewise.
16485         (block_alloc): Likewise.
16486         * reg-stack.c (reg_to_stack): Likewise.
16487         (convert_regs_2): Likewise.
16488         * reload1.c (reload_as_needed): Likewise.
16489
16490 Sat Nov  6 09:57:59 1999  Mark Mitchell  <mark@codesourcery.com>
16491
16492         * Makefile.in (dbxout.o): Depend on ggc.h.
16493         (dwarf2out.o): Likewise.
16494         (xcoffout.o): Likewise.
16495         * dbxout.c: Include ggc.h.
16496         (dbxout_init): Register lastfile as a root.
16497         * dwarf2out.c: Include ggc.h.
16498         (dwarf2out_line): Register lastfile as a root.
16499         * xcoffout.c: Include ggc.h.
16500         (xcoffout_source_line): Register xcoff_lastfile as a root.
16501
16502 Sat Nov  6 09:52:09 1999  Richard Henderson  <rth@cygnus.com>
16503
16504         * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination.
16505
16506 Sat Nov  6 07:48:59 1999  Catherine Moore  <clm@cygnus.com>
16507
16508         * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already
16509         defined.
16510         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
16511
16512 Fri Nov  5 18:33:39 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16513
16514         * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro.
16515         (EXECUTE_IF_CONFLICT): Likewise.
16516         (ALLOCNO_LIVE_P): Avoid signed division.
16517         (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise.
16518         (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT.
16519         (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET.
16520
16521 Fri Nov  5 12:04:02 1999  Richard Henderson  <rth@cygnus.com>
16522
16523         * haifa-sched.c (schedule_block): Don't crash if there's no
16524         next insn for an interblock movement.
16525         (add_branch_dependences): Don't allow clobber insns to move either.
16526
16527 Fri Nov  5 10:18:11 1999  Richard Henderson  <rth@cygnus.com>
16528
16529         * i386.c (split_xf): New.
16530         * i386-protos.h: Declare it.
16531         * i386.md (movxf_1): Add general regs alternatives.
16532         (movxf_1+1): New splitter for same.
16533
16534 Fri Nov  5 12:05:52 1999  Nick Clifton  <nickc@cygnus.com>
16535
16536         * function.c (purge_addressof_1): Add missing return values.
16537
16538 Fri Nov  5 10:07:25 1999  Nick Clifton  <nickc@cygnus.com>
16539
16540         * function.c (is_addressof): New function.  Returns true if
16541         the given piece of RTL is an ADDRESSOF.
16542         (purge_addressof_1): Make boolean.  Return false if the
16543         ADDRESSOFs could not be purged.
16544         (purge_addressof): If ADDRESSOFs could not be purged from the
16545         notes attached to an insn, remove the offending note(s),
16546         unless they are attached to a libcall.
16547
16548 1999-11-05  Andreas Jaeger  <aj@suse.de>
16549
16550         * genoutput.c (null_operand =): Initialize all fields.
16551
16552         * errors.h: Add extern to prototypes.
16553
16554 Fri Nov  5 01:44:09 1999  Jeffrey A Law  (law@cygnus.com)
16555
16556         * configure.in (m68k-next-nextstep4): Handle Openstep 4.2.
16557         * configure: Rebuilt.
16558
16559 Fri Nov  5 01:24:37 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
16560
16561         * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division.
16562         (mirror_conflicts): New function.
16563         (global_alloc): Call it.
16564         (expand_preferences): Remove redundant CONFLICTP test.
16565         (find_reg, dump_conflicts): Likewise.
16566         (prune_preferences): Process conflicts one word at a time.
16567
16568 Fri Nov  5 01:05:21 1999  Richard Henderson <rth@cygnus.com>
16569
16570         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP
16571         instead of an explicit loop.
16572
16573 Thu Nov  4 23:07:14 1999  Jim Wilson  <wilson@cygnus.com>
16574
16575         * cse.c (cse_insn): Revert Oct 31 change.  When computing src_elt,
16576         if REG_RETVAL check succeeds, then put classp in src_elt.
16577
16578 Thu Nov  4 23:48:14 1999  Jeffrey A Law  (law@cygnus.com)
16579
16580         * function.c (pad_to_arg_alignment): Only update argument_pad
16581         if the argument's alignment is greater than STACK_BOUNDARY.
16582
16583 Thu Nov  4 16:44:53 1999  Richard Henderson  <rth@cygnus.com>
16584
16585         * bitmap.h (BITMAP_XFREE): New.
16586         * flow.c (life_analysis): Use it.
16587         (life_analysis_1): Free blocks.
16588
16589         * combine.c (undo_commit): New.
16590         (try_combine): Use it.  Don't zap undobuf.undos.
16591         (combine_instructions): Don't zap undobuf.undos; free the
16592         undobuf.frees list.
16593
16594         * local-alloc.c (local_alloc): Free qty_phys_num_sugg.
16595
16596         * stmt.c (cost_table_): New.
16597         (estimate_case_costs): Use it instead of xmalloc.
16598
16599         * toplev.c (compile_file): Reuse dumpname memory instead
16600         of strdup'ing it.
16601
16602 Thu Nov  4 16:36:44 1999  Richard Henderson  <rth@cygnus.com>
16603
16604         * reg-stack.c (convert_regs_1): Initialize target_stack->top
16605         after verifying an EH edge.
16606
16607         * haifa-sched.c (init_rgn_data_dependences): Correctly
16608         size bb_pending_lists_length when zeroing.
16609
16610 Thu Nov  4 16:36:36 1999  Richard Henderson  <rth@cygnus.com>
16611
16612         * function.c (diddle_return_value): New.
16613         (expand_function_end): Use it.
16614         * stmt.c (expand_null_return): Likewise.
16615         (expand_value_return): Likewise.
16616
16617         * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level.
16618
16619         * reload1.c (reload): Don't remove return value clobbers.
16620
16621 Thu Nov  4 13:33:46 1999  Richard Henderson  <rth@cygnus.com>
16622
16623         * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal.
16624
16625 Thu Nov  4 12:49:52 1999  Richard Henderson  <rth@cygnus.com>
16626
16627         * cse.c (cse_main): Use xmalloc, not alloca.
16628         (cse_basic_block): Likewise.
16629         * local-alloc.c (local_alloc): Likewise.
16630
16631 Thu Nov  4 14:22:12 1999  David Billinghurst  <David.Billinghurst@riotinto.com.au>
16632                           Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16633
16634         * rtl.c: Include toplev.h.
16635         (fatal): Remove declaration.
16636
16637 Thu Nov  4 06:39:47 1999  Jeffrey A Law  (law@cygnus.com)
16638
16639         * haifa-sched.c (schedule_block): Fix thinko.
16640
16641 1999-11-03  James McKelvey <mckelvey@fafnir.com>
16642
16643         * fixinc/fixincl.c(create_file):  Allow for systems that do not have
16644         S_IR* defined values
16645
16646 1999-11-03  Philippe De Muyter  <phdm@macqel.be>
16647
16648         * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer;
16649         call `malloc' instead.
16650
16651 Wed Nov  3 23:05:14 1999  Mark Mitchell  <mark@codesourcery.com>
16652
16653         * flags.h (flag_renumber_insns): Declare.
16654         * emit-rtl.c (renumber_insns): Check flag_renumber_insns.  Print
16655         renumbering table.
16656         * rtl.h (renumber_insns): Change prototype.
16657         * toplev.c (flag_renumber_insns): Define.
16658         (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns.
16659
16660 Wed Nov  3 15:11:27 1999  David S. Miller  <davem@redhat.com>
16661
16662         * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts
16663         and fpsqrtd.  Use them and create fdiv function unit to more
16664         accurately represent fpu sqrt pipeline semantics on UltraSparc.
16665         * config/sparc/sparc.c: Account for fpsqrt{s,d} changes.
16666
16667 Wed Nov  3 15:11:27 1999  Matteo Frigo <athena@fftw.org>
16668
16669         * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to
16670         3 on UltraSparc.
16671         * config/sparc/sparc.c (ultra_schedule_insn): Insert launched
16672         insn into ready list, do not use just a raw swap.
16673
16674 Wed Nov  3 14:51:59 1999  Mark P. Mitchell  <mark@codesourcery.com>
16675
16676         * rtl.h (renumber_insns): New function.
16677         (remove_unnecessary_notes): Likewise.
16678         * emit-rtl.c (renumber_insns): Define.
16679         (remove_unncessary_notes): Likewise.
16680         * toplev.c (rest_of_compilation): Remove dead code.
16681         Use renumber_insns and remove_unncessary_notes.
16682
16683         * gcse.c (struct null_pointer_info): New type.
16684         (get_bitmap_width): New function.
16685         (current_block): Remove.
16686         (nonnull_local): Likewise.
16687         (nonnull_killed): Likewise.
16688         (invalidate_nonnull_info): Take a null_pointer_info as input.
16689         (delete_null_pointer_checks_1): New function.
16690         (delete_null_pointer_checks): Use it.
16691
16692         * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc.
16693         (split_edges): Likewise.
16694         (schedule_block): Likewise.
16695         (compute_block_backward_dependencies): Likewise.
16696         (schedule_region): Likewise.
16697         (schedule_insns): Likewise.
16698
16699 Wed Nov  3 15:40:23 1999  Catherine Moore  <clm@cygnus.com>
16700
16701         * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default.
16702         * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME.
16703         * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME.
16704         * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME.
16705         * jump.c (delete_unreferenced_labels): Don't delete if
16706         LABEL_ALTERNATE_NAME is set.
16707         * print-rtl.c (print_rtx): Dump alternate name.
16708         * rtl.def (CODE_LABEL): Change format to "iuuis00s".
16709         * rtl.h (LABEL_ALTERNATE_NAME): Define.
16710         * rtl.texi (LABEL_ALTERNATE_NAME): Document.
16711         * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document.
16712
16713 Wed Nov  3 15:39:19 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16714
16715         * fix-header.c (recognized_extern, recognized_function): Constify
16716         a char*.
16717
16718         * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'.
16719         (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
16720         (compute_available): Remove unused variable `last'.
16721         (compute_nearerout): Remove unused variable `temp_bitmap'.
16722         (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED.
16723         Remove unused variable `x'.
16724
16725         * scan.h (recognized_function, recognized_extern): Constify a
16726         char*.
16727
16728         * simplify-rtx.c (simplify_rtx): Remove unused variable `new'.
16729
16730 Wed Nov  3 10:40:53 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
16731
16732         * varasm.c (decode_rtx_const): Use XSTR to access the string
16733         of a SYMBOL_REF.
16734
16735 Wed Nov  3 10:10:58 1999  Richard Henderson  <rth@cygnus.com>
16736
16737         * c-decl.c (duplicate_decls): Copy DECL_MODE too.
16738
16739 Wed Nov  3 12:12:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16740
16741         * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes.
16742
16743 Wed Nov  3 03:26:28 1999  Jeffrey A Law  (law@cygnus.com)
16744
16745         * pa.c (ireg_operand): New function.
16746         * pa.h (PREDICATE_CODES): Handle ireg_operand.
16747         * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
16748         Fix out of date comment.
16749
16750         * pa.md (negdi2): Turn into expander + anonymous pattern.
16751
16752         * reload.c (find_reloads): Fix typos in recent change.
16753
16754         * dwarf2out.c: Do not include ctype.h.
16755
16756 Tue Nov  2 21:53:44 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16757
16758         * regclass.c (record_reg_classes): Always use may_move_cost when
16759         seeing how operand fits with various register classes.
16760
16761 Tue Nov  2 15:38:17 1999  Richard Henderson  <rth@cygnus.com>
16762
16763         * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes.
16764         * toplev.c: Revert Nov 1 13:22 change.
16765
16766 Tue Nov  2 14:21:37 1999  Jason Eckhardt  <jle@cygnus.com>
16767
16768         * config/pa/pa.md (height reduction patterns): Add checks for
16769         overlapping operands to avoid semantic-destroying splits for
16770         height reduction patterns.
16771
16772 Tue Nov  2 15:27:31 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
16773
16774         * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should
16775         have been an hyphen, fixed.
16776         * configure: Rebuilt.
16777
16778 Tue Nov  2 17:04:36 1999  Nick Clifton  <nickc@cygnus.com>
16779
16780         * config/arm/tpe.h: Add prototypes for exported functions.
16781         * config/arm/pe.c: Fix compile time warnings.
16782         * config/arm/semi.h: Fix compile time warnings.
16783         * config/arm/arm.c: Fix compile time warnings.
16784         * config/arm/arm.h: Fix compile time warnings.
16785         * config/arm/arm.md: Fix compile time warnings.
16786         * config/arm/thumb.c: Fix compile time warnings.
16787         * config/arm/thumb.h: Fix compile time warnings.
16788         * config/arm/thumb.md: Fix compile time warnings.
16789
16790 Tue Nov  2 04:10:24 1999  Jan Hubicka  <hubicka@freesoft.cz>
16791
16792         * jump.c (jump_optimize_1): Swap the incscc and the conditional mode
16793         detection code
16794
16795         * unroll.c (unroll_loop): Remove LOOP notes when loop is
16796         completely unrolled.
16797
16798 Tue Nov  2 16:57:22 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
16799
16800         * cse.c (simplify_plus_minus, check_fold_const): Delete declarations.
16801
16802 Tue Nov  2 09:43:00 1999  Catherine Moore  <clm@cygnus.com>
16803
16804         * Makefile.in (genattrtab): Don't use (HOST_RTLANAL).
16805         * rtl.h (rtx_equal_p): Move prototype.
16806         * rtl.c (rtx_equal_function_value_matters): Move from
16807         rtlanal.c
16808         (rtx_equal_p): Likewise.
16809         * rtlanal.c (rtx_equal_function_value_matters): Delete.
16810         (rtx_equal_p): Likewise.
16811
16812 Mon Nov  1 23:21:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
16813
16814         * libgcc2.c (__do_global_dtors): Only do EH frame stuff if
16815         ! HAS_INIT_SECTION.
16816
16817 Mon Nov  1 23:37:38 1999  Jeffrey A Law  (law@cygnus.com)
16818
16819         * gcc.1 (PA options): Remove obsolete -mshared-libs options.
16820
16821         * pa.h (ADDR_VEC_ALIGN): Define.
16822
16823         * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT
16824         notes when presented with "if (foo) break; end_of_loop" and
16825         the break sequence gets moved out of the loop.
16826
16827         * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc.
16828         Remove explicit zero initializations of entries within MAP.
16829
16830 Mon Nov  1 18:09:14 1999  Richard Henderson  <rth@cygnus.com>
16831
16832         * reg-stack.c (convert_regs_1): Handle EH edges specially.
16833
16834 Mon Nov  1 15:41:01 1999  Mark P. Mitchell  <mark@codesourcery.com>
16835
16836         * bitmap.h (BITMAP_XMALLOC): New macro.
16837         * flow.c (CLEAN_ALLOCA): Remove.
16838         (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca.
16839         (life_analysis): Likewise.
16840         (update_life_info): Don't use CLEAN_ALLOCA.
16841         (life_analysis_1): Use xmalloc/xcalloc instead of alloca.
16842         (calculate_global_regs_live): Likewise.
16843         (print_rtl_with_bb): Likewise.
16844         (verify_flow_info): Likewise.
16845         * global.c (global_alloc): Likewise.
16846         (global_conflicts): Likewise.
16847         * integrate.c (save_for_inline_nocopy): Likewise.
16848         (expand_inline_function): Likewise.
16849         * jump.c (jump_optimize_1): Likewise.
16850         (duplicate_loop_exit_test): Likewise.
16851         (thread_jumps): Likewise.
16852         * loop.c (loop_optimize): Likewise.
16853         (combine_givs): Likewise.
16854         (recombine_givs): Likewise.
16855         * reorg.c (dbr_schedule): Likewise.
16856         * unroll.c (unroll_loop): Likewise.
16857
16858         * combine.c (combine_instructions): Use xmalloc instead of alloca.
16859
16860 Mon Nov  1 13:22:30 1999  Richard Henderson  <rth@cygnus.com>
16861
16862         * toplev.c (rest_of_compilation): Don't optimize the CFG
16863         when rebuilding, just before dbr.
16864
16865 Mon Nov  1 14:35:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16866
16867         * output.h (assemble_end_function, assemble_destructor,
16868         assemble_constructor, assemble_gc_entry, assemble_global,
16869         assemble_label, output_constant_pool) Constify a char*.
16870
16871         * varasm.c (assemble_destructor, assemble_constructor,
16872         assemble_gc_entry, assemble_end_function, assemble_global,
16873         assemble_label, output_constant_pool): Likewise.
16874
16875 Mon Nov  1 14:22:51 1999  Nick Clifton  <nickc@cygnus.com>
16876
16877         * config/arm/thumb.c (thumb_expand_prologue): Add comments
16878         explaining what is goin on in this function.
16879
16880 Mon Nov  1 08:03:15 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16881
16882         * regclass.c (record_reg_classes): In matching case, recompute
16883         costs since the direction of movement is different.
16884
16885 Sun Oct 31 21:59:34 MST 1999  Diego Novillo <dnovillo@cygnus.com>
16886
16887         * resource.c (mark_target_live_regs): For unconditional branches,
16888         the resources found at the branch target should be added to the
16889         resources found so far, not intersected.
16890
16891 Sun Oct 31 15:48:49 1999  Philippe De Muyter  <phdm@macqel.be>
16892
16893         * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for
16894         old cpp's.
16895         * fixinc/fixincl.c (fcntl.h) : Do not include this file twice.
16896         (sys/mman.h): Include this file only if #HAVE_MMAP.
16897         (run_compiles): Initialize `esac_fmt' with one old KR string, not
16898         with automatically concatenated ANSI strings.
16899
16900 Sun Oct 31 23:57:07 1999  Mark Mitchell  <mark@codesourcery.com>
16901
16902         * ggc-page.c (struct page_entry): Remove save_num_free_objects.
16903         (DIV_ROUND_UP): Robustify.
16904         (ggc_recalculate_in_use_p): New function.
16905         (release_pages): Don't inline it.
16906         (ggc_alloc_obj): Don't refuse to allocate objects on pages for
16907         outer contexts.
16908         (ggc_pop_context): Use ggc_recalculate_in_use_p.
16909         (clear_marks): Always save in_use_p.
16910         (sweep_pages): Use ggc_recalculate_in_use_p.
16911         (ggc_page_print_statistics): Avoid signed/unsigned comparisons.
16912         Release pages before counting statistics.
16913
16914 Sun Oct 31 23:42:37 1999  Mark Mitchell  <mark@codesourcery.com>
16915
16916         * toplev.c (rest_of_compilation): Fix thinko in this change:
16917
16918         Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
16919
16920         (rest_of_compilation): If inside an inlined external function,
16921         pretend we are just being declared.
16922
16923 Sun Oct 31 23:03:25 1999  Jeffrey A Law  (law@cygnus.com)
16924
16925         * flow.c (calculate_global_regs_live): Fix thinko.
16926
16927         * integrate.c (expand_inline_function): Fix bugs in previous
16928         change from Oct 28, 1999.
16929
16930 Sun Oct 31 20:27:45 1999  Mark Mitchell  <mark@codesourcery.com>
16931
16932         * stmt.c (expand_value_return): Fix typo in this change:
16933
16934         Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16935         (expand_value_return): Correctly convert VAL when promoting function
16936         return; support RETURN_REG being a PARALLEL.
16937
16938 Sun Oct 31 20:25:42 1999  Mark P. Mitchell  <mark@codesourcery.com>
16939
16940         * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs.
16941
16942 Sun Oct 31 20:42:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16943
16944         * hard-reg-set.h (reg_names): Constify a char*.
16945
16946         * regclass.c  (reg_names): Likewise.
16947
16948         * regs.h (reg_names): Likewise
16949
16950         * a29k/a29k.c (reg_names): Delete declaration.
16951
16952         * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*.
16953
16954         * arc/arc.c (arc_save_restore, arc_output_function_prologue,
16955         arc_output_function_epilogue): Likewise.
16956
16957         * elxsi/elxsi.c (reg_names): Likewise.
16958
16959         * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise.
16960
16961         * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move):
16962         Likewise.
16963
16964         * m88k/m88k.c (output_function_profiler): Likewise.
16965
16966         * sparc/sparc.c (sparc_flat_output_function_prologue,
16967         sparc_flat_output_function_epilogue): Likewise.
16968
16969 Sun Oct 31 13:32:15 CET 1999  Marc Lehmann <pcg@goof.com>
16970
16971         * toplev.c (rest_of_compilation): Seperate the setjmp/vfork clobber
16972         warning from -Wuninitialized and put it under -W.
16973         * function.c (uninitialized_vars_warning): Warn only when the
16974         corresponding flag is set.
16975
16976 Sun Oct 31 01:53:30 1999  Jeffrey A Law  (law@cygnus.com)
16977
16978         * cse.c (cse_insn): If an insn has only a single set, SRC_EQV
16979         is nonzero and the single set does not have an elt, then assign
16980         it an elt.
16981
16982         * simplify-rtx.c: New file.
16983         * Makefile.in (OBJS): Add simplify-rtx.o
16984         (simplify-rtx.o): Add dependencies.
16985         * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes.
16986         * cse.c: Use simplify_gen_binary intead of cse_gen_binary.
16987         (cse_gen_binary, simplify_unary_operation): Delete.
16988         (simplify_binary_operation, simplify_plus_minus): Likewise.
16989         (check_fold_consts, simplify_relation_operation): Likewise.
16990         (simplify_ternary_operation): Likewise.
16991         (delete_trivially_dead_insns): Simplify the contents of the
16992         REG_EQUAL note before trying to substitute it into the source
16993         of the reg-reg copy at the end of a libcall sequence.
16994
16995         * combine.c (combine_simplify_rtx): Renamed from simplify_rtx.  All
16996         references/callers changed.
16997
16998         * mn10200.c (mn10200_va_arg): Force the return value into a
16999         register.
17000
17001         * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro.
17002
17003         * cccp.c (macroexpand): Avoid out of range accesses for omitted
17004         arguments.
17005
17006 Sat Oct 30 22:42:50 1999  Stephen L Moshier <moshier@mediaone.net>
17007
17008         * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant.
17009
17010 Sat Oct 30 22:19:26 1999  Jeffrey A Law  (law@cygnus.com)
17011
17012         * fold-const.c (fold): Fix thinko when optimizing comparisons
17013         against -0.0.
17014
17015 Sat Oct 30 21:32:17 1999  David Starner  <dstarner98@aasaa.ofe.org>
17016
17017         * gcc.texi (Passes): Update front-end files to their current
17018         location.
17019
17020 Sat Oct 30 14:41:40 1999  Richard Henderson  <rth@cygnus.com>
17021
17022         * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class.
17023         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
17024         (PREDICATE_CODES): Add addition_operation.
17025         * alpha-protos.h (addition_operation): Declare.
17026         (secondary_reload_class): Likewise.
17027         * alpha.c (addition_operation): New.
17028         (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS.
17029         * alpha.md (adddi3): Turn into expander.
17030         (*lda, *adddi_2): New.
17031         (movsf, movdf patterns): Don't preference integer regs.
17032         (movsi, movdi patterns): Don't preference fp regs.
17033
17034 Sat Oct 30 14:38:22 1999  Richard Henderson  <rth@cygnus.com>
17035
17036         * genrecog.c (write_switch): Check for duplicate CODE cases.
17037
17038 Sat Oct 30 14:31:48 1999  Richard Henderson  <rth@cygnus.com>
17039
17040         * ggc-common.c: Update pre-function commentary.
17041         * ggc-page.c: Likewise.
17042         (poison): Remove.
17043         (poison_pages): Use memset directly.
17044         (ggc_alloc_obj): Likewise.  Use a different pattern than poison_pages.
17045         (ggc_collect): Poison before sweeping.
17046         * ggc-simple.c: Update pre-function commentary.
17047         (ggc_alloc_obj): Poison non-zeroed memory.
17048
17049 Sat Oct 30 14:28:52 1999  Mark Mitchell  <mark@codesourcery.com>
17050
17051         * ggc-common.c (ggc_print_statistics): Make arguments to fprintf
17052         match format string, even on 64-bit hosts.
17053         * gcc-page.c (ggc_page_print_statistics): Likewise.
17054
17055 Sat Oct 30 14:38:04 1999  Catherine Moore  <clm@cygnus.com>
17056
17057         * config/i386/i386.c (ix86_cpu): Revert last patch.
17058         * config/i386/i386.h (ix86_cpu): Ditto.
17059
17060 Fri Oct 29 17:00:42 1999  Jim Wilson  <wilson@cygnus.com>
17061
17062         * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from
17063         TYPE_SIZE, convert type of result to sizetype.
17064
17065 Fri Oct 29 14:34:17 1999  Richard Henderson  <rth@cygnus.com>
17066
17067         * flow.c (count_or_remove_death_notes): Equate NULL with the
17068         universal set.
17069
17070         * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change.
17071         * toplev.c (rest_of_compilation): Rebuild CFG immediately before
17072         dbr_schedule.
17073
17074         * i386.c (pic_label_no): Delete.
17075         (ix86_attr_length_default): Don't use single_set to peek
17076         inside a parallel.
17077
17078         * recog.c (peephole2_optimize): Allow recog_next_insn to index
17079         the first insn after bb->end.
17080         * i386.md (push mem peeps): Scratch is live after evaluation
17081         of the memory.
17082         (cmp mem peep): Similarly.
17083
17084 Fri Oct 29 11:50:11 1999  Catherine Moore  <clm@cygnus.com>
17085
17086         * calls.c (emit_library_call_value): Fix declaration of alignment_pad.
17087         * function.c (pad_to_arg_alignment): Add missing braces.
17088
17089 Fri Oct 29 13:53:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17090
17091         * alpha/alpha-protos.h (literal_section): Add prototype.
17092         (alpha_need_linkage, alpha_start_function,alpha_end_function):
17093         Constify a char*.
17094
17095         * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add
17096         prototype.
17097         (alpha_start_function, alpha_end_function, float_strings,
17098         alpha_need_linkage): Constify a char*
17099
17100         * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise.
17101
17102         * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise.
17103
17104         * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise.
17105
17106         * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise.
17107
17108 Fri Oct 29 13:49:39 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17109
17110         * flow.c (debug_flow_info): Add prototype.
17111
17112         * gcc.c (main): Likewise.
17113
17114         * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work):
17115         Likewise.
17116
17117         * reload1.c (failed_reload, set_reload_reg): Likewise.
17118
17119         * mips-tfile.c (main): Likewise.
17120         (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark
17121         with ATTRIBUTE_NORETURN.
17122
17123 Fri Oct 29 18:16:03 1999  Andrew Haley  <aph@cygnus.com>
17124
17125         * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if
17126         DECL is not a memory ref.
17127
17128 Fri Oct 29 09:05:34 1999  Catherine Moore  <clm@cygnus.com>
17129
17130         * config/i386/i386.h (ix86_cpu): Remove extern attribute.
17131         * config/i386/i386.c (ix86_cpu): Add extern attribute.
17132
17133 Fri Oct 29 16:30:04 1999  Andrew Haley  <aph@cygnus.com>
17134
17135         * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN.
17136         * config/mips/elf64.h: ditto.
17137
17138 Fri Oct 29 08:03:57 1999  Catherine Moore  <clm@cygnus.com>
17139
17140         * expr.c (emit_push_insn): New argument alignment_pad.
17141         Update all callers.  Adjust stack pointer based on alignment pad.
17142         * function.c (pad_to_arg_alignment):  New argument alignment_pad.
17143         Update all callers.  Track alignment_pad if boundary > PARM_BOUNDARY.
17144         (locate_and_pad_parm): New argument alignment_pad.  Update all
17145         callers.
17146         * expr.h (emit_push_insn): Update prototype.
17147         (locate_and_pad_parm): Update prototype.
17148         * calls.c (arg_data):  Add new field alignment_pad.
17149         (initialize_argument_information): Initialize alignment_pad.
17150
17151 Fri Oct 29 02:51:35 1999  Mark Mitchell  <mark@codesourcery.com>
17152
17153         * except.c (free_eh_nesting_info): Free the info itself.
17154         * function.c (free_after_compilation): Don't free NULL.
17155         * gcse.c (alloc_pre_mem): Free the temp_bitmap, too.
17156         (pre_edge_insert): Free inserted.
17157         * stmt.c (free_stmt_status): Don't free NULL.
17158
17159 Fri Oct 29 15:25:07 1999  Arnaud Charlet  <charlet@ACT-Europe.FR>
17160
17161         * gcov.c (DIR_SEPARATOR): Provide default.
17162         (output_data): Add test for MS-DOS format absolute filename.
17163         (fancy_abort): Correct program name.
17164         (open_files): Open all files in binary mode.
17165         * libgcc2.c (__bb_exit_func): Likewise.
17166
17167         * profile.c (init_branch_prob): Specify binary when opening files.
17168
17169         * flags.h (flag_unwind_tables): New decl.
17170         * toplev.c (flag_unwind_table): New definition.
17171         (f_options): Add -funwind-tables.
17172         (decode_g_option): Clarify warning when unknown -g option is given.
17173         (rest_of_compilation): If inside an inlined external function,
17174         pretend we are just being declared.
17175
17176         * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables.
17177         (dwarf2out_frame_finish): Likewise.
17178
17179 Fri Oct 29 07:44:26 1999  Vasco Pedro  <vp@di.fct.unl.pt>
17180
17181         * fold-const.c (merge_ranges): If not in0, but in1, handle
17182         upper bounds equal like subset case.
17183
17184 Thu Oct 28 19:22:24 1999  Douglas Rupp <rupp@gnat.com>
17185
17186         * dbxout.c (dbxout_parms): Generate a second stabs line for parameters
17187         passed in a register but moved to the stack.
17188
17189 Thu Oct 28 19:12:57 1999  Sam Tardieu  <tardieu@act-europe.fr>
17190
17191         * gcc.c (pass_exit_codes, greatest_status): New variables.
17192         (struct option_map): Add entry for "--pass-exit-codes".
17193         (execute): Update greatest_status if error.
17194         (display_help): Add documentation for -pass-exit-codes.
17195         (process_command): Handle -pass-exit-codes.
17196         (main): Look at pass_exit_codes and greatest_status on call to exit.
17197
17198 Thu Oct 28 18:06:50 1999  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17199
17200         * reload.c (find_reloads): Refine test for no input reload
17201         case to not includes reloads emitted after insn.
17202
17203         * function.c (find_temp_slots_from_address): Handle sum involving
17204         a register that points to a temp slot.
17205         (update_temp_slot_address): Make recursive call if both old and
17206         new are PLUS with a common operand.
17207         * calls.c (expand_call): Mark temp slot for result as having
17208         address taken.
17209
17210         * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case.
17211
17212         * gcc.c (process_command): Add standard_exec_prefix with "GCC"
17213         component as well as "BINUTILS".
17214
17215         * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS.
17216         * integrate.c (copy_rtx_and_substitute): Likewise.
17217         (expand_inline_function, integrate_parm_decls, integrate_decl_tree):
17218         All callers changed.
17219         * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise.
17220
17221         * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use
17222         gdb extensions, write size of type; also be more consistent
17223         in using references when this is a subtype.
17224
17225         * pa.md (extv, extzv, insv): Use define_expand to reject constant
17226         that is out of range.
17227
17228         * loop.c (unknown_constant_address_altered): New variable.
17229         (prescan_loop): Initialize it.
17230         (note_addr_stored): Set it for RTX_UNCHANGING_P MEM.
17231         (invariant_p, case MEM): Remove handling for volatile and readonly;
17232         check new variable if readonly.
17233         (check_dbra_loop): Chdeck unknown_constant_address_altered.
17234
17235         * cse.c (canon_hash, case MEM): Do not record if BLKmode.
17236         (addr_affects_sp_p): Removed from note_mem_written and only
17237         define #ifdef AUTO_INC_DEC.
17238
17239         * alpha.c (input_operand, case ADDRESSOF): Treat as REG.
17240
17241         * regclass.c (record_reg_classes): Properly handle register move
17242         directions.
17243
17244         * varasm.c (initializer_constant_valid_p, case MINUS_EXPR):
17245         Don't think valid if both operands are invalid.
17246         (struct constant_descriptor): New field RTL.
17247         (mark_const_hash_entry): Mark it.
17248         (record_constant{,_rtx}): Initialize it.
17249         (output_constant_def): Allocate RTL in permanent obstack and
17250         save in table.
17251         ({record,compare}_constant_1): Modes must match for
17252         CONSTRUCTOR of ARRAY_TYPE.
17253
17254         * c-common.h (initializer_constant_valid_p): Delete decl from here.
17255         * output.h (initializer_constant_valid_p): Move decl to here.
17256         * c-common.c (initializer_constant_valid_p): Delete function from here.
17257         * varasm.c (initializer_constant_valid_p): Move function to here.
17258
17259         * tree.h (STRIP_SIGN_NOPS): New macro.
17260         * fold-const.c (optimize_minmax_comparison): New function.
17261         (invert_truthvalue, case WITH_RECORD_EXPR): New case.
17262         (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS.
17263         (fold, case EQ_EXPR): Call optimize_minmax_comparison and add
17264         cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and
17265         widening conversions.
17266         (fold, case LE_EXPR): Rework changing unsigned to signed comparisons
17267         to look at size of mode, not precision of type; also add missing cases.
17268         (optimize_bit_field_compare, decode_field_reference): Don't try to
17269         optimize COMPONENT_REF of a PLACEHOLDER_EXPR.
17270
17271         * dwarf2out.c (ctype.h): Include.
17272         (dwarf2out_set_demangle_name_func): New function.
17273         (size_of_line_info): Deleted.
17274         (output_line_info): Compute size of line info table from difference
17275         of labels.
17276         (base_type_die, add_name_attribute): Call demangle function, if any.
17277         (field_byte_offset): Use bits per word for variable length fields.
17278         (gen_array_type_die): Add array name.
17279         (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline.
17280         (dwarf2out_add_library_unit_info): New function.
17281
17282         * explow.c (set_stack_check_libfunc): New function.
17283         (stack_check_libfunc): New static variable.
17284         (probe_stack_range): Allow front-end to set up a libfunc to call.
17285
17286         * combine.c (simplify_comparison): When making comparison in wider
17287         mode, check for having commuted an AND and a SUBREG.
17288         (contains_muldiv): New function.
17289         (try_combine): Call it when dividing a PARALLEL.
17290         (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart.
17291         (simplify_comparison, case ASHIFTRT): Recognize sign-extension of
17292         a PLUS.
17293         (record_value_for_reg): If TEM is a binary operation with two CLOBBERs,
17294         use one of the CLOBBERs instead.
17295         (if_then_else_cond): If comparing against zero, just return thing
17296         being compared.
17297
17298         * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x).
17299         Don't generate shifts and subtract if have conditional arithmetic.
17300
17301         * rtl.h (delete_barrier): New declaration.
17302         * jump.c (jump_optimize): Set up to handle conditional call.
17303         In conditional arithmetic case, handle CALL_INSN followed by a BARRIER.
17304         (delete_barrier): New function.
17305
17306         * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode.
17307
17308         * recog.c (nonmemory_operand): Accept ADDRESSOF.
17309
17310         * tree.c (build_type_attribute_variant): Push to obstack of
17311         ttype around type_hash_canon call.
17312
17313         * expr.c (placeholder_list): Move decl to file scope.
17314         (expand_expr): Don't force access to volatile just because its
17315         address is taken.
17316         If ignoring reference operations, just expand the operands.
17317         (expand_expr, case COMPONENT_REF): Propagate
17318         EXPAND_CONST_ADDRESS to recursive call when expanding inner.
17319         Refine test for using bitfield operations vs pointer punning.
17320         (expand_expr, case CONVERT_EXPR): If converting to
17321         BLKmode UNION_TYPE from BLKmode, just return inner object.
17322         Use proper mode in store_field call.
17323         Properly set sizes of object to store and total size in store_field
17324         call for convert to union.
17325         (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in
17326         memory (like for ADDR_EXPR).  Also, don't put constant in register if
17327         we'll want it in memory.
17328         (readonly_fields_p): New function.
17329         (expand_expr, case INDIRECT_REF): Call it if LHS.
17330         (expand_assignment): Handle a RESULT_DECL where
17331         DECL_RTL is a PARALLEL.
17332         (do_jump, case WITH_RECORD_EXPR): New case.
17333         (get_inner_reference): Always go inside a CONVERT_EXPR
17334         and NOP_EXPR if both modes are the same.
17335         (store_field): Use bitfield operations if size of bitsize is not same
17336         as size of RHS's type.
17337         Check for bitpos not a multiple of alignment in BLKmode case.
17338         Do block move in largest possible alignment.
17339         (store_constructor): Set BITSIZE to -1 for variable size and properly
17340         in case of array of BLKmode.
17341         (expand_expr_unaligned): New function.
17342         (do_compare_and_jump): Call it.
17343
17344         * mips/iris5.h (SWITCHES_NEED_SPACES): New macro.
17345         * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES
17346         does not include 'o'.
17347
17348         * function.c (instantiate_virtual_regs_1, case SET): Handle case where
17349         both SET_DEST and SET_SRC reference a virtual register.
17350         (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG.
17351
17352         * integrate.c (expand_inline_function): Handle case of setting
17353         virtual stack vars register (from built in setjmp); when parameter
17354         lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early.
17355         (subst_constant): Add new parm, MEMONLY.
17356         (expand_inline_function, integrate_parm_decls): Pass new parm.
17357         (integrate_decl_tree): Likewise.
17358         (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P.
17359         (try_constants): Call subst_constants twice, with MEMONLY 0 and 1.
17360         (copy_rtx_and_substitute, case SET): Add explicit calls to
17361         copy_rtx_and_substitute for both sides.
17362
17363         * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for
17364         constraints.
17365         (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for
17366         within INDEX_TYPE, instead of before.
17367         (fixup_gotos): Use f->target_rtl, not the next insn,
17368         since latter may be from a later fixup.
17369         (expand_value_return): Correctly convert VAL when promoting function
17370         return; support RETURN_REG being a PARALLEL.
17371         (expand_return): When checking for result in regs and having
17372         cleanup, consider PARALLEL in DECL_RTL as being in regs.
17373
17374 1999-10-28 21:27 -0700  Zack Weinberg  <zack@bitmover.com>
17375
17376         * cpplib.h (struct cpp_buffer: fname, nominal_fname,
17377         last_nominal_fname): Mark const.
17378         (struct include_hash: name, nshort, control_macro): Mark
17379         const.
17380         (struct macrodef: symnam): Mark const.
17381         (struct if_stack: fname): Mark const.
17382         (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete.
17383         (IStable): New character-syntax array which encompasses all
17384         the old is_foo arrays.
17385         (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace,
17386         is_space): New macros for interrogating IStable.
17387         (check_macro_name): Kill last argument.  All callers changed.
17388
17389         * cppinit.c (initialize_char_syntax): Delete.
17390         (is_idchar, is_idstart, is_hor_space, is_space,
17391         trigraph_table): Delete.
17392         (IStable): New.  Initialize with clever macros to avoid
17393         information duplication.
17394         (builtin_array): Table of builtins to get rid of explicit list
17395         in initialize_builtins.
17396         (initialize_builtins): Use builtins_array.
17397         (cpp_start_read): Call init_IStable, and set IStable['$'] if
17398         opts->dollars_in_ident.
17399
17400         * cppexp.c: Change all refs to is_xyz[] arrays to use new
17401         is_xyz() macros.
17402         (cpp_parse_expr): Avoid 'format string is not constant'
17403         warning. Use ISGRAPH to identify printable chars.
17404         * cppfiles.c: Change all refs to is_xyz[] arrays to use new
17405         is_xyz() macros.
17406         (read_and_prescan): Map trigraphs to chars with open-coded
17407         if-else-if-... sequence, not a lookup table.
17408         * cpphash.c: Change all refs to is_xyz[] arrays to use new
17409         is_xyz() macros.
17410         * cpplib.c: Change all refs to is_xyz[] arrays to use new
17411         is_xyz() macros.  Kill SKIP_ALL_WHITE_SPACE (unused).
17412         (check_macro_name): Remove ability to report an invalid
17413         assertion name, which is never used.
17414         (do_line): Constify a couple of char *'s.
17415         * cppmain.c (main): Call cpp_cleanup before returning.
17416
17417 Thu Oct 28 21:16:35 1999  Mark Mitchell  <mark@codesourcery.com>
17418
17419         * ggc.h (struct ggc_statistics): New type.
17420         (ggc_get_size): New function.
17421         (ggc_print_statistics): Likewise.
17422         * ggc-common.c (ggc_stats): New variable.
17423         (ggc_mark_rtx_children): Keep statistics.
17424         (ggc_mark_tree_children): Likewise.
17425         (ggc_print_statistics): New function.
17426         * ggc-page.c (struct globals): Add bytes_mapped field.
17427         (alloc_anon): Update it.
17428         (release_pages): Likewise.
17429         (ggc_get_size): New function.
17430         (ggc_page_print_statistics): New function.
17431         * ggc-simple.c (ggc_get_size): New function.
17432
17433 Fri Oct 29 06:32:44 1999  Geoffrey Keating  <geoffk@cygnus.com>
17434
17435         * flow.c (propagate_block): When the last reference to a label
17436         before an ADDR_VEC is deleted because the reference is a dead
17437         store, delete the ADDR_VEC.
17438
17439 Thu Oct 28 12:28:50 1999  Richard Henderson  <rth@cygnus.com>
17440
17441         * resource.c (find_free_register): Don't use the frame pointer
17442         if frame_pointer_needed.
17443
17444 Thu Oct 28 10:02:00 1999  Jim Wilson  <wilson@cygnus.com>
17445
17446         * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg.
17447         (function_arg_pass_by_reference): Check for a NULL pointer in cum.
17448
17449         * config/i960/i960.c (i960_va_start): New locals base, num.
17450         Use INDIRECT_REF instead of ARRAY_REF on valist.
17451         (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist.
17452
17453 Thu Oct 28 09:45:48 1999  Mark Mitchell  <mark@codesourcery.com>
17454
17455         * gcse.c (delete_null_pointer_checks): Fix typo in previous change.
17456
17457 Thu Oct 28 03:37:50 1999  Peter Gerwinski <peter@gerwinski.de>
17458
17459         * tree.def (PLACEHOLDER_EXPR): Update comments.
17460
17461 Thu Oct 28 06:47:32 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17462
17463         * c-common.c (check_format_info): Avoid non-literal format string
17464         warnings when `first_arg_num' is zero.
17465
17466 Thu Oct 28 12:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17467
17468         * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s.
17469
17470 Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
17471
17472         * arm.md (casesi_insn): Add a clobber of the condition code
17473         register.
17474
17475 Mon Oct 18 21:16:06 1999  Fred Fish  <fnf@be.com>
17476
17477         * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is
17478         used by both cc1 and cc1plus.
17479
17480 Thu Oct 28 10:00:48 1999  Nick Clifton  <nickc@cygnus.com>
17481
17482         * config/arm/arm.c: Initialise arm_structure_size_boundary to
17483         DEFAULT_STRUCTURE_SIZE_BOUNDARY.
17484         * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define
17485         to the value 32 if it has not already been defined.
17486         * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY):
17487         Override definition in arm.h with a value of 8.
17488
17489 Thu Oct 28 03:12:02 1999  David Starner  <dstarner98@aasaa.ofe.org>
17490
17491         * c-pragma.c (push_alignment): Don't check the return value
17492         of xmalloc.
17493
17494 Thu Oct 28 03:08:38 1999  Matteo Frigo <athena@fftw.org>
17495
17496         * sparc.h (ADJUST_COST): Fix thinko.
17497
17498 Thu Oct 28 02:44:03 1999  Glen Nakamura  <glen.nakamura@usa.net>
17499
17500         * cccp.c (rescan): Fixed obp pointer handling around call to
17501         check_expand subroutine.
17502
17503 Thu Oct 28 02:15:22 1999  Jeffrey A Law  (law@cygnus.com)
17504
17505         * gcse.c (delete_null_pointer_checks): Only record non-null info
17506         for pseudos when examining stores.
17507
17508         * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add
17509         splitters for these patterns.  Use "#" for output templates.
17510         (addsi3_carryin_shift): New pattern.
17511
17512 Thu Oct 28 10:20:02 1999  Geoffrey Keating  <geoffk@cygnus.com>
17513
17514         * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG
17515         of the function return register into a plain REG until
17516         after function inlining is done.
17517
17518 Wed Oct 27 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
17519
17520         * jump.c (jump_optimize_1): If we did cross-jumping, and
17521         the data will matter, rebuild the CFG.
17522         * reg-stack.c (reg_to_stack): Only (re)build the CFG if
17523         not optimizing.  Don't run shorten_branches.
17524         * toplev.c (rest_of_compilation): Run shorten_branches after
17525         reg_to_stack.
17526
17527 Wed Oct 27 12:33:40 1999  Mark Mitchell  <mark@codesourcery.com>
17528
17529         * rtl.h (note_stores): Add additional paramter.
17530         * rtlanal.c (reg_set_p_1): Take additional paramter.
17531         (reg_set_last_1): Likewise.
17532         (reg_set_p): Adjust call to note_stores.
17533         (reg_set_last): Likewise.
17534         (note_stores): Pass data parameter to worker function.
17535         * alias.c (record_set): Take additional parameter.
17536         (init_alias_analysis): Pass it.
17537         * caller-save.c (mark_set_regs): Take additional parameter.
17538         (save_call_clobbered_regs): Pass NULL to note_stores.
17539         * combine.c (set_nonzero_bits_and_sign_copies): Take additional
17540         parameter.
17541         (record_dead_and_set_regs_1): Likewise.
17542         (reg_dead_at_p_1): Likewise.
17543         (combine_instructions): Adjust calls to note_stores.
17544         (try_combine): Likewise.
17545         (record_dead_insn): Remove.
17546         (record_dead_and_set_regs): Adjust calls to note_stores.
17547         (reg_dead_at_p): Likewise.
17548         * cse.c (invalidate_skipped_set): Take additional parameter.
17549         (cse_check_loop_start): Likewise.
17550         (cse_check_loop_start_value): Remove.
17551         (cse_set_around_loop): Adjust calls to note_stores.
17552         * flow.c (notice_stack_pointer_modification): Take additional
17553         parameter.  Remove duplicate declaration.
17554         (record_volatile_insns): Adjust calls to note_stores.
17555         * gcse.c (record_set_info): Take additional parameter.
17556         (record_last_set_info): Likewise.
17557         (invalidate_nonnull_info): Likewise.
17558         (record_set_insn): Remove.
17559         (compute_sets): Adjust calls to note_stores.
17560         (last_set_insn): Remove.
17561         (compute_hash_table): Adjust calls to note_stores.
17562         (insert_insn_end_bb): Likewise.
17563         (delete_null_pointer_checks): Likewise.
17564         * global.c (mark_reg_store): Take additional parameter.
17565         (mark_reg_clobber): Likewise.
17566         (reg_becomes_live): Likewise.
17567         (global_conflicts): Adjust calls to note_stores.
17568         (build_insn_chain): Likewise.
17569         * integrate.c (note_modified_parmregs): Take additional parameter.
17570         (mark_stores): Likewise.  Make it static.
17571         (save_for_inline_nocopy): Adjust calls to note_stores.
17572         (try_constants): Likewise.
17573         * integrate.h (mark_stores): Remove declaration.
17574         * jump.c (mark_modified_reg): Take additional parameter.
17575         (thread_jumps): Adjust calls to note_stores.
17576         * local-alloc.c (validate_equiv_mem_from_store): Take additional
17577         parameter.
17578         (no_equiv): Likewise.
17579         (reg_is_set): Likewise.
17580         (validate_equiv_mem): Adjust calls to note_stores.
17581         (update_equiv_regs): Likewise.
17582         (block_alloc): Likewise.
17583         * loop.c (note_set_pseudo_multiple_uses_retval): Remove.
17584         (note_addr_stored): Take additional parameter.
17585         (note_set_pseudo_multiple_uses): Likewise.
17586         (record_initial): Likewise.
17587         (prescan_loop): Adjust calls to note_stores.
17588         (strength_reduce): Likewise.
17589         (check_dbra_loop): Likewise.
17590         * regmove.c (flags_set_1): Take additional paramter.
17591         (mark_flags_life_zones): Adjust calls to note_stores.
17592         * reload1.c (mark_not_eliminable): Take additional parameter.
17593         (forget_old_reloads_1): Likewise.
17594         (reload_cse_invalidate_rtx): Likewise.
17595         (reload_cse_check_clobber): Likewise.
17596         (reload_combine_note_store): Likewise.
17597         (move2add_note_store): Likewise.
17598         (reload): Adjust calls to note_stores.
17599         (reload_as_needed): Likewise.
17600         (emit_reload_insns): Likewise.
17601         (reload_cse_regs_1): Likewise.
17602         (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx.
17603         (reload_combine): Adjust calls to note_stores.
17604         * resource.c (update_live_status): Take additional paramter.
17605         (mark_target_live_regs): Adjust calls to note_stores.
17606         * stupid.c (find_clobbered_regs): Take additional parameter.
17607         (stupid_life_analysis): Adjust calls to note_stores.
17608
17609 Wed Oct 27 19:26:12 1999  Nick Clifton  <nickc@cygnus.com>
17610
17611         * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete
17612         definition.
17613
17614         * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete
17615         definition.
17616
17617         * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms
17618         of the variable arm_structure_size_boundary.
17619
17620 Wed Oct 27 02:05:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
17621
17622         * alias.c (init_alias_analysis): Allocate reg_known_value and
17623         reg_known_equiv_p on the heap.  Likewise for new_reg_base_value
17624         and reg_seen.
17625         (end_alias_analysis): Free reg_known_value and reg_known_equiv_p.
17626         * cse.c (cse_main): Call end_alias_analysis.
17627         * haifa-sched.c (schedule_insns): Likewise.
17628         * local-alloc. (update_equiv_regs): Likewise.
17629         * reload1.c (reload_cse_regs): Likewise.
17630
17631 Wed Oct 27 01:49:17 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17632
17633         * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET.
17634         * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse
17635         mapping from MASK_FPU.
17636
17637 Wed Oct 27 01:42:26 1999  Scott Christley  <scottc@net-community.com>
17638
17639         * sparc.md (call): Don't bound structure return size to 0xfff.
17640
17641 Wed Oct 27 00:56:59 1999  Richard Henderson  <rth@cygnus.com>
17642
17643         * resource.c (mark_target_live_regs): Check that the target
17644         insn wasn't created after compute_bb_for_insn.
17645
17646 Tue Oct 26 23:15:03 1999  Mark Mitchell  <mark@codesourcery.com>
17647
17648         * ggc-page.c (poison_pages): Don't be overzealous.
17649
17650 Tue Oct 26 23:29:18 1999  Jeffrey A Law  (law@cygnus.com)
17651
17652         * alias.c: Update comments for ADDRESS.
17653         (nonlocal_reference_p): Look inside the ADDRESS to determine if
17654         it is a local memory reference.
17655
17656         * c-typeck.c (build_function_call): Check that the built-in
17657         function is of class BUILT_IN_NORMAL before trying to recongize
17658         it as BUILT_IN_ABS.
17659         * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA.
17660         * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE.
17661
17662 Wed Oct 27 00:14:13 1999  Robert Lipe  <robertlipe@usa.net>
17663
17664         * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead
17665         of alloca.
17666         (pre_gcse): Likewise.
17667         (hoist_expr_reaches_here_p): Likewise.
17668         (hoist_code): Likewise.
17669         (pre_expr_reaches_here_p): Replace alloca with xcalloc.  Move core
17670         code to ...
17671         (pre_expr_reaches_here_p_work): ... here.
17672         (expr_reaches_here_p): Replace alloca with xcalloc.  Move core
17673         code to ...
17674         (expr_reaches_here_p_work): ... here.
17675
17676 Tue Oct 26 20:42:45 1999  Richard Henderson  <rth@cygnus.com>
17677
17678         * resource.c (find_basic_block): Delete.
17679         (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead.
17680         (init_resource_info): Call compute_bb_for_insn.
17681
17682 Tue Oct 26 20:21:02 1999  Richard Henderson  <rth@cygnus.com>
17683
17684         * flow.c (merge_blocks_move_predecessor_nojumps): Cope
17685         with already adjacent blocks, but no fallthru.
17686         (merge_blocks_move_successor_nojumps): Simplify.
17687         (debug_flow_info): New.
17688
17689         * toplev.c (rest_of_compilation): Open jump1 dump file before
17690         jump and close after, as opposed to just using dump_rtl.
17691
17692 Wed Oct 27 03:09:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
17693
17694         * reload.h (earlyclobber_operand_p): Declare.
17695         * reload.c (earlyclobber_operand_p): Don't declare.  No longer static.
17696         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
17697         an earlyclobbered output conflict with RELOAD_INPUT reloads - handle
17698         case where the RELOAD_OTHER reload is new.  Use earlyclobber_operand_p.
17699
17700 Tue Oct 26 18:23:38 1999  Jan Hubicka  <hubicka@freesoft.cz>
17701                           Richard Henderson  <rth@cygnus.com>
17702
17703         * emit-rtl.c (emit_block_insn_before): New.
17704         (emit_block_insn_after): New.
17705         * basic-block.h: Declare them.
17706
17707         * bitmap.h: Protect from multiple inclusion.
17708
17709         * recog.c (scratch_operand): Handle VOIDmode correctly.
17710
17711         * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New.
17712
17713         * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack.
17714         * function.c (assign_parms): Likewise.
17715         * global.c (global_conflicts): Clarify STACK_REGS commentary.
17716
17717         * reg-stack.c (max_uid): Remove.
17718         (blocks, block_begin, block_end, block_drops_in): Remove.
17719         (block_stack_in, block_out_reg_set, block_number): Remove.
17720         (struct block_info_def, BLOCK_INFO): New.
17721         (enum emit_where): New.
17722         (current_block): New.
17723         (BLOCK_NUM): Remove.
17724         (mark_regs_pat, record_label_references): Remove.
17725         (record_reg_life_pat, record_reg_life, find_blocks): Remove.
17726         (nan): New.
17727         (goto_block_pat, print_blocks, dump_stack_info): Remove.
17728         (reg_to_stack): Simplified test for existance of fp code.  Use
17729         flow.c code.  Call shorten_branches after cross-jump opt.
17730         (check_asm_stack_operands): Renamed from record_asm_reg_life.
17731         Return false if the asm doesn't use stack regs.  Don't do life
17732         analysis on the asm.
17733         (emit_pop_insn): Replace function pointer arg `when' with
17734         enum `where'.  Update all callers.
17735         (change_stack): Likewise.  Update basic block end.
17736         (emit_swap_insn): Use current_block->head to limit reverse search
17737         for start of block.  Use emit_block_insn_after.
17738         (subst_stack_regs_pat): Handle USE and CLOBBER patterns.
17739         (subst_asm_stack_regs): Use check_asm_stack_operands.  Use direct
17740         structure assignment instead of bcopy.
17741         (print_stack): New.
17742         (convert_regs_entry, convert_regs_exit): New.
17743         (convert_regs_1, convert_regs_2): Split out from convert_regs.
17744         Work on basic blocks and the CFG.
17745         (convert_regs): Use them.
17746
17747         * i386.c (output_fix_trunc): Remove code for DImode input operand
17748         not at top-of-stack.
17749         * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with
17750         appropriate mode.
17751         (fix_truncdi_1): Allow any mode scratch.
17752
17753 Tue Oct 26 13:30:35 1999  Richard Henderson  <rth@cygnus.com>
17754
17755         * alpha.h (TARGET_MEM_FUNCTIONS): Define here.
17756         * linux.h, netbsd.h, vms.h: Not here.
17757
17758 1999-10-26  Gavin Romig-Koch  <gavin@cygnus.com>
17759
17760         * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY,
17761         ISA_HAS_FP4,ISA_HAS_CONDMOVE): New.
17762         (GENERATE_BRANCHLIKELY,HAVE_SQRT_P,
17763         CONDITIONAL_REGISTER_USEAGE): Use them.
17764         * config/mips/mips.c (mips_move_1word,mips_move_2words,
17765         gen_conditional_branch,override_options) : Use them.
17766         * config/mips/mips.md : Use them.
17767
17768 Tue Oct 26 13:09:23 1999  Richard Henderson  <rth@cygnus.com>
17769
17770         * i386.md (zero_extendqihi2): Use SImode register name with andl.
17771
17772 Tue Oct 26 12:35:38 1999  Richard Henderson  <rth@cygnus.com>
17773
17774         * integrate.c (function_cannot_inline_p): Don't allow inlining
17775         if setjmp is used.
17776
17777 Tue Oct 26 14:10:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17778
17779         * c-parse.in (cast_expr): Constify.
17780
17781         * cccp.c (special_symbol): Likewise.
17782
17783         * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise.
17784
17785         * dwarf2out.c (base_type_die): Likewise.
17786
17787         * global.c (allocno_compare): Likewise.
17788
17789         * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise.
17790
17791         * regclass.c (fix_register): Likewise.
17792
17793         * rtl.h (fix_register): Likewise.
17794
17795         * stupid.c (stupid_reg_compare): Likewise.
17796
17797         * toplev.c (decode_f_option): Likewise.
17798
17799         * tree.c (build_complex_type): Likewise.
17800
17801 Tue Oct 26 18:35:25 1999  Richard Earnshaw  <rearnsha@arm.com>
17802
17803         * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE.
17804
17805 Tue Oct 26 15:42:56 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17806
17807         * reload.c (find_reloads): Compute mode and nregs fields of all
17808         reloads.
17809         * reload1.c (calculate_needs_all_insns): Simplify a bit.
17810         (calculate_needs): Use precomputed mode/nregs values.
17811         (allocate_reload_reg): Likewise.
17812         Break out two...
17813         (failed_reload, set_reload_reg): ... new functions.
17814         (choose_reload_regs_init): New function, mostly broken out from...
17815         (choose_reload_regs): ... here.  Lose all the save_xxx nonsense.
17816         Also lose one #if 0 block.
17817
17818 Tue Oct 26 02:48:32 1999  Marc Espie <espie@cvs.openbsd.org>
17819
17820         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET):  Fix target name
17821         substitution.
17822
17823 Tue Oct 26 01:27:32 1999  Mark Mitchell  <mark@codesourcery.com>
17824
17825         * tree.h (BLOCK_TYPE_TAGS): Remove.
17826         (BLOCK_END_NOTE): Likewise.
17827         (BLOCK_LIVE_RANGE_FLAG): Likewise.
17828         (BLOCK_LIVE_RANGE_START): Likewise.
17829         (BLOCK_LIVE_RANGE_END): Likewise.
17830         (tree_block): Remove live_range_flag, live_range_var_flag, and
17831         type_tags.  Remove end_note, live_range_start, and live_range_end.
17832         (remember_end_note): Remove prototype.
17833         * tree.c (build_block): Don't set BLOCK_TYPE_TAGS.
17834         * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call
17835         remember_end_note.
17836         * ggc-common.c (ggc_mark_tree_children): Don't mark
17837         BLOCK_TYPE_TAGS or BLOCK_END_NOTE.
17838         * integrate.c (adjust_copied_decl_tree): Remove.
17839         * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS.
17840         * stmt.c (last_block_end_note): Remove.
17841         (init_stmt): Don't add a GC root for it.
17842         (expand_fixup): Don't set it.
17843         (remember_end_note): Remove.
17844         (expand_end_bindings): Don't set last_block_end_note.
17845
17846 Tue Oct 26 00:41:54 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
17847
17848         * reload1.c (reload_reg_free_for_value_p): Show
17849         RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER
17850         reloads.
17851
17852 Mon Oct 25 23:54:45 1999  Geoff Keating  <geoffk@cygnus.com>
17853
17854         * expmed.c (extract_bit_field): Allow for the case of non-integer
17855         objects that are smaller than a word (like SFmode on a 64-bit
17856         machine).
17857
17858         * loop.c (basic_induction_var): A non-integer variable which is
17859         being set by a paradoxical subreg is probably not a biv.
17860
17861 1999-10-25 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
17862
17863         * prefix.c (translate_name) Check for empty prefix string.
17864
17865 Mon Oct 25 23:10:45 1999  Andreas Schwab  <schwab@suse.de>
17866
17867         * Makefile.in (CPP_CROSS_NAME): New variable.
17868         (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross
17869         xcpp.
17870         (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the
17871         names of the files to be uninstalled.
17872
17873 Mon Oct 25 23:03:09 1999  Jeffrey A Law  (law@cygnus.com)
17874
17875         * collect2.c (IS_DIR_SEPARATOR): Define.
17876         (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR.
17877
17878         * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static
17879         functions too.
17880
17881         * haifa-sched.c (add_dependence): Update the true dependency
17882         cache the first time we add a true dependence to the LOG_LINKS chain.
17883
17884 Mon Oct 25 22:27:40 1999  Jim Kingdon  <http://developer.redhat.com/>
17885
17886         * fold-const.c (fold): Fix comment.
17887
17888 Mon Oct 25 22:49:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17889
17890         * dbxout.c (lastfile, cwd, dbxout_type_method_1,
17891         dbxout_symbol_location, dbxout_symbol_name, dbxout_init,
17892         dbxout_start_new_source_file, dbxout_source_file,
17893         dbxout_source_line, dbxout_finish, dbxout_type_fields,
17894         dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol):
17895         Constify a char*.
17896         (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes.
17897         (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED.
17898         (dbxout_block): Initialize variable `blocknum'.
17899
17900         * dbxout.h (dbxout_init, dbxout_finish,
17901         dbxout_start_new_source_file, dbxout_source_file, dbxout_types,
17902         dbxout_args, dbxout_source_line): Constify a char*.
17903
17904         * dwarfout.c (dwarf_tag_name, dwarf_attr_name,
17905         dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name,
17906         dwarf_fund_type_name, name_attribute, stmt_list_attribute,
17907         low_pc_attribute, high_pc_attribute, body_begin_attribute,
17908         body_end_attribute, comp_dir_attribute, sf_names_attribute,
17909         src_info_attribute, mac_info_attribute, producer_attribute,
17910         lookup_filename, generate_macinfo_entry, fundamental_type_code,
17911         dwarfout_line, dwarfout_start_new_source_file, dwarfout_define,
17912         dwarfout_undef): Constify a char*.
17913         (add_incomplete_type, retry_incomplete_types): Add prototypes.
17914
17915         * dwarfout.h (dwarfout_define, dwarfout_undef,
17916         dwarfout_start_new_source_file, dwarfout_line): Constify a char*.
17917
17918 1999-10-25  Gavin Romig-Koch  <gavin@cygnus.com>
17919
17920         * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined.
17921         (MULTILIB_ISA_DEFAULT): New.
17922         (MULTILIB_DEFAULTS): Use it.
17923         * config/mips/mips.c (): Remove the now unnecessary definition
17924         of MIPS_ISA_DEFAULT.
17925         * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now
17926         unnecessary definition.
17927
17928 Mon Oct 25 22:08:35 1999  Richard Earnshaw (rearnsha@arm.com)
17929
17930         * arm.md (pic_load_addr): Add constraints to operand 1.
17931
17932 1999-10-25  Bruce Korb  <autogen@linuxbox.com>
17933
17934         * fixinc/genfixes:  Provide a means for specifying -D options to
17935         AutoGen
17936
17937 Mon Oct 25 00:42:35 1999  Jeffrey A Law  (law@cygnus.com)
17938
17939         * arm.c (arm_override_options): Correct initialization of
17940         arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched,
17941         arm_is_strong, and arm_is_6_or_7.
17942
17943         * loop.c (note_set_pseudo_multiple_uses_retval): New variable.
17944         (note_set_pseudo_multiple_uses): New function.
17945         (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine
17946         if a pseudo set in the loop exit is used elsewhere.
17947
17948 Sun Oct 24 20:52:40 1999  Mark Mitchell  <mark@codesourcery.com>
17949
17950         * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler.
17951
17952 Sun Oct 24 21:02:46 1999  Richard Henderson  <rth@cygnus.com>
17953
17954         * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into
17955         a single load-address pattern.
17956
17957 Sun Oct 24 19:33:24 1999  Mark P. Mitchell  <mark@codesourcery.com>
17958
17959         * haifa-sched.c (schedule_insns): Don't assign LUIDs differently
17960         depending on whether or not line-number notes are present.
17961
17962 Sun Oct 24 20:29:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
17963
17964         * cccp.c (progname, file_buf, default_include, include_file,
17965         macrodef, definition, hashval, wchar_type, user_label_prefix,
17966         directive, out_fname, if_stack, safe_write, index0, get_lintcmd,
17967         expand_to_temp_buffer, is_system_include, base_name,
17968         absolute_filename, read_name_map, open_include_file,
17969         record_control_macro, check_precompiled, check_preconditions,
17970         pcfinclude, pass_thru_directive, create_definition,
17971         check_macro_name, comp_def_part, collect_expansion,
17972         check_assertion, read_token_list, assertion_install,
17973         assertion_lookup, eval_if_expression, conditional_skip,
17974         validate_else, skip_quoted_string, quote_string, macarg1,
17975         error_from_errno, install, lookup, hashf, dump_defn_1,
17976         perror_with_name, pfatal_with_name, main, trigraph_pcp,
17977         check_white_space, rescan, handle_directive, monthnames,
17978         special_symbol, do_include, remap_include_file, write_output,
17979         arglist, do_assert, do_unassert, do_line, do_error, do_once,
17980         do_ident, do_sccs, do_xifdef, skip_if_group,
17981         output_line_directive, macroexpand, macarg, change_newlines,
17982         initialize_builtins, make_definition): Constify a char*.
17983
17984         * pcp.h (stringdef): Likewise.
17985
17986 Sun Oct 24 13:29:28 1999  Richard Henderson  <rth@cygnus.com>
17987
17988         * unroll.c (copy_loop_body): Examine SET_DEST of single_set
17989         not of pattern.
17990
17991 Sun Oct 24 13:14:20 1999  Graham  <grahams@rcp.co.uk>
17992                           Richard Henderson  <rth@cygnus.com>
17993
17994         * alias.c: Include ggc.h.
17995         (reg_base_value, new_reg_base_value, reg_base_value_size): Make static.
17996         (record_set): Verify enough room in reg_base_value.
17997         (init_alias_analysis): Allocate reg_base_value with xcalloc.
17998         Register it as a GC root.
17999         (end_alias_analysis): Free reg_base_value.  Remove it as a GC root.
18000         * Makefile.in (alias.o): Depend on ggc.h.
18001
18002         * unroll.c (unroll_loop): Verify the insn before a barrier
18003         is a JUMP_INSN before checking JUMP_LABEL.
18004
18005 Sun Oct 24 15:46:44 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18006
18007         * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*.
18008         * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise.
18009         * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise.
18010         * mips/mips.h (ASM_OUTPUT_ASCII): Likewise.
18011         * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise.
18012         * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise.
18013
18014 Sun Oct 24 15:35:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18015
18016         * output.h (ctors_section, dtors_section, bss_section): Prototype.
18017
18018         * alpha/alpha-interix.h (text_section): Delete prototype.
18019         * alpha/elf.h (text_section): Likewise.
18020         * arm/linux-elf.h (text_section): Likewise.
18021         * arm/linux-telf.h (text_section): Likewise.
18022         * c4x/c4x.h (text_section): Likewise.
18023         * dsp16xx/dsp16xx.h (bss_section): Likewise.
18024         * elfos.h (text_section): Likewise.
18025         * i386/aix386ng.h (text_section): Likewise.
18026         * i386/i386-interix.h (text_section): Likewise.
18027         * i386/sco5.h (text_section): Likewise.
18028         * i386/svr3gas.h (text_section): Likewise.
18029         * nextstep.h (text_section): Likewise.
18030         * psos.h (text_section): Likewise.
18031         * ptx4.h (text_section): Likewise.
18032         * svr3.h (text_section): Likewise.
18033         * svr4.h (text_section, ctors_section, dtors_section): Likewise.
18034
18035 Sun Oct 24 15:20:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18036
18037         * final.c (peephole): Delete prototype.
18038
18039         * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes.
18040         (pre_insert_copies): Remove unused variable `bb'.
18041
18042         * genrecog.c (debug_decision_0, debug_decision_list, main): Add
18043         prototypes.
18044
18045         * output.h (peephole): Add prototype.
18046
18047 Sun Oct 24 11:35:30 1999  Mark P. Mitchell  <mark@codesourcery.com>
18048
18049         * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to
18050         -O0.
18051
18052 Sat Oct 23 21:13:00 1999  Mark Mitchell  <mark@codesourcery.com>
18053
18054         * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT
18055         for inlined declarations.
18056
18057 Fri Oct 22 18:05:43 1999  Jeffrey A Law  (law@cygnus.com)
18058
18059         * arm.c (logical_binary_operator): New fucntion.
18060         * arm.h (logical_binary_operator): Declare it.
18061         (PREDICATE_CODES): Handle logical_binary_operator.
18062         * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for
18063         output constraints.  Add appropriate splitters.
18064         (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise.
18065         (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise.
18066         (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise.
18067
18068 Fri Oct 22 23:46:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18069
18070         * genoutput.c (struct operand_data): New elt eliminable.
18071         (output_operand_data): Write it.
18072         (scan_operands): Set it for MATCH_OPERAND, clear for other matchers.
18073         (compare_operands): Take it into account.
18074         * recog.h (struct insn_operand_data): New elt eliminable.
18075         * reload1.c (check_eliminable_occurrences, elimination_effects): New
18076         functions.
18077         (old_asm_operands_vec, new_asm_operands_vec): Delete.
18078         (eliminate_regs): Move code that detects changes to elimination
18079         target regs into new function elimination_effects.
18080         Delete one #if 0 block.
18081         Abort for USE, CLOBBER, ASM_OPERANDS and SET.
18082         (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs,
18083         ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs.
18084         Only call eliminate_regs for real operands of the insn, not for parts
18085         of its structure or parts matched by things like match_operator.
18086         Use elimination_effects and check_eliminable_occurrences.  Use
18087         copy_insn to duplicate the pattern when not in the final pass.
18088
18089 Fri Oct 22 09:03:44 1999  Mark Mitchell  <mark@codesourcery.com>
18090
18091         * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld,
18092         and fld.
18093
18094 1999-10-22  Bruce Korb  <autogen@linuxbox.com>
18095
18096         * fixinc/README: document the "mach" machine matching test
18097         * fixinc/fixfixes.c: Implement the #else/#endif label fix
18098         * fixinc/fixtests.c: Implement the #else/#endif label test
18099         * fixinc/inclhack.def: utilize these tests and fixes
18100         * fixinc/inclhack.sh:  regen
18101         * fixinc/fixincl.x:  regen
18102         * fixinc/fixincl.sh:  regen
18103
18104 Thu Oct 21 20:37:19 1999  Jeffrey A Law  (law@cygnus.com)
18105
18106         * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h.  Also
18107         depend on ggc.h.
18108
18109 Thu Oct 21 20:30:19 1999  Matthias Klose  <doko@debian.org>
18110
18111         * gcc.1: Document exit codes.
18112
18113 Thu Oct 21 12:49:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18114
18115         * calls.c: Include tm_p.h later, so everything we need is defined.
18116         * expr.c: Likewise.
18117         * function.c: Likewise.
18118
18119         * except.c: Include tm_p.h.
18120
18121         * sparc.c: Likewise.
18122         (dwarf2out_cfi_label): Don't prototype.
18123         (check_return_regs, epilogue_renumber,
18124         ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists,
18125         ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline,
18126         ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask,
18127         ultra_schedule_insn): Add static prototype.
18128         (data_segment_operand, text_segment_operand): Call itself with the
18129         proper number of arguments.
18130         (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*.
18131
18132         * sparc.h: Move all declarations to sparc-protos.h.
18133         (SELECT_RTX_SECTION):  Pass a missing MODE argument to
18134         symbolic_operand.
18135
18136         * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise.
18137
18138         * config/svr4.h (text_section, ctors_section, dtors_section): Add
18139         Prototypes.
18140         (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION,
18141         ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING,
18142         ASM_OUTPUT_ASCII): Constify a char*.
18143
18144         * sparc-protos.h: New file for sparc prototypes.
18145
18146 Thu Oct 21 12:23:40 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18147
18148         * function.c (record_insns, contains): Always declare and define.
18149         (record_insns): Mark with ATTRIBUTE_UNUSED.
18150
18151 Thu Oct 21 13:03:49 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
18152
18153         * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option
18154         to .section when outputting a .bss section to deal with multiple
18155         .bss input sections (as happens with -fdata-sections)
18156         Also output %progbits, not @progbits so the assembler doesn't treat as
18157         a comment.
18158         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise
18159
18160         * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of
18161         thumb parts even when building with non-thumb CPUs, by forcing
18162         thumb mode.
18163
18164 Wed Oct 20 22:57:58 1999  Jeffrey A Law  (law@cygnus.com)
18165
18166         * sparc.md (movsf_const_intreg): If splitting, length must be > 1.
18167         (movdf_const_intreg_sp64): Similarly.
18168
18169         * local-alloc.c (update_equiv_regs): Check the correct insn
18170         for pre-existing REG_EQUIV notes.
18171
18172 Wed Oct 20 20:41:46 1999  Mark Mitchell  <mark@codesourcery.com>
18173
18174         * cse.c (cse_end_of_basic_block): Don't return the end of a basic
18175         block reached by a branch if we're not going to actually process
18176         this block.
18177
18178 Wed Oct 20 15:18:42 1999  Jim Wilson  <wilson@cygnus.com>
18179
18180         * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is
18181         a local extern function declaration.
18182
18183 Wed Oct 20 13:56:01 1999  Richard Henderson  <rth@cygnus.com>
18184
18185         * i386.c (ix86_expand_prologue): Properly wrap USE around
18186         reg for CALL_INSN_FUNCTION_USAGE.
18187
18188 Thu Oct 14 18:51:37 1999  Andrew Haley  <aph@cygnus.com>
18189
18190         * config/mips/mips.md (movdf_internal1a): Allow floating-point
18191         move between GP_REGs.
18192
18193 Wed Oct 20 15:36:11 1999  Andrew Haley  <aph@cygnus.com>
18194
18195         * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of
18196         the mode size when finding out if an offset is legal.
18197
18198 Wed Oct 20 06:26:58 1999  Richard Henderson  <rth@cygnus.com>
18199
18200         * basic-block.h (PROP_*): Move constants from ...
18201         * flow.c: ... here.
18202         (compute_bb_for_insn): Free the array before reallocating.
18203         (update_life_info): New arg PROP_FLAGS; pass on to propagate_block.
18204         (allocate_reg_life_data): Reset all reg variables collected by
18205         propagate_block.
18206         (get_block_head_tail): Don't convert from bb to block.
18207         (get_bb_head_tail): New.  Update all callers of get_block_head_tail.
18208         (find_insn_reg_weight): Take block not bb.
18209         (schedule_block): Don't set block num for moved insns.
18210         (schedule_region): Don't update_life_info or find_insn_reg_weight.
18211         (schedule_insns): Do it here instead.
18212         * combine.c (combine_instructions): Invoke compute_bb_for_insn
18213         before update_life_info.
18214         * recog.c (split_all_insns, peephole2_optimize): Update for
18215         new arg to update_life_info.
18216         * rtlanal.c (remove_note): Cope with NULL note.
18217         * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage
18218         if we did sched1.
18219
18220 Wed Oct 20 10:46:41 1999  Richard Earnshaw (rearnsha@arm.com)
18221
18222         * jump.c (jump_optimize_1): More accurately detect casesi insns.
18223
18224         * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic
18225         block records so that merge_blocks_nomove will clean up correctly.
18226         (split_edge): Handle casesi insns.
18227
18228         * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS.
18229
18230 Tue Oct 19 23:43:50 1999  Jeffrey A Law  (law@cygnus.com)
18231
18232         * pa.md (call, call_value): Do not emit a blockage after restoring
18233         the PIC register.
18234
18235 Tue Oct 19 17:22:39 1999  Mark Mitchell  <mark@codesourcery.com>
18236
18237         * c-typeck.c (c_expand_asm_operands): Fix typo.
18238
18239 Tue Oct 19 18:42:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18240
18241         * arm.c (fpu_rhs_operand): Verify modes.
18242         (fpu_add_operand): Likewise.
18243         (di_operand): Likewise.
18244         (soft_df_operand): Likewise.
18245
18246 Tue Oct 19 15:26:11 1999  Richard Earnshaw  (rearnsha@arm.com)
18247
18248         * arm.c (arm_return_in_memory): APCS rules state that the elements
18249         of a structure returned in a register must be 'integer-like'.
18250
18251 1999-10-19  Bruce Korb  <autogen@linuxbox.com>
18252
18253         * fixinc/Makefile.in: Change the generation rules to run `genfixes'
18254         in the source tree when the generated targets are out of date
18255         * fixinc/genfixes: Alter it to run individual fixes for make.
18256         * fixinc/README: rewrite
18257         * fixinc/inclhack.def: moved initial comments to README
18258
18259 Tue Oct 19 14:01:34 1999  Nick Clifton  <nickc@cygnus.com>
18260
18261         * toplev.c (main): Do not generate an error message if an
18262         unrecognised command line switch is recognisable by another
18263         language.  If extra_warnings are enabled, then generate a
18264         warning message instead.
18265
18266 Tue Oct 19 11:41:12 1999  Mumit Khan  <khan@xraylith.wisc.edu>
18267
18268         * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro.
18269         (insert_pack_attributes): Delete prototype.
18270
18271         * c-pragma.c (default_alignment): New static variable.
18272         (push_alignment): Initialize to current effective alignment.
18273         (pop_alignment): Use to set new alignment.
18274         (insert_pack_attributes): Delete function.
18275         (handle_pragma_token): Set default_alignment as well each time
18276         a #pragma pack(<n>) is encountered.
18277
18278 Tue Oct 19 02:03:00 1999  Jeffrey A Law  (law@cygnus.com)
18279
18280         * reg-stack.c (stack_result): Aggregates are not returned in
18281         stack registers.
18282
18283 Tue Oct 19 01:26:48 1999  Alasdair Baird <alasdair@wildcat.demon.co.uk>
18284
18285         * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation.
18286
18287 Mon Oct 18 15:19:41 1999  Richard Henderson  <rth@cygnus.com>
18288
18289         * basic-block.h (set_block_num): Declare.
18290         * flow.c (update_life_info): Don't call compute_bb_for_insn
18291         or free_basic_block_vars.
18292         * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0.
18293         (insn_orig_block): Remove.
18294         (INSN_BLOCK): Remove.  Update all callers to use BLOCK_NUM.
18295         (schedule_block): Keep BLOCK_NUM up-to-date.
18296         (schedule_insns): Use compute_bb_for_insn.
18297         * recog.c (split_all_insns): Likewise.
18298         (peephole2_optimize): Likewise.
18299
18300 Mon Oct 18 18:50:51 1999  Andreas Schwab  <schwab@suse.de>
18301
18302         * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word
18303         if the pic register is used.
18304
18305 Mon Oct 18 02:38:46 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18306
18307         * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT.
18308         (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of
18309         if that tests TREE_PERMANENT.
18310
18311 Mon Oct 18 01:41:35 1999  Jeffrey A Law  (law@cygnus.com)
18312
18313         * cse.c (invalidate_for_call): Do not remove memory references from
18314         the table here.  It's handled elsewhere.
18315
18316         * haifa-sched.c (add_dependence): Protect references to the
18317         true dependency cache with #ifdef INSN_SCHEDULING.
18318         (remove_dependence): Similarly.
18319
18320         * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate
18321         to the cfg code that this is a return instruction.
18322         * mn10300.md (return_internal): Similarly.
18323
18324         * combine.c (get_last_value): If the last set of a register
18325         is after subst_low_cuid, then we can not use it to determine
18326         the register's last value.
18327
18328 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
18329
18330         * Makefile.in: Back out previous change.
18331
18332 Sun Oct 17 15:22:50 1999  Jeffrey A Law  (law@cygnus.com)
18333
18334         * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)).
18335
18336         * haifa-sched.c (add_dependence): Only check/update the cache
18337         if it exists.
18338         (remove_dependence): Likewise.
18339         (schedule_insns): Only create the true_dependency_cache if the
18340         average number of instructions in a basic block is very large.
18341
18342 Sun Oct 17 11:02:52 1999  Mark Mitchell  <mark@codesourcery.com>
18343
18344         * Makefile.in (ggc-common.o): Depend on genrtl.h.
18345         (ggc-simple.o): Likewise.
18346         (ggc-page.o): Likewise.
18347
18348 Sun Oct 17 02:09:50 1999  Andrew MacLeod  <amacleod@cygnus.com>
18349
18350         * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available):
18351         Prototype for exported functions.
18352         (pre_lcm, pre_rev_lcm): Remove prototypes.
18353         * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters.
18354         (compute_available): Move to lcm.c, and change parameter order.
18355         (one_classic_gcse_pass): Call compute_ae_kill with parameters.
18356         (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete.
18357         (gcse_main): No longer call compute_preds_succs.  Rebuild the
18358         set table after reach pre pass.
18359         (pre_insert_map, pre_delete_map, edge_list): New.
18360         (alloc_pre_mem): Allocate edge vectors.
18361         (free_pre_mem): Delete edge vectors.
18362         (compute_pre_data): Call new edge based lcm routines.
18363         (process_insert_insn): New function.
18364         (insert_insn_end_bb): Use it.
18365         (pre_edge_insert): New function.
18366         (pre_insert_copy_insn): Formatting fixes.  Update BLOCK_END as
18367         needed.
18368         (pre_insert_copies): Revamp using new edge based lcm outputs.
18369         (pre_delete): Likewise.
18370         (one_pre_gcse_pass): Insert & remove fake edges to the exit
18371         block.
18372         (compute_code_hoist_vbeinout): New new edge based routines.
18373         * lcm.c: Remove all the old LCM functions.  Replace with new ones
18374         that work with the new cfg datastructures and work with edges
18375         instead of blocks.
18376
18377 Sun Oct 17 00:44:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18378
18379         * reload.h (struct reload): Add new fields "mode" and "nregs".
18380         * reload1.c: Change all occurrences of reload_mode and reload_nregs
18381         to reference the "mode" and "nregs" field within struct reload.
18382
18383 Sat Oct 16 21:50:28 1999  Jeffrey A Law  (law@cygnus.com)
18384
18385         * haifa-sched.c (true_dependency_cache): New.
18386         (add_dependence): Use the true dependency cache to avoid expensive
18387         walks down the LOG_LINKS dependency list.  Add entries to the
18388         cache as necessary.
18389         (remove_dependence): Remove entries from the true dependency cache
18390         as needed.
18391         (schedule_insns): Allocate and initialize and free the true
18392         dependency cache.
18393
18394         * haifa-sched.c (schedule_insns): Do not remove inter-block
18395         dependencies anymore.
18396
18397 Sat Oct 16 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
18398
18399         * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H.
18400         * i386/t-winnt: Likewise.
18401
18402 Sat Oct 16 11:11:54 1999  Richard Henderson  <rth@cygnus.com>
18403
18404         * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug.
18405
18406 1999-10-16  Manfred Hollstein  <mhollstein@cygnus.com>
18407
18408         * Makefile.in (LANGUAGES): Omit "proto".
18409         (clean): Remove stale comment about removing unprotoize.c.
18410
18411 Sat Oct 16 11:29:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
18412
18413         * protoize.c (safe_read, safe_write): Avoid the gcc extension of
18414         using arithmetic on void pointers.
18415
18416 Sat Oct 16 02:48:22 1999  Jeffrey A Law  (law@cygnus.com)
18417
18418         * haifa-sched.c (compute_block_forward_dependencies): Only check
18419         for notes, deleted insns and duplicates if ENABLE_CHECKING is defined.
18420
18421 Sat Oct 16 00:07:01 1999  Richard Henderson  <rth@cygnus.com>
18422
18423         * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET.
18424         (expr_equiv_p): Reject memories with different alias sets.
18425
18426 Fri Oct 15 15:17:29 1999  Greg McGary  <gkm@gnu.org>
18427
18428         * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls.
18429         * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags.
18430         (f_options): Add "bounded-pointers" and "bounds-check" entries.
18431         * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified".
18432         (lang_init): Set default for flag_bounds_check if still "unspecified".
18433
18434 Sat Oct 16 13:42:29 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18435
18436         * config/c4x/c4x.md (HF mode patterns):  Add missing modes.
18437
18438 Sat Oct 16 13:37:46 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18439
18440         * config/c4x/c4x.md (movstrqi_small): Utilise parallel move
18441         instructions.
18442
18443 Sat Oct 16 13:26:47 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18444
18445         * config/c4x/c4x.md (*db_noclobber,
18446         *decrement_and_branch_until_zero_noclobber): New patterns and
18447         associated splitters.
18448
18449 Sat Oct 16 13:13:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18450
18451         * config/c4x/c4x.md (parallel instruction patterns): Rework
18452         constraints to keep reload happy.
18453
18454 Sat Oct 16 13:03:16 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18455
18456         * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber,
18457         *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber,
18458         *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber):
18459         Add new patterns and associated post-reload splitters.
18460
18461 Sat Oct 16 12:42:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18462
18463         * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string.
18464
18465 Sat Oct 16 12:34:44 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18466
18467         * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern
18468         if appropriate.
18469         * config/c4x/c4x.md (rpts_top): New pattern and splitter.
18470
18471 Sat Oct 16 12:26:30 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18472
18473         * config/c4x/c4x.c (src_operand):  Check SYMBOL_REF and LABEL_REF
18474         memory mode.
18475
18476 Fri Oct 15 17:02:09 1999  Jeffrey A Law  (law@cygnus.com)
18477
18478         * pa.c (move_operand): Rely on memory_address_p to determine the
18479         validity of non-indexed memory addresses.
18480         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic
18481         operand in DFmode and SFmode when generating PA2.0 code.
18482
18483 Fri Oct 15 14:25:19 1999  Richard Henderson  <rth@cygnus.com>
18484
18485         * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF.
18486
18487 Fri Oct 15 13:48:45 1999  Richard Henderson  <rth@cygnus.com>
18488
18489         * mips.c (function_prologue): Fix argument types.
18490         * mips.md (casesi): Use emit_jump_insn for casesi_internal.
18491         (casesi_internal): Write to the scratch register.
18492
18493 1999-10-15 11:16 -0700  Zack Weinberg  <zack@bitmover.com>
18494
18495         * cppexp.c (cpp_parse_escape): Make static.  Change second arg
18496         to U_CHAR **.
18497         (parse_charconst): Delete unnecessary cast when calling
18498         cpp_parse_escape.
18499         (cpplib.h): Kill prototype of cpp_parse_escape.
18500
18501 Fri Oct 15 11:02:46 1999  Richard Henderson  <rth@cygnus.com>
18502
18503         Based on patch from Michael Gschwind <mikeg@watson.ibm.com>:
18504         * unroll.c (unroll_loop): Cast return value of alloca.
18505         * i370/i370.c: Include function.h and toplev.h.
18506         (i370_label_scan): Remove c++ commented abort.
18507         * i370/i370.h (HANDLE_PRAGMA): Takes three arguments.
18508         (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept.
18509         * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define.
18510         * i370/xm-mvs.h, i370/xm-oe.h: Likewise.
18511
18512 Fri Oct 15 03:01:01 1999  Loren Rittle  <ljrittle@acm.org>
18513
18514         * config/t-freebsd: Do not override USER_H.
18515         * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_.
18516
18517 Fri Oct 15 02:37:28 1999  Alastair J. Houghton <ajh8@doc.ic.ac.uk>
18518                           Mumit Khan  <khan@xraylith.wisc.edu>
18519
18520         * c-parse.in (component_decl): Support anonymous struct/union.
18521         (%expect): Update.
18522         * c-parse.y: Regenerate.
18523         * c-parse.c: Likewise.
18524         * objc/objc-parse.y: Likewise.
18525         * objc/objc-parse.c: Likewise.
18526         * c-decl.c (finish_struct): Don't sort the fields.
18527         (field_decl_cmp): Delete unused function.
18528
18529 Fri Oct 15 01:20:52 1999  Richard Henderson  <rth@cygnus.com>
18530
18531         * sparc.md (movsf_const_intreg): Revert last constraint change.
18532         (movdf_const_intreg_sp32): Likewise.
18533
18534 Fri Oct 15 01:47:51 1999  Vladimir Makarov  <vmakarov@loony.cygnus.com>
18535
18536         * cse.c: Include hashtab.h instead of splay-tree.h
18537         (struct cse_reg_info): No longer use variant union.  Add new
18538         field "regno".  All references changed to avoid union.
18539         (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables.
18540         (free_cse_reg_info): Remove.
18541         (hash_cse_reg_info, cse_reg_info_equal_p): New functions.
18542         (get_cse_reg_info): Revamp to use expandable hash tables instead
18543         of splay trees.  Initialize new fields in cse_reg_info structure.
18544         (new_basic_block): Similarly.
18545
18546 Thu Oct 14 23:51:56 1999  Richard Henderson  <rth@cygnus.com>
18547
18548         * genrecog.c (message_with_line): Prototype.
18549         (validate_pattern): Pass along the set for the dest, not a flag.
18550         Fix non-lvalue message.  Don't warn for VOIDmode SET_DEST of CALL.
18551         Check for PC/CC0 as sources.
18552         (nodes_identical): Check for children position match before
18553         allowing the combination.
18554
18555         * rtl.c (read_rtx): Track line number across \\\n.
18556
18557 Thu Oct 14 23:50:25 1999  Richard Henderson  <rth@cygnus.com>
18558
18559         * mips.h (SPECIAL_MODE_PREDICATES): New.
18560         * mips.md (*) Use nonimmediate_operand not general_operand for outputs.
18561         (movdi+1, movsi+1): Add output reload constraint.
18562         (casesi_internal): Likewise.  Fix commentary.
18563         (return_internal): Use pmode_register_operand.
18564
18565 Thu Oct 14 23:19:34 1999  Richard Henderson  <rth@cygnus.com>
18566
18567         * 1750a.md (movstrqi): Add missing output reload constraint.
18568         (call_value): Likewise.
18569         * a29k.md (cpxxx patterns): Add missing match_operator mode.
18570         (jmpfdec): Add missing inout reload constraint.
18571         * elxsi.md (addsi patterns): Add missing output reload constraint.
18572         (move from sp): Use @ alternates.
18573         (call_value): No constraint on output.
18574         * fr30.md (movsi_pop): Add missing output reload constraint.
18575         (movsf_constant_store): Likewise.
18576         (splits): Remove constraints.
18577         (subsi3): Add missing mode.
18578         * i370.md (cmpstrsi+1): Add missing output reload constraint.
18579         (call_value): Likewise.
18580         * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints.
18581         * m32r.h (PREDICATE_CODES): Add seth_add3_operand.
18582         * m32r.md (movsicc_internal): Add output reload constraint.
18583         (movstrsi_internal): Add inout reload constraints.
18584         * m88k.h (reg_names): Don't declare.
18585         (SPECIAL_MODE_PREDICATES): New.
18586         * m88k.md (*): Use register_operand not reg_or_0_operand
18587         on destinations.
18588         * mn10200.h (PREDICATE_CODES): New.
18589         * ns32k.md (ffs pattern): Add output reload constraint.
18590         * pdp11.md (sob pattern): Add inout reload constraint.
18591         * sh.md (splits): Remove constraints.
18592         (indirect_jump_scratch, fpu_switch): Add output reload constraint.
18593         * v850.md (pattern_is_ok_for_epilogue): Likewise.
18594         * vax.md (jgequ pattern): Add inout reload constraint.
18595
18596 Fri Oct 15 00:05:00 1999  Jeffrey A Law  (law@cygnus.com)
18597
18598         * configure.in (djgpp): Revert previous patch.
18599         * configure: Rebuit.
18600         * config/i386/djgpp.h: Revert previous patch.
18601
18602 Fri Oct 15 00:00:24 1999  Loren J. Rittle <ljrittle@acm.org>
18603
18604         * fixinc/inclhack.def: Restore patch lost during last merge of
18605         "no_bogosity" branch.
18606         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
18607
18608 Thu Oct 14 23:57:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
18609
18610         * fixincludes: Add a HPUX 11 fix for inttypes.h.
18611         * fixinc/inclhack.def: Same.
18612         * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate.
18613
18614 Thu Oct 14 22:51:55 1999  Richard Henderson  <rth@cygnus.com>
18615
18616         * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF
18617         as the base of a PLUS.
18618
18619 Fri Oct 15 18:36:07 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18620
18621         * config/c4x/c4x.md:  Define mode for remaining unspec operators.
18622         * config/c4x/c4x.c (dst_operand):  Use nonimmediate_operand.
18623
18624 Thu Oct 14 22:14:23 1999  Richard Henderson  <rth@cygnus.com>
18625
18626         * pa.md (post_stw+1): Use pmode_register_operand.
18627         (dcacheflush, icacheflush): Likewise.
18628
18629         * i386.md (movstricthi_1): Allow r/r.
18630
18631 Thu Oct 14 19:44:08 1999  Jan Hubicka  <hubicka@freesoft.cz>
18632
18633         * fold-const.c (fold): Convert (or (not arg0) (not arg1))
18634         to (not (and (arg0) (arg1))). Similary for and.
18635
18636         * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case,
18637         fallthrough to associate code.
18638         Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have
18639         bits in common.
18640
18641         * combine.c (simplify_logical): Convert XOR to IOR if operands have
18642         no bits in common; remove XOR to ROTATE conversion.
18643
18644 Fri Oct 15 17:40:11 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18645
18646         * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare.
18647
18648 Fri Oct 15 17:27:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
18649
18650         * config/c4x/c4x.c (dst_operand): New.
18651         (PREDICATE_CODES): Update.
18652         * config/c4x/c4x.h (dst_operand): Declare it.
18653         * config/c4x/c4x.md:  Define mode for each unspec usage.
18654         (move patterns):  Use dst_operand predicate instead of src_operand.
18655         (movqi_update, movqf_update): Delete.
18656
18657 Thu Oct 14 18:48:54 1999  Richard Henderson  <rth@cygnus.com>
18658
18659         * recog.c (pmode_register_operand): New.
18660         * recog.h: Declare it.
18661         * genrecog.c (pred_codes): Likewise.
18662         (special_mode_pred_table): Likewise.
18663         (validate_pattern): Don't warn no mode for address_operand.
18664
18665         * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression
18666         if the operand is not insn-like.
18667
18668 Thu Oct 14 19:38:42 1999  Jeffrey A Law  (law@cygnus.com)
18669                           Sylvian Pion <Sylvain.Pion@sophia.inria.fr>
18670
18671         * fold-const.c (fold): Handle more simplifications allowed by IEEE.
18672
18673 Thu Oct 14 17:30:14 1999  Richard Henderson  <rth@cygnus.com>
18674
18675         * sparc.md (*): Use {nonimmediate,register}_operand as appropriate
18676         instead of general_operand in a SET_DEST.  Use const_double_operand
18677         instead of an explicit test against CONST_DOUBLE.
18678         (movsf_const_lo): Add missing register mode.
18679         (goto_handler_and_restore): Add auxiliary test for Pmode.
18680         (flush): Adjust to use address_operand.
18681         (return_sf_no_fpu): Add missing output constraint.
18682
18683 Thu Oct 14 17:21:26 1999  Richard Henderson  <rth@cygnus.com>
18684
18685         * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand
18686         for call return value.
18687         (call_value_indirect_aix64, call_value_indirect_nt): Likewise.
18688
18689 Thu Oct 14 13:54:25 1999  Jason Merrill  <jason@yorick.cygnus.com>
18690
18691         * toplev.c (main): Only warn about options for other languages.
18692         * collect2.c (main): Pass -w to sub-gcc.
18693
18694 Thu Oct 14 16:27:50 1999  Richard Henderson  <rth@cygnus.com>
18695
18696         * flow.c (propagate_block): Add call-clobbered registers to
18697         significant too.
18698
18699         * flow.c (propagate_block): Use free_EXPR_LIST_list instead of
18700         zapping mem_set_list.
18701         (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node.
18702         (mark_set_1, mark_used_regs): Likewise.
18703
18704 Thu Oct 14 10:51:49 1999  Richard Henderson  <rth@cygnus.com>
18705
18706         * m68k.md (zero_extendsidi2): Add missing output reload constraint.
18707
18708 Wed Oct 13 00:09:18 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
18709
18710         * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes,
18711         -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only
18712         options. Also add a new item "C-only Warning Options" to the
18713         option summary.
18714
18715 1999-10-14  Gavin Romig-Koch  <gavin@cygnus.com>
18716
18717         * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info
18718         from multiple calls.
18719
18720 Thu Oct 14 04:54:54 1999  Richard Henderson  <rth@cygnus.com>
18721
18722         * i386.md (call value patterns): Move to the end of the file.
18723         (prologue_set_got, prologue_get_pc): Use register_operand for op 0.
18724
18725 1999-10-14 Mark Elbrecht <snowball3@bigfoot.com>
18726
18727         * configure.in (djgpp configuration): Define extra_objects..
18728         * configure: Rebuilt.
18729         * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define.
18730         (DTORS_SECTION_ASM_OP): Define.
18731         (INIT_SECTION_ASM_OP): Define.
18732         (FINI_SECTION_ASM_OP): Define.
18733         (DATA_SECTION_ASM_OP): Define.
18734         (TEXT_SECTION_ASM_OP): Define.
18735         (EH_FRAME_SECTION_ASM_OP): Define.
18736         (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl.
18737         (STARTFILE_SPEC): Add crtbegin.o.
18738         (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl
18739         to here from LINK_COMMAND_SPEC.
18740         (DO_GLOBAL_CTORS_BODY): Define.
18741         (CRTSTUFF_USE_FINI_SECTION): Define
18742         (HAS_INIT_SECTION): Delete.
18743
18744 Thu Oct 14 05:08:14 1999  Andreas Schwab  <schwab@suse.de>
18745
18746         * Makefile.in (all.cross): Depend on xcpp$(exeext).
18747
18748 Thu Oct 14 04:00:40 1999  Richard Henderson  <rth@cygnus.com>
18749
18750         * pa.h (PREDICATE_CODES): New.
18751
18752         * genrecog.c (validate_pattern): Condense the destination
18753         non-lvalue message.
18754
18755 Thu Oct 14 03:23:08 1999  Richard Henderson  <rth@cygnus.com>
18756
18757         * alpha.md (call-1): Supply missing mode for operator.
18758         (*): Add missing output reload constraints.  Remove constraints
18759         from define_splits.
18760
18761         * i386.h (SPECIAL_MODE_PREDICATES): New.
18762         * i386.md (movstricthi_1): Use nonimmediate_operand for op 0.
18763         (movqi_1, movdi_1, movdi_2, some splits): Likewise.
18764         (addsi_lea_3): Add missing mode for op 3.
18765         (prologue_set_got, prologue_get_pc): Add missing modes.
18766         (*) Add missing output reload constraints.
18767
18768 Thu Oct 14 03:59:57 1999  Stephane Carrez  <stcarrez@worldnet.fr>
18769
18770         * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size;
18771         check for member bit-size overflow and use var_size if it occurs.
18772         (layout_record): Use bitsize_int() to define the type size in bits.
18773         Likewise for computation and assignment to DECL_FIELD_BITPOS.
18774         (layout_decl): Likewise when assigning to DECL_SIZE.
18775
18776 Thu Oct 14 02:57:05 1999  Richard Henderson  <rth@cygnus.com>
18777
18778         * genrecog.c (validate_pattern): Typo last change.  Verify
18779         that output operands have output reloads.
18780
18781 Thu Oct 14 01:49:54 1999  Richard Henderson  <rth@cygnus.com>
18782
18783         * genrecog.c (special_mode_pred_table): New.
18784         (NUM_SPECIAL_MODE_PREDS): New.
18785         (find_operand): New.
18786         (validate_pattern): New argument `insn'.  Warn for assignment to
18787         any predicate accepting non-lvalues.  Conditionaly warn for
18788         match_operand without a mode.  Try much harder to match source
18789         and destination modes on a set.
18790         * tm.texi (SPECIAL_MODE_PREDICATES): Document.
18791
18792 Thu Oct 14 02:54:13 1999  Jeffrey A Law  (law@cygnus.com)
18793
18794         * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs.
18795
18796 Thu Oct 14 02:18:19 1999  Marc Espie <espie@cvs.openbsd.org>
18797
18798         * combine.c (simplify_logical): Recognize xor pattern that encodes
18799         rotation.
18800
18801 Wed Oct 13 23:23:45 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
18802
18803         * rs6000.c (expand_block_move): Use INTVAL, not XINT to access
18804         alignment.
18805
18806 Wed Oct 13 21:47:18 1999  Richard Henderson  <rth@cygnus.com>
18807
18808         * ggc-page.c (MAP_FAILED): Provide default.
18809
18810 Wed Oct 13 21:41:59 1999  Richard Henderson  <rth@cygnus.com>
18811
18812         * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE.
18813         * sparc.h (PREDICATE_CODES): Update.
18814
18815 Wed Oct 13 21:18:17 1999  Richard Henderson  <rth@cygnus.com>
18816
18817         * alpha.c (some_ni_operand): New.
18818         * alpha-protos.h: Declare it.
18819         * alpha.h (PREDICATE_CODES): Update.
18820         * alpha.md (sXaddq reload insns): Use some_ni_operand
18821         for SET_DEST instead of some_operand.
18822
18823 Wed Oct 13 21:04:45 1999  Richard Henderson  <rth@cygnus.com>
18824                           Jim Wilson  <wilson@cygnus.com>
18825
18826         * genrecog.c (maybe_both_true_2): Don't compare modes of
18827         two DT_pred tests.
18828         (process_tree): Elide peephole2_insns.  Invoke simplify_tests
18829         after find_afterward.
18830         (debug_decision_1): Dump next and afterward codes.
18831
18832 Wed Oct 13 20:35:16 1999  Richard Henderson  <rth@cygnus.com>
18833
18834         * rtl.c (dump_and_abort): Remove.
18835         (fatal_with_file_and_line): New.
18836         (fatal_expected_char): New.
18837         (read_rtx_lineno, read_rtx_filename): New.
18838         (read_skip_spaces): Track line number.
18839         (read_name): Use fatal_with_file_and_line.
18840         (read_rtx): Use fatal_expected_char.  Track line number.
18841         * rtl.h (read_rtx_filename, read_rtx_lineno): Declare.
18842
18843         * print-rtl.c (print_rtx): Don't special case LABEL_REF argument
18844         if it isn't a CODE_LABEL.
18845
18846         * genattr.c (main): Set read_rtx_filename.
18847         * genattrtab.c (main): Likewise.
18848         * gencodes.c (main): Likewise.
18849         * genconfig.c (main): Likewise.
18850         * genemit.c (main): Likewise.
18851         * genextract.c (main): Likewise.
18852         * genflags.c (main): Likewise.
18853         * genopinit.c (main): Likewise.
18854         * genoutput.c (main): Likewise.
18855         * genpeep.c (main): Likewise.
18856
18857         * genrecog.c (decision_test.u.insn): Add `lineno'.
18858         (pattern_lineno, error_count): New variables.
18859         (message_with_line): New.
18860         (add_to_sequence): Break out checking code to ...
18861         (validate_pattern): ... here.  Detect SET_DEST matching CONST_INT.
18862         (merge_insn): Use message_with_line.
18863         (make_insn_sequence): Use validate_pattern.  Record insn lineno.
18864         (main): Set read_rtx_filename, pattern_lineno.  Exit early on error.
18865
18866 Wed Oct 13 22:01:35 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18867
18868         * expr.c (store_constructor): Clear union if constructor is empty.
18869
18870 Wed Oct 13 15:19:04 1999  Jim Wilson  <wilson@cygnus.com>
18871
18872         * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change.
18873         Add !endian checks.  Change %{...} to %(...).
18874
18875 Wed Oct 13 13:30:34 1999  Richard Henderson  <rth@cygnus.com>
18876
18877         * i386.md (*addsi3_cc): Renamed from addcsi3.
18878         (*addsi3_carry): Renamed from addxsi3.
18879         (*subsi3_cc): Renamed from subcsi3.
18880         (*subsi3_carry): Renamed from subxsi3.
18881         (*xorqi_cc_1): Renamed from xorcqi_1.
18882         (xorqi_cc_ext_1): Renamed from xorcqi_ext_1.
18883         * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1.
18884
18885 Wed Oct 13 13:10:46 1999  Richard Henderson  <rth@cygnus.com>
18886
18887         * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H.
18888         (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise.
18889
18890 1999-10-13  Brendan Kehoe  <brendan@cygnus.com>
18891
18892         * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we
18893         climb up the chain of insns.
18894
18895 Wed Oct 13 10:20:58 1999  Richard Henderson  <rth@cygnus.com>
18896
18897         * genrecog.c (write_subroutine): Careful for null trees.
18898         (process_tree): Don't elide empty functions.
18899
18900 Wed Oct 13 10:07:54 1999  Richard Henderson  <rth@cygnus.com>
18901
18902         * Makefile.in (genrtl.o): Depend on ggc.h.
18903         * configure.in (valloc): Probe for it.
18904         (with-gc): Use ggc-page if valloc present.
18905         * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable.
18906         (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec.
18907         (ggc_alloc_string): Moved from ggc-page.c.
18908         * ggc-none.c (ggc_alloc_obj): New.
18909         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove.
18910         * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP.
18911         (struct globals): Likewise for dev_zero_fd.
18912         (init_ggc): Likewise for it's initialization.
18913         (ggc_allocated_p): Move careful dereference from ...
18914         (ggc_lookup_page_table): ... here.  Delete.
18915         (lookup_page_table_entry): Don't use ggc_lookup_page_table.
18916         (alloc_anon): Use valloc if no mmap.
18917         (release_pages): Use free if using valloc.
18918         (ggc_alloc_obj): Renamed from alloc_obj.
18919         (ggc_set_mark): Renamed from mark_obj.
18920         (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable.
18921         (ggc_alloc_rtx, ggc_alloc_rtvec): Delete.
18922         (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete.
18923         (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete.
18924         (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete.
18925         (ggc_collect): Use fp printing instead of our own rounding.
18926         * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete.
18927         (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete.
18928         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete.
18929         (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete.
18930         (struct ggc_string, struct ggc_any): Delete.
18931         (offsetof): Provide default definition.
18932         (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New.
18933         (PTR_KEY): New.
18934         (struct ggc_mem): New, from corpse of ggc_any.
18935         (struct ggc_status): Delete.
18936         (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete.
18937         (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete.
18938         (n_strings_collected, n_anys_collected): Delete.
18939         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete.
18940         (ggc_alloc_string, ggc_alloc): Delete.
18941         (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete.
18942         (ggc_free_string, ggc_free_any): Delete.
18943         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete.
18944         (ggc_compare_addresses, ggc_mark_string): Delete.
18945         (ggc_mark_string_if_gcable, ggc_mark): Delete.
18946         (search_data): Delete.
18947         (struct globals): New.
18948         (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New.
18949         (tree_insert, tree_lookup): New.
18950         (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New.
18951         (clear_marks, sweep_objs): New.
18952         (ggc_collect): Gut.  Use clear_marks, sweep_objs.
18953         (init_ggc): Set allocated_last_gc.
18954         (ggc_push_context): Gut.  Use G.context.
18955         (ggc_pop_context): Likewise.
18956         (ggc_pop_context_1): New.
18957         (debug_ggc_tree): New.
18958         (debug_ggc_balance, tally_leaves): New.
18959         * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl.
18960         (ggc_mark_string_if_gcable): Remove decl.
18961         (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark.
18962         (ggc_mark_rtvec_children): New.
18963         (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New.
18964         (ggc_mark_if_gcable): New decl.
18965         (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl.
18966         (ggc_alloc_tree, ggc_alloc): Likewise.
18967         (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise.
18968         (ggc_alloc_obj): New decl.
18969         (ggc_alloc_rtx, ggc_alloc_rtvec): New macros.
18970         (ggc_alloc_tree, ggc_alloc): Likewise.
18971         (ggc_set_mark): New decl.
18972         * rtl.h (struct rtx_def): Remove gc_mark.
18973         (struct rtvec_def): Likewise.
18974         * tree.h (struct tree_common): Likewise.
18975
18976 Wed Oct 13 01:44:29 1999  Carol LePage  <carolo@hal.com>
18977
18978         * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines,
18979         float_format and thread_file definitions.
18980         * configure: Rebuilt.
18981
18982 Wed Oct 13 09:25:03 1999  Niels Möller <nisse@lysator.liu.se>
18983
18984         * extend.texi (Function Names): Document types of function names.
18985
18986 Wed Oct 13 00:45:04 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
18987
18988         * reload1.c (reload_reg_free_for_value_p):  RELOAD_OTHER reloads with
18989         an earlyclobbered output conflict with RELOAD_INPUT reloads.
18990
18991 Tue Oct 12 23:28:28 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18992
18993         * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE.
18994
18995 Tue Oct 12 23:19:32 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
18996
18997         * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS.
18998
18999 Tue Oct 12 17:09:38 1999  David Edelsohn  <edelsohn@gnu.org>
19000
19001         * collect2.c (main): Do prelimnary link on AIX if rflag.
19002
19003 Tue Oct 12 09:45:19 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19004
19005         * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through
19006         __CTOR_LIST__ in opposite order, which is the correct order for sorted
19007         constructors.
19008         (__do_global_dtors): similarly for __DTOR_LIST__.
19009
19010 Fri Oct  8 19:46:03 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
19011                                 Diego Novillo <dnovillo@cygnus.com>
19012
19013         * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to
19014         FPUL_REGS.
19015
19016 Tue Oct 12 07:38:41 1999  Bruce Korb  <autogen@linuxbox.com>
19017
19018         * fixincl/*: Merged "no_bogosity" branch
19019         * fixincl/fixlib.h: protect against doubly defining t_bool
19020         * fixincl/server.h: protect against doubly defining t_bool
19021
19022 Mon Oct 11 20:18:41 1999  Jim Wilson  <wilson@cygnus.com>
19023
19024         * genoutput.c: Include toplev.h.
19025
19026 Mon Oct 11 18:56:14 1999  Jim Wilson  <wilson@cygnus.com>
19027
19028         * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
19029         Undef.
19030         * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h.
19031         * configure: Regenerate.
19032
19033 Mon Oct 11 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
19034
19035         * gcse.c (delete_null_pointer_checks): Returns void.
19036
19037 Mon Oct 11 20:31:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19038
19039         * rtl.c (copy_rtx): Don't use accessor macros to copy fields.
19040         * emit-rtl.c (copy_insn_1): Likewise.
19041
19042 Mon Oct 11 13:29:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
19043
19044         * config/mips/mips.c (mips_build_va_list): Correct
19045         TREE_CHAIN setting when hard-float.
19046         (mips_va_start): Use corrected setting.
19047         (mips_va_arg): Likewise.  Also pass a tree to build of
19048         POSTINCREMENT_EXPR rather than a naked 'int'.
19049
19050 Sun Oct 10 18:27:27 1999  Mark Mitchell  <mark@codesourcery.com>
19051
19052         * ggc.h (ggc_push_context): Fix comment.
19053         (ggc_pop_context): Likewise.
19054         (mark_string_if_gcable): Likewise.
19055         * ggc-common.c (ggc_mark_rtx_children): Use
19056         ggc_mark_string_if_gcable.
19057         * ggc-page.c (ggc_lookup_page_table): New function.
19058         (ggc_allocated_p): Likewise.
19059         (mark_obj): Fix formatting.
19060         (ggc_mark_string_if_gcable): New function.
19061         * ggc-simple.c (ggc_allocated_strings): New variable.
19062         (ggc_strings_used): Likewise.
19063         (ggc_compare_addresses): New function.
19064         (ggc_pop_context): Pop the `any' memory too.
19065         (ggc_mark_string_if_gcable): New function.
19066         (ggc_collect): Initialize and tear down ggc_allocated_strings.
19067
19068 Sun Oct 10 20:05:21 1999  David Edelsohn  <edelsohn@gnu.org>
19069
19070         * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form.
19071         (scc patterns): Disable most SImode variants if TARGET_POWERPC64.
19072         * rs6000.c (expand_block_move): Match movstrsi_?reg register
19073         changes.
19074
19075 Sun Oct 10 16:37:01 1999  Richard Henderson  <rth@cygnus.com>
19076
19077         * haifa-sched.c (sched_reg_n_calls_crossed): Delete.
19078         (sched_reg_live_length, sched_reg_basic_block): Delete.
19079         (current_block_num, bb_live_regs, old_live_regs): Delete.
19080         (dead_notes, struct sometimes): Delete.
19081         (sched_note_set, birthing_insn_p): Delete.
19082         (adjust_priority): Gut useless reg lifetime code.
19083         (create_reg_dead_note, attach_deaths): Delete.
19084         (attach_deaths_insn, new_sometimes_live): Delete.
19085         (finish_sometimes_live): Delete.
19086         (find_pre_sched_live, find_post_sched_live): Delete.
19087         (update_reg_usage): Delete.
19088         (find_insn_reg_weight): New, from corpse of find_pre_sched_live.
19089         (schedule_insns): Delete reg lifetime code.
19090         (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away.
19091         (unlink_other_notes): Adjust REG_NOTE commentary.
19092         (reemit_notes): Use REG_SAVE_NOTE.
19093         (schedule_block): Likewise.
19094         (schedule_region): Allocate bitmap of blocks in region.  Use
19095         count_or_remove_death_notes.  Use update_life_info.
19096
19097         * rtl.h (REG_SAVE_NOTE): New.
19098         * rtl.c (reg_note_name): Update.
19099
19100 Sun Oct 10 16:14:16 1999  Richard Henderson  <rth@cygnus.com>
19101
19102         * combine.c (refresh_blocks, need_refresh): New.
19103         (combine_instructions): Allocate refresh_blocks.  Invoke
19104         update_life_info if needed.
19105         (distribute_notes): Mark refresh_blocks instead of installing
19106         USE insns.
19107         * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES.
19108         * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES.
19109
19110         * Makefile.in (recog.o): Depend on basic-block.h.
19111
19112 Sun Oct 10 12:03:21 1999  Richard Henderson  <rth@cygnus.com>
19113
19114         * genrecog.c (add_to_sequence): Thinko last change: delete
19115         shadowing allow_const_int variable.
19116
19117 Sun Oct 10 08:40:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19118
19119         * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing
19120         __GNUC__ and __GNUC_MINOR__.
19121
19122         * gansidecl.h: Likewise.
19123
19124         * rtl.c: Likewise.
19125
19126         * rtl.h: Likewise.
19127
19128         * toplev.h: Likewise.
19129
19130         * tree.c: Likewise.
19131
19132         * tree.h: Likewise.
19133
19134         * varray.c: Likewise.
19135
19136         * varray.h: Likewise.
19137
19138 Sun Oct 10 13:28:48 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19139
19140         * loop.c (find_and_verify_loops): When looking for a BARRIER, don't
19141         use one before a jump table.
19142
19143         * rtl.def (ADDRESS): Change documentation to match reality.
19144         * md.texi: Don't document it.
19145         * gmicro.md (load address pattern): Use 'p' constraint, delete use
19146         of ADDRESS rtx.
19147
19148         * emit-rtl.c (copy_insn_1): Make format_ptr a const char *.
19149
19150 Sun Oct 10 02:41:41 1999  Richard Henderson  <rth@cygnus.com>
19151
19152         * genrecog.c (add_to_sequence): Move allow_const_int test outside
19153         known predicate block; default allow_const_int true.
19154         (debug_decision_list): New.
19155
19156 Sun Oct 10 00:43:08 1999  Richard Henderson  <rth@cygnus.com>
19157
19158         * i386.h (CC1_SPEC): Typo -- use cc1_cpu.
19159
19160 Sat Oct  9 23:26:55 1999  Jeffrey A Law  (law@cygnus.com)
19161
19162         * gcse.c (gcse_main): Avoid global optimizations if we have a
19163         large number of basic blocks and the ratio of edges to blocks
19164         is high.
19165         (delete_null_pointer_checks): Likewise.
19166
19167 Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
19168
19169         * c-common.c (check_format_info): Warn if format string isn't a
19170         string literal.
19171
19172 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
19173
19174         * configure.in (arm*-*-*): Don't let autoconf remove brackets
19175         * configure: regenerate
19176
19177 Sat Oct  9 13:15:53 1999  Richard Henderson  <rth@cygnus.com>
19178
19179         * alpha.md (extendsidi2): Turn into a splitter.  Allow f/f.
19180         If TARGET_FIX, allow r/f.  Remove cvtlq unspec pattern.
19181         (peepholes): Re-enable.
19182
19183 Sat Oct  9 12:18:16 1999  Richard Henderson  <rth@cygnus.com>
19184
19185         * Makefile.in (flow.o): Depend on TREE_H.
19186         * basic-block.h (REG_SET_EQUAL_P): New.
19187         (XOR_REG_SET): New.
19188         (n_edges): Declare.
19189         (free_regset_vector): Remove declaration.
19190         (flow_delete_insn_chain): Declare.
19191         (enum update_life_extent): New.
19192         (update_life_info, count_or_remove_death_notes): Declare.
19193         * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head.
19194         Verify register live at bb->global_live_at_start before adding USE.
19195         * flow.c (HAVE_epilogue, HAVE_prologue): Provide default.
19196         (CLEAN_ALLOCA): New.
19197         (n_edges): New.
19198         (PROP_*): New flags.
19199         (find_basic_blocks_1): Use alloc_EXPR_LIST.
19200         (clear_edges): Zero n_edges.
19201         (make_edge): Increment n_edges.
19202         (split_edge): Don't allocate bb->local_set.  Increment n_edges.
19203         (flow_delete_insn_chain): Export.
19204         (delete_block): Decrement n_edges.
19205         (merge_blocks_nomove): Likewise.
19206         (life_analysis): Give life_analysis_1 PROP flags.
19207         (verify_wide_reg_1, verify_wide_reg): New.
19208         (verify_local_live_at_start): New.
19209         (update_life_info): Rewrite to call into propogate_block.
19210         (mark_reg): New.
19211         (mark_regs_live_at_end): After reload, if epilogue as rtl,
19212         always mark stack pointer.  Conditionally mark PIC register.
19213         After reload, mark call-saved registers, return regsiters.
19214         (life_analysis_1): Accept PROP flags not remove_dead_code.
19215         Call mark_regs_live_at_end before zeroing regs_ever_live.
19216         Use calculate_global_regs_live.  Copy global_live_at_end before
19217         calling final propagate_block.  Zero reg_next_use on exit.
19218         (calculate_global_regs_live): New.
19219         (allocate_bb_life_data): Don't allocate bb->local_set.
19220         (init_regset_vector, free_regset_vector): Remove.
19221         (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE.
19222         Test flags before every operation.  Warn if prologue/epilogue insn
19223         would have been deleted.
19224         (mark_set_regs, mark_set_1): Accept and use FLAGS.
19225         Use alloc_EXPR_LIST.
19226         (mark_used_regs): Accept and use FLAGS, not FINAL.
19227         Remove special handling for RETURN.
19228         (try_pre_increment): Use alloc_EXPR_LIST.
19229         (dump_flow_info): Dump n_edges.
19230         (unlink_insn_chain, split_hard_reg_notes): Remove.
19231         (maybe_add_dead_note, maybe_add_dead_note_use): Remove.
19232         (find_insn_with_note, new_insn_dead_notes): Remove.
19233         (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove.
19234         (maybe_remove_dead_notes, prepend_reg_notes): Remove.
19235         (replace_insns): Remove.
19236         (count_or_remove_death_notes): New.
19237         (verify_flow_info): Abort on error after all checks.
19238         (remove_edge): Decrement n_edges.
19239         (remove_fake_edges): Tweak format.
19240         * haifa-sched.c (schedule_insns): Use split_all_insns.
19241         * output.h (update_life_info): Remove declaration.
19242         * recog.c (split_all_insns): From the corpse of split_block_insns,
19243         do the whole function block by block.  Use update_life_info.
19244         (recog_last_allowed_insn): New.
19245         (recog_next_insn): Mind it.
19246         (peephole2_optimize): Set it.  Walk backwards through blocks.
19247         Use update_life_info.
19248         * rtl.h (update_flow_info, replace_insns): Remove declarations.
19249         (split_all_insns): Declare.
19250         * toplev.c (rest_of_compilation): Thread prologue before flow2.
19251         Use split_all_insns.
19252
19253         * i386.md (or -1 peep2s): Disable.
19254
19255 Fri Oct  8 17:49:08 1999  Richard Henderson  <rth@cygnus.com>
19256
19257         * config/mips/mips.md (movstrsi+[123]) : Combine these into
19258         a single pattern.  Scrap the 'd' versions as unnecessary.
19259
19260         * config/mips/mips.md (tablejump_internal3,tablejump_mips161,
19261         tablejump_mips162,tablejump_internal4): The operands to a
19262         label_ref must be VOIDmode.
19263
19264 Fri Oct  8 16:12:42 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19265
19266         * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
19267
19268 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
19269
19270         * mips.c (mips_va_arg) [EABI]: Return addr_rtx.
19271
19272 Fri Oct  8 11:58:34 1999  Richard Henderson  <rth@cygnus.com>
19273
19274         * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the
19275         cache every function if ggc_p.
19276
19277 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19278
19279         * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1
19280         instead of copy_rtx.  Accept sequences that contain asm statements.
19281         * emit-rtl.c (copy_insn_1, copy_insn): New functions.
19282         (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches,
19283         orig_asm_operands_vector, copy_asm_operands_vector,
19284         orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static
19285         variables.
19286         * rtl.h (copy_insn, copy_insn_1): Declare.
19287
19288 Fri Oct  8 13:08:12 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19289
19290         * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h.
19291
19292         * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of
19293         arguments to `current_file_function_operand'.
19294
19295         * genrecog.c: Include hard-reg-set.h and resource.h in the
19296         generated output file.
19297
19298         * real.c: Include tm_p.h.
19299
19300 Fri Oct  8 18:46:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19301
19302         * i386.md (prologue_allocate_stack): Add '=' constraint letter on
19303         output operand.
19304
19305 Thu Oct  7 23:06:50 1999  Richard Henderson  <rth@cygnus.com>
19306
19307         * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber
19308         before the fctiwz insn.
19309
19310 Thu Oct  7 22:53:00 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19311                           Mark Mitchell  <mark@codesourcery.com>
19312
19313         * tree.c (make_lang_type_fn): New funtion pointer.
19314         (make_lang_type): Call it.
19315         * tree.h (make_lang_type): Declare.
19316         (make_lang_type_fn): Likewise.
19317         * rs6000.c (rs6000_build_va_list): Use make_lang_type.
19318
19319 Thu Oct  7 00:36:17 1999  Diego Novillo  <dnovillo@cygnus.com>
19320
19321         * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF
19322         make sure that HIGH instructions are copied into BASE_REGS.
19323
19324 Thu Oct  7 17:02:34 1999  Jason Merrill  <jason@yorick.cygnus.com>
19325
19326         * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner.
19327
19328 Thu Oct  7 17:01:58 1999  Greg McGary  <gkm@gnu.org>
19329
19330         * c-decl.c (finish_struct): Use simpler method of
19331         removing elements of a singly-linked list.
19332
19333 Thu Oct  7 15:23:28 1999  Michael Meissner  <meissner@cygnus.com>
19334
19335         * alpha.md (peephole2's): Comment out peephole2's that generate
19336         buggy code.
19337
19338 Thu Oct  7 12:00:53 1999  Richard Henderson  <rth@cygnus.com>
19339
19340         * genrecog.c (add_to_sequence): Disable mode check for
19341         wildcard matches.
19342
19343 Thu Oct  7 20:14:16 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19344
19345         * ggc-simple.c (init_ggc): Set empty_string.
19346
19347 Thu Oct  7 01:13:15 1999  Richard Henderson  <rth@cygnus.com>
19348
19349         * configure.in: Detect mmap.  Add --with-gc=foo to select
19350         garbage collector; default to page if mmap available.
19351         * Makefile.in (GGC): Substitute.
19352
19353 Wed Oct  6 23:56:30 1999  Richard Henderson  <rth@cygnus.com>
19354
19355         * c-decl.c (ggc_p): Enable.
19356
19357 Wed Oct  6 17:17:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19358
19359         * flow.c (verify_flow_info): Make it extern & unconditionally define.
19360
19361 1999-10-06  Brendan Kehoe  <brendan@cygnus.com>
19362
19363         * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc
19364         string for little-endian-data.
19365
19366 Wed Oct  6 16:10:35 1999  Michael Meissner  <meissner@cygnus.com>
19367
19368         * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in
19369         case somebody tries to compile --enable-checking code with gcc
19370         1.34 or such.
19371
19372 Wed Oct  6 12:22:50 1999  Richard Henderson  <rth@cygnus.com>
19373
19374         * genrecog.c (add_to_sequence): Verify operand to label_ref is
19375         VOIDmode.
19376
19377 Wed Oct  6 10:21:15 1999  Richard Henderson  <rth@cygnus.com>
19378
19379         * genconfig.c (main): Disable HAVE_conditional_arithmetic.
19380         * jump.c (jump_optimize_1): Document why.
19381
19382 Wed Oct  6 10:41:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19383
19384         * collect2.c (scan_prog_file, scan_libraries): Prototype function
19385         pointers and casts for `int_handler' and `quit_handler'.
19386
19387         * flow.c (verify_flow_info, split_hard_reg_notes,
19388         find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes,
19389         remove_edge, remove_fake_successors): Add static prototypes.
19390         (verify_flow_info): Wrap with macro ENABLE_CHECKING.
19391         (mark_set_1): Initialize variable `regno'.
19392         (unlink_insn_chain): Likewise for variable `curr'.
19393         (remove_fake_edges): Remove unused variables `e', `tmp' and `last'.
19394
19395         * loop.c (strength_reduce): Initialize variable
19396         `unrolled_insn_copies'.
19397         (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static
19398         prototypes.  Change these functions to take const PTR parameters
19399         to avoid prototype conflict when used as the comparson argument
19400         for qsort.
19401         (check_dbra_loop): Initialize variable `comparison_val'.
19402
19403         * reload.c (debug_reload_to_stream, debug_reload): Add prototypes.
19404         (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED.
19405         (find_valid_class): Initialize variable `best_class'.
19406         (find_reloads): Call memcpy, not bcopy.
19407
19408         * reload1.c (gen_mode_int, dump_needs): Add prototypes.
19409         (hard_reg_use_compare): Don't needlessly cast away const.
19410         (reload_reg_class_lower): Likewise.
19411         (choose_reload_regs): Initialize variable `regno'.
19412
19413 Tue Oct  5 16:34:12 1999  Paul Burchard <burchard@pobox.com>
19414
19415         * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing.
19416
19417 Tue Oct  5 16:14:40 1999  Michael Meissner  <meissner@cygnus.com>
19418
19419         * libgcc1-test.c (toplevel): Include stddef.h to get size_t.
19420         ({,d}discard): Add forward declarations.  Declare parameter as
19421         unused.
19422         (main_without_main): Explicitly declare return type to be int.
19423         (memcpy): Properly declare.
19424
19425         * libgcc2.c (toplevel): If inhibit_libc is defined and not
19426         building the trampoline support, declare malloc, free, and
19427         atexit.
19428         (__clear_cache): Mark arguments as potentially unused.
19429
19430         * frame.c (toplevel): If inhibit_libc is defined, declare
19431         malloc and free.
19432
19433 Tue Oct  5 12:00:32 1999  Richard Henderson  <rth@cygnus.com>
19434
19435         * flow.c (make_edge): Accept an optional 2D bitmap in which
19436         to cache edge existence.  Update all callers.
19437         (make_label_edge, make_eh_edge): Pass through the edge cache.
19438         (make_edges): Provide the cache.
19439
19440 Tue Oct  5 12:16:49 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19441
19442         * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify
19443         a char*.
19444         (local_mbtowc): Change the type of variable `i' from int to size_t.
19445
19446         * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||.
19447         (local_mbtowc, local_mblen, literal_codeset): Constify a char*.
19448
19449 Tue Oct  5 11:34:52 1999  Michael Meissner  <meissner@cygnus.com>
19450
19451         * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes
19452         after other includes that define the appropriate types.  Include
19453         tm_p.h for getting user prototypes.
19454         * ggc-callbacks.c (toplevel): Ditto.
19455         * ggc-none.c (toplevel): Ditto.
19456         * gcc-page.c (toplevel): Ditto.
19457         * ggc-simple.c (toplevel): Ditto.
19458
19459 Mon Oct  4 16:48:16 1999  Diego Novillo <dnovillo@cygnus.com>
19460                           Jonathan Larmour  <jlarmour@cygnus.co.uk>
19461
19462         * config/mips/mips.c (mips_move_2words): Split doubles if
19463         ISA >= 3, !TARGET_64BIT, and destination is not an FP register.
19464
19465 Mon Oct  4 21:47:31 1999  Richard Henderson  <rth@cygnus.com>
19466
19467         * genrecog.c (struct decision_test): New.
19468         (struct decision): Remove test-related members, sort the rest by size.
19469         (IS_SPLIT): Simplify.
19470         (new_decision, new_decision_test): New.
19471         (add_to_sequence): Use them.  No special handling for args of
19472         non-MATCH codes.
19473         (maybe_both_true): Renamed from not_both_true; return sense changed.
19474         (maybe_both_true_1, maybe_both_true_2): New.  Broken out
19475         of maybe_both_true and adjusted for decision_test.
19476         (position_merit): Remove.
19477         (nodes_identical, nodes_identical_1): New, broken out of merge_trees.
19478         (merge_accept_insn): New, broken out of merge_trees.
19479         (merge_trees): Use them.  No special case for c_test; no node
19480         splitting; use test type instead of position_merit.
19481         (factor_tests): New.
19482         (simplify_tests): New.
19483         (break_out_subroutines): Don't write code now.
19484         (find_afterward): New.
19485         (write_afterward, write_switch, write_cond): New.
19486         (write_action, is_unconditional): New.
19487         (write_node): New.  Use them.
19488         (write_tree_1): Rewrite.  Use the new functions above.
19489         (write_tree): Remove afterward processing.
19490         (write_subroutine): Simplify function variant emission.
19491         (write_subroutines): New.
19492         (same_codes, clear_codes): Remove.
19493         (same_modes, clear_modes): Remove.
19494         (write_header): New, broken out of main.
19495         (make_insn_sequence): Use new_decision and new_decision_test.
19496         (process_tree): New, broken out of main.
19497         (main): Adjust for merge_trees interface change.
19498         Don't #define operands in the output file.
19499         (record_insn_name): New, broken out of make_insn_sequence.
19500         (debug_decision_2, debug_decision_1, debug_decision_0): New.
19501         (debug_decision): New.
19502
19503 1999-10-04 21:58 -0700  Zack Weinberg  <zack@bitmover.com>
19504
19505         * resource.c (find_free_register): Mark class_str argument const.
19506         * resource.h: Update prototype to match.
19507
19508         * i386.h (PREDICATE_CODES): Add entry for long_memory_operand.
19509         * i386.md: Give all anonymous insns names.
19510
19511 Mon Oct  4 21:12:02 1999  Jeffrey A Law  (law@cygnus.com)
19512
19513         * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent
19514         blocks.
19515
19516 Mon Oct  4 21:01:39 1999  Richard Henderson  <rth@cygnus.com>
19517
19518         * toplev.c (dbr_sched_time): Unconditional.
19519         (peephole2_time): New.
19520         (compile_file): Add pass numbers to all of the dump file suffixes.
19521         Dump peephole2_time.  Don't dump times for non-applicable passes.
19522         (rest_of_compilation): Add pass numbers to dump file suffixes.
19523         Conditionalize calls to the scheduler.
19524         * invoke.texi: Update.
19525
19526 Mon Oct  4 20:25:13 1999  Anthony Green  <green@cygnus.com>
19527
19528         * flow.c (make_edges): Fix insn iteration.
19529         (find_basic_blocks): Assign NULL_RTX, not 0, to rtx.
19530         (find_basic_blocks_1): Fix spelling mistake.
19531
19532 Mon Oct  4 16:56:11 1999  Richard Henderson  <rth@cygnus.com>
19533
19534         * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that
19535         always have side-effects.  Use memset not bzero.
19536         (make_node): Likewise.
19537
19538 Mon Oct  4 16:22:20 1999  Mark Mitchell  <mark@codesourcery.com>
19539
19540         * stmt.c (expand_anon_union_decl): When any of the elements of the
19541         union is addressable, so is the entire union.
19542
19543 Mon Oct  4 11:38:33 1999  Richard Henderson  <rth@cygnus.com>
19544
19545         * sbitmap.c (sbitmap_ones): Don't set too many bits.
19546
19547         * bitmap.h (enum bitmap_bits): Add BITMAP_XOR.
19548         * bitmap.c (bitmap_operation): Return true iff TO changed.
19549         (bitmap_equal_p): New.
19550         (bitmap_bit_p): Tidy arithmetic.
19551         (debug_bitmap_file): Likewise.
19552
19553 Mon Oct  4 11:28:37 1999  Richard Henderson  <rth@cygnus.com>
19554
19555         * toplev.c (rest_of_compilation): Turn on cse_not_expected
19556         before cse2 instead of after.
19557
19558 Mon Oct 4 09:55:17 1999  Stan Cox  <scox@cygnus.com>
19559
19560         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large
19561         register offsets.
19562
19563 Mon Oct  4 08:54:12 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
19564
19565         * cppinit.c (is_idchar initializer): Loosen tests to accept
19566         gcc 2.>6 and >2.
19567
19568 Mon Oct  4 02:31:20 1999  Mark Mitchell  <mark@codesourcery.com>
19569
19570         * mips.md: Define conditional move patterns for floating point
19571         operands and DI mode conditions.
19572
19573 Mon Oct  4 02:12:41 1999  Mark Mitchell  <mark@codesourcery.com>
19574
19575         * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that
19576         always have side-effects.
19577
19578 Sun Oct  3 14:14:16 1999  Jeffrey A Law  (law@cygnus.com)
19579
19580         * mn10200.c (asm_file_start): Fix typo.
19581
19582         * cppinit.c (is_idchar initializer): Tighten tests for when
19583         to put the table into initialized memory.
19584
19585         * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx,
19586         not an array of rtunion.
19587         * gcc-page.c (ggc_alloc_rtvec): Similarly.
19588         * gcc-simple (ggc_free_rtvec): Similarly.
19589
19590         * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead
19591         of rtunions.
19592
19593         * mbchar.h: Add missing #endif.
19594
19595         * t-fr30 (LIB2FUNCS_EXTRA): Remove definition.
19596         (FPBIT, DPBIT): Define.
19597
19598 Sun Oct  3 12:44:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19599
19600         * print-tree.c (print_node, indent_to): Remove redundant prototypes.
19601
19602         * profile.c (instrument_arcs, output_gcov_string,
19603         tablejump_entry_p): Add static prototypes.
19604         (output_gcov_string): Constify a char*.
19605
19606         * regmove.c (replacement_quality, fixup_match_2): Add static
19607         prototypes.
19608
19609         * resource.h (reg_dead_p): Add extern prototype.
19610
19611         * rtl.c (trim_filename): Add static prototype.
19612
19613         * scan-decls.c (skip_to_closing_brace): Likewise.
19614
19615         * stmt.c (expand_decl_cleanup_no_eh): Hide definition.
19616         (expand_end_case): Initialize variable `range'.
19617         (emit_case_nodes): Remove unused prototype `rtx_fn'.
19618
19619         * varasm.c (asm_emit_uninitialised): Add static prototype.
19620         (asm_emit_uninitialised, assemble_variable): Mark parameter with
19621         ATTRIBUTE_UNUSED.
19622
19623 Sun Oct  3 12:24:52 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19624
19625         * cpplib.c (if_directive_nameo): Add static prototype.
19626
19627         * cse.c (cse_insn): Remove unused variable `p'.
19628
19629         * except.c (create_rethrow_ref, push_entry,
19630         receive_exception_label, new_eh_region_entry, find_func_region,
19631         clear_function_eh_region, process_nestinfo): Add static prototypes.
19632         (get_reg_for_handler): Hide definition.
19633         (process_nestinfo): Initialize variable `extra_handlers'.
19634
19635         * expr.h (expand_builtin_longjmp): Add extern prototype.
19636
19637         * final.c (final_addr_vec_align, align_fuzz): Add static prototypes.
19638
19639         * function.c (prepare_function_start): Likewise.
19640         (pop_function_context_from): Mark parameter `context' with
19641         ATTRIBUTE_UNUSED.
19642         (push_temp_slots_for_block, flush_addressof): Hide definition.
19643
19644         * gcov.c (init_arc, reverse_arcs, create_program_flow_graph,
19645         solve_program_flow_graph, calculate_branch_probs,
19646         function_summary, main, fancy_abort): Add prototypes.
19647
19648         * gen-protos.c (add_hash, parse_fn_proto, main): Likewise.
19649         (add_hash): Constify a char*.
19650
19651         * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr,
19652         ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr,
19653         ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes.
19654
19655         * integrate.c (expand_inline_function_eh_labelmap): Likewise.
19656
19657         * lists.c (free_list, zap_lists): Likewise.
19658
19659 Sun Oct  3 12:05:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19660
19661         * alias.c (nonlocal_reference_p): Add static prototype.
19662
19663         * bitmap.c (bitmap_element_allocate): Prototype args in function
19664         pointer cast.
19665
19666         * builtins.c (stabilize_va_list): Add static prototype.
19667         (expand_builtin_va_arg): Constify a char*.
19668
19669         * c-lex.c (getch, put_back, extend_token_buffer_to,
19670         read_line_number, token_getch, token_put_back): Add static
19671         prototypes.
19672
19673         * c-parse.gperf (hash, is_reserved_word): Likewise.
19674
19675         * cccp.c (is_dir_separator): Likewise.
19676
19677 Sat Oct  2 16:07:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19678
19679         * graph.h: New file to prototype functions exported by graph.c.
19680
19681         * Makefile.in (graph.o, toplev.o): Depend on graph.h.
19682
19683         * graph.c: Include graph.h.
19684
19685         * toplev.c: Likewise.  Remove redundant prototypes.
19686
19687 Sat Oct  2 11:28:33 1999  Krister Walfridsson <cato@df.lth.se>
19688
19689         * invoke.texi: Removed duplicated description for -Q.
19690
19691 Sat Oct  2 11:16:00 1999  Jim Kingdon  <http://developer.redhat.com>
19692
19693         * extend.texi: Grammar fix in __extension__ text.
19694
19695 Sat Oct  2 11:06:31 1999  Richard Henderson  <rth@cygnus.com>
19696
19697         * md.texi (define_peephole2): New section.
19698
19699 Sat Oct  2 10:57:56 1999  Jan Hubicka  <hubicka@freesoft.cz>
19700
19701         * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0
19702         (mov $-1 to or peepholer): Enable for pentium when optimizing for
19703         speed.
19704
19705 Sat Oct  2 10:55:25 1999  Jan Hubicka  <hubicka@freesoft.cz>
19706
19707         * builtins.c (expand_builtin_strlen): Fix best mode searching loop.
19708
19709 Sat Oct  2 10:53:22 1999  Jan Hubicka  <hubicka@freesoft.cz>
19710
19711         * i386.md (ffs expander): Emit Pentium friendly code for
19712         TARGET_PENTIUM.
19713
19714 Sat Oct  2 02:48:21 1999  Mark P. Mitchell  <mark@codesourcery.com>
19715
19716         * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES
19717         for non-trees.
19718         (build1): Likewise.
19719
19720 Fri Oct  1 18:01:11 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19721
19722         * i386elf.h (TARGET_DEFAULT): Use symbolic constants.
19723
19724 Fri Oct  1 12:42:53 1999  Andreas Schwab  <schwab@suse.de>
19725
19726         * config/m68k/m68k.c (use_return_insn): Return false if the pic
19727         register is in use.
19728
19729 Fri Oct  1 10:56:06 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19730
19731         * md.texi (No Constraints): Delete section.
19732         * Makefile.in (genattrtab.o): Don't depend on "insn-config.h".
19733         * final.c (final_scan_insn): We always have register constraints.
19734         * genattrtab.c: Don't include "insn-config.h".
19735         (write_attr_case): We always have register constraints.
19736         * genconfig.c (register_constraint_flag): Delete.
19737         (walk_insn_part): Don't check whether we have register constraints.
19738         (main): Don't write out "#define REGISTER_CONSTRAINTS".
19739         * genoutput.c (have_constraints): Delete.
19740         (main): Don't set it.
19741         (output_operand_data): We always have constraints.
19742         (scan_operands): Likewise.
19743         (compare_operands): Likewise.
19744         * local-alloc.c (block_alloc): We always have constraints.
19745         (requires_inout): Always compile this function.
19746         * recog.c (extract_insn): We always have constraints.
19747         (constrain_operands, reg_fits_class_p): Always compile these
19748         functions.
19749         * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS
19750         fields.
19751         (struct insn_operand_data): Likewise.
19752         * regclass.c (regclass): We always have constraints.
19753         (record_reg_classes, copy_cost, record_address_regs,
19754         auto_inc_dec_reg_p): Always compile these functions.
19755         * regmove.c (regmove_optimize): We always have constraints.
19756         * reload.c (find_reloads): Likewise.
19757         * reload1.c (reload): Likewise.
19758         (reload_cse_simplify_operands): Likewise.
19759         * i860.c (output_delay_insn): Likewise.
19760
19761 Thu Sep 30 23:04:41 1999  Mark P. Mitchell  <mark@codesourcery.com>
19762
19763         * iris6.h (BUILD_VA_LIST_TYPE): Define.
19764
19765 Thu Sep 30 18:44:50 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
19766
19767         * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node
19768         for the va_list record.
19769
19770 Thu Sep 30 18:34:54 1999  Jan Hubicka  <hubicka@freesoft.cz>
19771
19772         * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in
19773         prologues.
19774
19775 Thu Sep 30 18:31:36 1999  Jan Hubicka  <hubicka@freesoft.cz>
19776
19777         * alias.c: Include insn-flags.h.
19778         * Makefile.in (alias.o): Update.
19779
19780 Thu Sep 30 18:21:30 1999  Jan Hubicka  <hubicka@freesoft.cz>
19781
19782         * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons
19783         to LTU and GEU.  Handle more cases using sbb.
19784
19785 Thu Sep 30 18:18:39 1999  Jan Hubicka  <hubicka@freesoft.cz>
19786
19787         * i386.md (truncatexfdf splitters): Do not use subreg.
19788         (fop XFmode patterns): Fix mode in operand testing.
19789
19790 Thu Sep 30 18:04:13 1999  Richard Henderson  <rth@cygnus.com>
19791
19792         * jump.c (jump_optimize_1): Amend last change to test only the
19793         form of the operand, not the insn.
19794
19795         * jump.c (jump_optimize_1) [conditional_move]: Use general_operand
19796         not register_operand to determine when B may need preloading.
19797
19798 Thu Sep 30 17:39:16 1999  Richard Henderson  <rth@cygnus.com>
19799
19800         * alpha.md (*): Use nonimmediate not general_operand for SET_DEST.
19801         (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC.
19802         (call-value patterns): Move to end of file.
19803         (*): Remove mode from label_ref in (pc) context.
19804         (movstrqi): Use memory not general_operand for BLKmode operands.
19805         (prologue_stack_probe_loop, builtin_longjmp): Add missing mode
19806         to register_operand operands.
19807         (peep2 patterns): Convert from commented-out peephole patterns.
19808
19809 Thu Sep 30 14:39:17 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19810
19811         * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE
19812         to BUILT_IN_INIT_DWARF_REG_SIZES.
19813         * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES):
19814         Renamed from BUILT_IN_DWARF_REG_SIZE; call
19815         expand_builtin_init_dwarf_reg_sizes.
19816         * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size
19817         with __builtin_init_dwarf_reg_size_table.
19818         * dwarf2out.c (struct reg_size_range): Delete.
19819         (expand_builtin_init_dwarf_reg_sizes): New function.
19820         (expand_builtin_dwarf_reg_size): Delete.
19821         * except.h (expand_builtin_init_dwarf_reg_sizes): Declare.
19822         (expand_builtin_dwarf_reg_size): Don't declare.
19823         * libgcc2.c (dwarf_reg_size_table_initialized): New.
19824         (dwarf_reg_size_table): New.
19825         (init_reg_size_table): New function.
19826         (copy_reg): Use dwarf_reg_size_table.
19827         (eh_context_initialize): Make sure dwarf_reg_size_table is initialized
19828         before use.
19829
19830 Thu Sep 30 05:40:34 1999  Richard Earnshaw <rearnsha@arm.com>
19831
19832         * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR):
19833         Correctly build argument list to constructor and destructor functions.
19834
19835 Thu Sep 30 00:13:27 1999  Dirk Zoller  <duz@rtsffm.com>
19836
19837         * c-tree.h (warn_float_equal): Declare.
19838         * c-decl.c (warn_float_equal): Define.
19839         (c_decode_option): Recognize -W[no-]float-equal.
19840         * c-typeck.c (build_binary_op): Conditionally warn
19841         about equality tests of floating point types.
19842         * toplev.c (documented_lan_options): Add -W[no-]float-equal.
19843         * invoke.texi: Add docs for -Wfloat-equal warning.
19844
19845 Wed Sep 29 23:43:39 1999  Jeffrey A Law  (law@cygnus.com)
19846
19847         * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of
19848         generating RTL directly.
19849         * mips.h (INIT_TARGET_OPTABS): Likewise.
19850         * mn10200.h (INIT_TARGET_OPTABS): Likewise.
19851
19852         * expr.h (init_mov_optab): Delete declaration
19853
19854         * h8300.c (WORD_REG_USED): Update to avoid useless register
19855         saves in interrupt functions and functions which never return.
19856
19857         * cse.c (struct set): Delete inner_dest_loc field.
19858         (cse_insn): Remove assignments to inner_dest_loc field.
19859
19860 Wed Sep 29 16:06:20 1999  Richard Henderson  <rth@cygnus.com>
19861
19862         * ggc-page.c: Don't include <unistd.h> etc taken care of
19863         by "system.h".  Include <sys/mman.h> afterward.
19864
19865 Wed Sep 29 16:05:18 1999  Richard Henderson  <rth@cygnus.com>
19866
19867         * rs6000.c (rs6000_encode_section_info): If ggc_p, use
19868         ggc_alloc_string.
19869
19870 Tue Sep 28 16:45:40 1999  David Edelsohn  <edelsohn@gnu.org>
19871
19872         * xcoffout.c (xcoffout_declare_function): Add documentation.
19873         * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not
19874         TARGET_64BIT.  Compare constant to -1, not bit pattern.
19875         (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT.
19876         (expand_block_move): Allow 8 DImode loads for PowerPC64.  Fix
19877         gen_movsi typos.
19878
19879 Tue Sep 28 16:43:14 1999  Nick Clifton  <nickc@cygnus.com>
19880
19881         * dwarf2out.c (add_abstract_origin_attribute): Abort if
19882         origin_die is NULL.
19883         (gen_inlined_enumeration_type_die): Do not abort if the type has
19884         not been writeen out.
19885         (gen_inlined_structure_type_die): Do not abort if the type has
19886         not been writeen out.
19887         (gen_inlined_union_type_die): Do not abort if the type has
19888         not been writeen out.
19889         (gen_tagged_type_instantiation_die): Do not abort if the type
19890         has not been written out.
19891
19892 Tue Sep 28 14:33:47 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
19893
19894         * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined,
19895         call it.
19896         * reg-stack.c (straighten_stack): Copy hard reg set with
19897         COPY_HARD_REG_SET.
19898
19899 Tue Sep 28 01:11:05 1999  Richard Henderson  <rth@cygnus.com>
19900
19901         * builtins.c (stabilize_va_list): Stabilize array type va_list
19902         to a pointer type, not the base record type.
19903         (expand_builtin_va_copy): Dereference the pointers explicitly;
19904         use the correct size for the copy.
19905
19906         * rs6000.c (rs6000_va_start): Dereference valist to get to the record.
19907         (rs6000_va_arg): Likewise.
19908
19909 Mon Sep 27 23:27:21 1999  Richard Henderson  <rth@cygnus.com>
19910
19911         * rtl.h (struct rtx_def): Move gc_mark to align mode field.
19912
19913 Mon Sep 27 23:20:29 1999  Mark Mitchell  <mark@codesourcery.com>
19914
19915         * tree.h (struct tree_decl): Use `bclass', not `class', in name of
19916         field.
19917         (DECL_BUILT_IN_CLASS): Adjust accordingly.
19918
19919 Mon Sep 27 23:03:16 1999  Richard Henderson  <rth@cygnus.com>
19920
19921         * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New.
19922         (init_ggc): Use it instead of a constant.
19923         (ggc_collect): Bound allocated_last_gc by it.
19924
19925 Mon Sep 27 19:06:04 1999  Jeffrey A Law  (law@cygnus.com)
19926
19927         * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems
19928         with va_list.
19929
19930 Mon Sep 27 19:40:17 CEST 1999   Marc Espie <espie@cvs.openbsd.org>
19931
19932         * configure.in (mips*el-*-openbsd*):  Don't duplicate default settings.
19933         (mips*-*-openbsd*):  Let big endian configuration be a fragment.
19934         * configure:  Regen.
19935         * config/mips/openbsd.h:  New, OpenBSD little endian target.
19936         * config/mips/openbsd-be.h:  New, OpenBSD big endian target fragment.
19937         * config/mips/xm-openbsd.h:  New, OpenBSD host.
19938
19939 Mon Sep 27 10:28:48 1999  Andreas Schwab  <schwab@suse.de>
19940
19941         * config/m68k/m68k.c (output_function_prologue,
19942         output_function_epilogue): Use
19943         current_function_uses_pic_offset_table instead of regs_ever_live
19944         to decide whether to save/restore pic register.
19945         (legitimize_pic_address): Don't modify regs_ever_live any more.
19946
19947 Sun Sep 26 10:55:36 1999  Mark Mitchell  <mark@codesourcery.com>
19948
19949         * function.h (struct function): Add x_dont_save_pending_sizes_p.
19950         * stor-layout.c (variable_size): Don't add sizes to the pending
19951         sizes list if x_dont_save_pending_sizes_p is set.
19952
19953 Sun Sep 26 16:36:52 1999  Robert Lipe  (robertlipe@usa.net)
19954
19955         * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument
19956         for symbolic_operand().
19957         * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise.
19958
19959 Sun Sep 26 07:37:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19960
19961         * combine.c (gen_rtx_combine): Add missing call to va_end().
19962
19963         * final.c (asm_fprintf): Likewise.
19964
19965         * genattrtab.c (attr_rtx): Likewise.
19966
19967 Sat Sep 25 13:11:07 1999  Jeffrey A Law  (law@cygnus.com)
19968
19969         * cse.c: Update comments.
19970         (cse_insn): When converting a conditional/computed jump into
19971         an unconditional jump, always make sure a BARRIER immediately
19972         follows the converted jump.  Do not delete unreachable code.
19973         (cse_basic_block): Do not delete unreachable code.
19974         * toplev.c (rest_of_compilation): Move call to
19975         delete_trivially_dead_insns after the conditional call to
19976         jump_optimize.
19977
19978 Sat Sep 25 09:03:17 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
19979
19980         * collect2.c (make_temp_file): Don't prototype.
19981
19982         * gcc.c (make_temp_file): Likewise.
19983
19984         * mips.c (mips_make_temp_file): Renamed from `make_temp_file'.
19985
19986 Sat Sep 25 13:42:15 1999  Nick Clifton  <nickc@cygnus.com>
19987
19988         * varasm.c (asm_emit_uninitialised): New function: Generate
19989         the assembler statements necessary to declare an uninitialised
19990         variable.
19991         (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialised
19992         variable.
19993         (ASM_EMIT_BSS): New macro: Emit an entry in the bss section.
19994         (ASM_EMIT_COMMON): New macro: Emit an entry in the common
19995         section.
19996         (assemble_variable): Use asm_emit_uninitialised to emit an
19997         uninitialised variable.
19998
19999 Fri Sep 24 17:10:56 1999  Nick Clifton  <nickc@cygnus.com>
20000
20001         * combine.c (simplify_comparison): Cope with downshifting a 32 bit
20002         constant on a 64 bit host.  Patch supplied by Geoffrey Keating
20003         <geoffk@cygnus.com>.
20004
20005 Fri Sep 24 10:48:10 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20006
20007         * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined.
20008         * c-common.h (builtin_function): Don't declare.
20009
20010         * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than
20011         DECL_BUILT_IN.
20012         (pushdecl): Likewise.
20013         (finish_decl): Likewise.
20014         (builtin_function): New arg CLASS.  Arg FUNCTION_CODE now of type
20015         int.  All callers changed.
20016         Set the builtin's DECL_BUILT_IN_CLASS.
20017         * tree.h (enum built_in_class): New.
20018         (enum built_in_function): Delete NOT_BUILT_IN.
20019         (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now
20020         in a union.
20021         (DECL_SET_FUNCTION_CODE): Likewise.
20022         (DECL_BUILT_IN_CLASS): New macro.
20023         (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS.
20024         (struct tree_decl): Split builtin function code field into a
20025         struct.
20026         (builtin_function): Declare.
20027
20028 Fri Sep 24 01:45:05 1999  Mark Mitchell  <mark@codesourcery.com>
20029
20030         * optabs.c (init_traps): Fix typo in last change.
20031
20032 Fri Sep 24 01:10:11 1999  Mark Mitchell  <mark@codesourcery.com>
20033
20034         * toplev.c (rest_of_decl_compilation): Update comment.
20035
20036 Fri Sep 24 11:57:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
20037
20038         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol
20039         in .sbss if appropriate.
20040         (EXTRA_SECTION_FUNCTIONS): Add sbss.
20041         (SBSS_SECTION_ASM_OP): New macro.
20042         * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss.
20043         (EXTRA_SECTIONS): Add in_sbss.
20044         * config/mips/mips.h: Prototype sbss_section.
20045
20046 Thu Sep 23 18:18:55 1999  Mark Mitchell  <mark@codesourcery.com>
20047
20048         * stmt.c (expand_start_bindings): Don't allow cleanup instructions
20049         to disappear.
20050
20051 Thu Sep 23 18:07:01 1999  Mark Mitchell  <mark@codesourcery.com>
20052
20053         * optabs.c (init_traps): Register trap_rtx as a GC root.
20054
20055 Thu Sep 23 17:41:47 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20056
20057         * config/mips/mips.c (function_arg_pass_by_reference): Define
20058         unconditionally, since it's called unconditionally.
20059
20060 Thu Sep 23 13:40:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
20061
20062         * toplev.c (documented_lang_options): Add -fshort-wchar.
20063         * c-decl.c (c_decode_option): Likewise.
20064         (init_decl_processing): If -fshort-wchar, use 'short unsigned int'
20065         for wchar_t.
20066         * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node.
20067         * gcc.c (default_compilers): If -fshort-wchar,
20068         override __WCHAR_TYPE__.
20069         * tm.texi (C Dialect Options): Add -fshort-wchar.
20070
20071         * dwarf2out.c (output_aranges): Use DW_AT_location to find the
20072         symbol for a variable.
20073
20074         * cpplib.h (CPP_PREPROCESSED): New macro.
20075         * cpplib.c (handle_directive): Don't complain about `# NUMBER' if
20076         we're seeing this input for a second time.
20077
20078 Thu Sep 23 12:54:49 1999  Alex Samuel  <samuel@codesourcery.com>
20079
20080         * emit-rtl.c (init_emit_once): Initialize modes first.
20081
20082 Sun Sep 19 01:23:23 1999  Alex Samuel  <samuel@codesourcery.com>
20083
20084         * config/i386/i386.c (pic_label_name): Change to char pointer.
20085         (global_offset_table): New variable.
20086         (load_pic_register): Fill global_offset_table if it hasn't
20087         already been done.  Allocate pic_label_name dynamically.
20088         * ggc.h (empty_string): New variable.
20089         * ggc-simple.c (empty_string): Likewise.
20090         (init_ggc): Allocate empty_string and add as root.
20091         * stmt.c (digit_strings): New variable.
20092         (init_stmt): Add last_block_end_note as root.  Allocate and
20093         initialize digit_strings.
20094         (expand_asm_operands): Use empty_string instead of string
20095         constant.  Use digit_strings instead of string constants.
20096         * profile.c (init_arc_profiler): Allocate string with
20097         ggc_alloc_string instead of xmalloc.
20098         (output_func_start_profiler): Likewise.
20099         * c-typeck.c (digest_init): Check if init is error_mark_node.
20100
20101 Thu Sep 23 12:59:14 1999  Alex Samuel  <samuel@codesourcery.com>
20102                           Richard Henderson  <rth@cygnus.com>
20103
20104         * ggc-page.c: New file.
20105         * Makefile.in (ggc-page.o): New.
20106
20107 Thu Sep 23 13:55:21 1999  Jeffrey A Law  (law@cygnus.com)
20108
20109         * invoke.texi: Document -fdelete-null-pointer-checks
20110         * toplev.c (flag_delete_null_pointer_checks): New.
20111         (f_options): Add entry for -fdelete-null-pointer-checks.
20112         (rest_of_compilation): Conditionalize null pointer check
20113         elimination on flag_delete_null_pointer_checks.
20114         (main): If -O2 or greater, enable -fdelete-null-pointer-checks
20115
20116 1999-09-23 10:56 -0700  Zack Weinberg  <zack@bitmover.com>
20117
20118         * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add
20119         copyright notice and special exception to GPL.
20120
20121 Thu Sep 23 13:40:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20122
20123         * abi64.h (mips_function_value): Add prototype arguments.
20124
20125         * mips-protos.h: New file with mips prototypes.
20126
20127         * mips.c: Include "tm_p.h".
20128         (mktemp, lookup_name): Add prototype arguments.
20129         (extern_list, string_constant, mips_fill_delay_slot,
20130         mips_output_external, mips_output_external_libcall,
20131         mips_output_filename, mips_declare_object, function_prologue,
20132         mips_expand_prologue, function_epilogue, mips16_constant,
20133         build_mips16_function_stub, mips_output_conditional_branch):
20134         Constify a char*.
20135         (mips_va_start): Remove unused variable `u'.
20136         (mips_va_arg): Cast value to unsigned when comparing against one.
20137         (trace): Delete.
20138         (save_restore_insns, mips_expand_prologue): Add missing arg in
20139         call to `large_int'.
20140
20141         * mips.h: Move prototypes to mips-protos.h.
20142         (data_section, memory_address_p, rdata_section,
20143         readonly_data_section, simple_epilogue_p, text_section): Delete
20144         prototypes delcared elsewhere.
20145         (mips_epilogue_delay_slots, print_options): Delete unused decls.
20146         (trace): Delete.
20147         (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace.
20148
20149         * mips.md: Delete extra args in call to `mips_move_2words'.
20150
20151         * xm-iris6.h (alloca): Add prototype argument.
20152
20153         * genpeep.c: Include "tm_p.h" in generated output file.
20154
20155 Thu Sep 23 10:36:55 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20156
20157         * basic-block.h (find_edge_index): Change parameters.
20158         * flow.c (verify_edge_list): Pass basic_block parameters to
20159         find_edge_index instead of integers.
20160
20161 Thu Sep 23 15:54:12 1999  Nick Clifton  <nickc@cygnus.com>
20162
20163         * combine.c (simplify_comparison): Use an unsigned shift to adjust
20164         the constant.
20165
20166 Thu Sep 23 08:46:21 1999  Guy Harris  <guy@netapp.com>
20167
20168         * gcc.1: Fix a formatting error.
20169
20170 Wed Sep 22 16:10:21 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
20171
20172         * install.texi (Configurations): Remove pyramid. Add fr30, i686,
20173         i786, mn10200, mn10300, pdp11, v850.
20174
20175 Thu Sep 23 07:37:13 1999  Dan Nicolaescu  <dann@ics.uci.edu>
20176
20177         * libgcc2.c (num_digits): Add prototype with
20178         __attribute__((const)).
20179         (__terminate): Add prototype.
20180
20181 Thu Sep 23 05:32:06 1999  Richard Henderson  <rth@cygnus.com>
20182
20183         * builtins.c, dbxout.c, varasm.c: Include tm_p.h.
20184
20185         * alpha/alpha.c (print_operand): Fix type of `code'.
20186         (alpha_output_filename): Constify.
20187         * alpha/alpha.h: Move all function declarations ...
20188         * alpha/alpha-protos.h: ... here.  New file.
20189         * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function.
20190         (SECTION_FUNCTION_TEMPLATE): Likewise.
20191
20192 Thu Sep 23 11:15:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20193
20194         * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p.
20195         * expr.c (expand_expr): Likewise.
20196         (do_jump): Likewise.
20197         (do_store_flag): Pass ccp_store_flag to can_compare_p.
20198         * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and
20199         accessor macros.
20200         (enum can_compare_purpose): New.
20201         (can_compare_p): Adjust prototype.
20202         (prepare_cmp_insn, prepare_operand): Declare.
20203         * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab.
20204         * optabs.c (cmp_available_p): Deleted.
20205         (expand_abs): Pass ccp_jump to can_compare_p.
20206         (can_compare_p): New arg PURPOSE.  Check for combined optabs.
20207         (prepare_cmp_insn): No longer static.  Add arg PURPOSE.
20208         Call can_compare_p rather than cmp_available_p.
20209         (prepare_operand): No longer static.
20210         (emit_cmp_and_jump_insn): Check for and use cbranch patterns.
20211         (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn.
20212         (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn
20213         sequence to use emit_cmp_and_jump_insns.
20214         (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab.
20215
20216 Wed Sep 22 17:58:01 1999  Stan Cox  <scox@cygnus.com>
20217
20218         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large
20219         register offsets; let LEGITIMIZE_ADDRESS load it into a register.
20220         (LEGITIMIZE_ADDRESS): Use plus_constant to avoid
20221         (plus (reg) (const_int 0))
20222         * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls.
20223
20224 Wed Sep 22 17:55:31 1999  David Edelsohn  <edelsohn@gnu.org>
20225
20226         * rs6000.c (expand_block_move): DImode loads and stores require
20227         word-aligned displacements.  Increment address registers with
20228         adddi3 on 64-bit platform.  Use TARGET_POWERPC64 not TARGET_64BIT.
20229
20230 Wed Sep 22 17:35:55 1999  Michael Meissner  <meissner@cygnus.com>
20231
20232         * dwarf2out.c (base_type_die): Use the name __unknown__ if there
20233         is no name for the base type, rather than segfault.  If we are
20234         writing out a complex integer type, use DW_ATE_lo_user.
20235
20236         * expr.c (emit_move_insn_1): If we are copying a complex that fits
20237         in one word or less (complex char, complex short, or on 64 bit
20238         systems complex float) to/from a hard register, copy it through
20239         memory instead of dying in gen_{real,imag}part.  If we have a
20240         short complex type, prevent inlining since it allocates stack
20241         memory.
20242
20243         * tree.c (build_complex_type): If we are writing dwarf2 output,
20244         generate a name for complex integer types.
20245
20246 Wed Sep 22 11:34:08 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20247
20248         * basic-block.h (add_noreturn_fake_exit_edges): Use correct name.
20249         * flow.c (remove_edge): Remove extra whitespace.
20250         (remove_fake_edges): Fix comment.
20251         (add_noreturn_fake_exit_edges): Use the correct name.
20252
20253 Wed Sep 22 16:12:40 BST 1999  Nathan Sidwell  <nathan@acm.org>
20254
20255         * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables.
20256         (mostlyclean): Depend on INTL_MOSTLYCLEAN.
20257         (clean): Depend on INTL_CLEAN.
20258         (maintainer-clean): Adjust.
20259
20260 Wed Sep 22 10:18:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20261
20262         * configure.in (AC_PREREQ): Bump to 2.13.
20263         (AC_C_STRINGIZE): Call this instead of using a custom macro.
20264
20265         * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__.
20266
20267         * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY.
20268
20269         * acconfig.h (HAVE_CPP_STRINGIFY): Delete.
20270
20271         * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete.
20272         (HAVE_STRINGIZE): Define.
20273
20274 Wed Sep 22 06:25:15 1999  Jim Kingdon  <http://developer.redhat.com>
20275
20276         * c-parse.in: save and restore warn_pointer_arith on __extension__
20277         along with pedantic.
20278         (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added.
20279         Set the type of extension to itype rather than $<itype>1 kludge.
20280         * extend.texi (Alternate Keywords): Adjust documentation.
20281         * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt.
20282
20283 Wed Sep 22 06:06:57 1999  Jeffrey A Law  (law@cygnus.com)
20284
20285         * pa.c, pa.h, pa.md: Support multiple assembler dialects in
20286         most assembler templates.
20287
20288         * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0
20289         FP loads and stores.
20290         (following_call): Always return zero for the PA8000.
20291         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0
20292         FP loads and stores.
20293         (LEGITIMIZE_RELOAD_ADDRESS): Similarly.
20294
20295         * pa.h (BRANCH_COST): Define.
20296
20297         * pa.md (return, return_internal): Use bve for PA2.0.
20298
20299         * pa.md (fused multiply): Add variants which reduce height for the
20300         fused multiply, but which still generate 2 insns.
20301         (fnegabs): Similarly.
20302
20303         * pa.md (subsi3): Turn into an expander.  Create two anonymous
20304         patterns.  One for PA2.0 one for PA1.x.  Use mtsarcm for PA2.0.
20305         * pa.h (EXTRA_CONSTRAINT): Handle 'S'.
20306
20307         * pa.md (floatunssisf2, floatunssidf2): Generate different RTL
20308         for TARGET_PA_20.
20309         (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0
20310         code generation.
20311         (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise.
20312         (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise.
20313
20314         * regclass.c (init_regs): Add "top_of_stack" as a garbage
20315         collection root.
20316
20317         * flow.c (record_active_eh_regions): Terminate loop after finding
20318         the last insn in the last basic block.
20319
20320 Wed Sep 22 20:25:00 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20321
20322         * config/c4x/c4x.md: Delete parallel instruction peepholes.
20323
20324 Wed Sep 22 19:59:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20325
20326         * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots.
20327
20328 Wed Sep 22 19:56:25 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20329
20330         * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn
20331         splitting to not use output template.
20332
20333 Wed Sep 22 19:50:12 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
20334
20335         * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start.
20336         * config/c4x/c4x.c (c4x_va_start): New function.
20337
20338 Tue Sep 21 18:40:01 1999  Jan Hubicka  <hubicka@freesoft.cz>
20339
20340         * genrecog.c (not_both_true): Handle correctly cases when called for
20341         tests with different positions in the insn.
20342
20343 Tue Sep 21 18:29:11 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20344
20345         * machmode.h (HOST_PTR_PRINTF): Move from here ...
20346
20347         * system.h (HOST_PTR_PRINTF): ... to here.
20348
20349         * mips-tfile.c: Don't include machmode.h.
20350
20351         * Makefile.in (MACHMODE_H): New variable.  Update to use it.
20352         (mips-tfile.o): Don't depend on machmode.h.
20353
20354 Tue Sep 21 18:27:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20355
20356         * haifa-sched.c (sched_analyze): Rename local variable `region' to
20357         avoid conflicts with typedef struct `region' at the top level scope.
20358
20359 Tue Sep 21 14:14:50 1999  Richard Henderson  <rth@cygnus.com>
20360
20361         * basic-block.h (basic_block): Add eh_beg, eh_end.
20362         * flow.c (entry_exit_blocks): Update.
20363         (find_basic_blocks): Don't allocate bb_eh_end, or pass it around.
20364         Call new functions.
20365         (find_basic_blocks_1): Don't record eh_list at each bb.  Use
20366         lists.c functions to allocate insn lists.
20367         (make_edges): Use eh_beg+eh_end, not the lists.  Split out EH
20368         edge creation ...
20369         (make_eh_edge): ... here.  New.
20370         (move_stray_eh_region_notes): New.
20371         (record_active_eh_regions): New.
20372         (delete_unreachable_blocks): Split out block merging ...
20373         (try_merge_blocks): ... here.  New.
20374         (merge_blocks_move_predecessor_nojumps): Remove edge arg.
20375         Dump debugging data.
20376         (merge_blocks_move_successor_nojumps): Likewise.
20377         (merge_blocks): Use eh_beg+eh_end to validate block movement.
20378
20379 Tue Sep 21 11:15:03 1999  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
20380
20381         * extend.texi (Bound member functions): Document unbound pmf
20382         conversion.
20383
20384 Tue Sep 21 14:55:11 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20385
20386         * flow.c (split_edge): Handle insertion on a fallthrough edge which
20387         has the EXIT_BLOCK as a dest.
20388
20389 Tue Sep 21 14:51:23 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20390
20391         * flow.c (remove_edge): New function to remove an edge from the
20392         flow graph.
20393         (remove_fake_successors): New function to remove fake successor edges.
20394         (remove_fake_edges): New function to remove all fake edges from the
20395         flow graph.
20396         (add_fake_exit_edges): New function to add fake edges from all blocks
20397         with no successors to the exit block.
20398         * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add
20399         prototypes for new functions.
20400
20401 Tue Sep 21 14:49:53 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
20402
20403         * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR):
20404         Use Pmode to determine whether to output .dword or .word.
20405
20406 Tue Sep 21 11:04:34 1999  Alex Samuel  <samuel@codesourcery.com>
20407
20408         * tree.c (built_in_filename): New variable.
20409         (BUILT_IN_FILENAME): New macro.
20410         (init_tree_codes): Allocate built_in_filename.
20411         (make_node): Use built_in_filename instead of string constant.
20412
20413 Tue Sep 21 14:13:27 1999  Nick Clifton  <nickc@cygnus.com>
20414
20415         * configure.in: Add fr30 target.
20416         * configure: Regenerate.
20417         * config/fr30: New directory.
20418         * config/fr30/crti.asm: New file.
20419         * config/fr30/fr30.c: New file.
20420         * config/fr30/crtn.asm: New file.
20421         * config/fr30/fr30.h: New file.
20422         * config/fr30/fr30.md: New file.
20423         * config/fr30/lib1funcs.asm: New file.
20424         * config/fr30/t-fr30: New file.
20425         * config/fr30/xm-fr30.h: New file.
20426
20427 Tue Sep 21 06:45:31 1999  Jeffrey A Law  (law@cygnus.com)
20428
20429         * flow.c (merge_blocks_move_successor_nojumps): Delete the
20430         BARRIER at the end of the successor, not the BARRIER before
20431         the successor.
20432
20433         * pa.c (pa_add_gc_roots): Fix thinko in last change.
20434
20435 Tue Sep 21 05:29:17 1999  Richard Earnshaw (rearnsha@arm.com)
20436
20437         * stmt.c (any_pending_cleanups): Don't crash when
20438         current_function->stmt is unset.
20439
20440 Tue Sep 21 00:59:49 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20441
20442         * emit-rtl.c (init_emit_once): Initialize const_int_rtx before
20443         other initializations that may use it for relative offsets.
20444
20445 Mon Sep 20 21:43:25 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20446
20447         * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs.
20448         (ASM_SPEC): Moved from sol2dbg.h.  Added work-around for gas.
20449         * config/i386/sol2dbg.h: Removed.
20450         * config/i386/sol2gas.h: New file, to enable gas work-around.
20451         * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas.
20452         Don't use sol2dbg.h.
20453         * configure: Rebuilt.
20454
20455 Mon Sep 20 13:29:41 1999  Mark Mitchell  <mark@codesourcery.com>
20456
20457         * invoke.texi (-fthis-is-variable): Remove documentation.
20458
20459 Mon Sep 20 12:59:16 1999  Richard Henderson  <rth@cygnus.com>
20460
20461         * basic-block.h (compute_bb_for_insn): Declare.
20462         * flow.c (compute_bb_for_insn): Export.  Don't accept the varray
20463         to use; set size of basic_block_for_insn directly.
20464         (find_basic_blocks): Update.
20465
20466 Mon Sep 20 15:11:54 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20467
20468         * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();".
20469
20470 Mon Sep 20 14:56:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20471
20472         * crtstuff.c (ON_EXIT): Delete empty macro definition.
20473         (__do_global_ctors_aux): Call atexit(), not ON_EXIT().
20474
20475 Mon Sep 20 15:25:35 1999  Nick Clifton  <nickc@cygnus.com>
20476
20477         * c-decl.c (c_decode_option): Extend comment.
20478
20479 Mon Sep 20 14:43:37 1999  Nick Clifton  <nickc@cygnus.com>
20480
20481         * toplev.c (progname): Make 'const char *'
20482         (flag_print_mem): Move out of main.
20483         (version_flag): Move out of main.
20484         (filename): Move out of main.
20485         (debug_args): Remove g prefix from options.
20486         (documented_lang_options): Remove cpplib specific options.
20487         (display_help): Add g prefix to debug options.
20488         (check_lang_option): Delete this function.
20489         (decode_d_option): New function: Decode -d... option.
20490         (decode_f_option): New function: Decode -f... option.
20491         (decode_W_option): New function: Decode -W... option.
20492         (decode_g_option): New function: Decode -g... option.
20493         (independent_decode_option): New function: Decode a language
20494         independent command line option.
20495         (main): Invoke lang_decode_option and then
20496         independent_decode_option on each command line option in
20497         turn.
20498
20499 Mon Sep 20 05:41:36 1999  Jeffrey A Law  (law@cygnus.com)
20500
20501         Revert this change.  Gavin's patch to operand_equal_p is a better fix.
20502          * fold-const.c (fold_range_test): Do not try to fold the range
20503          test if the rhs or lhs has side effects.
20504
20505         * basic-block.h (compute_flow_dominators): Declare.
20506
20507         * gcse.c (alloc_code_hoist_mem): New function.
20508         (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise.
20509         (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise.
20510         (hoist_code, one_code_hoisting_pass): Likewise.
20511         (gcse_main): If optimizing for size, then hoist expressions
20512         computed in multiple dominated basic blocks.
20513
20514         * gcse.c (invalid_nonnull_info): New function.
20515         (delete_null_pointer_checks): Likewise.
20516         * rtl.h (delete_null_pointer_checks): Declare.
20517         * toplev.c (rest_of_compilation): Call delete_null_pointer_checks.
20518
20519         * flow.c (merge_blocks_move_predecessor_nojumps): New function.
20520         (merge-blocks_move_successor_nojumps): Likewise.
20521         (merge_blocks): Allow merging of some blocks, even if it requires
20522         physical movement of the blocks, but not if it requires new jumps.
20523
20524         * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file.
20525         Callers and prototype changed.
20526         * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes.
20527
20528 Mon Sep 20 06:56:32 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20529
20530         * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of
20531         -YP when both -p and -pg are present.  From i386/sol2.h.
20532
20533 Mon Sep 20 10:49:05 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20534
20535         * Makefile.in (distclean): Delete tm_p.h.
20536         * configure.in: Create a new file, "tm_p.h", from a list in
20537         "tm_p_file". For ix86 systems, set up "tm_p_file" to include
20538         "i386/i386-protos.h".
20539
20540         * alias.c: Include "tm_p.h".
20541         * c-typeck.c: Likewise.
20542         * calls.c: Likewise.
20543         * cse.c: Likewise.
20544         * emit-rtl.c: Likewise.
20545         * explow.c: Likewise.
20546         * expmed.c: Likewise.
20547         * expr.c: Likewise.
20548         * final.c: Likewise.
20549         * flow.c: Likewise.
20550         * fold-const.c: Likewise.
20551         * function.c: Likewise.
20552         * gcse.c: Likewise.
20553         * global.c: Likewise.
20554         * haifa-sched.c: Likewise.
20555         * integrate.c: Likewise.
20556         * jump.c: Likewise.
20557         * local-alloc.c: Likewise.
20558         * loop.c: Likewise.
20559         * optabs.c: Likewise.
20560         * recog.c: Likewise.
20561         * reg-stack.c: Likewise.
20562         * regclass.c: Likewise.
20563         * regmove.c: Likewise.
20564         * reload.c: Likewise.
20565         * reload1.c: Likewise.
20566         * reorg.c: Likewise.
20567         * resource.c: Likewise.
20568         * stmt.c: Likewise.
20569         * stor-layout.c: Likewise.
20570         * toplev.c: Likewise.
20571         * tree.c: Likewise.
20572         * unroll.c: Likewise.
20573         * genattrtab.c (main): Make generated file include "tm_p.h".
20574         * genemit.c (main): Likewise.
20575         * genoutput.c (main): Likewise.
20576         * genrecog.c (main): Likewise.
20577
20578         * i386.h: Delete all prototypes.
20579         * i386.c: Include "tm_p.h".
20580         (ix86_attr_length_default): Call constant_call_address_operand
20581         with correct number of arguments.
20582         * i386-protos.h: New file.
20583         * i386.md (unnamed patterns): Call constant_call_address_operand
20584         with correct number of arguments.
20585         (exception_receiver): Call load_pic_register with correct number
20586         of arguments.
20587
20588 Sun Sep 19 14:18:39 1999  Richard Henderson  <rth@cygnus.com>
20589
20590         * c-pragma.c (mark_align_stack): Dereference the void* properly.
20591
20592 Sun Sep 19 09:03:40 1999  Mark Mitchell  <mark@codesourcery.com>
20593
20594         * rtl.h (insns_safe_to_move_p): New function.
20595         * loop.c (find_and_verify_loops): Use it.
20596         * rtlanal.c (insns_safe_to_move_p): Define it.
20597
20598 Sun Sep 19 02:54:33 1999  Richard Henderson  <rth@cygnus.com>
20599
20600         * c-pragma.c: Include ggc.h.
20601         * Makefile.in (c-pragma.o): Update.
20602
20603 Sat Sep 18 16:01:18 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20604
20605         * config/i386/sol2.h (CPP_SPEC): Support -[p]threads
20606         (LIB_SPEC): Likewise.
20607         (LINK_SPEC): Do not assert -z text with -shared -mimpure-text.
20608         Reindent -YP/-p/-pg.
20609         Copied from config/sparc/sol2.h.
20610
20611 Sat Sep 18 11:52:43 1999  Richard Henderson  <rth@cygnus.com>
20612
20613         * c-pragma.c (mark_align_stack): New.
20614         (init_pragma): New.
20615         * c-pragma.h (init_pragma): Declare it.
20616         * c-lex.c (init_parse): Call it.
20617
20618 Sat Sep 18 15:20:38 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
20619
20620         * configure.in: Pick up thread library on Solaris/x86 just
20621         like on Solaris/sparc.
20622         * configure: Rebuilt.
20623
20624 Sat Sep 18 11:15:58 1999  Alex Samuel  <samuel@codesourcery.com>
20625
20626         * rtl.h (global_rtx_index): New enum.
20627         (global_rtl): Change to array of rtx.
20628         (pc_rtx, cc0_rtx): Redefine accordingly.
20629         (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise.
20630         (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise.
20631         (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise.
20632         (virtual_outgoing_args_rtx, virtual_cfa): Likewise.
20633         (const_int_rtx): Change to array of rtx.
20634         (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine
20635         accordingly.
20636         * emit-rtl.c (global_rtl): Change to array of rtx.
20637         (const_int_rtx): Change to aray of rtx.
20638         (gen_rtx_CONST_INT): Redefine accordingly.
20639         (init_emit_once): Allocate and initialize global_rtl.  Likewise
20640         for const_int_rtx.  Add both as GC roots.
20641         * genattrtab.c (global_rtl): Update declaration.
20642
20643 1999-09-17  Ulrich Drepper  <drepper@cygnus.com>
20644
20645         * Makefile (USER_H): Add iso646.h back.
20646
20647 Sat Sep 18 01:07:21 1999  Jeffrey A Law  (law@cygnus.com)
20648
20649         * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of
20650         zapping the LOG_LINKS of sched_before_next_call.
20651
20652         * pa.h (INSN_SETS_ARE_DELAYED): Delete.
20653         * pa.c (insn_refs_are_delayed): Renamed from
20654         insn_sets_and_refs_are_delayed.
20655
20656 Fri Sep 17 15:19:01 1999  Mark Mitchell  <mark@codesourcery.com>
20657
20658         * functiion.h (struct function): Add x_whole_function_mode_p.
20659         (retrofit_block): Declare.
20660         * function.c (retrofit_block): New function.
20661         (identify_blocks): Add assertions.  Allow an incomplete set of
20662         block notes if we're still generating code for the function.
20663         * integrate.c: Include loop.h.
20664         (expand_inline_function): Call find_loop_tree_blocks to map block
20665         notes to blocks when in whole-function mode.  Use retrofit_block
20666         to insert new BLOCKs for the inlined function, rather than
20667         insert_block.
20668         * stmt.c (expand_fixup): Likewise.  Don't use pushlevel/polevel.
20669         * Makefile.in (integrate.o): Depend on loop.h.
20670
20671 Fri Sep 17 15:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
20672
20673         * tree.h (warn_about_unused_variables): Declare.
20674         * stmt.c (warn_about_unused_variables): New function, split out
20675         from ...
20676         (expand_end_bindings): Here.
20677
20678 Fri Sep 17 15:07:37 1999  Mark Mitchell  <mark@codesourcery.com>
20679
20680         * stmt.c (preserve_subexpressions_p): Don't crash when
20681         current_function->stmt is unset.
20682
20683 Fri Sep 17 15:03:16 1999  Mark Mitchell  <mark@codesourcery.com>
20684
20685         * stmt.c (expand_start_bindings): Allow callers to pass a flag
20686         indicating that no NOTE_INSN_BLOCK_BEG note is required.
20687         (expand_start_target_temps): Use it.
20688         * except.c (expand_eh_region_start_for_decl): Likewise.
20689         * expr.c (expand_expr): Likewise.
20690
20691 Fri Sep 17 15:05:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
20692
20693         * fold-const.c (operand_equal_p): Pay attention to side effects.
20694
20695 Fri Sep 17 11:14:17 1999  Jason Merrill  <jason@yorick.cygnus.com>
20696
20697         * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT.
20698         * sparc/sunos4.h (HAVE_ON_EXIT): Remove.
20699
20700         * tlink.c (scan_linker_output): Look for keywords before accepting
20701         a mangled name in quotes.
20702
20703 Thu Sep 16 16:47:08 1999  Richard Henderson  <rth@cygnus.com>
20704
20705         * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero.
20706         * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise.
20707
20708 Thu Sep 16 16:35:41 1999  Richard Henderson  <rth@cygnus.com>
20709
20710         * alpha.md: Revert Thu Nov 26 change that came in through the
20711         last gcc2 merge: reinstate (plus (plus ...)) reload patterns.
20712         Avoid earlyclobber when possible.
20713
20714 Thu Sep 16 18:44:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20715
20716         * libgcc2.c (__do_global_ctors): Call atexit with one arg.
20717
20718         * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS().
20719         Define HAVE_ON_EXIT.
20720
20721 Thu Sep 16 18:06:35 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20722
20723         * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros.  Use
20724         CTYPE_CONV in all ctype macros.
20725
20726         * cccp.c (initialize_char_syntax): Use uppercase ctype macro
20727         from system.h.
20728
20729         * cexp.y (initialize_random_junk): Likewise.
20730
20731         * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise.
20732
20733         * i370.c (handle_pragma): Likewise.
20734
20735         * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise.
20736
20737         * v850.c (override_options): Likewise.
20738
20739         * doprint.c (_doprnt): Likewise.
20740
20741         * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files):
20742         Likewise.
20743
20744         * fixinc/server.c (load_data): Likewise.
20745
20746         * fold-const.c (real_hex_to_f): Likewise.
20747
20748         * genattr.c (write_upcase, gen_attr): Likewise.
20749
20750         * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr,
20751         write_upcase): Likewise.
20752
20753         * genemit.c (print_code): Likewise.
20754
20755         * genopinit.c (gen_insn): Likewise.
20756
20757         * genpeep.c (print_code): Likewise.
20758
20759         * genrecog.c (print_code): Likewise.
20760
20761         * optabs.c (init_libfuncs): Likewise.
20762
20763 Thu Sep 16 14:03:32 1999  Mark Mitchell  <mark@codesourcery.com>
20764
20765         * haifa-sched.c (sched_analyze): Keep the list of notes organized
20766         in pairs.
20767         (reemit_notes): Likewise.
20768
20769 Thu Sep 16 11:50:52 1999  Alex Samuel  <samuel@codesourcery.com>
20770
20771         * ggc.h (ggc_root): Move to ggc-common.c.
20772         (roots): Remove.
20773         (ggc_mark_rtx, ggc_mark_tree): Change to macro.
20774         (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern.
20775         (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise.
20776         (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New.
20777         * ggc-common.c (ggc_root): Move from ggc.h.
20778         (roots): Declare, static.
20779         (ggc_mark_rtx, ggc_mark_tree): Renamed to...
20780         (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for
20781         null or check/set mark bit.
20782         (ggc_mark_roots): New.
20783         * ggc-simple.c (ggc_collect): Call ggc_mark_roots.
20784
20785 Thu Sep 16 11:37:32 1999  Richard Henderson  <rth@cygnus.com>
20786
20787         * m32r.c: Include toplev.h.
20788         (*): Add ATTRIBUTE_UNUSED as needed to arguments.
20789         (gen_compare): Rename swap_p to must_swap to match uses.
20790         Add default abort case.
20791         (m32r_output_function_epilogue): Remove unused variables.
20792         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
20793         * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally
20794         define to empty parameter list.  Update all uses.
20795         (predicate decls): Use enum machine_mode not int.
20796         * m32r.md (movsi): Call abort, not fatal_insn.
20797         (zero_branch_insn, rev_zero_branch_insn): Add default abort case.
20798
20799 1999-09-14  Andrew Haley  <aph@cygnus.com>
20800
20801         * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0,
20802         use $0 instead of 0.
20803
20804 Thu Sep 16 10:53:36 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20805
20806         * reload1.c (order_regs_for_reload): Move hard_reg_n_uses
20807         computation out of loop over hard regs.
20808
20809 Wed Sep 15 21:37:06 1999  Mark Mitchell  <mark@codesourcery.com>
20810
20811         * function.c (identify_blocks): Don't shadow a variable in an
20812         outer scope.
20813         * integrate.c (integrate_decl_tree): Don't use pushlevel,
20814         pushdecl, or poplevel to build up the new BLOCK tree.
20815         (expand_inline_function): Likewise.
20816         (integrate_parm_decls): Likewise.
20817
20818 Wed Sep 15 21:20:38 1999  Mark Mitchell  <mark@codesourcery.com>
20819
20820         * c-typeck.c (qualify_type): Merge qualifiers from both types.
20821
20822 1999-09-15  Brad Lucier  <lucier@math.purdue.edu>
20823
20824         * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math
20825         * invoke.texi: Document this change.
20826
20827 Wed Sep 15 17:56:00 1999  Richard Henderson  <rth@cygnus.com>
20828
20829         * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT.
20830         Free the struct.
20831         (mark_emit_status): Renamed from mark_emit_state.
20832         * except.c (mark_eh_status): Renamed from mark_eh_state.
20833         Check not null before marking.
20834         (free_eh_status): New.
20835         * expr.c (mark_expr_status, free_expr_status): New.
20836         * function.c (free_machine_status): New.
20837         (free_after_parsing): New.
20838         (free_after_compilation): Move bits to free_after_parsing; call
20839         free_eh_status, free_expr_status; zero the marked members of the
20840         function state.
20841         (prepare_function_start): No can_garbage_collect.
20842         Call init_eh_for_function.
20843         (expand_dummy_function_end): Free up current_function state.
20844         (mark_function_status): Renamed from mark_function_state.
20845         (mark_function_chain): No can_garbage_collect.  Call mark_expr_status.
20846         * function.h (struct function): No can_garbage_collect.
20847         (free_machine_status, free_after_parsing): Declare.
20848         (free_eh_status, free_expr_status): Declare.
20849         * ggc.h (mark_expr_status): Declare.
20850         * stmt.c (free_stmt_status): Free the struct.
20851         (mark_stmt_status): Renamed from mark_stmt_state.
20852         (init_stmt): Don't call init_eh.
20853         (init_stmt_for_function): Don't call init_eh_for_function.
20854         * toplev.c (compile_file): Call init_eh.
20855         (rest_of_compilation): Free basic block info before ggc_collect.
20856         Call free_after_parsing; conditionally call free_after_compilation.
20857         * varasm.c (mark_varasm_status): Renamed from mark_varasm_state.
20858         Check not null before marking.
20859         (free_varasm_status): Don't check DECL_DEFER_OUTPUT.  Free the struct.
20860
20861 Wed Sep 15 17:53:16 1999  Richard Henderson  <rth@cygnus.com>
20862
20863         * c-lex.c (yylex): Initialize warn.
20864
20865 Wed Sep 15 18:35:38 1999  Jeffrey A Law  (law@cygnus.com)
20866
20867         * pa.c (emit_move_sequence): Properly set the mode of the scratch
20868         register when performing secondary reloads for the SAR register.
20869
20870 Wed Sep 15 15:51:52 1999  Mark Mitchell  <mark@codesourcery.com>
20871
20872         * rtl.h (NOTE_BLOCK_NUMBER): Replace with ...
20873         (NOTE_BLOCK): New macro.
20874         (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove.
20875         * function.h (identify_blocks): Change prototype.
20876         * function.c (identify_blocks): Simplify.
20877         (reorder_blocks): Likewise.
20878         * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a
20879         NOTE_INSN_BLOCK_{BEG,END}.
20880         * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on
20881         the list of saved notes if the note isn't a
20882         NOTE_INSN_BLOCK_{BEG,END}.
20883         (move_insn1): Use NOTE_EH_HANDLER in comment, rather than
20884         NOTE_BLOCK_NUMBER.
20885         (reemit_notes): Adjust recreation of notes to reflect new saved
20886         note structure.
20887         * print-rtl.c (print_rtx): Print the address of the BLOCK when
20888         printing a block note.
20889         * stmt.c (block_vector): Remove.
20890         (find_loop_tree_blocks): Simplify.
20891         (unroll_block_trees): Likewise.
20892         * tree.h (reorder_block): Change prototype.
20893
20894 Wed Sep 15 14:39:35 1999  Jason Merrill  <jason@yorick.cygnus.com>
20895
20896         * gbl-ctors.h: Lose HAVE_ATEXIT.  Don't define ON_EXIT.
20897         * libgcc2.c: Lose obsolete defn of WEAK_ALIAS.
20898         (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT.
20899         (__do_global_dtors): Likewise.  Don't mess with _exit_dummy_decl.
20900         (atexit, exit): Simplify.
20901         * tm.texi: Document NEED_ATEXIT and ON_EXIT.  Remove HAVE_ATEXIT.
20902         * config/lots: Remove defns of HAVE_ATEXIT.
20903
20904 Wed Sep 15 10:25:12 1999  Mark Mitchell  <mark@codesourcery.com>
20905
20906         * calls.c (precompute_arguments): Fix typo in comment.
20907         * expr.c (preexpand_calls): Don't preexpand the cleanup in a
20908         TARGET_EXPR.
20909
20910 Wed Sep 15 09:59:59 1999  Mark Mitchell  <mark@codesourcery.com>
20911
20912         * dsp16xx.c (override_options): Fix typos in GC root registration.
20913
20914 Wed Sep 15 15:23:28 1999  Philip Blundell  <pb@nexus.co.uk>
20915
20916         * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition
20917         from config/svr4.h.
20918         (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise.
20919         (FUNCTION_PROFILER): Redefine appropriately for Linux.
20920         (CC1_SPEC): Likewise.
20921
20922 Wed Sep 15 10:09:48 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20923
20924         * genattr.c (main): Add extern prototype.  Call return, not exit.
20925         * genattrtab.c (main): Likewise.
20926         * gencheck.c (main): Likewise.
20927         * gencodes.c (main): Likewise.
20928         * genconfig.c (main): Likewise.
20929         * genemit.c (main): Likewise.
20930         * genextract.c (main): Likewise.
20931         * genflags.c (main): Likewise.
20932         * gengenrtl.c (main): Likewise.
20933         * genopinit.c (main): Likewise.
20934         * genoutput.c (main): Likewise.
20935         * genpeep.c (main): Likewise.
20936         * genrecog.c (main): Likewise.
20937
20938         * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED.
20939         * genattrtab.c (get_insn_name): Likewise.
20940         * gencodes.c (get_insn_name): Likewise.
20941         * genconfig.c (get_insn_name): Likewise.
20942         * genemit.c (get_insn_name): Likewise.
20943         * genextract.c (get_insn_name): Likewise.
20944         * genflags.c (get_insn_name): Likewise.
20945         * genopinit.c (get_insn_name): Likewise.
20946         * genpeep.c (get_insn_name): Likewise.
20947
20948         * gencheck.c (usage): Add static prototype.
20949         * genextract.c (print_path): Constify a char*.
20950         * genopinit.c (optabs): Likewise.
20951         * genoutput.c (operand_data, data, output_predicate_decls,
20952         compare_operands): Likewise.
20953         * genrecog.c (write_tree): Add default case in switch.
20954
20955 Wed Sep 15 09:59:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20956
20957         * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes.
20958
20959         * print-rtl.c (get_insn_name): Remove prototype.
20960
20961         * toplev.h (progname): Declare const.
20962
20963         * toplev.c (init_decl_processing, init_obstacks, init_tree_codes,
20964         init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info,
20965         dump_sched_info, dump_local_alloc, regset_release_memory,
20966         print_rtl, print_rtl_with_bb, rest_of_decl_compilation,
20967         error_with_file_and_line, error_with_decl, error_for_asm, error,
20968         fatal, warning_with_file_and_line, warning_with_decl, warning,
20969         pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry):
20970         Remove redundant prototypes.
20971
20972         (notice, check_lang_option, report_file_and_line, vnotice,
20973         mark_file_stack): Add static prototype.
20974         (set_fatal_function): Add prototype.
20975         (vnotice, report_file_and_line, set_fatal_function,
20976         check_lang_option): Constify a char*.
20977         (main): Prototype.  Call return, not exit.
20978
20979 Wed Sep 15 09:50:18 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
20980
20981         * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro.
20982
20983         * configure.in (AC_GCC_C_LONG_DOUBLE): Call it.
20984
20985         * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2.
20986
20987         * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double.
20988
20989 Wed Sep 15 11:04:43 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
20990
20991         * function.c (assign_parms): Delete arg SECOND_TIME.  Don't test it,
20992         behave as if it's zero in all cases.
20993         (expand_function_start): Adjust call to assign_parms.
20994         * tree.h (assign_parms): Adjust prototype.
20995         * objc/objc-act.c (hack_method_prototype): Adjust call to
20996         assign_parms.
20997
20998 Tue Sep 14 21:47:06 1999  Jeffrey A Law  (law@cygnus.com)
20999
21000         * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to
21001         arg_pointer_rtx fixed if the argument pointer register is
21002         not fixed.
21003         (NONZERO_BASE_PLUS_P): Likewise.
21004
21005 Tue Sep 14 20:26:02 1999  Richard Henderson  <rth@cygnus.com>
21006
21007         * rtl.def (match_insn, match_insn2): Remove match_insn; rename
21008         match_insn2 to match_insn.
21009         * genrecog.c (add_to_sequence): Rename MATCH_INSN2.
21010
21011 Tue Sep 14 20:10:29 1999  Richard Henderson  <rth@cygnus.com>
21012
21013         * Makefile.in (USER_H): Remove va-foo.h.
21014
21015         * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h,
21016         va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h,
21017         va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h,
21018         va-spur.h,va-v850.h}: Remove.
21019
21020 Tue Sep 14 19:43:16 1999  Richard Henderson  <rth@cygnus.com>
21021
21022         * sparc/sparc.md (eligible_for_return_delay): New attribute.
21023         (in_return_delay): Use it instead of match_insn.
21024
21025 Tue Sep 14 23:05:37 1999  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21026
21027         * config/alpha/va_list.h (va-alpha.h): Do not include.
21028         (__gnuc_va_list): Typedef as in varargs.h.
21029
21030 Tue Sep 14 18:14:03 1999  Richard Henderson  <rth@cygnus.com>
21031
21032         * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and
21033         DECL_LIVE_RANGE_RTL.
21034
21035 Tue Sep 14 16:47:08 1999  Mark Mitchell  <mark@codesourcery.com>
21036
21037         * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER,
21038         not NOTE_BLOCK_NUMBER.
21039         (expand_eh_region_end): Likewise.
21040         (find_exception_handler_labels): Likewise.
21041         (scan_region): Likewise.
21042         (exception_optimize): Likewise.
21043         (update_rethrow_references): Likewise.
21044         (set_insn_eh_region): Likewise.
21045         * final.c (final_scan_insn): Likewise.
21046         * flow.c (make_edges): Likewise.
21047         * integrate.c (expand_inline_function): Likewise.
21048         * print-rtl.c (print_rtx): Likewise.
21049
21050 Tue Sep 14 16:30:16 1999  Richard Henderson  <rth@cygnus.com>
21051
21052         * ginclude/stdarg.h, ginclude/varargs.h: Implement in
21053         terms of builtin functions and types.
21054
21055         * mips.c (mips_build_va_list): New.
21056         (mips_va_start, mips_va_arg): New.
21057         * mips.h (BUILD_VA_LIST_TYPE): New.
21058         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
21059
21060         * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set.
21061         (sh_build_va_list, sh_va_start, sh_va_arg): New.
21062         * sh.h (BUILD_VA_LIST_TYPE): New.
21063         (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New.
21064
21065 Tue Sep 14 16:20:24 1999  Richard Henderson  <rth@cygnus.com>
21066
21067         * recog.h (struct recog_data): Make dup_num, operand_address_p,
21068         n_operands, n_dups, n_alternatives `char' instead of `unsigned char'.
21069         (struct insn_data): Likewise with n_operands, n_dups,
21070         n_alternatives, output_format.
21071         * regclass.c (scan_one_insn): Cast n_operands to int before
21072         arithmetic inside comparison.
21073
21074 Tue Sep 14 15:13:36 1999  Richard Henderson  <rth@cygnus.com>
21075
21076         * toplev.c (compile_function): Unconditionally emit nop.
21077
21078 Tue Sep 14 14:41:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21079
21080         * haifa-sched.c (actual_hazard): Move declaration of variable
21081         `this_cost' into the scope where it is used.
21082
21083 Tue Sep 14 14:14:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21084
21085         * c-pragma.c (handle_pragma_token): Wrap variables `name' and
21086         `value' in HANDLE_PRAGMA_WEAK.  Wrap variable `align' in
21087         HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP.
21088
21089         * genrecog.c (make_insn_sequence): Call memset, not bzero.
21090
21091         * jump.c (find_insert_position): Don't declare or define unless
21092         !HAVE_conditional_arithmetic.
21093         (returnjump_p_1, delete_prior_computation): Add static prototypes.
21094
21095         * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes.
21096
21097         * recog.c (offsettable_address_p): Prototype function pointer.
21098         (preprocess_constraints): Call memset, not bzero.
21099
21100         * tree.c (tree_node_kind_names): Constify a char*.  Make static.
21101         (gcc_obstack_init): Don't declare.
21102         (fix_sizetype): Add static prototype.
21103         (gcc_obstack_init): Use prototype casts in call to _obstack_begin.
21104         (tree_cons): Call memset, not bzero.
21105
21106         * varasm.c (remove_from_pending_weak_list): Wrap declaration and
21107         definition in macro ASM_WEAKEN_LABEL.
21108         (mark_const_hash_entry): Add static prototype.
21109
21110 Tue Sep 14 12:22:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21111
21112         * c-lex.c (handle_generic_pragma): Remove unused variable `c'.
21113
21114         * unroll.c (find_common_reg_term, subtract_reg_term,
21115         loop_find_equiv_value): Add static prototypes.
21116         (unroll_loop): Wrap variable `prev' in macro HAVE_cc0.
21117         (copy_loop_body): Remove unreachable break statement.
21118
21119         * sparc.c (sparc_va_arg): Remove unused variable `tmp'.
21120
21121         * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes.
21122
21123 Tue Sep 14 15:28:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21124
21125         Undo some changes from the gcc2 merge:
21126         * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code.
21127         * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null
21128         pointers.
21129
21130         Undo this change:
21131         Sat Oct  3 07:20:28 1998  Stephen L Moshier  <moshier@world.std.com>
21132         * emit-rtl.c (gen_lowpart_common): Disable optimization of
21133         initialized float-int union if the value is a NaN.
21134
21135 Tue Sep 14 04:03:44 1999  Mumit Khan  <khan@xraylith.wisc.edu>
21136
21137         * gthr-win32.h: New file.
21138
21139         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize
21140         shared as a valid attribute.
21141         * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute.
21142         * extend.texi: Document `shared' variable attribute.
21143
21144 Tue Sep 14 04:01:46 1999  Loren Rittle  <ljrittle@acm.org>
21145
21146         * configure.in: Handle --enable-threads on FreeBSD.
21147         * configure: Rebuit.
21148
21149 Tue Sep 14 03:58:44 1999  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
21150
21151         * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add
21152         thread support.
21153         * configure: Rebuilt.
21154
21155 Tue Sep 14 03:47:23 1999  Joel Sherrill <joel@OARcorp.com>
21156                           Charles-Antoine Gauthier <charles.gauthier@iit.nrc.ca>
21157                           Rosimildo DaSilva <rdasilva@connecttel.com>
21158
21159         * configure.in (m68k-*-rtemscoff*): Added.
21160         * configure.in (mips64orion-*-rtems*): Converted to ELF.
21161         * configure.in (sparc-*-rtemsaout*): Added as alias for old
21162         sparc-rtems configuration.
21163         * configure.in (sparc-*-rtemself*): Added.
21164         * configure.in (sparc-*-rtems*): Now ELF not a.out.
21165         * config/i386/rtems.h: Added comment.
21166         * config/sparc/rtemself.h: New file.
21167
21168         * configure.in (m68k-rtemself): Added.
21169         * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO
21170         and DWARF_DEBUGGING_INFO.
21171         * config/m68k/crti.s: New file.
21172         * config/m68k/crtn.s: New file.
21173         * config/m68k/t-crtstuff: New file.
21174         * config/m68k/rtemself.h: New file.
21175
21176         * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for
21177         global ctor/dtor and C++ exception handling.
21178         * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o)
21179         for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for
21180         ENDFILE_SPEC.
21181         * config/i386/t-rtems-i386: New File.
21182
21183 Tue Sep 14 09:47:41 1999  Andreas Schwab  <schwab@suse.de>
21184
21185         * stmt.c (expand_end_case): Return right away if the case stack is
21186         empty.
21187
21188 Tue Sep 14 01:47:19 1999  Jeffrey A Law  (law@cygnus.com)
21189
21190         * Makefile.in (version.c): Remove rule incorrectly brought in from
21191         the gcc2 merge.
21192
21193 Tue Sep 14 01:42:27 1999  Marc Espie <espie@cvs.openbsd.org>
21194
21195         * Makefile.in:  Prepend $(SHELL) to move-if-change calls.
21196         * msdos/top.sed:  Take into account a prepended $(SHELL) to
21197         move-if-change.
21198         * winnt/config-nt.sed:  Likewise.  Kill bogus substitution.
21199
21200         * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls.
21201
21202 Tue Sep 14 01:38:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
21203
21204         * regmove.c (fixup_match_1): Don't change an unchanging register.
21205         (stable_but_for_p): Renamed to:
21206         (stable_and_no_regs_but_for_p).  Reject unchanging registers too.
21207         Changed all callers.
21208
21209 Tue Sep 14 01:33:15 1999  Andreas Schwab  <schwab@suse.de>
21210
21211         * loop.c (strength_reduce): Don't call reg_used_between_p if the
21212         insn from BL2 is after the insn from BL.
21213
21214 Mon Sep 13 21:06:01 1999  Richard Henderson  <rth@cygnus.com>
21215
21216         * recog.h (INSN_OUTPUT_FORMAT_*): New.
21217         (struct insn_data): Merge `template' and `outfun' into `output'.
21218         Add `output_format'.
21219         * genoutput.c (INSN_OUTPUT_FORMAT_*): New.
21220         (struct data): Remove `outfun'; add `output_format'.
21221         (name_for_index): Remove declaration.
21222         (output_insn_data): Handle output formats.
21223         (process_template): Emit the bare array for @.
21224         (gen_expand, gen_split): Set output_format to NONE.
21225         * output.h (get_insn_template): Declare.
21226         * final.c (get_insn_template): New.
21227         (final_scan_insn): Use it.
21228         * toplev.c (compile_file): Likewise.
21229
21230         * c4x/c4x.c (c4x_process_after_reload): Likewise.
21231         * i860/i860.c (output_delayed_branch): Likewise.
21232         (output_delay_insn): Likewise.
21233
21234 1999-09-13  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
21235
21236         * rtl.c (obstack_alloc_rtx): Removed.
21237
21238 1999-09-13 17:03 -0700  Zack Weinberg  <zack@bitmover.com>
21239
21240         * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern.
21241
21242 Mon Sep 13 15:21:46 1999  Richard Henderson  <rth@cygnus.com>
21243
21244         * i386.c (call_insn_operand): Reject const_int.
21245         (expander_call_insn_operand): Use call_insn_operand.
21246
21247 Mon Sep 13 17:44:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21248
21249         * gcc.c (getrusage): Wrap prototype arguments in PROTO().
21250
21251 1999-09-13 12:18 -0700  Zack Weinberg  <zack@bitmover.com>
21252
21253         * config/i370/i370.md (mulsi, divsi, modsi anonymous insns):
21254         Use DImode operation.
21255
21256 1999-09-13 12:13 -0700  Zack Weinberg  <zack@bitmover.com>
21257
21258         * gcc.c: Include sys/resource.h.
21259         (report_times): New flag.
21260         (execute):  If report_times is set, calculate and report the
21261         CPU time consumed by each subprocess.
21262
21263         (rus, prus): New globals.
21264         (option_map): Add --time.
21265         (display_help): Document -time.
21266         (process_command): Set report_times if -time is given.
21267         Turn off -pipe if -time is given.
21268
21269         * invoke.texi: Document new option -time.
21270
21271         * configure.in: Check for getrusage.  Check if we have to
21272         prototype getrusage.
21273         * acconfig.h: Add NEED_DECLARATION_GETRUSAGE.
21274         * configure: Regenerate.
21275         * config.in: Regenerate.
21276
21277 Mon Sep 13 12:57:06 1999  Dave Brolley  <brolley@cygnus.com>
21278
21279         * cppinit.c (append_include_chain): Initialize 'next' and 'alloc'
21280         fields.
21281
21282 Mon Sep 13 10:01:33 1999  Nick Clifton  <nickc@cygnus.com>
21283
21284         * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as
21285         appropriate) if FINE_GRAINED_LIBRARIES is not defined.
21286         (nan): Return _thenan_sf or _thenan_df as appropriate.
21287         (L_thenan_sf): Define _thenan_sf.
21288         (L_thenan_df): Define _thenan_df.
21289
21290         * Makefile.in (FPBIT_FUNCS): Add _thenan_sf.
21291         (DPBIT_FUNCS): Add _thenan_df.
21292
21293 Mon Sep 13 09:38:53 1999  Andreas Schwab  <schwab@suse.de>
21294
21295         * tree.c (fix_sizetype):  Exchange the types for TYPE_SIZE and
21296         TYPE_SIZE_UNIT.
21297
21298 Sun Sep 12 23:28:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21299
21300         * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h.
21301
21302         * gcc.h: New file.
21303         (lang_specific_driver): Don't take a function pointer parameter.
21304         All callers changed.
21305
21306         * gcc.c: Include gcc.h.
21307         (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link,
21308         lang_specific_extra_outfiles, fatal): Don't declare.
21309         (multilib_defaults_raw): Constify.
21310         (read_specs): Call memset, rather than bzero.
21311         (main): Call return, not exit.
21312         (lookup_compiler): Call memcpy, not bcopy.
21313         (fatal): Make extern.
21314
21315         * cppspec.c: Include gcc.h.
21316         (lang_specific_driver): Initialize variable `quote'.  Constify a
21317         char*.  All calls to the function pointer parameter now
21318         explicitly call `fatal'.
21319
21320         * gccspec.c (lang_specific_driver): Include gcc.h.
21321
21322 Sun Sep 12 19:52:10 1999  Richard Earnshaw <rearnsha@arm.com>
21323
21324         * arm.c (note_invalid_constants): Use recog_data.operand_type
21325         for recog_op_type.
21326
21327 Sun Sep 12 15:53:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21328
21329         * tree.h (build_common_tree_nodes, build_common_tree_nodes_2):
21330         Declare.
21331
21332         * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg,
21333         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
21334         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
21335         reload_secondary_in_reload, reload_secondary_out_reload,
21336         reload_secondary_in_icode, reload_secondary_out_icode,
21337         reload_reg_rtx, reload_when_needed): Delete declarations.
21338         (struct reload): New structure.
21339         (rld): Declare new array.
21340         * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg,
21341         reload_reg_class, reload_inmode, reload_outmode, reload_optional,
21342         reload_nongroup, reload_inc, reload_opnum, reload_secondary_p,
21343         reload_secondary_in_reload, reload_secondary_out_reload,
21344         reload_secondary_in_icode, reload_secondary_out_icode,
21345         reload_reg_rtx, reload_when_needed): Delete definitions.
21346         (rld): New array.
21347         (whole file): Replace uses of the deleted arrays with uses of rld.
21348         * reload1.c (whole file): Replace uses of the deleted arrays with
21349         uses of rld.
21350         (choose_reload_regs): Copy in/out of save_reload_reg_rtx with
21351         explicit loops, not with bcopy.
21352
21353 Sun Sep 12 05:00:24 1999  Richard Henderson  <rth@cygnus.com>
21354
21355         * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups,
21356         insn_n_alternatives, insn_operand_constraint, insn_operand_address_p,
21357         insn_operand_mode, insn_operand_strict_low, insn_operand_predicate,
21358         insn_name): Delete and consolidate into new structures.
21359         (insn_operand_predicate_fn): New.
21360         (insn_output_fn): New.
21361         (insn_gen_fn): New.
21362         (struct insn_operand_data): New.
21363         (struct insn_data): New.
21364         (insn_data): New.
21365         (OUT_FCN): Update for insn_data change.
21366         * builtins.c (expand_builtin_strlen): Likewise.
21367         (expand_builtin_memcmp): Likewise.
21368         * combine.c (make_extraction, simplify_comparison): Likewise.
21369         * cse.c (canon_reg, cse_insn): Likewise.
21370         * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise.
21371         * expmed.c (store_bit_field, extract_bit_field): Likewise.
21372         (emit_store_flag): Likewise.
21373         * expr.c (convert_move, emit_block_move): Likewise.
21374         (clear_storage, emit_push_insn, expand_increment): Likewise.
21375         (do_store_flag): Likewise.
21376         * expr.h (GEN_FCN): Likewise.
21377         (insn_gen_function): Die.
21378         * final.c (final_scan_insn): Update for insn_data change.
21379         (output_asm_name): Likewise.
21380         * function.c (fixup_var_refs_1): Likewise.
21381         * loop.c (check_dbra_loop): Likewise.
21382         * optabs.c (expand_binop, expand_twoval_binop): Likewise.
21383         (expand_unop, expand_complex_abs, emit_unop_insn): Likewise.
21384         (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise.
21385         (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise.
21386         * recog.c (validate_replace_rtx_1, extract_insn): Likewise.
21387         * regmove.c (gen_add3_insn): Likewise.
21388         * reload.c (push_secondary_reload, combine_reloads): Likewise.
21389         (find_reloads, find_reloads_address_1): Likewise.
21390         (debug_reload_to_stream): Likewise.
21391         * reload1.c (emit_reload_insns, gen_reload): Likewise.
21392         * stmt.c (expand_end_case): Likewise.
21393         * toplev.c (compile_file): Likewise.
21394
21395         * c4x/c4x.c (c4x_process_after_reload): Likewise.
21396         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
21397
21398         * print-rtl.c (insn_name_ptr): Remove declaration.
21399         (get_insn_name): Declare.
21400         (print_rtx): Use it.
21401         * genoutput.c (insn_name_ptr): Remove.
21402         (next_operand_number): New.
21403         (struct operand_data): New.
21404         (null_operand, odata, odata_end): New.
21405         (struct data): Use struct operand_data.
21406         (idata, idata_end): Renamed from insn_data and end_of_insn_data.
21407         (get_insn_name): Renamed from name_for_index.
21408         (output_prologue): Define NO_MD_PROTOTYPES.
21409         (output_predicate_decls): Break out from output_epilogue.
21410         Iterate over the operands list.
21411         (output_operand_data): Break out from output_epilogue.  Emit
21412         just the operands list.
21413         (output_insn_data): Break out from output_epilogue.  Emit just
21414         the insn data.
21415         (output_epilogue): Remove.
21416         (output_get_insn_name): New.
21417         (constraints, op_n_alternatives, predicates, address_p): Die.
21418         (modes, strict_low, seen): Die.
21419         (scan_operands): Take new param `d' instead of writing to
21420         seven global variables.
21421         (compare_operands): New.
21422         (place_operands): New.
21423         (validate_insn_alternatives): Update for struct data change.
21424         (gen_insn): Don't zero or copy 7 global arrays.  Update for
21425         scan_operands; call place_operands.
21426         (gen_peephole, gen_expand, gen_split): Likewise.
21427         (main): Update for new output routines.
21428
21429         * genattr.c (insn_name_ptr): Remove.
21430         (get_insn_name): New function.
21431         * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise.
21432         * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise.
21433         * genrecog.c: Likewise.
21434
21435         * alpha.md (adddi3): Make `pattern' array static.
21436
21437 Sun Sep 12 22:05:21 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21438
21439         * config/c4x/c4x.h (c4x_rpts_cycles_string,
21440         c4x_cpu_version_string): Constify char *.
21441         * config/c4x/c4x.c (c4x_rpts_cycles_string,
21442         c4x_cpu_version_string): Likewise.
21443
21444 Sat Sep 11 23:28:33 1999  Richard Henderson  <rth@cygnus.com>
21445
21446         * tree.c (save_tree_status): Revert 10 Sep change.
21447         (restore_tree_status): Likewise.  Call obstack_free with NULL
21448         before freeing the obstack proper.
21449
21450 Sat Sep 11 23:23:46 1999  Richard Henderson  <rth@cygnus.com>
21451
21452         * cse.c (cse_main): If gc'ing, collect around cse_basic_block.
21453
21454         * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into
21455         surrounding context.
21456
21457 Sat Sep 11 19:52:43 1999  Mark Mitchell  <mark@codesourcery.com>
21458
21459         * tree.c (type_hash_canon): Put all types in the hash-table, when
21460         GC'ing.
21461
21462 Sat Sep 11 18:37:04 1999  Richard Henderson  <rth@cygnus.com>
21463
21464         * recog.h (struct recog_data, recog_data): New.
21465         (recog_foo variables): Kill.
21466         * recog.c (recog_operand, recog_operand_loc): Kill.
21467         (recog_dup_loc, recog_dup_num, recog_n_operands): Kill.
21468         (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill.
21469         (recog_constraints, recog_op_type, recog_operand_address_p): Kill.
21470         (recog_data): Define.
21471         (extract_insn): Update all recog_foo references to use recog_data.
21472         (preprocess_constraints, constrain_operands): Likewise.
21473         * final.c (final_scan_insn, cleanup_subreg_operands): Likewise.
21474         * genattrtab.c (main): Likewise.
21475         * genextract.c (main): Likewise.
21476         * genoutput.c: Likewise.
21477         * genrecog.c (write_subroutine, main): Likewise.
21478         * local-alloc.c (block_alloc): Likewise.
21479         * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise.
21480         * regclass.c (scan_one_insn, record_reg_classes): Likewise.
21481         * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise.
21482         * reload.c (find_reloads, find_reloads_toplev): Likewise.
21483         * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise.
21484         (reload_cse_simplify_operands): Likewise.
21485
21486         * arc/arc.c (arc_final_prescan_insn): Likewise.
21487         * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise.
21488         * h8300/h8300.c (notice_update_cc): Likewise.
21489         * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise.
21490         * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise.
21491         * mn10200/mn10200.c (notice_update_cc): Likewise.
21492         * mn10300/mn10300.c (notice_update_cc): Likewise.
21493         * romp/romp.c (update_cc): Likewise.
21494         * sparc/sparc.c (check_pic): Likewise.
21495         * v850/v850.c (notice_update_cc): Likewise.
21496
21497         * genemit.c (main): Don't declare recog_operand.
21498
21499 Sat Sep 11 12:41:55 1999  Alex Samuel  <samuel@codesourcery.com>
21500
21501         * ggc.h (rtvec_def): Forward declare.
21502         (tree_node): Likewise.
21503         (ggc_root): Define.
21504         (roots): Declare.
21505         (ggc_set_mark_rtx): Add prototype.
21506         (ggc_set_mark_rtvec): Likewise.
21507         (ggc_set_mark_tree): Likewise.
21508         * ggc-simple.c (ggc_root): Don't define.
21509         (roots): Don't declare.
21510         (ggc_mark_rtx): Remove.
21511         (ggc_mark_rtvec): Likewise.
21512         (ggc_mark_tree): Likewise.
21513         (ggc_mark_varray): Likewise.
21514         (ggc_mark_tree_hash_table_entry): Likewise.
21515         (ggc_mark_tree_hash_table): Likewise.
21516         (ggc_set_mart_rtx): New function.
21517         (ggc_set_mark_rtvec): Likewise.
21518         (ggc_set_mark_tree): Likewise.
21519         (ggc_add_root): Remove.
21520         (ggc_add_rtx_root): Likewise.
21521         (ggc_remove_tree_root): Likewise.
21522         (ggc_add_string_root): Likewise.
21523         (ggc_add_tree_varray_root): Likewise.
21524         (ggc_add_tree_hash_table_root): Likewise.
21525         (ggc_del_root): Likewise.
21526         (ggc_mark_rtx_ptr): Likewise.
21527         (ggc_mark_tree_ptr): Likewise.
21528         (ggc_mark_string_ptr): Likewise.
21529         (ggc_mark_tree_varray_ptr): Likewise.
21530         (ggc_mark_tree_hash_table_ptr): Likewise.
21531         * ggc-common.c: New file.
21532         * Makefile.in (OBJS): Add ggc-common.o.
21533         (ggc-common.o): List dependencies.
21534
21535 1999-09-10 22:37 -0700  Zack Weinberg  <zack@bitmover.com>
21536
21537         * cppalloc.c (xstrdup): Use memcpy.
21538         * cpperror.c (cpp_print_containing_files): Don't use
21539         cpp_notice.
21540         * cpplib.c (conditional_skip): Set temp->lineno.
21541         (do_endif): Make error message less obscure.
21542         (if_directive_name): New function.
21543         (cpp_get_token [case EOF]): Unwind the if stack and generate
21544         error messages for each unterminated conditional in this file.
21545         (parse_string):  Do not behave differently if -traditional.
21546
21547 Fri Sep 10 14:04:07 1999  Richard Henderson  <rth@cygnus.com>
21548
21549         * builtins.c (expand_builtin_va_arg): Cope with an array-type
21550         va_list decomposing to pointer-type.
21551         * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields.
21552         (rs6000_va_arg): Likewise.
21553
21554 Fri Sep 10 13:21:21 1999  Jim Wilson  <wilson@cygnus.com>
21555
21556         * except.c (start_dynamic_handler): Compute size using
21557         STACK_SAVEAREA_MODE.
21558
21559 Fri Sep 10 16:01:23 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21560
21561         * protoize.c: Remove various __STDC__ and POSIX hacks.  Don't
21562         include directory headers.  Don't define strrchr.  Don't provide
21563         my_* replacement functions.  Prefer PTR over `pointer_type'.
21564         Don't prototype system functions.  Don't redefine getopt.
21565
21566         (shortpath, fancy_abort, notice, savestring, dupnstr, substr,
21567         safe_read, safe_write, save_pointers, restore_pointers,
21568         is_id_char, in_system_include_dir, directory_specified_p,
21569         file_excluded_p, unexpand_if_needed, abspath, check_aux_info,
21570         find_corresponding_lparen, referenced_file_is_newer,
21571         save_def_or_dec, munge_compile_params, gen_aux_info_file,
21572         process_aux_info_file, identify_lineno, check_source,
21573         seek_to_line, forward_to_next_token_char, output_bytes,
21574         output_string, output_up_to, other_variable_style_function,
21575         find_rightmost_formals_list, do_cleaning, careful_find_l_paren,
21576         do_processing, is_syscalls_file, rename_c_file, find_extern_def,
21577         find_static_definition, connect_defs_and_decs, add_local_decl,
21578         add_global_decls, needs_to_be_converted, visit_each_hash_node,
21579         add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list,
21580         edit_fn_declaration, edit_formals_lists, edit_fn_definition,
21581         scan_for_missed_items, edit_file, string_list_cons): Add static
21582         prototypes.
21583         (standard_exec_prefix, target_machine, target_version,
21584         default_syscalls_dir, string_list, string_list_cons, find_file,
21585         do_cleaning): Constify a char*.
21586         (safe_read, safe_write): Use PTR, not a char*.
21587         (is_id_char): Take an int, not a char.
21588         (main): Add prototype.  Call return, not exit.
21589
21590 Fri Sep 10 16:48:26 1999  Andrew Haley  <aph@cygnus.com>
21591
21592         * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields
21593         when comparing types.
21594
21595 Fri Sep 10 08:43:32 1999  Richard Henderson  <rth@cygnus.com>
21596
21597         * loop.c (basic_induction_var): Typo NULL_RTX -> NULL.
21598         (strength_reduce): Release the varrays from the no-bivs early exit.
21599
21600         * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before
21601         the loop over the registers.
21602
21603         * tree.c (save_tree_status): Set maybepermanent_firstobj NULL
21604         for a new obstack.
21605         (restore_tree_status): Check that instead when freeing the obstack.
21606
21607 Wed Sep  8 16:12:04 1999  Andrew Haley  <aph@cygnus.com>
21608
21609         * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used
21610         as pointers.
21611
21612 Fri Sep 10 11:58:55 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21613
21614         * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall.  Fix some
21615         operand size modifiers.
21616
21617 Fri Sep 10 10:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21618
21619         * c-common.c (c_common_nodes_and_builtins): Don't build
21620         va_list_type_node.
21621         * c-common.h (enum c_tree_index and related accesor macros): Remove
21622         everything now declared in tree.h.
21623         * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
21624         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE,
21625         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults.
21626         (error_mark_node, void_type_node, char_type_node, integer_type_node,
21627         unsigned_type_node, ptr_type_node, va_list_type_node,
21628         integer_zero_node, null_pointer_node, integer_one_node): Delete.
21629         (init_decl_processing): Call build_common_tree_nodes and
21630         build_common_tree_nodes_2 instead of building their nodes here.
21631         Don't add roots for these nodes.
21632         * stor-layout.c (size_zero_node, size_one_node): Delete.
21633         (set_sizetype): Make a new node for bitsizetype each time.
21634         * tree.c (global_trees): New variable.
21635         (init_obstacks): Add a gc root for it.
21636         (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
21637         LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE,
21638         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults.
21639         (build_common_tree_nodes): New function.
21640         (fix_sizetype): New function.
21641         (build_common_tree_nodes_2): New function.
21642         * tree.h (enum tree_index): New.
21643         (global_trees): Declare.
21644         Add accessor macros for all nodes now moved to global_trees.
21645         Delete their declarations.
21646
21647 Thu Sep  9 20:15:46 1999  Richard Henderson  <rth@cygnus.com>
21648
21649         * c-decl.c (finish_function): When processing a nested function,
21650         push and pop GC context around rest_of_compilation.
21651
21652 Thu Sep  9 16:42:06 1999  Richard Henderson  <rth@cygnus.com>
21653
21654         * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases.
21655         Default ix86_arch to PROCESSOR_I386.
21656         * i386.h (CC1_CPU_SPEC): Don't add -march=foo.  Remove -mno-foo.
21657         (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete.
21658         (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__.
21659         (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide
21660         __tune_foo__ if no -mcpu.  Make -mcpu=bar define __tune_bar__.
21661         (EXTRA_SPECS): Remove deleted specs.
21662
21663 Thu Sep  9 16:03:06 1999  Richard Henderson  <rth@cygnus.com>
21664
21665         * function.c (assign_stack_local_1): Allocate from
21666         function->x_frame_offset, not frame_offset.
21667
21668 Thu Sep  9 14:36:31 1999  Mark Mitchell  <mark@codesourcery.com>
21669
21670         * ggc.h (lang_cleanup_tree): Remove.
21671         * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree.
21672         * ggc-callbacks.c (lang_cleanup_tree): Remove.
21673
21674         * c-decl.c (finish_struct): Use ggc_alloc to allocate
21675         TYPE_LANG_SPECIFIC when garbage collecting.
21676         (lang_mark_tree): Mark TYPE_LANG_SPECIFIC.
21677         (lang_cleanup_tree): Remove.
21678
21679 Thu Sep  9 14:23:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
21680
21681         * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here.
21682         * crtstuff.c: Not here.
21683         * dwarf2out.c: Or here.
21684         * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame
21685         info.
21686
21687 Thu Sep  9 09:40:58 1999  Mark Mitchell  <mark@codesourcery.com>
21688
21689         * function.h (free_after_compilation): Remove decl parameter.
21690         (free_varasm_status0: Likewise.
21691         (free_emit_status): Likewise.
21692         (free_stmt_status): Likewise.
21693         (free_after_compilation): Likewise.
21694         (init_lang_status): New variable.
21695         (free_lang_status): Likewise.
21696         * emit-rtl.c (free_emit_status): Make decl parameter implicit.
21697         * function.c (init_lang_status): New variable.
21698         (free_lang_status): Likewise.
21699         (push_function_context_to): Don't set function::decl here.
21700         (free_after_copmilation): Make decl parameter implicit.  Call
21701         free_lang_status if defined.
21702         (prepare_function_start): Call init_lang_status if defined.
21703         (init_function_start): Set function::decl here.
21704         * profile.c (output_func_start_profiler): Don't call pushdecl
21705         until we've actually started the function.
21706         * stmt.c (free_stmt_status): Make decl parameter implicit.
21707         * toplev.c (rest_of_compilation): Don't pass decl to
21708         free_after_compilation.
21709         * varasm.c (free_varasm_status): Likewise.
21710
21711 Thu Sep  9 17:23:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
21712
21713         * except.c (call_get_eh_context): Add root when allocating static
21714         tree variable.
21715
21716 Thu Sep  9 15:24:59 BST 1999  Richard Earnshaw <rearnsha@arm.com>
21717
21718         * arm.c: Include "ggc.h".
21719         (arm_add_gc_roots): New function.
21720         (arm_override_options): Call it.
21721         (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated.
21722
21723         * arm.md (define_asm_attributes): Add a pool_range attribute.
21724
21725 Thu Sep  9 12:32:57 BST 1999  Nathan Sidwell  <nathan@acm.org>
21726
21727         * extend.texi (Volatiles): New node.
21728
21729 Thu Sep  9 03:37:31 1999  Richard Henderson  <rth@cygnus.com>
21730
21731         * ggc-simple.c (IS_MARKED, IGNORE_MARK): New.
21732         (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New.
21733         (struct ggc_any): Replace `mark' with `magic_mark'.
21734         (ggc_alloc_string): Use memcpy, not bcopy.
21735         (ggc_alloc_any): Set magic_mark.  Update bytes_alloced_since_gc.
21736         (ggc_free_{rtx,rtvec,tree,string}): Mark inline.
21737         (ggc_free_any): New.
21738         (ggc_mark_string): Use IGNORE_MARK.  Calc back to struct gcc_string.
21739         (ggc_mark): Use IGNORE_MARK.  Abort if magic doesn't match.
21740         (ggc_collect): Re-enable collection avoidance.  Use GGC_ANY_MARK.
21741         Use IS_MARKED. Use ggc_free_any.
21742
21743 1999-09-09  Scott Bambrough <scottb@netwinder.org>
21744
21745         * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C
21746
21747 Thu Sep  9 01:55:21 1999  Richard Henderson  <rth@cygnus.com>
21748
21749         * toplev.c (main): Always init_ggc.
21750
21751 Wed Sep  8 23:53:22 1999  Richard Henderson  <rth@cygnus.com>
21752
21753         * except.c (find_all_handler_type_matches): Free the list if
21754         we found no matches.
21755
21756         * combine.c (SUBST): Break out to a real function do_SUBST.
21757         (SUBST_INT): Likewise.
21758         * gcse.c (free_pre_mem): Free `temp_bitmap'.
21759         (pre_insert): Free `inserted'.
21760         * loop.c (basic_induction_var): Always set `location'.
21761
21762         * function.c (expand_function_end): Add initial_trampoline as a root.
21763         * rtl.h (init_varasm_once): Declare.
21764         * toplev.c (compile_file): Call it.
21765         * ggc-simple.c (ggc_mark_string_ptr): New.
21766         (ggc_add_string_root): New.
21767         (ggc_collect): Disable collection avoidance temporarily.
21768         * ggc.h (ggc_add_string_root): Declare.
21769         * except.c (create_rethrow_ref): Use ggc_alloc_string.
21770         * optabs.c (init_libfuncs): Likewise.
21771         * varasm.c (named_section): Use ggc_alloc_string.
21772         (make_function_rtl): Likewise.
21773         (make_decl_rtl): Likewise.
21774         (assemble_static_space): Likewise.
21775         (assemble_trampoline_template): Likewise.
21776         (output_constant_def): Likewise.
21777         (force_const_mem): Likewise.
21778         (mark_const_hash_entry): New.
21779         (mark_pool_sym_hash_table): New.
21780         (mark_varasm_state): Use it.
21781         (init_varasm_once): New.
21782
21783         * expr.h (init_one_libfunc): Declare.
21784         * optabs.c (init_one_libfunc): New.
21785         (init_optabs): Use it.
21786         * config/gofast.h: Likewise.
21787         * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise.
21788         * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise.
21789
21790 Thu Sep  9 13:46:06 1999  Geoffrey Keating  <geoffk@cygnus.com>
21791
21792         * Makefile.in (cppexp.o): Depend on cpphash.h.
21793         * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx.
21794         Include cpphash.h.
21795         * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx.
21796         * cpplib.c (do_define): Generalise to handle poisoned definitions,
21797         redefining poisoned identifiers, etc.
21798         (do_undef): Don't allow poisoned identifiers to be undefined.
21799         (do_pragma): Add #pragma poison.
21800         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
21801
21802         * cccp.c: Add T_POISON node type.
21803         (special_symbol): Handle `defined(xxx)' and plain `xxx' for
21804         poisoned xxx.
21805         (do_define): Generalise to handle poisoned definitions,
21806         redefining poisoned identifiers, etc.
21807         (do_undef): Don't allow poisoned identifiers to be undefined.
21808         (do_pragma): Add #pragma poison.
21809         (do_xifdef): Handle `#ifdef xxx' for poisoned xxx.
21810
21811         * c-pragma.c (handle_pragma_token): Ignore #pragma poison.
21812         * c-pragma.h: Add ps_poison state.  We now always have generic
21813         pragmas.
21814
21815 Wed Sep  8 20:30:42 1999  Mark Mitchell  <mark@codesourcery.com>
21816
21817         * ggc.h (ggc_alloc): New function.
21818         (ggc_mark): Likewise.
21819         * ggc-simple.c (ggc_any): New structure.
21820         (ggc_status): Add anys.
21821         (n_anys_collected): New variable.
21822         (ggc_alloc): Define.
21823         (ggc_mark): Likewise.
21824         (ggc_collect): Collect the anys.
21825
21826 Wed Sep  8 20:15:14 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21827
21828         * c-decl.c (mark_binding_level): Make static to match prototype.
21829
21830 Wed Sep  8 16:41:27 1999  Richard Henderson  <rth@cygnus.com>
21831
21832         * flow.c (new_insn_dead_notes): Don't early out for preexisting regs.
21833
21834 Wed Sep  8 16:07:52 1999  Richard Henderson  <rth@cygnus.com>
21835
21836         * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC
21837         will use into account.  Expand the max width to 5.
21838         * rtl.c: Likewise.
21839
21840 Wed Sep  8 16:01:14 1999  Richard Henderson  <rth@cygnus.com>
21841
21842         * ggc-simple.c (ggc_free_rtx): Poison the correct amount
21843         for the rtx length.
21844
21845 Wed Sep  8 15:23:54 1999  Richard Henderson  <rth@cygnus.com>
21846
21847         * alpha.md (call value patterns): Remove the result predicates.
21848
21849 Wed Sep  8 13:35:38 1999  Richard Henderson  <rth@cygnus.com>
21850
21851         * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from
21852         last change.
21853
21854 Wed Sep  8 15:32:16 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21855
21856         * system.h (sbrk, malloc, calloc, realloc): Backup prototypes
21857         changed from extern char *, to extern PTR.  Also fix typo in
21858         NEED_DECLARATION_REALLOC test.
21859
21860         * mips-tdump.c (malloc, calloc, realloc): Don't prototype.
21861
21862 Wed Sep  8 11:40:47 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21863
21864         * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL,
21865         ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF,
21866         ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3,
21867         ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete.
21868
21869         * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR.
21870
21871         * cccp.c (pcfinclude): Likewise.
21872
21873         * global.c (allocno_compare): Likewise.
21874
21875         * haifa-sched.c (rank_for_schedule): Likewise.
21876
21877         * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise.
21878
21879         * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise.
21880
21881         * stupid.c (stupid_reg_compare): Likewise.
21882
21883         * tree.c (_obstack_allocated_p): Likewise.
21884
21885         * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise.
21886
21887 1999-09-08  Bruce Korb  autogen@linuxbox.com
21888
21889         * Makefile.in: Give the hapless gperf user a hint about
21890         why "gperf -F" fails.
21891
21892 Wed Sep  8 04:43:22 1999  Richard Henderson  <rth@cygnus.com>
21893
21894         * lists.c: Include ggc.h.
21895         (zap_lists): New.
21896         (init_EXPR_INSN_LIST_cache): Install it.
21897
21898         * ggc-simple.c (init_ggc): Absorb the old init.
21899         (ggc_push_context): Use xcalloc.
21900         (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise.
21901         (ggc_collect): Add [rvts] tags to the collection stats.
21902
21903 Wed Sep  8 11:14:25 1999  Andreas Schwab  <schwab@suse.de>
21904
21905         * cccp.c (main): Fix handling of -include and -imacros options.
21906
21907 Wed Sep  8 02:23:08 1999  Jeffrey A Law  (law@cygnus.com)
21908
21909         * cpplib.c (cpp_push_buffer): Fix order of arguments.
21910
21911 Wed Sep  8 04:44:09 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
21912
21913         * rtl.h (obstack_alloc_rtx): Removed, it's now static in
21914         genrtl.c.
21915
21916 Wed Sep  8 00:33:43 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
21917
21918         * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG.
21919         * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG
21920         and SET_DEST. Update comment.
21921
21922 Wed Sep  8 18:55:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
21923
21924         * config/c4x/c4x.c: Include ggc.h.
21925         (c4x_add_gc_roots): New function.
21926         (c4x_override_options): Call c4x_add_gc_roots.
21927
21928 Wed Sep  8 00:00:16 1999  Richard Henderson  <rth@cygnus.com>
21929
21930         * defaults.h (TARGET_ESC): Move ...
21931         * system.h: ... here, where Linas had it in the first place.  Silly me.
21932
21933 Tue Sep  7 23:46:35 1999  Linas Vepstas  <linas@linas.org>
21934
21935         * c-common.c: Use ISGRAPH, ISLOWER, toupper.
21936         * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c,
21937         genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise.
21938         * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC.
21939         * defaults.h (TARGET_ESC): Add default.
21940
21941 Tue Sep  7 23:36:59 1999  Linas Vepstas  <linas@linas.org>
21942
21943         * configure.in: add i370-*-openedition, i370-*-mvs and
21944         i370-*-linux targets
21945
21946 Tue Sep  7 23:31:53 1999  Mark Mitchell  <mark@codesourcery.com>
21947
21948         * dsp16xxx.c: Include ggc.h
21949         (override_options): Mark GC roots.
21950         * mn10200.c: Include ggc.h.
21951         (asm_file_start): Mark GC roots.
21952         * tahoe.c: Include ggc.h.
21953         (extensible_operand): Mark GC roots.
21954
21955 Tue Sep  7 23:23:15 1999  Linas Vepstas  <linas@linas.org>
21956
21957         * README: Add section discussing status of ELF ABI.
21958         * i370.c: Fix misc spelling mistakes.
21959         (i370_label_scan): Updated notes, exception handling.
21960         (i370_function_prolog): Simplify ELF stack handling.
21961         * i370.h: (FIXED_REGISTERS): Free up r12 for ELF.
21962         (STACK_GROWS_DOWNWARD): ELF stack grows down.
21963         (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size.
21964         * i370.md: (movdi): Add notes.
21965         (floatsidf2): Use stack not rtca for scratch float area.
21966         (iorsi3): Correct operand constraints.
21967         * x-oe: Restore TAROUTOPTS which are used by pax.
21968
21969 Tue Sep  7 22:39:18 1999  Mark Mitchell  <mark@codesourcery.com>
21970
21971         * rs6000.c: Include ggc.h.
21972         (rs6000_add_gc_roots): New function.
21973         (override_options): Call it.
21974
21975 Tue Sep  7 22:09:03 1999  Richard Henderson  <rth@cygnus.com>
21976
21977         * alpha.h (alpha_compare): New.
21978         (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove.
21979         * alpha.c: Likewise for the definitions.
21980         (alpha_emit_conditional_branch): Update for alpha_compare.
21981         (alpha_emit_conditional_move): Likewise.
21982         * alpha.md (cmpdf, cmpdi): Likewise.
21983         (setcc patterns): Likewise.  Zero alpha_compare after use.
21984         (sne): Optimize (x != 0) into (0U < x).
21985
21986 Tue Sep  7 21:55:02 1999  Richard Henderson  <rth@cygnus.com>
21987
21988         * alpha.h (alpha_eh_epilogue_sp_ofs): Remove.
21989         (struct machine_function): Declare; add eh_epilogue_sp_ofs.
21990         (INIT_EXPANDERS): Remove.
21991         * alpha.c: Include ggc.h.
21992         (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove.
21993         (alpha_init_machine_status, alpha_mark_machine_status): New.
21994         (override_options): Install them.
21995         (struct machine_function): Moved to alpha.h.
21996         (alpha_save_machine_status, alpha_restore_machine_status): Remove.
21997         (alpha_init_expanders): Remove.
21998         (alpha_return_addr): Adjust to use current_function->machine.
21999         (alpha_ra_ever_killed): Likewise.
22000         (alpha_expand_epilogue): Likewise.
22001         * alpha.md (eh_epilogue): Likewise.
22002
22003 Wed Sep  8 14:34:42 1999  Ian Piumarta  <piumarta@prof.inria.fr>
22004                           Melissa O'Neill  <oneill@cs.sfu.ca>
22005                           Geoffrey Keating  <geoffk@cygnus.com>
22006
22007         * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or
22008         call-used registers (call-saved registers must still be contiguous
22009         and end with r31, of course).
22010
22011 Tue Sep  7 21:41:38 1999  Richard Henderson  <rth@cygnus.com>
22012
22013         * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to.
22014         (self_promoting_type_p): Delete.
22015         (self_promoting_args_p): Move ...
22016         * c-common.c: ... here.
22017         (c_common_nodes_and_builtins): Initialize lang_type_promotes_to.
22018         (simple_type_promotes_to): New.
22019         * builtins.c (lang_type_promotes_to): New.
22020         (expand_builtin_va_arg): Use it to give diagnostic for illegal types.
22021         * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ...
22022         * c-common.h: ... here.
22023         (self_promoting_args_p, simple_type_promotes_to): Declare.
22024         * c-decl.c (duplicate_decls): Use simple_type_promotes_to.
22025         (grokdeclarator): Likewise.
22026         * tree.h (lang_type_promotes_to): Declare.
22027
22028 Tue Sep  7 17:15:21 1999  Mark Mitchell  <mark@codesourcery.com>
22029
22030         Add some machine-dependent GC roots.
22031         * sparc.c: Include ggc.h.
22032         (sparc_add_gc_roots): New function.
22033         (mark_ultrasparc_pipeline_state): Likewise.
22034         (override_options): Call sparc_add_gc_roots.
22035         * pa.c: Include ggc.h.
22036         (pa_add_gc_roots): New function.
22037         (mark_deferred_plabels): Likewise.
22038         (override_options): Call pa_add_gc_roots.
22039         * mips.c: Include ggc.h.
22040         (mips_add_gc_roots): New function.
22041         (override_options): Use it.
22042
22043 Tue Sep  7 11:39:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22044
22045         * cpperror.c (cpp_file_line_for_message): Constify a char*.
22046
22047         * cppexp.c (parse_number, parse_charconst, cpp_lex,
22048         cpp_parse_expr): Add static prototypes.
22049         (parse_charconst): Don't cast away const-ness.
22050         (token): Constify a char*.
22051
22052         * cppfiles.c (file_name_list, include_hash, find_include_file,
22053         finclude, initialize_input_buffer): Constify a char*.
22054         (file_cleanup, find_position): Add static prototypes.
22055
22056         * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol,
22057         collect_expansion): Add static prototypes.
22058         (cpp_install, create_definition, monthnames): Constify a char*.
22059
22060         * cpphash.h (cpp_install): Likewise.
22061
22062         * cppinit.c (known_suffixes, default_include,
22063         dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise.
22064         (base_name, dump_special_to_buffer, initialize_dependency_output):
22065         Add static prototypes.
22066
22067         * cpplib.c (my_strerror): Constify a char*.
22068         (null_underflow, null_cleanup, skip_comment, copy_comment,
22069         copy_rest_of_line, handle_directive, pass_thru_directive,
22070         get_directive_token, read_line_number, cpp_print_file_and_line,
22071         v_cpp_error, v_cpp_warning, v_cpp_error_with_line,
22072         v_cpp_warning_with_line, detect_if_not_defined,
22073         consider_directive_while_skipping): Add static prototypes.
22074         (pass_thru_directive, check_macro_name, cpp_expand_to_buffer,
22075         cpp_pedwarn_with_file_and_line): Constify a char*.
22076
22077         * cpplib.h (cpp_options, include_hash, progname, definition,
22078         cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer,
22079         check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message,
22080         find_include_file, deps_output, include_hash): Constify a char*.
22081
22082         * cppmain.c (progname): Constify.
22083         (main): Add prototype.  Use return, not exit.
22084
22085         * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac,
22086         recognized_macro, check_macro_names, read_scan_file, write_rbrac,
22087         inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident,
22088         check_protection): Add static prototype.
22089         (xfree): Remove.
22090         (progname, recognized_macrom, recognized_extern): Constify a char*.
22091         (main): Add prototype.
22092
22093         * gen-protos.c (progname): Constify a char*.
22094
22095 Tue Sep  7 00:47:52 1999  Mark Mitchell  <mark@codesourcery.com>
22096
22097         * emit-rtl.c (free_emit_status): Take decl as a parameter.
22098         (init_emit_once): Add more GC roots.
22099         * except.c (mark_func_eh_entry): New function.
22100         (mark_eh_node): Mark false_label and rethrow_label.
22101         (init_eh): Add more GC roots.
22102         * function.c (free_after_compilation): Take decl as a paramter.
22103         Call free_stmt_status.
22104         (mark_function_state): Don't assume x_parm_reg_stack_loc is
22105         non-NULL.
22106         * function.h (free_after_compilation): Change prototype.
22107         (free_varasm_status): Likewise.
22108         (free_emit_status): Likewise.
22109         (free_stmt_status): New function.
22110         * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc):
22111         Remove, replacing with ...
22112         (ggc_status): New structure.
22113         (ggc_chain): New variable.
22114         (init_gcc): Define.
22115         (ggc_push_context): New function.
22116         (ggc_pop_context): Likewise.
22117         (ggc_alloc_rtx): Adjust for use of ggc_chain.
22118         (ggc_alloc_rtvec): Likewise.
22119         (ggc_alloc_tree): Likewise.
22120         (ggc_alloc_string): Likewise.
22121         (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO.
22122         (ggc_mark_tree): Give language-dependent code a chance to mark
22123         `x' nodes.
22124         (ggc_mark_tree_varray): Handle empty arrays.
22125         (ggc_collect): Adjust for use of ggc_chain.  Clear
22126         bytes_alloced_since_last_gc.
22127         * ggc.h (ggc_pop_context): New function.
22128         (ggc_push_context): Likewise.
22129         * print-tree.c (print_node): Don't print obstacks when GC'ing.
22130         * stmt.c (free_stmt_status): New function.
22131         (init_stmt_for_function): Clear last_expr_value.
22132         * toplev.c (rest_of_compilation): Always call free_after_compilation.
22133         Conditionalize call to ggc_collect.
22134         (main): Call init_ggc.
22135         * tree.c (push_obstacks): Do the push, even when GC'ing.
22136         (push_obstacks_nochange): Likewise.
22137         (pop_obstacks): Liekwise.
22138         * varasm.c (free_varasm_status): Take decl as a parameter.
22139
22140 Tue Sep  7 08:15:49 1999  Gavin Romig-Koch  <gavin@cygnus.com>
22141
22142         * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro.
22143         (MULTILIB_ENDIAN_DEFAULT) : Use the new macro.
22144         * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro.
22145         * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro.
22146
22147 Tue Sep  7 03:42:45 1999  Mark Klein (mklein@dis.com)
22148
22149         * pa/x-pa-mpeix: New file for the MPE port.
22150
22151         * pa/quadlib.asm: New file for long double support.
22152
22153         * configure.in: Add hppa1.0-*-mpeix for MPE port.
22154         * configure: Rebuilt.
22155
22156 Tue Sep  7 10:08:40 1999  Andreas Schwab  <schwab@suse.de>
22157
22158         * final.c (shorten_branches): Fix last change.
22159
22160 Tue Sep  7 00:30:32 1999  Jeffrey A Law  (law@cygnus.com)
22161
22162         * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete.
22163
22164 Mon Sep  6 22:44:47 1999  Jeffrey A Law  (law@cygnus.com)
22165
22166         * Merge from gcc2 snapshot Jan 9, 1999.  See FSFChangeLog for
22167         details.
22168
22169 Mon Sep  6 22:31:28 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22170
22171         * c-aux-info.c (concat): Don't define.
22172
22173         * cccp.c (my_strerror): Likewise.  All callers changed to use
22174         xstrerror instead.
22175         (do_include): Call xstrdup, not xmalloc/strcpy.
22176         (grow_outbuf): Don't check if xrealloc returns NULL, it can't.
22177         (xmalloc, xrealloc, xcalloc, xstrdup): Don't define.
22178
22179         * collect2.c (my_strsignal): Likewise.  All callers changed to use
22180         strsignal instead.
22181         (locatelib): Call xstrdup, not xmalloc/strcpy.
22182
22183         * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc.
22184
22185         * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy.
22186
22187         * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc.
22188
22189         * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy.
22190
22191         * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero.
22192
22193         * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/...
22194
22195         * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not
22196         malloc/realloc.
22197         (find_all_handler_type_matches): Likewise.  Don't check return
22198         value.
22199         (get_new_handler, init_insn_eh_region, process_nestinfo): Call
22200         xmalloc, not malloc.
22201         (init_eh_nesting_info): Likewise.  Call xcalloc, not xmalloc/bzero.
22202
22203         * gcc.c (xstrerror, xmalloc, xrealloc): Don't define.
22204         (init_spec): Call xcalloc, not xmalloc/bzero.
22205         (set_spec): Call xstrdup, not save_string.
22206         (record_temp_file): Call xstrdup, not xmalloc/strcpy.
22207         (find_a_file): Call xstrdup, not xmalloc/strcpy.
22208         (process_command): Call xstrdup, not save_string.
22209         (main): Call xcalloc, not xmalloc/bzero.
22210
22211         * gcov.c (xmalloc): Don't define.
22212         (create_program_flow_graph): Call xcalloc, not xmalloc/bzero.
22213         (scan_for_source_files): Call xstrdup, not xmalloc/strcpy.
22214         (output_data): Call xcalloc, not xmalloc/bzero.
22215
22216         * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero.
22217
22218         * mips-tdump.c (xmalloc): Don't define.
22219         (print_symbol): Call xmalloc, not malloc.
22220         (read_tfile): Call xcalloc, not calloc.
22221
22222         * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc):
22223         Don't define.  All callers of xfree/my_strsignal changed to use
22224         free/strsignal instead.
22225         (allocate_cluster): Call xcalloc, not calloc.
22226
22227         * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/...
22228         Fix memory leak, free allocated memory.
22229
22230         * prefix.c (translate_name): Call xstrdup, not save_string.
22231         (update_path): Likewise.
22232
22233         * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy.
22234
22235         * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2):
22236         Don't define.  Callers of xfree/savestring2 changed to use
22237         free/concat instead.
22238
22239         * reload1.c (reload): Call xcalloc, not xmalloc/bzero.
22240         (init_elim_table): Likewise.
22241
22242         * resource.c (init_resource_info): Likewise.
22243
22244         * stupid.c (stupid_life_analysis): Likewise.
22245
22246         * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define.
22247         (open_dump_file): Call concat, not xmalloc/strcpy/...
22248         (clean_dump_file): Likewise.
22249         (compile_file): Call xstrdup, not xmalloc/strcpy.
22250
22251 Mon Sep  6 15:04:55 1999  Richard Henderson  <rth@cygnus.com>
22252
22253         * v850.h (EXPAND_BUILTIN_VA_ARG): New.
22254         * v850.c (v850_va_arg): New.
22255
22256 Tue Sep  7 09:36:01 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22257
22258         * haifa-sched.c: Tidy comments.
22259
22260 Mon Sep  6 14:30:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22261
22262         * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o.
22263         (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o,
22264         $(out_object_file)): Depend on ggc.h.
22265         * c-common.c: Include "ggc.h".
22266         (combine_strings): If doing GC, use ggc_alloc_string.
22267         * c-decl.c: Include "ggc.h".
22268         (ggc_p): Define with value 0.
22269         (mark_binding_level): New function.
22270         (init_decl_processing): Add GC roots.
22271         (mark_c_function_context): New function.
22272         (lang_mark_false_label_stack): New function.
22273         (lang_mark_tree): New function.
22274         (lang_cleanup_tree): New function.
22275         * c-lang.c: Include "ggc.h".
22276         (lang_init): Call c_parse_init.
22277         * c-lex.c: Include "ggc.h".
22278         (check_linenum): If doing GC, don't copy filenames to permanent
22279         obstack.
22280         * c-parse.in: Include "ggc.h".
22281         (c_parse_init): New function.
22282         * c-tree.h (c_parse_init, mark_c_function_context): Declare.
22283         * objc/Make-lang.in (objc-parse.o): Depend on ggc.h.
22284
22285         * except.c (mark_eh_state): Mark more state.
22286         * function.c (mark_function_state): Likewise.
22287         * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version.
22288         (ggc_alloc_string) [GGC_DUMP]: Fix typo.
22289         * toplev.c (mark_file_stack): New function.
22290         (compile_file): If doing GC, use ggc_alloc_string on input filename.
22291         (main): Add root for input_file_stack.
22292
22293         * i386.c: Include "ggc.h".
22294         (ix86_mark_machine_status): New function.
22295         (override_options): Set mark_machine_status.
22296
22297 Mon Sep  6 15:26:23 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22298
22299         * tree.c (copy_node): Copy node contents also if doing GC.
22300
22301 Mon Sep  6 08:42:06 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
22302
22303         * collect2.c (scan_libraries): Fix double-thinko :-).
22304
22305 Mon Sep  6 02:42:36 1999  Jeffrey A Law  (law@cygnus.com)
22306
22307         * collect2.c (scan_libraries): Fix thinko.
22308
22309         * cse.c (delete_trivially_dead_insns): Do not skip the last
22310         insn if it is a real insn.
22311
22312 Sun Sep  5 18:57:42 1999  Mark Mitchell  <mark@codesourcery.com>
22313
22314         * Makefile.in (ggc-simple.o): Depend on hash.h.
22315         * ggc.h (ggc_add_tree_hash_table_root): Declare.
22316         (ggc_mark_tree_varray): Likewise.
22317         (ggc_mark_tree_hash_table): Likewise.
22318         * ggc-simple.c: Include hash.h.
22319         (ggc_mark_tree_hash_table_ptr): New function.
22320         (ggc_mark_tree_hash_table_entry): Likewise.
22321         (ggc_mark_tree_hash_table): Likewise.
22322         (ggc_add_tree_hash_table_root): Likewise.
22323         * varray.h (const_equiv_data): Use struct rtx_def *, rather than
22324         rtx, when defining fields.
22325
22326 Sun Sep  5 18:57:42 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
22327
22328         * profile.c (output_func_start_profiler): Remove apparently
22329         nonsensical call to start_sequence.
22330
22331 Sun Sep  5 17:34:33 1999  Richard Henderson  <rth@cygnus.com>
22332
22333         * clipper/clipper.c (clipper_va_start): Fix typos.
22334
22335         * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs.
22336         * spur/spur.c (spur_build_va_list, spur_va_start): New stubs.
22337         (spur_va_arg): New stub.
22338
22339         * configure.in: Comment out pyramid.
22340
22341 Sun Sep  5 19:11:01 1999  Michael Meissner  <meissner@cygnus.com>
22342
22343         * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these
22344         don't conflict with the bits that win32, cygwin, and dgux
22345         defines.
22346
22347 Sun Sep  5 09:31:56 1999  Richard Henderson  <rth@cygnus.com>
22348                           Bernd Schmidt <bernds@cygnus.co.uk>
22349
22350         * integrate.c (function_cannot_inline_p): Do not inline
22351         functions with forced labels.
22352
22353 Sun Sep  5 00:35:17 1999  Richard Henderson  <rth@cygnus.com>
22354                           Bernd Schmidt <bernds@cygnus.co.uk>
22355                           Mark Mitchell  <mark@codesourcery.com>
22356
22357         * Makefile.in (ggc-simple.o): Depend on varray.h.
22358         (rtl.o): Depend on ggc.h.
22359         (genattrtab.o): Depend on ggc.h.
22360         (print-tree.o): Likewise.
22361         (fold-const.o): Likewise.
22362         * emit-rtl.c (sequence_element_free_list): Remove, and all references.
22363         (make_insn_raw): Don't cache insns when GC'ing.
22364         (emit_insn_before): Likewise.
22365         (emit_insn_after): Likewise.
22366         (emit_insn): Likewise.
22367         (start_sequence): Use xmalloc to allocate the sequence_stack.
22368         (end_sequence): Add free to free it.
22369         (gen_sequence): Don't cache insns when GC'ing.
22370         (clear_emit_caches): Don't use sequence_element_free_list.
22371         (init_emit): Use xcalloc, not xmalloc+bzero.
22372         * fold-const.c (size_int_wide): Kill the cache, when GC'ing.
22373         * function.c (pop_function_context_from): Use free to free the
22374         fixup_var_refs_queue.
22375         (put_reg_into_stack): Allocate it with xmalloc.
22376         * genattrtab.c: Include ggc.h.
22377         (operate_exp): Don't use obstack_free when GC'ing.
22378         (simplify_cond): Likewise.
22379         (simplify_text_exp): Likewise.
22380         (optimize_attrs): Likewise.
22381         * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when
22382         GC'ing.
22383         (gencode): Generate a #include for ggc.h.
22384         * ggc-callbacks.c (ggc_p): Define it to zero.
22385         * ggc-none.c (ggc_p): Likewise.
22386         * ggc-simple.c: Include varray.h.
22387         (ggc_mark_tree_varray): New function.
22388         (ggc_add_tree_varray_root): Likewise.
22389         (ggc_mark_tree_varray_ptr): Likewise.
22390         * ggc.h (ggc_p): Declare.
22391         (varray_head_tag): Likewise.
22392         (ggc_add_tree_varray_root): Declare.
22393         * print-tree.c (print_node): Don't check for TREE_PERMANENT
22394         inconsistencies when GC'ing.
22395         * rtl.c: Include ggc.h.
22396         (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing.
22397         (rtx_alloc): Use ggc_alloc_rtx when GC'ing.
22398         (rtx_free): Don't call obstack_free when GC'ing.
22399         * toplev.c (rest_of_compilation): Call ggc_collect after every
22400         pass, if GC'ing.
22401         * tree.c (push_obstacks): Do nothing, if GC'ing.
22402         (pop_obstacks_nochange): Likewise.
22403         (pop_obstacks): Likewise.
22404         (make_node): Use ggc_alloc_tree when GC'ing.
22405         (copy_node): Likewise.
22406         (get_identifier): Use ggc_alloc_string when GC'ing.
22407         (build_string): Likewise.
22408         (make_tree_vec): Use ggc_alloc_tree when GC'ing.
22409         (tree_cons): Likewise.
22410         (build1): Likewise.
22411         (type_hash_canon): Don't call obstack_free when GC'ing.
22412
22413 Sat Sep  4 21:52:32 1999  Richard Henderson  <rth@cygnus.com>
22414
22415         * haifa-sched.c (schedule_block): Use next_nonnote_insn instead
22416         of NEXT_INSN when examining speculative insns for SCHED_GROUP_P.
22417
22418 Sat Sep  4 20:40:19 1999  Richard Henderson  <rth@cygnus.com>
22419                           Bernd Schmidt <bernds@cygnus.co.uk>
22420                           Mark Mitchell  <mark@codesourcery.com>
22421
22422         * Makefile.in (stor-layout.o): Depend on ggc.h.
22423         (expr.o): Depend on ggc.h.
22424         (profile.o): Depend on ggc.h.
22425         (stor-layout.o): Depend on ggc.h.
22426         * emit-rtl.c (init_emit_once): Add gc roots.
22427         * expr.c: Include ggc.h.
22428         (emit_block_move): Add gc roots.
22429         (clear_storage): Likewise.
22430         * expr.h (init_stor_layout_once): New function.
22431         * profile.c: Include ggc.h.
22432         (init_arc_profiler): profiler_label is a root.
22433         * scan.c (make_sstring_space): Trust xrealloc to function
22434         correctly with first parameter NULL.
22435         * stor-layout.c: Include ggc.h.
22436         (set_sizetype): Add gc root.
22437         (init_stor_layout_once): New function.
22438         * toplev.c (compile_file): Call it.
22439
22440 Sat Sep  4 19:26:25 1999  Richard Henderson  <rth@cygnus.com>
22441                           Bernd Schmidt <bernds@cygnus.co.uk>
22442                           Mark Mitchell  <mark@codesourcery.com>
22443
22444         * Makefile.in (tree.o): Depend on ggc.h.
22445         (varasm.o): Likewise.
22446         (function.o): Likewise.
22447         (stmt.o): Likewise.
22448         (except.o): Likewise.
22449         (optabs.o): Likewise.
22450         (emit-rtl.o): Likewise.
22451         * emit-rtl.c: Include ggc.h.
22452         (sequence_element_free_list): Remove, and all references.
22453         (mark_sequence): New functions.
22454         (mark_emit_state): New function.
22455         * except.c: Include ggc.h.
22456         (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions.
22457         (mark_tree_label_node): New functions.
22458         (mark_eh_state): New function.
22459         * function.c: Include ggc.h.
22460         (mark_temp_slot, mark_function_chain): New functions.
22461         (mark_function_state): New function.
22462         (init_function_once): New function.
22463         * function.h (init_function_once): New function.
22464         * ggc-callbacks.c (lang_mark_false_label_stack): New function.
22465         * ggc.h (label_node): Declare.
22466         (eh_status, emit_status, stmt_status, varasm_status): Likewise.
22467         (lang_mark_false_label_stack): New function.
22468         (mark_temp_slot): Remove declaration.
22469         (mark_function_chain): Likewise.
22470         (mark_eh_state): Adjust prototype.
22471         (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab):
22472         Likewise.
22473         * optabs.c: Include ggc.h.
22474         (mark_optab): New function.
22475         (init_optabs): Add gc roots.
22476         * stmt.c: Include ggc.h.
22477         (mark_cond_nesting, mark_loop_nesting): New functions.
22478         (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise.
22479         (mark_stmt_state): New function.
22480         * toplev.c (compile_file): Call init_function_once.
22481         * tree.c: Include ggc.h.
22482         (type_hash): Move declaration earlier in file.
22483         (TYPE_HASH_SIZE, type_hash_table): Likewise.
22484         (init_obstacks): Add gc roots.
22485         (mark_type_hash): New function.
22486         * varasm.c: Include ggc.h.
22487         (mark_pool_constant): New function.
22488         (mark_varasm_state): New function.
22489
22490 Sat Sep  4 22:28:56 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22491
22492         * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO.
22493
22494 Sat Sep  4 18:01:45 1999  Bernd Schmidt <bernds@cygnus.co.uk>
22495
22496         * c-decl.c (struct language_function): Renamed from struct c_function.
22497         Delete elt NEXT.
22498         (c_function_chain): Delete.
22499         (push_c_function_context): New arg F.  Don't warn about nested
22500         functions here.  Fill LANGUAGE elt of F.  Delete code to update
22501         c_function_chain.  Don't call push_function_context.
22502         (pop_c_function_context): New arg F.  Restore from there instead of
22503         from c_function_chain.  Don't call pop_function_context.  Clear out
22504         LANGUAGE field of F when done.
22505         * c-lang.c: Include "function.h"
22506         (lang_init): Initialize save_lang_status and restore_lang_status.
22507         * c-parse.in (nested_function, nested_function_notype): Warn about
22508         nested functions.  Call push_function_context/pop_function_context
22509         instead of the _c_ variants.
22510         * c-tree.h (push_c_function_context, pop_c_function_context): Update
22511         prototype.
22512         * Makefile.in (c-lang.o): Update dependencies.
22513
22514         * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx,
22515         regno_pointer_flag, regno_pointer_align.
22516         (gen_reg_rtx): Use xrealloc to enlarge them.
22517         (free_emit_status): New function.
22518         * function.c (mark_machine_status, mark_lang_status): New variables.
22519         (assign_stack_local_1): Renamed from assign_outer_stack_local.  Merge
22520         in some bits from assign_stack_local.  All callers changed to use new
22521         name.
22522         (assign_stack_local): Just call assign_stack_local_1.
22523         (free_after_compilation): New function.
22524         (put_reg_into_stack): Simplify to always call assign_stack_local_1.
22525         (trampoline_address): Likewise.
22526         (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc.
22527         (prepare_function_start): Explicitly clear some more variables.
22528         * function.h (struct function): New elt can_garbage_collect.
22529         (mark_machine_status, mark_lang_status): Declare variables.
22530         (free_after_compilation, free_emit_status, free_varasm_status,
22531         init_varasm_status): Declare functions.
22532         * toplev.c (rest_of_compilation): Call free_after_compilation when
22533         done with the current function.
22534         * varasm.c (free_varasm_status): New function.
22535
22536 Sat Sep  4 17:15:13 1999  Richard Henderson  <rth@cygnus.com>
22537
22538         * sparc.h (EXPAND_BUILTIN_VA_START): Define.
22539         (EXPAND_BUILTIN_VA_ARG): Define.
22540         * sparc.c (sparc_va_start): New.
22541         (sparc_va_arg): New.
22542
22543 Sun Sep  5 11:11:59 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22544
22545         * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs.
22546
22547 Sun Sep  5 10:13:19 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22548
22549         * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable.
22550
22551 Sat Sep  4 13:44:01 1999  Mark Mitchell  <mark@codesourcery.com>
22552
22553         * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o.
22554         (OBJS): Add $(GGC).
22555         (ggc-callbacks.o): New target.
22556         * ggc-callbacks.c: New file.
22557
22558 Sat Sep  4 22:53:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22559
22560         * expr.h: Collapse individual optab and libfunc vars to arrays.
22561         (optab_index, libfunc_index): New enumerations.
22562         (optab_table, libfunc_table): New arrays.
22563         Add accessor macros for both.
22564
22565         * optabs.c (optab_table, libfunc_table): New.
22566         Delete declarations for individual optab and libfunc vars.
22567
22568 Sat Sep  4 12:57:17 1999  Richard Henderson  <rth@cygnus.com>
22569
22570         * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args.
22571
22572 Sat Sep  4 11:19:52 1999  Richard Henderson  <rth@cygnus.com>
22573
22574         * Makefile.in (GGC, GGC_LIB): New.
22575         (HOST_RTL): Include ggc-none.o.
22576         (ggc-simple.o): New target.
22577         (ggc-none.o): Likewise.
22578         * tree.h (tree_common): Add gc_mark.
22579         * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark.
22580         (struct rtvec_def): Add gc_mark.
22581         * emit-rtl.c (global_rtl): Update static initializers to contain
22582         enough initializers.
22583         * ggc.h, ggc-none.c, ggc-simple.c: New files.
22584         * toplev.c (gc_time): New variable.
22585         (all_time): New variable.
22586         (compile_file): Print gc time.
22587         (print_time): Calculate percentage of the whole.
22588
22589 Sat Sep  4 13:11:01 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22590
22591         Change obstack memory management and varasm constant pool handling so
22592         that nested functions are treated like any other functions.
22593         * function.c (init_machine_status): New variable.
22594         (push_function_context_to): Set contains_functions for the outer
22595         function.  Don't call save_varasm_status.
22596         (pop_function_context_from): Don't call restore_varasm_status.  Don't
22597         set current_function_contains_functions.
22598         (prepare_function_start): Call init_varasm_status rather than
22599         init_const_rtx_hash_table.  Call (*init_machine_status) if the pointer
22600         is non-null.
22601         * function.h (struct function) Add field varasm.  Delete fields
22602         inline_obstacks, inl_emit, const_rtx_hash_table, first_pool,
22603         last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain.
22604         (init_machine_status): Declare.
22605         (save_varasm_status, restore_varasm_status): Delete declarations.
22606         (save_tree_status, restore_tree_status): Delete last argument.
22607         * integrate.c (initialize_for_inline): Lose arg COPY.  Delete copying
22608         code.  All callers changed.
22609         (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline,
22610         save_constants_in_decl_trees, restore_constants, save_constants,
22611         save_for_inline_eh_labelmap, save_for_inline_copying): Delete
22612         functions.
22613         (inlining): New variable.
22614         (reg_map, label_map, insn_map, orig_asm_operands_vector,
22615         copy_asm_operands_vector, copy_asm_constraints_vector): Delete
22616         variables.
22617         (save_for_inline_nocopy): Don't save constants.
22618         Don't set inl_emit field in current_function.
22619         (expand_inline_function): Use emit field, not inl_emit, of the inlined
22620         function.  Set new variable inlining before
22621         calling copy_rtx_and_substitute.
22622         (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle
22623         constant pool references if inlining is nonzero.
22624         Delete ADDRESS and (most of the) CONST cases.
22625         (output_inline_function): Save and restore current_function/
22626         current_function_decl.  Delete restore_constants code.  Don't call
22627         init_const_rtx_hash_table.
22628         * output.h (init_const_rtx_hash_table): Don't declare.
22629         * rtl.h (struct function): Declare.
22630         (get_pool_constant_for_function, get_pool_mode_for_function): Declare.
22631         * toplev.c (rest_of_compilation): Don't treat nested functions or
22632         functions containing them specially.  Delete all code to deal with
22633         save_for_inline_copying.
22634         * tree.c (toplev_inline_obstacks, extra_inline_obstacks,
22635         inline_obstacks): Delete variables.
22636         (save_tree_status): Lose arg CONTEXT.  All callers changed.
22637         Simply allocate a new function_maybepermanent_obstack for the new
22638         function, delete all the special cases.
22639         Don't save inline_obstacks.
22640         (restore_tree_status): Lose arg CONTEXT.  All callers changed.
22641         Delete special handling for function_maybepermanent_obstack; simply
22642         free it if empty.
22643         Don't restore inline_obstacks.
22644         (permanent_allocation):  Delete code that frees inline_obstacks.
22645         (print_inline_obstack_statistics): Delete function.
22646         (dump_tree_statistics): Don't call it.
22647         * varasm.c (struct varasm_status): New.
22648         (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool,
22649         last_pool, pool_offset, const_double_chain): Delete global
22650         variables, replace with accessor macros.
22651         (immed_double_const): Don't walk const_double_chain outside a
22652         function, but don't treat nested functions specially anymore.
22653         (immed_real_const_1): Likewise.
22654         (clear_const_double_mem): Don't treat nested functions specially.
22655         (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status.
22656         (save_varasm_status, restore_varasm_status): Delete functions.
22657         (init_varasm_status): New function.
22658         (force_const_mem): Don't treat nested functions specially.
22659         (find_pool_constant): Accept new arg F, search for constants in
22660         that function's pool rather than the current one.  All callers
22661         changed.
22662         (get_pool_constant_for_function, get_pool_mode_for_function): New
22663         functions.
22664
22665         * i386.c (init_386_machine_status): New function, mostly from
22666         clear_386_stack_locals.
22667         (struct machine_functions): Rename element names to avoid name
22668         clashes.
22669         (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor
22670         macros, replacing global variables.
22671         (clear_386_stack_locals, save_386_machine_status,
22672         restore_386_machine_status): Delete functions.
22673         (override_options): Initialize init_machine_status.
22674         * i386.h (INIT_EXPANDERS): Delete macro.
22675         (save_386_machine_status, restore_386_machine_status,
22676         clear_386_stack_locals): Delete declarations.
22677
22678 Sat Sep  4 16:56:28 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22679
22680         * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init.
22681         (doloop_begin):  Simplify pattern and use emit_jump_insn.
22682         (doloop_end): Simplify pattern, switch operand order,
22683         and use emit_jump_insn.
22684
22685 Fri Sep  3 19:02:38 1999  Bernd Schmidt <crux@pool.informatik.rwth-aachen.de>
22686
22687         * function.h (struct function): Add new element LANGUAGE.
22688         (save_lang_status): Declare new variable.
22689         (restore_lang_status): Likewise.
22690         * function.c (save_lang_status): Define.
22691         (restore_lang_status): Likewise.
22692         (push_function_context_to): Call language-specific save function.
22693         (pop_function_context_from): Call language-specific restore function.
22694
22695 Fri Sep  3 01:16:18 1999  Alasdair Baird  <alasdair@wildcat.demon.co.uk>
22696
22697         * i386.md (movsf_1): Check REG_P before use of REGNO.
22698         (movdf_1): Likewise.
22699         (movxf_1): Likewise.
22700         (extendsfdf2): Likewise.
22701         (extendsfxf2): Likewise.
22702         (extenddfxf2): Likewise.
22703
22704 Sat Sep  4 11:37:15 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
22705
22706         * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large
22707         constants into memory.
22708         (c4x_shiftable_constant): New function.
22709         * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT.
22710         (c4x_shiftable_constant): Declare.
22711         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant,
22712         ashlqi3_noclobber): Add new patterns and associated splitters.
22713
22714 Fri Sep  3 16:22:17 1999  Richard Henderson  <rth@cygnus.com>
22715
22716         * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero.
22717         * dwarf2out.c (dwarf2out_frame_init): Likewise.
22718         * final.c (shorten_branches): Likewise.
22719         * global.c (global_alloc): Likewise.
22720         * haifa-sched.c (build_control_flow): Likewise.
22721         * stmt.c (check_for_full_enumeration_handling): Likewise.
22722         (estimate_case_costs): Likewise.
22723
22724 Fri Sep  3 15:49:56 1999  Mark Mitchell  <mark@codesourcery.com>
22725
22726         * rtl.h (RTL_CHECKC2): Fix typo in last change.
22727
22728 Fri Sep  3 15:13:34 1999  Richard Henderson  <rth@cygnus.com>
22729
22730         * flow.c (propagate_block): Use XEXP not SET_DEST for a USE.
22731         (recompute_reg_usage): Likewise.
22732         * rtlanal.c (find_regno_fusage): Likewise.
22733
22734         * rtl.c (rtl_check_failed_code1): New function.
22735         (rtl_check_failed_code2): New.
22736         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args.
22737         (RTL_CHECKC1, RTL_CHECKC2): New.
22738         (XC*): New accessor macros.
22739         (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them.
22740         (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise.
22741         (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise.
22742         (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise.
22743         (TRAP_*, RANGE_INFO_*): Likewise.
22744
22745 Fri Sep  3 15:10:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22746
22747         * Makefile.in (tlink.o): Don't depend on toplev.h.
22748
22749         * collect2.c (c_file, o_file, export_file, import_file, ldout,
22750         output_file, nm_file_name, ldd_file_name, strip_file_name,
22751         c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file,
22752         add_prefix, prefix_from_env, prefix_from_string, do_wait,
22753         fork_execute, maybe_unlink, add_to_list,
22754         extract_init_priority, write_list, dump_list,
22755         dump_prefix_list, write_list_with_asm, write_c_file,
22756         write_c_file_stat, write_c_file_glob, scan_prog_file,
22757         scan_libraries, is_in_list, resolve_lib_name, use_import_list,
22758         ignore_library, extract_string, notice, dump_file, target_machine,
22759         collect_wait, collect_execute, libname, locatelib, aix_std_libs,
22760         read_file, print_load_command): Constify a char*.
22761         (fdopen, error, fatal, fatal_perror): Don't prototype.
22762         (my_strerror): Remove.  All callers use xstrerror instead.
22763         (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions.
22764         (main): Add prototype.  Constify lots of char* ptrs.  Change calls
22765         to xcalloc/strcpy/strcat/...  to one call to concat.
22766         (main, scan_prog_file, scan_libraries): Use an intermediate
22767         `const char **' to build an argv array.
22768         (mapfile, libselect, libcompare, locatelib): Add prototypes.
22769
22770         * collect2.h (collect_execute, collect_wait, dump_file,
22771         file_exists): Constify a char*.
22772         (ldout, c_file_name, temporary_obstack, permanent_obstack,
22773         temporary_firstobj, vflag, debug): Add extern declarations.
22774         (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes.
22775
22776         * tlink.c: Don't include toplev.h.
22777         (vflag, debug, ldout, c_file_name, temporary_obstack,
22778         permanent_obstack, temporary_firstobj): Don't declare.
22779         (tlink_execute, frob_extension, symbol_hash_lookup,
22780         file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym,
22781         recompile_files, read_repo_files, demangle_new_symbols,
22782         scan_linker_output): Constify a char*.
22783         (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc,
22784         do_tlink): Mark parameters with ATTRIBUTE_UNUSED.
22785
22786 Fri Sep  3 18:09:24 1999  Andrew Haley  <aph@cygnus.com>
22787
22788         * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr
22789         (relative) rather than jsr (absolute) subroutine call insns.
22790         * config/m68k/m68k-coff.h: Ditto.
22791
22792 Fri Sep  3 17:24:31 1999  Richard Earnshaw <rearnsha@arm.com>
22793
22794         * arm.c (note_invalid_constants): No need to ignore ASMs, we can
22795         now rework these too.
22796         (arm_reorg): If an insn can't reach the end of the current pool,
22797         ensure that we emit that pool before the insn.
22798
22799 Fri Sep  3 09:14:32 1999  Marc Espie <espie@tetto.liafa.jussieu.fr>
22800
22801         * tlink.c (scan_linker_output): Skip the initial underscore in
22802         a mangled name if appropriate.
22803
22804 Fri Sep  3 01:28:33 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22805
22806         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
22807         objc_tree_code_name, synth_id_with_class_suffix, warn_with_method,
22808         error_with_ivar, gen_declarator, create_builtin_decl,
22809         my_build_string, generate_descriptor_table, generate_ivars_list,
22810         generate_dispatch_table, check_protocols, TAG_GETCLASS,
22811         TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS,
22812         dump_base_name, lang_decode_option, build_encode_expr,
22813         start_class, finish_class, encode_pointer, really_start_method,
22814         gen_declaration, dump_interface, handle_class_ref, handle_impent):
22815         Constify.
22816         (objc_demangle, objc_printable_name, generate_struct_by_value_array):
22817         Add static prototypes.
22818         (build_objc_string_decl, build_selector_reference_decl,
22819         encode_bitfield, build_class_reference_decl): Remove unused
22820         parameter, all callers changed.
22821         (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED.
22822         (objc_printable_name): Likewise.  Change second parameter to type int.
22823         (init_objc): Use memcpy, not bcopy, to avoid casts.
22824
22825 Thu Sep  2 21:49:52 1999  Richard Henderson  <rth@cygnus.com>
22826
22827         * reload1.c (eliminate_regs_in_insn): Avoid eliminating the
22828         reg notes on a deleted insn.
22829         * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE.
22830
22831 Thu Sep  2 20:18:12 1999  Jeffrey A Law  (law@cygnus.com)
22832
22833         * i386.c (ix86_attr_length_default): Handle TYPE_FXCH.
22834
22835 Thu Sep  2 22:00:08 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22836
22837         * stmt.c (expand_asm_operands): Fix index into inout_mode when
22838         reading it.
22839
22840 Thu Sep  2 13:00:48 1999  Richard Henderson  <rth@cygnus.com>
22841
22842         * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present.
22843         * tm.texi (MD_ASM_CLOBBERS): Document it.
22844
22845 Thu Sep  2 10:22:40 1999  Richard Henderson  <rth@cygnus.com>
22846
22847         * dwarf2out.c (dwarf2out_line): Constify `lastfile'.
22848         * except.c (expand_rethrow): Remove unused variable.
22849         * expr.c (do_jump_by_parts_greater_rtx): Likewise.
22850         * flow.c (replace_insns): Likewise.
22851         (create_edge_list, verify_edge_list): Likewise.
22852         * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0.
22853
22854         * genemit.c (gen_expand): Only emit `operands[N]' decl if there
22855         is special code to run.
22856         (main): Don't define operands to emit_operand.
22857         * genrecog.c (main): Don't emit an empty peephole2_insn function.
22858
22859         * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF.
22860
22861         * alpha/alpha.h (normal_memory_operand): Declare.
22862         (reg_no_subreg_operand): Declare.
22863         * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC.
22864
22865 Thu Sep  2 10:19:20 1999  Richard Henderson  <rth@cygnus.com>
22866
22867         * c-parse.in (compstmt_primary_start): New, broken out of first
22868         part of compstmt handling in primary.
22869         (primary): Use it.  Add an error clause.
22870         (compstmt_nostart): Renamed from compstmt; remove all
22871         initial invocations of compstmt_start.
22872         (compstmt): New.
22873
22874 Thu Sep  2 01:35:50 1999  Marc Espie <espie@cvs.openbsd.org>
22875
22876         * protoize.c (gen_aux_info_file):  Let pexecute call choose_temp_base if
22877         needed.
22878
22879 Thu Sep  2 00:43:59 1999  Finn Hakansson  <finn@axis.com>
22880
22881         * combine.c (simplify_shift_const): Remove extra semicolon.
22882         * dwarf2out.c (remove_AT): Likewise.
22883         * expmed.c (expand_mult): Likewise.
22884         * gcov.c (create_program_flow_graph): Likewise.
22885         * reorg.c (mostly_true_jump): Likewise.
22886
22887 Thu Sep  2 00:06:43 1999  Jeffrey A Law  (law@cygnus.com)
22888
22889         * fold-const.c (fold_range_test): Do not try to fold the range
22890         test if the rhs or lhs has side effects.
22891
22892         * combine.c (simplify_rtx): Recognize another case of a synthesized
22893         sign extension.
22894
22895         * varasm.c (mark_constant_pool): When marking indirect references,
22896         only look at SYMBOL_REFs.
22897
22898         * except.c (expand_fixup_region_end): Do not peek at
22899         INSN_UID (node->entry->outer_context) for flag_new_exceptions.
22900
22901 Thu Sep  2 13:52:53 1999  Geoffrey Keating  <geoffk@cygnus.com>
22902
22903         * flags.h: New variables align_loops, align_loops_log,
22904         align_jumps, align_jumps_log, align_labels, align_labels_log,
22905         align_functions, align_functions_log.
22906         * toplev.c: Define them.
22907         (f_options): Handle -falign-* when they have no argument.
22908         (main): Add logic to set variables for -falign-functions,
22909         -falign-jumps, -falign-labels, -falign-loops.
22910         Make it -fsched-verbose=<n> and -finline-limit=<n>.
22911         (display_help): Change help to match options.
22912         * final.c (LABEL_ALIGN): Default to align_labels_log.
22913         (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1.
22914         (LOOP_ALIGN): Default to align_loops_log.
22915         (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1.
22916         (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log.
22917         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1.
22918         * varasm.c (assemble_start_function): Handle align_functions.
22919
22920         * config/sparc/sparc.h: Don't declare sparc_align_*.
22921         Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN.
22922         (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into
22923         sparc.c.
22924         (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request,
22925         it's a promise.
22926         * config/sparc/sparc.c: Delete sparc_align_loops,
22927         sparc_align_jumps, sparc_align_funcs and the corresponding string
22928         variables.
22929         (sparc_override_options): Default align_functions on ultrasparc.
22930         Delete -malign-* handling.
22931
22932         * config/mips/mips.c (override_options):  On 64-bit targets,
22933         try to align code to 64-bit boundaries.
22934         (print_operand): New substitution, %~,
22935         which aligns labels to align_labels_log.
22936         * config/mips/mips.md (div_trap_normal): Use %~.
22937         (div_trap_mips16): Likewise.
22938         (abssi): Likewise.
22939         (absdi2): Likewise.
22940         (ffssi2): Likewise.
22941         (ffsdi2): Likewise.
22942         (ashldi3_internal): Likewise.
22943         (ashrdi3_internal): Likewise.
22944         (lshrdi3_internal): Likewise.
22945         (casesi_internal): Likewise.
22946
22947 Wed Sep  1 21:13:48 1999  Richard Henderson  <rth@cygnus.com>
22948
22949         Merge new ia32 backend from the branch!
22950
22951         * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes.
22952         See ChangeLog.P2 on new_ia32_branch for details.
22953
22954         * rtl.h (stack_regs_mentioned_p): Delete prototype.
22955         * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl.
22956         * i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
22957         * i386/gas.h (ASM_FILE_START): Define.
22958         * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update
22959         for name change of ix86_valid_decl_attribute_p.
22960         (i386_pe_valid_type_attribute_p): Similarly.
22961
22962 Wed Sep  1 18:21:23 1999  Richard Henderson  <rth@cygnus.com>
22963
22964         * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE
22965         to step through CC modes.
22966
22967 Wed Sep  1 20:18:06 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
22968
22969         * regmove.c (fixup_match_1): Don't move INSN in front of P if
22970         it would end up in the shadow of a live flags regsiter.
22971
22972 Wed Sep  1 11:32:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
22973
22974         * reload1.c: Fix many indentation problems.
22975         * reload.c: Likewise.
22976
22977 Tue Aug 31 22:08:03 1999  Marc Espie <espie@cvs.openbsd.org>
22978
22979         * alias.c (non_local_reference_p): Constify fmt.
22980
22981 Tue Aug 31 23:19:35 1999  Michael Meissner  <meissner@cygnus.com>
22982
22983         * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define.
22984
22985 Tue Aug 31 16:44:52 1999  Jeffrey A Law  (law@cygnus.com)
22986
22987         * cse.c (delete_trivially_dead_insns): Do not delete stores to
22988         the internal_arg_pointer.
22989
22990 Tue Aug 31 13:35:42 1999  Richard Henderson  <rth@cygnus.com>
22991
22992         Merge peephole2 from new_ia32_branch:
22993         * Makefile.in (STAGESTUFF): Add *.peephole2.
22994         (mostlyclean): Likewise.
22995         (recog.o): Depend on resource.h.
22996
22997         * final.c (peephole): Conditionalize decl on HAVE_peephole.
22998         (final_scan_insn): Likewise for the invocation of peephole.
22999         * genconfig.c (main): Look for peephole and peephole2 patterns.
23000         Emit HAVE_peephole* accordingly.
23001         * genpeep.c (main): Conditionalize entire output on HAVE_peephole.
23002         * flags.h (flag_peephole2): Declare.
23003         * toplev.c: New pass peephole2.  New flag -fpeephole2.
23004
23005         * genattrtab.c (main): Count DEFINE_PEEPHOLE2.
23006         * gencodes.c (main): Likewise.
23007         * genextract.c (main): Likewise.
23008         * genoutput.c (main): Likewise.
23009         * genemit.c (max_operand_1): Look for the max scratch operand.
23010         (gen_rtx_scratch): New.
23011         (gen_exp): Use it, and pass on new arg subroutine_type.
23012         (gen_expand): Take max scratch into account.
23013         (gen_split): Emit peephole2 functions.
23014         (output_peephole2_scratch): New.
23015         (main): Include hard-reg-set.h and resource.h.  Handle peephole2.
23016         * genrecog.c (routine_type): Add PEEPHOLE2.
23017         (IS_SPLIT): New.
23018         (make_insn_sequence): Match outer parallel for peep2.  Discard
23019         top level scratches and dups.
23020         (add_to_sequence): New args insn_type and top.  Update all callers.
23021         Handle toplevel peep2 matching insns.
23022         (write_subroutine): Handle peep2.
23023         (write_tree_1): Likewise.
23024         (write_tree): Likewise.
23025         (main): Likewise.
23026         (change_state): New arg afterward.  Update all callers.
23027         Handle matching separate insns.
23028         * recog.c (recog_next_insn): New.
23029         (peephole2_optimize): New.
23030         * rtl.def (DEFINE_PEEPHOLE2): New.
23031         * resource.c (find_free_register): New argument last_insn.  Use it
23032         to find a register available through the entire span.
23033         * resource.h (find_free_register): Update prototype.
23034
23035 Tue Aug 31 11:51:06 1999  Jim Kingdon  <http://developer.redhat.com>
23036
23037         * i386.c (output_strlen_unroll): Don't write xops[7]
23038         label if it wasn't set.
23039
23040 1999-08-31 12:44 -0700  Zack Weinberg  <zack@bitmover.com>
23041
23042         * cpplib.c (struct directive): Const-ify name pointer and
23043         function pointer prototype.
23044         (validate_else, do_define, do_line, do_include, do_undef,
23045         do_error, do_pragma, do_ident, do_if, do_xifdef, do_else,
23046         do_elif, do_endif, do_sccs, do_assert, do_unassert,
23047         do_warning): Const-ify second arg.
23048         (directive_table): Mark const.  Reorder entries by frequency
23049         of usage, record statistics.
23050
23051 1999-08-31 12:20 -0700 Zack Weinberg <zack@bitmover.com>
23052
23053         * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and
23054         bounds- check RTL accesses if --enable-checking.
23055         (RTVEC_ELT): Bounds check if --enable-checking.
23056         (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE,
23057         XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate.
23058         (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and
23059         GET_NUM_ELEM.
23060         (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
23061         X0BBDEF, X0ADVFLAGS):  New macros for accessing '0' slots of RTXes.
23062
23063         (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS.
23064         (NOTE_SOURCE_FILE): Use X0STR.
23065         (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES,
23066         MEM_ALIAS_SET): Use X0INT.
23067         (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK,
23068         JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN):
23069         Use X0EXP.
23070         * real.h (CONST_DOUBLE_CHAIN): Use X0EXP.
23071         * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT.
23072         (rtl_check_failed_bounds, rtl_check_failed_type1,
23073         rtl_check_failed_type2, rtvec_check_failed_bounds): New
23074         functions.
23075         (fancy_abort): Fix comment.
23076
23077         * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT.
23078         (cse_insn): Decrement LABEL_NUSES for jump target before
23079         deleting jump insn.
23080         * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1.
23081         * final.c (alter_subreg): Compute regno before changing x to
23082         REG; set REGNO(x) after changing it.
23083         * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION
23084         notes containing CONST_INTs.
23085         (delete_eh_regions): Use NOTE_EH_HANDLER.
23086         * function.c (put_reg_into_stack): Make reg a MEM before
23087         initializing it.
23088         (fixup_var_refs_insns):  Save REG_NOTES (insn) in case we
23089         delete insn.
23090         (gen_mem_addressof): Make reg a MEM before initializing it.
23091         * integrate.c (copy_rtx_and_substitute): Copy '0' slots with
23092         X0WINT.
23093         * local-alloc.c (update_equiv_regs): Zap REG_NOTES before
23094         deleting an insn, not after.
23095         (block_alloc): Only look at PATTERN(insn) if we have to, and
23096         only if it's format class 'i'.
23097         * loop.c (check_dbra_loop): Check bl->biv->add_val is a
23098         CONST_INT before using its INTVAL.
23099         * print-rtl.c (print_rtx): Use X0STR.
23100         * regmove.c (fixup_match_1): Don't look at PATTERN of
23101         non-class-'i' insn chain elements.
23102         * reload.c (loc_mentioned_in_p): Take address of
23103         in->fld[1].rtx directly.
23104         * reload1.c (reload): Change reg to a MEM before initializing
23105         it.
23106         * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which
23107         have no names.
23108         * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo.
23109
23110 Fri Aug 20 13:43:41 1999  Andrew Haley  <aph@cygnus.com>
23111
23112         * config/mips/mips.c (machine_dependent_reorg): Force a
23113         barrier to output the local constant pool if a barrier hasn't
23114         been found at a natural point in the instruction stream.
23115
23116 Mon Aug 30 22:04:36 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23117
23118         * c-parse.in (language_string): Constify.
23119
23120         * dwarf2out.c (language_string): Remove declaration.
23121
23122         * dwarfout.c (language_string): Likewise.
23123
23124         * toplev.c (language_string, init_parse, finish_parse): Likewise.
23125
23126         * tree.h (language_string, init_parse, finish_parse): Declare.
23127
23128         * i386/sun386.h (language_string): Remove declaration.
23129
23130         * mips.h (language_string): Likewise.
23131
23132         * nextstep.h (language_string): Likewise.
23133
23134         * nextstep21.h (language_string): Likewise.
23135
23136         * rs6000.c (language_string): Likewise.
23137
23138 Mon Aug 30 20:56:08 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23139
23140         * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o.
23141         (getpwd.o): Remove target.
23142
23143         * getpwd.c: Delete file.  Its in libiberty now.
23144
23145         * dbxout.c (getpwd): Don't prototype.
23146         * dwarf2out.c (getpwd): Likewise
23147         * dwarfout.c (getpwd): Likewise
23148         * final.c (getpwd): Likewise.
23149         * protoize.c (getpwd): Likewise.
23150
23151 Mon Aug 30 20:21:34 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23152
23153         * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift.
23154
23155 Mon Aug 30 16:07:49 1999  Richard Henderson  <rth@cygnus.com>
23156
23157         * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
23158         mark_set_resources.
23159
23160 Mon Aug 30 12:23:53 1999  Jim Wilson  <wilson@cygnus.com>
23161
23162         * fixinc/Makefile.in (subdir): New.
23163         (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP).
23164         (Makefile): New.
23165
23166 Mon Aug 30 01:02:09 1999  Jeffrey A Law  (law@cygnus.com)
23167
23168         * emit-rtl.c (copy_rtx_if_shared): A MEM which references
23169         virtual_stack_vars_rtx or virtual_incoming_args_rtx can not
23170         be shared.
23171
23172         * invoke.texi: Fix typo.
23173
23174         * dwarf2out.c (mem_loc_descriptor): New argument MODE.  All callers
23175         changed.  Handle autoincrement addressing modes.
23176
23177         * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer
23178         just like we would the virtual incoming args register when
23179         integrating.
23180
23181 Sun Aug 29 23:17:54 1999  David Edelsohn  <edelsohn@gnu.org>
23182
23183         * rs6000.h (ASM_FILE_START): Specify complete filename, including
23184         path, in .file directive.
23185
23186 Sun Aug 29 05:06:43 1999  Russ Allbery  <rra@stanford.edu>
23187
23188         * gcc.texi (External Bugs): Remove obsolete note about Perl on
23189         SunOS.
23190
23191 1999-08-29 08:38 -0700  Zack Weinberg  <zack@bitmover.com>
23192
23193         * stdbool.h: Make the typedef name _Bool, with bool a #defined
23194         alias.
23195
23196 Sun Aug 29 09:36:50 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23197
23198         * tree.c (tree_code_name): Constify a char*.
23199
23200         * tree.h (tree_code_name, decl_printable_name): Likewise.
23201
23202         * function.h (struct function): Likewise.
23203
23204         * toplev.c (decl_name, decl_printable_name): Likewise.
23205
23206         * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise.
23207
23208         * objc/objc-act.c (decl_printable_name): Remove redundant prototype.
23209         (init_objc): Remove function pointer cast.
23210
23211 Sun Aug 29 05:01:17 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
23212
23213         * pa.md (interspace_jump): New pattern.
23214         (builtin_longjmp): New expander.
23215
23216 1999-08-29  Bernd Schmidt  <bernds@cygnus.co.uk>
23217
23218         * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2,
23219         _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate,
23220         sf_to_df, df_to_sf): Fix potential problem with alias analysis.
23221
23222 Sun Aug 29 04:30:52 1999  John Wehle  (john@feith.com)
23223
23224         * jump.c (delete_prior_computation): Also check calls
23225         to constant functions.  Don't bother checking for a
23226         REG_UNUSED note before adding it.
23227         (delete_computation): Handle multi-word hard registers
23228         when synthesizing missing REG_DEAD notes for a register
23229         which is both set and used by an insn.
23230
23231 1999-08-29  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
23232
23233         * loop.c (this_loop_info): New variable.
23234         (loop_has_call, loop_has_volatile, loop_has_tablejump,
23235         loop_continue, loops_enclosed): Replace with fields in this_loop_info.
23236         All uses updated.
23237         (prescan_loop, strength_reduce): New argument loop_info.  All callers
23238         updated.
23239         (scan_loop): New variable loop_info, initialise to address of
23240         this_loop_info.
23241         (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP.
23242         Delete variable loop_has_multiple_exit targets and replace with
23243         field in this_loop_info.
23244         (find_and_verify_loops): Rename this_loop to this_loop_num.
23245         (strength_reduce): Delete loop_iteration_info.  Replace variable
23246         loop_info with function argument of same name.
23247         (insert_bct): Rework test for loop being completely unrolled.
23248
23249         * loop.h (struct loop_info): New fields num, loops_enclosed,
23250         has_call, has_volatile, has_tablejump, has_multiple_exit_targets,
23251         has_indirect_jump, and cont.  Redefine use of unroll_number.
23252         (loop_unroll_number): Delete.
23253
23254         * unroll.c (unroll_loop): Store loop unroll count in unroll_number
23255         field of loop_info.
23256         (loop_iterations): Delete variable vtop and instead use
23257         loop_info->vtop computed in prescan_loop.
23258
23259 Sun Aug 29 03:27:23 1999  Scott Weikart <scott@igc.apc.org>
23260
23261         * fix-header.c (main): Do not pass a null pointer to strcmp.
23262
23263 Sun Aug 29 03:18:48 1999  William Bader  (william@nscs.fast.net)
23264
23265         * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate
23266         filenames.
23267         * configure: Rebuilt.
23268
23269 Sat Aug 28 19:36:05 1999  Jeffrey A Law  (law@cygnus.com)
23270
23271         * jump.c (jump_optimize_1): Do not delete assignments to
23272         internal_arg_pointer.
23273         * cse.c (delete_trivially_dead_insns): Always consider a set of
23274         the internal_arg_pointer live.
23275
23276 Sat Aug 28 16:24:31 1999  Richard Henderson  <rth@cygnus.com>
23277
23278         * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain.
23279         (update_life_info) [REG_WAS_0]: Search the original insns rather
23280         than the new insns for the note.  Fix typos finding note_dest.
23281         If no dest found, discard the note rather than abort.
23282         [REG_NOALIAS]: Handle as REG_NO_CONFLICT.
23283         (replace_insns): Remove the old insn list after update_life_info
23284         not before.
23285
23286 Sat Aug 28 16:20:12 1999  Richard Henderson  <rth@cygnus.com>
23287
23288         * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling
23289         sched_analyze_insn.
23290         (sched_analyze_1): Let add_dependence care for not adding dups.
23291         (sched_analyze_2): Likewise.
23292         (add_branch_dependences): Likewise.
23293
23294 Sat Aug 28 15:58:16 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23295
23296         * i386/winnt.c (export_list): New type.
23297         (exports_head): Rename to
23298         (export_head):  this.
23299         (i386_pe_record_exported_symbol): Add is_data flag.
23300         (i386_pe_asm_file_end): Emit directive for exported variables.
23301         * i386/cygwin.h (i386_pe_record_exported_symbol): Update
23302         prototype.
23303         * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type.
23304         (ASM_DECLARE_OBJECT_NAME): Likewise.
23305         (ASM_DECLARE_FUNCTION_NAME): Likewise.
23306         * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
23307
23308 Fri Aug 27 15:35:24 1999  Jeffrey A Law  (law@cygnus.com)
23309
23310         * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers.
23311
23312         * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an
23313         operand.
23314
23315 Fri Aug 27 14:01:19 1999  Marc Espie <espie@cvs.openbsd.org>
23316
23317         * config/openbsd.h: Define SET_ASM_OP.
23318         * tm.texi: cross-reference SET_ASM_OP in the index.
23319
23320 1999-08-27 13:27 -0700  Zack Weinberg  <zack@bitmover.com>
23321
23322         * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format
23323         for a CONST_DOUBLE, at compile time.  Initialize rtx_length
23324         and class_narrowest_mode at compile time.  Kill init_rtl.
23325         Mark rtx_length, mode_class, mode_size, mode_unit_size,
23326         mode_wider_mode, mode_mask_array, class_narrowest_mode, and
23327         rtx_format as const.  Kill all references to EXTRA_CC_MODES or
23328         EXTRA_CC_NAMES.
23329         * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for
23330         format.
23331         * rtl.h: Declare rtx_length and rtx_format as const.
23332         * machmode.def: Define CC().  Use CC() to define CCmode.  If
23333         EXTRA_CC_MODES is defined, expand it here.
23334         * machmode.h: Declare mode_class, mode_size, mode_unit_size,
23335         mode_wider_mode, mode_mask_array, and class_narrowest_mode as
23336         const.  Kill all references to EXTRA_CC_MODES.
23337
23338         * toplev.c: Don't prototype or call init_rtl.
23339         * optabs.c: Don't call init_mov_optab.
23340         * genemit.c: Don't generate init_mov_optab.  Don't call
23341         init_rtl.
23342         * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT
23343         here.
23344         * genattr.c, genattrtab.c, gencodes.c, genconfig.c,
23345         genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c,
23346         genrecog.c: Don't call init_rtl.
23347
23348         * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h,
23349         rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES.  Use CC() in
23350         definition of EXTRA_CC_MODES.
23351
23352         * md.texi: Kill ref to EXTRA_CC_NAMES.
23353         * tm.texi: Document new way to define EXTRA_CC_MODES.
23354
23355         * genrecog.c: Do not look up the name of a define_split.
23356         (Unrelated bugfix.)
23357
23358 Fri Aug 27 17:03:42 1999  Nick Clifton  <nickc@cygnus.com>
23359
23360         * config/v850/v850.md: Fix typo introduced by previous delta.
23361
23362 Fri Aug 27 09:48:59 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23363
23364         * gcc.c (fatal): Make definition static to match prototype.
23365
23366 Fri Aug 27 10:33:35 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23367
23368         * combine.c (get_last_value): Don't look for earlier sets if the last
23369         known set is somewhere in between the insns being combined.
23370
23371 Fri Aug 27 10:03:12 BST 1999  Nathan Sidwell  <nathan@acm.org>
23372
23373         * configure.in: Don't use shell ! to negate exit codes
23374         * configure: Regenerate
23375
23376 Fri Aug 27 09:36:17 1999  Andreas Schwab  <schwab@suse.de>
23377
23378         * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for
23379         the fact that ALIGN is measured in bits, not bytes.
23380
23381 1999-08-27 00:27 -0700  Zack Weinberg  <zack@bitmover.com>
23382
23383         * errors.c: New file; defines functions error, warning, and
23384         fatal, variables have_error and progname.
23385         * errors.h: New file; prototypes and decls for stuff in errors.c.
23386
23387         * Makefile: Add rules to build errors.o and
23388         $(HOST_PREFIX)errors.o.  Link genconfig, gencodes, genemit,
23389         genopinit, genrecog, genextract, genpeep, genattr, and
23390         genoutput with errors.o.  Add errors.h to deps of genconfig.o,
23391         gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o,
23392         genpeep.o, genattr.o, and genoutput.o.
23393
23394         * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c,
23395         genextract.c, genpeep.c, genattr.c:  Include errors.h.  Don't
23396         define or prototype fatal.  Set progname at beginning of main.
23397         * genoutput.c:  Likewise, and don't define or prototype error
23398         either.
23399
23400         * c-typeck.c (c_expand_start_case): Return immediately if exp
23401         is an ERROR_MARK.
23402         * fold-const.c (operand_equal_p): Return immediately if arg1
23403         or arg0 are ERROR_MARKs.
23404         * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore
23405         fields of type ERROR_MARK when calculating if the record can
23406         go in a register.
23407
23408 Fri Aug 27 01:03:48 1999  Jim Kingdon  <http://developer.redhat.com>
23409         with much help from Jeffrey A Law and Richard Henderson
23410
23411         * i386.md: In the 6 insns which call output_fix_trunc,
23412         earlyclobber operands[0].
23413
23414 Fri Aug 27 01:01:51 1999  Philip Blundell  <pb@nexus.co.uk>
23415
23416         * jump.c (duplicate_loop_exit_test): Call reg_scan_update after
23417         creating new registers.
23418
23419 1999-08-26 23:09 -0700  Zack Weinberg  <zack@bitmover.com>
23420
23421         * i386.h: Declare ix86_cpu_string, ix86_arch_string,
23422         i386_reg_alloc_order, i386_regparm_string,
23423         i386_align_loops_string, i386_align_jumps_string,
23424         i386_align_funcs_string, i386_preferred_stack_boundary_string,
23425         and i386_branch_cost_string as type "const char *".
23426         * i386.c: Define all above strings as type "const char *".
23427
23428 Thu Aug 26 20:36:30 1999  Jim Wilson  <wilson@cygnus.com>
23429
23430         * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE
23431         when emitting alignment padding.  Emit padding byte of 0 instead of 4.
23432
23433 Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
23434
23435         * tree.c (array_type_nelts): Don't create RTL_EXPRs from
23436         SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
23437
23438 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
23439
23440         * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
23441         (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support.
23442         (dwarf2out_line, dwarf2out_finish): Likewise.
23443         * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documetation.
23444
23445 Thu Aug 26 16:10:56 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23446
23447         * tree.c (lang_unsave_expr_now) : Correct return type.
23448         * tree.h (lang_unsave_expr_now) : Same.
23449
23450 Thu Aug 26 13:12:29 1999  Jeffrey A Law  (law@cygnus.com)
23451
23452         * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros
23453         instead of duplicating code.
23454
23455 Thu Aug 26 18:32:32 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23456
23457         * gcse.c (hash_scan_insn): Don't scan obvious no-ops.
23458
23459 1999-08-26 09:42 -0700  Zack Weinberg  <zack@bitmover.com>
23460
23461         * tree.h: fancy_abort always takes three args.
23462         * resource.c: Move include of system.h before toplev.h.
23463
23464 Thu Aug 26 09:46:16 1999  Nick Clifton  <nickc@cygnus.com>
23465
23466         * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well
23467         as SYMBOL_REFs.
23468
23469 1999-08-25 22:10 -0700  Zack Weinberg  <zack@bitmover.com>
23470
23471         * system.h: Don't redefine abort or trim_filename.
23472         * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0)
23473         or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on
23474         whether or not __FUNCTION__ is available.
23475         * tree.h: Duplicate rtl.h's definition of abort, for files
23476         that don't include rtl.h.  Delete all code to perform type
23477         checking with a compiler other than GCC.
23478         * varray.h: Delete all code to perform type checking with a
23479         compiler other than GCC.  Make VARRAY_CHECK() always evaluate
23480         its arguments exactly once, using a statement expression.
23481         Adjust the VARRAY_<type> accessor macros to match.
23482         * toplev.h (fatal_insn, fatal_insn_not_found): Kill.
23483         (_fatal_insn, _fatal_insn_not_found): New fns, take info on
23484         caller's location.  Define fatal_insn and fatal_insn_not_found
23485         as macros that use _fatal_insn and _fatal_insn_not_found.
23486         (fancy_abort, trim_filename): Kill prototypes.
23487
23488         * rtl.c (trim_filename): Move here from toplev.c.
23489         (fancy_abort): New function.
23490         (DIR_SEPARATOR): Provide default definition.
23491         * tree.c (tree_check_failed, tree_class_check_failed): Go
23492         through fancy_abort.
23493         (tree_check, tree_class_check, cst_or_constructor_check,
23494         expr_check): Delete.
23495         * varray.c (varray_check_failed): New function.
23496         * toplev.c (fatal_insn, fatal_insn_not_found): Replace with
23497         _fatal_insn and _fatal_insn_not_found.  Go through
23498         fancy_abort.
23499         (trim_filename, fancy_abort): Delete.
23500
23501         * builtins.c (expand_builtin_args_info): Report ICE with abort.
23502         * except.c (start_catch_handler): Report ICE with error/abort
23503         combo.
23504         * final.c (output_operand_lossage): Likewise.
23505         * flow.c (verify_flow_info): Likewise.
23506
23507         * gcc.c: Prototype fatal.
23508         * gengenrtl.c: Undef abort after including rtl.h not system.h.
23509         * genattr.c, genattrtab.c, genemit.c, genextract.c,
23510         genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c:
23511         Don't define fancy_abort.
23512
23513 Wed Aug 25 17:56:59 1999  Richard Henderson  <rth@cygnus.com>
23514
23515         * optabs.c (emit_cmp_and_jump_insns): Be more thorough in
23516         canonization.
23517
23518 Wed Aug 25 15:35:55 1999  Richard Henderson  <rth@cygnus.com>
23519
23520         * m88k.h (VERSION_INFO2): Kill.
23521         (VERSION_STRING): Kill.
23522         (TM_RCS_ID): Kill.
23523         (VERSION_INFO1): Tidy.
23524         (TARGET_VERSION): Update.
23525         * m88k/dgux.h (VERSION_INFO2): Kill.
23526         (ASM_FIRST_LINE): Adjust for death of VERSION_STRING.
23527         * m88k/luna.h (VERSION_INFO1): Tidy.
23528         * m88k/sysv4.h (VERSION_INFO1): Likewise.
23529         * m88k.c (out_rcs_id, tm_rcs_id): Kill.
23530         (output_file_start): Adjust for death of VERSION_STRING.
23531
23532 1999-08-25 13:51 -0700  Jim Meyering  <meyering@ascend.com>
23533
23534         * cpplib.c (detect_if_not_defined): New function.
23535         (do_if): Use it to detect potential once-only headers.
23536
23537 Wed Aug 25 14:00:18 1999  Jason Merrill  <jason@yorick.cygnus.com>
23538
23539         * c-common.c (combine_strings): Always set TREE_CONSTANT.
23540
23541 Wed Aug 25 15:27:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
23542
23543         * combine.c (nonzero_bits) : Allow single-ly set registers to be
23544         anywere in the function only if they are pseudos and set before
23545         being used (not live at the start of the function).
23546         (num_sign_bit_copies) : Same.
23547         (get_last_value_validate) : Same.
23548         (get_last_value) : Same.
23549
23550 Wed Aug 25 11:13:29 1999  Richard Henderson  <rth@cygnus.com>
23551
23552         * loop.c (express_from): Try harder to unify (* c N) and (* c M)
23553         where N and M are constant and N is an integer multiple of M.
23554
23555 Wed Aug 25 13:55:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
23556
23557         * sbitmap.h (sbitmap_intersection_of_succs): Add prototype.
23558         (sbitmap_intersection_of_preds, sbitmap_union_of_succs,
23559         sbitmap_union_of_preds): Add prototypes.
23560         * sbitmap.c (sbitmap_intersection_of_succs): New function to compute
23561         the intersection of successors with the new flow graph structures.
23562         (sbitmap_intersection_of_preds): New function to compute the
23563         intersection of predecessors with the new flow graph structures.
23564         (sbitmap_union_of_succs): New function to compute the union of
23565         successors with the new flow graph structures.
23566         (sbitmap_union_of_preds): New function to compute the union of
23567         predecessors with the new flow graph structures.
23568         * gcse.c (compute_rdm, compute_available): Use new sbitmap routines.
23569         (expr_reaches_here_p): Use edge and basic_block structures instead
23570         of s_preds and s_succs.
23571         (compute_cprop_avinout): Use new sbitmap routines.
23572         (pre_expr_reaches_here_p): Use edge and basic_block structures instead
23573         of s_preds and s_succs.
23574         * flow.c (compute_flow_dominators): Compute dominators using
23575         edges and basic blocks instead of s_preds and s_succs.
23576
23577 Wed Aug 25 13:41:47 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
23578
23579         * lists.c (unused_insn_list, unused_expr_list): New file for
23580         maintaining various types of lists. New statics for maintaining a
23581         cache of available INSN_LIST and EXPR_LIST nodes.
23582         (free_list): Static function for freeing a list of INSN/EXPR nodes.
23583         (alloc_INSN_LIST): Function to get a free INSN_LIST node.
23584         (alloc_EXPR_LIST): Function to get a free EXPR_LIST node.
23585         (init_EXPR_INSN_LIST_cache): Initialize the cache lists.
23586         (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes.
23587         (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes.
23588         (free_EXPR_LIST_node): Free an individual EXPR_LIST node.
23589         (free_INSN_LIST_node): Free an individual INSN_LIST node.
23590         * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c
23591         (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c
23592         (remove_dependence, free_pending_lists): Use new global routines.
23593         (flush_pending_lists, sched_analyze_insn): Use new global routines.
23594         (sched_analyze, compute_block_backward_dependences): Use new routines.
23595         (sched_analyze_1, sched_analyze_2): Use new routines.
23596         (schedule_insns): Use new global routines.
23597         * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function
23598         prototypes.
23599         (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes.
23600         (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function
23601         prototypes.
23602         * toplev.c (rest_of_compilation): Initialize node cache.
23603         * Makefile.in (OBJS): Add lists.o to list of object files.
23604         (lists.o): Add dependancies.
23605
23606 Wed Aug 25 17:31:56 1999  Nick Clifton  <nickc@cygnus.com>
23607
23608         * config/v850/v850.md: Fix compile time warning messages.
23609         * config/v850/v850.c: Fix compile time warning messages.
23610         * config/v850/v850.h: Fix compile time warning messages.
23611
23612 Wed Aug 25 09:44:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23613
23614         * genattr.c (gen_attr): Add prototype arguments for get_attr_*().
23615         Remove unused prototype for `init_lengths'.
23616
23617 Wed Aug 25 09:32:31 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23618
23619         * calls.c (emit_call_1): Mark parameter `stack_size' with
23620         ATTRIBUTE_UNUSED.
23621         (expand_call): Initialize variable `insn'.
23622         (emit_library_call): Likewise for variable `high_to_save'.
23623         (emit_library_call_value): Likewise.
23624         (store_one_arg): Likewise for variables `lower_bound' and
23625         `upper_bound'.
23626
23627         * combine.c (try_combine): Likewise for variables `i2_code_number'
23628         and `other_code_number'.
23629         (find_split_point): Likewise for variables `pos', `unsignedp' and
23630         `inner'.
23631         (simplify_if_then_else): Likewise for variables `op' and `c1'.
23632         (simplify_and_const_int): Remove unused variable `width'.
23633         (merge_outer_ops): Likewise.
23634
23635         * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned
23636         HOST_WIDE_INT' when comparing against one.
23637         (simplify_relational_operation): Likewise.
23638         (cse_insn): Initialize variables `src_eqv_volatile',
23639         `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'.
23640
23641         * final.c (init_final): Constify parameter `filename'.
23642         (final_start_function): Mark parameter `optimize' with
23643         ATTRIBUTE_UNUSED.
23644         (profile_function): Likewise for parameters `first' and `optimize'.
23645         (output_source_line): Likewise for parameter `file'.
23646
23647         * integrate.c (subst_constants): Cast a value to `size_t' when
23648         comparing against one.
23649         (mark_stores): Initialize variable `mode'.  Cast a value to
23650         `size_t' when comparing against one.
23651
23652         * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise.
23653
23654         * loop.c (move_movables): Initialize variable `first'.
23655         (strength_reduce): Likewise for variable `increment'.
23656         (check_dbra_loop): Likewise for variable `comparison_val'.  Cast a
23657         value to `size_t' when comparing against one.
23658         (load_mems): Initialize variable `end_label'.
23659
23660         * output.h (init_final): Constify parameter.
23661
23662         * reload.c (decompose): Initialize variable `base'.
23663
23664         * reload1.c (reload): Likewise for variable `is_scalar'.
23665         (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED.
23666         (choose_reload_regs): Initialize variable `mode'.
23667         (emit_reload_insns): Likewise for variable `store_insn'.
23668         (reload_cse_noop_set_p): Mark parameter `insn' with
23669         ATTRIBUTE_UNUSED.
23670         (reload_combine): Initialize variable `set'.
23671
23672         * unroll.c (unroll_loop): Likewise for variable `local_label'.
23673         (copy_loop_body): Cast a value to `size_t' when comparing against
23674         one.
23675
23676         * varasm.c (assemble_variable): Initialize variable `size_tree'.
23677         (const_hash): Add an `else abort()' in an if-else-if-else sequence.
23678         (remove_from_pending_weak_list): Mark parameter `name' with
23679         ATTRIBUTE_UNUSED.
23680
23681 Wed Aug 25 11:18:39 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23682
23683         * toplev.c (rest_of_compilation): Use decl_printable_name when opening
23684         gcse dump file.
23685
23686 Wed Aug 25 10:57:12 1999  Nick Clifton  <nickc@cygnus.com>
23687
23688         * config/arm/telf.h (ASM_WEAKEN_LABEL): Define.
23689         (ASM_DECLARE_FUNCTION_NAME): Define.
23690         (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT,
23691         ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME,
23692         ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if
23693         not already defined.
23694
23695 Wed Aug 25 01:36:11 1999  John David Anglin  <dave@hiauly1.hia.nrc.ca>
23696
23697         * calls.c (emit_call_1): Use call_pop/call_value_pop for all values
23698         of n_popped when call/call_value are not defined.
23699
23700 Wed Aug 25 01:25:14 1999  Jeffrey A Law  (law@cygnus.com)
23701
23702         * tm.texi: GNU CC -> GCC conversion.
23703         (CC1_SPEC): Indicate it is used for all language front ends.
23704
23705 Tue Aug 24 23:43:03 1999  Mark Mitchell  <mark@codesourcery.com>
23706
23707         * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and
23708         NOTE_INSN_EH_REGION_END correctly.
23709
23710 Tue Aug 24 23:26:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
23711                           Jeff Law <law@cygnus.com>
23712
23713         * loop.c (strength_reduce): Automatically unroll loops if the
23714         unrolled loop size is smaller than the rolled loop size.
23715
23716         * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab
23717         and delete comment that code should be rewritten.
23718
23719 Tue Aug 24 22:56:35 1999  Jeffrey A Law  (law@cygnus.com)
23720
23721         * haifa-sched.c (find_rgns): Mark a block found during the DFS search
23722         as reachable.
23723
23724         * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error.
23725
23726 Tue Aug 24 22:41:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
23727
23728         * fixinc/mkfixinc.sh: Don't fix uwin headers.
23729         * i386/uwin.h (MD_STARTFILE_PREFIX): Define.
23730         (LINK_SPEC): Add -u _main when building executables.
23731         (ASM_DECLARE_FUNCTION): Update from Cygwin.
23732         (ASM_FILE_END): Use the default for ix86-pe.
23733         * i386/xm-uwin.h (HAVE_BCOPY): Undefine.
23734
23735 Tue Aug 24 20:49:47 1999  Art Haas  <ahaas@neosoft.com>
23736
23737         * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN
23738         and ASM_CLOSE_PAREN are empty strings.
23739
23740 Wed Aug 25 12:46:22 1999  Fred Fish  <fnf@cygnus.com>
23741                           Geoffrey Keating <geoffk@cygnus.com>
23742
23743         * Makefile.in (PREPROCESSOR_DEFINES): New macro.
23744         (protoize.o):  Use PREPROCESSOR_DEFINES and DRIVER_DEFINES.
23745         (unprotoize.o): Ditto.
23746         (test-protoize-simple): Don't define STD_PROTO_DIR.
23747         * protoize.c: Use PARAMS rather than PROTO.  Minor whitespace
23748         changes to make 'test-protoize-simple' pass.
23749         (STD_PROTO_DIR): Remove define.
23750         (STANDARD_EXEC_PREFIX): Supply default define.
23751         (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX.
23752         (target_machine): New variable, init to DEFAULT_TARGET_MACHINE.
23753         (target_version): New variable, init to DEFAULT_TARGET_VERSION.
23754         (GET_ENV_PATH_LIST): New macro.
23755         (default_syscalls_dir): No longer initialized to STD_PROTO_DIR.
23756         (do_processing): Initialize default_syscalls_dir using new
23757         macros.  Use it to initialize syscalls_absolute_filename.
23758
23759 Tue Aug 24 16:58:15 1999  Richard Henderson  <rth@cygnus.com>
23760
23761         * jump.c (jump_optimize_1): Do cmov opt on any single-set; force
23762         B into a register before emit_conditional_move.
23763
23764 Tue Aug 24 15:37:03 1999  Richard Henderson  <rth@cygnus.com>
23765
23766         * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e))
23767         as (+ (+ (* a b) (* d e)) c).  Factor a common power-of-two
23768         multiplicand out of (+ (* a b) (* c d)).
23769
23770 Tue Aug 24 11:46:10 1999  Bob Manson <manson@cygnus.com>
23771                           Richard Henderson  <rth@cygnus.com>
23772
23773         * haifa-sched.c (split_hard_reg_notes): Move to flow.c
23774         (new_insn_dead_notes): Likewise.
23775         (update_n_sets): Likewise.
23776         (update_flow_info): Move to flow.c, renamed to update_life_info;
23777         extend to handle multiple source insns.
23778         * flow.c: Include resource.h
23779         (unlink_insn_chain): New.
23780         (split_hard_reg_notes): New.
23781         (maybe_add_dead_note): New.
23782         (maybe_add_dead_note_use): New.
23783         (find_insn_with_note): New.
23784         (new_insn_dead_notes): New.
23785         (update_n_sets): New.
23786         (sets_reg_or_subreg_1, sets_reg_or_subreg): New.
23787         (maybe_remove_dead_notes): New.
23788         (update_life_info): New.
23789         (prepend_reg_notes): New.
23790         (replace_insns): New.
23791         * output.h (update_life_info): Declare.
23792         * recog.c (split_block_insns): Use update_life_info.
23793         * resource.c (find_free_register): Use reg_alloc_order, don't use
23794         fixed regs, make sure the mode is supported, don't use new regs.
23795         (reg_dead_p): New.
23796         * rtl.h (replace_insns): Declare.
23797
23798 Tue Aug 24 13:48:39 1999  Nathan Sidwell  <nathan@acm.org>
23799
23800         * expr.c (expand_expr): Cope with COND_EXPRs with one
23801         non-returning branch.
23802
23803 Mon Aug 23 22:28:16 1999  Mark Mitchell  <mark@codesourcery.com>
23804
23805         * expr.c (store_expr): Always pass down the target, even when not
23806         doing CSE.
23807
23808 1999-08-24  Nick Clifton  <nickc@cygnus.com>
23809
23810         * configure.in: Define target_cpu_default for v850 targets.
23811         * configure: Regenerate
23812
23813         * config/v850/v850.h (TARGET_CPU_generic): Define.
23814         (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant
23815         addresses are 4 byte aligned.
23816
23817         * config/v850/v850.c (print_operand): Cope with 'R' format DFmode
23818         addresses.
23819
23820 Tue Aug 24 09:32:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23821
23822         * genattr.c (function_unit_desc): Constify a char*.  Add prototype.
23823         (main): Add prototypes.
23824
23825         * genattrtab.c (substitute_address, write_const_num_delay_slots,
23826         attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype.
23827         (write_attr_get): Emit prototypes along with function definition.
23828         (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED.
23829         (write_complex_function): Emit static prototype along with
23830         function definition.
23831
23832         * genemit.c (gen_split): Emit prototypes along with function
23833         definition.
23834
23835         * genoutput.c (output_epilogue): Add prototype to `insn_outfun'.
23836         Likewise for predicates and `insn_operand_predicate'.
23837         (process_template): Emit static prototype along with function
23838         definition.
23839
23840         * genrecog.c (make_insn_sequence): Constify a char*.  Add
23841         prototypes for get_split_*().
23842         (write_subroutine): Emit prototypes along with function
23843         definition.
23844
23845 Tue Aug 24 12:35:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23846
23847         * gcse.c (find_avail_set): Follow chains of register-register copies.
23848         Use oprs_not_set_p to guarantee that the returned value can be
23849         substituted.
23850         (cprop_insn): Don't verify the return value of find_avail_set with
23851         oprs_not_set_p.
23852
23853         * gcse.c (cprop_jump): New function, broken out of cprop_insn.
23854         (cprop_cc0_jump): New function.
23855         (cprop_insn): Break out new function cprop_jump and use it.
23856         Also use cprop_cc0_jump for machines with CC0.
23857         (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
23858
23859         * tree.h (current_function_calls_setjmp,
23860         current_function_calls_longjmp): Delete declarations.
23861         * dsp16xx.c: Include "function.h".
23862         * elxsi.c: Likewise.
23863         * gmicro.c: Likewise.
23864         * h8300.c: Likewise.
23865         * i370.c: Likewise.
23866         * m32r.c: Likewise.
23867         * mn10200.c: Likewise.
23868         * mn10300.c: Likewise.
23869         * ns32k.c: Likewise.
23870         * spur.c: Likewise.
23871         * v850.c: Likewise.
23872
23873         * rtl.h (rtx_equal_function_value_matters): Declare.
23874         * toplev.c (rtx_equal_function_value_matters): Don't declare.
23875         * cse.c: Likewise.
23876         * function.c: Likewise.
23877         * emit-rtl.c: Likewise.
23878
23879 Tue Aug 24 02:47:44 1999  Jeffrey A Law  (law@cygnus.com)
23880
23881         * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION
23882         call.
23883
23884 1999-08-24 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
23885
23886         * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn
23887         exactly.
23888
23889 Mon Aug 23 23:35:52 1999  Matthias Klose  <doko@cs.tu-berlin.de>
23890
23891         * cpp.texi: Add a node documenting macro varargs (copied
23892         from extend.texi).
23893
23894 1999-08-23 22:23 -0700  Zack Weinberg  <zack@bitmover.com>
23895
23896         * cppspec.c: Put a null pointer at the end of the new argv.
23897
23898 Mon Aug 23 21:23:24 1999  Jeffrey A Law  (law@cygnus.com)
23899
23900         * configure.in: Remove code to select/de-select the haifa
23901         scheduler.  Every scheduled port gets haifa now.
23902         * configure: Rebuilt.
23903         * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs.
23904         * sched.c Deleted.
23905         * Makefile.in: Corresponding changes.
23906
23907 Mon Aug 23 16:04:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
23908
23909         * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer.
23910         All callers changed.
23911         (prepare_float_lib_cmp): Likewise.
23912         Use FLOAT_LIB_COMPARE_RETURNS_BOOL.
23913         * expr.h (emit_float_lib_cmp): Delete declaration.
23914         * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document.
23915         * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define.
23916         * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons
23917         specially.
23918         (cmptf): Now conditional on TARGET_HARD_QUAD.
23919
23920 Fri Aug 20 17:52:27 1999  Jim Wilson  <wilson@cygnus.com>
23921
23922         * resource.c (mark_target_live_regs): Use
23923         PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
23924
23925 Fri Aug 20 19:07:55 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23926
23927         * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify.
23928
23929         * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise.
23930
23931         * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'.
23932
23933 Fri Aug 20 18:53:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
23934
23935         * rtl.h (rtx_format): Constify a char*.
23936
23937         * rtl.c (rtx_format): Likewise.
23938         (copy_rtx, copy_most_rtx, read_rtx): Likewise.
23939         (init_rtl): Use accessor macro, not `rtx_format'.
23940
23941         * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a
23942         char*.
23943
23944         * caller-save.c (mark_referenced_regs): Likewise.
23945
23946         * combine.c (subst, make_compound_operation, known_cond,
23947         gen_rtx_combine, update_table_tick, get_last_value_validate,
23948         use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise.
23949
23950         * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p,
23951         refers_to_p, canon_reg, fold_rtx, cse_process_notes,
23952         count_reg_usage): Likewise.
23953
23954         * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags):
23955         Likewise.
23956
23957         * final.c (leaf_renumber_regs_insn): Likewise.
23958
23959         * flow.c (mark_used_regs, find_use_as_address, dump_flow_info,
23960         dump_edge_info, count_reg_references): Likewise.
23961
23962         * function.c (fixup_var_refs_1, walk_fixup_memory_subreg,
23963         fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1):
23964         Likewise.
23965
23966         * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p,
23967         oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs,
23968         add_label_notes): Likewise.
23969
23970         * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask,
23971         clear_struct_flag, count_sub_rtxs, count_alternatives,
23972         compares_alternatives_p, contained_in_p, walk_attr_value,
23973         write_expr_attr_cache): Likewise.
23974
23975         * genconfig.c (walk_insn_part): Likewise.
23976
23977         * genemit.c (max_operand_1, gen_exp): Likewise.
23978
23979         * genextract.c (walk_rtx): Likewise.
23980
23981         * genflags.c (num_operands): Likewise.
23982
23983         * genoutput.c (scan_operands): Likewise.
23984
23985         * genpeep.c (match_rtx): Likewise.
23986
23987         * genrecog.c (add_to_sequence): Likewise.
23988
23989         * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths):
23990         Likewise.
23991
23992         * integrate.c (save_constants, copy_for_inline,
23993         copy_rtx_and_substitute, subst_constants, restore_constants):
23994         Likewise.
23995
23996         * jump.c  (mark_jump_label, invert_exp, redirect_exp,
23997         rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise.
23998
23999         * local-alloc.c (contains_replace_regs, memref_referenced_p):
24000         Likewise.
24001
24002         * loop.c (record_excess_regs, rtx_equal_for_loop_p,
24003         add_label_notes, replace_call_address, count_nonfixed_reads,
24004         invariant_p, find_single_use_in_loop, find_mem_givs,
24005         find_life_end, maybe_eliminate_biv_1, update_reg_last_use):
24006         Likewise.
24007
24008         * print-rtl.c (reg_names, print_rtx): Likewise.
24009
24010         * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise.
24011
24012         * reg-stack.c (stack_regs_mentioned_p, record_label_references,
24013         record_reg_life_pat, swap_rtx_condition, goto_block_pat,
24014         print_blocks): Likewise.
24015
24016         * regclass.c (fix_register, record_address_regs,
24017         reg_scan_mark_refs): Likewise.
24018
24019         * regmove.c (stable_but_for_p): Likewise.
24020
24021         * reload.c (loc_mentioned_in_p, operands_match_p,
24022         find_reloads_toplevsubst_reg_equivs, find_reloads_address_1,
24023         copy_replacements, refers_to_regno_for_reload_p,
24024         refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p,
24025         reload_when_needed_name, reg_class_names, debug_reload_to_stream):
24026         Likewise.
24027
24028         * reload1.c (eliminate_regs, scan_paradoxical_subregs,
24029         delete_address_reloads_1, count_occurrences,
24030         reload_cse_mem_conflict_p, reload_combine_note_use,
24031         add_auto_inc_notes): Likewise.
24032
24033         * resource.c (mark_referenced_resources, mark_set_resources):
24034         Likewise.
24035
24036         * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p,
24037         reg_mentioned_p, regs_set_between_p, modified_between_p,
24038         modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p,
24039         rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p,
24040         may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs,
24041         jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise.
24042
24043         * sched.c (sched_analyze_2, attach_deaths): Likewise.
24044
24045         * stupid.c (stupid_mark_refs): Likewise.
24046
24047         * unroll.c (remap_split_bivs): Likewise.
24048
24049         * varasm.c (mark_constants): Likewise.
24050
24051         * a29k/a29k.c (uses_local_reg_p): Likewise.
24052
24053         * alpha/alpha.c (summarize_insn): Likewise.
24054
24055         * arm/arm.c (symbol_mentioned_p, label_mentioned_p,
24056         eliminate_lr2ip): Likewise.
24057
24058         * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise.
24059
24060         * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx,
24061         reg_mentioned_in_mem): Likewise.
24062
24063         * ns32k/ns32k.c (global_symbolic_reference_mentioned_p,
24064         symbolic_reference_mentioned_p): Likewise.
24065
24066         * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise.
24067
24068         * sh/sh.c (regs_used, mark_use): Likewise.
24069
24070         * vax/vax.c (vax_rtx_cost): Likewise.
24071
24072 Fri Aug 20 18:38:43 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24073
24074         * machmode.h (mode_name): Constify a char*.
24075
24076         * rtl.c (mode_name): Likewise.
24077
24078         * genopinit.c (gen_insn): Use accessor macro, not `mode_name'.
24079
24080         * optabs.c (init_libfuncs): Constify a char*.
24081
24082         * print-tree.c (mode_name): Remove redundant declaration.
24083         (print_node): Use accessor macro, not `mode_name'.
24084
24085         * reload1.c (dump_needs): Constify a char*.  Use accessor macro,
24086         not `mode_name'.
24087         (new_spill_reg): Constify a char*.
24088
24089         * tree.c (mode_name): Remove redundant declaration.
24090
24091 Fri Aug 20 18:31:26 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24092
24093         * rtl.c (rtx_name): Constify a char*.
24094
24095         * rtl.h (rtx_name, fix_sched_param): Likewise.
24096
24097         * gmicro/gmicro.c (rtx_name): Remove redundant declaration.
24098         (mypr): Use accessor macro, not `rtx_name'.
24099
24100         * genemit.c (print_code): Constify a char*.
24101
24102         * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'.
24103
24104         * genpeep.c (print_code): Constify a char*.
24105
24106         * genrecog.c (print_code): Likewise.
24107
24108         * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct,
24109         end_bb): Add static prototype.
24110         (draw_edge): Constify a char*.
24111         (end_bb): Remove unused parameter.
24112
24113         * haifa-sched.c (fix_sched_param, safe_concat, print_exp
24114         print_block_visualization): Constify a char*.
24115
24116 Fri Aug 20 15:02:10 1999  Mark Mitchell  <mark@codesourcery.com>
24117
24118         * c-common.c (c_get_alias_set): Update comment.
24119
24120 1999-08-20  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
24121
24122         * linux.h (LIB_SPEC): Added.
24123
24124 Fri Aug 20 22:32:17 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
24125
24126         * config/c4x/c4x.h (STARTFILE_SPEC): Don't def.
24127
24128 1999-08-19 18:43 -0700  Zack Weinberg  <zack@bitmover.com>
24129
24130         * tree.c (expr_check): Fix typo in last change.
24131
24132 1999-08-19 14:44 -0700  Zack Weinberg  <zack@bitmover.com>
24133
24134         * rtl.def (NOTE): Change format to "iuu0n".
24135         (ADDR_DIFF_VEC): Change format to "eEee0".
24136         (ADDRESSOF): Change format to "eit".
24137
24138         * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion.
24139         (RTVEC_ELT): Change to match.
24140         (XVECEXP): Use XVEC and RTVEC_ELT.
24141         (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER,
24142         ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT.
24143         (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES,
24144         CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST,
24145         TRAP_CONDITION, TRAP_CODE): Use XEXP.
24146         (INTVAL): Use XWINT.
24147         (ADDRESSOF_DECL): Use XTREE.
24148         (SET_ADDRESSOF_DECL): Delete.
24149         (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL,
24150         NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill.  These have been
24151         ifdefed out since 2.6 at least.
24152         (gen_rtvec_vv): Delete prototype.
24153
24154         * rtl.h (rtvec_alloc): rt->elem is now an array of rtx,
24155         not rtunion.
24156         (copy_most_rtx): Handle 't' format letter.
24157         * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx.
24158         (gen_rtvec_vv): Delete function.  All callers changed to use
24159         gen_rtvec_v instead.
24160         * print-rtl.c (print_rtx): Move special casing of NOTEs to
24161         the '0' format letter.
24162
24163         * function.c (gen_mem_addressof): Don't use
24164         SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF
24165         instead.
24166         * integrate.c (copy_rtx_and_substitute): Likewise.
24167         Copy 't' slots with XTREE.
24168         (subst_constants): Treat 't' slots like '[swi]' slots.
24169         * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots.
24170         * jump.c (rtx_equal_for_thread_p): Likewise.
24171         * rtlanal.c (rtx_equal_p): Likewise.
24172         * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes
24173         only four arguments.
24174         * gengenrtl.c (type_from_format): Provide correct types for
24175         'b' and 't' slots.
24176
24177
24178         * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK):
24179         If a recent gcc is in use (always in stage2 and beyond), use
24180         statement expressions, so we don't make a function call unless
24181         the check fails.  Evaluate arguments exactly once.
24182         (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1,
24183         TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1):
24184         Delete.
24185         (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that
24186         they evaluate their arguments exactly once, irrespective of
24187         the compiler in use.
24188
24189         * tree.c [ENABLE_CHECKING]: Define whichever set of functions
24190         is used by the currently-enabled check macros.  This is:
24191         (tree_check_failed, tree_class_check_failed): For gcc.
24192         (tree_check, tree_class_check, cst_or_constructor_check,
24193         expr_check): For other compilers.
24194
24195         * gencheck.c: Do not define any *_CHECK1 macros.
24196
24197 Thu Aug 19 14:42:38 1999  Mike Stump <mrs@wrs.com>
24198                           Mark Mitchell <mark@codesourcery.com>
24199
24200         * c-common.c (c_get_alias_set): Fix support for poitners and
24201         references.
24202
24203 Thu Aug 19 11:51:22 EDT 1999  John Wehle  (john@feith.com)
24204
24205         * alias.c: Include tree.h.
24206         (nonlocal_reference_p, mark_constant_function): New functions.
24207         * flow.c (life_analysis): Call mark_constant_function.
24208         * rtl.h (mark_constant_function): Declare it.
24209
24210 Thu Aug 19 15:02:01 1999  Nick Clifton  <nickc@cygnus.com>
24211
24212         * config/rs6000/rs6000.c (rs6000_override_options): Fix test for
24213         unrecognisable switches.
24214
24215 Wed Aug 18 23:31:57 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24216
24217         * loop.c (recombine_givs): Set ix field after sorting.
24218         (recombine_givs): Remove bogus index / giv lockstep looping.
24219
24220 Wed Aug 18 18:20:40 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24221
24222         * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition
24223         on CODE.
24224         (emit_store_flag_force): Use do_compare_rtx_and_jump.
24225         (do_cmp_and_jump): Formatting fixes.
24226         * expr.c (do_compare_and_jump): Renamed from compare; changed to call
24227         do_compare_rtx_and_jump instead of compare_from_rtx.
24228         (do_compare_rtx_and_jump): New function; mostly copied from
24229         compare_from_rtx.
24230         (do_jump_for_compare): Delete.
24231         (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and
24232         MIN_EXPR.
24233         (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead
24234         of compare/do_jump_for_compare pairs.
24235         (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx.
24236         (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of
24237         compare_from_rtx/do_jump_for_compare pairs.
24238         (do_jump_by_parts_equality): Likewise.
24239         (do_jump_by_parts_equality_rtx): Likewise.
24240         * expr.h (do_compare_rtx_and_jump): Declare.
24241         * optabs.c (prepare_cmp_insn): New function, contains most of the code
24242         that used to be in emit_cmp_insn.
24243         (cmp_available_p): New function.
24244         (prepare_operand): New function.
24245         (emit_cmp_and_jump_insn_1): New function, contains some code that used
24246         to be in emit_cmp_insn.
24247         (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some
24248         parameters to be pointers; don't emit final compare but modify some of
24249         the values pointed to by the args so the caller can perform the
24250         correct comparison.
24251         (expand_binop): Call emit_store_flag_force with signed forms of
24252         comparison code.
24253         (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/
24254         emit_jump_insn pair.
24255         (emit_cmp_and_jump_insn): Use prepare_cmp_insn and
24256         emit_cmp_and_jump_insn_1.  Call emit_queue.
24257         (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL
24258         arg.
24259         * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a
24260         jump sets cc0 before deleting it.
24261         * integrate.c (expand_inline_function): Likewise.
24262         * unroll.c (unroll_loop): Similar changes in several places.
24263         (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0
24264         before deleting it.
24265
24266 Wed Aug 18 06:37:44 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24267
24268         * Makefile.in (insn-recog.o): Update dependencies.
24269         * genrecog.c (main): Make generated file include "function.h".
24270
24271 Sat Aug 14 00:54:57 1999  Geoffrey Keating  <geoffk@cygnus.com>
24272
24273         * cse.c (cse_insn): Call never_reached_warning when a jump is
24274         changed to be unconditional.
24275         * flags.h: Declare warn_notreached.
24276         * flow.c (delete_block): Call never_reached_warning when
24277         a block is deleted.
24278         * jump.c (delete_barrier_successors): Call never_reached_warning
24279         when we delete everything after a BARRIER.
24280         (never_reached_warning): New function.
24281         * rtl.h: Declare never_reached_warning.
24282         * toplev.c (warn_notreached): New variable.
24283         (lang_independent_options): Set warn_notreached
24284         when -Wunreachable-code.
24285         (compile_file): We need line numbers for -Wunreachable-code.
24286
24287 Tue Aug 17 22:06:11 1999  Jan Hubicka  <hubicka@freesoft.cz>
24288
24289         * haifa-sched.c (insn_unit): Fix typo on out of range test.
24290         * sched.c (insn_unit): Likewise.
24291
24292 Tue Aug 17 21:57:23 1999  Andreas Schwab  <schwab@suse.de>
24293
24294         * combine.c (distribute_notes): Handle REG_EH_RETHROW.
24295
24296 Tue Aug 17 17:39:43 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24297
24298         * flow.c (create_edge_list): Use xmalloc, not malloc.
24299
24300 Tue Aug 17 01:40:54 1999  Loren Rittle  <ljrittle@acm.org>
24301
24302         * fixinc/inclhack.def (no_double_slash): Do not trash single-line
24303         C-style comments.  Do not lose the character before double slash.
24304
24305 Mon Aug 16 18:08:22 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24306
24307         * basic-block.h (struct edge_list): Stucture to maintain a vector
24308         of edges.
24309         (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB,
24310          INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list.
24311         (create_edge_list, free_edge-List, print_edge_list, verify_edge_list):
24312         New function prototypes.
24313         * flow.c (create_edge_list): Function to create an edge list.
24314         (free_edge_list): Discards memory used by an edge list.
24315         (print_edge_list): Debug output showing an edge list.
24316         (verify_edge_list): Internal consistency check for an edge list.
24317         (find_edge_index): Function to find an edge index for a pred and succ.
24318
24319 Mon Aug 16 11:56:36 1999  Mark Mitchell  <mark@codesourcery.com>
24320
24321         * tree.c (type_hash_add): Use permalloc to allocate nodes in the
24322         hashtable.
24323
24324 Mon Aug 16 17:04:15 1999  Jorn Rennecke <amylaar@cygnus.co.uk>
24325
24326         * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define.
24327
24328 Fri Aug 13 15:20:43 1999  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
24329
24330         * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
24331
24332 Fri Aug 13 10:21:28 1999  Nick Clifton  <nickc@cygnus.com>
24333
24334         * toplev.c (rest_of_compilation): Allow machine dependent
24335         reorganisation pass to place information into the RTL dump
24336         file if it so wishes.
24337
24338 Sun Aug 15 12:41:21 1999  Jim Wilson  <wilson@cygnus.com>
24339
24340         * explow.c (hard_function_value): Use VOIDmode instead of
24341         MAX_MACHINE_MODE.
24342         * stmt.c (expand_return): Likewise.
24343         * stor-layout.c (get_best_mode): Likewise.
24344
24345         * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output
24346         emit call instead of emit_insn call.
24347
24348 Sat Aug 14 15:04:06 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24349
24350         * configure.in: Handle --disable/enable-win32-registry.
24351         * install.texi: Document --disable/enable-win32-registry.
24352         * acconfig.h (ENABLE_WIN32_REGISTRY): New macro.
24353         (WIN32_REGISTRY_KEY): New macro.
24354         * prefix.c: Use to enable/disable win32-specific code.
24355         (lookup_key): Use versioned key.
24356         * configure: Regenerate.
24357         * config.in: Likewise.
24358
24359 Fri Aug 13 17:41:55 1999  Jason Merrill  <jason@yorick.cygnus.com>
24360
24361         * cpplib.c (read_line_number): New fn, split out of...
24362         (do_line): Here.
24363
24364 Fri Aug 13 14:18:27 1999  Gavin Romig-Koch  <gavin@cygnus.com>
24365
24366         tree.c (lang_unsave_expr_now) : New.
24367         (unsave_expr_now): Call lang_unsave_expr_now.
24368         tree.h (lang_unsave_expr_now) : New.
24369
24370 Fri Aug 13 00:49:46 1999  Jason Merrill  <jason@yorick.cygnus.com>
24371
24372         * toplev.c (flag_new_exceptions): On by default.
24373
24374 1999-08-13  Michael Meissner  <meissner@cygnus.com>
24375
24376         * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B.
24377
24378 Fri Aug 13 01:29:57 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
24379
24380         * dwarfout.c (fundamental_type_code): Return FT_boolean for
24381         INTEGER_TYPE with precision==1, it's __java_boolean.
24382
24383 Thu Aug 12 23:51:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
24384
24385         * global.c (prune_preferences): Move some invariants out of the
24386         inner loop.
24387
24388 Thu Aug 12 15:30:29 1999  Jesse Perry  (jap@unx.dec.com)
24389
24390         * configure.in (alpha*-dec-osf*): Add osf5.
24391
24392 Sun Aug  1 22:24:03 1999  Philip Blundell  <philb@gnu.org>
24393
24394         * configure.in: Rework handling of ARM GNU/Linux slightly.
24395         (arm*-*-linux-gnuoldld): New target.
24396         * configure: Regenerate.
24397         * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and
24398         arm-*-elf.  Mention that arm-*-linux-gnuaout is obsolete.
24399         * config/arm/linux-oldld.h: New file.
24400         * config/arm/linux-elf26.h: Don't include linux-elf.h.
24401         (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC):
24402         Don't define.
24403         * config/arm/linux-elf.h (ASM_SPEC): Define.
24404         (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC,
24405         SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions
24406         for 26-bit APCS and old linker.
24407         (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or
24408         `arm_elf'.
24409         (FP_DEFAULT): Define to FP_SOFT3 for all machines.
24410         * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__';
24411         don't define `arm' or `arm_elf'.
24412         * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS,
24413         MULTILIB_DIRNAMES): Define.  Fix typo in comment.
24414
24415 Thu Aug 12 10:14:47 1999  Andreas Schwab  <schwab@suse.de>
24416
24417         * rtl.texi: Fix typo.
24418
24419 Wed Aug 11 23:50:57 1999  Jason Merrill  <jason@yorick.cygnus.com>
24420
24421         * invoke.texi (C++ Dialect Options): Add -fms-extensions.
24422
24423 Wed Aug 11 12:59:37 1999  Mark Mitchell  <mark@codesourcery.com>
24424
24425         * extend.texi (C++ Signatures): Remove node.
24426         * invoke.texi: Remove discussion of -fhandle-signatures,
24427         signature, sigof, __signature__, and __sigof__.
24428
24429 Wed Aug 11 03:38:25 1999  Jeffrey A Law  (law@cygnus.com)
24430
24431         * Makefile.in (JAVAGC): Removed.
24432
24433 Wed Aug 11 02:13:26 1999  Mumit Khan  <khan@xraylith.wisc.edu>
24434
24435         * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define.
24436
24437 1999-08-11 Mark Elbrecht <snowball3@bigfoot.com>
24438
24439         * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define.
24440
24441 1999-08-11  Richard Earnshaw (rearnsha@arm.com)
24442
24443         * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of
24444         a register that is already known to be a pointer.
24445
24446 1999-08-11  Bruce Korb  <ddsinc09@ix.netcom.com>
24447
24448         * fixinc/inclhack.tpl: Only install assert.h conditionally.
24449         * fixinc/inclhack.sh: Regenerated.
24450         * fixinc/fixincl.sh: Regenerated.
24451
24452 Wed Aug 11 00:34:22 1999  Joe Buck  <jbuck@synopsys.com>
24453
24454         * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi.
24455         Fix documentation of -ansi flag to describe its C++ behavior.
24456         Remove bogus reference to GCC 2.9.
24457
24458 Tue Aug 10 17:19:02 1999  Jim Wilson  <wilson@cygnus.com>
24459
24460         * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on
24461         note if it is non-NULL.
24462
24463 Tue Aug 10 10:47:42 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24464
24465         * except.h (eh_nesting_info): Add new structure defintion.
24466         (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes.
24467         (reachable_handlers, update_rethrow_references): Add function
24468         prototypes.
24469         * rtl.h (struct rtvec_def): Update comments.  REG_EH_RETHROW takes
24470         a rethrow symbol instead of an integer exception region number.
24471         * flow.c (Make_edges): Use new exception nesting routines to determine
24472         which handlers are reachable from a CALL or asynchronous insn.
24473         Dont add an edge for calls with a REG_EH_REGION of -1 to non-local
24474         goto receivers.
24475         (delete_eh_regions): Update rethrow labels, and don't delete
24476         regions which are the target of a rethrow.
24477         * except.c (struct func_eh_entry): Add rethrow_ref field, now we can
24478         avoid overloading the SYMBOL_REF_USED flag.
24479         (rethrow_symbol_map): Use new rethrow_ref field.
24480         (rethrow_used): Use new rethrow_ref field.
24481         (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead
24482         of an integer.  Fix formatting.
24483         (output_exception_table_entry): Use new rethrow_ref field.
24484         (can_throw): Check for EH_REGION_NOTE before deciding
24485         whether a CALL can throw or not.
24486         (scan_region): Call rethrow_used() instead of accessing data structure.
24487         (update_rethrow_references): New function to make sure only regions
24488         which are still targets of a rethrow are flagged as such.
24489         (process_nestinfo): New static function to initialize a handler
24490         list for a specific region.
24491         (init_eh_nesting_info): New function to allocate and initialize
24492         the list of all EH handlers reachable from all regions.
24493         (reachable_handlers): New function to retrieve the list of handlers
24494         reachable from a specific region and insn.
24495         (free_eh_nesting_info): New function to dispose of a list of
24496         reachable handlers.
24497
24498 Tue Aug 10 10:39:31 EDT 1999  Andrew MacLeod  <amacleod@cygnus.com>
24499
24500         * flow.c (split_edge): Set JUMP_LABEL field.
24501         (commit_one_edge_insertion): Set head correctly for insert_before.
24502         When inserting insns, update insn block numbers if allocated.
24503
24504 Tue Aug 10 09:26:07 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24505
24506         * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type,
24507         retry_incomplete_types): Add static prototype.
24508         (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING,
24509         dwarf_tag_name, dwarf_attr_name, dwarf_form_name,
24510         dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string,
24511         dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line,
24512         dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef):
24513         Constify a char*.
24514
24515         * dwarf2out.h (dwarf2out_define, dwarf2out_undef,
24516         dwarf2out_start_source_file, dwarf2out_line): Likewise.
24517
24518 Tue Aug 10 09:21:46 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24519
24520         * output.h (assemble_name): Constify a char*.
24521
24522         * varasm.c (UNIQUE_SECTION, assemble_start_function,
24523         assemble_variable, assemble_name): Likewise.
24524
24525         * dwarf2out.c (ASM_NAME_TO_STRING): Likewise.
24526
24527         * arm/pe.c (arm_pe_unique_section): Likewise.
24528
24529         * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise.
24530
24531         * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise.
24532
24533         * i386/interix.c (i386_pe_unique_section): Likewise.
24534
24535         * i386/win32.h (STRIP_NAME_ENCODING): Likewise.
24536
24537         * i386/winnt.c (i386_pe_unique_section): Likewise.
24538
24539         * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise.
24540
24541         * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise.
24542
24543         * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise.
24544
24545         * pa/pa.c (output_call): Likewise.
24546
24547         * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise.
24548
24549         * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise.
24550
24551         * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc):
24552         Likewise.
24553
24554         * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING):
24555         Likewise.
24556
24557         * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise.
24558
24559         * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT,
24560         STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise.
24561
24562         * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise.
24563
24564 Mon Aug  9 19:54:05 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24565
24566         * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy.
24567
24568 Mon Aug  9 19:36:00 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24569
24570         * tree.h (lang_identify): Constify a char*.
24571         (print_error_function): Add extern prototype.  Constify a char*.
24572
24573         * c-lang.c (lang_identify): Constify a char*.
24574
24575         * objc/objc-act.c (lang_identify): Constify a char*.
24576
24577 Mon Aug  9 16:21:53 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24578
24579         * genpeep.c (main): Make generated file include "function.h".
24580         * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case.
24581
24582 Mon Aug  9 10:08:50 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
24583
24584         * Makefile.in: Update dependencies.
24585         * alias.c: Include "function.h"
24586         * c-decl.c: Likewise.
24587         * caller-save.c: Likewise.
24588         * calls.c: Likewise.
24589         * combine.c: Likewise.
24590         * cse.c: Likewise.
24591         * explow.c: Likewise.
24592         * final.c: Likewise.
24593         * global.c: Likewise.
24594         * graph.c: Likewise.
24595         * local-alloc.c: Likewise.
24596         * loop.c: Likewise.
24597         * optabs.c: Likewise.
24598         * profile.c: Likewise.
24599         * recog.c: Likewise.
24600         * regclass.c: Likewise.
24601         * regmove.c: Likewise.
24602         * reload.c: Likewise.
24603         * reorg.c: Likewise.
24604         * resource.c: Likewise.
24605         * sched.c: Likewise.
24606         * stupid.c: Likewise.
24607         * config/1750a/1750a.c: Likewise.
24608         * config/a29k/a29k.c: Likewise.
24609         * config/arc/arc.c: Likewise.
24610         * config/arm/arm.c: Likewise.
24611         * config/arm/thumb.c: Likewise.
24612         * config/c4x/c4x.c: Likewise.
24613         * config/clipper/clipper.c: Likewise.
24614         * config/convex/convex.c: Likewise.
24615         * config/fx80/fx80.c: Likewise.
24616         * config/i860/i860.c: Likewise.
24617         * config/m68k/m68k.c: Likewise.
24618         * config/m88k/m88k.c: Likewise.
24619         * config/mips/mips.c: Likewise.
24620         * config/pdp11/pdp11.c: Likewise.
24621         * config/pyr/pyr.c: Likewise.
24622         * config/romp/romp.c: Likewise.
24623         * config/sh/sh.c: Likewise.
24624         * config/tahoe/tahoe.c: Likewise.
24625         * config/vax/vax.c: Likewise.
24626         * config/we32k/we32k.c: Likewise.
24627         * config/sparc/sparc.c: Include "function.h".
24628         (mem_min_alignment): Test current_function rather than
24629         regno_pointer_align.
24630         * config/pa/pa.c: Likewise.
24631         (compute_frame_size): Delete declaration of
24632         current_function_outgoing_args_size.
24633         * config/arc/arc.h (current_function_varargs): Delete declaration.
24634         * config/elxsi/elxsi.h (current_function_calls_alloca): Delete
24635         declaration.
24636         * config/i370/i370.h (current_function_outgoing_args_size): Delete
24637         declaration.
24638         * config/i386/i386.h (FINALIZE_PIC): Delete declaration of
24639         current_function_uses_pic_offset_table.
24640         * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration
24641         of current_function_returns_pointer.
24642         * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24643         * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24644         * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24645         * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24646         * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24647         * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise.
24648         * config/m88k/m88k.c: Include "function.h"
24649         (call_used_regs, current_function_pretend_args_size,
24650         current_function_outgoing_args_size, frame_pointer_needed): Delete
24651         declarations.
24652         * config/m88k/m88k.h (current_function_pretend_args_size): Delete
24653         declaration.
24654         * config/mips/mips.h (current_function_calls_alloca): Delete
24655         declaration.
24656         * config/mn10200/mn10200.h (current_function_needs_context,
24657         rtx_equal_function_value_matters): Delete declarations.
24658         * config/ns32k/ns32k (current_function_uses_pic_offset_table,
24659         flag_pic): Delete declarations.
24660         * config/pa/pa.h (current_function_pretend_args_size,
24661         current_function_decl): Delete declarations.
24662         * config/pa/som.h (current_function_varargs): Delete declaration.
24663         * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete
24664         declaration.
24665         * config/pyr/pyr.h (current_function_pretend_args_size,
24666         current_function_args_size, current_function_calls_alloca): Delete
24667         declarations.
24668         * config/sh/sh.h (current_function_varargs): Delete declaration.
24669         * config/sparc/sparc.h (current_function_outgoing_args_size,
24670         current_function_calls_alloca, current_function_decl): Delete
24671         declarations.
24672         * config/spur/spur.h (current_function_pretend_args_size,
24673         current_function_calls_alloca): Delete declarations.
24674         * config/v850/v850.c (current_function_outgoing_args_size): Delete
24675         declaration.
24676         * config/vax/vms.h (current_function_name): Delete declaration.
24677         * gcse.c: Include "function.h".
24678         (current_function_name, current_function_calls_setjmp): Delete
24679         declarations.
24680         * haifa-sched.c: Include "function.h".
24681         (forced_labels): Delete declaration.
24682         * jump.c: Likewise.
24683         * reg-stack.c: Likewise.
24684         * reload1.c: Likewise.
24685         * genemit.c (main): Make generated file include function.h.
24686         * genoutput.c (output_prologue): Likewise.
24687
24688         * builtins.c (saveregs_value, apply_args_value): Delete variables.
24689         * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn,
24690         sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename,
24691         regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align,
24692         regno_reg_rtx, sequence_stack): Delete variables.  Add accessor
24693         macros for some of them.
24694         (emit_filename, emit_lineno): Delete declarations.
24695         (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy.  Access
24696         regno_pointer_* variables through current_function.
24697         (gen_inline_header_rtx): Delete function.
24698         (save_emit_status): Delete function.
24699         (set_new_last_label_num): New function.
24700         (clear_emit_caches): New function.
24701         (restore_emit_status): Just clear last_labelnum and call
24702         clear_emit_caches.
24703         (get_last_insn_anywhere): Variable sequence_stack is now accessed
24704         through macro seq_stack.
24705         (add_insn_after): Likewise.
24706         (add_insn_before): Likewise.
24707         (remove_insn): Likewise.
24708         (pop_topmost_sequence): Likewise.
24709         (in_sequence_p): Likewise.
24710         (start_sequence_for_rtl_expr): Likewise.
24711         (start_sequence): Likewise, and likewise for
24712         sequence_rtl_expr/seq_rtl_expr.
24713         (push_topmost_sequence): Likewise.
24714         (end_sequence): Likewise.
24715         (init_virtual_regs): Now takes a "struct emit_status *" argument.
24716         All callers changed.  Store into that pointer instead of globals.
24717         (init_emit): Allocate emit elt of current_function.
24718         Changes for sequence_rtl_expr/sequence_stack renaming.
24719         Call clear_emit_caches instead of doing it in-line.
24720         Access regno_pointer_* variables through current_function.
24721         (init_emit_once) Don't clear sequence_stack.
24722
24723         * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain):
24724         Delete variables.
24725         (arg_pointer_save_area): Delete declaration.
24726         (finish_expr_for_function): Renamed from init_queue; no longer static.
24727         (init_expr): Don't call init_queue.
24728         (save_expr_status, restore_expr_status): Delete functions.
24729         (expand_expr): Changes to reflect new layout of struct function.
24730         Don't access current_function_check_memory_usage when current_function
24731         is 0.
24732         * expr.h (forced_labels, save_expr_regs, saveregs_value,
24733         apply_args_value, current_function_calls_alloca, inhibit_defer_pop,
24734         current_function_outgoing_args_size, current_function_arg_offset_rtx,
24735         current_function_uses_const_pool, function_call_count,
24736         current_function_uses_pic_offset_table, nonlocal_labels,
24737         current_function_internal_arg_pointer, nonlocal_goto_stack_level,
24738         current_function_check_memory_usage, nonlocal_goto_handler_slots,
24739         pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete
24740         declarations.
24741         (finish_expr_for_function): Declare.
24742         * flags.h (current_function_has_nonlocal_label,
24743         current_function_has_nonlocal_goto, current_function_is_thunk,
24744         current_function_has_computed_jump): Delete declarations.
24745         * flow.c (forced_labels): Delete declaration.
24746         * function.c (current_function_pops_args,
24747         current_function_returns_struct, current_function_returns_pcc_struct,
24748         current_function_needs_context, current_function_calls_setjmp,
24749         current_function_calls_longjmp, current_function_has_nonlocal_label,
24750         current_function_has_nonlocal_goto, current_function_is_thunk,
24751         current_function_has_computed_jump, current_function_calls_alloca,
24752         current_function_contains_functions, current_function_returns_pointer,
24753         current_function_epilogue_delay_list, current_function_args_size,
24754         current_function_pretend_args_size, current_function_arg_offset_rtx,
24755         current_function_outgoing_args_size, current_function_varargs,
24756         current_function_stdarg, current_function_args_info, cleanup_label,
24757         current_function_name, current_function_uses_const_pool,
24758         current_function_instrument_entry_exit, current_function_return_rtx,
24759         current_function_uses_pic_offset_table, nonlocal_labels,
24760         current_function_internal_arg_pointer, current_function_cannot_inline,
24761         current_function_check_memory_usage, function_call_count,
24762         nonlocal_goto_handler_slots, nonlocal_goto_handler_labels,
24763         nonlocal_goto_stack_level, return_label, save_expr_regs,
24764         stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots,
24765         tail_recursion_reentry, arg_pointer_save_area, frame_offset,
24766         context_display, trampoline_list, parm_birth_insn, invalid_stack_slot,
24767         last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr,
24768         temp_slot_level, var_temp_slot_level, target_temp_slot_level):
24769         Delete variables.
24770         (push_function_context_to): Don't save them.  Don't call
24771         save_storage_status, save_emit_status or save_expr_status.
24772         (pop_function_context_from): Don't restore them.  Don't call
24773         restore_storage_status or restore_expr_status.
24774         (get_func_frame_size): New function.
24775         (get_frame_size): Use it.
24776         (assign_outer_stack_local): Reflect some member name changes in struct
24777         function.
24778         (put_reg_into_stack): Likewise.
24779         (assign_stack_temp_for_type): sequence_rtl_expr was renamed to
24780         seq_rtl_expr.
24781         (fixup_var_refs): Likewise.
24782         (fix_lexical_addr): Likewise.
24783         (trampoline_address): Likewise.
24784         (prepare_function_start): Clear field inlinable of current_function.
24785         (init_function_for_compilation): New function.
24786         (expand_dummy_function_end): New function.
24787         (expand_function_end): Call finish_expr_for_function.
24788         * function.h (struct emit_status): New; fields moved here from struct
24789         function and from global variables.  Add accessor macros for some of
24790         the fields.
24791         (struct expr_status): Likewise.
24792         (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h.
24793         (struct function): Add fields expr and emit, inlinable, inl_emit,
24794         original_arg_vector, original_decl_initial, inl_last_parm_insn,
24795         inl_max_label_num.  Add many comments.
24796         Add accessor macros for all elts of struct function that no longer
24797         have a global variable.
24798         (cleanup_label, return_label, frame_offset, tail_recursion_label,
24799         tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain,
24800         stack_slot_list): Delete declarations.
24801         (get_func_frame_size): Declare.
24802         (save_expr_status, restore_expr_status, save_emit_status,
24803         save_storage_status, restore_storage_status): Delete declarations.
24804         (init_virtual_regs): Declare.
24805         * output.h (current_function_pops_args,
24806         current_function_returns_struct, current_function_returns_pcc_struct,
24807         current_function_needs_context, current_function_calls_setjmp,
24808         current_function_calls_longjmp, current_function_calls_alloca,
24809         current_function_has_nonlocal_label, current_function_varargs,
24810         current_function_has_computed_jump, current_function_returns_pointer,
24811         current_function_contains_functions, current_function_args_size,
24812         current_function_pretend_args_size, current_function_stdarg,
24813         current_function_outgoing_args_size, current_function_args_info,
24814         current_function_name, current_function_return_rtx,
24815         current_function_epilogue_delay_list,
24816         current_function_uses_const_pool, current_function_cannot_inline):
24817         Delete declarations.
24818         * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length,
24819         regno_reg_rtx): Delete declaration.
24820         (REGNO_POINTER_FLAG): Delete macro.
24821         * stmt.c (expand_goto): Changes to reflect that some fields in struct
24822         function were renamed.
24823         * stor-layout.c (save_storage_status, restore_storage_status): Delete
24824         functions.
24825         * toplev.c: Include "function.h".
24826         (current_function_decl): Delete declaration.
24827         (compile_file): Call init_dummy_function_start and
24828         expand_dummy_function_end around some initializations that need to
24829         emit rtl.
24830         (rest_of_compilation): Use DECL_SAVED_INSNS properly.
24831         Call init_function_for_compilation.
24832         * unroll.c: Include "function.h"
24833         (unroll_loop): Access regno_pointer_* variables through
24834         current_function.
24835
24836         * tree.h (struct tree_decl): Add elt f to saved_insns member.
24837         (DECL_SAVED_INSNS): use it.
24838         (expand_dummy_function_end): Declare.
24839         (init_function_for_compilation): Declare.
24840         * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now
24841         that it's no longer an INLINE_HEADER.
24842         (expand_call): Likewise.
24843         * integrate.c (finish_inline): Delete function.
24844         (max_parm_reg, parm_reg_stack_loc): Delete declarations.
24845         (initialize_for_inline): Delete min_labelno, max_labelno and max_reg
24846         args.  Don't generate an INLINE_HEADER rtx, just return the arg
24847         vector.  All callers changed.
24848         (save_for_inline_copying):  Create a duplicate struct emit_status to
24849         hold the emit state for compiling the current function.  Use this and
24850         the other new fields in struct function that are for integration
24851         instead of an INLINE_HEADER.
24852         Use memcpy instead of bcopy.
24853         Store the current struct function in DECL_SAVED_INSNS of fndecl.
24854         (save_for_inline_nocopy): Similar changes, except no new emit_status
24855         is needed here.
24856         (expand_inline_function): Get information from function structure,
24857         not from an inline header rtx.
24858         (output_inline_function): Lose code to extract the necessary
24859         information from an inline header; simply put back the function
24860         structure into current_function.  Clear its inlinable elt.
24861         * rtl.def (INLINE_HEADER): Delete.
24862         * rtl.h: Delete all accessors for an INLINE_HEADER.
24863         (gen_inline_header_rtx): Delete declaration.
24864         (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels):
24865         Delete declarations.
24866         (REGNO_POINTER_ALIGN): Delete.
24867         (clear_emit_caches): Declare.
24868         (set_new_last_label_num): Declare.
24869
24870 Mon Aug  9 01:52:24 1999  Jason Merrill  <jason@yorick.cygnus.com>
24871
24872         * print-tree.c (print_node): Print base for OFFSET_TYPEs.
24873
24874         * except.c (expand_eh_region_start_for_decl): Always start a new block.
24875         * stmt.c (is_eh_region): Make sure current_function is present, too.
24876
24877 Mon Aug  9 01:15:24 1999  Jeffrey A Law  (law@cygnus.com)
24878
24879         * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when
24880         for 64bit PA targets.
24881
24882         * pa.h (SELECT_SECTION): Define.
24883         * som.h (SELECT_SECTION): Delete.
24884
24885 Sun Aug  8 15:13:20 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24886
24887         * alias.c (init_alias_analysis): Wrap call to
24888         `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue.
24889
24890 1999-08-07  Bruce Korb  <autogen@linuxbox.com>
24891
24892         * fixinc/inclhack.def(irix_asm_apostrophe):  IRIX 5.2's
24893         <sys/asm.h> contains an asm comment with an apostrophe
24894         * fixinc/inclhack.sh:  regen
24895         * fixinc/fixincl.x:  regen
24896
24897 Sat Aug  7 19:37:07 1999  Richard Henderson  <rth@cygnus.com>
24898
24899         * function.c (init_function_start): Clear prologue & epilogue.
24900         (prologue_epilogue_contains): New function.
24901         * alias.c (init_alias_analysis): Use it.
24902         * rtl.h (prologue_epilogue_contains): Declare it.
24903
24904 Sat Aug  7 19:32:16 1999  Richard Henderson  <rth@cygnus.com>
24905
24906         * jump.c (onlyjump_p): New function.
24907         * rtl.h: Declare it.
24908         * flow.c (delete_unreachable_blocks): Use onlyjump_p instead
24909         of condjump_p in calling tidy_fallthru_edge and merge_blocks.
24910
24911 Sat Aug  7 17:09:36 1999  Richard Henderson  <rth@cygnus.com>
24912
24913         * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET
24914         to invert loops.  Simplify block scanning.
24915
24916 Sat Aug  7 02:11:13 1999  Bernd Schmidt <bernds@cygnus.co.uk>
24917
24918         * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
24919         (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
24920
24921 1999-08-07  Jonathan Larmour  <jlarmour@cygnus.co.uk>
24922
24923         * config/sparc/liteelf.h: New file to support sparclite-elf target
24924         * config/sparc/t-sp86x: New file to support sparc86x targets
24925         * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target
24926         * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target
24927         * configure.in: Support above target triplets
24928         * configure: Regenerated
24929
24930 Sat Aug  7 01:39:27 1999  Philippe De Muyter  <phdm@macqel.be>
24931
24932         * fixinc/server.c (server_setup): Do not prefix function used as
24933         parameter with `&'.
24934
24935 Sat Aug  7 00:21:20 1999  Richard Henderson  <rth@cygnus.com>
24936
24937         * alpha.md (movhi and movqi patterns): Correct predicate for !BWX.
24938         Remove fp reg alternatives.
24939
24940 Sat Aug  7 00:06:54 1999  Jeffrey A Law  (law@cygnus.com)
24941
24942         * Makefiin (TAROUTOPTS): Kill.
24943         (install-headers-tar): Use "xpf" for tar headerfile extraction
24944         * i370/x-oe (TAROUTOPTS): Delete.
24945         * m68k/x-apollo68 (TAROUTOPTS): Delete.
24946         * m68k/x-hp320 (TAROUTOPTS): Delete.
24947         * m68k/x-hp320g (TAROUTOPTS): Delete.
24948         * gcc.texi: Update bug reporting text.
24949
24950 1999-08-6 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
24951
24952         * reg-stack.c (change_stack) Fixed problem with negative array index.
24953
24954 Fri Aug  6 23:08:44 1999  Jeffrey A Law  (law@cygnus.com)
24955
24956         * extend.texi, install.texi: Fix spelling mistakes.
24957
24958         * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete.
24959         (s-attrtab); No longer try to use pre-made insn-attrtab file.
24960         * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and
24961         PREMADE_ATTRTAB_MD.
24962         * mips/t-ecoff: Likewise.
24963         * mips/t-elf: Likewise.
24964         * mips/t-mips: Likewise.
24965         * mips/t-osfrose: Likewise.
24966         * mips/t-r3900: Likewise.
24967         * mips/t-svr3: Likewise.
24968         * mips/t-svr4: Likewise.
24969         * mips/t-ultrix: Likewise.
24970
24971         * gcc.texi: Document recommend means to provide software floating
24972         point libraries in libgcc.a
24973
24974 1999-08-06  Jason Merrill  <jason@yorick.cygnus.com>
24975
24976         * c-lex.c (yylex): We can have a number with no digits.
24977
24978 Fri Aug  6 16:53:55 EDT 1999  John Wehle  (john@feith.com)
24979
24980         * jump.c (delete_prior_computation): New function, broken
24981         out of delete_computation.  Check for side effects with
24982         side_effects_p instead of FIND_REG_INC_NOTE.  Handle
24983         multi-word hard registers.
24984         (delete_computation): Use it.  Check for side effects with
24985         side_effects_p instead of FIND_REG_INC_NOTE.  Synthesize a
24986         missing REG_DEAD note for a register which is both set and
24987         used by an insn.
24988
24989 Fri Aug  6 11:05:29 1999  Jeffrey A Law  (law@cygnus.com)
24990
24991         * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete.
24992         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise.
24993         (ASM_FILE_START): Import _mcount with the right type.
24994         (ASM_DECLARE_FUNCTION_NAME): Define.
24995         (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define.
24996         * pa.c (output_function_prologue): Always emit the function's label
24997         here.
24998         * pa.h (TEXT_SPACE_P): Define.
24999         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
25000         (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise.
25001         * som.h (TEXT_SPACE_P): Delete.
25002         (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise.
25003         (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise.
25004
25005 Thu Aug  5 19:29:39 1999  Jim Wilson  <wilson@cygnus.com>
25006
25007         * expr.c (emit_group_load): Allow src to be a CONCAT.
25008
25009 Thu Aug  5 22:27:15 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25010
25011         * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop.
25012         (___mulsi3): Use '!' comment character.
25013
25014 Thu Aug  5 13:34:14 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25015
25016         * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *".
25017
25018 Thu Aug  5 02:40:42 1999  Jeffrey A Law  (law@cygnus.com)
25019
25020         * gcc.c: Update URLs and mail addresses.
25021         * gcc.texi: Likewise.
25022
25023 Thu Aug  5 01:14:13 1999  Daniel Jacobowitz <drow@false.org>
25024
25025         * rs6000.c (current_file_function_operand): Return zero for
25026         weak functions.
25027         (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for
25028         weak symbols.
25029         * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG
25030         for weak symbols.
25031
25032 Thu Aug  5 00:56:30 1999  Geoffrey Keating  <geoffk@cygnus.com>
25033
25034         * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always
25035         allocate space in the stack frame for the PIC register.
25036
25037 Thu Aug  5 00:20:47 1999  Jeffrey A Law  (law@cygnus.com)
25038
25039         * m68k.md (xordi3, anddi3): These patterns are not available on
25040         the coldfire.
25041
25042 Wed Aug  4 23:39:20 1999  Mark Mitchell  <mark@codesourcery.com>
25043
25044         * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules.
25045         (PUT_REAL): Likewise.
25046
25047 Wed Aug  4 20:45:04 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25048
25049         * final.c (shorten_branches): Don't add an alignment for loops
25050         that have no label inside.
25051
25052 Wed Aug  4 16:39:24 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25053
25054         * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap
25055         prototypes in macro HAVE_cmpstrsi.
25056
25057         * cpplib.c (cpp_get_token): Remove unused label `op3'.
25058
25059         * emit-rtl.c (operand_subword): Remove unused variable
25060         `bits_per_word'.
25061
25062         * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'.
25063
25064         * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING.
25065
25066 Wed Aug  4 13:29:23 1999  Zack Weinberg  <zack@bitmover.com>
25067
25068         * cpphash.c (macroexpand): Delete leading whitespace when arg
25069         is concatenated before.
25070         (unsafe_chars): Correct test for whether + and - can extend a
25071         token.
25072
25073         * cppinit.c (cpp_start_read): Do dependencies for
25074         -include/-imacros files also.
25075
25076         * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother
25077         tokenizing non-directive lines.
25078         (cpp_expand_to_buffer): Temporarily disable no-output mode.
25079         * cppmain.c: In no-output mode, just call cpp_scan_buffer for
25080         the input file.
25081
25082 Wed Aug  4 12:53:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
25083
25084         * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too.
25085
25086         * c-lex.c: Sync with C++ frontend.
25087         (linemode): New variable.
25088         (parse_float): imag, conversion_errno, and type are output only.
25089         (yylex): Adjust.  Move initial '.' case into main switch.
25090         Use linemode.
25091         (handle_generic_pragma): Just deal with tokens.
25092         (readescape): Use ISXDIGIT and ISGRAPH.
25093         * c-parse.in: Add END_OF_LINE token.
25094
25095         * c-lex.c (lang_init): Generalize.
25096         (nextchar): Remove.  Replace uses with UNGETC.
25097         (skip_white_space): Handle linemode here.  Optimize for cpplib.
25098         (skip_white_space_on_line): Remove.
25099         (extend_token_buffer_to): New fn.
25100         (extend_token_buffer): Use it.
25101         (read_line_number, check_newline): Just deal with tokens.
25102         (token_getch, token_put_back): New fns.
25103         (yylex): Use them.  More cpplib optimizations.  Simplify.
25104
25105 Wed Aug  4 12:53:44 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
25106                           Jason Merrill  <jason@yorick.cygnus.com>
25107
25108         * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE.
25109         (consume_string): Make this smart about USE_CPPLIB.
25110         (check_newline): Rewrite to be intelligent about USE_CPPLIB.
25111         (yylex): Rewrite to be intelligent about USE_CPPLIB.
25112         Also, clean up cases where we redundantly set token_buffer[0].
25113         (read_line_number): New fn.
25114         (ignore_escape_flag): New variable.
25115
25116 Wed Aug  4 13:12:17 1999  Jeffrey A Law  (law@cygnus.com)
25117
25118         * a29k/t-a29kbare: Fix some comments.
25119         (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c
25120         (FPBIT, DPBIT): Define.
25121         * a29k/t-vx29k: Likewise.
25122         * arc/t-arc: Likewise.
25123         * arm/t-arm-elf: Likewise.
25124         * arm/t-bare: Likewise.
25125         * arm/t-pe: Likewise.
25126         * arm/t-pe-thumb: Likewise.
25127         * arm/t-semi: Likewise.
25128         * arm/t-thumb: Likewise.
25129         * arm/t-thumb-elf: Likewise.
25130         * arm/t-thumb-linux: Likewise.
25131         * h8300/t-h8300: Likewise.
25132         * i960/t-i960: Likewise.
25133         * i960/t-vxworks960: Likewise.
25134         * m32r/t-m32r: Likewise.
25135         * mips/t-ecoff: Likewise.
25136         * mips/t-elf: Likewise.
25137         * mips/t-r3900: Likewise.
25138         * pa/t-pro: Likewise.
25139         * rs6000/t-aix43: Likewise.
25140         * rs6000/t-beos: Likewise.
25141         * rs6000/t-newas: Likewise.
25142         * rs6000/t-ppccomm: Likewise.
25143         * rs6000/t-rs6000: Likewise.
25144         * rs6000/t-winnt: Likewise.
25145         * rs6000/t-xnewas: Likewise.
25146         * rs6000/t-xrs6000: Likewise.
25147         * sh/t-sh: Likewise.
25148         * sparc/t-elf: Likewise.
25149         * sparc/t-sparcbare: Likewise.
25150         * sparc/t-sparclite: Likewise.
25151         * sparc/t-splet: Likewise.
25152         * v850/t-v850: Likewise.
25153         * mn10200/t-mn10200: Fix comments.
25154         * mn10300/t-mn10300: Likewise.
25155
25156         * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new
25157         dummy operand.  Allocate a new pseudo for the dummy operand.
25158         (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes.
25159
25160         * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass.
25161
25162 Wed Aug  4 11:53:55 1999  Tom Tromey  <tromey@cygnus.com>
25163
25164         * configure: Rebuilt.
25165         * configure.in: Removed --enable-java-gc option and JAVAGC subst.
25166
25167 Wed Aug  4 09:06:14 1999  Richard Earnshaw (rearnsha@arm.com)
25168
25169         * recog.c (preproces_constraints): Zero recog_op_alt before
25170         processing the constraints.
25171
25172         * arm.c (typedef minipool_node): Renamed from pool_node.
25173         (minipool_vector, minipool_size, minipool_vector_label): Similarly.
25174         (add_minipool_constant): New function.
25175         (dump_minipool): New function.
25176         (find_barrier): Remove special case for getting the insn size of
25177         an insn that references the constant pool.
25178         (minipool_fixup): New structure.
25179         (push_minipool_barrier): New function.
25180         (push_minipool_fix): New function.
25181         (note_invalid_constants): New function.
25182         (add_pool_constant, dump_table, fixit, broken_move): Delete.
25183         (arm_reorg): Rewrite code to fix up the constant pool into a
25184         series of mini-pools embedded in the insn stream.
25185         (arm_output_epilogue): New function, made mainly from the body
25186         of output_func_epilogue.
25187         (output_func_epilogue): Move insn generation part of epilogue code
25188         to arm_output_epilogue.
25189         * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete.
25190         * arm.md (pool_range): New attribute.
25191         (zero_extendqidi2): Add attribute pool_range.
25192         (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn,
25193         extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr,
25194         pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend,
25195         movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn,
25196         movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise.
25197         (epilogue): New expand.
25198         (epilogue_insn): New insn.  Call arm_output_epilogue.
25199
25200         * arm.c (arm_poke_function_name): Undo change of July 17.  Tidy up.
25201         * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT.
25202
25203 Mon Aug  2 19:18:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
25204
25205         * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
25206
25207 1999-08-04 Mark Elbrecht <snowball3@bigfoot.com>
25208
25209         * config/i386/djgpp.h  (BSS_SECTION_ASM_OP): Define.
25210
25211 Wed Aug  4 02:15:32 1999  Richard Henderson <rth@cygnus.com>
25212
25213         * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump.
25214
25215 Wed Aug  4 01:48:08 1999  Jim Kingdon  <http://developer.redhat.com>
25216
25217         * global.c: Fix comment.
25218
25219 Wed Aug  4 01:43:01 1999  Ian Lance Taylor  <ian@zembu.com>
25220
25221         * gcc.c (access_check): New static function.
25222         (find_a_file): Use it when searching a directory list.
25223         * collect2.c (find_a_file): Don't accept directories found when
25224         searching a directory list.
25225
25226 Wed Aug  4 01:40:43 1999  Philippe De Muyter  <phdm@macqel.be>
25227
25228         * tlink.c (symbol_hash_lookup): Do not prefix functions used as
25229         function parameters with `&'.
25230         (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto.
25231
25232 Wed Aug  4 01:08:44 1999  Jeffrey A Law  (law@cygnus.com)
25233
25234         * flow.c (delete_unreachable_blocks): Do not call merge_blocks
25235         or tidy_fallthru_edge if the last insn in the block is not
25236         an unconditional jump or a simple conditional jump.
25237
25238 Tue Aug  3 20:21:20 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25239
25240         * Makefile.in (c-decl.o): Depends on defaults.h.
25241
25242 Tue Aug  3 14:14:52 1999  Jeffrey A Law  (law@cygnus.com)
25243
25244         * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for
25245         PA1.1 and above.
25246         (CLASS_MAX_NREGS): Likewise.
25247
25248 Tue Aug  3 03:51:20 1999  Jeffrey A Law  (law@cygnus.com)
25249
25250         * cse.c (cse_insn): Fix dumb thinko in last change.
25251
25252 Tue Aug  3 10:36:13 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25253
25254         * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as
25255         "const char *".
25256
25257 Mon Aug  2 23:45:45 1999  Hans-Peter Nilsson  <hp@bitrange.com>
25258
25259         * dwarf2out.c (add_location_or_const_value_attribute): Correct
25260         test for sizes of passed and declared parameter types.
25261
25262 Tue Aug  3 00:03:41 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
25263
25264         * fixincludes: Fix the return type of bsearch, char* -> void*.
25265
25266         * fixinc/inclhack.def: Likewise.
25267
25268 Mon Aug  2 18:29:32 1999  Mark Mitchell  <mark@codesourcery.com>
25269
25270         * invoke.texi (-fdump-translation-unit): New option.
25271
25272 Mon Aug  2 17:54:19 1999  Richard Henderson  <rth@cygnus.com>
25273
25274         * expr.h (PROMOTE_PROTOTYPES): Move ...
25275         * defaults.h: ... to here.
25276         * c-decl.c: Include defaults.h instead of expr.h.
25277         * c-typeck.c: Include defaults.h.
25278
25279 Mon Aug  2 17:10:24 1999  Mark Mitchell  <mark@codesourcery.com>
25280
25281         * toplev.h (errorcount): Declare.
25282         (warningcount): Likewise.
25283         (sorrycount): Likewise.
25284         * c-lex.c (errorcount): Don't declare.
25285         * dwarf2out.c (errorcount): Don't declare.
25286
25287 Mon Aug  2 17:02:08 1999  Jason Merrill  <jason@yorick.cygnus.com>
25288
25289         * config/libgloss.h: Add a note discouraging use with ELF.
25290         * configure.in: Don't use libgloss.h for ELF targets.
25291         Always use_collect2 on a.out targets.
25292
25293 Mon Aug  2 16:27:42 1999  Jim Wilson  <wilson@cygnus.com>
25294
25295         * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt.
25296         (force_to_mode, case ASHIFTRT): Add shiftrt label.
25297
25298 Tue Aug  3 00:45:02 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25299
25300         * loop.c (strength_reduce): When doing biv->giv conversion, update
25301         reg note of NEXT->insn.
25302
25303 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25304
25305         * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad.
25306
25307 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25308
25309         * c-decl.c (get_parm_info, store_parm_decls): Change all uses of
25310         PROMOTE_PROTOTYPES, so that it tests it as a C expression.
25311         Ensure expr.h is included.
25312         * c-typecheck.c (convert_arguments): Ditto.
25313
25314         * expr.h: Supply default for PROMOTE_PROTOTYPES (0).
25315
25316         * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1.
25317         * config/convex/convex.h: Ditto.
25318         * config/dsp16xx/dsp16xx.h: Ditto.
25319         * config/fx80/fx80.h: Ditto.
25320         * config/gmicro/gmicro.h: Ditto.
25321         * config/i370/i370.h: Ditto.
25322         * config/i386/i386.h: Ditto.
25323         * config/m32r/m32r.h: Ditto.
25324         * config/m68k/m68k.h: Ditto.
25325         * config/m88k/m88k.h: Ditto.
25326         * config/mips/mips.h: Ditto.
25327         * config/pa/pa.h: Ditto.
25328         * config/pyr/pyr.h: Ditto.
25329         * config/tahoe/tahoe.h: Ditto.
25330         * config/we32k/we32k.h: Ditto.
25331
25332         * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES
25333         based on arch size.
25334
25335         * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0.
25336
25337         * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES
25338         from comment.
25339
25340         * tm.texi: Document new usage of PROMOTE_PROTOTYPES.
25341
25342 1999-08-02  Richard Henderson  <rth@cygnus.com>
25343
25344         * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set
25345         for the register spill block.
25346         (m32r_va_arg): New.
25347         * m32r.h (EXPAND_BUILTIN_VA_ARG): New.
25348         (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code.
25349
25350         * m32r.h (INT8_P): Don't short-cut test with (unsigned).
25351         (INT16_P, CMP_INT16_P, UINT16_P): Likewise.
25352         (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise.
25353
25354 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25355
25356         * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef
25357         MAX_WCHAR_TYPE defined in sparc.h.
25358         * config/sparc/linuxaout.h: Likewise.
25359         * config/sparc/linux64.h: Likewise.
25360         Also default to -mvis if CPU is UltraSPARC.
25361
25362 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25363
25364         * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro.
25365         (RTX_OK_FOR_OLO10): Likewise.
25366         (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable
25367         %lo(), allow it in addresses...
25368         (PRINT_OPERAND_ADDRESS): ... and print it appropriately.
25369         * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo()
25370         does not make sense.
25371         * config/sparc/sparc.c (sparc_hard_reg_printed): New array.
25372         (sparc_output_scratch_registers): New function.
25373         (output_function_prologue, sparc_flat_output_function_prologue): Use
25374         it.
25375         * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if
25376         defined.
25377         * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it.
25378         * configure.in: Add check for .register pseudo-op support in as and
25379         check for offsetable %lo().
25380         * acconfig.h: Add templates for the above checks.
25381         * configure: Regenerate.
25382
25383 1999-08-02  Richard Henderson  <rth@cygnus.com>
25384
25385         * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS.
25386         * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise.
25387         * sparc/sol2.h (TARGET_DEFAULT): Likewise.
25388
25389 Mon Aug  2 23:46:45 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
25390
25391         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
25392         reg_biv_class.
25393
25394 1999-08-02  Jakub Jelinek  <jj@ultra.linux.cz>
25395
25396         * config/float-sparc.h: New file.
25397         * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1,
25398         sparc-*-linux-gnu and sparc64-*-linux*.
25399
25400 1999-08-02  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25401
25402         * rs6000.c (rs6000_va_list): Type is an array.
25403         (rs6000_va_start): Don't doubly adjust for varargs.
25404         (rs6000_va_arg): Evaluate long long GPR adjustment.
25405
25406 Mon Aug  2 16:15:57 1999  David Edelsohn  <edelsohn@gnu.org>
25407
25408         * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of
25409         -maix64 and -maix32.
25410         (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC,
25411         LINK_SPEC): Change appropriately.
25412         * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P.
25413         (u_short_cint_operand): Likewise.
25414         * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support
25415         for 64-bit hosts.
25416         * rs6000/t-aix43 (MULTILIB): Change to -m64.
25417
25418         * invoke.texi (RS/6000 Submodel): Document 64-bit processor options.
25419
25420 Mon Aug  2 16:15:57 1999  Geoff Keating  <geoffk@cygnus.com>
25421
25422         * rs6000/rs6000.c (num_insns_constant_wide): Correct
25423         for type promotion.
25424         (add_operand): Get test correct for 64-bit HOST_WIDE_INT.
25425         (non_add_cint_operand): Likewise.
25426         (logical_operand): Likewise.
25427         (non_logical_cint_operand): Likewise.
25428         (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT.
25429         (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT.
25430         (rs6000_select_rtx_section): Suppress warning.
25431         (small_data_operand): Suppress warning.
25432         (rs6000_got_register): Suppress warning.
25433         * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed
25434         type, so `J' is generally the wrong constraint for a SImode value;
25435         use `L' instead.
25436         (andsi3_internal2): Likewise.
25437         (andsi3_internal3): Likewise.
25438         (iorsi3_internal1): Likewise.
25439         (xorsi3_internal1): Likewise.
25440         (movsi): Likewise.
25441         (movsf_softfloat): Likewise.
25442         (scc insns): Likewise.
25443         (movsi+2): Preserve sign bits of SImode constant.
25444         (floatsidf2_internal+1): Sign-extend SImode constant correctly.
25445         (movdf+1): Sign-extend properly.
25446         (movdi_32+1): Sign-extend properly.
25447         (scc insns): Sign-extend properly.
25448
25449         * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J,
25450         K, L, and T.
25451
25452 1999-08-02  Richard Henderson  <rth@cygnus.com>
25453
25454         * alpha.c (override_options): Move ev6 alpha_tp frobbing out of
25455         -mcpu parsing code.
25456         (print_operand): Notice alpha_fptm not alpha_tp for sw completion.
25457         * alpha.md (all fp insns): Likewise.
25458
25459 1999-08-02  Nick Clifton  <nickc@cygnus.com>
25460
25461         * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not
25462         already defined.
25463
25464 Mon Aug  2 03:38:33 1999  Jeffrey A Law  (law@cygnus.com)
25465
25466         * pa.c (legitimize_pic_address): Clarify comments.  Do not call the
25467         pic_load_label generator directly.
25468         * pa.md (pic_load_label): Clarify comments.  Remove modes on operands.
25469         No longer a named pattern.
25470
25471 Mon Aug  2 09:38:10 1999  Nick Clifton  <nickc@cygnus.com>
25472
25473         * explow.c (force_reg): Call force_operand if X does not
25474         satisfy general_operand.
25475
25476 Mon Aug  2 01:34:22 1999  Jeffrey A Law  (law@cygnus.com)
25477
25478         * fix-header.c (main): When testing for CONTINUED, use string
25479         equality, not pointer equality.
25480
25481 Mon Aug  2 01:27:24 1999  Dan Nicolaescu  <dann@ics.uci.edu>
25482
25483         * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0.
25484
25485 Sun Aug  1 22:46:42 1999  Jeffrey A Law  (law@cygnus.com)
25486
25487         * cse.c (cse_insn): Fix loop which deletes insns after a jump
25488         that has become an unconditional jump.
25489
25490         * m68k.c (output_function_prologue): Fix typo in CPU32 case.
25491         (output_function_epilogue): Similarly.
25492
25493 Sun Aug  1 20:14:00 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25494
25495         * tree.h (init_dummy_function_start): Declare.
25496
25497 Sun Aug  1 12:55:31 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25498
25499         * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value,
25500         last_expr_type, last_expr_value, block_start_count, block_stack,
25501         stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack,
25502         nesting_depth, goto_fixup_chain): Delete global vars; now allocated
25503         dynamically in stmt elt of struct function for each function.
25504         (struct nesting): Rename function_call_count elt to n_function_calls,
25505         target_temp_slot_level to block_target_temp_slot_level.  All users
25506         changed.
25507         (struct stmt_status): New structure definition.
25508         Add many accessor macros for stmt_status elements which previously
25509         were global variables.
25510         (init_stmt_for_function): Allocate stmt elt for current_function.
25511         Reflect that block_start_count was renamed to
25512         current_block_start_count.
25513         (save_stmt_status, restore_stmt_status): Delete functions.
25514         (preserve_subexpressions_p): Don't access loop_stack when outside
25515         a function.
25516         (expand_start_bindings): Reflect that block_start_count was renamed to
25517         current_block_start_count.
25518         (expand_fixup): Likewise.
25519         (expand_decl): Don't access block_stack when outside a function.
25520         (expand_decl_cleanup): Likewise.
25521         (expand_dcc_cleanup): Likewise.
25522         (expand_dhc_cleanup): Likewise.
25523         (expand_anon_union_decl): Likewise.
25524         (set_file_and_line_for_stmt): New function.
25525         (in_control_zone_p): New function.
25526
25527         * function.h (struct function): Add new elt stmt.
25528         Delete elts block_stack, stack_block_stack, cond_stack, loop_stack,
25529         case_stack, nesting_stack, nesting_depth, block_start_count,
25530         last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename,
25531         emit_lineno, goto_fixup_chain.
25532         (save_eh_status, restore_eh_status, save_stmt_status,
25533         restore_stmt_status): Delete declarations.
25534         * function.c (push_function_context_to): Don't call save_stmt_status.
25535         (pop_function_context_to): Don't call restore_stmt_status.
25536         * tree.h (in_control_zone_p): Declare.
25537         * rtl.h (set_file_and_line_for_stmt): Declare.
25538
25539         * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno;
25540         call set_file_and_line_for_stmt.
25541
25542 Thu Jul 31 12:34:45 1999  Joe Buck  <jbuck@synopsys.com>
25543
25544         * gcc.texi: Use terms "GNU Compiler Collection" and "GCC".
25545         Also update copyright.
25546
25547 Sat Jul 31 11:10:07 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25548
25549         * c-pragma.c: Don't include "except.h".
25550         * emit-rtl.c: Likewise.
25551         * stor-layout.c: Likewise.
25552         * tree.c: Likewise.
25553         * varasm.c: Likewise.
25554
25555         * flow.c: Include "function.h".
25556         * tree.h (init_dummy_function_start): Declare new function.
25557
25558         * except.h (struct eh_status): New structure.
25559         (struct label_node, struct eh_entry): Declare even if tree.h hasn't
25560         been included.
25561         (eh_return_stub_label, ehstack, catchstack, ehqueue,
25562         catch_clauses, false_label_stack, caught_return_label_stack,
25563         protect_list, current_function_ehc): Add accessor macros for the
25564         corresponding fields in current_function->eh; delete declarations
25565         for all items that used to be declared here.
25566         * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue,
25567         catch_clauses, false_label_stack, caught_return_label_stack,
25568         protect_list, current_function_ehc): Delete variables.
25569         (init_eh_for_function): Allocate current_function->eh.
25570         (save_eh_status, restore_eh_status): Delete functions.
25571
25572         * function.h (struct function): Add fields next_global and eh.
25573         Delete all exception handling related fields.
25574         * function.c (current_function): New variable.
25575         (all_functions): New variable.
25576         (push_function_context_to): Don't allocate a struct function,
25577         use current_function instead.  Call init_dummy_function_start when
25578         outside a function.  Clear current_function before returning.
25579         (pop_function_context_from): Restore current_function.
25580         Don't free the restored struct function.
25581         (prepare_function_start): New function.
25582         (init_dummy_function_start): New function.
25583         (init_function_start): Break out some code into prepare_function_start
25584         and call it here.
25585
25586         * stmt.c (save_stmt_status): Don't call save_eh_status.
25587         (restore_stmt_status): Don't call restore_eh_status.
25588
25589         * Makefile.in: Update dependencies.
25590
25591 Sat Jul 31 04:10:01 1999  Jeffrey A Law  (law@cygnus.com)
25592
25593         * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead
25594         of depending on a magic constant value.  Update comments.
25595         (hppa_expand_prologue): Similarly.
25596
25597         * pa.md (reload_indi, reload_outdi): Allow any register for the
25598         original reload register.
25599
25600 Fri Jul 30 19:41:35 1999  Jim Wilson  <wilson@cygnus.com>
25601
25602         * cccp.c (print_help): Change marcos to macros.
25603
25604 1999-07-30  Richard Henderson  <rth@cygnus.com>
25605
25606         * c-typeck.c (initializer_constant_valid_p): Move ...
25607         * c-common.c (initializer_constant_valid_p): ... here.  Use
25608         FOO_TYPE_P instead of tests against TREE_CODE.  Allow subtraction
25609         of label addresses.
25610         * c-common.h (initializer_constant_valid_p): Declare.
25611         * c-tree.h (initializer_constant_valid_p): Remove.
25612
25613 Fri Jul 30 16:33:42 1999  Mathias Froehlich  <frohlich@na.uni-tuebingen.de>
25614
25615         * config/i386/sol2-c1.asm: Align the stack.
25616         * config/i386/sol2-gc1.asm: Likewise.
25617
25618 1999-07-30  Vladimir Makarov  <vmakarov@loony.cygnus.com>
25619
25620         * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto
25621         -Asparclite for sparc86x.
25622         (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for
25623         sparc86x.
25624         (ASM_CPU_SPEC): Use -Asparclite for sparc86x.
25625
25626 Fri Jul 30 14:53:56 1999  Jakub Jelinek  <jj@ultra.linux.cz>
25627
25628         * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by
25629         the user if using the non-default arch size in BI_ARCH configuration.
25630         * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto.
25631
25632         * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set):
25633         Fix patterns so that they actually match.
25634         (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero.
25635         (mulsidi3_sp64, const_mulsidi3_sp64): New patterns.
25636         (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on
25637         TARGET_HARD_MUL32.
25638         (mulsidi3): Reflect this in the expand.
25639         (smulsi3_highpart): Only on TARGET_ARCH32.
25640         (umulsidi3_sp64, const_umulsidi3_sp64): New patterns.
25641         (const_umulsidi3_sp32): Renamed from const_umulsidi3.
25642         (umulsidi3): Reflect this in the expand.
25643         (umulsi3_highpart): Only on TARGET_ARCH32.
25644         (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32,
25645         don't require g0 to be zero.
25646         (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32.
25647         ({,u}divsi3): New expands.
25648         ({,u}divsi3_sp64): New patterns.
25649         (after lshrdi3_v8plus): Four new patterns to help combiner
25650         optimizing nested mixed mode shifts.
25651
25652         * config/sparc/sparc.c (sparc_override_options): Use deprecated
25653         v8 instructions if optimizing for UltraSPARC I, II, IIi, as it
25654         speed things up. Don't use them by default on plain v9 in 64bit
25655         mode, according to what SPAMv9 sais.
25656
25657         * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves
25658         top 32 bits of %[og][0-7] in signal handlers.
25659         Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32.
25660
25661 Fri Jul 30 03:00:41 1999  Jeffrey A Law  (law@cygnus.com)
25662
25663         * pa.md (zvdep_imm32): Renamed from zvdep_imm.
25664         (ashlsi3): Corresponding changes.
25665
25666         * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands.
25667
25668 Thu Jul 29 18:37:13 1999  Jeffrey A Law  (law@cygnus.com)
25669
25670         * pa.h (FIRST_PARM_CALLER_OFFSET): Delete.
25671
25672 Thu Jul 29 19:01:58 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25673
25674         * arm.h (Hint): Delete macro.
25675         Substitute HOST_WIDE_INT for Hint in some prototypes.
25676         * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype.
25677
25678 Thu Jul 29 09:21:42 1999  Nick Clifton  <nickc@cygnus.com>
25679
25680         * builtins.c (expand_builtin_setjmp): Use force_operand to
25681         make sure that the buffer address is in a suitable form to be
25682         passed to force_reg.
25683
25684 Wed Jul 28 12:50:48 1999  Geoff Keating  <geoffk@cygnus.com>
25685
25686         * config/mips/mips.c: system.h handles MIN and MAX, don't undefine
25687         them here.
25688
25689 Wed Jul 28 13:18:35 1999  Jeffrey A Law  (law@cygnus.com)
25690
25691         * pa.md (indirect_jump): Remove mode from match_operand.  Verify
25692         proper mode in the condition string.
25693         (icacheflush, dcacheflush): Remove modes from match_operands.
25694
25695         * pa.c (emit_move_sequence): Always convert scratch_reg to the
25696         proper mode before using it.
25697
25698         * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn
25699         pair.
25700
25701         * pa.c (store_reg): Do not call add_high_const generator directly.
25702         (load_reg, set_reg_plus_d): Likewise.
25703         * pa.md (add_high_const): No longer a named pattern.
25704
25705         * pa.c (legitimize_address): Consistently use Pmode rather than
25706         SImode.  Do not call gen_pic2_highpart directly anymore.
25707         * pa.md (pic2_highpart): No longer a named pattern.
25708         (pic2_lo_sum): Similarly.  Reformat to make more readable.
25709
25710         * pa.md (call, call_value): Use "word_mode" instead of "SImode" as
25711         needed.
25712
25713         * README: Update.
25714
25715 Wed Jul 28 11:28:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
25716
25717         * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs.
25718
25719 Wed Jul 28 11:23:48 1999  Richard Henderson  <rth@cygnus.com>
25720
25721         * pa.c (hppa_builtin_saveregs):  Use get_varargs_alias_set
25722         and tag the spill mems.
25723         (hppa_va_start): New.
25724         (hppa_va_arg): New.
25725         * pa.h (EXPAND_BUILTIN_VA_START): New.
25726         (EXPAND_BUILTIN_VA_ARG): New.
25727
25728 Wed Jul 28 11:22:21 1999  Richard Henderson  <rth@cygnus.com>
25729
25730         * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set
25731         and tag the spill mems.
25732         (mn10300_va_start): New.
25733         (mn10300_va_arg): New.
25734         * mn10300.h (EXPAND_BUILTIN_VA_START): New.
25735         (EXPAND_BUILTIN_VA_ARG): New.
25736
25737 Wed Jul 28 11:20:19 1999  Richard Henderson  <rth@cygnus.com>
25738
25739         * mn10200.c (mn10200_va_arg): New.
25740         * mn10200.h (EXPAND_BUILTIN_VA_ARG): New.
25741
25742 Wed Jul 28 11:19:06 1999  Richard Henderson  <rth@cygnus.com>
25743
25744         * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes
25745         rather than play with TREE_INT_CST_LOW.
25746
25747 1999-07-27  Philip Blundell  <pb@nexus.co.uk>
25748
25749         * config/arm/telf.h: Include dbxelf.h.
25750         (CPP_PREDEFINES): Only define if not already defined.
25751         (ASM_IDENTIFY_GCC): Likewise.
25752         (SUBTARGET_EXTRA_SECTIONS): Likewise.
25753         (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise.
25754         * config/arm/thumb.h (LINK_SPEC): Only define if not already
25755         defined.
25756         (DBX_DEBUGGING_INFO): Don't define.
25757         * config/arm/linux-telf.h: New file.
25758         * config/arm/linux-tgas.h: New file.
25759         * config/arm/t-thumb-linux: New file.
25760         * config/arm/uclinux-elf.h: New file.
25761         * config/arm/uclinux-telf.h: New file.
25762         * configure.in (arm-*-uclinux, thumb-*-linux-gnu,
25763         thumb-*-uclinux): New targets.
25764         * configure: Regenerate.
25765
25766 Tue Jul 27 23:20:21 1999  Jeffrey A Law  (law@cygnus.com)
25767
25768         * pa.md (post_store, pre_load): New expanders.
25769         (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively.
25770         (post_ldwm, pre_stwm): Make these unnamed patterns since we never
25771         need to directly generate RTL for them.
25772         * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding
25773         changes.
25774
25775 Tue Jul 27 16:05:52 1999  David Edelsohn  <edelsohn@gnu.org>
25776
25777         * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630.
25778         * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630.
25779         (rs6000_cpu): Choose between 32-bit and 64-bit default processors.
25780         (secndary_reload_class): Make TARGET_ELF conditional compile.
25781         (print_operand_address): Similar.
25782         (output_toc): Print all values as hex.
25783         (get_issue_rate): Rearrange and add RS64A and PPC630.
25784         * rs6000.h (processor_type): Add RS64A and PPC630.
25785         (PROCESSOR_POWERPC64): New.
25786         (PROMOTE_MODE): Use word_mode.
25787         (RTX_COSTS): Add RS64A and PPC630.
25788         * rs6000.md (scheduling information): Add lmul and ldiv
25789         representing 64-bit integer multiply and divide.  Add rs64a and
25790         PPC630 information.
25791         (ashldi3): Add support for "rldic" instruction.
25792         * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750.
25793
25794 Tue Jul 27 15:31:53 1999  Vladimir Makarov  <vmakarov@toad.to.cygnus.com>
25795
25796         * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE
25797         instead of V8 for sparclite86x in cpu_table.
25798
25799 Tue Jul 27 17:49:42 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
25800
25801         * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call
25802         output_file_directive.
25803
25804 Tue Jul 27 03:15:33 1999  Jason Merrill  <jason@yorick.cygnus.com>
25805
25806         * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the
25807         tree for op1, not the rtl.
25808
25809 Tue Jul 27 00:18:34 1999  Richard Henderson  <rth@cygnus.com>
25810
25811         * m88k.c (m88k_builtin_saveregs): Break out the constructor code
25812         to m88k_va_start, leaving only the register spill.
25813         (m88k_build_va_list): New.
25814         (m88k_va_start): New.
25815         (m88k_va_arg): New.
25816         * m88k.h (BUILD_VA_LIST_TYPE): New.
25817         (EXPAND_BUILTIN_VA_START): New.
25818         (EXPAND_BUILTIN_VA_ARG): New.
25819
25820 Mon Jul 26 19:07:11 1999  Geoff Keating  <geoffk@cygnus.com>
25821
25822         * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs):
25823         Rename from expand_builtin_saveregs.
25824         * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller.
25825
25826 Mon Jul 26 22:52:47 1999  Richard Henderson  <rth@cygnus.com>
25827
25828         * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set
25829         for the register spill block.
25830         (i960_build_va_list): New.
25831         (i960_va_start): New.
25832         (i960_va_arg): New.
25833         * i960.h (BUILD_VA_LIST_TYPE): New.
25834         (EXPAND_BUILTIN_VA_START): New.
25835         (EXPAND_BUILTIN_VA_ARG): New.
25836         * i960.md (store_multiple): Use change_address on individul mems.
25837
25838 Mon Jul 26 22:43:12 1999  Richard Henderson  <rth@cygnus.com>
25839
25840         * builtins.c (stabilize_va_list): Don't INDIRECT_REF through
25841         an ARRAY_TYPE.
25842         (std_expand_builtin_va_start): Back out one word if !stdarg_p.
25843         (expand_builtin_va_end): Evaluate arg for side effects.
25844         * c-common.c (c_common_nodes_and_builtins): Construct a
25845         va_list_arg_type_node to handle array decomposition to pointer.
25846
25847 Mon Jul 26 18:51:34 1999  Richard Henderson  <rth@cygnus.com>
25848
25849         * except.c (st_dynamic_cleanup): Use force_operand on the
25850         buffer's address.
25851
25852 Mon Jul 26 16:43:26 1999  Richard Henderson  <rth@cygnus.com>
25853
25854         * c4x.h (EXPAND_BUILTIN_VA_ARG): New.
25855         * c4x.c (c4x_va_arg): New.
25856
25857 Mon Jul 26 12:30:09 1999  Jason Merrill  <jason@yorick.cygnus.com>
25858
25859         * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer
25860         has manual_pop set.
25861
25862 1999-07-26  Nathan Sidwell  <nathan@acm.org>
25863
25864         * eh-common.h (__eh_matcher): Prototype correctly.
25865
25866 Mon Jul 26 17:24:51 1999  Philip Blundell  <pb@nexus.co.uk>
25867
25868         * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define.
25869         (TARGET_SINGLE_PIC_BASE): Likewise.
25870         (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default
25871         definitions.
25872         (TARGET_CALLEE_INTERWORKING): Fix typo in comment.
25873         (TARGET_SWITCHES): Add -m{no-}single-pic-base.
25874         (TARGET_OPTIONS): Add -mpic-register=N.
25875         (OUTPUT_INT_ADDR_CONST): New macro.
25876         (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC,
25877         LEGITIMATE_PIC_OPERAND_P): Likewise.
25878         (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC.
25879         (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling
25880         output_addr_const directly.
25881         (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with
25882         ARM port.
25883         (thumb_pic_register, thumb_pic_register_string): Declare.
25884
25885         * config/arm/thumb.c (symbol_mentioned_p): New function: Imported
25886         from arm.c.
25887         (label_mentioned_p): New function: Imported from arm.c.
25888         (legitimize_pic_address): New function: Imported from arm.c.
25889         (is_pic):New function: Imported from arm.c.
25890         (thumb_finalize_pic):New function: Imported from arm.c.
25891         (add_constant): Cope with PIC constants.
25892         (fixit): Cope with PIC constants.
25893         (output_return): Do not treat the PIC register as live if
25894         TARGET_SINGLE_PIC_BASE is true.
25895         (thumb_function_prologue): Do not treat the PIC register as live if
25896         TARGET_SINGLE_PIC_BASE is true.
25897         (thumb_expand_prologue): Do not treat the PIC register as live if
25898         TARGET_SINGLE_PIC_BASE is true.
25899         (thumb_unexpand_epilogue): Do not treat the PIC register as live if
25900         TARGET_SINGLE_PIC_BASE is true.
25901         (thumb_print_operand): Accept '|'.
25902         (thumb_override_options): Process PIC options.
25903
25904         * config/arm/thumb.md (movsi): Support PIC.
25905         (call_insn): Change "i" constraint to "X".
25906         (call_value_insn): Likewise.
25907         (consttable_4, consttable_8, consttable_end): Set and clear
25908         "making_const_table" as appropriate.
25909         (pic_load_addr, pic_add_dot_plus_four): New insns.
25910
25911         * invoke.texi (Thumb Options): Fix spelling.  Document new
25912         options -msingle-pic-base and -mpic-register=.
25913
25914 1999-07-26  Andrew Haley  <aph@cygnus.com>
25915
25916         * config/m32r/initfini.c (__init): Use a full word immediate for
25917         __fini: this allows it to be placed in any memory region.
25918
25919         * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for
25920         -mmodel=medium.  This is OK for all memory models.
25921
25922 Mon Jul 26 11:58:46 1999  Nick Clifton  <nickc@cygnus.com>
25923
25924         * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r.
25925         * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r.
25926
25927 Mon Jul 26 10:23:36 1999  Nick Clifton  <nickc@cygnus.com>
25928
25929         * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if
25930         defined.
25931
25932         * tm.texi: Document ASM_FPRINTF_EXTENSIONS.
25933
25934 Sun Jul 25 23:51:59 1999  Richard Henderson  <rth@cygnus.com>
25935
25936         * i860.h (EXPAND_BUILTIN_SAVEREGS): New.
25937         (BUILD_VA_LIST_TYPE): New.
25938         (EXPAND_BUILTIN_VA_START): New.
25939         (EXPAND_BUILTIN_VA_ARG): New.
25940         * i860.c (output_delayed_branch): Disable.
25941         (output_delay_insn): Likewise.
25942         (i860_saveregs): New.
25943         (i860_build_va_list): New.
25944         (i860_va_start): New.
25945         (i860_va_arg): New.
25946         * i860.md: Disable all peepholes using output_delayed_branch.
25947         * i860/sysv4.h (I860_SVR4_VA_LIST): New.
25948
25949 Sun Jul 25 23:44:13 1999  Richard Henderson  <rth@cygnus.com>
25950
25951         * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument.
25952         (BUILD_VA_LIST_TYPE): New.
25953         (EXPAND_BUILTIN_VA_START): New.
25954         (EXPAND_BUILTIN_VA_ARG): New.
25955         * clipper.c (clipper_builtin_saveregs): Only dump registers.
25956         Return the address of the save area.
25957         (clipper_build_va_list): New.
25958         (clipper_va_start): New.
25959         (clipper_va_arg): New.
25960
25961 Sun Jul 25 22:56:47 1999  Richard Henderson  <rth@cygnus.com>
25962
25963         * arc.h (EXPAND_BUILTIN_VA_START): New.
25964         (EXPAND_BUILTIN_VA_ARG): New.
25965         * arc.c (arc_setup_incoming_varargs): Set alias set of
25966         varargs save area.
25967         (arc_va_start): New.
25968         (arc_va_arg): New.
25969
25970 Sun Jul 25 22:45:55 1999  Richard Henderson  <rth@cygnus.com>
25971
25972         * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete.
25973         (BUILD_VA_LIST_TYPE): New.
25974         (EXPAND_BUILTIN_VA_START): New.
25975         (EXPAND_BUILTIN_VA_ARG): New.
25976         * alpha.c (alpha_builtin_saveregs): Delete.
25977         (alpha_build_va_list): New.
25978         (alpha_va_start): New.
25979         (alpha_va_arg): New.
25980
25981 Sun Jul 25 21:40:33 1999  Jeffrey A Law  (law@cygnus.com)
25982
25983         * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in
25984         column zero.
25985         (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise.
25986         (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise.
25987
25988         * gcc.texi: More changes related to list conversion.
25989         * invoke.texi: Likewise.
25990
25991 Sun Jul 25 18:15:39 1999  Richard Henderson  <rth@cygnus.com>
25992
25993         * builtins.c (expand_builtin_saveregs): Remove static, remove exp
25994         and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS.
25995         (expand_builtin_next_arg): Accept ARGLIST not EXP.
25996         (stabilize_va_list): New function.
25997         (std_expand_builtin_va_start): New function.
25998         (expand_builtin_va_start): New function.
25999         (get_varargs_alias_set): New function.
26000         (std_expand_builtin_va_arg): New function.
26001         (expand_builtin_va_arg): New function.
26002         (expand_builtin_va_end): New function.
26003         (expand_builtin_va_copy): New function.
26004         (expand_builtin): Call them.
26005         * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list,
26006         __builtin_{varargs_start,stdarg_start,end,copy}.
26007         (build_va_arg): New function.
26008         * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete.
26009         (build_va_arg): Declare.
26010         * c-decl.c (ptr_type_node, va_list_type_node): New.
26011         * c-parse.gperf (__builtin_va_arg): New.
26012         * c-parse.in (VA_ARG): New token.
26013         (unary_expr): Recognize it.
26014         * expr.c (expand_expr): Expand VA_ARG_EXPR.
26015         * expr.h (std_expand_builtin_va_start): Declare.
26016         (std_expand_builtin_va_arg): Declare.
26017         (expand_builtin_va_arg): Declare.
26018         (get_varargs_alias_set): Declare.
26019         * tree.def (VA_ARG_EXPR): New.
26020         * tree.h (BUILT_IN_VARARGS_START): New.
26021         (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New.
26022         (ptr_type_node, va_list_type_node): Declare.
26023         * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument.
26024         * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise.
26025         * m88k.h, m88k.c: Likewise.
26026         * mn10300.h, mn10300.c: Likewise.
26027         * pa.h, pa.c: Likewise.
26028         * rs6000.h, rs6000.c: Likewise.
26029         * sh.h, sh.c: Likewise.
26030         * sparc.h, sparc.c: Likewise.
26031
26032         * emit-rtl.c (operand_subword): Copy alias set.
26033         (change_address): Likewise.
26034
26035 Sun Jul 25 15:04:37 1999  Jeffrey A Law  (law@cygnus.com)
26036
26037         * pa.c (compute_frame_size): Scan all the used callee saved registers,
26038         not just the first one.
26039
26040 Fri Jul 23 14:09:58 1999  Philip Blundell  <pb@nexus.co.uk>
26041
26042         * config/arm/arm.h (TARGET_SWITCHES): Add
26043         -m{no-}single-pic-base.  Correct help string for -mshort-load-words.
26044         (TARGET_OPTIONS): Add -mpic-register=.
26045         (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define.
26046         (arm_pic_register_string): Declare.
26047         (NEED_PLT_GOT): Delete, replace with ...
26048         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  New macros.
26049         (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC.
26050         (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC.
26051         * config/arm/arm.c (arm_override_options): Add new option
26052         -mpic-register=N.
26053         (arm_pic_register_string): New variable.
26054         (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE.
26055         (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC
26056         register as never live.  Use NEED_PLT_RELOC not NEED_PLT_GOT.
26057         (output_return_instruction): Likewise.
26058         * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ...
26059         (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these.  Define to flag_pic.
26060         * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT.
26061
26062         * invoke.texi (ARM Options): Fix spelling.  Remove duplicate
26063         mention of -msched-prolog.  Document new options -msingle-pic-base
26064         and -mpic-register=.
26065
26066 Thu Jul 22 18:23:56 1999  Richard Henderson  <rth@cygnus.com>
26067
26068         * haifa-sched.c (reemit_notes): Tidy.
26069         * sched.c (reemit_notes): Duplicate 1998-08-31 patch to
26070         haifa's routine.
26071
26072 Thu Jul 22 18:21:04 1999  Richard Henderson  <rth@cygnus.com>
26073
26074         * explow.c (trunc_int_for_mode): New function.
26075         (plus_constant_wide): Use it.
26076         * combine.c (simplify_and_const_int): Likewise.
26077         (merge_outer_ops): Likewise.
26078         (simplify_shift_const): Likewise.
26079         * cse.c (simplify_unary_operation): Likewise.
26080         (simplify_binary_operation): Likewise.
26081         * emit-rtl.c (operand_subword): Likewise.
26082         * rtl.h: Declare it.
26083
26084 Thu Jul 22 14:34:59 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26085
26086         * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case
26087         (use NUM_REGS instead of NUM_INTS).
26088
26089 Thu Jul 22 11:25:20 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26090
26091         * builtins.c: New file.
26092         * expr.c (saveregs_value, apply_args_value):  Delete definition,
26093         moved into builtins.c.
26094         (string_constant): No longer static.
26095         (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin,
26096         apply_args_size, apply_result_size, result_vector,
26097         expand_builtin_apply_args, expand_builtin_apply,
26098         expand_builtin_return): Delete functions, moved into builtins.c.
26099         (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros.
26100         * expr.h (saveregs_value, apply_args_value): Declare variables.
26101         (expand_builtin, string_constant): Declare functions.
26102         * Makefile.in: Update to build builtin.o.
26103
26104 Wed Jul 21 00:46:58 1999  Mark P. Mitchell  <mark@codesourcery.com>
26105
26106         * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro.
26107         * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it.
26108         * dwarf2out.c (dwarf2out_init): Don't output a label to mark the
26109         start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is
26110         false.
26111         * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL):
26112         Define to zero.
26113
26114 1999-07-21  Michael Meissner  <meissner@cygnus.com>
26115
26116         * print-rtl.c (print_rtx): Print the names of the virtual
26117         registers.
26118
26119 Wed Jul 21 16:00:32 1999  Nick Clifton  <nickc@cygnus.com>
26120
26121         * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo
26122         introduced in previous delta.
26123
26124 Wed Jul 21 14:30:51 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26125
26126         * c-lang.c (finish_file): Rename void_list_node to void_list_node_1
26127         to avoid name clash.
26128
26129 Wed Jul 21 08:39:22 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26130
26131         * c-lex.c (yylex) : Correct the test for overflow when lexing
26132         integer literals.
26133
26134 Tue Jul 20 18:02:42 1999  Richard Henderson  <rth@cygnus.com>
26135
26136         * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa.
26137         (adjust_priority): Always call ADJUST_PRIORITY.
26138         (schedule_insn): Only put insns into the ready at cost 0.
26139         (schedule_block): Remove redundant initial sort.  Give clock_var
26140         and can_issue_more to MD_SCHED_REORDER.  Requeue if hazard cost
26141         is not 0.
26142         * tm.texi (MD_SCHED_REORDER): Update docs.
26143
26144         * sparc.h (MD_SCHED_REORDER): Update.  Set CAN_ISSUE_MORE.
26145         * sparc.c (ultra_reorder_called_this_block): Delete.
26146         (ultrasparc_sched_init): Don't set it.
26147         (ultrasparc_sched_reorder): Don't check it.
26148
26149 Tue Jul 20 17:07:54 1999  Richard Henderson  <rth@cygnus.com>
26150
26151         * rs6000.h (struct rs6000_args): Add sysv_gregno.
26152         * rs6000.c (init_cumulative_args): Init sysv_gregno.
26153         (function_arg_boundary): Align DFmode.
26154         (function_arg_advance): Restructure for ABI_V4; use sysv_gregno
26155         to get fp reg and stack overflow correct.
26156         (function_arg): Likewise.
26157         (function_arg_pass_by_reference): True for TFmode for ABI_V4.
26158         (setup_incoming_varargs): Restructure for ABI_V4; use
26159         function_arg_advance to skip final named argument.
26160         (expand_builtin_saveregs): Properly unskip the last integer arg
26161         when doing varargs.  Adjust overflow location calculation.
26162
26163         * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr
26164         explicitly unsigned.
26165         (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly.
26166         (__VA_GP_REGSAVE): Similarly.
26167         (__va_longlong_p): Delete.
26168         (__va_arg_type_violation): New declaration.
26169         (va_arg): Restructure.  Flag promotion errors.  Align double.
26170         TFmode passed by reference.
26171
26172         * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic
26173         in the HOST_BITS_PER_WIDE_INT > 32 case.
26174
26175 Tue Jul 20 12:37:30 1999  Hans-Peter Nilsson  <hp@bitrange.com>
26176
26177         * dwarf2out.c (output_abbrev_section): Terminate with a zero.
26178
26179 Tue Jul 20 12:12:27 1999  Jason Merrill  <jason@yorick.cygnus.com>
26180
26181         * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed.
26182         * toplev.c (documented_lang_options): Add -fpreprocessed.
26183         * cpplib.h (struct cpp_buffer): Add preprocessed.
26184         * cppinit.c (cpp_handle_option): Handle -fpreprocessed.
26185         (cpp_start_read): Don't expand macros or emit an initial #line
26186         directive if -fpreprocessed.
26187
26188 Tue Jul 20 12:12:09 1999  Michael Tiemann  <tiemann@holodeck.cygnus.com>
26189
26190         * cpplib.h (struct cpp_buffer): Added manual_pop for
26191         better C++ tokenization.
26192         * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop.
26193         Also, support C++ tokenization for ->*, .*, <?, and >? operators.
26194         * c-common.c (cpp_token): Make non-static.
26195
26196 Tue Jul 20 11:24:19 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26197
26198         * c-common.h: New file.
26199         * c-common.c (permanent_obstack): Delete unused declaration.
26200         (c_global_trees): New array.
26201         (c_common_nodes_and_builtins): New function; split off common code
26202         from init_decl_processing in both c-decl.c and cp/decl.c.
26203         * c-tree.h: Delete lots of declarations of tree nodes; replaced by
26204         c_global_trees and accessor macros defined in c-common.h.
26205         Include c-common.h.
26206         * c-decl.c: Delete definitions for tree nodes that were replaced by
26207         c_global_trees.
26208         (init_decl_processing): Build void_list_node.
26209         Call c_common_nodes_and_builtins; delete code to generate the common
26210         builtins here.
26211         * objc/objc-act.c (build_module_descriptor): Rename variable
26212         void_list_node to avoid clash with c-common.h.
26213
26214         * Makefile.in: Update dependencies.
26215         * objc/Make-lang.in: Likewise.
26216
26217 Mon Jul 19 14:22:18 1999  Mark P. Mitchell  <mark@codesourcery.com>
26218
26219         * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define.
26220         (UNIQUE_SECTION_P): Likewise.
26221         (UNIQUE_SECTION): Likewise.
26222
26223 1999-07-19  Linas Vepstas  <linas@linas.org>
26224
26225         * config/i370/README: New file.
26226         * config/i370/linux.h: New file.
26227         * config/i370/mvs.h: New file.
26228         * config/i370/oe.h: New file.
26229         * config/i370/t-linux: New file.
26230         * config/i370/t-mvs: New file.
26231         * config/i370/t-oe: New file.
26232         * config/i370/x-oe: New file.
26233         * config/i370/xm-linux.h: New file.
26234         * config/i370/xm-mvs.h: New file.
26235         * config/i370/xm-oe.h: New file.
26236
26237         * i370.c (label_node_t): Add first_ref_page, label_addr,
26238         label_first_ref, label_last_ref members.
26239         (mvs_need_base_reload): Renamed from mvs_label_emitted.
26240         (MAX_MVS_LABEL_SIZE): Define.
26241         (MAX_LONG_LABEL_SIZE): Define.
26242         (alias_node_t, alias_anchor, alias_number): New.
26243         (mvs_function_table): Reorder for EBCDIC.
26244         (ascebc, ebcasc): Unconditionally define.
26245         (i370_branch_dest, i370_branch_length): New functions.
26246         (i370_short_branch, i370_label_scan): New functions.
26247         (mvs_get_label): Renamed from mvs_add_label.  Search for
26248         an existing label before creating a new one.
26249         (mvs_add_label): New function.
26250         (mvs_get_label_page): New function.
26251         (mvs_free_label_list): Renamed from mvs_free_label.  Iterate
26252         over the entire list.
26253         (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR.
26254         (mvs_check_page) [TARGET_ELF_ABI]: New function.
26255         (mvs_add_alias, mvs_need_alias): New functions.
26256         (mvs_get_alias, mvs_check_alias): New functions.
26257         (handle_pragma): New function.
26258         (mvs_function_check): New function.
26259         (unsigned_jump_follows_p): Search harder.
26260         (i370_function_prolog) [TARGET_HLASM]: Handle LE370.  Scan labels.
26261         (i370_function_prolog) [TARGET_ELF_ABI]: New function.
26262         * i370.h (TARGET_VERSION): Delete.
26263         (CPP_SPEC, CPP_PREDEFINES): Delete.
26264         (mvs_label_emitted): Delete.
26265         (TARGET_EBCDIC): Delete.
26266         (MAP_CHARACTER): Define only if TARGET_EBCDIC.
26267         (HANDLE_PRAGMA): Define.
26268         (HARD_REGNO_NREGS): Handle complex modes.
26269         (HARD_REGNO_MODE_OK): Likewise.
26270         (CLASS_MAX_NREGS): Likewise.
26271         (RET_REG): Likewise.
26272         (EXTRA_CONSTRAINT): Define.
26273         (RETURN_IN_MEMORY): True for DImode.
26274         (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT.
26275         (FUNCTION_PROFILER): Delete.
26276         (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P.
26277         (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts.
26278         (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC.
26279         (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise.
26280         (TARGET_VT, TARGET_FF, TARGET_CR): Likewise.
26281         (ASM_FILE_START): Add "RMODE ANY".
26282         (ASM_OUTPUT_EXTERNAL): Check for aliases.
26283         (ASM_GLOBALIZE_LABEL): Likewise.
26284         (ASM_OUTPUT_LABELREF): Likewise.
26285         (ASM_OUTPUT_COMMON): Likewise.
26286         (PRINT_OPERAND): Handle 'K', 'W', default.
26287         (PRINT_OPERAND_ADDRESS): New.
26288         (Lots of defines): Add support for TARGET_ELF_ABI.
26289         * i370.md (attr length): New.  Define for all patterns.
26290         (*): Lots of tweeks to assembly output and constraints.
26291
26292 Mon Jul 19 15:09:29 1999  David Edelsohn  <edelsohn@gnu.org>
26293
26294         * rs6000.md (arithmetic, logical, and shift Rc combiner patterns):
26295         Disable patterns performing SImode comparisons with SImode values
26296         if TARGET_POWERPC64 and instruction does not sign-extend or does
26297         not mask to narrower than SImode, i.e. where bit 31 and bit 63 may
26298         differ for signed quantities.
26299         (indirect_jump): Add expander to choose RTL based on TARGET_64BIT.
26300         (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64.
26301         (decrement_and_branch_on_count): Add 64-bit variant.
26302
26303 Mon Jul 19 09:36:27 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26304
26305         * final.c (output_asm_insn): When searching for the matching string
26306         for a given dialect, don't run past the end of the list of
26307         alternatives if there are fewer alternatives in the template than
26308         dialects.
26309
26310 1999-07-17  Alexandre Oliva  <oliva@dcc.unicamp.br>
26311
26312         * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org.
26313         Removed paragraph about compression of files and size limitation,
26314         duplicated in the FAQ.  Use gcc-patches for posting patches.
26315         * gcc.c (main): Updated URL with bug reporting instructions to
26316         gcc.gnu.org.  Removed e-mail address.
26317         * system.h (abort): Likewise.
26318
26319 1999-07-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
26320
26321         * Makefile.in (stmp-multilib-sub): Make the files extracted
26322         from $(LIBGCC1) writable.
26323
26324 Sat Jul 17 14:25:46 1999  Nick Clifton  <nickc@cygnus.com>
26325
26326         * config/arm/aout.h: Reformat for improved readability.
26327
26328         * config/arm/arm.h: Reformat for improved readability.
26329         Replace uses of fprintf with asm_fprintf where appropriate.
26330         (ARM_DECLARE_FUNCTION_NAME): New macro:  Perform any generic ARM
26331         function declaration assembler actions.
26332         (NUM_INTS): New macro: Convert from bytes to words.
26333         (NUM_REGS): New macro: Compute number of registers required to
26334         hold a quanitity of tyep MODE.
26335         (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode
26336         types.
26337         (NUM_ARG_REGS): New macro: The number of argument registers
26338         available.
26339         (ARG_REGISTER): New macro: Compute the register number of the Nth
26340         argument register.
26341         (LAST_ARG_REGNUM): New macro: The number of the last argument
26342         register.
26343         (SP_REGNUM): New macro: Register number of the stack pointer.
26344         (FP_REGNUM): New macro: Register number of the frame pointer.
26345         (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS,
26346         FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change
26347         CUMULATIVE_ARGS so that it counts registers not bytes.
26348
26349         * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to
26350         TARGET_INTERWORK.
26351         Replace uses of fprintf with asm_fprintf where appropriate.
26352         (output_ascii_pseudo_op): Replace with version from thumb.c
26353
26354         * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF.
26355
26356         * config/arm/elf.h (CPP_PREDEFINES): Replace with
26357         SUBTARGET_CPP_SPEC.
26358         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
26359         (ASM_FILE_START): Emit ASM_APP_OFF.
26360
26361 Fri Jul 16 13:48:09 1999  Jeffrey A Law  (law@cygnus.com)
26362
26363         * pa.c (compute_frame_size): Round frame according to
26364         STACK_BOUNDARY rather than a hardwired value.
26365
26366         * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD.
26367
26368         * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead
26369         of "1".
26370         * configure: Rebuilt.
26371
26372         * configure.in (hppa*-*-linux*): New configuration.
26373         * configure: Rebuilt.
26374         * pa.h (MAX_OFILE_ALIGNMENT): Delete.
26375         * pa/som.h (MAX_OFILE_ALIGNMENT): Define.
26376         * pa/pa-linux.h: New file.
26377         * pa/t-linux: New file.
26378         * pa/xm-linux.h: New file.
26379
26380         * pa.c (hppa_legitimize_address): Change references from SImode to
26381         either Pmode or word_mode as appropriate.
26382         (emit_move_sequence, store_reg, load_reg): Likewise.
26383         (set_reg_plus_d, hppa_expand_prologue): Likewise.
26384         (output_mul_insn): Likewise.
26385         * pa.h (PROMOTE_MODE): Likewise.
26386         (INITIALZE_TRAMPOLINE): Likewise.
26387         (Pmode): Define to word_mode.
26388
26389         * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired
26390         value of 4.  Allocate 8 bytes for each FP register save.
26391         (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired
26392         value of 4.
26393         (hppa_expand_prologue): Likewise.
26394         * pa.h (PROMOTE_MODE): Likewise.
26395         (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise.
26396         (FUNCTION_ARG_BOUNDARY): Likewise.
26397
26398         * invoke.texi (HPPA Options): Remove -mspace/-mno-space.
26399
26400         * pa.c (out_of_line_prologue_epilogue): Delete.
26401         (override_options): Remove -mspace related code.
26402         (hppa_expand_prologue, hppa_expand_epilogue): Likewise.
26403         (compute_frame_size): Only allocate space for register that
26404         actually need to be saved.
26405         * pa.h (MASK_SPACE, TARGET_SPACE): Delete.
26406         (TARGET_SWITCHES): Remove -mspace, -mno-space
26407         * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm
26408         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.  Remove -mspace multilib.
26409         * pa/ee.asm, pa/ee_fp.asm: Delete.
26410
26411         * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define.
26412
26413         * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler
26414         directive in column zero.
26415
26416 Fri Jul 16 01:39:57 1999  Jeffrey A Law  (law@cygnus.com)
26417
26418         * m68k.c (output_function_prologue): Fix computation of save mask
26419         when generating PIC code.
26420
26421 Thu Jul 15 15:40:09 1999  Jim Wilson  <wilson@cygnus.com>
26422
26423         * tree.c (build_type_attribute_variant): Move current_obstack restore
26424         after build_qualified_type call.
26425
26426 1999-07-15  Mark Mitchell  <mark@codesourcery.com>
26427
26428         * configure.in: Use t-iris6, even with GNU LD.
26429         * config/mips/iris6gld.h: Fix typo in linker spec.
26430         * config/mips/t-iris6gld: Remove.
26431
26432 Thu Jul 15 15:15:43 1999  David Edelsohn  <edelsohn@gnu.org>
26433
26434         * rs6000.md (insv, extzv): Remove SImode dependence in named
26435         patterns.  Explicitly generate DImode RTL if PowerPC64 and
26436         operand is DImode.
26437         (insvdi): Reverse start and size in instruction template.
26438
26439 1999-07-12  Joseph S. Myers  <jsm28@cam.ac.uk>
26440
26441         * invoke.texi: Typo fixes.
26442
26443 Wed Jul 14 23:28:06 1999  Jeffrey A Law  (law@cygnus.com)
26444
26445         * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not
26446         handle at this time instead of silently generating incorrect code.
26447         (gen_imagpart): Likewise.
26448
26449         * reload.c (find_reloads): Emit a USE for a pseudo register without
26450         a hard register if we could not create an optional reload for the
26451         pseudo.
26452
26453 Wed Jul 14 23:45:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26454
26455         * c-typeck.c (output_init_element, process_init_element):
26456         When advancing constructor_unfilled_fields for a RECORD_TYPE,
26457         check for nameless bit fields.
26458
26459 Wed Jul 14 01:57:39 1999  Richard Henderson  <rth@cygnus.com>
26460
26461         * regclass.c (scan_one_insn): Notice subregs that change the
26462         size of their operand.
26463         (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE.
26464
26465 Wed Jul 14 01:41:42 1999  Jeffrey A Law  (law@cygnus.com)
26466
26467         * configure.in (alpha*-*-*): Include alpha/t-ieee.
26468         * configure: Rebuilt.
26469         * alpha/t-ieee: New file.
26470
26471 Tue Jul 13 10:45:58 1999  Jeffrey A Law  (law@cygnus.com)
26472
26473         * rs6000.c (find_addr_reg): Do not select r0 as an address
26474         register.
26475
26476 Tue Jul 13 00:46:18 1999  Philippe De Muyter  <phdm@macqel.be>
26477
26478         * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'.
26479
26480 Mon Jul 12 14:29:15 1999  Jeffrey A Law  (law@cygnus.com)
26481
26482         * rs6000.md (movsf): Do not force easy FP constants into memory.
26483
26484         * expr.c (expand_expr, case PLUS_EXPR): Pass constants through
26485         immed_double_const to ensure they are properly truncated then
26486         sign extended.
26487
26488 Mon Jul 12 10:40:01 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
26489
26490         * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block
26491         always unless NO_DEBUG is used.  Compile this code
26492         unconditionally.
26493         (replace_symbols_in_block): Compile it unconditionally.
26494
26495 Sun Jul 11 12:32:32 1999  Jeffrey A Law  (law@cygnus.com)
26496
26497         * configure.in (i?86-*-elf*): New target.
26498         * configure: Rebuilt.
26499         * i386/i386elf.h, i386/t-i386elf: New files.
26500
26501 Fri Jul  9 22:39:44 1999  Jason Merrill  <jason@yorick.cygnus.com>
26502
26503         * toplev.c (main): Don't complain about saying -gdwarf.
26504         (rest_of_compilation): Remove redundant code.
26505
26506 Fri Jul  9 19:08:55 1999  Jim Wilson  <wilson@cygnus.com>
26507
26508         * unroll.c (unroll_loops): Don't delete named CODE_LABELs.
26509
26510 Fri Jul  9 18:54:18 1999  Felix Lee  <flee@cygnus.com>
26511
26512         * config/i960/i960.c (ret_label): Change asm label from "LR:" to
26513         "Li960R:", to avoid name clash.
26514
26515 Fri Jul  9 10:48:28 1999  Bernd Schmidt  <bernds@cygnus.co.uk>
26516
26517         * loop.c (check_dbra_loop): When reversing a loop, delete all
26518         REG_EQUAL notes referencing the reversed biv except those which are
26519         for a giv based on it.
26520
26521 Fri Jul  9 03:51:52 1999  Jeffrey A Law  (law@cygnus.com)
26522
26523         * version.c: Drop "gcc-" prefix from version #.
26524
26525 Thu Jul  8 18:06:30 1999  Jason Merrill  <jason@yorick.cygnus.com>
26526
26527         * dwarf2out.c (dwarf2out_line): Emit a line number comment after
26528         the label if we're being verbose.
26529
26530 Thu Jul  8 14:18:46 1999  Richard Henderson  <rth@cygnus.com>
26531
26532         * m68k.c (output_function_prologue): Add pic register to mask
26533         if live and flag_pic.
26534         (output_function_epilogue): Likewise.
26535
26536 Thu Jul  8 12:55:12 1999  Jeffrey A Law  (law@cygnus.com)
26537
26538         * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler
26539         directives in column zero.
26540
26541         * pa/elf.h (ASM_FILE_START): Define.
26542         * pa/som.h (ASM_FILE_START): Include .level directives.
26543         * pa/hpux10.h (ASM_FILE_START): Delete.
26544         * pa/hpux11.h (ASM_FILE_START): Delete.
26545
26546         * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss.
26547
26548 Thu Jul  8 18:03:19 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26549
26550         * reload1.c (choose_reload_regs): Never call remove_adress_replacements
26551         when reload_out equals reload_in.
26552
26553 Thu Jul  8 16:50:14 1999  Nick Clifton  <nickc@cygnus.com>
26554
26555         * invoke.texi (Spec Files): New node: Describe the contents of
26556         spec files.
26557
26558 Thu Jul  8 10:28:25 1999  Craig Burley  <craig@jcb-sc.com>
26559
26560         * invoke.texi (DEC Alpha Options): Put @end table at
26561         beginning of line, to avoid confusing texi2html.
26562
26563 Thu Jul  8 09:22:06 1999  Nick Clifton  <nickc@cygnus.com>
26564
26565         * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo
26566         introduced in previous delta.
26567
26568 Wed Jul  7 02:00:04 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
26569
26570         * reload1.c (gen_reload): When synthesizing a 3 operand add
26571         sequence, improve test for when to reload OP1 into the reload
26572         register instead of OP0.
26573
26574 Wed Jul  7 01:38:03 1999  Jim Wilson  <wilson@cygnus.com>
26575
26576         * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
26577
26578 1999-07-07  Manfred Hollstein  <mhollstein@cygnus.com>
26579
26580         * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line
26581         string literal.
26582
26583 Wed Jul  7 01:16:43 1999  Richard Henderson  <rth@cygnus.com>
26584
26585         * ginclude/varargs.h (__builtin_va_alist_t): New typedef.
26586         (va_dcl): Use __builtin_va_alist_t.
26587
26588 Wed Jul  7 01:14:42 1999  Jason Merrill  <jason@yorick.cygnus.com>
26589
26590         * dwarf2out.c (gen_struct_or_union_type_die): Only remember types
26591         on the permanent_obstack.
26592         * dwarfout.c (output_type): Likewise.
26593
26594 Tue Jul  6 15:25:32 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26595
26596         * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26597         Merged from c-typeck.c and cp/typeck.c.
26598         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26599         Merged into c-common.
26600
26601 Tue Jul  6 13:06:01 1999  Dave Brolley  <brolley@cygnus.com>
26602
26603         * c-lex.c (errorcount): Declare it.
26604         (finish_parse): Update errorcount when using CPPLIB.
26605
26606 1999-07-06  Bruce Korb  <ddsinc09@ix.netcom.com>
26607
26608         * fixinc/inclhack.def(end_else_label): Double the backslash so
26609         sed gets a chance to see it.
26610         * fixinc/inclhack.sh: regen
26611         * fixinc/fixincl.x: regen
26612
26613 Fri Jul  2 18:49:51 1999  Nick Clifton  <nickc@cygnus.com>
26614
26615         Add framework to support armv5 architecture when it becomes
26616         available:
26617
26618         * config/arm/arm.c (FL_ARCH5): New processor capability flag.
26619         (arm_arch5): New variable.
26620         (all_architectures): Add armv5 line.
26621         * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if
26622         -march=armv5 is specified on the command line.
26623         (arm_arch5): Export this variable.
26624         * invoke.texi: Document new string accepted by -march= switch for
26625         ARM ports.
26626
26627         * config/arm/arm.h: Replace use of constant 12 as a register
26628         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
26629         * config/arm/arm.c: Replace use of constant 12 as a register
26630         number with IP_REGNUM.  Similarly 14 and LR_REGNUM.
26631
26632         * config/arm/elf.h: Tidy up.
26633         * config/arm/coff.h: Tidy up.
26634
26635 Thu Jul  1 19:08:13 1999  Mark P. Mitchell  <mark@codesourcery.com>
26636
26637         * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld.
26638         * gcc/config/mips/t-iris6gld: New file.
26639         * gcc/config/mips/iris6gld.h: Likewise.
26640
26641 Fri Jul  2 13:23:39 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26642
26643         * c-decl.c (widest_integer_literal_type_node,
26644         widest_unsigned_literal_type) : New.
26645         (init_decl_processing): Handle/use the two new types.
26646         * c-common.c (type_for_size,type_for_mode) : Same.
26647         * c-lex.c (yylex) : Same.
26648         * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) :
26649         Same.
26650         * c-tree.h (widest_integer_literal_type_node,
26651         widest_unsigned_literal_type) : New.
26652
26653 Fri Jul  2 03:05:44 1999  Jeffrey A Law  (law@cygnus.com)
26654
26655         * dwarfout.c (field_byte_offset): Correctly compute the object's
26656         byte offset for the first bit of a field which crosses an alignment
26657         boundary on a !BYTES_BIG_ENDIAN target.
26658
26659 Fri Jul  2 01:36:36 1999  Robert Lipe  <robertlipe@usa.net>
26660
26661         * fixinc.svr4: Fix <arpa/inet.h> by deleting protos for htons and
26662         ntohs.
26663
26664 Fri Jul  2 00:46:47 1999  Richard Henderson  <rth@cygnus.com>
26665                           Jeff Law <law@cygnus.com>
26666
26667         * ginclude/varargs.h (va_dcl): Use word_mode for type of
26668         __builtin_va_list.
26669
26670         * except.c: Include intl.h.
26671         (expand_eh_return): Set current_function_cannot_inline.
26672         (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label.
26673         * function.h (struct function): Add eh_return_stub_label.
26674         * flow.c (delete_unreachable_blocks): Don't merge across EH edges.
26675         * Makefile.in (except.o): Depend on intl.h.
26676
26677 Fri Jul  2 00:04:23 1999  David Edelsohn  <edelsohn@gnu.org>
26678
26679         * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the
26680         same as offsettable in cases 1 and 2.
26681
26682 Thu Jul  1 20:54:10 1999  Richard Henderson  <rth@cygnus.com>
26683
26684         * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8).
26685         (extlh, extwh): Likewise.
26686
26687 Thu Jul  1 11:05:25 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26688
26689         * c-lex.c (yylex): Improve 'integer constant out of range' messages.
26690
26691 Wed Jun 30 16:51:41 1999  Nick Clifton  <nickc@cygnus.com>
26692
26693         * configure.in: Add arm-pe and thumb-pe targets.
26694         * configure: Regenerate.
26695
26696         * thumb.c (arm_naked_function_p): New function: Determines if
26697         a function is naked (has no gcc generated prologue/epilogue).
26698         (is_called_in_ARM_mode): Return true if the func has the
26699         interfacearm attribute.
26700         (output_return): Do not generate a return for naked functions.
26701         (thumb_function_prologue): Do not generate a prologue for
26702         naked functions.
26703         (thumb_expand_prologue): Do not generate a prologue for naked
26704         functions.
26705         (thumb_expand_epilogue): Do not generate an epilogue for naked
26706         functions.
26707         (arm_valid_machine_decl_attribute): New function, copied from
26708         arm.c:  Permit naked and interfacearm attributes.
26709
26710         * config/arm/pe.c: New file: Support code for arm-pe target.
26711         * config/arm/pe.h: New file: Header file for arm-pe target.
26712         * config/arm/tpe.h: New file: Header file for thumb-pe target.
26713         * config/arm/t-thumb-pe: New file: Makefile fragment for
26714         thumb-pe target.
26715
26716 1999-07-01  Mark Kettenis  <kettenis@gnu.org>
26717
26718         * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if
26719         -fPIC or -fpic is specified.
26720
26721 Wed Jun 30 03:31:54 1999  Jeffrey A Law  (law@cygnus.com)
26722
26723         * expr.c (emit_block_move): Use copy_to_mode_reg for
26724         !TARGET_MEM_FUNCTIONS case too.
26725
26726         * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as
26727         appropriate.
26728         * configure: Rebuilt.
26729         (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default.
26730         * pa.h: Include dbxelf.h.  Delete various dbx/stabs related
26731         definitions made redundant by dbxelf.h inclusion.  Delete
26732         lots of definitions related to assembly output that are
26733         specific to the SOM object format.
26734         * pa.c (output_function_prologue): Do not emit the function's
26735         name for OBJ_ELF.
26736         * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining.
26737         * pa-pro.h: Deleted.
26738         * som.h: New file with SOM specific definitions.
26739         * elf.h: New file with ELF specific definitions.
26740
26741         * elfos.h (const_section): Output a tab before assembler directives.
26742         (ctors_section, dtors_section): Likewise.
26743         (ASM_OUTPUT_SECTION_NAME): Likewise.
26744
26745         * pa/pa1.h: Delete unused file.
26746
26747 Tue Jun 29 01:37:53 1999  Jeffrey A Law  (law@cygnus.com)
26748
26749         * configure.in (hppa*-hp-hpux11*): New configuration.
26750         * configure: Rebuilt.
26751         * pa/pa-hpux11.h: New file.
26752         * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp
26753         command line.
26754
26755         * mips.md (leasi, leadi): New patterns.
26756
26757         * expr.c (emit_block_move): Properly handle case where one of the
26758         block move arguments has a queued increment or decrement.
26759         (clear_storage): Similarly.  Fix formatting goof.
26760
26761 1999-06-28  "David O'Brien"  <obrien@NUXI.com>
26762
26763         * fixinc/inclhack.def(stdio_va_list): This patch Removes a
26764         semicolon from the BSD VA_LIST replacement expression.
26765
26766         * fixinc/inclhack.sh: regen
26767         * fixinc/fixincl.x: regen
26768
26769         * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines
26770         now use the fixincl program.
26771
26772 Mon Jun 28 05:28:12 1999  Jeffrey A Law  (law@cygnus.com)
26773
26774         * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA
26775         case.  Also make the PIC register call_used.
26776
26777         * m68k.h (FINALIZE_PIC): Delete.
26778         * m68k.c (finalize_pic): Delete.
26779
26780 Mon Jun 28 05:16:35 1999  Richard Henderson  <rth@cygnus.com>
26781
26782         * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles
26783         to memory.
26784
26785 Mon Jun 28 04:07:27 1999  David Edelsohn  <edelsohn@gnu.org>
26786
26787         * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note.
26788
26789 Sun Jun 27 02:39:08 1999  Richard Henderson  <rth@cygnus.com>
26790
26791         * jump.c (jump_optimize_1): Validate the cmov copy to a temporary.
26792
26793 Sat Jun 26 17:18:18 1999  David Edelsohn  <edelsohn@gnu.org>
26794
26795         * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output.
26796
26797 Fri Jun 25 11:33:24 1999  Richard Henderson  <rth@cygnus.com>
26798
26799         * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4.
26800
26801 Fri Jun 25 13:41:25 1999  David Edelsohn  <edelsohn@gnu.org>
26802
26803         * rs6000.c (output_toc): Always use hex values for floating-point
26804         constants.  Store single-precision values in upper-half of TOC
26805         entry in 64-bit mode.
26806         * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64
26807         to final constraints.
26808         (fix_truncdfsi2 splitter): Change pattern matching fctiwz.
26809         (fctiwz): Improve accuracy of RTL for pattern.
26810
26811 Fri Jun 25 11:26:38 1999  Gavin Romig-Koch  <gavin@cygnus.com>
26812
26813         * expr.c (expand_expr): Allow RTL_EXPR's through the
26814         MAX_INTEGER_COMPUTATION_MODE checks.
26815
26816 Fri Jun 25 06:06:37 1999  Richard Henderson  <rth@cygnus.com>
26817
26818         * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define
26819         such that MASK_SUPPORT_ARCH is not negative.
26820
26821 Fri Jun 25 05:35:44 1999  Jeffrey A Law  (law@cygnus.com)
26822
26823         * loop.c (verify_dominator): Properly handle ADDR_VEC and
26824         ADDR_DIFF_VEC insns that appear inside loops.
26825
26826 Thu Jun 24 22:54:05 1999  David Edelsohn  <edelsohn@gnu.org>
26827                           Jeff Law <law@cygnus.com>
26828
26829         * rs6000.md (movdf_hardfloat32): Revert previous patch.
26830         Handle LO_SUM the same as offsettable in cases 1 and 2.
26831         * rs6000.c (find_addr_reg): Revert previous patch.
26832
26833 Thu Jun 24 22:43:12 1999  Philippe De Muyter  <phdm@macqel.be>
26834
26835         * system.h (strstr): New external function declaration.
26836         * acconfig.h (NEED_DECLARATION_STRSTR): New define slot.
26837         * configure.in (GCC_NEED_DECLARATIONS): Check for strstr.
26838         * config.in, configure: Rebuilt.
26839
26840 1999-06-24  Tom Tromey  <tromey@cygnus.com>
26841
26842         * gcc.c (main): Read user-specified specs files after computing
26843         additional startfile_prefixes.
26844
26845 Thu Jun 24 15:00:47 1999  Mark Mitchell  <mark@codesourcery.com>
26846
26847         Revert these two patches:
26848
26849         Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26850         * loop.c (strength_reduce): When doing biv->giv conversion, update
26851         reg note of NEXT->insn.
26852
26853         Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26854         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
26855         reg_biv_class.
26856         (recombine_givs): Set ix field after sorting.
26857
26858 Wed Jun 23 21:26:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26859
26860         * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p
26861         for the parts of an UNSPEC / UNSPEC_VOLATILE.
26862
26863 1999-06-23  Bruce Korb  <ddsinc09@ix.netcom.com>
26864
26865         *fixinc/inclhack.def:  Add fix development commentary
26866         (read_ret_type): reactivate and add selection clause
26867         (zzz_*): tweak output file name to match what is used in hackshell.tpl
26868         *fixinc/{fixincl.x|inclhack.sh}: regen
26869
26870 Wed Jun 23 00:48:21 1999  Jason Merrill  <jason@yorick.cygnus.com>
26871
26872         * expr.c (expand_expr): STRIP_NOPS before checking against
26873         MAX_INTEGER_COMPUTATION_MODE
26874         (check_max_integer_computation_mode): Likewise.
26875
26876 Tue Jun 22 20:23:43 1999  Jim Wilson  <wilson@cygnus.com>
26877
26878         * md.texi (smul@var{m}3_highpart): Add missing 's' prefix.
26879
26880 1999-06-22  Jim Wilson  <wilson@cygnus.com>
26881
26882         * expr.c (store_expr): When target is a promoted subreg, return a
26883         promoted subreg as a result.
26884
26885 Tue Jun 22 17:14:58 1999  Michael Meissner  <meissner@cygnus.com>
26886
26887         * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU
26888         coding standards.
26889         (dwarf2out_define): Mark unused parameters appropriately.
26890         (gen_unspecified_parameters_die): Ditto.
26891         (gen_subprogram_die): Fix signed/unsigned warnings.
26892         (gen_variable_die): Ditto.
26893
26894 1999-06-22  Bruce Korb <ddsinc09@ix.netcom.com>
26895
26896         * fixinc/inclhack.def(end_else_label): combined else_label
26897         and endif_label and fixed the sed expression.
26898         *fixinc/{fixincl.x|inclhack.sh}: regen
26899
26900 Tue Jun 22 01:58:18 1999  Jeffrey A Law  (law@cygnus.com)
26901
26902         * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting
26903         'x' when handling non-offsettable addresses
26904
26905 Tue Jun 22 00:20:05 1999  Richard Earnshaw (rearnsha@arm.com)
26906
26907         * final.c (shorten_branches): Don't try to split an insn that has
26908         been deleted.
26909
26910 Mon Jun 21 12:47:39 1999  Mark Mitchell  <mark@codesourcery.com>
26911
26912         * config/mips/mips.c (symbolic_expression_p): New function.
26913         (mips_select_rtx_section): Put symbolic expressions in the
26914         data section, not the read-only data section.
26915
26916 Mon Jun 21 22:13:06 1999  Jeffrey A Law  (law@cygnus.com)
26917
26918         * rs6000.md (find_addr_reg): Handle LO_SUM addresses.
26919
26920 Mon Jun 21 20:10:42 1999  Richard Henderson  <rth@cygnus.com>
26921
26922         * collect2.c (main): Log frame table count.
26923         (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal.
26924         (scan_prog_file) [COFF]: Handle frame tables.
26925
26926         * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define.
26927         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define.
26928         * alpha/elf.h: Undef them again.
26929         * alpha/vms.h: Remove their definitions.
26930
26931 Tue Jun 22 03:17:53 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
26932
26933         * sh.c (machine_dependent_reorg): When fixing up fp pcloads,
26934         remove the clobber of r0 and change the REG_UNUSED note to
26935         REG_INC.
26936
26937 1999-06-21  Jakub Jelinek  <jj@ultra.linux.cz>
26938
26939         * real.c (ereal_from_double): Fix for 64-bit big endian hosts.
26940         * emit-rtl.c (gen_lowpart_common): Add case for hosts where double
26941         fits in HOST_WIDE_INT and one uses union to access a long constant
26942         as double.
26943
26944 Mon Jun 21 17:18:25 1999  Richard Henderson  <rth@cygnus.com>
26945
26946         * sparc.c (sparc_override_options): Don't allow profiling for
26947         code models other than medlow.
26948         (sparc_function_profiler): New function from old FUNCTION_PROFILER
26949         macro.  Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION.
26950         (sparc_function_block_profiler): Likewise.  Use user_label_prefix.
26951         (sparc_block_profiler): Likewise.
26952         (sparc_function_block_profiler_exit): Likewise.
26953         * sparc.h (FUNCTION_PROFILER): Call new sparc.c function.
26954         (FUNCTION_BLOCK_PROFILER): Likewise.
26955         (BLOCK_PROFILER): Likewise.
26956         (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
26957         (MCOUNT_FUNCTION): New.
26958         * sparc/pbd.h (FUNCTION_PROFILER): Delete.
26959         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete.
26960         * sparc/sun4o3.h (FUNCTION_PROFILER): Delete.
26961         (MCOUNT_FUNCTION): New.
26962         * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete.
26963         (BLOCK_PROFILER): Delete.
26964         (MCOUNT_FUNCTION): New.
26965
26966 Mon Jun 21 14:11:29 1999  David Edelsohn  <edelsohn@gnu.org>
26967
26968         * rs6000.md (movdf_hardfloat32): Fix typo in case 2.
26969
26970 Mon Jun 21 12:27:17 1999  Vladimir Makarov  <vmakarov@tofu.to.cygnus.com>
26971
26972         * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
26973         Add the macros.
26974
26975         * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
26976         Ditto.
26977
26978         * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
26979         Ditto.
26980
26981         * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
26982         Ditto.
26983
26984 Mon Jun 21 14:58:42 1999  Nick Clifton  <nickc@cygnus.com>
26985
26986         * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu
26987         types.
26988
26989 Mon Jun 21 06:22:21 1999  Mark Elbrecht <snowball3@bigfoot.com>
26990
26991         * i386/djgpp.h (LIB_SPEC): New.
26992         (STARTFILE_SPEC): New.
26993
26994         * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete.
26995
26996 Mon Jun 21 06:19:33 1999  Philippe De Muyter  <phdm@macqel.be>
26997
26998         * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in
26999         compiler flags.
27000
27001         * system.h (WSTOPSIG): New macro.
27002
27003 Mon Jun 21 05:33:15 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27004
27005         * c-pragma.c (push_alignment): Don't ignore alignments greater than
27006         4 bytes.
27007         (insert_pack_attributes): Take into account member natural
27008         alignment.
27009
27010         * i386/winnt.c (exports_head): New static variable.
27011         (i386_pe_record_exported_symbol): New function.
27012         (i386_pe_asm_file_end): Use.
27013         * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported
27014         symbols to be emitted at end of assembly.
27015         (ASM_DECLARE_OBJECT_NAME): Likewise.
27016         (ASM_DECLARE_FUNCTION_NAME): Likewise.
27017
27018         * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and
27019         -iwithprefix.
27020
27021 Mon Jun 21 04:44:31 1999  Jeffrey A Law  (law@cygnus.com)
27022
27023         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced
27024         in last change.
27025
27026 Sun Jun 20 17:27:20 1999  Richard Henderson  <rth@cygnus.com>
27027
27028         * haifa-sched.c (sched_analyze_1): Use free_list instead of
27029         zapping reg_last_uses directly.
27030         (sched_analyze_2, sched_analyze_insn): Likewise.
27031         (sched_analyze): Likewise.  Don't clear reg_last_uses on calls.
27032
27033 Sun Jun 20 16:57:29 1999  David Edelsohn  <edelsohn@gnu.org>
27034
27035         * rs6000.md (movdf_hardfloat32): Use worst case insn length
27036         attributes for cases 1 and 2.
27037
27038 Sat Jun 19 22:52:55 1999  Richard Henderson  <rth@cygnus.com>
27039
27040         * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered
27041         instead of set.
27042
27043 Sat Jun 19 05:40:07 1999  Philip Blundell <pb@nexus.co.uk>
27044
27045         * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN.
27046
27047 Sat Jun 19 05:25:05 1999  Richard Earnshaw (rearnsha@arm.com)
27048
27049         * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use
27050         PIC_OFFSET_TABLE_REGNUM for general alloaction.
27051         (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register
27052         must be stacked if it is used for PIC accesses.
27053         * arm.c (use_return_insn): Handle PIC register specially.
27054         (output_return_instruction): Likewise.
27055         (output_func_{prologue,epilogue}): Likewise.
27056         (output_expand_prologue): Likewise.
27057
27058         * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf.
27059         (*strsi_predec): Renamed from *strqi_predec.
27060         (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc.
27061         (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec.
27062
27063         * arm.c (arm_override_options): Remove warning about PIC code
27064         not being supported.
27065
27066 Fri Jun 18 23:47:06 1999  David Edelsohn  <edelsohn@gnu.org>
27067
27068         * rs6000.c (find_addr_reg): New function.
27069         * rs6000.h (find_addr_reg): Declare.
27070         (offsettable_addr_operand): Delete.
27071         * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads
27072         from and stores to GPRs.
27073
27074 Fri Jun 18 15:44:18 1999  Richard Henderson  <rth@cygnus.com>
27075
27076         * alpha.c (alpha_expand_block_move): Use get_insns rather than
27077         gen_sequence as argument to emit_no_conflict_block.
27078
27079 Fri Jun 18 07:02 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27080
27081         * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX
27082         * fixinc/inclhack.def(dgux_int_varargs): script must end with \n
27083         *fixinc/fixincl.x: regen
27084         *fixinc/inclhack.sh: regen
27085
27086 Thu Jun 17 15:06:10 PDT 1999 Don Lindsay  <dlindsay@cygnus.com>
27087
27088         * added support for -mpcrel (PC relative addressing for m68k)
27089         based on code done by Michael Tiemann  <tiemann@axon.cygnus.com>.
27090         * invoke.texi (m68000 options): Add documentation for -mpcrel flag.
27091         * m68k.c (print_operand_address): Handle 32-bit PIC case.
27092         (comments for general_src_operand): Add some explanation
27093         about EXTRA_CONSTRAINTS.
27094         (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel.
27095         * m68kelf.h (OVERRIDE_OPTIONS): Ditto.
27096         (LEGITIMATE_PIC_OPERAND_P): Fix typo.
27097         (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case.
27098         * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o.
27099         (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro.
27100         (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic
27101         if not already set.
27102         (OVERRIDE_OPTIONS): Merge in changes from m68k.h.
27103         * m68k.h (TARGET_PCREL): New target flag.
27104         (TARGET_SWITCHES): Add "pcrel" as a recognized switch.
27105         (OVERRIDE_OPTIONS): Add checks for -mpcrel.
27106         (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that
27107         contains a SYMBOL_REF.  Relax this constraint during reload, since
27108         we want to use the predicates, not reload's built-in concept of a
27109         valid memory address, to control what insns need reloading.
27110         (EXTRA_CONSTRAINT): Define constraints to accept pc-relative
27111         operands (essentially 'g', 'm', and 's' under normal circumstances).
27112         * m68k.c (print_operand): Cause printing of pc-relative addresses
27113         to include pc register.
27114         (print_operand_address): Ditto.
27115         (general_src_operand): Accept operands that are not only
27116         general_operands, but are also valid when used as a pc-relative
27117         source.
27118         (nonimmediate_src_operand): Similar, for nonimmediate_operands.
27119         (memory_src_operand): Similar, for memory_operands.
27120         (pcrel_address): New predicate to accept the special case of a
27121         pc-relative address.
27122         * m68k.md (many patterns): Rewrite common SImode, HImode, and
27123         QImode insns to accept *_src_operand instead of *_operand where
27124         pc-relative operands can fit.  For example, a pc-relative operand
27125         can be used as a memory source operand for addsi3, but not as a
27126         memory destination.
27127         * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h.
27128
27129 Fri Jun 18 09:11:07 1999  Nick Clifton  <nickc@cygnus.com>
27130
27131         * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe
27132         .thumb_set pseudo op to mark aliases of thumb functions.
27133
27134 Wed Jun 16 18:19:13 1999  Nick Clifton  <nickc@cygnus.com>
27135
27136         * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in
27137         preference to ASM_OUTPUT_DEF, if it is defined.
27138
27139         * tm.texi: Document new, optional target macro
27140         ASM_OUTPUT_DEF_FROM_DECLS.
27141
27142 Thu Jun 17 15:07 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27143
27144         * fixincludes: ISCNTL patch
27145         * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL().
27146         (dgux_int_varargs): new for DG/UX
27147         * fixinc/{fixincl.x,inclhack.sh}: Regenerated.
27148
27149 Thu Jun 17 21:34:24 1999  Jeff Law <law@cygnus.com>
27150
27151         * invoke.texi (ia32 options): Fix typo.
27152
27153 Thu Jun 17 21:34:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27154
27155         * loop.c (strength_reduce): When doing biv->giv conversion, update
27156         reg note of NEXT->insn.
27157
27158 Thu Jun 17 14:25:08 1999  Jeffrey A Law  (law@cygnus.com)
27159
27160         * loop.c (move_movables): Note issues with replacing REGs with
27161         SUBREGs.
27162         * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly.
27163
27164 Thu Jun 17 13:28:30 1999  David O'Brien <obrien@FreeBSD.org>
27165
27166         * i386/freebsd-elf.h (LINK_SPEC): Fix typo.
27167
27168         * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and
27169         the reference to `mcount' was not correct for the ELF on FreeBSD.
27170
27171 Thu Jun 17 17:22:07 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27172
27173         * loop.c (strength_reduce): When doing biv->giv conversion, fix up
27174         reg_biv_class.
27175
27176         (recombine_givs): Set ix field after sorting.
27177
27178 Thu Jun 17 02:54:30 1999  Jeffrey A Law  (law@cygnus.com)
27179
27180         * emit-rtl.c (operand_subword): Tighten checks for when it is safe
27181         to safe to extract a subword out of a REG.
27182
27183 Thu Jun 17 01:45:24 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27184
27185         * sh.md (mulsi3): Don't add a no-op move at the end.
27186
27187 Wed Jun 16 20:29:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27188
27189         * cse.c (cse_insn): Don't put hard register source into tables for
27190         the last insn of a libcall.
27191
27192 Wed Jun 16 19:44:33 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27193
27194         * loop.c (strength_reduce): Insert sets of derived givs at every
27195         biv increment, even if it's the only one.
27196
27197 Wed Jun 16 10:33:02 1999  Jason Merrill  <jason@yorick.cygnus.com>
27198
27199         * dwarfout.c (add_incomplete_type): New fn.
27200         (output_type): Call it.
27201         (retry_incomplete_types): New fn.
27202         (dwarfout_finish): Call it.
27203
27204         From Eric Raskin <ehr@listworks.com>:
27205         (output_type): Output types for bases.
27206
27207 Tue Jun 15 12:51:23 1999  Alexandre Oliva  <oliva@dcc.unicamp.br>
27208
27209         * mips.c (mips_output_conditional_branch): Add `break'
27210         between `default' label and `close braces'.
27211
27212 Tue Jun 15 01:55:20 1999  David O'Brien <obrien@FreeBSD.org>
27213
27214         * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library
27215         specifications and make it realistic.
27216         (LIB_SPEC): Likewise.
27217
27218 Mon Jun 14 15:38:43 1999  Jim Wilson  <wilson@cygnus.com>
27219
27220         * config/mips/mips.c (mips_secondary_reload_class): Check for
27221         (PLUS (SP) (REG)) and return appropriate register class.
27222         * config/mips/mips.md (reload_insi): Delete predicate for operand 1.
27223         Handle (PLUS (SP) (REG)).
27224         (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn.
27225         (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead
27226         of emit_insn for tablejump.
27227
27228 Mon Jun 14 17:26:40 1999  David Edelsohn  <edelsohn@gnu.org>
27229
27230         * rs6000.c (output_prolog): RS6000_CALL_GLUE must be
27231         asm_fprintf format string by itself.
27232         (output_function_profiler): Likewise.
27233
27234 Mon Jun 14 12:57:38 1999  David Mosberger  <davidm@hpl.hp.com>
27235
27236         * combine.c (simplify_logical, case AND): Only call
27237         simplify_and_const_int if the mode is no wider than HOST_WIDE_INT
27238         or the constant is positive.
27239
27240 Mon Jun 14 11:43:41 1999  Nick Clifton  <nickc@cygnus.com>
27241
27242         * configure.in: Fix typo in rs6000-ibm-aix4 case.
27243         * configure: Regenerate.
27244
27245 Mon Jun 14 03:55:40 1999  Jeffrey A Law  (law@cygnus.com)
27246
27247         * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not
27248         require a sub-version #.
27249         * configure: Rebuilt.
27250
27251 1999-06-14  Robert Lipe  (robertlipe@usa.net)
27252
27253         * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition.
27254
27255 Mon Jun 14 10:30:52 BST 1999  Nathan Sidwell  <nathan@acm.org>
27256
27257         * c-typeck.c (process_init_element): Detect excess elements in
27258         char array initializer.
27259
27260 1999-06-14  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
27261
27262         * gcc.texi: Mention gcc 2.96 instead of egcs 1.00.
27263
27264 Sat Jun 12 22:29:48 EDT 1999  Jerry Quinn <jquinn@nortelnetworks.com>
27265
27266         * invoke.texi (Option Summary): Add -fpermissive flag.
27267
27268 Sat Jun 12 03:40:42 1999  Jeffrey A Law  (law@cygnus.com)
27269
27270         * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands
27271         that require PIC code sequences.
27272
27273 Wed Jun  9 16:29:01 1999  Nick Clifton  <nickc@cygnus.com>
27274
27275         * configure.in: Add new target: thumb-elf.
27276         * configure: Regenerate.
27277         * config/arm/t-thumb-elf: New file: Makefile fragment for
27278         thumb-elf build.
27279         * config/arm/telf.h: New file: Header file for thumb-elf
27280         build.
27281
27282 Fri Jun 11 03:17:51 1999  Jeffrey A Law  (law@cygnus.com)
27283
27284         * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument.
27285         * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide
27286         initializers is some circumstances.
27287
27288         * fixinc/inclhack.def (endif_label): Add additional selector for
27289         more bogus stuff after #endif statements.
27290         * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt.
27291
27292 Thu Jun 10 20:44:36 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27293
27294         * i386/cygwin.h (SET_ASM_OP): Define.
27295
27296 Thu Jun 10 20:37:57 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27297
27298         * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns.
27299
27300 Thu Jun 10 19:23:00 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27301
27302         * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the
27303         latter.
27304
27305         * sh.md (ic_invalidate_line_i): Remove second alternative.
27306
27307 Thu Jun 10 06:55 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27308
27309         *fixinc/inclhack.def(sun_auth_proto): We do not know how to
27310         test for the presence of valid prototypes.  Delete bypass expr.
27311         (ioctl_fix_ctrl): Correct the selection expression.
27312         (no_double_slash): Correct quoting rules
27313         *fixinc/fixincl.x: regen
27314         *fixinc/inclhack.sh: regen
27315
27316 Thu Jun 10 15:08:15 1999  Nick Clifton  <nickc@cygnus.com>
27317
27318         * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t.
27319
27320 Wed Jun  9 15:57:57 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27321
27322         * rs6000.md (movsi_got_internal_mem): Delete.
27323         * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM.
27324         (GOT_TOC_REGNUM): Delete.
27325         (PIC_OFFSET_TABLE_REGNUM): Define.
27326         (FINALIZE_PIC): Disable.
27327         * rs6000.c (rs6000_got_register): New code for fixed pic register.
27328         (rs6000_replace_regno): Delete.
27329         (rs6000_finalize_pic): Likewise.
27330         (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM.
27331
27332 Wed Jun  9 19:44:26 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27333
27334         * loop.c (loop_insn_first_p): Don't compare LUIDs when P
27335         is a note; use <= for the compare; advance P while it is
27336         a NOTE.
27337
27338 Wed Jun  9 13:12:24 1999  Jeffrey A Law  (law@cygnus.com)
27339
27340         * fixinc/inclhack.def (no_double_slash): Fix quoting for test.
27341         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt.
27342
27343         * varasm.c (remove_from_pending_weak_list): Verify t->name
27344         is non-NULL before passing it to strcmp.
27345
27346 Wed Jun  9 06:50 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27347
27348         *fixinc/inclhack.def(sun_auth_proto): bypass the patch if
27349         the typed arguments are not part of a comment
27350         (ioctl_fix_ctrl): Added a purpose comment
27351         *fixinc/fixincl.x: regenerate
27352         *fixinc/inclhack.sh: regenerate
27353
27354 Wed Jun  9 22:57:02 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27355
27356         * invoke.texi: Add C4x invocation docs.
27357
27358 Wed Jun  9 22:34:38 1999  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
27359
27360         * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS):
27361         Define new macros.
27362         * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use
27363         TARGET_EXPOSE_LDP.
27364         (c4x_legitimize_reload_address): New function.
27365         * config/c4x/c4x.md: Update docs.
27366
27367 Wed Jun  9 04:14:48 1999  Jeffrey A Law  (law@cygnus.com)
27368
27369         * fixincludes: Avoid removing '.'.
27370         * fixinc/fixinc.svr4: Likewise.
27371         * fixinc/fixinc.winnt: Likewise.
27372         * fixinc/inclhack.tpl: Likewise.
27373         * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt.
27374
27375 1999-06-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27376
27377         * fixinc/inclhack.def (sun_catmacro): Escape parens in the select
27378         pattern.
27379         * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt.
27380
27381 Wed Jun  9 03:10:34 1999  Mumit Khan  <khan@xraylith.wisc.edu>
27382
27383         * c-pragma.c (handle_pragma_token): Handle `#pragma pack()'
27384         correctly.
27385
27386 Tue Jun  8 13:06:15 1999  Jim Wilson  <wilson@cygnus.com>
27387
27388         * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000.
27389         * configure: Regenerate.
27390
27391 Tue Jun  8 05:47:48 1999  Richard Earnshaw (rearnsha@arm.com)
27392
27393         * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute
27394         values.
27395
27396 Mon Jun  7 22:30:37 1999  Jeffrey A Law  (law@cygnus.com)
27397
27398         * fixinc/inclhack.def (avoid_bool): Also catch
27399         "typedef [unsigned] int bool".
27400         * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
27401
27402         * m68k/x-hp3bsd44: Delete obsolete and incorrect file.
27403         * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44.
27404         * configure: Rebuilt.
27405
27406 Mon Jun  7 22:05:03 1999  Mark Kettenis  <kettenis@gnu.org>
27407
27408         * config/i386/gnu.h: Include <gnu.h> right after <i386/linux.h>,
27409         such that we can override its definitions if necessary.
27410         (CPP_SPEC): New define.  Support processor specific predefines via
27411         %(cpp_cpu).
27412         (CC1_SPEC): New define.  Support processor specific compiler
27413         options via %(cc1_cpu).
27414         (STARTFILE_SPEC): New define.  Use crt0.o instead of crt1.o for
27415         -static.
27416
27417 1999-06-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27418
27419         * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace
27420         between sed's -e flag, and the open-quote following it.
27421         * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt.
27422
27423 Mon Jun  7 20:34:20 1999  Robert Lipe <robertlipe@usa.net>
27424                           Jeffrey A Law  (law@cygnus.com)
27425
27426         * varasm.c (assemble_start_function): Remove the function
27427         from the pending weak decls list when we define a function.
27428         (assemble_variable): Similarly for variables.
27429         (weak_finish): Ignore items on the list with a NULL name.
27430         (remove_from_ending_weak_list); New function to "remove" an item
27431         from the pending weak declarations list.
27432
27433 Mon Jun  7 19:27:07 1999  Jerry Quinn <jquinn@nortelnetworks.com>
27434
27435         * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns.
27436
27437 Mon Jun  7 14:07:39 1999  Dave Brolley  <brolley@cygnus.com>
27438
27439         * c-lex.c (GETC): Redefine to call getch.
27440         (UNGETC): Redefine to call put_back.
27441         (putback_buffer): New structure type.
27442         (putback): New static structure.
27443         (getch): New function.
27444         (put_back): New function.
27445         (yylex): Replace unused bytes from bad multibyte character.
27446
27447 Mon Jun  7 13:33:39 1999  Dave Brolley  <brolley@cygnus.com>
27448
27449         * cpplib.c (do_define): Cast `alloca' return value.
27450         (do_include, do_undef, do_pragma): Likewise.
27451         * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return
27452         values.
27453         * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values.
27454         * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value.
27455
27456 Sun Jun  6 11:58:34 1999  Jakub Jelinek  <jj@ultra.linux.cz>
27457
27458         * sparc.md (abstf2): This should be an expand.
27459         (split after abstf2_notv9): Fix mode.
27460         (abstf2_hq_v9): New pattern.
27461         (abstf2_v9): Only use when no hard quad.
27462         (absdf2_v9): Fix if target is not the same as source.
27463         (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2):
27464         Add correct output constraints.
27465
27466 Sat Jun  5 17:04:16 1999  Craig Burley  <craig@jcb-sc.com>
27467
27468         From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100:
27469         * invoke.texi: Clarify text vis-a-vis Intel CPUs.
27470
27471 Sat Jun  5 12:11:24 1999  Mark Mitchell  <mark@codesourcery.com>
27472
27473         * mips.h (mips_output_conditional_branch): New function.
27474         (mips_adjust_insn_length): Likewise.
27475         (ASSEMBLER_SCRATCH_REGNUM): New macro.
27476         (ADJUST_INSN_LENGTH): Likewise.
27477         * mips.c (print_operand): Add `F' and `W' for floating-point
27478         comparison opcodes.
27479         (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths
27480         are now in bytes.
27481         (mips_adjust_insn_length): New function.
27482         (mips_output_conditional_branch): New function.
27483         * mips.md (length): Adjust attribute definition to handle
27484         conditional branches.  Change lengths to bytes, rather than
27485         instructions throughout.  Remove length attribute from
27486         instructions whose length is four bytes, and rely on the default
27487         instead.
27488         (dslot): Fix typo in comment.
27489         Reword conditional branch patterns to use
27490         mips_output_conditional_branch.
27491
27492 Fri Jun  4 13:30:27 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
27493
27494         * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads.
27495         (LIB_SPEC): Likewise.
27496         Link with -lprof1_r for -g/-pg.
27497
27498 1999-06-04  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
27499
27500         * loop.c (check_dbra_loop): Fix change of Jan 19.
27501
27502 Fri Jun  4 00:12:40 1999  Marc Espie <espie@cvs.openbsd.org>
27503
27504         * freebsd-elf.h (SWITCH_TAKES_ARG):  Redefine, not define.
27505         (STARTFILE_SPEC):  Define, override the svr4.h version.
27506         (ENDFILE_SPEC):  Likewise.
27507
27508 Thu Jun  3 23:58:55 1999  Jeffrey A Law  (law@cygnus.com)
27509
27510         * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h
27511         * fixinc/fixincl.x: Regenerated.
27512         * fixinc/inclhack.sh: Regenerated.
27513
27514 Fri Jun  4 05:42:23 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27515
27516         * sh.c (barrier_align): Don't return early for normal branch/barrier
27517         when optimizing for SH2.
27518
27519 Thu Jun  3 22:27:50 1999  Robert Lipe  <robertlipe@usa.net>
27520
27521         * i386/udk.h (LINK_SPEC): Correct linker search path for
27522         system libraries.
27523
27524 Fri Jun  4 03:20:40 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27525
27526         * sh.c (fixup_addr_diff_vecs): Emit braf reference label.
27527         (braf_label_ref_operand): Delete.
27528         * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand.
27529         * sh.md (casesi_jump_2): Operand1 is now the inside of a
27530         label_ref, and has no predicate.
27531         The patten has a predicate to guard against invalid substitutions.
27532         (dummy_jump): Delete.
27533         (casesi): Update use of casesi_jump_2.
27534
27535 Thu Jun 3 07:48 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27536
27537         *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression
27538         *fixinc/fixincl.x: regenerate
27539         *fixinc/inclhack.sh: regenerate
27540
27541 Thu Jun  3 02:15:07 1999  Jason Merrill  <jason@yorick.cygnus.com>
27542
27543         * dwarf2out.c (add_incomplete_type): New fn.
27544         (gen_struct_or_union_type_die): Call it.
27545         (retry_incomplete_types): New fn.
27546         (dwarf2out_finish): Call it.
27547
27548 Thu Jun  3 01:19:03 1999  Jeffrey A Law  (law@cygnus.com)
27549
27550         * gcse.c (insert_insn_end_bb): Correct placement of insns when the
27551         current block starts with a CODE_LABEL and ends with a CALL and
27552         we can not find all the argument setup instructions for the CALL.
27553
27554 Wed Jun  2 15:44:15 1999  Mark Mitchell <mark@codesourcery.com>
27555
27556         Revert this change:
27557         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
27558         something is a candidate for optimize_bit_field_compare.
27559
27560 Wed Jun  2 21:53:05 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27561
27562         * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT.
27563
27564 Wed Jun  2 12:25:55 1999  Richard Henderson  <rth@cygnus.com>
27565
27566         * alpha.c (override_options): Thinko in last patch.
27567
27568         * alpha/osf.h (CPP_SUBTARGET_SPEC): Define.
27569         (LIB_SPEC): Recognize -pthread.
27570
27571 Wed Jun  2 08:42:55 1999  Nick Clifton  <nickc@cygnus.com>
27572
27573         * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronise with
27574         definition in config/arm/coff.h
27575         * config/arm/coff.h: Add comment about USER_LABEL_PREFIX.
27576
27577 Wed Jun  2 07:07 1999 Bruce Korb <ddsinc09@ix.netcom.com>
27578
27579         * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark
27580         fixes that need "file=xxx\n" prepended before invocation
27581         (start_fixer - new): starting the fixer process is complex enough
27582         to warrent its own routine.  It prepends the "file=xxx\n" stuff.
27583         (process): uses the new routine; omit usage of putenv()
27584         * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT
27585         * fixinc/fixincl.x: regenerate
27586
27587 Wed Jun  2 02:29:07 1999  Jeffrey A Law  (law@cygnus.com)
27588
27589         * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc)
27590         and version #s (1.1 -> 2.96) as needed.
27591         * README.g77: Kill way out of date file in the toplevel directory.
27592
27593 Wed Jun  2 00:52:34 1999  David O'Brien <obrien@FreeBSD.org>
27594
27595         * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h,
27596         i386/freebsd-elf.h no longer requires it.  Instead include svr4.h.
27597         * configure: Rebuilt.
27598         * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define.
27599         (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise.
27600         (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise.
27601         (SWITCH_TAKES_ARG): Likewise.
27602         * i386/freebsd.h: Remove FREEBSD_NATIVE support.
27603         * config/t-freebsd: Moved from config/i386/ so it can used for all
27604         FreeBSD targets.
27605
27606 Mon May 31 02:22:55 1999  Philippe De Muyter  <phdm@macqel.be>
27607
27608         * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o.
27609
27610 Wed Jun  2 00:08:34 1999  Robert Lipe  <robertlipe@usa.net>
27611
27612         * configure.in (i[34567]86-*-udk*): Install headers with cpio.
27613         * configure: Rebuilt.
27614
27615 Tue Jun  1 19:06:22 1999  David Edelsohn  <edelsohn@gnu.org>
27616
27617         * rs6000/aix41.h (RS6000_CALL_GLUE): Define.
27618         * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise.
27619         * rs6000/rs6000.c (rs6000_file_start): Use putc.
27620         (rs6000_output_load_toc_table): Same.
27621         (output_prolog, output_mi_thunk): Same.
27622         * rs6000/rs6000.h (SELECT_SECTION): Formatting.
27623         (ASM_GLOBALIZE_LABEL): Use putc.
27624
27625 Mon May 31 15:23:23 1999  Richard Henderson  <rth@cygnus.com>
27626
27627         * alpha.md (reload_*_help): New patterns and splitters.
27628         (reload_*): Use them.
27629         (mov[qh]i): Likewise.
27630
27631 Mon May 31 11:48:07 1999  Mark Mitchell  <mark@codesourcery.com>
27632
27633         * cccp.c (handle_directive): Handle backslash-newlines in quoted
27634         strings correctly.
27635
27636 Mon May 31 09:36:11 1999  Cort Dougan  <cort@cs.nmt.edu>
27637
27638         * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux.
27639
27640 Mon May 31 11:40:20 EDT 1999  John Wehle  (john@feith.com)
27641
27642         * flow.c (mark_regs_live_at_end, insn_dead_p,
27643         mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM
27644         and HARD_FRAME_POINTER_REGNUM special treatment if reload
27645         hasn't run or the frame pointer is needed.
27646         * haifa-sched.c (attach_deaths): Likewise.
27647         * sched.c (attach_deaths): Likewise.
27648
27649 Mon May 31 00:46:17 1999  Jeffrey A Law  (law@cygnus.com)
27650
27651         * jump.c (jump_optimize_1): Only set CAN_REACH_END if
27652         calculate_can_reach_end returns nonzero.
27653
27654         * configure.in (native gas tests): Search for an assembler in the
27655         same manner that the installed compiler will.
27656         * configure: Rebuilt.
27657         * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too.
27658
27659         * alias.c (find_base_term): Improve handling of addresses
27660         constructed from binary operations.
27661
27662 Sun May 30 14:29:17 1999  Eric Raskin (ehr@listworks.com)
27663
27664         * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces.
27665
27666 Sun May 30 14:19:13 1999  Jeffrey A Law  (law@cygnus.com)
27667
27668         * function.h (cleanup_label, frame_offset): Declare.
27669         (tail_recursion_label, tail_recursion_reentry): Likewise.
27670         (arg_pointer_save_area, rtl_expr_chain): Likewise.
27671         * stmt.c (cleanup_label, frame_offset): Delete extern declarations.
27672         (tail_recursion_label, tail_recursion_reentry): Likewise.
27673         (arg_pointer_save_area, rtl_expr_chain): Likewise.
27674
27675 Sat May 29 19:08:10 1999  Philip Blundell  <philb@gnu.org>
27676
27677         * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already
27678         defined.
27679         * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define.
27680         (MAX_OFILE_ALIGNMENT): Define.
27681
27682 Fri May 28 21:40 1999  Robert Lipe <robertlipe@usa.net>
27683
27684         * fixincl.c: Replace local include scheme with #includes of
27685         gansidecl.h and system.h.
27686         * procopen.c:  Likewise.
27687         * server.c:  Likewise.
27688
27689 Fri May 28 03:47:03 1999  Eric Raskin (ehr@listworks.com)
27690
27691         * i386/t-dgux (EXTRA_PARTS): Add crti.o
27692         (crti.o): Add build rule and dependencies.
27693         * fixinc/fixinc.dgux:  Use modified _int_varargs.h
27694
27695 Fri May 28 03:41:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27696
27697         * rs6000/sysv4.h (CC1_SPEC): Add support for -profile
27698         (LIB_LINUX_SPEC): Likewise.
27699         (LIB_LINUX_SPEC): Add support for -pthread
27700         (CPP_OS_LINUX_SPEC): Likewise.
27701         (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are
27702         specified.
27703
27704 Thu May 27 13:04:52 1999  H.J. Lu  (hjl@gnu.org)
27705
27706         * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for
27707         conditional move.
27708         (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support.
27709         (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison
27710         for IEEE math and CC_FCOMI.
27711         (put_jump_code): No IEEE if CC_FCOMI is set.
27712
27713 1999-05-27  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
27714
27715         * fold-const.c (fold_truthop): Make the field reference unsigned
27716         when converting a single bit compare.
27717
27718 Thu May 27 02:40:48 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27719
27720         * loop.c (strength_reduce): Don't do biv->giv conversion on constants.
27721
27722 Thu May 27 02:09:27 1999  Jeffrey A Law  (law@cygnus.com)
27723
27724         * varasm.c (STRIP_NAME_ENCODING): Remove default definition.
27725         * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm
27726         version did.
27727
27728         * reload.c (push_reload): Do not call remove_address_replacements
27729         when presented with identical optional reloads.
27730
27731 Wed May 26 14:18:05 1999  Richard Henderson  <rth@cygnus.com>
27732
27733         * alpha.h (MASK_FIX, TARGET_FIX): New.
27734         (MASK_*): Reorganize constants.
27735         (CPP_AM_FIX_SPEC): New.
27736         (TARGET_SWITCHES): Add FIX.
27737         (EXTRA_SPECS): Likewise.
27738         (CPP_CPU_EV6_SPEC): Use FIX, not CIX.
27739         (SECONDARY_MEMORY_NEEDED): Likewise.
27740         (REGISTER_MOVE_COST): Likewise.
27741         * alpha.c (override_options): Add FIX support.  Always use
27742         ALPHA_TP_PROG for ev6.
27743         * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX.
27744         * alpha/elf.h (ASM_FILE_START): Look at FIX too.
27745         * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX.
27746
27747 Wed May 26 09:53:05 1999  Mark Mitchell  <mark@codesourcery.com>
27748
27749         * fold-const.c (fold): STRIP_NOPS when deciding whether or not
27750         something is a candidate for optimize_bit_field_compare.
27751
27752 Wed May 26 09:40:02 1999  Mark Mitchell  <mark@codesourcery.com>
27753
27754         * gcc.texi (Passes): Document branch-shortening.
27755         * invoke.texi (Debugging Options): Document the fact that `-dp'
27756         outputs length information for instructions.
27757
27758 Wed May 26 08:49:31 1999  Nick Clifton  <nickc@cygnus.com>
27759
27760         * flow.c: Revert previous delta.
27761
27762 Wed May 26 06:05:10 1999  Nick Clifton  <nickc@cygnus.com>
27763
27764         * flow.c (insn_dead_p): Check against frame_pointer_rtx not
27765         FRAME_POINTER_REGNUM.
27766         (mark_set_1): Ditto.
27767         (mark_used_regs): Ditto.
27768
27769 Wed May 26 02:19:31 1999  Philip Blundell  <pb@nexus.co.uk>
27770
27771         * arm.h (NEED_PLT_GOT): Fix mistake in last change.
27772         (GOT_PCREL): New macro.  Define to 1 if not already defined.
27773         * arm/elf.h (GOT_PCREL): Define to 0.
27774         * arm.c (arm_finalize_pic): Take into account the setting of
27775         GOT_PCREL.
27776
27777 Tue May 25 14:06:06 1999  Jeffrey A Law  (law@cygnus.com)
27778
27779         * output.h (STRIP_NAME_ENCODING): Provide default definition.
27780         * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING.
27781
27782         * flow.c (mark_set_1): Do not record BLKmode stores as dead
27783         store elimination candidates.
27784
27785 Tue May 25 08:55:57 1999  Gavin Romig-Koch  <gavin@cygnus.com>
27786
27787         * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if
27788         TARGET_GAS.
27789
27790 Mon May 24 20:30:08 1999  Jim Wilson  <wilson@cygnus.com>
27791
27792         * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h.
27793         Add use of x-aix41-gld.
27794
27795 Mon May 24 16:44:09 1999  Jakub Jelinek  <jj@ultra.linux.cz>
27796
27797         * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define.
27798         (ASM_OUTPUT_DESTRUCTOR): Define.
27799
27800 Mon May 24 14:35:24 1999  Jeffrey A Law  (law@cygnus.com)
27801
27802         * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the
27803         last CODE_LABEL in a loop if we have previously passed a jump
27804         to the top of the loop.
27805
27806 Mon May 24 07:56:29 1999  Nick Clifton  <nickc@cygnus.com>
27807
27808         * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when
27809         applying Philip's patch.
27810
27811 Mon May 24 01:02:12 1999  Mark Mitchell  <mark@codesourcery.com>
27812
27813         * stmt.c (expand_end_bindings): Ignore any elements of VARS that
27814         are not VAR_DECLs.
27815
27816 Sun May 23 20:31:16 1999  Jeffrey A Law  (law@cygnus.com)
27817
27818         * loop.c (strength_reduce): Grow reg_single_usage as needed.
27819
27820 Sun May 23 10:13:20 1999  David O'Brien <obrien@FreeBSD.org>
27821
27822         * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic.
27823         Also remove a useless comment.
27824
27825 Sun May 23 10:05:23 1999  Jerry Quinn <jquinn@nortelnetworks.com>
27826
27827         * pa.md (negdf2,negsf2):  Use fneg instead of fsub on pa 2.0.
27828
27829 Sat May 22 21:02:06 1999  David Edelsohn  <edelsohn@gnu.org>
27830
27831         * collect2.c (main): Only generate import or export file and add
27832         to link arguments if non-empty.  Use xmalloc not alloca.
27833         (write_{export,import}_file): Delete.
27834         (write_aix_file): New function.
27835         (locatelib): Use xmalloc not malloc.
27836         (GCC_OK_SYMBOL): Do not check type if aix64.
27837
27838 Sat May 22 09:35:51 1999  Philip Blundell  <pb@nexus.co.uk>
27839
27840         Based on patch by Scott Bambrough and Pat Beirne:
27841         * config/arm/arm.c (making_const_table): New variable.
27842         * config/arm/arm.h (making_const_table): Declare.
27843         (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if
27844         appropriate.
27845         * config/arm/arm.md (consttable_4, consttable_8, consttable_end):
27846         Keep track of when we are building the constant table.
27847
27848 Sat May 22 09:34:22 1999  Philip Blundell  <pb@nexus.co.uk>
27849
27850         * config/arm/arm.c (arm_override_options): Fix erroneous warning
27851         message.
27852
27853 Sat May 22 09:06:33 1999  Nick Clifton  <nickc@cygnus.com>
27854
27855         * config/arm/arm.h (NEED_PLT_GOT): Only define if not already
27856         defined.
27857
27858 Sat May 22 07:17:05 1999  Nick Clifton  <nickc@cygnus.com>
27859
27860         * tm.texi (FUNCTION_ARG): Correct description of a stack element
27861         in a PARALLEL.
27862
27863 Sat May 22 01:27:49 1999  Mark Mitchell  <mark@codesourcery.com>
27864
27865         * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE.
27866
27867 Fri May 21 21:19:02 1999  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
27868
27869         * rs6000.c (output_mi_thunk): Enable full support again.
27870
27871 Fri May 21 20:09:52 1999  J"orn Rennecke <amylaar@cygnus.co.uk>
27872
27873         * sh.h (BRANCH_COST): Define.
27874
27875 Thu May 20 10:00:42 1999  Stephen L Moshier  <moshier@world.std.com>
27876
27877         * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
27878
27879 Thu May 20 09:58:57 1999  Jan Hubicka <hubicka@freesoft.cz>
27880
27881         * function.c (assign_stack_local): Align stack slot propertly.
27882         (assign_outer_stack_local): Likewise.
27883
27884 Thu May 20 10:38:43 1999  Mark Mitchell  <mark@codesourcery.com>
27885
27886         * expr.h (lang_expand_constant): Declare.
27887         * toplev.c (lang_expand_constant): Define it.
27888         * varasm.c (output_constant): Use it.
27889
27890 Thu May 20 11:28:53 1999  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
27891
27892         * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide):
27893         Change function definitions to K&R style.
27894
27895 Thu May 20 08:16:39 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27896
27897         * fixinc/fixincl.c: We must not ignore SIGCLD now.
27898
27899 Thu May 20 07:06:39 1999  Alexandre Oliva  <aoliva@acm.org>
27900
27901         * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options
27902         * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments
27903         (several places): omit static initialization
27904         (process): use single fd, since only the read fd is used
27905         * fixinc/gnu-regex.c: define 'const' away, if not supported
27906         * fixinc/procopen.c(several places): omit static initialization
27907         * fixinc/server.c: define 'volitile' away, if not supported
27908
27909 1999-05-20  Andreas Schwab  <schwab@issan.cs.uni-dortmund.de>
27910
27911         * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use
27912         asm_fprintf and %L to generate the label name.
27913         * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise.
27914         (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels.
27915
27916 Thu May 20 01:40:55 1999  Jeffrey A Law  (law@cygnus.com)
27917
27918         * jump.c (can_reverse_comparison_p): Do not abort if the comparison
27919         insn for a conditional jump can not be found.
27920
27921 Wed May 19 23:58:58 1999  Jeffrey A Law  (law@cygnus.com)
27922
27923         * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations
27924         on variables in specific sections other than .sbss and .sdata.
27925
27926 Wed May 19 03:56:56 1999  Mark Mitchell  <mark@codesourcery.com>
27927
27928         * stmt.c (expand_return): Call start_cleanup_deferral and
27929         end_cleanup_deferral around conditional code.
27930
27931 Wed May 19 08:40:08 1999  Bruce Korb <ddsinc09@ix.netcom.com>
27932
27933         * fixinc/fixincl.tpl: Avoid depending on ANSI C features for
27934         filename lists.  Utilizes new "krstr" AutoGen function.
27935         * fixinc/fixincl.x: Rebuilt.
27936
27937 Wed May 19 02:47:11 1999  Jan Hubicka  (hubicka@freesoft.cz)
27938
27939         * i386.c (output_float_compare): Avoid GNU-C extensions.
27940
27941 Wed May 19 00:34:40 1999  Jeffrey A Law  (law@cygnus.com)
27942
27943         * version.c: Bump to distinguish mainline tree from the
27944         gcc-2.95 branch.
27945
27946 See ChangeLog.1 for earlier changes.