OSDN Git Service

* machmode.def: Add V16QImode.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-11-01  Geoff Keating  <geoffk@cygnus.com>
2
3         * machmode.def: Add V16QImode.
4
5 2000-11-01  Richard Henderson  <rth@redhat.com>
6
7         * dwarf2out.c (loc_descriptor_from_tree): Check for null result
8         from rtl_for_decl_location.
9         (add_location_or_const_value_attribute): Likewise.
10
11 2000-11-01  Neil Booth  <neilb@earthling.net>
12
13         * cpplib.c (run_directive): Use correct line number for output
14         of _Pragma.  Remember any in-progress directive. 
15   
16         * gcc.dg/cpp/vararg2.c, gcc.dg/cpp/_Pragm1.c: New tests.
17
18 2000-11-01  Richard Henderson  <rth@redhat.com>
19
20         * stmt.c (expand_start_null_loop): Set continue_label.
21
22 2000-11-01  Bernd Schmidt  <bernds@redhat.co.uk>
23
24         * builtins.c (fold_builtin_constant_p, fold_builtin): New functions.
25         (expand_builtin_constant_p): Move parts of the code into
26         fold_builtin_constant_p.
27         (expand_builtin_strlen): Move parts of the code into fold_builtin.
28         * expr.h (fold_builtin): Declare.
29         * fold-const.c (fold): Handle builtin calls.
30
31         * c-typeck.c (build_function_call): Call fold on the CALL_EXPR.
32
33 2000-11-01  Richard Henderson  <rth@redhat.com>
34
35         * stmt.c (expand_start_null_loop): New.
36         (expand_end_null_loop): New.    
37         * c-semantics.c (genrtl_do_stmt): Use them.
38         * tree.h: Declare them.
39
40 2000-11-01  Richard Henderson  <rth@redhat.com>
41
42         * cppmain.c (scan_buffer): Don't avoid paste for assembly.
43
44 2000-11-01  Neil Booth  <neilb@earthling.net>
45
46         * c-parse.in (_yylex): Remove CPP_BACKSLASH case.
47         * cp/spew.c: Similarly.
48         * cpplex.c (_cpp_lex_token): Backslashes are now CPP_OTHER.
49         * cppmacro.c (stringify_arg): Similarly.
50         * cpplib.h (CPP_BACKSLASH): Delete.
51
52 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
53
54         * builtins.c (expand_builtin_strstr): New function.
55         (expand_builtin): Handle BUILT_IN_STRSTR and BUILT_IN_STRCHR.
56
57         * builtins.def (BUILT_IN_STRSTR, BUILT_IN_STRCHR): New entries.
58
59         * c-common.c (c_common_nodes_and_builtins): Declare builtin strstr
60         and builtin strchr.
61
62 2000-10-31  Richard Henderson  <rth@redhat.com>
63
64         * config/i386/i386.c (fcmov_comparison_operator): Check for
65         CCFPmode or CCFPUmode instead of CCmode.
66         (ix86_expand_fp_movcc): Call ix86_expand_setcc for most
67         unordered operations as well.
68
69 2000-10-31  Richard Henderson  <rth@redhat.com>
70
71         * c-semantics.c (genrtl_do_stmt): Use integer_zerop instead
72         of integer_zero_node.
73
74 2000-10-31  Richard Henderson  <rth@redhat.com>
75
76         * c-semantics.c (genrtl_do_stmt): Special case do/while(0).
77
78 2000-10-31  Nick Clifton  <nickc@redhat.com>
79
80         * config/arm/unknown-elf.h (UNIQUE_SECTION_P): Do not allow
81         -fdata-sections to override the section attribute of a DECL.
82
83 2000-10-31  Chris Demetriou  <cgd@sibyte.com>
84
85         * libgcc2.c (__shtab): Remove __shtab variable.
86         * libgcc-std.ver (GCC_3.0): Remove __shtab from symbol list.
87         * Makefile.in (LIB2FUNCS): Remove _shtab from list of library
88         members.
89
90 2000-10-31  Jim Wilson  <wilson@redhat.com>
91
92         * defaults.h (ASM_OUTPUT_DEBUG_LABEL): New.
93         * tm.texi (ASM_OUTPUT_DEBUG_LABEL): Document.
94         * dwarf2out.c (dwarf2out_begin_block): Use ASM_OUTPUT_DEBUG_LABEL
95         instead of ASM_OUTPUT_INTERNAL_LABEL.
96         (dwarf2out_end_block, dwarf2out_label): Likewise.
97         * final.c (final_scan_insn, case NOTE_INSN_DELETED_LABEL): Likewise
98         * config/ia64/ia64.h (ASM_OUTPUT_DEBUG_LABEL): Define.
99         
100 2000-10-31  Richard Henderson  <rth@redhat.com>
101
102         * dwarf2out.c (struct dw_loc_descr_struct): Add dw_loc_addr.
103         (size_of_locs): Set it.
104         (output_loc_operands): Use it to compute branch displacement.
105         (int_loc_descriptor): New.
106         (mem_loc_descriptor): Dereference memory in the proper size.
107         Use DW_OP_plus_uconst when possible.  Use int_loc_descriptor.
108         (loc_descriptor_from_tree): New.
109         (rtl_for_decl_location): Break out from ...
110         (add_location_or_const_value_attribute): ... here.
111         (add_bound_info): Use loc_descriptor_from_tree.
112
113 2000-10-31  Neil Booth  <neilb@earthling.net>
114
115         * cpp.texi: Update for new command line assertion syntax.
116         * cpplib.c (cpp_define): Simplify a bit.
117         (cpp_assert, cpp_unassert): Use handle_assertion.
118         (handle_assertion): New function; accept new command line
119         syntax with '='.
120         * testsuite/gcc.dg/cpp/assert3.c: New tests.
121
122 2000-10-31  Neil Booth  <neilb@earthling.net>
123
124         * cppmacro.c (STDC_0_IN_SYSTEM_HEADERS): Define to 0 if
125         undefined.  Remove #ifdef check.
126         * config/i386/sol2.h, config/rs6000/sol2.h, config/sparc/sol2.h:
127         Define STDC_0_IN_SYSTEM_HEADERS to 1.
128
129 2000-10-31  Jan Hubicka  <jh@suse.cz>
130             Jakub Jelinek  <jakub@redhat.com>
131
132         * config/i386/i386.h: Clarify CCNOmode description in comment.
133         (EXTRA_CC_MODES): Remove CCRCmode.
134         * config/i386/i386.c (ix86_comparison_operator): Remove CCRCmode.
135         (put_condition_code, ix86_match_ccmode): Likewise.
136         (ix86_cc_mode): Likewise.  Fix comment.
137         (ix86_expand_strlensi_unroll_1): *rc patterns are gone.
138         * config/i386/i386.md: Add unspec 12 description.
139         (adddi3 split): Use unspec 12 instead of CCRCmode.
140         (addsi3_carry_rc): Remove.
141         (addsi3_cc, addqi3_cc): New patterns.
142         (addsi_3): Swap operands, match CCZmode.
143         (addsi_4): Rewritten.
144         (addsi_5): Renamed from addsi_6.
145         (addsi_6): Removed.
146         (addhi_3): Swap operands, match CCZmode.
147         (addhi_4): Rewritten.
148         (addhi_5): Renamed from addhi_6.
149         (addhi_6): Removed.
150         (addqi_3): Swap operands, match CCZmode.
151         (addqi_4): Rewritten.
152         (addqi_5): Renamed from addqi_6.  Use =q constraint for clobber.
153         (subsi3_carry_rc): Removed.
154         (iorqi_3): Use =q constraint for clobber.
155         (xorqi_cc_2): Likewise.
156         (negdi2_1 split): Don't use CCRCmode, use ltu instead of gtu.
157         (x86_movsicc_0_m1_rc): Removed.
158         (cmp?i peepholes): Remove neg.  Use CCGCmode instead of CCRCmode.
159
160 2000-10-31  Joseph S. Myers  <jsm28@cam.ac.uk>
161
162         * c-typeck.c (build_unary_op): If pedantic, pedwarn for increment
163         and decrement of complex types.
164
165 2000-10-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
166
167         * builtins.c (expand_builtin_fputs): When deleting NOP calls to
168         builtin fputs, ensure we still evaluate the stream in case it
169         has side-effects.
170
171 2000-10-31  Jakub Jelinek  <jakub@redhat.com>
172
173         * expr.c (do_store_flag): Pass operand_mode instead of GET_MODE (op0)
174         to expand_shift.
175
176 Tue Oct 31 15:33:27 2000  J"orn Rennecke <amylaar@redhat.com>
177
178         * sh-protos.h (reg_no_subreg_operand, emit_fpscr_use): Don't declare.
179         (fp_extended_operand, emit_fpscr_use): Likewise.
180         * sh.c (reg_no_subreg_operand, fp_extended_operand): Delete functions.
181         (fpul_operand): New function.
182         * sh.h (PREDICATE_CODES): Remove reg_no_subreg_operand and
183         fp_extended_operand.  Add fpul_operand.
184         * sh.md (mulsf3, mulsf3_i4): Use fp_arith_reg_operand for "f" operands.
185         (mulsf3_ie, macsf3, cmpgtsf_t, cmpeqsf_t, ieee_ccmpeqsf_t): Likewise.
186         (cmpgtsf_t_i4, cmpeqsf_t_i4, ieee_ccmpeqsf_t_4, negsf2): Likewise.
187         (negsf2_i, sqrtsf2, sqrtsf2_i, abssf2, abssf2_i, adddf3): Likewise.
188         (adddf3_i, subdf3, subdf3_i, muldf3, muldf3_i, divdf3): Likewise.
189         (divdf3_i): Likewise.
190         (floatsisf2): Likewise.  Use fpul_operand for 'y' operand.
191         (floatsisf2_i4, floatsisf2_ie, fix_truncsfsi2): Likewise.
192         (fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i): Likewise.
193         (fix_truncdfsi2, fix_truncdfsi2_i, extendsfdf2): Likewise.
194         (extendsfdf2_i4, truncdfsf2, truncdfsf2_i4): Likewise.
195
196 2000-10-31  Bernd Schmidt  <bernds@redhat.co.uk>
197
198         * config/i386/i386.c (ix86_init_builtins): Correct return type
199         building v4hi_ftype_v4hi_int_int tree node.
200         (ix86_expand_builtin): Use correct operand numbers 0 and 1.
201         Copy operand 0 into a Pmode register, don't generate a MEM rtx.
202
203         * config/i386/i386.md (sse_movntdi): Use mmx register constraint
204         for operand 1.
205         (mmx__uavgv8qi3): Correct insn mnemonic.
206         (mmx_psadbw): Correct insn mnemonic.  Use V8QI mode for operands 1 and 2.
207         (mmx_punpckhwd): Correct insn mnemonic.
208         (mmx_punpckhdq): Likewise.
209         (mmx_punpcklwd): Likewise.
210         (mmx_punpckldq): Likewise.
211         (prefetch): Use immediare_operand and 'n' constraint for operand 1.
212         Renumber case labels to match the _mm_prefetch constants defined in
213         xmmintrin.h.
214
215         * recog.c (split_all_insns): Don't try to call cleanup_subreg_operands
216         if the splitter didn't emit new insns.
217         Make sure we call cleanup_subreg_operands even when splitting the last
218         insn in a basic block.
219
220         * invoke.texi (Debugging Options): Describe -do.
221         * toplev.c (enum_dump_file_index): New entry DFI_postreload.
222         (dump_file): Likewise.
223         (rest_of_compilation): Split .greg dump into .greg and .postreload.
224
225 2000-10-30  Neil Booth  <neilb@earthling.net>
226
227         * cppfiles.c (stack_include_file): Check for stacked contexts
228         here.
229         * cpphash.h (_cpp_do__Pragma): New prototype.
230         * cppinit.c (cpp_reader_init): Add _Pragma keyword to hash table.
231
232         * cpplex.c (skip_escaped_newlines): Only process trigraphs and
233         escaped newlines if !(buffer->from_stage3).
234         (_cpp_lex_token): Warn about missing newlines iff
235         !buffer->from_stage3.
236
237         * cpplib.c (get__Pragma_string, destringize,
238         _cpp_do__Pragma): New functions.
239         (run_directive): Set output_line for _Pragma to avoid line
240         markers in output.  Set from_stage3 and prevent macro expansion
241         for _Pragma and command-line options.  Check buffer exhaustion.
242         (cpp_push_buffer): Don't check for stacked macro contexts, as
243         this is perfectly legitimate for _Pragma.  Move the check to
244         stack_include_file instead. Set from_stage3 iff buffer is
245         preprocessed input.
246
247         * cpplib.h (struct cpp_buffer): Make warned_cplusplus_comments
248         unsigned. New boolean from_stage3.
249         (struct spec_nodes): Add n__Pragma.
250
251         * cppmacro.c (enter_macro_context): Flip sense of return value.
252         (_cpp_get_token): Handle _Pragma operator.
253
254 2000-10-30  Phil Edwards  <pme@sources.redhat.com>
255
256         * gcc.texi:  The C++ standard isn't "draft" anymore.
257
258 2000-10-30  Mark Mitchell  <mark@codesourcery.com>
259
260         * cppmacro.c (builtin_macro): Use NT_VOID, not T_VOID.
261
262 2000-10-29  Neil Booth  <neilb@earthling.net>
263
264         * cpplib.c (skip_rest_of_line):  Use _cpp_get_token.
265
266 2000-10-29  Joseph S. Myers  <jsm28@cam.ac.uk>
267
268         * toplev.c, flags.h, fold-const.c, real.c, rtl.c,
269         fixinc/inclhack.def: Change comments mentioning C9X to refer to
270         C99 instead.
271
272         * invoke.texi: Document that -V will only work for very similar
273         versions of driver and compiler.
274
275 2000-10-29  Neil Booth  <neilb@earthling.net>
276
277         * cppmacro.c (_cpp_create_definition): Optimize the case of
278         a macro defined to itself.
279
280 2000-10-29  Neil Booth  <neilb@earthling.net>
281
282         * cpplex.c (save_comment): Don't store new lines in C++ comments.
283
284 2000-10-29  Michael Hayes  <mhayes@redhat.com>
285
286         * integrate.c (copy_insn_list): Copy the unchanging flag for calls.
287
288 2000-10-28  Geoffrey Keating  <geoffk@cygnus.com>
289
290         * cpphash.c (cpp_forall_identifiers): Add context variable
291         for callback routine.
292         * cppmain.c (dump_macro): Update to match cpp_forall_identifiers
293         change.
294         (main): Call cpp_forall_identifiers with null context.
295         * cpplib.h (cpp_forall_identifiers): Update prototype.
296
297         * cppmain.c: Make `parse_in' and `print' static.
298
299 2000-10-28  Alan Modra <alan@linuxcare.com.au>
300
301         * c-decl.c (finish_function): Clear c_function_name_declared_p.
302
303 2000-10-28  Richard Henderson  <rth@redhat.com>
304
305         * regrename.c (scan_rtx_address): Frob action, not class,
306         when trying to disable optimization.
307
308 2000-10-28  Mark Mitchell  <mark@codesourcery.com>
309
310         * c-semantics.c (make_rtl_for_local_static): Don't clobber
311         DECL_ASSEMBLER_NAME.
312
313 2000-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
314
315         * configure.in: Determine and substitute gcc_version_full.
316         * configure: Regenerate.
317         * gccbug.in: Use it to give full version.  Don't allow
318         confidential PRs.
319
320 2000-10-28  Richard Henderson  <rth@redhat.com>
321
322         * recog.c (split_all_insns): Run cleanup_subreg_operands
323         after reload.
324
325         * regrename.c (regrename_optimize): Verify that all registers of
326         a multiple register mode are available.
327         (scan_rtx_address): Accept the mode of the address; all callers
328         changed.
329
330         * cpplib.c (run_directive): Fix prototype.
331
332 2000-10-28  Bernd Schmidt  <bernds@redhat.co.uk>
333
334         * reload.c (find_reloads): Distinguish "wins" so that we know whether
335         a given operand won because of a matching constraint or not; then use
336         that information to compute goal_alternative_matched properly.
337         * reload1.c (choose_reload_regs): Never set reload_override_in for an
338         optional reload.
339
340         * config/ia64/ia64.h (RTX_COSTS): A few more entries, and a more
341         accurate value for MULT.
342         * config/ia64/ia64.c (ia64_print_operand): Require probability to be
343         2% or > 98% before using static branch prediction bits.
344
345 2000-10-28  Neil Booth  <neilb@earthling.net>
346
347         New macro expander.
348         
349         * cpplib.c (struct answer): New.
350         (struct if_stack): Use cpp_lexer_pos rather than line and col.
351         Rename cmacro mi_cmacro.
352         (struct directive, KANDR, STDC89, EXTENSION, COND, IF_COND, INCL,
353         IN_I): New directive and flags.
354         (skip_rest_of_line, check_eol, run_directive, glue_header_name,
355         parse_answer, parse_assertion, find_answer): New functions.
356         (parse_ifdef, detect_if_not_defined, validate_else): Remove.
357         (lex_macro_node): New function to replace parse_ifdef and
358         get_define_node.
359
360         (_cpp_handle_directive): New function, combines _cpp_check_directive
361         and _cpp_check_linemarker.
362
363         (do_define, do_undef, parse_include, do_include, do_import,
364         do_include_next, read_line_number, do_line, do_ident, do_pragma,
365         do_pragma_once, do_pragma_poison, do_pragma_dependency):
366         Update for new token getting interface.
367
368         (do_ifdef, do_ifndef, do_if, do_else, do_endif, push_conditional)
369         : Update for new multiple-include optimisation technique.
370         (do_elif): Don't forget to invalidate controlling macros.
371
372         (unwind_if_stack, cpp_defined, cpp_push_buffer, cpp_pop_buffer): Update.
373         (parse_assertion, parse_answer, find_answer, _cpp_test_assertion):
374         Functions to handle assertions with the new token interface.
375         (do_assert, do_unassert): Use them.
376
377         (cpp_define, _cpp_define_builtin, cpp_undef, cpp_assert, cpp_unassert):
378         Use run_directive.
379
380         (_cpp_init_stacks): Register directive names.  Don't register special
381         nodes.
382
383         * cpperror.c (print_containing_files, _cpp_begin_message): Update to
384         new position recording regime.
385         (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning,
386         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
387         cpp_pedwarn_with_file_and_line): Update for _cpp_begin_message changes.
388         (cpp_type2name): Move to cpplex.c.
389
390         * cppexp.c (parse_charconst): spec_nodes is no longer a pointer.
391         (parse_defined): Update to handle new multiple include optimisation
392         method.  Remove poisoned identifier warning.
393         (parse_assertion, TYPE_NAME): Delete.
394         (lex): Update for multiple include optimisation, removal of
395         CPP_DEFINED, to use _cpp_test_assertion for assertions and
396         cpp_token_as_text.
397         (_cpp_parse_expr): Update for MI optimisation, and to use op_as_text.
398         (op_as_text): New function, to wrap cpp_token_as_text.
399
400         * cppfiles.c (stack_include_file, _cpp_pop_file_buffer):
401         Update for MI optimisation.
402         (_cpp_execute_include): Take a token rather than 3 arguments.  Fix
403         segfault on diagnostic.
404         (_cpp_compare_file_date): Take a token rather than 3 args.
405         (cpp_read_file): Work correctly for zero-length files.
406
407         * cpphash.c (_cpp_init_macros, _cpp_cleanup_macros): Rename
408         _cpp_init_hashtable and _cpp_cleanup_hashtable.
409         (cpp_lookup): Place identifiers at front of identifier pool
410         for _cpp_lookup_with_hash.
411         (_cpp_lookup_with_hash): Require identifiers to be at the front of
412         the identifier pool.  Commit the memory if not already in the
413         hash table.
414
415         * cppinit.c (cpp_reader_init): Move cpp_init_completed test to top.
416         Initialise various members of cpp_reader, memory pools, and the
417         special nodes.
418         (cpp_printer_init): Delete.
419         (cpp_cleanup): Update.
420         (struct builtin, builtin_array, initialize_builtins): Update for new
421         hashnode definition and builtin handling.
422         (cpp_start_read, cpp_finish): Don't take or initialise a
423         printer.  Update.
424
425         * cpplib.h (cpp_printer, cpp_toklist, CPP_DEFINED, BOL,
426         PASTED, VAR_ARGS, BEG_OF_FILE, IN_DIRECTIVE, KNOWN_DIRECTIVE,
427         T_VOID, T_SPECLINE, T_DATE, T_FILE, T_BASE_FILE, T_INCLUDE_LEVEL,
428         T_TIME, T_STDC, T_OPERATOR, T_POISON, T_MACRO, T_ASSERTION): Delete.
429         (struct cpp_pool, struct cpp_macro, struct cpp_lexer_pos,
430         struct cpp_lookahead, CPP_DHASH, enum mi_state, enum mi_ind,
431         NO_EXPAND, VARARGS_FIRST, struct cpp_token_with_pos,
432         struct toklist, struct cpp_context, struct specnodes,
433         TOKEN_LOOKAHEAD, TOKEN_BUFFSIZE, NODE_OPERATOR, NODE_POISONED,
434         NODE_BUILTIN, NODE_DIAGNOSTIC, NT_VOID, NT_MACRO, NT_ASSERTION,
435         enum builtin_type, cpp_can_paste): New.
436         (struct cpp_token): Delete line and col members.
437         (struct cpp_buffer): New member output_lineno.
438         (struct lexer_state): Delete indented, in_lex_line, seen_dot.
439         Add va_args_ok, poisoned_ok, prevent_expansion, parsing_args.
440         (struct cpp_reader): New members lexer_pos, macro_pos, directive_pos,
441         ident_pool, temp_string_pool, macro_pool, argument_pool, string_pool,
442         base_context, context, directive, mi_state, mi_if_not_defined,
443         mi_lexed, mi_cmacro, mi_ind_cmacro, la_read, la_write, la_unused,
444         mlstring_pos, macro_buffer, macro_buffer_len.
445         Delete members mls_line, mls_column, token_list, potential_control_macro,
446         temp_tokens, temp_cap, temp_alloced, temp_used, first_directive_token,
447         context_cap, cur_context, no_expand_level, paste_level, contexts, args,
448         save_parameter_spellings, need_newline, .
449         Change type of date, time and spec_nodes members.
450         Change prototypes for include and ident callbacks.
451         (struct cpp_hashnode): Change type of name.  Remove union members
452         expansion and code.  Add members macro, operator and builtin.
453
454         (cpp_token_len, cpp_token_as_text, cpp_spell_token, cpp_start_read,
455         cpp_finish, cpp_avoid_paste, cpp_get_token, cpp_get_line,
456         cpp_get_output_line, cpp_macro_definition, cpp_start_lookahead,
457         cpp_stop_lookahead): New prototypes.
458         (cpp_printer_init, cpp_dump_definition): Delete prototypes.
459
460         (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr, ufputs):
461         Move from cpphash.h.
462
463         * cpphash.h (U_CHAR, U, ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr,
464         ufputs): Move to cpplib.h.
465         (enum spell_type, struct token_spelling, _cpp_token_spellings, TOKEN_SPELL,
466         TOKEN_NAME, struct answer, FREE_ANSWER, KANDR, STDC89, EXTENSION,
467         COND, EXPAND, INCL, COMMENTS, IN_I, struct directive, directive_handler,
468         struct spec_nodes, _cpp_digraph_spellings, _cpp_free_temp_tokens,
469         _cpp_init_input_buffer, _cpp_grow_token_buffer, _cpp_init_toklist,
470         _cpp_clear_toklist, _cpp_expand_token_space, _cpp_expand_name_space,
471         _cpp_equiv_tokens, _cpp_equiv_toklists, _cpp_process_directive,
472         _cpp_run_directive, _cpp_get_line, _cpp_get_raw_token, _cpp_glue_header_name,
473         _cpp_can_paste, _cpp_check_directive, _cpp_check_linemarker,
474         _cpp_parse_assertion, _cpp_find_answer): Delete.
475         (VALID_SIGN, ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, POOL_SIZE,
476         POOL_USED, POOL_COMMIT, struct cpp_chunk, _cpp_lex_token, _cpp_init_pool,
477         _cpp_free_pool, _cpp_pool_reserve, _cpp_pool_alloc, _cpp_next_chunk,
478         _cpp_lock_pool, _cpp_unlock_pool, _cpp_test_assertion,
479         _cpp_handle_directive, DSC): New.
480         (struct include_file): New member defined.
481
482         (DO_NOT_REREAD, _cpp_begin_message, _cpp_execute_include,
483         _cpp_compare_file_date): Update.
484         (_cpp_pop_context, _cpp_get_token, _cpp_free_lookaheads, _cpp_push_token): New.
485         (_cpp_init_macros, _cpp_cleanup_macros): Rename to _cpp_init_hashtable,
486         _cpp_cleanup_hashtable.
487
488         * Makefile.in: Remove cppoutput.c.
489         
490         * cppoutput.c: Delete
491
492         * fixheader.c (read_scan_file): Update for new cpp_get_token
493         prototype.
494         (recognized_function): New argument LINE.
495
496         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
497         new cpp_get_token prototype.
498
499         * scan.h (recognized_function): Update prototype.
500
501         * po/POTFILES.in: Remove cppoutput.c.
502         
503 2000-10-27  Mark Mitchell  <mark@codesourcery.com>
504
505         * c-typeck.c (check_init_type_bitfields): Remove.
506         (constructor_incremental): Likewise.
507         (struct constructor_stack): Remove incremental bit.
508         (struct initializer_stack): Likewise.
509         (start_init): Don't play with constructor_incremental.
510         (finish_init): Likewise.
511         (really_start_incremental_init): Likewise.
512         (push_init_level): Likewise.
513         (pop_init_level): Likewise.
514         (output_init_level): Likewise.
515         (output_pending_init_elements): Likewise.
516
517 2000-10-21  Mike Coleman  <mcoleman2@kc.rr.com>
518
519         * c-pragma.c (handle_pragma_pack): Initialize align to -1.
520         Improve error messages.  Correct parsing of 
521         #pragma pack(pop [,id]).  Do not check the user-supplied
522         alignment if we're popping.
523
524         * gcc.dg/pack-test-1.c: New test case.
525         * gcc.dg/pack-test-2.c: New test case.
526         * gcc.dg/pack-test-1.h: New file.
527
528 2000-10-27  Neil Booth  <neilb@earthling.net>
529
530         * cpp.texi: Update.
531
532 2000-10-27  Kelley Cook <kelley.cook@home.com>
533
534         * invoke.texi: Document -mintel-syntax
535
536 2000-10-27  Richard Henderson  <rth@redhat.com>
537
538         * invoke.texi: Document -frename-registers.  Add it to -O3.
539         * toplev.c (rest_of_compilation): Run regrename before ifcvt2.
540         (enum dump_file_index, dump_file): Update order.
541         (main): Set flag_rename_registers at -O3.
542
543 2000-10-27  Richard Henderson  <rth@redhat.com>
544
545         * config/alpha/alpha.h (enum reg_class): Add PV_REG.
546         (REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update.
547         (REG_CLASS_FROM_LETTER): Assign it to 'c'.
548         * config/alpha/alpha.md (call_osf_1): Use it.
549         (call_value_osf_1): Likewise.
550
551         * config/ia64/ia64.c: Revert 10-23 patch.
552         (ia64_hard_regno_rename_ok): New.
553         * config/ia64/ia64-protos.h: Declare it.
554         * config/ia64/ia64.h (HARD_REGNO_RENAME_OK): Use it.
555
556 2000-10-27  Bernd Schmidt  <bernds@redhat.co.uk>
557             Richard Henderson  <rth@redhat.com>
558
559         * regrename.c: Rewrite to handle multi-register modes and
560         cond_exec instructions.
561         * Makefile.in (regrename.o): Update dependancies.
562         * recog.h (struct operand_alternative): Add is_address.
563         * recog.c (preprocess_constraints) [case 'p']: Set it.
564
565 2000-10-27  Zack Weinberg  <zack@wolery.stanford.edu>
566
567         * configure.in: If not NO_MINUS_C_MINUS_O, substitute
568         OUTPUT_OPTION with '-o $@'.  Make zlibdir, zlibinc relative to
569         top level.  Kill oldstyle_subdirs.  Do not include
570         $srcdir/$s/Makefile.in in all_lang_makefiles, but do include
571         $outputs.  Do not run configure.lang from config.status.
572         Rearrange warning-flag logic to correspond to what the
573         makefile wants.  Put special vax stage1 options in
574         @stage1_flags@ not @stage1_warn_cflags@.  Don't do anything
575         with extra_c_objs, extra_cxx_objs, or extra_cpp_objs.
576         (--enable-c-cpplib): AC_SUBST(maybe_cpplib) with "libcpp.a" if
577         switch is given, nothing otherwise.
578         * configure.lang: Delete.
579
580         * Makefile.in: Expunge all traces of extra_c_objs,
581         extra_cxx_objs, and extra_cpp_objs.  Set MAYBE_CPPLIB from
582         @maybe_cpplib@. Add $(MAYBE_CPPLIB) to C_AND_OBJC_OBJS.  Set
583         warning options via a three level scheme so that -pedantic and
584         -Wtraditional are not used for non-C front ends: LOOSE_WARN,
585         STRICT1_WARN, STRICT2_WARN -> $(@D)-warn, GCC_WARN_CFLAGS ->
586         WARN_CFLAGS.  Distinguish STAGE1_CFLAGS from BOOT_CFLAGS.
587         Add -I$(@D) and -I$(srcdir)/$(@D) to INCLUDES.
588         Set OUTPUT_OPTION, ZLIB, ZLIBINC.  Do not set P,
589         LANG_FLAGS_TO_PASS.  Add OUTPUT_OPTION to all object-file
590         generation rules.  Wrap all rules that change the current
591         directory in parentheses; pmake doesn't spawn a new shell for
592         each command.  Expunge all references to $(P).  When one
593         command depends on another and they're run all at once, use &&
594         to separate them, not ;.  Add libgcc_s$(SHLIB_EXT) to files
595         deleted on make clean.  Force OUTPUT_OPTION='-o $@' in stage2
596         and beyond.
597
598         * objc/Make-lang.in: Wrap all rules that change the current
599         directory in parentheses.  Expunge all references to $(P).
600         When one command depends on another and they're run all at
601         once, use && to separate them, not ;.  Add OUTPUT_OPTION to
602         all object-file generation rules.  Delete obsolete variables.
603         * objc/Makefile.in: Delete.
604
605 2000-10-27  Jakub Jelinek  <jakub@redhat.com>
606
607         * calls.c (expand_call): If sibcall_failure is set during pass 1,
608         clear tail_call_insns as well.
609
610 2000-10-27  Nick Clifton  <nickc@redhat.com>
611
612         * config/arm/arm-protos.h (arm_function_ok_for_sibcall): Add
613         prototype.
614
615 2000-10-26  Richard Henderson  <rth@redhat.com>
616
617         * calls.c (expand_call): Supress sibcall if we have a
618         BLKmode return in registers.
619
620 2000-10-26  Bernd Schmidt  <bernds@redhat.co.uk>
621
622         * ia64.h (PREFERRED_RELOAD_CLASS): Force floating point constants
623         into memory.
624
625 2000-10-26  Nathan Sidwell  <nathan@codesourcery.com>
626
627         * tree.c (make_node, case 't'): Set alignment to that of
628         char_type_node.
629         * expr.c (move_by_pieces_ninsns): Abort if some length remains.
630
631 2000-10-25  Mark Mitchell  <mark@codesourcery.com>
632
633         * Makefile.in (site.exp): Define HAVE_LIBSTDCXX_V3.
634         * configure.in (enable-libstdcxx-v3): Arrange to have
635         HAVE_LIBSTDCXX_V3 substituted into the output files.
636
637 2000-10-25  Richard Henderson  <rth@redhat.com>
638
639         * recog.c (constrain_operands): Initialize which_alternative
640         before no alternatives early exit.
641
642         * cse.c (find_comparison_args): Check that we can reverse a
643         comparison if needed before accepting the substitution.
644
645         * reload.c (find_reloads_address_part): Kill rtx obstack hackery.
646
647         * simplify-rtx.c (simplify_relational_operation): Sign extend
648         low words before sign extending to high words.
649
650 2000-10-25  Nick Clifton  <nickc@redhat.com>
651
652         * config/mcore/mcore.c: Include config.h before system.h.
653
654 2000-10-25  Ray Essick  <essick@ddna.labs.mot.com>
655
656         * config/mcore/mcore.md (return): Force function epilogue to
657         always be generated to work around epilogue suppression bug in
658         M*Core backend.
659
660 2000-10-25  Joseph S. Myers  <jsm28@cam.ac.uk>
661
662         * c-decl.c (grokdeclarator): Move warning for qualified void
663         return types with -pedantic to when the function type is
664         constructed.  At -W, warn in general for qualified function return
665         types, except for volatile void.
666         * invoke.texi: Document this new warning at -W.
667
668 2000-10-25  Neil Booth  <neilb@earthling.net>
669
670         * cpp.texi: Update with implementation-defined behavior and
671         internal limits.
672
673 2000-10-25  Jakub Jelinek  <jakub@redhat.com>
674
675         * stor-layout.c (layout_type): If TYPE_ALIAS_SET was already set on the
676         incomplete type force it into alias set 0.
677
678 Wed Oct 25 01:02:44 EDT 2000  John Wehle  (john@feith.com)
679
680         * alias.c: Include basic-block.h.
681         (loop_p): New function.
682         (mark_constant_function): Use it.
683         * Makefile.in (alias.o): Update dependencies.
684
685 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
686
687         * config/mn10300/mn10300.c (secondary_reload_class): Treat pseudos
688         like memory.
689
690 2000-10-24  Jim Wilson  <wilson@cygnus.com>
691
692         * expmed.c (store_bit_field): Move integer pun code down after
693         code that calls emit_move_insn for entire register move.
694         * stor-layout.c (compute_record_mode): Revert Mar 25, Aug 18, and
695         Oct 20 changes.  Only store mode in TYPE_MODE if RECORD_TYPE.
696
697 2000-10-24  Richard Henderson  <rth@cygnus.com>
698
699         * rtlanal.c (rtx_unstable_p, rtx_varies_p): Don't consider pic
700         register stable if PIC_OFFSET_TABLE_REG_CALL_CLOBBERED.
701
702 2000-10-24  Aldy Hernandez  <aldyh@redhat.com>
703
704         * gcse.c (cprop_insn): do not propagate constants into jump_insn
705         for machines with CC0 more than once.
706
707 2000-10-24  Richard Henderson <rth@cygnus.com>, Aldy <aldyh@cygnus.com>
708
709         * config/mn10300/mn10300.h (PREFERRED_RELOAD_CLASS): Treat
710         pseudos just like memory.
711
712 2000-10-24  Alexandre Oliva  <aoliva@redhat.com>
713
714         * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL
715         when deleting libcall sequence collapsed to a single instruction.
716
717 2000-10-24  Andrew Haley  <aph@cygnus.co.uk>
718
719         * expr.c (do_store_flag): Don't crash if either side of a
720         comparison is error_mark_node.
721
722 2000-10-24  Jakub Jelinek  <jakub@redhat.com>
723
724         * sibcall.c (purge_mem_unchanging_flag): New function.
725         (optimize_sibling_and_tail_recursive_calls): Call it.
726
727 2000-10-24  Philipp Thomas  <pthomas@suse.de>
728
729         * Makefile.in (check-po): New target for doing checks in the po
730         subdir if all languages configured.
731         (CHECK_TARGETS): Add @CHECK_PO@, replaced with check-po via
732         configure if NLS is enabled.
733         * configure.in: If NLS is enabled, substitute CHECK_PO by check-po,
734         otherwise leave empty.
735         * configure: Regenerate.
736
737 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
738
739         * i386.c (print_operand): Handle new 'A' formatting code.
740         387 opcodes need suffixes even with -mintel-syntax.
741         Check for explicit size override (codes 'b', 'w' and 'k').
742         (print_operand_address): Check if register prefix is needed when
743         emitting `ds' segment override.
744         * i386.h: Add comment about new 'A' formatting code.
745         * i386.md (jump and call patterns): Emit absolute references using %A.
746
747 2000-10-23  Richard Henderson  <rth@cygnus.com>
748
749         * config/ia64/ia64.c (ia64_expand_prologue): Mark extra
750         output registers as fixed.
751         (ia64_function_epilogue): Undo output fixation.
752
753 2000-10-23  Richard Henderson  <rth@cygnus.com>
754
755         * config/alpha/alpha.md: Add names for all unnamed insns; use
756         define_insn_and_split in some obvious places.
757         (lda): Remove.
758         (zero_extendqihi2): Use an expander w/ nonimmediate_operand for BWX.
759         (zero_extendqisi2, zero_extendqidi2): Likewise.
760         (zero_extendhisi2, zero_extendhidi2): Likewise.
761         (abs splitters): Fix match_scratch operand number.
762         (bcc_reverse): Swap pc & label instead of non-canonical compare.
763
764 2000-10-23  Jim Wilson  <wilson@cygnus.com>
765
766         * ia64.c (ia64_print_operand, case 'r'): Correct comment.  Handle
767         CONST_INT.
768         * ia64.md (cmpsi_adjusted): Use %r3.
769         (cmpdi_adjusted): Likewise.
770
771 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
772
773         * config/i386/att.h (ASM_FILE_START): Define.
774
775 2000-10-23  Diego Novillo  <dnovillo@cygnus.com>
776
777         * config/i386/linux.h (ASM_FILE_START): Define.
778
779 Wed Oct 18 11:16:40 2000  Donald Lindsay  <dlindsay@cygnus.com>
780
781         * gcc/configure.in: m68k-coff tm_file should not have libgloss.h,
782         since this (only) drags in a crt0.o reference that the .ld files
783         also introduce.
784
785 2000-10-23  Geoff Keating  <geoffk@cygnus.com>
786
787         * reload1.c (reload_reg_reaches_end_p): A RELOAD_OTHER can
788         overwrite the value in a RELOAD_FOR_INPUT and other kinds of
789         reloads just like an RELOAD_FOR_OUTPUT would.
790
791         * local-alloc.c (update_equiv_regs): Add an abort().  When
792         deleting or moving insns, update reg_equiv[regno].init_insns.
793
794 2000-10-23  Mark Mitchell  <mark@codesourcery.com>
795
796         * c-tree.texi: Improve documentation for IF_STMTs and related
797         conditional statements.
798
799 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
800
801         * expr.c (do_preexpand_calls): Remove.
802         (same_from_p): Don't use CALL_EXPR_RTL.
803         (expand_expr): Don't call preexpand_calls, or use CALL_EXPR_RTL.
804         (preexpand_calls): Remove.
805         * tree.c (first_rtl_op): Remove CALL_EXPR case.
806         (unsave_expr_1): Likewise.
807         * tree.def (CALL_EXPR): Give it only two slots.
808         * tree.h (CALL_EXPR_RTL): Remove.
809
810 2000-10-21  Chandrakala Chavva   <cchavva@redhat.com>
811
812         * libgcc-std.ver (__addvsi3, __addvdi3,  __subvsi3, __subvdi3,
813         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
814         New functions.
815
816 2000-10-22  Alexandre Oliva  <aoliva@redhat.com>
817
818         * calls.c (combine_pending_stack_adjustment_and_call): Don't
819         adjust stack when unadjusted_alignment ends up as zero.
820
821 2000-10-22  Joseph S. Myers  <jsm28@cam.ac.uk>
822
823         * fixinc/genfixes: Remove EGCS reference.
824         * install.texi: Remove EGCS reference.
825         * INSTALL: Regenerate.
826
827 2000-10-22  Mark Mitchell  <mark@codesourcery.com>
828
829         * tree.h (TYPE_IS_SIZETYPE): Add more documentation.
830
831 2000-10-21  Joseph S. Myers  <jsm28@cam.ac.uk>
832
833         * diagnostic.c: Remove EGCS reference in comment.
834
835 Sat Oct 21 08:24:25 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
836
837         * loop.c (strength_reduce): Fix error in last change.
838
839 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
840
841         * Makefile.in (SHLIB_NM_FLAGS): New.
842         (libgcc.mk): Pass it.
843         * mklibgcc.in (libgcc.map): Use it.
844
845         * rs6000/t-aix43 (SHLIB_EXT, SHLIB_LINK, SHLIB_LIBS,
846         SHLIB_MKMAP, SHLIB_MAPFILES, SHLIB_NM_FLAGS): New.
847
848 2000-10-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
849
850         * mips.h (REG_CLASS_FROM_LETTER): Cast array arg to unsigned char.
851
852         * sparc.c (load_pic_register): Delete unused varaible.
853
854         * libgcc2.c (__addvsi3): Delete unused variable.
855
856         * libgcc2.h (__absvsi2, __absvdi2, __addvsi3, __addvdi3,
857         __subvsi3, __subvdi3, __mulvsi3, __mulvdi3, __negvsi2,
858         __negvdi2): Prototype.
859
860         * ssa.c (apply_delayed_renames): Avoid undefined operation.
861
862         * toplev.c (display_target_options): Make static to match
863         prototype.  Delete empty declaration.
864
865 2000-10-20  Tom Tromey  <tromey@cygnus.com>
866
867         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
868         * gcc.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Added -MF and -MT.
869
870 Fri Oct 20 17:05:49 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
871
872         * expr.c (expand_expr, case SAVE_EXPR): Set RTX_UNCHANGING_P on
873         returned MEM.
874         (expand_expr_unaligned, case ARRAY_REF): Check that index is
875         a constant before comparing it; use tree_low_cst.
876         * tree.c (save_expr): Set TREE_READONLY.
877         (substitute_expr): Return inside of NON_LVALUE_EXPR.
878         (build, build1): Set TREE_READONLY if all operands are.
879         (build_index_type): If upper bound is a negative number, lower
880         bound is zero and sizetype is unsigned, use upper bound of one and
881         lower of zero.
882
883 2000-10-20  David Edelsohn  <edelsohn@gnu.org>
884
885         * gcc.c (process_command, main): Use "because" instead of
886         "since" in error messages.
887
888 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
889
890         * stor-layout.c (compute_record_mode): Use tree_low_cst.
891         Don't use mode of field for record unless sizes are the same.
892         (layout_type, case ARRAY_TYPE): Remove special bounds handling
893         previously added for Ada; also change to using host_integerp
894         and tree_low_cst.
895
896         * loop.c (strength_reduce): Show when new register made for
897         giv is known to be a pointer and its aligment if so and known.
898         (loop_dump_aux): Show VERBOSE parameter unused.
899
900         * gcse.c (set_hash_table_size): Now unsigned.
901         * sdbout.c (template_name_p): Add "const" to avoid warnings.
902         (sdbout_record_type_name, plain_type_1, sdbout_symbol): Likewise.
903         (sdbout_one_type, sdbout_parms, sdbout_reg_parms): Likewise.
904         (sdbout_end_epilogue): Remove variable NAME.
905         * system.h (getopt): Add default definition.
906         * config/alpha/alpha.c (print_operand): Don't continue processing
907         after issuing error.
908         (summarize_insn): Avoid use of UL in constant.
909
910         * function.c (locate_and_pad_parm): Use host_integerp and tree_low_cst.
911
912         * fold-const.c (force_fit_type): Unsigned values can overflow
913         if they are sizetype.
914         (int_const_binop): Don't use cache if overflows.
915
916 2000-10-20  Richard Henderson  <rth@cygnus.com>
917
918         * function.c (locate_and_pad_parm): Zero alignment_pad.
919
920         * regrename.c (rr_replace_reg): Rewrite to use recog_data to
921         perform substitutions, and apply_change_group to see if it worked.
922
923 Fri Oct 20 13:33:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
924
925         * dwarf2out.c (add_bound_info): Also ignore COND_EXPR.
926
927         * combine.c (struct undo): Change int to unsigned int.
928         (do_SUBST_INT): Args are unsigned int.
929         (make_extraction, force_to_mode): Use proper type when forming mask.
930         (make_field_assignment): Likewise.
931
932 2000-10-20  Joseph S. Myers  <jsm28@cam.ac.uk>
933
934         * c-common.c (check_format_info_recurse): Extract string constant
935         initializers from non-volatile constant arrays and check them as
936         formats.
937         * c-typeck.c (decl_constant_value): Don't check pedantic or check
938         for DECL_MODE (decl) != BLKmode.
939         (decl_constant_value_for_broken_optimization): New function which
940         includes these checks.
941         (default_conversion, convert_for_assignment, digest_init): Use
942         decl_constant_value_for_broken_optimization instead of
943         decl_constant_value.
944
945 2000-10-20  Mark Mitchell  <mark@codesourcery.com>
946
947         * tree.h (DECL_ALIGN_UNIT): New macro.
948
949 2000-10-14  Marek Michalkiewicz  <marekm@linux.org.pl>
950
951         * config/avr/avr-protos.h (avr_output_bld): New.
952         (out_shift_with_cnt): Add t_len argument.
953         * config/avr/avr.c (avr_num_arg_regs): Remove -mpack-args.
954         (output_movqi, output_movhi, output_movsisf): Optimize loading
955         any constant with exactly one bit set to NO_LD_REGS.
956         (out_shift_with_cnt): Optimize output code for size or speed,
957         depending on optimize_size.  Handle small shift counts as well
958         (if not hand-optimized in ?sh??i3_out).  Shifts can be done
959         with or without a scratch register, with help of __tmp_reg__
960         or __zero_reg__ if necessary.  Add T_LEN argument to pass the
961         length of TEMPLATE in words, return total insn length in *LEN.
962         (ashlqi3_out, ashrqi3_out, lshrqi3_out): Change all calls to
963         out_shift_with_cnt to work with the above change.
964         (ashlhi3_out, ashlsi3_out, ashrhi3_out, ashrsi3_out, lshrhi3_out,
965         lshrsi3_out): Likewise.  Optimize more known shift count cases.
966         Remove cases already well optimized in out_shift_with_cnt.
967         (avr_output_bld): New function.
968         * config/avr/avr.h (MASK_PACK_ARGS, TARGET_PACK_ARGS): Remove.
969         (TARGET_SWITCHES): Remove -mpack-args backward compatibility.
970         * config/avr/avr.md (*reload_inqi, *reload_inhi, *reload_insi):
971         Add reload_completed to insn condition - only for peepholes.
972         (ashlqi3, ashrqi3, lshrqi3): Correct insn length for shift counts
973         in a register or memory.
974         (ashlhi3, ashlsi3, ashrhi3, ashrsi3, lshrhi3, lshrsi3): Likewise.
975         Do not require a scratch register.
976         (*ashlhi3_const, *ashlsi3_const, *ashrhi3_const, *ashrsi3_const,
977         *lshrhi3_const, *lshrsi3_const): New insns and matching peepholes.
978         Optimize shifts by known count using a scratch register, but only
979         if one is still available after register allocation.
980
981 2000-10-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
982
983         * t-vax: New file.  Don't build modules from libgcc1.c.
984
985 Fri Oct 20 00:57:00 EDT 2000  John Wehle  (john@feith.com)
986
987         * alias.c: (mark_constant_function): Don't check pure functions.
988         Initialize and end alias analysis.
989         (nonlocal_mentioned_p): Rename from nonlocal_reference_p.
990         Don't make a special exception for recursion.  Handle
991         UNSPEC_VOLATILE.  Don't assume ASM_OPERANDS is non-local
992         unless it's volatile.
993
994         * local-alloc.c (equivalence): New structure.
995         (reg_equiv): Define.
996         (contains_replace_regs): Remove array and use
997         field in reg_equiv.
998         (memref_referenced_p): Likewise.
999         (no_equiv): Likewise.
1000         (update_equiv_regs): Likewise.
1001
1002         (equiv_init_varies_p,
1003         equiv_init_movable_p): New functions.
1004         (update_equiv_regs): Use them.  Use rtx_varies_p
1005         instead of function_invariant_p.  Process insns
1006         from end to beginning.  Allow a REG_EQUIV insn
1007         within the same loop as a use to be moved, also
1008         allow it to be moved out of a loop.  Update
1009         REG_DEAD notes when substituting into an insn.
1010
1011 2000-10-19  Jim Wilson  <wilson@cygnus.com>
1012
1013         * c-decl.c (start_decl): Check for error_mark_node type before using
1014         COMPLETE_TYPE_P.
1015         (finish_decl): Likewise.  Don't give an error if decl type is
1016         already error_mark_node.
1017
1018         * haifa-sched.c (compute_trg_info): Add explanatory comments.
1019         New local update_blocks.  Use update_blocks to remove duplicates
1020         when computing update blocks.  Check for bblst_table overflow.
1021         (schedule_block): Add explanatory comment.  Reduce bblst_size by
1022         factor of 2.
1023         * config/ia64/ia64.md (movdi_symbolic): Document loss of REG_LABEL
1024         notes.
1025
1026 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1027
1028         * libgcc2.c (_mulvsi3): Change variables u and v to a and b.
1029
1030 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1031
1032         * expmed.c: Minor corrections in comments.
1033         * invoke.texi: Added desciption for the new option -ftrapv.
1034
1035 2000-10-19  Chandrakala Chavva   <cchavva@redhat.com>
1036
1037         * libgcc2.c: Added the missing #endif.
1038
1039 Thu Oct 19 14:25:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1040
1041         * i386.h (CONST_OK_FOR_LETTER): Re-add 'N'; document.
1042
1043 2000-10-18  Chandrakala Chavva  <cchavva@redhat.com>
1044
1045         * expmed.c (expand_mult): Don't do synth_mult optimization for -ftrapv.
1046         Use smulv_optab for -ftrapv.
1047         (expand_mult_highpart): Use unsigned multiply.
1048         (expand_divmod): Special-case division by -1.
1049         For EXACT_DIV_EXPR, do right shift first, then the multiply.
1050         For complex divide, use abs with unsigned result.
1051         * expr.c (force_operand): Use unsigned multiply.
1052         (expand_expr): Use overflow-trapping optabs for signed types if
1053         flag_trapv.
1054         If flag_trapv, don't generate a recursive call with EXPAND_SUM
1055         if the type is signed and the original call wasn't EXPAND_SUM or
1056         EXPAND_INITIALIZER.
1057         * expr.h (addv_optab, subv_optab, smulv_optab, sdivv_optab): Declare.
1058         (negv_optab, absv_optab): Declare.
1059         * flags.h (flag_trapv): Declare.
1060         * genopinit.c (optabs): Add entries for addv_optab, subv_optab,
1061         smulv_optab, sdivv_optab, negv_optab and absv_optab.
1062         (gen_insn): Interpret '$P' as requiring an integer mode,
1063         including partial integer modes.
1064         * loop.c (emit_iv_add_mult): Use unsigned expand_mult_add.
1065         (product_cheap_p): Use unsigned expand_mult.
1066         * optabs.c (addv_optab, subv_optab, smulv_optab, sdivv_optab): Define.
1067         (negv_optab, absv_optab): Define.
1068         (expand_binop): Use overflow-trapping optabs for signed types if
1069         flag_trapv.
1070         Handle negv_optab libe neg_optab.
1071         (expand_abs): Take result_unsignedp argument instead of unsignedp one.
1072         Use overflow-trapping optabs for signed result if flag_trapv.
1073         (expand_complex_abs): Use overflow-trapping optabs for signed types if
1074         flag_trapv.
1075         Don't open-code complex absolute-value operation for flag_trapv.
1076         (init_optabs): Initialize addv_optab, subv_optab, smulv_optab,
1077         sdivv_optab, negv_optab and absv_optab.
1078         * toplev.c (flag_trapv): Define.
1079         (lang_independent_options f_options): Include flag_trapv.
1080         * tree.h (TYPE_TRAP_SIGNED): Define.
1081         * libgcc2.c (__addvsi3, __addvdi3, __subvsi3,__subvsi3, __subvdi3,
1082         __mulvsi3, __negvsi2, __negvdi2, __absvsi2, __absvdi2, __mulvdi3):
1083         New functions.
1084         * Makefile.in: add _absvsi2 _absvdi2 _addvsi3 _addvdi3 _subvsi3
1085         _subvdi3 _mulvsi3 _mulvdi3 _negvsi2 _negvdi2.
1086
1087 2000-10-18  Geoffrey Keating  <geoffk@cygnus.com>
1088             David V. Henkel-Wallace  <gumby@cygnus.com>
1089
1090         * config/i386/t-netware: Bring in from the Red Hat tree.
1091         * config/i386/netware.h: Likewise.
1092         * config/netware.h: Likewise.
1093         * config/rs6000/netware.h: Delete.
1094         * configure.in: Add i[34567]86-*-netware.
1095         * configure: Hand-edit to match configure.in change.
1096
1097 2000-10-18  Mark Mitchell  <mark@codesourcery.com>
1098
1099         * c-common.h (flag_no_builtin): Declare.
1100         (flag_no_nonansi_builtin): Likewise.
1101         (c_common_nodes_and_builtins): Change prototype.
1102         * c-common.c (flag_no_builtin): New variable.
1103         (flag_no_nonansi_builtin): Likewise.
1104         (c_common_nodes_and_builtins): Remove parameters.  Adjust
1105         accordingly.
1106         * c-decl.c (flag_no_builtin): Remove.
1107         (flag_no_nonansi_builtin): Likewise.
1108         (init_decl_processing): Adjust call to
1109         c_common_nodes_and_builtins.
1110
1111 2000-10-18  Marc Espie <espie@openbsd.org>
1112
1113         * tm.texi (LIBGCC_SPEC): Synch with reality.
1114
1115 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1116
1117         * c-common.c (check_format_types): Check for writing through a
1118         NULL pointer argument.
1119
1120 2000-10-18  Hans-Peter Nilsson  <hp@axis.com>
1121
1122         * tm.texi (Exception Region Output): Document
1123         DWARF_CIE_DATA_ALIGNMENT.
1124         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Wrap definition in
1125         #ifndef.
1126         [ENABLE_CHECKING] (reg_save): Abort if offset is not a multiple of
1127         DWARF_CIE_DATA_ALIGNMENT.
1128
1129 2000-10-18  Michael Hayes  <mhayes@cygnus.com>
1130
1131         * basic-block.h (struct loop): Delete fields pre_header_root
1132         and pre_header_trace and replace with pre_header_edges
1133         and num_pre_header_edges.
1134         * flow.c (flow_loop_dump): Dump pre_header_edges.
1135         (flow_loops_free): Free pre_header_edges.
1136         (flow_loop_pre_header_scan): Calculate pre_header_edges.
1137
1138 2000-10-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1139
1140         * contrib.texi: Update references to steering committee members
1141         and Jeff Law's entry.
1142
1143 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1144
1145         * c-common.c (CPLUSPLUS_STD_VER, C_STD_VER, C_STD_NAME): Define.
1146         (maybe_read_dollar_number, check_format_info_main): Use them for
1147         pedantic warning messages.
1148
1149 2000-10-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1150
1151         * c-common.c (check_format_info_main): Minor cleanup: move
1152         variables into inner scopes; initialize declarations where
1153         appropriate; don't hardcode "scanf" name on warning for zero
1154         width.
1155
1156 2000-10-17  Mark Mitchell  <mark@codesourcery.com>
1157
1158         * c-common.c (back_end_hook): New variable.
1159         * c-common.h (back_end_hook): Declare it.
1160         * c-lang.c (finish_file): Use it.
1161
1162         * emit-rtl.c (init_emit_once): Initialize the const_int_htab
1163         earlier.
1164
1165 2000-10-18  Jan Hubicka  <jh@suse.cz>
1166
1167         * i386.c (ix86_comparison_operator, put_condition_code,
1168         ix86_match_ccmode, ix86_cc_mode): Handle CCRCmode.
1169         (ix86_expand_strlensi_unroll_1): Use CCRCmode.
1170         * i386.h (EXTRA_CC_MODES): Add CCRCmode.
1171         * i386.md (adddi and negdi splitter): Use CCRCmode.
1172         (add?i_3, add?i_4, add?i_5): Use CCRCmode; swap operands
1173         (subsi3_carry): add '*'
1174         (addsi3_carry_rc, subsi3_carry_rc, x86_movsicc_0_m1_rc): New.
1175         (cmp to add peep2): Use CCRCmode; swap operands.
1176
1177 2000-10-18  Kazu Hirata  <kazu@hxi.com>
1178
1179         * h8300.c: Fix a comment typo.
1180         (round_frame_size): New.
1181         (compute_saved_regs): Likewise.
1182         (push): Likewise.
1183         (pop): Likewise.
1184         (push_order): Remove.
1185         (pop_order): Likewise.
1186         (function_prologue): Rearrange code for readability.
1187         (function_epilogue): Likewise.
1188
1189         * config/h8300/h8300.md: Remove an unnecessary sign_extend
1190         expander that is used when not optimizing.  Output a tab after
1191         each assembly insns.
1192
1193         * reorg.c: Fix formatting.
1194
1195 2000-10-17  Joern Rennecke <amylaar@redhat.co.uk>
1196
1197         * reload1.c (move2add_note_store): Check for simple
1198         auto-inc in destination.
1199
1200 2000-10-17  Michael Chastain  <chastain@redhat.com>
1201
1202         * config/i386/i386-aout.h: define INT_ASM_OP.
1203
1204 Tue Oct 17 20:11:08 2000  Alan Modra <alan@linuxcare.com.au>
1205
1206         * pa.c (print_operand): Handle case 'c' for .vtable_inherit
1207
1208 Tue Oct 17 20:05:51 2000  Martin Buchholz <martin@xemacs.org>
1209
1210         * i370.md: Fix spelling typo.
1211
1212 2000-10-17  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1213
1214         * function.c (locate_and_pad_parm): Don't align stack unconditionally.
1215         Fixes execute/20001017-1.c on powerpc-linux-gnu.
1216
1217         * expr.c (store_constructor): Apply MEM_ALIAS_SET to MEMs only.
1218         * rs6000/rs6000.c (rs6000_hash_constant): Use X0INT to access a
1219         LABEL_REF.
1220
1221         * rs6000/rs6000.h (NO_DOLLAR_IN_LABEL, DOLLARS_IN_IDENTIFIERS,
1222         ENCODE_SECTION_INFO, ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Move from
1223         here...
1224         * rs6000/aix.h: ...to here.
1225         * rs6000/linux.h (ASM_APP_ON, ASM_APP_OFF): Define to Linux-style.
1226
1227 2000-10-17  Jakub Jelinek  <jakub@redhat.com>
1228
1229         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Reload gp if needed.
1230
1231         * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Always use call, make
1232         sure linker can relax even the delay slot mov %g1,%o7, fix output
1233         formating.
1234
1235 2000-10-17  Kazu Hirata  <kazu@hxi.com>
1236
1237         * config/h8300/h8300.md: Remove an unnecessary zero_extend
1238         expander that is used when not optimizing.  Output a tab after
1239         each assembly insns.
1240
1241 2000-10-17  Chandrakala Chavva  <cchavva@redhat.com>
1242
1243         * gcc.c: New options --target-help.
1244         (process_command): Added code to parse this new option.
1245         * toplev.c (display_target_options): New function to support the
1246         above new option.
1247         * cppinit.c (new_pending_directive) : New option OPT_target__help.
1248         (cpp_handle_option): Support this new option.
1249         * invoke.texi: Added notes about --target-help option.
1250
1251 2000-10-17  Graham Stott  <grahams@redhat.com>
1252
1253         * config/i386/i386.md (testqi_1): Add missing operand prefix
1254         for operand 0.
1255         * config/i386/i386-protos.h: Add missing prototype.
1256
1257 2000-10-17  Diego Novillo  <dnovillo@cygnus.com>
1258
1259         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Symbol
1260         _GLOBAL_OFFSET_TABLE should not have a $ prefix when
1261         using -mintel-syntax.
1262
1263 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1264
1265         * c-common.c (FMT_FLAG_DOLLAR_MULTIPLE): Define.
1266         (format_types): Use it for printf.
1267         (maybe_read_dollar_number): Add parameter for the kind of format
1268         involved.  Warn for multiple use for arguments if this is
1269         inappropriate for the kind of format involved.
1270         (check_format_info_main): Update calls to maybe_read_dollar_number.
1271
1272 2000-10-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1273
1274         * inclhack.def (hpux_maxint): Also apply fix to values.h.
1275         * fixincl.x: Rebuilt.
1276
1277 2000-10-17  Alexandre Oliva  <aoliva@redhat.com>
1278
1279         * genrecog.c (write_switch): Return the first condition that needs a
1280         label.
1281
1282 2000-10-17  Bernd Schmidt  <bernds@redhat.co.uk>
1283
1284         * c-tree.h (warn_sequence_point): Move declaration to...
1285         * c-common.h (warn_sequence_point): ... here.
1286         * c-decl.c (warn_sequence_point): Move definition to...
1287         * c-common.c (warn_sequence_point): ... here.
1288         (struct reverse_tree): New.
1289         (reverse_list, reverse_max_depth): New static variables.
1290         (build_reverse_tree, common_ancestor, modify_ok
1291         verify_sequence_points): New functions.
1292         (c_expand_expr_stmt): Call verify_sequence_points if -Wsequence-point.
1293         * c-typeck.c (check_modify_expr): Delete.
1294         (build_modify_expr): Don't call it.
1295
1296 2000-10-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1297
1298         * c-common.h (warn_missing_format_attribute): New variable.
1299         * c-decl.c (warn_missing_format_attribute): New variable.
1300         (c_decode_option): Decode -Wmissing-format-attribute and
1301         -Wno-missing-format-attribute.
1302         * c-common.c (check_function_format): If
1303         -Wmissing-format-attribute, give a warning where a vprintf or
1304         vscanf function is called by a function without its own printf or
1305         scanf attribute.
1306         * toplev.c (documented_lang_options): Add
1307         -Wmissing-format-attribute.
1308         * invoke.texi: Document -Wmissing-format-attribute.
1309
1310 2000-10-17  Marc Espie <espie@openbsd.org>
1311
1312         * invoke.texi (-shared): Insist on requiring code generation flags
1313         to be used along with -shared, and document the subtle failure that
1314         may occur otherwise.
1315
1316 2000-10-16  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1317
1318         * pa.md (return_internal): Move `use' after `return'.
1319
1320 2000-10-16 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
1321
1322         * machmode.def: Correct comment.
1323
1324 2000-10-16  Rodney Brown  <RodneyBrown@mynd.com>
1325
1326         * print-rtl.c (print_rtx_head): Constify.
1327         * rtl.h (print_rtx_head): Similarly.
1328
1329         * config/pa/pa/pa-protos.h (output_64bit_and, output_64bit_ior):
1330         Constify char * return value.
1331         * config/pa/pa/pa.c
1332         (output_64bit_and, output_64bit_ior): Constify char * return value.
1333         (pa_can_combine_p): Make static.
1334         (function_arg): Decorate unused `named' argument. Fix comment typo.
1335         (function_arg_partial_nregs): Decorate unused `named' argument.
1336
1337 2000-10-16  Joseph S. Myers  <jsm28@cam.ac.uk>
1338
1339         * c-common.c (format_check_results): New structure.
1340         (finish_dollar_format_checking): Adjust to take a
1341         format_check_results * parameter.
1342         (check_format_info, check_format_info_recurse,
1343         check_format_info_main): Split check_format_info into three
1344         functions, the main checking going in check_format_info_main.
1345         Recurse when any reduction of the format string argument towards a
1346         string literal is done; go down both branches of a conditional
1347         expression.  Don't warn for extra format arguments or empty format
1348         strings if they only occur in some branches of a conditional
1349         expression.
1350
1351 2000-10-16  Kazu Hirata  <kazu@hxi.com>
1352
1353         * config/h8300/h8300.c: Remove obstack.  Include ggc.h.
1354
1355 2000-10-16  Jakub Jelinek  <jakub@redhat.com>
1356
1357         * rtlanal.c (may_trap_p): Check operand modes of COMPARE.
1358
1359 2000-10-15  Diego Novillo  <dnovillo@cygnus.com>
1360
1361         * i386.md (*movsi_or): Switch operand order for intel syntax.
1362
1363 2000-10-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1364
1365         * PROBLEMS: Remove.
1366
1367         * gcc.texi (Contributing): Update.
1368
1369 2000-10-13  Diego Novillo  <dnovillo@cygnus.com>
1370
1371         * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Output final jump using
1372         appropriate assembler dialect.
1373
1374 2000-10-13  Alexandre Oliva  <aoliva@redhat.com>
1375
1376         * c-common.c (c_expand_builtin): PARAMS-ize prototype.
1377
1378 2000-10-12  Marek Michalkiewicz  <marekm@linux.org.pl>
1379
1380         * config/avr/avr.c (output_movhi, output_movsisf): Fix loading
1381         constants 1 and 2 to NO_LD_REGS.
1382
1383 2000-10-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1384
1385         * Makefile.in (c-parse.c, tradcif.c): Create atomically.
1386
1387         * objc/Make-lang.in (objc-parse.c): Likewise.
1388
1389 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1390
1391         * arm.c: Include obstack.h
1392         (minipool_obstack, minipool_startobj): Define.
1393         (arm_add_gc_roots): Initialize them.
1394         (create_fix_barrier): Use our new obstack.
1395         (push_minipool_barrier, push_minipool_fix): Likewise.
1396         (arm_reorg): Release obstack memory.
1397
1398 2000-10-13  Jakub Jelinek  <jakub@redhat.com>
1399
1400         * config/sparc/sparc.md (nonlocal_goto_receiver): Remove.
1401         (prologue, exception_receiver, builtin_setjmp_receiver): New
1402         patterns.
1403         * config/sparc/sparc.h (FINALIZE_PIC): Remove.
1404         * config/sparc/sparc-protos.h (finalize_pic): Remove.
1405         (load_pic_register): New prototype.
1406         * config/sparc/sparc.c (pic_setup_code): Remove.
1407         (finalize_pic): Rename to...
1408         (load_pic_register): ...this function.
1409         Don't look for nonlocal_goto_receivers and emit pic setup code
1410         directly.  Don't check current_function_uses_pic_offset_table.
1411
1412 2000-10-13  Richard Earnshaw <rearnsha@arm.com>
1413
1414         * tree.h (struct obstack): Declare.
1415
1416 2000-10-12  Mark Mitchell  <mark@codesourcery.com>
1417
1418         Remove obstacks.
1419         * Makefile.in (ggc-callbacks.o): Remove target.
1420         (flow.o): Depend on GGC_H.
1421         * alias.c (init_alias_analysis):
1422         Remove ggc_p conditionals.
1423         (end_alias_analysis): Likewise.
1424         * basic-block.h (init_flow): New function.
1425         (allocate_reg_life_data): Declare.
1426         * bb-reorder.c  (function_obstack): Replace with ...
1427         (flow_obstack): ... new variable.
1428         (fixup_reorder_chain): Use it.
1429         * c-decl.c (ggc_p): Remove.
1430         (caller-save.c): Don't call oballoc/obfree.
1431         * combine.c (struct
1432         undobuf): Remove storage.
1433         (try_combine): Don't call oballoc.
1434         (undo_all): Don't call obfree.
1435         * cse.c (insert): Use xmalloc, not
1436         oballoc.
1437         (cse_main): Adjust accordingly.
1438         * dwarf2out.c (save_rtx): Remove
1439         obstack code.
1440         (dwarf2out_init): Remove ggc_p conditionals.
1441         * emit-rtl.c (rtl_obstack): Remove.
1442         (gen_rtx_CONST_INT): Remove ggc_p conditionals.
1443         (make_insn_raw): Likewise.
1444         (emit_insn_before): Likewise.
1445         (emit_insn_after): Likewise.
1446         (emit_insn): Likewise.
1447         (gen_sequence): Likewise.
1448         (copy_insn_1): Remove handling of `b' RTL components.
1449         (init_emit_once): Remove ggc_p conditionals.
1450         * except.c (create_rethrow_ref): Don't fool with obstacks.
1451         (add_partial_entry): Likewise.
1452         (call_get_eh_context): Likewise.
1453         (begin_protect_partials): Likewise.
1454         (protect_with_terminate): Likewise.
1455         * explow.c
1456         (plus_constant_wide): Likewise.
1457         * expr.c (init_expr_once):
1458         Likewise.
1459         (emit_block_move): Likewise.
1460         (clear_storage): Likewise.
1461         (expand_expr): Likewise.
1462         * flow.c (function_obstack): Remove.
1463         (flow_obstack): New variable.
1464         (flow_firstobj): Likewise.
1465         (create_base_block): Use the flow_obstack.
1466         (split_block): Likewise.
1467         (split_edge): Likewise.
1468         (calculate_global_regs_live): Likewise.
1469         (allocate_bb_life_data): Make it static.  Likewiwse.
1470         (init_flow): New function.
1471         (size_int_type_wide): Remove ggc_p conditionals.
1472         * function.c
1473         (push_function_context_to): Don't call save_tree_status.
1474         (pop_function_context_from): Or restore_tree_status.
1475         (assign_stack_local_1): Don't call push_obstacks.
1476         (find_fixup_replacement): Use xmalloc.
1477         (fixup_var_refs_insns): Free the storage.
1478         (insns_for_mem_walk): Don't mess with obstacks.
1479         (instantiate_decls): Likewise.
1480         (trampoline_address): Likewise.
1481         (expand_function_end): Likewise.
1482         * function.h (sturct function):
1483         Remove obstack-related variables.
1484         (save_tree_status): Don't declare.
1485         (restore_tree_status): Likewise.
1486         * gcse.c (compute_can_copy):
1487         Don't call oballoc/obfree.
1488         * genattrtab.c (operate_exp): Remove
1489         ggc_p conditionals.
1490         (simplify_cond): Likewise.
1491         (simplify_test_exp): Don't mess with obstacks.
1492         (optimize_attrs): Likewise.
1493         * gengenrtl.c (gendef): Don't include
1494         ggc_p conditionals.
1495         * ggc-callbacks.c (ggc_p): Remove.
1496         * ggc-none.c (ggc_p): Remove.
1497         * ggc.h (ggc_p): Don't declare.
1498         * integrate.c (save_for_inline): Don't mess with obstacks.
1499         (integrate_decl_tree): Likewise.
1500         (output_inline_function): Likewise.
1501         * lists.c
1502         (init_EXPR_INSN_LIST_cache): Likewise.
1503         * loop.c (temp_obstack):
1504         Remove.
1505         (rtl_obstack): Likewise.
1506         (init_loop): Don't mess with obstacks.
1507         (reg_address_cost): Free BIVs and GIVs.
1508         (check_insns_for_bivs): Use xmalloc, not oballoc.
1509         (find_mem_givs): Likewise.
1510         (record_biv): Likewise.
1511         (general_induction_var): Likewise.
1512         (product_cheap_p): Likewse.
1513         * optabs.c (init_one_libfunc): Remove
1514         ggc_p conditional.
1515         * print-tree.c (debug_tree): Don't use
1516         oballoc/obfree.
1517         (print_node): Likewise.
1518         * profile.c (output_func_start_profiler):
1519         Remove call to temporary_allocation.
1520         * reload1.c
1521         (eliminate_regs_in_insn): Don't mess with obstacks.
1522         * resource.c
1523         (mark_target_live_regs): Use xmalloc.
1524         (free_resource_info): Free the memory.
1525         * rtl.c (rtl_obstack):
1526         Remove.
1527         (rtvec_alloc): Don't mess with obstacks.
1528         (rtx_alloc): Likewise.
1529         (rtx_free): Remove.
1530         (copy_rtx): Don't handle `b' cases.
1531         (read_rtx): Use a local rtl_obstack.
1532         * rtl.h (oballoc): Remove.
1533         (obfree): Likewise.
1534         (pop_obstacks): Likewise.
1535         (push_obstacks): Likewise.
1536         (allocate_bb_life_data): Likewise.
1537         (allocate_reg_life_data): Likewise.
1538         (rtx_free): Likewise.
1539         * sdbout.c (sdbout_queue_anonymous_type):
1540         Use tree_cons, not saveable_tree_cons.
1541         * simplify-rtx.c
1542         (cselib_init): Don't mess with obstacks.
1543         * stmt.c
1544         (mark_block_nesting): Mark the label_chain.
1545         (epxand_label): Use ggc_alloc, not oballoc.
1546         (clear_last_expr): Don't mess with obstacks.
1547         (expand_decl_cleanup): Likewise.
1548         (expand_dcc_cleanup): Likewise.
1549         (expand_dhc_cleanup): Likewise.
1550         (expand_anon_union_decl): Likewise.
1551         (add_case_node): Use xmalloc, not oballoc.
1552         (free_case_nodes): New function.
1553         (expand_end_case): Call it.
1554         * stor-layout.c (layout_type): Don't
1555         mess with obstacks.
1556         (layout_type): Likewise.
1557         * toplev.c (wrapup_global_declarations):
1558         Likewise.
1559         (compile_file): Remove ggc_p conditionals.
1560         (rest_of_compilation): Call init_flow.  Remove ggc_p conditionals.
1561         (decode_f_option): Remove ggc_p conditionals.
1562         * tree.c
1563         (function_maybepermanent_obstack): Remove.
1564         (maybepermanent_obstack): Likewise.
1565         (function_obstack): Likewise.
1566         (tmeporary_obstack): Likewise.
1567         (momentary_obstack): Likewise.
1568         (temp_decl_obstack): Likewise.
1569         (saveable_obstack): Likewise.
1570         (rtl_obstack): Likewise.
1571         (current_obstack): Likewise.
1572         (expression_obstack): Likewise.
1573         (struct obstack_stack): Likewise.
1574         (obstack_stack): Likewise.
1575         (obstack_stack_obstack): Likewise.
1576         (maybepermanent_firstobj): Likewise.
1577         (temporary_firstobj): Likewise.
1578         (momentary_firstobj): Likewise.
1579         (temp_decl_firstobj): Likewise.
1580         (momentary_function_firstobj): Likewise.
1581         (all_types_permanent): Likewise.
1582         (struct momentary_level): Likewise.
1583         (momentary_stack): Likewise.
1584         (init_obstacks): Remove initialization of removed obstacks.
1585         (save_tree_status): Remove.
1586         (restore_tree_status): Likewise.
1587         (temporary_allocation): Liekwise.
1588         (end_temporary_allocation): Liekwise.
1589         (resume_temporary_allocation): Likewise.
1590         (saveable_allocation): Likewise.
1591         (push_obstacks): Likewise.
1592         (push_obstacks_nochange): Likewise.
1593         (pop_obstacks): Likewise.
1594         (allocation_temporary_p): Likewise.
1595         (permanent_allocation): Likewise.
1596         (preserve_data): Likewise.
1597         (preserve_initializer): Likewise.
1598         (rtl_in_current_obstack): Likewise.
1599         (rtl_in_saveable_obstack): Likewise.
1600         (oballoc): Likewise.
1601         (obfree): Likewise.
1602         (savealloc): Likewise.
1603         (expralloc): Likewise.
1604         (print_obstack_name): Likewise.
1605         (debug_obstack): Likewise.
1606         (object_permanent_p): Likewise.
1607         (push_momentary): Likewise.
1608         (perserve_momentary): Likewise.
1609         (clear_momentary): Likewise.
1610         (pop_momentary): Likewise.
1611         (pop_momentary_nofree): Likewise.
1612         (suspend_momentary): Likewise.
1613         (resume_momentary): Likewise.
1614         (make_node): Don't set TREE_PERMANENT.
1615         (copy_node): Remove ggc_p conditionals.  Don't set TYPE_OBSTACK.
1616         Don't set TREE_PERMANENT.
1617         (get_identifier): Remove ggc_p conditionals.
1618         (build_string): Likewise.
1619         (make_tree_vec): Likewise.
1620         (build_decl_list): Remove.
1621         (build_expr_list): Likewise.
1622         (tree_cons): Remove ggc_p conditionals.
1623         (decl_tree_cons): Remove.
1624         (expr_tree_cons): Likewise.
1625         (perm_tree_cons): Likewise.
1626         (temp_tree_cons): Likewise.
1627         (saveable_tree_cons): Likewise.
1628         (build1): Remove ggc_p conditionals.
1629         (build_parse_node): Likewise.
1630         (build_type_attribute_variant): Don't mess with obstacks.
1631         (build_type_copy): Likewise.
1632         (type_hash_canon): Likewise.
1633         (build_pointer_type): Likewise.
1634         (build_reference_type): Likewise.
1635         (build_index_type): Likewise.
1636         (build_range_type): Likewise.
1637         (dump_tree_statistics): Don't print obstack information.
1638         * tree.h
1639         (struct tree_common): Remove permanent_flag.
1640         (TREE_PERMANENT): Remove.
1641         (TREE_SET_PERMANENT): Likewise.
1642         (TYPE_OBSTACK): Likewise.
1643         (struct tree_type): Remove obstack.
1644         (oballoc): Remove.
1645         (savealloc): Likewise.
1646         (build_decl_list): Likewise.
1647         (build_expr_list): Likewise.
1648         (perm_tree_cons): Likewise.
1649         (temp_tree_cons): Likewise.
1650         (saveable_tree_cons): Likewise.
1651         (decl_tree_cons): Likewise.
1652         (expr_tree_cons): Likewise.
1653         (suspend_momentary): Likewise.
1654         (allocation_temporary_p): Likewise.
1655         (resume_momentary): Likewise.
1656         (push_obstacks_nochange): Likewise.
1657         (permanent_allocation): Likewise.
1658         (push_momentary): Likewise.
1659         (clear_momentary): Likewise.
1660         (pop_momentary): Likewise.
1661         (end_temporary_allocation): Likewise.
1662         (pop_obstacks): Likewise.
1663         (push_obstacks): Likewise.
1664         (pop_momentary_nofree): LIkewise.
1665         (preserve_momentary): Likewise.
1666         (saveable_allocation): Likewise.
1667         (temporary_allocation): Likewise.
1668         (resume_temporary_allocation): Likewise.
1669         (perserve_initializer): Likewise.
1670         (debug_obstack): Likewise.
1671         (rtl_in_current_obstack): Likewise.
1672         (rtl_in_saveable_obstack): Likewise.
1673         (obfree): Likewise.
1674         * varasm.c (current_obstack): Remove.
1675         (saveable_obstack): Remove.
1676         (rtl_obstack): Remove.
1677         (immed_double_const): Don't mess with obstacks.
1678         (immed_real_cons): Likewise.
1679         (output_constant_def): Likewise.
1680         (init_varasm_status): Use xcalloc.
1681         (mark_pool_constant): Mark the pool constant itself.
1682         (free_varasm_status): Free memory.
1683         (decode_rtx_const): Call bzero directly, rather than expanding it
1684         inline.
1685         (record_rtx_const): Don't mess with obstacks.
1686         (force_const_mem): Likewise.
1687         * config/arm/arm.c (arm_encode_call_attribute): Remove ggc_p
1688         conditionals.
1689         (aof_pic_entry): Likewise.
1690         * config/ia64/ia64.c (ia64_encode_section_info): Likewise.
1691         * config/m32r/m32r.c (m32r_encode_section_info): Likewise.
1692         * config/pa/pa.c (saveable_obstack): Remove.
1693         (rtl_obstack): Likewise.
1694         (current_obstack): Likewise.
1695         (output_call): Don't mess with obstacks.
1696         (hppa_encode_label): Remove ggc_p conditionals.
1697         * config/romp/romp.c (get_symref): Don't mess with obstacks.
1698         * config/rs6000/rs6000.c (output_toc): Remove ggc_p conditional.
1699         (rs6000_encode_section_info): Likewise.
1700         * config/sh/sh.c (get_fpscr_rtx): Likewise.
1701
1702 Thu Oct 12 16:02:31 MET DST 2000 Jan Hubicka  <jh@suse.cz>
1703
1704         * i386.md (adddi3, subdi3 splitters): Update for new pattern.
1705         (addsi3_cc, addqi3_cc, subsi3_cc): Remove
1706         (addsi3_carry): Canonicalize.
1707         (addqi_5): Remove '*'.
1708         (sbb pattern): Canonicalize.
1709
1710         * i386.md (cmp to inc/add peep2): New.
1711
1712 2000-10-12  Richard Earnshaw  <rearnsha@arm.com>
1713
1714         * bb-reorder.c (reorder_basic_blocks): Allocate an aux block for
1715         the exit block.
1716
1717 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1718
1719         * gcc.texi: Merge in contents of README.TRAD and TESTS.FLUNK.
1720         * README.TRAD, TESTS.FLUNK: Remove.
1721
1722 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1723
1724         * c-common.c (decl_attributes): Don't allow strftime formats with
1725         first_arg_num nonzero.
1726         (check_format_info): Set wanted_type and wanted_type_name to zero
1727         before they are possibly assigned and used.
1728
1729 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1730
1731         * c-common.c (scanf_flag_specs): Add flags ' and I.
1732         (strftime_flag_pairs): Disallow any pair of the _, - and 0 flags,
1733         or the ^ and # flags together.
1734         (scan_char_table): Handle the ' and I flags.
1735         (format_types): Add ' and I flags for scanf.
1736
1737 2000-10-12  Joseph S. Myers  <jsm28@cam.ac.uk>
1738
1739         * c-common.c (print_char_table): Use the unpromoted type for
1740         lengths "h" and "hh" with conversions dioxXu.
1741         (check_format_types): Apply the default argument promotions where
1742         the wanted type is not a pointer target.
1743
1744 2000-10-11  Michael Meeks  <mmeeks@gnu.org>
1745             Joseph S. Myers  <jsm28@cam.ac.uk>
1746
1747         * c-typeck.c (check_modify_expr): New function.
1748         (build_modify_expr): Call it if warn_sequence_point.
1749         * c-decl.c (warn_sequence_point): New variable.
1750         (c_decode_option): Handle -Wsequence-point and
1751         -Wno-sequence-point.  Enable -Wsequence-point as part of -Wall.
1752         * c-tree.h (warn_sequence_point): Declare.
1753         * invoke.texi (-Wsequence-point): Document.
1754         * toplev.c (documented_lang_options): Add -Wsequence-point and
1755         -Wno-sequence-point.
1756         Original work by Michael Meeks, 16 Jun 1998.
1757
1758 Wed Oct 11 06:15:41 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1759
1760         * tree.c (get_narrower): Don't look at precision of field if
1761         not laid out yet.
1762
1763 Tue Oct 10 23:14:33 2000  Denis Chertykov  <denisc@overta.ru>
1764
1765         * config/avr/avr.c (valid_machine_decl_attribute): Allow `extern'
1766         declaration for data with "progmem" attribute.
1767
1768 2000-10-09  Marek Michalkiewicz  <marekm@linux.org.pl>
1769
1770         * config/avr/avr.c (out_shift_with_cnt): Use AS2 macro.
1771         Correct insn length if shift count is a memory operand.
1772         * config/avr/avr.md: New define_peephole2 to use *reload_inqi.
1773         (*iorhi3_clobber): Change lo8 to hi8.
1774         (zero_extendhisi2): Change %B0 to %A1.
1775         (ashlhi3, ashrhi3): Correct insn length.
1776         (andhi3, abssf2, extendqisi2, extendhisi2): Change "cc"
1777         from "clobber" to "set_n" in some alternatives.
1778
1779 2000-10-10  Jakub Jelinek  <jakub@redhat.com>
1780
1781         * reload1.c (calculate_needs_all_insns): If deleting an instruction,
1782         remove its insn_chain structure as well.
1783
1784 2000-10-09  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1785
1786         * dbxout.c (dbxout_source_line): Remove extra tab.
1787
1788 2000-10-09  Hans-Peter Nilsson  <hp@bitrange.com>
1789
1790         * config/elfos.h (UNIQUE_SECTION): Apply STRIP_NAME_ENCODING on name.
1791
1792 2000-10-09  Richard Henderson  <rth@cygnus.com>
1793
1794         * Makefile.in (LANG_LIB2FUNCS): Remove.
1795         (LIB2FUNCS): Remove _pure.
1796         (LIB2ADD): Remove LANG_LIB2FUNCS.
1797         (stage_a): Don't set LANG_LIB2FUNCS.
1798         * libgcc2.c (__terminate): Mark noreturn.
1799         (__pure_virtual): Remove.
1800         * mklibgcc.in: Remove LIB2ADD .txt processing.
1801
1802 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1803
1804         * arm.md (push_multi): Revert unintended change.
1805
1806 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1807
1808         * arm.c: Miscellaneous white space and comment clean-ups.  No
1809         functional change.
1810         * arm.md: Likewise.
1811
1812 2000-10-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1813
1814         * c-common.c (c_expand_builtin_printf): Set the TREE_TYPE of a new
1815         STRING_CST by calling combine_strings.
1816
1817 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1818
1819         * arm.c (thumb_expand_movstrqi): Rewrite to support SSA form.
1820         (thumb_output_move_mem_multiple): Support new insn format.
1821         * arm.md (movmem12b): Use SSA compatible format.
1822         (movmem8b): Likewise.
1823
1824 2000-10-09  Richard Earnshaw  <rearnsha@arm.com>
1825
1826         * arm.md (predicable): New attribute, default to "no".
1827         (all patterns): Mark as predicable if appropriate.
1828         (conditional execution splits): Split using predication format.
1829         (define_cond_exec): Define.
1830         * arm.c (arm_print_operand): handle insn predicate.
1831
1832 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1833
1834         * README.NS32K: Remove file.
1835
1836 2000-10-09  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1837
1838         * README-bugs: Remove file.
1839
1840 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1841         * aclocal.m4 (AM_GNU_GETTEXT): Fix non portable use of == operator
1842         for test.
1843         * configure: Rebuilt.
1844
1845 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1846         * aclocal.m4 (AM_WITH_NLS): When not using included gettext,
1847         disable catalog building if no suitable program was found.
1848         Move warning message from here
1849         (AM_GNU_GETTEXT): To here.
1850         * configure: Rebuilt.
1851
1852 2000-10-08  Philipp Thomas  <pthomas@suse.de>
1853         * aclocal.m4 (GCC_PATH_PROG): New. Like AC_PATH_PROG but uses
1854         different cache variables.
1855         (GCC_PATH_PROG_WITH_TEST): New. Like AM_PATH_PROG_WITH_TEST but
1856         uses different cache variables.
1857         (AM_WITH_NLS): Use GCC_PATH_PROG and GCC_PATH_PROG_WITH_TEST.
1858         * configure: Regenerated.
1859
1860 2000-10-08  Richard Henderson  <rth@cygnus.com>
1861
1862         * Makefile.in (libgcc.mk): Pass SHLIB_EXT, not SHLIB_LIBS.
1863         * configure.in (sparc*-*-solaris*): Use t-slibgcc{,-sld}.
1864         * mklibgcc.in: Consider SHLIB_LINK the entire shlib build command.
1865         Use SHLIB_EXT.
1866
1867         * config/t-linux (SHLIB_EXT): New.
1868         (SHLIB_LINK): Use the entire build command, with substitutions.
1869         (SHLIB_LIBS): Remove.
1870         * config/alpha/t-osf4: Likewise.
1871         * config/mips/t-iris6: Likewise.
1872         * config/sparc/t-sol2: Likewise, but move shlib stuff...
1873         * config/sparc/t-slibgcc-sld: ...here.
1874         * config/sparc/t-slibgcc: New file.
1875
1876 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1877
1878         * tm.texi (INTMAX_TYPE, UINTMAX_TYPE): Define.
1879         * c-common.h (enum c_tree_index): Add CTI_INTMAX_TYPE and
1880         CTI_UINTMAX_TYPE.
1881         (intmax_type_node, uintmax_type_node): Define.
1882         * c-common.c (decl_attributes): If pedantic, warn if `mode'
1883         attributes create a type wider than intmax_t.
1884         (T_IM, T_UIM): Define properly.
1885         * c-decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
1886         defined.
1887         (init_decl_processing): Initialize intmax_type_node and
1888         uintmax_type_node.
1889         * c-lex.c (lex_number): When pedantic and warning for integer
1890         constants that are too large, in C99 mode warn for those that have
1891         a type wider than long long.
1892
1893 2000-10-08  Joseph S. Myers  <jsm28@cam.ac.uk>
1894
1895         * c-common.c (FMT_FLAG_ARG_CONVERT, FMT_FLAG_SCANF_A_KLUDGE,
1896         FMT_FLAG_FANCY_PERCENT_OK): Define.
1897         (format_char_info): Add flag "4" to comment.
1898         (format_flag_spec, format_flag_pair): New structures.
1899         (format_kind_info): Add additional fields to control format
1900         checking.
1901         (printf_flag_specs, printf_flag_pairs, scanf_flag_specs,
1902         scanf_flag_pairs, strftime_flag_specs, strftime_flag_pairs): New
1903         arrays.
1904         (time_char_table): Use "4" flag to handle %Ey.
1905         (format_types): Add entries for new fields.
1906         (get_flag_spec): New function.
1907         (check_format_info): Increase size of flag_chars[] to 256.
1908         Control format checking using the new fields of a format_kind_info
1909         and the new tables; remove all conditionals on printf_format_type,
1910         scanf_format_type or strftime_format_type.  Handle all details of
1911         bad combinations of flags (including width, precision and strftime
1912         modifiers) through data rather than ad hoc code.  Handle all
1913         details of standard versions in which flags appeared through
1914         data.  Use the "4" flag.
1915
1916 2000-10-07  Will Cohen  <wcohen@redhat.com>, Kazu Hirata  <kazu@hxi.com>
1917
1918         * config/h8300/h8300.md: Remove the memory alternative and correct
1919         the insn lengths in the templates for sign extention and zero
1920         extention.
1921
1922 2000-10-07  Richard Henderson  <rth@cygnus.com>
1923
1924         * calls.c (expand_call): Disallow sibcalls to noreturn functions.
1925         * flow.c (make_edges): Revert last change.
1926
1927         * config/alpha/alpha.h (FUNCTION_OK_FOR_SIBCALL): Don't test
1928         TREE_THIS_VOLATILE.
1929         * config/pa/pa.h (FUNCTION_OK_FOR_SIBCALL): Likewise.
1930
1931 2000-10-06  David O'Brien  <obrien@dragon.nuxi.com>
1932
1933         * config/alpha/elf.h: Standardize the formatting.
1934
1935 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
1936
1937         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
1938         #undef.
1939
1940 2000-10-06  Richard Henderson  <rth@cygnus.com>
1941
1942         * function.c (diddle_return_value): Examine
1943         current_function_return_rtx instead of the DECL_RESULT.
1944         (expand_function_end): Handle reloading DECL_RESULT from memory
1945         into a hard register.  Query promote_mode for sign of mismatched
1946         modes.
1947
1948 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1949
1950         * haifa-sched.c (schedule_insns): Fix typo in freeing
1951         forward_dependency_cache.
1952
1953 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
1954
1955         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
1956         `TARGET_SH2' as a condition.
1957
1958 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
1959
1960         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
1961         forward_dependency_cache): New variables.
1962         (add_dependence, remove_dependence): Use anti_dependency_cache and
1963         output_dependency_cache.
1964         (compute_block_forward_dependences): Use forward_dependency_cache.
1965         (schedule_insns): Allocate and free memory for anti/output/forward
1966         dependencies caches.
1967
1968 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
1969
1970         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
1971         `! TARGET_SH1'.  Reindent.
1972
1973 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1974
1975         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
1976         Move functions from here ...
1977
1978         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
1979         ... to here.
1980         (c_expand_builtin): New function.
1981         (init_function_format_info): Don't set `check_function_format_ptr'.
1982         (c_common_nodes_and_builtins): Set built_in_class type for
1983         printf/__builtin_printf to BUILT_IN_FRONTEND.
1984         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
1985
1986         * c-common.h (build_function_call): Declare.
1987
1988         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
1989         to `lang_expand_expr' rather than `expand_builtin'.
1990
1991         * tree.c (check_function_format_ptr): Delete.
1992
1993         * tree.h (check_function_format_ptr): Likewise.
1994
1995 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
1996
1997         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
1998         DW_OP_bregx when cfa->reg > 31.
1999
2000         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
2001         break.
2002
2003 2000-10-05  Richard Henderson  <rth@cygnus.com>
2004
2005         * c-decl.c (warn_missing_noreturn): Remove.
2006         (c_expand_body): Don't set or check can_reach_end.
2007         * c-tree.h (warn_missing_noreturn): Move ...
2008         * flags.h: ... here.
2009         (can_reach_end): Remove.
2010         * flow.c (check_function_return_warnings): New.
2011         (make_edges): No edge to exit for noreturn sibcalls.
2012         * function.c (expand_function_end): Save the return value
2013         clobber instruction.
2014         (mark_function_status): Mark it.
2015         * function.h (struct function): Add x_clobber_return_insn.
2016         * jump.c (can_reach_end): Remove.
2017         (calculate_can_reach_end): Remove.
2018         (jump_optimize_1): Don't call it.
2019         * output.h (check_function_return_warnings): Declare.
2020         * toplev.c (warn_missing_noreturn): Move from c-decl.c
2021         (rest_of_compilation): Call check_function_return_warnings.
2022
2023 2000-10-05  Richard Henderson  <rth@cygnus.com>
2024
2025         * Makefile.in (NM_FOR_TARGET): New.
2026         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
2027         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
2028         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
2029         shared library build on that and EXTRA_MULTILIB_PARTS.
2030         * mkmap-flat.awk: New file.
2031         * mkmap-symver.awk: New file.
2032         * libgcc-std.ver: New file.
2033         * config/libgcc-glibc.ver: New file.
2034         * config/ia64/libgcc-ia64.ver: New file.
2035         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2036         (SHLIB_LINK): Add --version-script.
2037         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
2038         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2039         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
2040         (SHLIB_LINK): Add -M.
2041
2042 2000-10-05  Richard Henderson  <rth@cygnus.com>
2043
2044         * Makefile.in (LIB2FUNCS): Add _clz.
2045         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
2046         (__clz_tab): Put in its own unit, non-static.
2047         * libgcc2.h: Always include longlong.h.
2048
2049         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
2050         a zero instead of -1.
2051         (count_trailing_zeros): Likewise.
2052
2053 2000-10-05  Richard Henderson  <rth@cygnus.com>
2054
2055         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
2056         when second op1 is const0_rtx.  Validate op0 as a register.
2057         * config/alpha/alpha.md (setcc_internal): Don't allow constants
2058         in the first argument of the compare.
2059         (setcc_swapped_internal): Likewise.
2060         (setne_internal): Likewise.
2061
2062 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
2063
2064         * tree.c (tree_size): New function split out of copy_node.
2065         (make_node): Remove obstack handling.  Use tree_size.
2066         (copy_node): Use tree_size.
2067         * tree.h: Prototype tree_size.
2068
2069 2000-10-05  Richard Henderson  <rth@cygnus.com>
2070
2071         * diagnostic.c (output_format): Add missing break.
2072
2073 2000-10-05  Jim Wilson  <wilson@cygnus.com>
2074
2075         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
2076         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
2077         sequence insn to INSN, and delete last sequence insn.
2078
2079 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
2080
2081         * gcc.c (main): Include generated configargs.h header
2082         and use arguments in '-v' output.
2083
2084 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2085
2086         * gcc.c: Move data on prefixes forward in file and reorganize.
2087         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
2088         Always define, but make null if no value.
2089         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
2090         and "md_startfile_prefix_1".
2091         (main): Check whether md_exec_prefix and the others are the
2092         null string rather than whether the macro is defined.
2093
2094 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2095
2096         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
2097         from PSImode to SImode.
2098
2099 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
2100
2101         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
2102         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
2103         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
2104         sizeof(long).
2105
2106 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2107
2108         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
2109         negation in proper type.a
2110
2111 2000-10-04  Richard Henderson  <rth@cygnus.com>
2112
2113         * configure.in (enable-shared): New.
2114         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
2115         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
2116         * mklibgcc.in: Use them to link shared a libgcc.
2117         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
2118         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
2119         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
2120         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
2121
2122         * configure.in (alpha-osf*): Use t-osf and x-osf.
2123         * config/alpha/t-osf: New file.
2124         * config/alpha/t-osf4: New file.
2125         * config/alpha/x-osf: New file.
2126         * config/alpha/x-alpha: Remove file.
2127
2128 2000-10-04  Will Cohen  <wcohen@redhat.com>
2129
2130         * c-typeck.c (process_init_element): Added warning for zero-length
2131         array.
2132
2133         * extend.texi (Zero Length): State that static initializers for
2134         zero-length arrays are not allowed.
2135
2136 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2137
2138         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
2139         to come last.
2140
2141 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2142
2143         * config/float-c4x.h: New.
2144         * configure.in (c4x-*): Set float_format to c4x.
2145         * configure: Regenerate.
2146
2147 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2148
2149         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
2150         compilation for solaris versions 2.7 and greater.
2151
2152 2000-10-02  Marc Espie <espie@openbsd.org>
2153
2154         * config/alpha.h (WORD_SWITCH_TAKES_ARG): add -rpath to default,
2155         instead of redefining from scratch.
2156
2157 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
2158
2159         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
2160
2161 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
2162
2163         * config/ns32k/genix.h: Remove.
2164         * config/ns32k/x-genix: Likewise.
2165         * config/ns32k/xm-genix.h: Likewise.
2166         * config/fx80: Remove all filee in directory.
2167         * config/pyr: Likewise.
2168         * config/tahoe: Likewise.
2169         * config/gmicro: Likewise.
2170         * config/spur: Likewise.
2171         * configure.in: Remove configury bits for above targets.
2172         * configure: Regenerated.
2173
2174         * configure.in: Don't configure chill by default.
2175         * configure: Regenerated.
2176
2177         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
2178         (lang_mark_false_label_stack): Remove.
2179         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
2180         <top level> string in GC area.
2181         (mark_splay_tree_node): New function.
2182         (mark_splay_tree): Likewise.
2183         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
2184         if it exists.
2185         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
2186         * ggc-common.c (lang_mark_false_label_stack): Change type.
2187         * ggc.h (ggc_alloc_string): Add comment.
2188         (ggc_strdup): New function.
2189
2190 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
2191
2192         * config/avr/avr.h (BRANCH_COST): Define as 0.
2193
2194         * config/pdp11/pdp11.c: #include "tree.h" added.
2195
2196 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
2197
2198         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
2199         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
2200         with known shift count.
2201         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
2202         New alternative for shift count 2 with no scratch register.
2203         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
2204         "set_n" for shift counts 1 and 2.
2205
2206 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
2207
2208         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
2209         the mask value from the individual SET operations.
2210         (return_internal_si): Move the USE after the RETURN.
2211         (return_internal_di): Likewise.
2212         (return_and_restore_fpregs_si): Likewise.
2213         (return_and_restore_fpregs_di): Likewise.
2214         (return_eh_si): Likewise.
2215         (return_eh_di): Likewise.
2216         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
2217         or check, the USE.
2218         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
2219         Don't generate a PARALLEL around a single operation movsi_to_cr.
2220         Generate the RETURN first in any PARALLELs.
2221
2222         * rtlanal.c (single_set_1): Use fatal_insn to display the
2223         invalid insn.  Check for more cases when a USE or CLOBBER occurs
2224         before a SET.
2225         * Makefile.in: Update dependencies for rtlanal.o.
2226
2227 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
2228
2229         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
2230
2231 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
2232
2233         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
2234         Consistently use @email for formatting email addresses.
2235
2236 2000-09-29  Richard Henderson  <rth@cygnus.com>
2237
2238         * cse.c (notreg_cost): New argument outer.
2239         (COST): Pass in SET to notreg_cost
2240         (COST_IN): New.
2241         (fold_rtx): Use COST_IN.  Prefer constants when costs
2242         are the same.
2243
2244 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
2245
2246         * fixinc/inclhack.def (broken_cabs): Generalize regex.
2247         * fixinc/fixincl.x: Regenerate.
2248
2249 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2250
2251         * loop.c (check_final_value): A GIV is not replaceable if used
2252         before set.
2253
2254 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
2255
2256         * version.c: Bump to gcc-2.97.
2257
2258 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2259
2260         * final.c (final_scan_insn): Remove extra extract_insn call;
2261         Use caching for constrain_operands.
2262         (cleanup_subreg_operands): Use caching for extract_insn.
2263         * recog.c (constrain_operands_cached): New.
2264         * recog.h (constrain_operands_cached): Declare.
2265         * i386.c (ix86_attr_length_immediate_default,
2266         ix86_attr_length_address_default, ix86_agi_dependant): Cache
2267         extract_insn call.
2268
2269         * recog.c (asm_noperands): Tweak.
2270         (extract_insn): Do not call asm_noperads for non-asm instructions.
2271
2272 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2273
2274         * recog.c (recog_memoized): Rename to recog_memoized_1.
2275         * recog.h (recog_memoized): Rename to recog_memoized_1.
2276         (recog_memoized): New macro.
2277         * rtl.h (single_set): Rename to single_set_1
2278         (single_set): New macro.
2279         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
2280         to be last.
2281
2282         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
2283         Do not use match_dup of input operands at outputs.
2284         Use register_operand for memory expression.
2285         (rep_movsi): Put use last, canonicalize.
2286         Use register_operand for memory expression.
2287         (rep_movqi): Put use last.
2288         Use register_operand for memory expression.
2289         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
2290         of input operands at outputs.  Use register_operand for memory
2291         expression.
2292         (rep_stossi): Put use last; canonicalize; fix match_dup in
2293         the address expression
2294         (rep_stosqi): Likewise.
2295         (memcmp expander): Update calls.
2296         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
2297         the clobbers.
2298
2299         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
2300         VOIDmode.
2301         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
2302
2303 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
2304
2305         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
2306         Contains the old contents of config/i386/freebsd.h
2307         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
2308         Contains the old contents of config/i386/freebsd-elf.h
2309         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
2310         config/i386/freebsd.h.
2311         * configure.in: Adjust for above changes.
2312         * po/POTFILES.in: Likewise.
2313         * po/en_GB.po: Likewise.
2314         * po/gcc.pot: Likewise.
2315         * configure: Rebuilt.
2316
2317 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2318
2319         * doloop.c (doloop_modify): Prevent delete_insn() from
2320         deleting too much.  Prefer loop->top over loop->start as
2321         target for the new JUMP insn.
2322         (doloop_valid_p): Ignore loop with exit_count != 0.
2323
2324 2000-09-28  Philipp Thomas  <pthomas@suse.de>
2325
2326         * invoke.texi (i386 Options): Add athlon to table of possible
2327         choices for -mcpu=.
2328
2329 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
2330
2331         * diagnostic.h (output_clear_message_text): New function.
2332         (output_message_text): New macro.
2333
2334         * diagnostic.c (clear_text_info): Rename to
2335         output_clear_message_text.
2336         (output_clear): Adjust.
2337         (output_finish): Rename to output_finalize_message.  Tweek.
2338         (output_to_stream): Adjust.
2339
2340 2000-09-28  Neil Booth  <neilb@earthling.net>
2341
2342         * cpperror.c (_cpp_begin_message):  Do the test for suppression
2343         of warnings and pedantic warnings before the "is a warning an
2344         error" tests.
2345         * cppinit.c (cpp_handle_option): Remove surplus \n.
2346         * cpplex.c (ON_REST_ARG): Delete.
2347         (skip_block_comment): Initialise prevc.
2348         (parse_args): Improve error messages.
2349         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
2350         than ON_REST_ARG.
2351         * cpplib.c (cpp_push_buffer): Fix grammar in message.
2352         * cppmain.c (main): Set callbacks for #ident and #pragma
2353         only if no_output option is false.
2354         (do_pragma_implementation): Only call the #pragma handler
2355         if it is set in the cpp_reader structure.
2356
2357 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
2358
2359         * integrate.c (copy_insn_list): if an ignored return value
2360         is being clobbered, skip cloning that into the inline copy.
2361
2362 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
2363
2364         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
2365         use @uref for formatting URLs.
2366
2367 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
2368
2369         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
2370         name and prefix.
2371
2372 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
2373
2374         * gcc.c (cpp_options): Add spec for -ftabstop=.
2375         (invoke_as): New spec that handles invoking as.
2376         Update specs to handle -save-temps and -traditional.
2377         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
2378         Use invoke_as.
2379         * cp/lang-specs.h, objc/lang-specs.h: Update to use
2380         invoke_as, and handle -save-temps and -traditional (if
2381         appropriate).
2382
2383 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
2384
2385         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
2386         op0 is a SUBREG.
2387         (function_arg_slotno): Accept TImode/CTImode.
2388         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
2389         to UNITS_PER_WORD.
2390
2391 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
2392
2393         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
2394         from entry block.
2395
2396 2000-09-25  Jim Wilson  <wilson@cygnus.com>
2397
2398         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
2399         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
2400         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
2401         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
2402
2403 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
2404
2405         * cpplex.c (parse_args): Don't set VOID_REST flag.
2406         (CONTEXT_VARARGS): New flag.
2407         (maybe_paste_with_next): Set context earlier in loop.  Use
2408         it.  Do varargs test with CONTEXT_VARARGS flag.
2409         (push_arg_context): Set CONTEXT_VARARGS flag if we're
2410         pushing an argument context for a varargs argument.
2411         * cpplib.h (VOID_REST): Delete.
2412         * gcc.dg/cpp/vararg1.c: Add test case.
2413
2414 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
2415
2416         * flags.h:  Declare warning flag warn_system_headers.
2417         * toplev.c:  Define it.
2418         (W_options): Add option -Wsystem-headers.
2419         * diagnostic.c (count_error): Test warn_system_headers.
2420         * invoke.texi:  Add description for -Wsystem-headers.
2421         * cpplib.h (cpp_options): New member warn_system_headers.
2422         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
2423         CPP_IN_SYSTEM_HEADER.
2424         * cpplib.c (do_import, do_pragma_once): Likewise.
2425         * cpperror.c (_cpp_begin_message): Test warn_system_headers
2426         and CPP_IN_SYSTEM_HEADER.
2427         * cppinit.c (handle_option): Recognize -Wsystem_headers.
2428         (print_help): Describe -Wsystem_headers.
2429         * cpplex.c (lex_line): Reorganize condition so that warnings
2430         about C++ comments in system headers can be enabled. Remove
2431         label do_line_comment.
2432
2433 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
2434
2435         * cpplex.c (save_comment): Only store the initial '/'
2436         now.
2437         (lex_token): Combine handling of the two comment types.
2438         Pass everything but the initial '/' to save_comment.
2439
2440 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
2441
2442         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
2443         _cpp_can_paste): New library-internal prototypes.
2444         * cpplex.c (dump_param_spelling, output_line_command,
2445         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
2446         cpp_printf, cpp_output_list): Move to cppoutput.c.
2447         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
2448         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
2449         cppoutput.c.
2450         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
2451         dump_param_spelling, output_line_command, cpp_scan_buffer,
2452         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
2453         from elsewhere.
2454         * Makefile.in: Add cppoutput.c.
2455         * po/POTFILES.in: Add cppoutput.c.
2456
2457 2000-09-25  Richard Henderson  <rth@cygnus.com>
2458
2459         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
2460         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
2461         split until after reload.
2462         (rotlsi3, rotldi3): New.
2463
2464 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
2465
2466         * diagnostic.c (output_last_position): Define.
2467         (set_real_maximum_length): Tweek.
2468         * diagnostic.h (output_last_position): Declare.
2469
2470 2000-09-25  Kazu Hirata  <kazu@hxi.com>
2471
2472         * config/i386/i386.c: Fix formatting.
2473
2474 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
2475
2476         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
2477         UNITS_PER_WORD is small.
2478
2479 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2480
2481         * c-common.c (format_char_info): Add flags2; update comments.
2482         (print_char_table, scan_char_table, time_char_table): Split some
2483         flags out into flags2.
2484         (check_format_info): Use flags2 for those flags, for identifying
2485         the initial character of a scanf scanset, and for identifying
2486         printf formats where the '0' flag is ignored with precision.
2487
2488 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
2489
2490         Changes below marked "here" add TABs on either or both sides,
2491         covering start of line, up to any operand for all noted .*ASM.*_OP
2492         definitions.  All callers changed.
2493         * tm.texi: Make documented *_ASM.*_OP:s include spacing
2494         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
2495         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2496         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2497         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
2498         Fix typos in description for LONG_LONG_TYPE_SIZE and
2499         FINI_SECTION_ASM_OP.
2500         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
2501         why these defaults don't have leading spacing.
2502         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
2503         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2504         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
2505         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
2506         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
2507         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
2508         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
2509         * varasm.c (ASM_STABS_OP): Here.
2510         * xcoffout.h (ASM_STABS_OP): Here.
2511         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2512         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2513         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
2514         STRING_ASM_OP): Here.
2515         * config/freebsd.h (IDENT_ASM_OP): Here.
2516         * config/linux-aout.h (SET_ASM_OP): Here.
2517         * config/linux.h (SET_ASM_OP): Here.
2518         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2519         INT_ASM_OP): Here.
2520         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2521         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
2522         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
2523         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2524         INT_ASM_OP): Here.
2525         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
2526         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
2527         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
2528         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2529         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
2530         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2531         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
2532         * config/a29k/udi.h (INT_ASM_OP): Here.
2533         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
2534         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2535         SET_ASM_OP): Here.
2536         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
2537         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2538         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2539         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
2540         ASM_STABD_OP): Here.
2541         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
2542         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
2543         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2544         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
2545         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
2546         SIZE_ASM_OP, STRING_ASM_OP): Here.
2547         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
2548         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
2549         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
2550         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
2551         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
2552         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
2553         Here.
2554         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2555         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
2556         * config/arm/coff.h (INT_ASM_OP): Here.
2557         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2558         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
2559         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
2560         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
2561         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
2562         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2563         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
2564         STRING_ASM_OP): Here.  Update documentation copy in comments.
2565         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
2566         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
2567         DATA_SECTION_ASM_OP): Here.
2568         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
2569         Here.
2570         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
2571         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2572         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2573         BSS_SECTION_ASM_OP): Here.
2574         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2575         BSS_SECTION_ASM_OP): Here.
2576         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2577         Here.
2578         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
2579         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
2580         * config/h8300/h8300.h (ASM_WORD_OP): Here.
2581         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2582         BSS_SECTION_ASM_OP): Here.
2583         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
2584         * config/i386/bsd.h (ASM_BYTE_OP): Here.
2585         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
2586         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
2587         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
2588         Here.
2589         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
2590         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
2591         Here.
2592         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
2593         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2594         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
2595         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
2596         SET_ASM_OP): Here.
2597         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
2598         * config/i386/netbsd.h (INT_ASM_OP): Here.
2599         * config/i386/openbsd.h (INT_ASM_OP): Here.
2600         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
2601         IDENT_ASM_OP): Here.
2602         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
2603         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
2604         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
2605         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
2606         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
2607         SHARED_BSS_SECTION_ASM_OP): Here.
2608         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
2609         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2610         DATA_SECTION_ASM_OP): Here.
2611         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2612         CONST_SECTION_ASM_OP): Here.
2613         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
2614         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2615         BSS_SECTION_ASM_OP): Here.
2616         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
2617         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
2618         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
2619         BSS_ASM_OP): Here, but use trailing spaces.
2620         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2621         DATA_SECTION_ASM_OP): Here.
2622         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
2623         Here.
2624         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
2625         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
2626         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2627         TDESC_SECTION_ASM_OP): Here.
2628         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
2629         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2630         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2631         Here.
2632         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2633         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
2634         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2635         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
2636         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
2637         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
2638         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2639         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
2640         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
2641         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
2642         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2643         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2644         SET_ASM_OP): Here.
2645         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2646         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2647         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
2648         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
2649         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
2650         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
2651         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
2652         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2653         GLOBAL_ASM_OP): Here.
2654         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
2655         BSS_SECTION_ASM_OP): Here.
2656         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
2657         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2658         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
2659         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
2660         SKIP_ASM_OP): Here.
2661         * config/m68k/newsgas.h (SET_ASM_OP): Here.
2662         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
2663         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
2664         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
2665         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
2666         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
2667         but use trailing spaces.
2668         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
2669         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
2670         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
2671         Here.
2672         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2673         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
2674         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2675         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
2676         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2677         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
2678         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
2679         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
2680         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
2681         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
2682         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
2683         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
2684         ASM_BYTE_OP): Here.
2685         * config/m88k/openbsd.h (SET_ASM_OP): Here.
2686         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2687         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
2688         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
2689         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
2690         DTORS_SECTION_ASM_OP): Here.
2691         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
2692         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2693         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
2694         BSS_SECTION_ASM_OP): Here.
2695         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
2696         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
2697         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
2698         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
2699         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
2700         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
2701         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
2702         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
2703         Here.
2704         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
2705         Here.
2706         * config/mips/osfrose.h (SET_ASM_OP): Here.
2707         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
2708         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
2709         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
2710         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2711         Here.
2712         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
2713         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
2714         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
2715         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
2716         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
2717         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2718         Here.
2719         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2720         Here.
2721         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
2722         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
2723         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
2724         Here.
2725         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
2726         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
2727         * config/sparc/linux.h (COMMON_ASM_OP): Here.
2728         * config/sparc/linux64.h (COMMON_ASM_OP,
2729         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
2730         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
2731         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
2732         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
2733         * config/sparc/pbd.h (ASM_INT_OP): Here.
2734         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
2735         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
2736         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
2737         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
2738         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
2739         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
2740         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
2741         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
2742         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
2743         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2744         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
2745         EH_FRAME_SECTION_ASM_OP): Here.
2746         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
2747         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2748         Here.
2749         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2750         Here.
2751         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
2752         TCOMMON_ASM_OP): Here.
2753         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
2754         Here.
2755         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
2756         ASM_BYTE_OP): Here.
2757
2758 2000-09-25  Richard Henderson  <rth@cygnus.com>
2759
2760         * expmed.c (store_bit_field): Adjust last change to not consider
2761         any word-sized field naturally aligned.
2762
2763 2000-09-24  Richard Henderson  <rth@cygnus.com>
2764
2765         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
2766         TFmode unordered compares properly.  Revalidate integer compare
2767         operands.
2768         (alpha_emit_setcc): New.
2769         (alpha_emit_conditional_move): Revalidate integer compare operands.
2770         * config/alpha/alpha-protos.h: Update.
2771         * config/alpha/alpha.md (cmpdi): Allow general operands.
2772         (sne): Use alpha_emit_setcc.
2773         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
2774         (sunordered, sordered): New.
2775
2776 2000-09-24  Richard Henderson  <rth@cygnus.com>
2777
2778         * config/ia64/ia64-protos.h: Update.
2779         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
2780         (ia64_expand_call): New.
2781         (ia64_expand_prologue): Emit an alloc if we need extra input
2782         registers.
2783         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
2784         instruction if true.
2785         (struct reg_flags): Add is_sibcall.
2786         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
2787         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
2788         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
2789         * config/ia64/ia64.h (PREDICATE_CODES): Update.
2790         * config/ia64/ia64.md (call): Use ia64_expand_call.
2791         (call_value): Likewise.
2792         (sibcall, sibcall_value): New.
2793         (call patterns): Remove extra expanders; tidy.
2794         (sibcall_epilogue): New.
2795         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
2796
2797 2000-09-24  Richard Henderson  <rth@cygnus.com>
2798
2799         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
2800
2801         * sibcall.c (skip_pic_restore): New.
2802         (identify_call_return_value): Use it.
2803
2804 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
2805
2806         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
2807         functions.  Generalize to handle both C and C++.
2808         * Makefile.in (c-tree.info): New target.
2809         (info): Add c-tree.info.
2810
2811 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2812
2813         * expr.c (store_field): If BITSIZE is negative, use size of type.
2814         (expand_expr, case COMPONENT_EXPR): Likewise.
2815
2816 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
2817
2818         * cpplex.c: Update TODO comment.
2819         * cpplib.c (do_error, do_warning): Merge common code of
2820         do_error and do_warning into do_diagnostic.  Use it.
2821         (do_diagnostic): New function.
2822         * cpplib.h: Fix comment typo.
2823
2824 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
2825
2826         * c-common.c (check_format_info): Warn for a wide character string
2827         used as a non-wide format argument.
2828
2829 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
2830
2831         * builtins.def (BUILT_IN_LLABS): Add.
2832         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
2833         * c-common.c (c_common_nodes_builtins): Create builtin functions
2834         __builtin_llabs, and plain llabs unless no_nonansi_builtins
2835         outside of C99 mode.
2836         (expand_tree_builtin): Handle BUILT_IN_LLABS.
2837
2838 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
2839
2840         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
2841         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
2842         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
2843         _cpp_free_toklist): No need to worry about extra dummy token
2844         at the start of token lists any more.
2845         (trigraph_ok): Only warn outside comments.
2846         (skip_block_comment): Set and clear lexing_comment.
2847         (skip_line_comment): Take a cpp_reader not cpp_buffer.
2848         Set and clear lexing_comment.
2849         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
2850         (check_long_token): Delete.
2851         (lex_percent, lex_dot): New subroutines of lex_token to
2852         handle lexing of '.' and '%' without lookback.
2853         (lex_token): Use lex_dot and lex_percent.
2854         (lex_line): Don't check for LIST_OFFSET.
2855         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
2856         * cpplib.c (_cpp_parse_assertion): Similarly.
2857         (cpp_push_buffer): Initialize extra_char.
2858         * cpplib.h (LIST_OFFSET): Delete.
2859         (struct cpp_buffer): New member extra_char.
2860         (struct lexer_state): New members lexing_comment and seen_dot.
2861
2862 2000-09-23  Jason Merrill  <jason@redhat.com>
2863
2864         * config/rs6000/x-aix41 (CLIB): Define here.
2865         * config/rs6000/t-aix43: Not here.
2866         * config/rs6000/t-aix41: Or here.  Remove.
2867         * configure.in: Don't use it.
2868
2869 2000-09-22  Jason Merrill  <jason@redhat.com>
2870
2871         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
2872         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
2873         * config.in: Regenerate.
2874
2875         * configure.in: Fix checks for assembler features when using a
2876         one-tree assembler that has not yet been built.
2877         Fix --disable-threads.
2878
2879 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
2880
2881         * stmt.c (expand_asm_operands): Allow # in constraints.
2882
2883 2000-09-22  Jason Merrill  <jason@redhat.com>
2884
2885         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
2886
2887         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
2888         function-local names.
2889
2890 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
2891             Mark Mitchell  <mark@codesourcery.com>
2892
2893         * toplev.c (warn_disabled_optimization): Declare new warning flag.
2894         * flags.h (warn_disabled_optimization): Add it here.
2895         * gcse.c (gcse_main): Add warning when disabled.
2896         * invoke.texi: Document -Wdisabled-optimization.
2897
2898 2000-09-21  Jason Merrill  <jason@redhat.com>
2899
2900         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
2901
2902         * dwarf2out.c (tree_add_const_value_attribute): New fn.
2903         (gen_variable_die): Call it for non-definitions.
2904
2905         * dwarf2out.c (die_struct): Add die_mark field.
2906         (mark_dies, unmark_dies): New fns.
2907         (clear_die_sizes): Remove.
2908         (print_die): Check die_symbol rather than die_offset.
2909         (build_abbrev_table, output_pubnames, output_aranges): Check
2910         die_mark rather than die_offset.
2911         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
2912         Call mark_dies.
2913
2914 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
2915
2916         * cppfiles.c (lookup_include_file): Rename to open_file.
2917         Always create a splay tree value, even on syscall failures.
2918         Negative entries indicated by fd == -2.
2919         Re-open files closed in the meantime.
2920         (_cpp_fake_include): Create a negative splay tree entry.
2921         (find_include_file, cpp_read_file): Update for function name
2922         change.
2923         * gcc.gd/cpp/mi4.c: Testcase.
2924
2925 2000-09-21  Nick Clifton  <nickc@redhat.com>
2926
2927         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
2928         ARM and THUMB modes.
2929
2930         * config/mcore/mcore.c: Fix compile time warnings.
2931         * config/mcore/mcore-protos.h: Fix compile time warnings.
2932
2933 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2934
2935         * configure.in: Correct test of gcc_cv_glibc.
2936         * configure: Rebuilt.
2937         * config.in: Rebuilt.
2938
2939 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2940
2941         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
2942         (expand_builtin): Handle BUILT_IN_FWRITE.
2943
2944         * builtins.def (BUILT_IN_FWRITE): New entry.
2945
2946         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
2947
2948 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2949
2950         * gcc.c (modify_target): New variable and struct.
2951         (process_command): Handle MODIFY_TARGET_NAME.
2952         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
2953         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
2954
2955         * c-decl.c (finish_decl): Add else's to avoid referencing
2956         TYPE_DOMAIN of an ERROR_MARK.
2957
2958 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
2959
2960         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
2961         `reload_in*' insns.
2962
2963 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
2964
2965         * config/avr/avr.md (neghi2): Add alternative for input and output
2966         operands in different registers, as in negsi2.
2967         (*negsi2): Remove '*' from the name.  Use "movw" if available.
2968
2969 2000-09-19  Jim Wilson  <wilson@cygnus.com>
2970
2971         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
2972         HAVE_GAS_HIDDEN macro.
2973
2974 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
2975
2976         * cpplex.c (lex_line): Drop the EOF token for unknown
2977         directives in assembler.
2978
2979 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
2980
2981         * configure.in: Allow enable_threads_flag value of "aix".  Define
2982         thread_file as "aix" for AIX 4.3 and above.
2983         * configure: Regenerated.
2984
2985         * gthr-aix.h: New file.
2986
2987         * rs6000/t-aix43: Replace soft-float multilib with pthread.
2988         Remove 403 processor multilib match.  Fix rios2 processor multilib
2989         match.
2990
2991         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
2992         to return to appropriate csect.
2993
2994 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2995
2996         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
2997         functions.
2998         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
2999         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
3000         BUILT_IN_PRINTF.
3001
3002         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
3003         New entries.
3004
3005         * c-common.c (init_function_format_info): Handle __builtin_printf.
3006         Set `check_function_format_ptr'.
3007         (c_common_nodes_and_builtins): Set `puts_ftype' and
3008         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
3009         __builtin_printf and printf.
3010
3011         * tree.c, tree.h (check_function_format_ptr): Declare.
3012
3013 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
3014
3015         * cppfiles.c (read_include_file): Take no special action for
3016         zero-length files.
3017
3018 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
3019
3020         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
3021         rather than that of branch.
3022         (shorten_branches): Don't increment insn_current_address twice.
3023
3024         Undo most of the Wed Jan 27 23:39:53 1999 patch:
3025         * loop.h (struct induction): Delete members derived, ix and last_use.
3026         (struct loop_ivs): Delete members first_increment_giv and
3027         last_increment_giv.
3028         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
3029         recombine_givs): Delete functions.
3030         (find_and_verify_loops): Don't initialize cont_dominator.
3031         (strength_reduce): Lose code to try to find bivs that can be
3032         expressed as givs of another biv, and to convert biv increments
3033         into givs.
3034         Lose loop_scan_start variable, always use loop->scan_start.
3035         Don't call recombine_givs.  Don't handle derived givs.
3036         (record_giv): Don't initialize derived and last_use fields.
3037         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
3038         givs.
3039         * unroll.c (derived_regs): Delete static variable.
3040         (unroll_loop): Don't initialize it.
3041         (copy_loop_body): Lose code to handle derived givs.
3042         (find_splittable_givs): Don't check for givs made from biv
3043         increments.
3044         Don't set derived_regs.
3045
3046         Fix misapplied earlier patch:
3047         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
3048         to fpul.
3049         (floatsisf2): Generate floatsisf_ie by default.
3050         (floatsisf_i4): Conditional on TARGET_SH4.
3051
3052         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
3053         predicate for the expanders.
3054
3055 2000-09-19  Richard Henderson  <rth@cygnus.com>
3056
3057         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
3058         in addition to pentium and pentiumpro symbols.
3059         (CPP_CPU_DEFAULT_SPEC): Likewise.
3060
3061         * c-typeck.c (c_expand_asm_operands): Restore the output tree
3062         after expanding.
3063
3064         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
3065         if the tree has side effects.
3066         (warn_if_unused_value): Do not warn about void constructs.
3067
3068         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
3069
3070         * unroll.c (copy_loop_body): Update LABEL_NUSES before
3071         calling invert_jump.
3072
3073 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
3074
3075         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
3076         into anything.
3077
3078 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3079
3080         * Makefile.in (c-common.o): Depend on diagnostic.h.
3081
3082         * c-common.c: Include diagnostic.h.
3083         (tfaff): Delete.
3084         (status_warning): New function.
3085         (check_format_info, maybe_read_dollar_number, check_format_types,
3086         finish_dollar_format_checking, check_function_format): Accept a
3087         `status' parameter.  All callers changed.
3088
3089         * c-common.h (check_function_format): Accept a `status' parameter.
3090
3091         * c-typeck.c: Update call to `check_function_format'.
3092
3093 2000-09-18  Richard Henderson  <rth@cygnus.com>
3094
3095         * c-decl.c (c_expand_body): Call mark_varargs before
3096         expand_function_start.
3097
3098 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
3099
3100         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
3101         * config/rs6000/eabi-ci.asm: Likewise.
3102
3103 2000-09-18  Richard Henderson  <rth@cygnus.com>
3104
3105         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
3106         for BImode.
3107
3108 2000-09-18  Jim Wilson  <wilson@cygnus.com>
3109
3110         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
3111         before passing it to fold_rtx_mult_add.
3112
3113         * unroll.c (final_giv_value): Pass increment through
3114         extend_value_for_giv before passing it to emit_iv_add_mult.
3115
3116         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
3117         paradoxical subreg, then directly substitute the replacement and
3118         return.
3119
3120 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
3121
3122         * cpp.texi: Update documentation, including some clarifications,
3123         the treatment of various newline combinations, and space between
3124         backslash and newline.
3125
3126 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
3127
3128         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
3129         Replace ASM_OUTPUT_LABELREF with assemble_name.
3130
3131 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
3132
3133         * sh.c (addsubcosts): CONST is not cheap.
3134         (find_barrier): For Sh1, take alignment after jumps into account.
3135
3136 2000-09-15  Andrew Haley  <aph@redhat.com>
3137
3138         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
3139         remove all SETs of SUBREGs of hard registers.
3140         * function.c (purge_hard_subreg_sets): New function.
3141         (purge_single_hard_subreg_set): New function.
3142         * rtl.h: (purge_hard_subreg_sets): New function.
3143
3144 2000-09-18  Richard Henderson  <rth@cygnus.com>
3145
3146         * config/ia64/ia64-protos.h: Update.
3147         * config/ia64/ia64.c (signed_inequality_operator): New.
3148         (ia64_expand_compare): New.
3149         (ia64_register_move_cost): Handle PR_REGS moves.
3150         (ia64_secondary_reload_class): Require a GR when moving to a PR.
3151         (struct reg_write_state): Add written_by_and/or.
3152         (struct reg_flags): Add is_and/or.
3153         (rws_update): Set them.
3154         (rws_access_regno): Test them to allow parallel comparisons.
3155         (rtx_needs_barrier): Recognize parallel comparisons.
3156         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
3157         Call recog_memoized; ignore pred_rel_mutex.
3158         (emit_predicate_relation_info): Don't call find_basic_blocks here.
3159         (ia64_reorg): Do it here instead.
3160         * config/ia64/ia64.h: s/CCmode/BImode/g
3161         (MODES_TIEABLE_P): Don't tie BImode.
3162         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
3163         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
3164         (RTX_COSTS): Make multiply 4 insns.
3165         (MEMORY_MOVE_COST): New.
3166         (PREDICATE_CODES): Update.
3167         * config/ia64/ia64.md: s/CCmode/BImode/g
3168         (movcci, movbi): New.
3169         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
3170         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
3171         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
3172         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
3173         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
3174         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
3175         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
3176         (mulsi, muldi): Use xmpy not xma.
3177         (cmpbi): New.
3178         (movcc, movcc_internal): Remove.
3179         (branch expanders): Use ia64_expand_compare.
3180         (setcc expanders): Likewise.
3181         (cmov insns): Use move_operand and ia64_move_ok.
3182         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
3183         scheduler from moving it past a use.
3184         * config/ia64/build.hacks: Remove.
3185
3186 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
3187
3188         * cpphash.h (HASHSTEP): Take character rather than pointer
3189         to character.
3190         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
3191
3192         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
3193
3194         * cpplex.c (auto_expand_name_space, trigraph_replace,
3195         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
3196         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
3197         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
3198         KNOWN_DIRECTIVE): Delete.
3199
3200         (handle_newline, check_long_token, skip_escaped_newlines,
3201         unterminated): New functions.
3202         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
3203
3204         (parse_identifier): Was parse_name, new implementation.
3205         (skip_line_comment, skip_block_comment, skip_whitespace,
3206         parse_number, parse_string, trigraph_ok, save_comment,
3207         adjust_column, _cpp_get_line): New implementations.
3208
3209         (lex_token): New function.  Lexes a token at a time, looking
3210         forwards.  Contains most of the guts of the old lex_line.
3211         (lex_line): New implementation, using lex_token to obtain
3212         individual tokens.
3213         (cpp_scan_buffer): Use the token's line, not the list's line.
3214
3215         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
3216          New implementations.
3217         (do_assert): Don't bother setting the answer's list's line.
3218         (cpp_push_buffer): Initialise new pfile and read_ahead members
3219         of struct cpp_buffer.
3220
3221         * cpplib.h (cppchar_t): New typedef.
3222         (struct cpp_buffer): read_ahead, pfile and col_adjust are
3223         new members.
3224         (struct lexer_state): New structure that determines the state
3225         and behaviour of the lexer.
3226         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
3227         (struct cpp_reader): New member "state". Rename
3228         multiline_string_line and multiline_string_column. Delete
3229         col_adjust, in_lex_line members.
3230         (CPP_BUF_COLUMN): Update.
3231
3232 2000-09-18  Richard Henderson  <rth@cygnus.com>
3233
3234         * combine.c (simplify_comparison): Shift a NOT out of a single
3235         bit test.
3236
3237         * combine.c (if_then_else_cond): Canonicalize BImode true to
3238         STORE_FLAG_VALUE.
3239         * explow.c (trunc_int_for_mode): Likewise.
3240
3241         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
3242         the NOT for De Morgan's rule.
3243         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
3244         of a comparison to the reverse comparison.
3245
3246         * combine.c (try_combine): Allow split to create a single insn.
3247
3248         * machmode.def: Add BImode.  Add a column for bitsize.
3249         * machmode.h (DEF_MACHMODE): Adjust for extra column.
3250         (GET_MODE_BITSIZE): Use it.
3251         * rtl.c (DEF_MACHMODE): Adjust for extra column.
3252         (mode_bitsize): New.
3253         (mode_mask_array): Use bitsize.
3254         * combine.c (combine_simplify_rtx): Require inner and outer
3255         modes to match on nonzero_bits optimizations.
3256
3257 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
3258
3259         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
3260         its entry in spill_reg_store.
3261         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
3262         * sh.c (reg_no_subreg_operand): New function.
3263         * sh-protos.h (reg_no_subreg_operand): Declare it.
3264         * sh.h (PREDICATE_CODES): Add it.
3265         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
3266         input operand that needs to be in fpul.
3267         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
3268         * sh.c (find_barrier): Take into account that machine_dependent_reorg
3269         might add new insns.
3270
3271 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
3272
3273         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
3274         MAYBE_DEAD.
3275         (sh_expand_epilogue): Take the PIC register into account when
3276         computing the frame size.
3277
3278         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
3279         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
3280         LABEL_REFs with a PIC-safe unspec.
3281
3282 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3283
3284         * c-common.c (check_format_info): Properly save the argument
3285         number and parameter for $ operand number formats in case width
3286         and precision arguments are also used.  Allow printf width and
3287         precision arguments to have operand numbers even if none was
3288         specified for the main format, since this is OK for %*.*m.  Only
3289         object to missing $ operand number if the format used requires an
3290         argument.
3291
3292 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3293
3294         * c-common.c (format_char_info): Add 'W' flag to comment.
3295         (print_char_table, scan_char_table): Use it.
3296         (check_format_info): Use the 'W' flag to determine whether a
3297         format argument is written into.
3298
3299 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3300
3301         * c-common.c (check_format_types): Reorganise and clean up,
3302         checking earlier for ERROR_MARKs and making cur_type into its
3303         TYPE_MAIN_VARIANT where convenient.
3304
3305 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
3306
3307         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
3308
3309 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
3310
3311         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
3312
3313         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
3314         * i386.c (struct builtin_description): New.
3315         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
3316         (mmx_reg_operand): Declare MODE arg as unused.
3317         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
3318         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
3319         ix86_expand_binop_builtin, ix86_expand_store_builtin,
3320         ix86_init_builtins, ix86_expand_builtin): New functions.
3321         * i386.h (ix86_builtins): New enumeration.
3322         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
3323         * i386.md (attr length_immediate): 0 for mmx/sse types.
3324         (attr prefix_0f): 1 for mmx/sse types.
3325         (setcc_2): Remove "*" so we get gen_setcc_2.
3326         (emms): Account for changed register numbering.  Set "memory" attr
3327         to unknown.
3328         (sfence): Set "memory" attr to unknown.
3329
3330 2000-09-18  Andreas Jaeger  <aj@suse.de>
3331
3332         * configure.in: Define _GNU_SOURCE only when using the GNU C
3333         Library.
3334         * configure: Regenerated.
3335         * config.in: Regenerated.
3336
3337 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
3338
3339         * cppinit.c (cpp_init): Don't use ANSI prototypes.
3340         * flow.c (flow_dump_loop): Likewise.
3341         (flow_loops_dump): Likewise.
3342
3343         * c-typeck.c (c_start_case): Fix typo.
3344
3345 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3346
3347         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
3348         to int for plain complex which defaults to complex double.  Do
3349         warn about defaulting to complex double if pedantic.  Warn about
3350         complex integer types if pedantic.  Warn about complex types if
3351         pedantic and not in C99 mode.
3352         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
3353         for complex conjugation.
3354
3355 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
3356
3357         * contrib.texi: Update my entry.
3358
3359 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
3360
3361         * config/avr/avr.md (mcu_enhanced): New attribute.
3362         (mcu_mega): Likewise.
3363         (extendhisi2): Use mcu_enhanced.
3364         (zero_extendhisi2): Likewise.
3365         (call_insn): Use mcu_enhanced and mcu_mega.
3366         (call_value_insn): Likewise.
3367         (*sbrx_branch): Use mcu_mega.
3368         (*sbrx_and_branchsi): Likewise.
3369         (*sbrx_and_branchhi): Likewise.
3370         (*tablejump_lib): Likewise.
3371
3372 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3373
3374         * alias.c (true_dependence): Allow non-unchanging read to conflict
3375         with unchanging write.
3376
3377         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
3378         (store_constructor): Pass alias_set to it.
3379
3380         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
3381         TYPE_MAIN_VARIANT of ERROR_MARK.
3382         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
3383
3384         * simplify-rtx.c (simplify_unary_operation): Add cases
3385         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
3386
3387 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
3388
3389         * expr.h (emit_library_call, emit_library_call_value): Delete
3390         declarations.
3391         * rtl.h (enum libcall_type): New.
3392         (emit_library_call, emit_library_call_value): Change fn_type arg to
3393         be of type enum libcall_type.
3394         * calls.c: Likewise for the function definitions.  Several callers
3395         throughout changed to use the new enumeration appropriately.
3396         (emit_library_call_value_1): Likewise.  Put back code to make libcall
3397         blocks of equal form, but only use it for the two new higher
3398         enumeration values.
3399
3400 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
3401
3402         Convert the C front-end to use function-at-a-time mode.
3403         * c-common.h: Include splay-tree.h.
3404         (C_DECLARED_LABEL_FLAG): New macro.
3405         (struct language_function): Add x_scope_stmt_stack and
3406         x_function_name_declared_p.
3407         (RECHAIN_STMTS): Move definition.
3408         (lang_statment_code_p): Likewise.
3409         (lang_expand_stmt): Likewise.
3410         (lang_expand_decl_stmt): New variable.
3411         (lang_expand_function_end): Likewise.
3412         (current_scope_stmt_stack): New function.
3413         (add_decl_stmt): Likewise.
3414         (add_scope_stmt): Likewise.
3415         (mark_stmt_tree): Likewise.
3416         (struct c_lang_decl): New structure.
3417         (DECL_SAVED_TREE): Define.
3418         (c_mark_lang_decl): New function.
3419         (c_expand_start_cond): Change prototype.
3420         (c_finish_then): New function.
3421         (c_finish_else): Likewise.
3422         (current_function_name_declared): Remove.
3423         (set_current_function_name_declared): Likewise.
3424         (mark_c_language_function): Declare.
3425         (case_compare): Likewise.
3426         (c_add_case_label): Likewise.
3427         (c_expand_expr): Likewise.
3428         (c_safe_from_p): Likewise.
3429         * c-common.c (lang_expand_function_end): New variable.
3430         (struct if_elt): Add if_stmt.
3431         (c_expand_start_cond): Add the if-statement to the statement-tree,
3432         rather than generating RTL.
3433         (c_finish_then): New function.
3434         (c_expand_start_else): Don't generate RTL.
3435         (c_finish_else): New function.
3436         (c_expand_expr_stmt): Don't generate RTL.
3437         (statement_code_p): Add SCOPE_STMT.
3438         (case_compare): New function.
3439         (c_add_case_label): Likewise.
3440         (mark_stmt_tree): Likewise.
3441         (c_mark_lang_decl): Likewise.
3442         (mark_c_language_function): Likewise.
3443         (c_expand_expr): Likewise.
3444         (c_safe_from_p): Likewise.
3445         * c-decl.c (c_stmt_tree): New variable
3446         (c_scope_stmt_stack): Likewise.
3447         (c_function_name_declared_p): Likewise.
3448         (lang_expand_expr_stmt): Remove.
3449         (poplevel): Don't call output_inline_function for nested
3450         functions.
3451         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
3452         `extern' function.
3453         (redeclaration_error_message): Change means of computing whether
3454         or not a function is nested.
3455         (lookup_label): Don't call label_rtx.
3456         (init_decl_processing): Add more GC roots.
3457         (start_decl): Add DECL_STMTs to the statement-tree, rather than
3458         calling rest_of_decl_compilation.
3459         (finish_decl): Don't call expand_decl.
3460         (store_parm_decls): Begin the statement-tree, but don't generate
3461         RTL.
3462         (finish_function): Tie off the statement-tree.  Call c_expand_body
3463         if appropriate.
3464         (c_expand_body): New function.
3465         (push_c_function_context): Save more information.
3466         (pop_c_function_contxt): Likewise.
3467         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
3468         (lang_mark_tree): Mark it.
3469         (current_stmt_tree): Adjust.
3470         (current_scope_stmt_stack): New function.
3471         (do_case): Remove.
3472         (set_current_name_declared): Likewise.
3473         (c_begin_compound_stmt): Define.
3474         (c_expand_decl_stmt): Likewise.
3475         * c-lang.c: Include rtl.h and expr.h.
3476         (lang_init): Set more language-specific hooks.
3477         * c-lex.c: Include expr.h.
3478         * c-parse.in: Changes throughout to add statements to the
3479         statement-tree, rather than generating RTL after every statement.
3480         * c-semantics.c (lang_expand_decl_stmt): Define.
3481         (add_decl_stmt): New function.
3482         (add_scope_stmt): Likewise.
3483         (finish_stmt_tree): Tweak.
3484         (genrtl_expr_stmt): Likewise.
3485         (genrtl_decl_stmt): Handle local labels, and call
3486         lang_expand_decl_stmt if required.
3487         (genrtl_for_stmt): Fix line-number handling.
3488         (genrtl_case_label): Handle cleanups.
3489         (genrtl_asm_stmt): Don't call combine_strings.
3490         (genrtl_compound_stmt): Simplify.
3491         (expand_stmt): Handle SCOPE_STMTs.
3492         * c-tree.h (struct lang_decl): New structure.
3493         (C_DECLARED_LABEL_FLAG): Remove.
3494         (c_begin_compound_stmt): Declare.
3495         (c_expand_decl_stmt): Likewise.
3496         (c_expand_start_case): Rename to c_start_case.
3497         (c_finish_case): New function.
3498         * c-typeck.c (start_init): Tweak setting of
3499         constructor_incremental.
3500         (c_expand_asm_operands): Tweak error-handling.  Add to the
3501         statement-tree.
3502         (c_expand_return): Add to the statement-tree.
3503         (c_expand_start_case): Rename to ...
3504         (c_start_case): ... this.
3505         (struct c_switch): New type.
3506         (switch_stack): New variable.
3507         (do_case): Simplify.
3508         (c_finish_case): New function.
3509         * dependence.c: Include expr.h.
3510         (enum dependence_type): Change spelling of enumerals.
3511         (check_node_dependence): Adjust.
3512         * expr.h (lang_safe_from_p): Declare.
3513         (safe_from_p): Likewise.
3514         * expr.c (lang_safe_from_p): New variable.
3515         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
3516         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
3517         * toplev.c (rest_of_decl_compilation): Robustify.
3518         * tree.c (contains_placeholder_p): Likewise.
3519         * Makefile.in: Update dependencies.
3520         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
3521         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
3522         (objc_expand_function_end): New function.
3523         (finish_method_def): Use it.
3524         (init_objc): Initialize more language-specific hooks.
3525         * objc/Make-lang.in: Update dependencies.
3526
3527 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
3528
3529         * configure.in: Define macros that affect features before
3530         testing for features.  Don't define _XOPEN_SOURCE.
3531         * configure: Regenerated.
3532         * config.in: Regenerated.
3533
3534 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
3535
3536         * rtlanal.c (rtx_varies_p): Volatile asms vary.
3537         (rtx_unstable_p): Restructure code.  Volatile asms
3538         are unstable.
3539
3540 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3541
3542         * function.h (no_debugging_symbols): New field.
3543         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
3544         Initialize no_debugging_symbols.
3545         (output_inline_function): Save and restore write_symbols and set from
3546         no_debugging_symbols.
3547         * toplev.c (rest_of_compilation): Call save_for_inline.
3548         * tree.h: Update comment.
3549
3550         * stor-layout.c (place_field): Don't do anything if field or
3551         its type are ERROR_MARK.
3552
3553 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
3554
3555         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
3556         (read_include_file): Ensure inc->mmaped is initialized.
3557
3558 2000-09-16  Richard Henderson  <rth@cygnus.com>
3559
3560         * cppiles.c (purge_cache): Use PTR not caddr_t.
3561
3562 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
3563
3564         * gcc.c: In description for %{<S}, say the option removed is -S.
3565         * invoke.texi (Spec Files): Ditto.
3566
3567 2000-09-16  Andreas Jaeger  <aj@suse.de>
3568
3569         * configure.in: Always define _GNU_SOURCE to make interfaces
3570         visible that were hidden by only defining _GNU_SOURCE.
3571         * configure: Regenerated.
3572
3573 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
3574
3575         * cpplex.c (push_macro_context): Set an argument's level after
3576         calling parse_args.  We could loop infinitely otherwise.
3577
3578 2000-09-15  Tom Tromey  <tromey@cygnus.com>
3579
3580         * configure, config.in: Rebuilt.
3581         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
3582
3583 2000-09-15  Greg McGary  <greg@mcgary.org>
3584
3585         * cppmacro.c (check_trad_stringification): Check token
3586         text pointers against limit before dereferencing.
3587
3588 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
3589
3590         * c-common.c (format_wanted_type): New structure.
3591         (check_format_types): New function.
3592         (check_format_info): Pass all checking of types of format
3593         arguments, including width and precision arguments, to this new
3594         function.
3595
3596 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3597
3598         * BUGS: Remove file.
3599
3600 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
3601
3602         * config/alpha/alpha.c (override_options): ev6 cache latencies
3603         from Richard Henderson.  Don't allow -mmemory-latency=L0.
3604
3605         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
3606         (TARGET_OPTIONS): Add tune=.
3607         (alpha_tune_string): Declare.
3608         * config/alpha/alpha.c (override_options): Add cpu_table.
3609         Use alpha_cpu_string first to set both alpha_cpu and target_flags
3610         and then alpha_tune_string to set alpha_cpu only.
3611         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
3612         * config/alpha/elf.h (ASM_FILE_START): Likewise.
3613         * config/alpha/osf.h (ASM_FILE_START): Likewise.
3614         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
3615
3616 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3617
3618         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
3619         Remove.
3620         (ix86_comparison_operator, ix86_cc_mode): Declare
3621         * i386.h (CCGC, CCGCO): New modes.
3622         (SELECT_CC_MODE): Move offline to ....
3623         * i386.c (ix86_cc_mode): .... here; use new modes.
3624         (ix86_comparison_operator): New.
3625         (fcmov_comparison_operator): Ensure proper mode.
3626         (put_condition_mode): More sanity checking.
3627         (ix86_match_ccmode): Handle new modes.
3628         (ix86_expand_fp_compare): GEU requires CCmode.
3629         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
3630         doing it by hand.
3631         * i386.md (cmp?i_ccz_1): Remove
3632         (cmp?i_ccno_1): Use ix86_match_ccmode.
3633         (cmp?i_minus_1): New.
3634         (cmpsi_1): New expander.
3635         (cmpqi_ext_1): Use match_ccmode
3636         (cmpqi_ext_3): New expander.
3637         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
3638         (cmpqi_ext_4): Use match_ccmode.
3639         (add?i_?): Use match_ccmode.
3640         (add?i_6): New.
3641         (test?i_ccz_1): Remove
3642         (test?i_1): New.
3643         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
3644         (testqi_ext_0): Use ix86_match_ccmode.
3645         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
3646         (xorqi_cc_ext_1): New expander.
3647         (shift patterns): Use CCGOCmode for all shifts except for sar.
3648         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
3649         (setcc_3, jcc_3, miv?icc_c): Remove.
3650
3651 2000-09-15  Will Cohen  <wcohen@redhat.com>
3652
3653         * dwarf2out.c (add_const_value_attribute): Changed array into a
3654         xmalloced object, so it exists after function exit.
3655         (free_AT): Added case for dw_val_class_float to free allocated
3656         memory.
3657
3658 2000-09-15  Kazu Hirata  <kazu@hxi.com>
3659
3660         * config/i386/i386.md: Fix a comment typo.
3661         * gcc.c: Fix formatting.
3662
3663 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
3664
3665         * optabs.c (emit_libcall_block): If target is a user variable,
3666         copy to a temporary first.
3667         * expr.c (convert_move): When generating a libcall, make a libcall
3668         block.
3669         * calls.c (emit_library_call_value_1): Don't create a libcall
3670         sequence here; our caller will in most cases do it.
3671
3672         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
3673         MACH into FPUL.
3674         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
3675         * sh.md (reload_outsf): Generate recognizable patterns for
3676         TARGET_SH3E.
3677         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
3678         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
3679         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
3680         truncdfsf2_i4): Change not to use explicit references to fpul.
3681         (floatsisf2_ie): Remove USE of fpscr.
3682         (floatsisf2): Change default expansion to match this.
3683         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
3684         unused patterns.
3685
3686 2000-09-15  Richard Henderson  <rth@cygnus.com>
3687
3688         * expmed.c (store_bit_field): Consider naturally aligned
3689         memory for direct reference.
3690
3691 2000-09-15  Richard Henderson  <rth@cygnus.com>
3692
3693         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
3694         AND addresses into alias set 0.
3695         (alpha_expand_unaligned_store): Likewise.
3696         (alpha_expand_unaligned_load_words): Likewise.
3697         (alpha_expand_unaligned_store_words): Likewise.
3698
3699 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
3700
3701         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
3702         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
3703         is defined.
3704         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
3705         rsize of UNITS_PER_WORD.
3706
3707 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
3708
3709         * cpplex.c (ON_REST_ARG): Correct the test.
3710         (maybe_paste_with_next): Duplicate a token that fail pasting,
3711         and clear its PASTE_LEFT flag, so that nested pasting attempts
3712         do not occur.
3713
3714 2000-09-14  Richard Henderson  <rth@cygnus.com>
3715
3716         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
3717         * cse.c (rtx_cost): Likewise.
3718         * optabls.c (expand_binop): Likewise.
3719         (expand_twoval_binop, prepare_cmp_insn): Likewise.
3720         * regclass.c (copy_cost): Likewise.
3721         * reload1.c (reload_cse_move2add): Likewise.
3722
3723 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
3724
3725         * c-parse.in (reswords): Add _Complex.
3726
3727 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3728
3729         * gcc.1: Delete documentation for -undef preprocessor option.
3730
3731 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
3732
3733         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3734         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
3735         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3736         Remove undefine before config/elfos.h.
3737         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
3738
3739 2000-09-14  Kazu Hirata  <kazu@hxi.com>
3740
3741         * invoke.texi (H8/300 Options): Add -ms2600.
3742         * config/h8300.c (h8300_init_once): Output an error when -ms2600
3743         is used without -ms.
3744         * config/h8300.h (TARGET_MAC): New.
3745         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
3746         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
3747         machine other than H8/S2600.
3748         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
3749         of the H8/S2000.
3750
3751 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
3752
3753         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
3754         pseudos that refer to the original pseudos, not only to their
3755         equivalent memory locations.
3756
3757 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3758
3759         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
3760         when making new MEM.
3761
3762         * Makefile.in (LN): Remove duplicate definition.
3763
3764 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3765
3766         From Joern Rennecke:
3767         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
3768         on an insn and function_invariant_p returns nonzero for the source,
3769         add a REG_EQUAL note.
3770
3771 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
3772
3773         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
3774         conflict with frame_pointer_rtx.
3775
3776 2000-09-13  Kazu Hirata  <kazu@hxi.com>
3777
3778         * loop.c: Fix formatting.
3779         * loop.h: Likewise.
3780
3781 2000-09-13  Richard Henderson  <rth@cygnus.com>
3782
3783         * config/ia64/ia64.md (divsf3): New.
3784         (divsf3_internal_lat, divsf3_internal_thr): New.
3785         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
3786         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
3787         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
3788         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
3789         (nmadddf4_alts, nmadddf4_trunc): New.
3790         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
3791         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
3792         (multf3_truncsf_alts, multf3_truncdf_alts): New.
3793         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
3794         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
3795         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
3796         (nmaddtf4_truncdf_alts): New.
3797         (recip_approx): Don't predicate.
3798
3799 2000-09-13  Richard Henderson  <rth@cygnus.com>
3800
3801         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
3802
3803 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3804
3805         * flags.h (flag_dump_rtl_in_asm): Declare.
3806         * toplev.c (flag_dump_rtl_in_asm): Define.
3807         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
3808         if -dP is specified.
3809         * rtl.h (print_rtx_head): Declare.
3810         * print-rtl.c (print_rtx_head): Define.
3811         (print_rtx): Print the string pointed to by print_rtx_head
3812         at beginning of each dump line.
3813         (print_rtl): Likewise.
3814         (print_rtl_single): Likewise.
3815         * final.c (final_scan_insn): Dump the insn in the assembly
3816         file for debugging.
3817         * gcc.1: Document -dP option.
3818         * invoke.texi (Debugging Options): Likewise.
3819
3820 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3821
3822         * md.texi (Machine Constraints): Document the 68HC11 constraints.
3823         * install.texi (Configurations): Document the 68HC11&68HC12 port.
3824         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
3825
3826 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
3827
3828         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
3829         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
3830         (*clrstrqi): Likewise.
3831         (xorhi3,xorsi3,absqi2): Likewise.
3832         (one_cmplhi2,one_cmplsi2): Likewise.
3833         (addsi3): Two stupid constraint alternatives removed.
3834         (extendhisi2): Use `movw' for enhanced avr cores.
3835         (zero_extendhisi2): Likewise.
3836
3837 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
3838
3839         * alias.c (find_base_term): Use frame_pointer_rtx
3840         when handling an ADDRESSOF.
3841
3842         * cse.c (canon_hash): Handle USE of BLKmode memory.
3843         (cse_insn): Outgoing arguments for a libcall don't
3844         affect any recorded expressions.
3845
3846 2000-09-12  Tom Tromey  <tromey@cygnus.com>
3847
3848         * configure, config.in: Rebuilt.
3849         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
3850
3851 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
3852
3853         * c-lex.c (lex_string): Use charwidth to compute bytemask.
3854         * expr.c (expand_expr): Don't optimize constant array references
3855         initialized with wide string constants.
3856
3857 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
3858
3859         * loop.c (note_set_pseudo_multiple_uses): Correct.
3860
3861 2000-09-12  Jim Wilson  <wilson@cygnus.com>
3862
3863         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
3864         else block, and X has side-effects, then fail.
3865
3866 2000-09-12  Greg McGary  <greg@mcgary.org>
3867
3868         * config/mips/mips-protos.h
3869         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
3870         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
3871         (PREDICATE_CODES): Add "trap_cmp_op".
3872         * config/mips/mips.c
3873         (trap_cmp_op, mips_gen_conditional_trap): New functions.
3874         * config/mips/mips.md (trap, conditional_trap): New patterns.
3875
3876 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3877
3878         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
3879         pointer.
3880
3881 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3882
3883         * builtins.c (built_in_decls): New array.
3884         (expand_builtin_fputs): New function.
3885         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
3886
3887         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
3888
3889         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
3890
3891         * tree.h (built_in_decls): New array.
3892
3893 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
3894
3895         * convex.md: Use "+" instead of "=" for outputs wrapped in a
3896         STRICT_LOW_PART.
3897         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
3898
3899 2000-09-12  Kazu Hirata  <kazu@hxi.com>
3900
3901         * haifa-sched.c: Fix formatting.
3902
3903         * genattrtab.c: Fix formatting.
3904
3905         * unroll.c: Fix formatting.
3906
3907 2000-09-12  Bruce Korb  <bkorb@gnu.org>
3908
3909         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
3910         remove obsolete code
3911         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
3912         * fixinc/fixincl.tpl: make non-exported arrays static scope
3913         * fixinc/fixincl.x: regenerate
3914         * fixinc/fixlib.h: Use PARAMS, not _P_
3915         * fixinc/fixtests.c: make a type for the test proc & use it
3916         * fixinc/server.h: Use PARAMS, not _P_
3917
3918 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3919
3920         * c-typeck.c (process_init_element): Avoid union init warnings on
3921         floating point zero.  Don't crash on unions containing structs.
3922
3923 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
3924
3925         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
3926         general_movsrc_operand, and remove CONST_INT from
3927         general_movdst_operand.
3928
3929 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
3930
3931         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
3932         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
3933         regs with a higher cost.
3934         (preferrable): Deal with cases where either cost or regcost is
3935         MAX_COST.
3936         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
3937         regcost values.
3938         (COSTS_N_INSNS): Move definition...
3939         * rtl.h: ...here.
3940         (MAX_COST): New macro.
3941         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
3942         constant.
3943
3944 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
3945
3946         * c-common.h (genrtl_clear_out_block): Remove.
3947         * c-semantics.c (genrtl_clear_out_block): Remove.
3948         (genrtl_while_stmt): Don't call it.
3949         (genrtl_for_stmt): Likewise.
3950
3951 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
3952
3953         * cppfiles.c: Move all default-#defines to top of file.
3954         (open_include_file): Replace by lookup_include_file.
3955         (read_with_read, read_file): Merged into read_include_file.
3956         (stack_include_file, purge_cache): New functions.
3957         (close_cached_fd): Delete.
3958         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
3959         Cache the in-memory buffer, not the file descriptor.
3960
3961         * cpphash.h (struct include_file): Add buffer, st, refcnt,
3962         mapped fields.
3963         (xcnew): New utility macro.
3964         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
3965         * cpplib.h (struct cpp_buffer): Remove mapped field.
3966
3967 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
3968
3969         * cpplex.c (parse_string): Accept backslash space newline as a
3970         line continuation.
3971         (lex_line): Likewise.
3972         (_cpp_get_token): Remove hard limit on macro nesting.
3973
3974 2000-09-12  Philipp Thomas  <pthomas@suse.de>
3975
3976         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
3977         * configure: Rebuilt.
3978
3979 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
3980
3981         * flow.c (split_block): Fix update of registers live at
3982         end of split block.
3983
3984 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
3985
3986         * i386.md (add?i_3, add?i_5): New.
3987         (add?i_4): Rename from add?i_3;  Fix compare pattern.
3988         (sub?i_3, xor?i_3, ior?i_3): New.
3989
3990         * genrecog.c (write_tree): Output code to clear insn_extract cache.
3991         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
3992         instead of extract_insn and extract_constrain_insn_cache instead of
3993         extract_insn and constrain_operands.
3994         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
3995         New functions.
3996         (extract_insn): Clear which_alternative.
3997         (constrain_operands): Set which_alternative to -1 when failed.
3998         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
3999         Declare.
4000
4001 2000-09-11  Matthew Hiller  <hiller@redhat.com>
4002
4003         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
4004         on operand 0 to '+'.
4005         (movstricthi): Likewise.
4006
4007 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4008
4009         * loop.h (LOOP_IVS): New macro.
4010         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
4011         (struct loop_ivs): New.
4012         (struct loop_info): Add ivs field.
4013         (reg_iv_type, reg_iv_info): Delete prototype.
4014         (reg_biv_class, loop_iv_list): Likewise.
4015         * loop.c (record_biv, find_life_end): Pass loop argument.
4016         (reg_iv_type): Remove global array and use
4017         field in loop_regs structure within loop_ivs structure.
4018         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
4019         (first_increment_giv, last_increment_giv): Use entry in
4020         loop_ivs structure.
4021         (record_initial): Pass ivs pointer.
4022         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
4023
4024 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4025
4026         * loop.h (LOOP_REGS): New macro.
4027         (struct loop_regs): New.
4028         (struct loop_info): Add regs field.
4029         * loop.c (set_in_loop): Remove global array and store
4030         in loop_regs structure as part of loop_info structure.
4031         (n_times_set, may_not_optimize): Likewise.
4032         (reg_single_usage, moved_once): Likewise.
4033         (count_one_set): Add regs argument.
4034         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
4035         (set_pseudo_multiple_uses): Pass regs pointer.
4036
4037 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4038
4039         * unroll.c (iteration_info): Subsume into loop_iterations.
4040         * loop.h (loop_info): New field iv.
4041
4042 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4043
4044         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
4045         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
4046         (flow_loops_update): New prototype.
4047         (flow_loops_find): Add flags to prototype.
4048         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
4049         * flow.c (flow_loop_pre_header_scan): New.
4050         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
4051         (flow_loop_free): Free pre-header root and trace and exit dominators.
4052         (flow_loops_find): New argument flags.
4053         (flow_loops_update): New function.
4054         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
4055
4056 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
4057
4058         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
4059         * flow.c (split_block, update_bb_for_insn): New functions.
4060
4061 2000-09-11  Richard Henderson  <rth@cygnus.com>
4062
4063         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
4064
4065 2000-09-11  Richard Henderson  <rth@cygnus.com>
4066
4067         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
4068         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
4069         (ia64_override_options): Prevent optimizing division for both
4070         latency and throughput.
4071         (rtx_needs_barrier): Handle frcpa.
4072         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
4073         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
4074         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
4075         (TARGET_SWITCHES): Add -minline-divide-min-latency and
4076         -minline-divide-max-throughput.
4077         (PREDICATE_CODES): Update.
4078         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
4079         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
4080         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
4081         (extendsftf2): Likewise.
4082         (extenddftf2): Likewise.
4083         (fix_trunctfdi2_alts): New.
4084         (fixuns_trunctfdi2_alts): New.
4085         (madd*4): Rename from madd*3.
4086         (divsi3, modsi3, udivsi3, umodsi3): New.
4087         (divsi3_internal): New.
4088         (divdi3, moddi3, udivdi3, umoddi3): New.
4089         (divdi3_internal_lat, divdi3_internal_thr): New.
4090         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
4091         (recip_approx): New.
4092
4093 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
4094
4095         * print-rtl.c (debug_call_placeholder_verbose): New variable.
4096         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
4097         set.
4098         * integrate.c (copy_rtx_and_substitute): Don't share
4099         LEAF_REG_REMAPpable registers with the inlined function.  Don't
4100         share the function value with calling sequences.
4101
4102 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
4103
4104         * c-decl.c (do_case): Fix a typo.
4105
4106         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
4107         to a if the comparison is floating mode and not -ffast-math.
4108         * simplify-rtx.c (simplify_ternary_operation): Likewise.
4109
4110 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4111
4112         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
4113         gen_ic_invalidate_line.
4114
4115 2000-09-11  Philip Blundell  <pb@futuretv.com>
4116
4117         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
4118
4119 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
4120
4121         * install.texi (LANGUAGES): Update to include new languages.
4122         * INSTALL: Rebuilt.
4123
4124 2000-09-11  DJ Delorie  <dj@redhat.com>
4125
4126         * gcc.c (main): Don't warn about unused -B prefixes
4127         (unused_prefix_warnings): remove
4128
4129 2000-09-11  Kazu Hirata  <kazu@hxi.com>
4130
4131         * final.c: Fix formatting.
4132
4133         * integrate.c: Fix formatting.
4134
4135 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
4136
4137         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
4138
4139 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
4140
4141         * reload.c (regno_clobbered_p): Fix thinko in previous change.
4142
4143 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4144
4145         * gcc.1: Document 68hc11 specific options.
4146
4147 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
4148
4149         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
4150         (TARGET_LONG_DOUBLE_128): Define.
4151         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
4152         (LONG_DOUBLE_TYPE_SIZE): Redefine.
4153         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
4154         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
4155         of __LONG_DOUBLE_128__.
4156         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
4157         passed.
4158         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
4159         (CPP_SYSV_DEFAULT_SPEC): Define.
4160         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
4161         (INIT_TARGET_OPTABS): Define.
4162
4163         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
4164         (RS6000_UITRUNC): Likewise.
4165         (INIT_TARGET_OPTABS): New macro.
4166         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
4167         (trunc_defined): Delete.
4168         (output_prolog): Don't output .extern definitions for fp->int
4169         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
4170         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
4171         (trunc_defined): Delete.
4172         (RS6000_ITRUNC): Moved to aix.h.
4173         (RS6000_UITRUNC): Likewise.
4174         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
4175         only emit a libcall.
4176         (fixuns_truncdfsi2): Delete.
4177         (trunc_call): Delete.
4178         (trunc_call_rtl): Delete.
4179
4180 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4181
4182         * varasm.c (make_decl_rtl): Restore leading star on
4183         DECL_ASSEMBLER_NAME set for decls with an asmspec.
4184
4185 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4186
4187         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
4188         won't give a spurious error for '#pragma pack()'.  Simplify
4189         control flow for readability.  'reset' action is not necessary.
4190
4191 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
4192
4193         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
4194         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
4195         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
4196         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
4197
4198         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
4199         profile.c, sdbout.c, tradcif.y, tree.c:
4200         Include defaults.h if not already included.
4201         Don't define the above macros.
4202
4203         * Makefile.in: Update dependencies.
4204
4205 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
4206
4207         * c-common.h (add_stmt): Change prototype.
4208         (RECHAIN_STMTS): New macro.
4209         (CASE_LABEL_DECL): Likewise.
4210         (genrtl_case_label): Change prototype.
4211         (c_expand_start_case): Remove prototype.
4212         (build_case_label): Change prototype.
4213         (decl_constant_value): Declare.
4214         * c-common.c (check_case_value): Handle C++'s extensions to C
4215         semantics.
4216         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
4217         field.
4218         * c-parse.in (stmt): Adjust handling of return statements and case
4219         laels.
4220         * c-semantics.c (add_stmt): Return the new statement.
4221         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
4222         returned expression.  Directly generate RTL, rather than calling
4223         c_expand_return.
4224         (genrtl_switch_stmt): Don't call c_expand_start_case.
4225         (build_case_label): Take the LABEL_DECL as input, too.
4226         (genrtl_case_label): Just call add_case_node.
4227         (expand_stmt): Adjust calls to genrtl_return_stmt and
4228         genrtl_case_label.
4229         * c-tree.h (c_expand_start_case): Declare.
4230         * c-typeck.c (decl_constant_value): Give it external linkage.
4231         (c_expand_return): Don't call expand_return or expand_null_return;
4232         use genrtl_return_stmt instead.
4233         * stmt.c (struct nesting): Remove num_ranges field.
4234         (add_case_node): Give it external linkage.
4235         (expand_start_case): Don't set num_ranges.
4236         (expand_start_case_dummy): Don't clear it.
4237         (pushcase): Rely on add_case_node to handle `default' labels.
4238         (add_case_node): Handle `default' labels.
4239         * tree.c (tree_int_cst_compare): New function.
4240         * tree.h (tree_int_cst_compare): Declare.
4241         (add_case_node): Likewise.
4242
4243 2000-09-10  Richard Henderson  <rth@cygnus.com>
4244
4245         * c-parse.in: Revert last change.
4246         (init_reswords): Do not enter disabled keywords into the ridpointers
4247         table, modulo objc weirdness.
4248         (_yylex): Return the canonical spelling for a keyword.
4249
4250 2000-09-10  Philip Blundell  <philb@gnu.org>
4251
4252         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
4253         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
4254
4255 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
4256
4257         * alias.c (find_base_term): Handle ADDRESSOF.
4258         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
4259
4260 2000-09-10  Denis Chertykov  <denisc@overta.ru>
4261
4262         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
4263         outputting templates with many lines.
4264
4265 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4266
4267         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
4268         to decide whether 64-bit support must be generated.
4269
4270 2000-09-10  Richard Henderson  <rth@cygnus.com>
4271
4272         * c-parse.in (asm patterns): Fix volatile check.
4273
4274 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4275
4276         * cppmacro.c (check_trad_stringification): New function.
4277         (save_expansion): If -Wtraditional, warn about stringification of
4278         macro arguments.
4279
4280 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
4281
4282         * loop.h (struct loop_mem_info): Move from loop.c
4283         (struct loop_info): Add fields store_mems, mems, mems_idx,
4284         mems_allocated, unknown_address_altered,
4285         unknown_constant_address_altered, num_mem_sets, and
4286         first_loop_store_insn.
4287
4288         * loop.c (loop_store_mems): Replace with field in loop_info struct.
4289         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
4290         (unknown_address_altered, unknown_constant_address_altered): Likewise.
4291         (num_mem_sets): Likewise.
4292         (replace_loop_mems, replace_loop_regs): New.
4293         (struct loop_replace_args): New.
4294         (load_mems): Use replace_loop_mems.
4295         (try_copy_prop): Use replace_loop_regs.
4296         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
4297
4298 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4299
4300         * configure.in: Recognize m6811-elf and m6812-elf.
4301         * configure: Regenerate.
4302
4303 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
4304
4305         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
4306         to operand_subword.
4307
4308 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
4309
4310         * loop.c (struct movables): New.
4311         (num_movables): Move into struct movables.
4312         (the_movables): Change type to struct movables.
4313         (ignore_some_movables): Change struct movable arg to struct movables.
4314         (force_movables, combine_movables, regs_match_p): Likewise.
4315         (rtx_equal_for_loop_p, move_movables): Likewise.
4316         (scan_loop): Change movables to be of type struct movables.
4317         Replace last_movable with field in movables structure.
4318
4319 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
4320
4321         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
4322         (init_pragma): Avoid warning if pfile happens to be unused.
4323         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
4324         define init_pragma to nothing.  Always prototype
4325         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
4326
4327         * c-lex.c (process_directive): Always call dispatch_pragma.
4328         Initialize entering_c_header to 0.
4329
4330 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4331
4332         * config/m68hc11/m68hc11.md: New file, machine description for
4333         68HC11 & 68HC12.
4334         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
4335         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
4336         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
4337         * config/m68hc11/m68hc11-protos.h: New file.
4338         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
4339         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
4340         * config/m68hc11/xm-m68hc11.h: New file, target defs.
4341         * config/m68hc11/larith.asm: New file, libgcc routines.
4342
4343 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
4344
4345         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
4346         (FPBIT_FUNCS): Add _usi_to_sf.
4347         * config/fp-bit.c (usi_to_float): New function.
4348         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
4349         (usi_to_float): Add appropriate #define.
4350
4351 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4352
4353         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
4354         new functions.
4355         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
4356         * i386.md (attr "type"): Add sse and mmx types.
4357         (attr "memory"): Handle them without a crash.
4358         (movsi_1, movdi_2): Allow MMX regs.
4359         (movdi splits): Don't split moves involving MMX regs.
4360         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
4361         (movv4sf_internal, movv4si_internal, movv8qi_internal,
4362         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
4363         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
4364         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
4365         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
4366         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
4367         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
4368         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
4369         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
4370         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
4371         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4372         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4373         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
4374         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
4375         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4376         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4377         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
4378         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
4379         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
4380         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
4381         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
4382         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4383         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4384         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
4385         mmx_clrdi): New patterns.
4386
4387 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
4388
4389         * arm.c: Don't include tm.h directly.
4390
4391 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4392
4393         * recog.c (validate_replace_rtx_1): Fix confusion about equality
4394         testing; simplify subregs of constants and nested subregs.
4395
4396 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
4397
4398         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
4399
4400 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
4401
4402         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
4403         VEC_CONCAT.
4404         * rtl.texi (description of USE): Add note about possible pitfalls
4405         with this rtx.
4406         From Richard Henderson:
4407         * reload1.c (choose_reload_regs): Compute need_mode properly.
4408
4409 2000-09-07  Richard Henderson  <rth@cygnus.com>
4410
4411         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
4412         (__modsi3, __umodsi3): Likewise.
4413         (__udivsi3): Likewise.  Normalize the TFmode values.
4414
4415 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
4416
4417         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
4418         with a prototype.
4419         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
4420         warning.
4421
4422 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
4423
4424         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
4425         (cmpeqdi_t): Add output pattern.
4426         (cmpeqdi_t+1): Don't split when not optimizing.
4427         Restore proper splitting operation.
4428
4429 2000-09-07  Richard Henderson  <rth@cygnus.com>
4430
4431         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
4432         do not call dispatch_pragma.
4433
4434 2000-09-07  Jim Wilson  <wilson@cygnus.com>
4435
4436         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
4437         to CLASS_CANNOT_CHANGE_MODE.
4438         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
4439         mode classes are different.
4440
4441 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4442
4443         * cpplib.h (struct cpp_options): Add user_label_prefix member,
4444         left out of commit which removed cppulp.c.
4445
4446 2000-09-07  Richard Henderson  <rth@cygnus.com>
4447
4448         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
4449         after switch for CASE_DROPS_THROUGH.
4450
4451 2000-09-07  Richard Henderson  <rth@cygnus.com>
4452
4453         * loop.c (strength_reduce): Call check_ext_dependant_givs.
4454         Properly extend the biv initial value for the giv.
4455         (record_biv): Zero ext_dependant.
4456         (record_giv): New argument ext_val.  Update all callers.
4457         (general_induction_var): Likewise.
4458         (consec_sets_giv): Likewise.
4459         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
4460         a sign-extend, zero-extend, or truncate.
4461         (combine_givs_p): Make sure modes are compatible.
4462         (check_ext_dependant_givs): New.
4463         (extend_value_for_giv): New.
4464         * loop.h (struct induction): Add ext_dependant.
4465         * unroll.c (iteration_info): Extend the biv initial value for the giv.
4466         (find_splittable_givs): Likewise.
4467         (final_giv_value): Likewise.
4468
4469 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
4470
4471         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
4472         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
4473         definitions from cpplib.h.
4474         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
4475         already done it.
4476         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
4477         documentation for REGISTER_TARGET_PRAGMAS.
4478
4479         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
4480         default-pragma callback to implement -Wunknown-pragmas if
4481         USE_CPPLIB.
4482         * c-parse.in: Move all includes to top of file.
4483         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
4484         tm_p.h.
4485         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
4486         warning.
4487         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
4488
4489         * arm.h, arm-protos.h, arm.c,
4490           c4x.h, c4x-protos.h, c4x.c,
4491           h8300.h, h8300-protos.h, h8300.c,
4492           i370.h, i370-protos.h, i370.c,
4493           i960.h, i960-protos.h, i960.c,
4494           sh.h, sh-protos.h, sh.c,
4495           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
4496         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
4497
4498         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
4499         multiple include guard.
4500         * i370.md (untyped_call): Use GEN_CALL.
4501         (umodsi3): Remove unused variable.
4502         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
4503         * v850.c (output_move_single, output_move_double): Constify
4504         return value.
4505         (print_operand): Constify a char *.
4506         * v850.h (struct small_memory_info): Constify name member.
4507
4508 2000-09-07  Kazu Hirata  <kazu@hxi.com>
4509
4510         * config/h8300.h: Fix comment typos.
4511         * config/h8300/h8300.md: Likewise.
4512         * config/h8300/lib1funcs.asm: Likewise.
4513
4514 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
4515
4516         * Makefile.in: Remove references to cppulp.{c,o}.
4517         * cppinit.c (initialize_builtins, cpp_start_read,
4518         cpp_handle_option): Update to use cpp_options structure.
4519         * cppulp.c: Remove.
4520
4521 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
4522
4523         * c-common.c (time_char_table): Allow %#b and %#h.
4524
4525 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4526
4527         * reorg.c (find_end_label): If the basic block reorder pass moves the
4528         return insn to some other place try to locate it again and put our
4529         end_of_function_label there.
4530         * reorg.c (relax_delay_slots): Check if find_end_label created a
4531         new label that invalidates the current optimazation.
4532
4533 2000-09-07  Catherine Moore  <clm@redhat.com>
4534
4535         * unroll.c (unroll_loop): Check for unconditional jumps
4536         to loop continuation.  Delete if n_iterations is 1.
4537         (ujump_to_loop_cont): New routine.
4538
4539 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
4540
4541         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
4542         MODE_VECTOR_FLOAT.
4543         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
4544         to handle multiword modes correctly.  All callers and the declaration
4545         changed.
4546
4547 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4548
4549         * c-common.h (prep_stmt): Declare.
4550         (lang_expand_stmt): Likewise.
4551         * c-decl.c (lang_expand_stmt): Remove.
4552         * c-semantics.c (lang_expand_stmt): Define.
4553         (prep_stmt): New function.
4554         (expand_stmt): Handle common statement types here.
4555
4556 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
4557
4558         * configure.in (sh-*-linux*): Added.
4559         * configure: Rebuilt.
4560         * config/sh/t-linux: New file.
4561         * config/sh/sh.h (USERMODE_BIT): Define.
4562         (TARGET_USERMODE): Likewise.
4563         (TARGET_SWITCHES): New switches for the bits above.
4564         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
4565         * config/sh/linux.h: New file.
4566         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
4567         underscore on linux.
4568         (L_sdivsi3, L_udivsi3): Define for linux.
4569         (L_ic_invalidate): Define.
4570         * invoke.texi (SH Options): Document -musermode.
4571
4572 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
4573
4574         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
4575         CSE unless generating PIC.
4576
4577         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
4578         the PIC register.
4579
4580 2000-09-06  H.J. Lu  (hjl@gnu.org)
4581
4582         * Makefile.in (clean_s1): Depend on stage_b.
4583         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
4584         stage2. They are used for "make compare".
4585
4586 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4587
4588         Move statement-tree facilities from C++ to C front-end.
4589         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
4590         (void_zero_node): New macro.
4591         (struct stmt_tree_s): New type.
4592         (stmt_tree): New typedef.
4593         (struct language_function): New type.
4594         (last_tree): New macro.
4595         (last_expr_type): Likewise.
4596         (walk_tree_fn): New typedef.
4597         (current_stmt_tree): New function.
4598         (begin_stmt_tree): Likewise.
4599         (add_stmt): Likewise.
4600         (finish_stmt_tree): Likewise.
4601         (statement_code_p): Likewise.
4602         (lang_statement_code_p): New variable.
4603         (walk_stmt_tree): New function.
4604         (STMT_IS_FULL_EXPR_P): New macro.
4605         * c-common.c (lang_statement_code_p): New variable.
4606         (c_common_nodes_and_builtins): Initialize void_zero_node.
4607         (statement_code_p): New function.
4608         (walk_stmt_tree): Likewise.
4609         * c-decl.c (language_function): Rename to ...
4610         (c_language_function): ... this.  Include language_function.
4611         (push_c_function_context): Adjust accordingly.
4612         (pop_c_function_context): Likewise.
4613         (mark_c_function_context): Likewise.
4614         (current_stmt_tree): Define.
4615         * c-semantics.c (begin_stmt_tree): New function.
4616         (add_stmt): Likewise.
4617         (prune_unused_decls): Likewise.
4618         (finish_stmt_tree): Likewise.
4619
4620 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4621
4622         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
4623
4624 2000-09-06  Kazu Hirata  <kazu@hxi.com>
4625
4626         * calls.c: Fix formatting.
4627
4628 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
4629
4630         * config/i386/i386.h (ADDRESS_COST): Fix typo.
4631
4632 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4633
4634         Integrated preprocessor.
4635
4636         * Makefile.in: Remove all references to c-parse.gperf,
4637         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
4638         generating c-parse.c.  Update dependencies.
4639         * c-parse.gperf, c-gperf.h: Delete.
4640
4641         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
4642         yy_lim, or yy_get_token.  Don't define get_directive_line if
4643         USE_CPPLIB.
4644         * c-common.h: Add multiple include guard.  Define RID values
4645         for every keyword in C, C++, and Objective C.  Put all the
4646         modifiers first.
4647         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
4648         * c-decl.c (c_decode_option): Handle -lang-objc here.
4649         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
4650         (grokdeclarator): Adjust for new RID scheme.
4651         (extract_interface_info): New stub.
4652         * c-lang.c: Don't declare yy_cur or parse_options.
4653         (lang_init_options): Call cpp_init.  Don't call
4654         cpp_options_init.
4655         (lang_init): Don't call check_newline if USE_CPPLIB.
4656
4657         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
4658         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
4659         rendered unnecessary by new architecture.  Move routines not
4660         shared with C++ to c-parse.in.  Maintain a local idea of the
4661         line number.    Handle C++ as well as C.
4662         [USE_CPPLIB]: Declare and register callbacks for #ident and
4663         for entering/leaving files.
4664         (init_c_lex, c_lex): Are now the entry points to this file.
4665         (check_newline): Break out directive handling to
4666         process_directive.
4667         (read_ucs, is_extended_char, utf8_extend_token): Moved here
4668         from C++ front end.
4669         (readescape, parse_float): Overhaul.
4670         (lex_number, lex_string, lex_charconst): Break out of c_lex
4671         (n'ee yylex).
4672         (get_fileinfo, update_header_times, dump_one_header,
4673         dump_time_statistics): New and/or moved here from C++.
4674         Support per-file data needed by C++ and per-header timing
4675         statistics (C++ only, at the moment).
4676         * c-lex.h: Update prototypes.  Add multiple include guard.
4677         * c-tree.h (struct lang_identifier): Add rid_code field.
4678         (C_IS_RESERVED_WORD, C_RID_CODE): New.
4679
4680         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
4681         reinit_parse_for_function and/or position_after_white_space.
4682         (save_filename, save_lineno): Look ahead before saving.
4683         (label -> identifier ':'): Save file and line before shifting ':'.
4684         (reservedwords): No need to call get_identifier.
4685         (init_parse, finish_parse, yyerror, yylex, yyprint,
4686         make_pointer_declarator): Are now here for C/ObjC.
4687         (rid_to_yy): Conversion table from RID constants to Yacc codes.
4688
4689         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
4690         #pragma registry.  Provide dummy implementation of that
4691         interface if !USE_CPPLIB.
4692         * c-pragma.h: Update to match.
4693
4694         * flags.h: Add multiple include guard.
4695         (flag_detailed_statistics): Moved here from C++.
4696         * toplev.c: Define flag_detailed_statistics.
4697
4698         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
4699         #if USE_CPPLIB.
4700         * timevar.def (TV_CPP, TV_LEX): New.
4701         * timevar.h: Add multiple include guard.
4702
4703         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
4704         #if USE_CPPLIB.
4705         * objc/objc-act.c: Don't mention yy_cur or parse_options.
4706         Initialize cpplib properly.  Force lineno to 0 after first
4707         call to check_newline.  Don't handle -lang-objc here.
4708         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
4709
4710 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
4711
4712         * rs6000.md: Correct function unit definitions for cr_logical and
4713         mtjmpr.
4714         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
4715         and use portable method for >=0 and floating point >=.  Remove
4716         associated matchers.
4717
4718 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
4719
4720         * extend.texi: Mark named return value extension as deprecated.
4721
4722 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
4723
4724         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
4725         the result.
4726
4727 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
4728
4729         * toplev.c (display_help): Fix thinko in documentation.
4730
4731         * diagnostic.h (output_buffer::indent_skip): New fields.
4732         (output_indentation): New macro.
4733
4734         * diagnostic.c (output_indent): New function.
4735         (output_set_prefix, clear_diagnostic_info): Use.
4736         (output_emit_prefix): Predict future indentation.
4737
4738 2000-09-06  DJ Delorie  <dj@redhat.com>
4739
4740         * Makefile.in (stage_*): add more dependencies to ensure parallel
4741         builds build correctly
4742
4743 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
4744
4745         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
4746         not bootstrap-lean_f.
4747
4748 2000-09-06  Andreas Schwab  <schwab@suse.de>
4749
4750         * mklibgcc.in: Emit rule for libgcc-stage-start.
4751         * Makefile.in (stage1-start, stage2-start, stage3-start,
4752         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
4753
4754 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
4755
4756         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
4757         (update_equiv_regs): Likewise, except for the mn10200 kludge.
4758         (combine_regs): Likewise.
4759
4760         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
4761         * cse.c: Include "basic-block.h".
4762         (struct table_elt): New field REGCOST.
4763         (CHEAP_REG): Delete macro.
4764         (COST): Return 0 for REGs.
4765         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
4766         (notreg_cost): Return 0 for appropriate SUBREGs.
4767         (COSTS_N_INSNS): Return N * 2.
4768         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
4769         SUBREGs.
4770         (CHEAPER): Use new function preferrable.
4771         (insert): Initialize REGCOST member.
4772         (find_best_addr): Use approx_reg_cost for estimation of register
4773         usage.
4774         (cse_insn): Likewise.
4775         * loop.c (iv_add_mult_cost): New function.
4776         (add_cost, shift_cost, mult_cost): Delete variables.
4777         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
4778         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
4779         Make code that detects autoinc opportunities slightly less optimistic.
4780         (simplify_giv_expr): If expression contains other reg that is also a
4781         giv, only increment benefit if this is the only use of that reg.
4782         (consec_sets_giv): Take that change into account.
4783         (combine_givs): Slightly more verbose output.
4784
4785         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
4786         not the cost of an equivalent shift.
4787         * sh-protos.h (addsubcosts): Declare.
4788         * sh.c (addsubcosts): New function.
4789         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
4790         (RTX_COSTS): Tweak.  Use addsubcosts.
4791         (ADDRESS_COST): Return higher cost for reg+reg addressing.
4792
4793 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
4794
4795         * config/rs6000/rs6000.c (validate_condition_mode): New function.
4796         (branch_comparison_operator): Call validate_condition_mode to
4797         abort rather than returning 0.
4798         (branch_positive_comparison_operator): New function.
4799         (scc_comparison_operator): Call validate_condition_mode to abort
4800         rather than returning 0.
4801         (ccr_bit): Call validate_condition_mode.  Update for
4802         new branch scheme.
4803         (print_operand): Delete %C modifier.  Update %E case
4804         to use EQ bit not SO bit.
4805         (rs6000_reverse_condition): New function.
4806         (rs6000_generate_compare): New function.
4807         (rs6000_emit_sCOND): New function.
4808         (rs6000_emit_cbranch): New function.
4809         (output_cbranch): The length of a long branch insn is
4810         now only 8 bytes.  Add validate_condition_mode.  Use
4811         rs6000_reverse_condition.  Remove cror generation.
4812
4813         * config/rs6000/rs6000.h: Update comments.
4814         (PREDICATE_CODES): Add new predicate.  Update codes used
4815         by branch_comparison_operator and scc_comparison_operator.
4816         * config/rs6000/rs6000-protos.h: Add prototypes for
4817         new external functions.
4818         * config/rs6000/rs6000.md: Add new scheduling parameters
4819         for cr_logical instructions.  Change length of branch
4820         instructions.
4821         (bCOND patterns): Call rs6000_emit_cbranch.
4822         (sCOND patterns): Call rs6000_emit_sCOND.
4823         (branch patterns): Change lengths to 4.
4824         (cr logical patterns): New.
4825
4826 2000-09-06  Richard Henderson  <rth@cygnus.com>
4827
4828         * config/i386/i386.md (call_pop): Fix test for setting
4829         current_function_uses_pic_offset_table.
4830         (call, call_value_pop, call_value): Likewise.
4831
4832 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
4833
4834         * timevar.c (timevar_add): Delete.
4835         (timevar_get): Also count time since the selected timer was
4836         last updated.  Do not examine the timevar stack if the
4837         selected timer is standalone.
4838
4839 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4840
4841         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
4842
4843 2000-09-05  Jason Merrill  <jason@redhat.com>
4844
4845         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
4846         for 'extern' arrays.
4847
4848 2000-09-05  Richard Henderson  <rth@cygnus.com>
4849
4850         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
4851         Eliminate final copy from non-trapping case.
4852         (__divdf3, __divsf3): Likewise.
4853
4854 2000-09-05  Richard Henderson  <rth@cygnus.com>
4855
4856         * config/ia64/ia64.md (mulhi3): Fix typo last change.
4857         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
4858
4859 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
4860
4861         * Makefile.in: Restructure bootstrap stages to allow clean
4862         restart after failure.
4863
4864 2000-09-05  Richard Henderson  <rth@cygnus.com>
4865
4866         * config/ia64.md (movsi and movdi patterns): Allow moves from
4867         8-bit constants to AR registers.
4868
4869 2000-09-05  Richard Henderson  <rth@cygnus.com>
4870
4871         * config/ia64/ia64.md (mulhi3): New.
4872
4873 2000-09-05  Richard Henderson  <rth@cygnus.com>
4874
4875         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
4876         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
4877         Optimization Guide, minimum latency alternative.
4878         (__moddi3, __udivdi3, __umoddi3): Likewise.
4879         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
4880
4881 2000-09-05  Bruce Korb  <bkorb@gnu.org>
4882
4883         * fixinc/fixincl.c (load_file): always read header files
4884         with sizes that are a multiple of the page size.
4885         & use libiberty's getpagesize for determining that.
4886
4887 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
4888
4889         * gcse.c (hash_string_1): Add prototype.
4890         * cse.c (canon_hash_string): Likewise.
4891
4892 2000-09-04  Craig Newell  <CraigN@ieee.org>
4893
4894         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
4895
4896 2000-09-04  Andreas Schwab  <schwab@suse.de>
4897
4898         * Makefile.in (STAGESTUFF): Remove libgcc.
4899         (stage1-start, stage2-start, stage3-start): Copy the contents of
4900         the libgcc directory explicitly.
4901         (mostlyclean): Clean libgcc.
4902
4903 2000-09-04  Andrew Haley  <aph@redhat.com>
4904
4905         * dwarf2out.c: (stack_adjust_offset): New prototype.
4906
4907 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
4908
4909         * combine.c (make_extraction): Fix rtx_cost comparison to
4910         match the comment.
4911
4912 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
4913
4914         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
4915         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
4916         Add '*' to insn pattern name.
4917
4918 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
4919
4920         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
4921         use posn - 1 to index into tokens array.
4922         (maybe_paste_with_next): Adjust caller.
4923
4924 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
4925
4926         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
4927
4928         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
4929         (REGNO_REG_CLASS): Use symbolic register
4930         names.
4931
4932 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
4933
4934         * arm.c (final_prescan_insn): If the form of a jump insn isn't
4935         recognized, don't try to conditionally execute it.
4936
4937 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
4938
4939         * config/avr/avr.md ("*tablejump_lib"): New pattern.
4940         (call_value_insn): Right length claculation.
4941         (call_insn): Likewise.
4942
4943 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
4944
4945         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
4946         gas_output_limited_string, gas_output_ascii, output_movqi,
4947         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
4948         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
4949         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
4950         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
4951         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
4952         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
4953         Add "const" as needed to remove warnings.
4954
4955         * config/avr/avr.c (avr_override_options, avr_init_once,
4956         function_prologue, function_epilogue, frame_pointer_required_p,
4957         class_likely_spilled_p, order_regs_for_local_alloc,
4958         avr_address_cost, avr_ret_register): Use K&R style arguments.
4959         (initial_elimination_offset, gas_output_limited_string):
4960         Remove ATTRIBUTE_UNUSED from the used arguments.
4961         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
4962         Use local variables src, dest, base to access operands[].
4963         Rename reg_dest to reg_src if that's what it is.
4964         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
4965         constants to LD_REGS if reg_was_0.
4966         (output_reload_insisf): Change arg 3 to insn length and set it.
4967         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
4968         access to 16-bit I/O register pairs.
4969         (avr_address_cost): Lower cost for the above case.
4970         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
4971         may be clobbered, also for LD_REGS.
4972         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
4973         with a CONST_INT.
4974
4975         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
4976
4977         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
4978         macro to test_hard_reg_class function.
4979         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
4980         for loading immediate constants to LD_REGS.
4981         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
4982
4983
4984 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
4985
4986         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
4987         * config/avr/libgcc.S: Lost part of the previous patch.
4988
4989 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4990
4991         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
4992         object before calling pthread_mutex_init.
4993
4994 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
4995
4996         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
4997         config/sh/crtn.asm: New files.
4998         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
4999         (crt1.o, crti.o, crtn.o): New targets.
5000         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
5001         sh/t-elf.
5002         * configure: Rebuilt.
5003         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
5004         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
5005         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
5006         Undefine for config/elfos.h to redefine.
5007         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
5008
5009 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
5010
5011         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
5012         legitimize_pic_address, output_pic_addr_const): Declare.
5013         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
5014         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
5015         (TARGET_SWITCHES): New switch -mprefergot.
5016         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
5017         (PIC_OFFSET_TABLE_REGNUM): Define.
5018         (GOT_SYMBOL_TABLE): Likewise.
5019         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
5020         (ENCODE_SECTION_INFO): Define.
5021         (FINALIZE_PIC): New macros.
5022         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
5023         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
5024         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
5025         (prepare_move_operands): Call emit_pic_move or
5026         emit_pic_const_move if appropriate.
5027         (output_far_jump): For PIC, use braf and output long offset.
5028         (machine_dependent_reorg):
5029         (sh_expand_prologue): Save and initialize the PIC register.
5030         (sh_expand_epilogue): Restore it.
5031         (initial_elimination_offset): Account for it.
5032         (nonpic_symbol_mentioned_p): New function.
5033         (legitimize_pic_address): Likewise.
5034         (output_pic_addr_const): Likewise.
5035         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
5036         (call, call_value): Use them.
5037         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
5038         symPLT_label2reg): New expands.
5039         * invoke.texi (SH Options): Document -mprefergot.
5040
5041 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
5042
5043         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
5044         * gcse.c (hash_string_1): New function.
5045         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
5046         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
5047         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
5048         (canon_hash_string): New function.
5049         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
5050         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
5051         (fold_rtx): Use ASM_OPERANDS accessor macros.
5052         * emit-rtl.c (copy_insn_1): Likewise.
5053         * integrate.c (copy_rtx_and_substitute): Likewise.
5054         * stmt.c (expand_asm_operands): Likewise.  Give an
5055         ASM_OPERANDS rtx the mode of the output reg being set from it.
5056
5057 2000-09-01  Fred Fish  <fnf@be.com>
5058
5059         * fix-header.c (write_rbrac): Add putc and getc to list of
5060         functions to protect against prior definition as a macro.
5061
5062 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
5063
5064         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
5065         (c_size_type_node): Define.
5066         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
5067         * c-common.c (enum format_lengths, enum format_std_version,
5068         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
5069         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
5070         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
5071         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
5072         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
5073         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
5074         format_types): Define.
5075         (format_char_info, print_char_table, scan_char_table,
5076         time_char_table): Rearrange for new organization of information
5077         about format length modifiers and standard versions.
5078         (T_ST): Redefine to use c_size_type_node.
5079         (check_format_info): Obtain information about length modifiers and
5080         standard versions from tables.  Adjust warning message wordings.
5081         Use the name from the user's program for `ll' and `hh' length
5082         modifiers in warning messages.  Use more informative names for
5083         wanted types where available (for wchar_t, wint_t, size_t, signed
5084         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
5085
5086 2000-09-01  Jim Wilson  <wilson@cygnus.com>
5087
5088         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
5089         * combine.c (distribute_notes): Handle REG_NORETURN.
5090         * rtl.c (reg_note_name): Add REG_NORETURN.
5091         * rtl.h (enum reg_note): Likewise.
5092
5093         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
5094         ia64_file_start.
5095         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
5096         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
5097         (emit_predicate_relation_info): Handle conditional calls with
5098         REG_NORETURN.
5099         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
5100         instead of ia64_file_start.
5101         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
5102         * config/ia64/ia64.md (safe_across_calls_all,
5103         save_across_calls_normal): New patterns.
5104
5105         * loop.c (check_final_value): Check for biv use before checking for
5106         giv use.  Check for both biv and giv uses.  Always set last_giv_use
5107         if there is a giv use.
5108
5109 2000-09-01  Richard Henderson  <rth@cygnus.com>
5110
5111         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
5112         (madddi3): Likewise.
5113         (maddsi3): New.
5114
5115 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5116
5117         * expr.c (clear_storage): Don't use emit_move_insn unless
5118         either BLKmode or proper size.
5119         (store_constructor): Don't call clear_storage if REG of wrong size.
5120
5121         * flow.c (init_propagate_block_info): Don't mark frame dead at end
5122         of function if returns wiht stack pointer depressed.
5123
5124 2000-09-01  Andrew Haley  <aph@redhat.com>
5125
5126         * dwarf2out.c (stack_adjust_offset): New function.
5127         (dwarf2out_stack_adjust): Break out stack adjust logic into
5128         new stack_adjust_offset function.  Look inside parallels and
5129         sequences for stack adjustments.
5130
5131 2000-08-31  Jeff Law <law@cygnus.com>
5132
5133         * arm.md: Use no_new_pseudos to determine when it is safe
5134         to create new pseudo registers.
5135
5136         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
5137         when we can safely allocate new registers.
5138
5139 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
5140
5141         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
5142         so that CONCATs are not generated for ASMs.
5143         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
5144         not generating_concat_p.
5145         * function.c (pop_function_context_from): Reset
5146         generating_concat_p.
5147         (prepare_function_start): Likewise.
5148         * rtl.c (generating_concat_p): Define.
5149         * rtl.h (generating_concat_p): Declare.
5150         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
5151
5152 2000-08-22  Philipp Thomas  <pthomas@suse.de>
5153             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
5154
5155         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
5156         for translation.
5157
5158 2000-08-30  Greg McGary  <greg@mcgary.org>
5159
5160         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
5161         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
5162         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
5163
5164 2000-08-30  Greg McGary  <greg@mcgary.org>
5165
5166         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
5167         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
5168         (TREE_INT_CST): New macro.
5169         * varasm.c (const_hash, compare_constant_1, record_constant_1):
5170         Use new macro TREE_INT_CST.
5171
5172 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
5173
5174         * contrib.texi: Add self.
5175
5176 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
5177
5178         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
5179         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
5180         and labels.
5181
5182 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5183
5184         * fixinc/gnu-regex.c: Don't define `const'.
5185
5186 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5187
5188         * expr.c (store_constructor): Allow variable bounds of array type.
5189         (expand_expr): Don't blow up if type is ERROR_MARK.
5190         * varasm.c (output_constructor): Don't access lower bound of array
5191         type unless need it if index is supplied (so it can be a variable
5192         if no index is supplied).
5193         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
5194         Other minor cleanups.
5195
5196 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5197
5198         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
5199         for compilations in stage 1 and subsequent stages, respectively.
5200         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
5201         * configure: Rebuilt.
5202         * x-vax, x-vax-gcc: Deleted.
5203
5204 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5205
5206         * c-common.c (declare_function_name): Use func_id_node,
5207         function_id_node, and pretty_function_id_node.  Do not make
5208         __func__ visible at file scope.
5209         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
5210         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
5211         (function_id_node, pretty_function_id_node, func_id_node): New
5212         macros.
5213         * c-decl.c (init_decl_processing): Initialize function_id_node,
5214         pretty_function_id_node, and func_id_node.
5215         (c_make_fname_decl): Correct comment.
5216
5217         * tree.h (struct tree_identifier): Constify pointer member.
5218
5219         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
5220         * c-pragma.h (struct weak_syms): Constify name and value members.
5221         (add_weak): Constify arguments.
5222
5223         * calls.c (special_function_p): Constify a char *.
5224         (expand_call): Remove variable which is initialized and then
5225         never used.
5226         * dependence.c (struct def_use, struct induction, struct subscript):
5227         Constify 'variable' member.
5228         (get_low_bound, have_induction_variable): Constify char * argument.
5229         (find_induction_variable): Add braces to avoid dangling else.
5230         (classify_dependence): Constify char * arrays.
5231         * profile.c (output_func_start_profiler): Constify a char *.
5232         * stor-layout.c (finalize_record_size): Constify a char *.
5233         * tree.c (is_attribute_p): Constify a char *.
5234         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
5235
5236         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
5237         for comprehensibility.  Do not call get_identifier if we did
5238         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
5239         create temporary string constants, not ggc_alloc_string.  No
5240         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
5241         char * to hold IDENTIFIER_POINTERs.
5242
5243 2000-08-29  Richard Henderson  <rth@cygnus.com>
5244
5245         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
5246         for the inputs.
5247
5248 2000-08-29  Richard Henderson  <rth@cygnus.com>
5249
5250         * reload.c (push_secondary_reload): Allow class == reload_class
5251         if we're using a reload_in/out pattern.
5252
5253         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
5254         the half that does not conflict with the reload register.
5255         (reload_outti): Likewise.
5256
5257 2000-08-29  Kazu Hirata  <kazu@hxi.com>
5258
5259         * reload.c: Fix formatting.
5260
5261         * stmt.c: Fix formatting.
5262
5263         * gcc.c: Fix formatting.
5264
5265 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5266
5267         * flags.h (time_report, mem_report): New global flags.
5268         * toplev.c: Define time_report and mem_report.
5269         (f_options): Add -ftime-report and -fmem-report.
5270         (compile_file): Turn on time_report if quiet_flag is off.
5271         Call ggc_print_statistics at very end if mem_report is on.
5272         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
5273
5274         * ggc-common.c (ggc_print_statistics): Rename to
5275         ggc_print_common_statistics; all callers changed.  Scale
5276         quantities above 10K to kilobytes and above 10M to megabytes.
5277         * ggc-page.c (ggc_page_print_statistics): Rename to
5278         ggc_print_statistics.  Report memory consumed by internal data
5279         structures for each allocation bucket.  Scale quantities above
5280         10K to kilobytes and above 10M to megabytes.
5281         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
5282         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
5283         Define tally_leaves always.
5284         (ggc_print_statistics): New function.
5285         * ggc.h: Adjust for renamed functions.
5286
5287 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
5288
5289         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
5290         output_movsisf instead of which_alternative.
5291
5292         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
5293
5294 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
5295
5296         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
5297         (avr_progmem_p): New prototype.
5298         (output_movsisf): Prototype declaration changed.
5299         (output_movqi): New prototype.
5300         (output_movhi): New prototype.
5301         (call_insn_operand): Likewise.
5302         (final_prescan_insn): Likewise.
5303         (avr_simplify_comparision_p): Likewise.
5304         (avr_normalize_condition): Likewise.
5305         (compare_eq_p): Likewise.
5306         (out_shift_with_cnt): Likewise.
5307         (const_int_pow2_p): Likewise.
5308         (output_reload_inhi): Prototype declaration changed.
5309
5310         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
5311         (ldi_reg_rtx): New. rtx for r31.
5312         (avr_init_stack): Initialize as "__stack".
5313         (function_prologue): Use it.
5314         Replace all TARGET_ENHANCED with AVR_ENHANCED.
5315         (avr_mcu_name): Initialize as "avr2".
5316         (avr_enhanced_p, avr_mega_p): New variables.
5317         (mcu_types, avr_override_options): Handle all known MCU types.
5318         Also handle avr1 (only preprocess, assemble and link).
5319         (print_operand): Using of `%K' in output template removed.
5320         (out_movqi_r_mr): Optimized.
5321         (out_movhi_r_mr): Likewise.
5322         (output_movqi): New function.
5323         (output_movhi): Likewise.
5324         (out_movsi_r_mr): Optimized.
5325         (output_movsisf): Compute insn length for `adjust_insn_length'
5326         (out_movqi_mr_r): Optimized.
5327         (out_movhi_mr_r): Optimized.
5328         (adjust_insn_length): Use output_movsisf, output_movqi,
5329         output_movhi for insn length adjusting.
5330         (reg_unused_after): Use dead_or_set_p.
5331         (preferred_reload_class): Now havn't any restriction.
5332         (reg_was_0): New function.
5333         (io_address_p): Likewise.
5334         (const_int_pow2_p): Likewise.
5335         (output_reload_inhi): Likewise.
5336         (output_reload_insisf): Likewise.
5337
5338         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
5339         (LIB_SPEC): Use -lc for all supported devices.
5340         (LIBGCC_SPEC): Use -lgcc for all supported devices.
5341         (AVR_MEGA): Define as avr_mega_p.
5342         (AVR_ENHANCED): New, define as avr_enhanced_p.
5343         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
5344         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
5345         (CRT_BINUTILS_SPECS): Handle all known MCU types.
5346         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
5347         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
5348         (ASM_SPEC): Pass -mmcu=... to the assembler.
5349         Change all -DAVR_* to -D__AVR_*__.
5350         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
5351         Rename library functions to start with two underscores.
5352         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
5353         alignment.
5354         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
5355         (SUPPORTS_WEAK): Likewise.
5356         (LDI_REG_REGNO): New. Register r31 will be used as temporary
5357         register for loading constants to r0-r14.
5358
5359         * config/avr/avr.md: Replace all TARGET_ENHANCED with
5360         AVR_ENHANCED.
5361         (*mov_r_sp): Removed. Handled by output_movhi.
5362         (*mov_sp_r): Likewise.
5363         (*mov_sp_r_no_interrupts): Likewise
5364         (*mov_sp_r_tiny): Likewise.
5365         (*movqi): Use output_movqi.
5366         (*reload_inqi): New.
5367         (*movhi): Use output_movhi.
5368         (*reload_inhi): New.
5369         (*negsi2): Optimized.
5370         (*negsf2): Likewise.
5371         Added peepholes (define_peephole2) for loading constants to r0-r14
5372         and for using `cpse' command.
5373
5374         * config/avr/libgcc.S: Rename library functions to start with two
5375         underscores.
5376         Add support for enhanced core.
5377         (_moqhi3): Fix typo, now _modqi3.
5378         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
5379         (__prologue_saves__): Remove test for stack adjust by 0.
5380         (__tablejump__): New.
5381
5382         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
5383         Add multilib support.
5384
5385 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
5386
5387         * loop.c (prescan_loop): Don't check unknown_address_altered
5388         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
5389         to loop_store_mems as necessary.
5390         (loop_invariant_p): Don't check unknown_address_altered
5391         or unknown_constant_address_altered.
5392
5393 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5394
5395         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
5396
5397 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
5398
5399         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
5400         print just the filename.
5401         * cpplex.c (_cpp_run_directive): Add additional argument, the
5402         name to give the synthetic buffer.  This defaults to
5403         translated "<command line>".
5404         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
5405         Adjust to match.
5406         (_cpp_define_builtin): New function.
5407         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
5408         * cpphash.h: Update prototypes.
5409
5410         * tradcpp.c (main): Process -D and -U simultaneously, in the
5411         order they appeared on the command line.
5412
5413 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5414
5415         * c-decl.c (define_label): Call warning_with_file_and_line and
5416         error_with_file_and_line instead of plain warning or error.
5417
5418         * c-parse.in (label): Use save_filename/save_lineno to ensure
5419         correct values for calls to define_label.
5420
5421 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
5422
5423         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
5424         away.
5425         * expr.c (expand_expr, case TARGET_EXPR): Don't call
5426         mark_addressable.
5427         * tree.h (get_file_function_name): Remove two duplicate
5428         declarations.
5429
5430 2000-08-28  Kazu Hirata  <kazu@hxi.com>
5431
5432         * tree.c: Fix formatting.
5433
5434         * xcoffout.c: Fix formatting.
5435
5436 2000-08-28  Jason Merrill  <jason@redhat.com>
5437
5438         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
5439
5440 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5441
5442         * dwarf2out.c (dwarf2out_finish): Don't bother calling
5443         break_out_includes if it won't do anything.
5444
5445 2000-08-28  Richard Henderson  <rth@cygnus.com>
5446
5447         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
5448         (find_reloads): Likewise.
5449         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
5450         (reload_inhi): Likewise.
5451
5452 2000-08-28  Richard Henderson  <rth@cygnus.com>
5453
5454         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
5455         (call_insn_operand): Don't expect a surrounding mem.
5456         (constant_call_address_operand): Likewise.
5457         * config/i386/i386.h (PREDICATE_CODES): Update.
5458         * config/i386/i386.md (call patterns): Move the match_operand
5459         for the call destination inside the mem.
5460
5461 2000-08-28  Richard Henderson  <rth@cygnus.com>
5462
5463         * local-alloc.c (requires_inout): Don't use reserved range for
5464         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
5465         * recog.c (asm_operand_ok): Likewise.
5466         (preprocess_constraints, constrain_operands): Likewise.
5467         * regclass.c (record_reg_classes): Likewise.
5468         * reload.c (find_reloads): Likewise.
5469         * reload1.c (maybe_fix_stack_asms): Likewise.
5470         (reload_cse_simplify_operands): Likewise.
5471         * stmt.c (expand_asm_operands): Likewise.
5472
5473         * md.texi: Update constraints documentation.
5474         * tm.texi (EXTRA_CONSTRAINT): Update.
5475
5476 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
5477
5478         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
5479         (print_die): If we don't know the offset of the
5480         target die, try the symbol.  Add a trailing newline.
5481         (reverse_all_dies): New fn.
5482         (dwarf2out_finish): Call it.
5483         (break_out_includes): Reorganize for clarity.
5484         (add_sibling_attributes): Don't call reverse_die_lists.
5485         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
5486         primary CU, too.
5487         * flags.h: Add flag_eliminate_dwarf2_dups.
5488         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
5489
5490 2000-08-28  Jason Merrill  <jason@redhat.com>
5491
5492         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
5493         * dwarf2out.c: #include "md5.h".
5494         (DIE_LABEL_PREFIX): New macro.
5495         (dw_val_struct): Add 'external' flag to val_die_ref.
5496         (add_AT_die_ref, AT_ref): Adjust.
5497         (AT_ref_external, set_AT_ref_external): New fns.
5498         (build_abbrev_table): Call set_AT_ref_external.
5499         (value_format): Call AT_ref_external.
5500         (die_struct): Add die_symbol field.
5501         (new_die): Clear it.
5502         (dwarf_tag_name): Handle BINCL/EINCL.
5503         (dwarf2out_start_source_file): Add BINCL DIE.
5504         (dwarf2out_end_source_file): Add EINCL DIE.
5505         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
5506         (loc_checksum, attr_checksum, die_checksum): New fns.
5507         (is_type_die, is_comdat_die, is_symbol_die): New fns.
5508         (compute_section_prefix, assign_symbol_names): New fns.
5509         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
5510         (output_die): Call output_die_symbol and AT_ref_external.
5511         (output_comdat_comp_unit): New fn, split out from...
5512         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
5513         secondary CUs.
5514         (output_pubnames, output_aranges): Abort if we see entries from
5515         secondary CUs.
5516         * toplev.h: Declare file_name_nondirectory.
5517         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
5518         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
5519         (debug_start_source_file): Call dwarf2out_start_source_file
5520         regardless of debug verbosity.
5521         (debug_end_source_file): Similarly.
5522         * tree.h: Declare clean_symbol_name.
5523         * tree.c (clean_symbol_name): Split out from...
5524         (get_file_function_name_long): ...here.
5525
5526         * dwarf2out.c (new_loc_descr): Use calloc.
5527         (splice_child_die): Remove the die from the right parent.
5528         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
5529
5530 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5531
5532         * toplev.c (decode_g_option): Don't give warning for unknown -g
5533         option; return 0 instead.
5534         (main): If -g option is not recognized by front end or
5535         language-independent code, give warning.
5536
5537 2000-08-28  Greg McGary  <greg@mcgary.org>
5538
5539         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
5540         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
5541         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
5542
5543 2000-08-27  Greg McGary  <greg@mcgary.org>
5544
5545         * cpplex.c (parse_string): Don't look for backslash
5546         before first char in `namebuf'.
5547         * loop.c (strength_reduce): Skip NOTEs.
5548
5549 2000-08-27  Jason Merrill  <jason@redhat.com>
5550
5551         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
5552         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
5553         TREE_ASM_WRITTEN, either.
5554         (finish_decl): Adjust.
5555
5556 2000-08-28  Philipp Thomas  <pthomas@suse.de>
5557
5558         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
5559         they have been incorporated into the gettext CVS. Change the text to
5560         reflect the current status of NLS. Add instructions for accessing
5561         the gettext CVS and add the patch from Martin v. Loewis.
5562
5563 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
5564
5565         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
5566         by using gen_lowpart_common.
5567         (movdi_internal64+6): Likewise.
5568
5569 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
5570
5571         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
5572         Document.
5573
5574         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
5575         numbers to the ranges used by GDB.
5576
5577 2000-08-25  Richard Henderson  <rth@cygnus.com>
5578
5579         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
5580         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
5581         (ia64_expand_prologue): Likewise.
5582         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
5583         argument for stdargs.
5584
5585 2000-08-25  Jason Merrill  <jason@redhat.com>
5586
5587         * integrate.c (expand_inline_function): Pull out the original decl.
5588
5589 2000-08-25  Jim Wilson  <wilson@cygnus.com>
5590
5591         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
5592
5593         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
5594
5595 2000-08-25  Greg McGary  <greg@mcgary.org>
5596
5597         * flow.c (dump_edge_info): Use ARRAY_SIZE.
5598         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
5599
5600 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
5601
5602         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
5603
5604 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
5605
5606         * i386.c (ix86_find_base_term): New.
5607         * i386-protos.h (ix86_find_base_term): Prototype.
5608         * i386.h (FIND_BASE_TERM): Define.
5609         * alias.c (find_base_term): Use it.
5610         * tm.texi (FIND_BASE_TERM): Document it.
5611
5612         * alias.c (true_dependence, write_dependence_p): Unchanging
5613         memory can't conflict with non-unchanging memory.
5614
5615         * alias.c (memrefs_conflict_p): A BLKmode reference
5616         to a symbol (or CONST_INT address) always conflicts
5617         with a reference to another symbol.
5618
5619 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
5620
5621         * c-common.c (time_char_table): Don't allow width and flags with
5622         "z" format.
5623
5624 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
5625
5626         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
5627         way as LT and LTU when the second operand has 0 in low word.
5628
5629 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5630
5631         * basic-block.h (struct loop): Rename `exits' field to
5632         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
5633
5634         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
5635         (flow_loop_entry_edges_find): Add.
5636         (flow_edge_list_print): Rename from flow_exits_print.
5637         (flow_loops_find): Call flow_loop_entry_edges_find.
5638         (flow_loop_dump): Dump entry_edges list.
5639         (flow_loops_free): Free entry_edges.
5640
5641 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5642
5643         * loop.c (loop_dump_aux, debug_loop): New functions.
5644         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
5645
5646         * flow.c (flow_loops_dump): Add callback parameter.
5647         (flow_loop_dump): Add callback parameter and call it.  Move
5648         loop note debugging code to loop_dump_aux.
5649
5650         * basic-block.h (flow_loop_dump): Add callback parameter
5651         (flow_loops_dump): Likewise.
5652
5653         * toplev.c (rest_of_compilation): Add NULL callback function pointer
5654         to call to flow_loops_dump.
5655
5656 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5657
5658         * loop.c (count_loop_regs_set): Replace start and end arguments
5659         with loop argument.  All callers udated.
5660
5661 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5662
5663         * loop.c (constant_high_bytes): Delete.
5664
5665 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
5666
5667         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
5668         and NOTE_INSN_LOOP_VTOP to...
5669         (find_and_verify_loops) ...here.
5670
5671 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
5672
5673         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
5674         (fini_dummy, init_dummy): Use it.
5675
5676 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
5677
5678         * cpplex.c (is_macro_disabled): Caller has already checked
5679         that we're not a preprocessed file.
5680
5681 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
5682
5683         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
5684         (c-iterate.o): Remove target.
5685         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
5686         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
5687         (finish_decl): Don't handle iterators.
5688         (grokdeclarator): Likewise.
5689         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
5690         * gcc/c-gperf.h: Regenerated.
5691         * gcc/c-iterate.c: Removed.
5692         * gcc/c-lex.c (init_lex): Don't handle iterators.
5693         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
5694         (compstmt_primary_start): Remove push_iterator_stack call.
5695         (stmt): Don't allow iterator statements.  Replace iterator_expand
5696         with expand_expr_stmt.
5697         (all_iter_stmt): Remove.
5698         (all_iter_stmt_simple): Likewise.
5699         (all_iter_stmt_with_decl): Likewise.
5700         * gcc/c-tree.h (ITERATOR_P): Remove.
5701         (ITERATOR_BOUND_P): Likewise.
5702         (init_iterators): Remove declaration.
5703         (iterator_expand): Likewise.
5704         (iterator_for_loop_start): Likewise.
5705         (iterator_for_loop_end): Likewise.
5706         (iterator_for_loop_record): Likewise.
5707         (push_iterator_stack): Likewise.
5708         (pop_iterator_stack): Likewise.
5709         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
5710         (readonly_warning): Likewise.
5711         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
5712
5713 2000-08-24  Jim Wilson  <wilson@cygnus.com>
5714
5715         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
5716         Copy type in a TYPE_DECL, just like pushdecl does.
5717
5718 2000-08-24  Richard Henderson  <rth@cygnus.com>
5719
5720         * toplev.c (main): Enable flag_reorder_blocks at -O2.
5721
5722 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
5723
5724         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
5725         asked for one page, allocate GGC_QUIRE_SIZE of them and put
5726         the extras on the free list.
5727         (release_pages): Clean up.
5728         (ggc_set_mark): Don't adjust G.allocated here...
5729         (sweep_pages): ... do it here.
5730
5731 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
5732
5733         * cppfiles.c (read_include_file): Rearrange initializations.
5734
5735 2000-08-24  Richard Henderson  <rth@cygnus.com>
5736
5737         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
5738
5739         * config/ia64/ia64-protos.h: Update.
5740         * config/ia64/ia64.c (gr_register_operand): New.
5741         (fr_register_operand, grfr_register_operand): New.
5742         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
5743         (grfr_reg_or_8bit_operand): New.
5744         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
5745         use gr_register_operand.
5746         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
5747         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
5748         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
5749         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
5750         (fr_reg_or_fp01_operand): Likewise.
5751         (not_postinc_memory_operand): New.
5752         (ia64_split_timode): Remove unused variables.
5753         (rtx_needs_barrier): Check arguments to cmpxchg.
5754         (builtin_description): Remove.
5755         (bdesc_2argsi, bdesc_2argdi): Remove.
5756         (ia64_init_builtins): Declare all builtins directly.
5757         (ia64_expand_fetch_and_op): Rewrite to be called from
5758         ia64_expand_builtin directly.  Use expand_binop and co.
5759         (ia64_expand_op_and_fetch): Likewise.
5760         (ia64_expand_compare_and_swap): Likewise.
5761         (ia64_expand_binop_builtin): Remove.
5762         (ia64_expand_lock_test_and_set): New.
5763         (ia64_expand_lock_release): New.
5764         (ia64_expand_builtin): Use them.
5765         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
5766         (EXTRA_CONSTRAINT): Use it.
5767         (PREDICATE_CODES): Update.
5768         * config/ia64/ia64.md (*): Use gr_register_operand and co.
5769         (mf): Indicate that we set memory as well as use it.
5770         (fetchadd_acq_si): Show memory being modified as well.
5771         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
5772         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
5773         (lock_test_and_set_si, lock_test_and_set_di): Remove.
5774         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
5775         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
5776         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
5777         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
5778         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
5779         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
5780         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
5781         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
5782         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
5783         return type.  Pretty print definitions.
5784
5785 2000-08-24  Jim Wilson  <wilson@cygnus.com>
5786
5787         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
5788         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
5789
5790 2000-08-24  Jason Merrill  <jason@redhat.com>
5791
5792         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
5793         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
5794         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
5795         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
5796
5797 2000-08-24  Greg McGary  <greg@mcgary.org>
5798
5799         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
5800         and extendtab within their proper array boundaries.
5801         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
5802         for the entire array.
5803
5804         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
5805         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
5806         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
5807         * config/fr30/fr30.c (fr30_print_operand): Likewise.
5808         * config/i386/dgux.c (output_options): Likewise.
5809         * config/i386/dgux.h (ASM_FILE_START): Likewise.
5810         * config/m88k/m88k.c (output_options): Likewise.
5811         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
5812         * config/mcore/mcore.c (mcore_output_inline_const_forced,
5813         layout_mcore_frame, handle_structs_in_regs): Likewise.
5814         * config/mips/mips.c (output_block_move): Likewise.
5815         * config/rs6000/rs6000.c (rs6000_override_options,
5816         rs6000_file_start): Likewise.
5817         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
5818         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
5819         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
5820         * builtins.c (expand_builtin_setjmp): Likewise.
5821         * expr.c (safe_from_p): Likewise.
5822         * flow.c (life_analysis): Likewise.
5823         * fold-const.c (size_int_type_wide): Likewise.
5824         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
5825         * genattrtab.c (make_length_attrs): Likewise.
5826         * genopinit.c (gen_insn): Likewise.
5827         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
5828         * global.c (global_alloc): Likewise.
5829         * local-alloc.c (find_free_reg): Likewise.
5830         * mips-tdump.c (print_symbol): Likewise.
5831         * mips-tfile.c (parse_def, parse_input): Likewise.
5832         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
5833         * stmt.c (expand_nl_goto_receiver): Likewise.
5834         * stor-layout.c (set_sizetype): Likewise.
5835         * varasm.c (decode_reg_name): Likewise.
5836         * toplev.c (decode_f_option, decode_W_option,
5837         set_target_switch, print_switch_values): Likewise.
5838         (NUM_ELEM): Remove macro.
5839         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
5840
5841 2000-08-24  Greg McGary  <greg@mcgary.org>
5842
5843         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
5844         (MAIN_NAME_P, main_identifier_node): New macros.
5845         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
5846         * c-decl.c (start_decl, grokdeclarator, start_function,
5847         store_parm_decls, finish_function): Use MAIN_NAME_P.
5848         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
5849         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
5850         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
5851         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
5852
5853 2000-08-24  Greg McGary  <greg@mcgary.org>
5854
5855         * cppfiles.c (actual_directory): Don't write beyond `dir'
5856         when it contains "".
5857         * real.c (asctoeg): Stay within bounds of etens[][].
5858
5859 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5860
5861         * dependence.c (dependence_string, direction_string,
5862         dump_one_node, dump_node_dependence): Hide unused identifiers.
5863         (get_low_bound, normalize_coefficients): Match definition to
5864         static prototype.
5865         (get_one_coefficient): Initialize variables `value0_is_idx' and
5866         `value1_is_idx'.
5867         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
5868         (ziv_test): Delete variable `idx', use parameter `sub' instead.
5869         (direction_merge): Avoid automatic aggregate initialization.
5870         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
5871         Initialize variables `dest_idx' and `src_idx'.
5872         (end_dependence_analysis): Avoid C89 style function definition.
5873
5874 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5875
5876         * c-common.c (time_char_table): Don't allow width with %F.
5877         (check_format_info): Don't allow "Z" length with scanf.
5878
5879 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
5880
5881         * diagnostic.c (finish_diagnostic): Define.
5882         (output_do_printf): Use wrap_text instead of output_add_string.
5883         (default_print_error_function): Avoid embedded '\n'.
5884
5885         * diagnostic.h (flush_diagnostic_buffer): Declare.
5886
5887 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
5888
5889         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
5890
5891 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
5892
5893         * Makefile.in (GCC_PASSES): Add specs.
5894
5895 2000-08-23  Jim Wilson  <wilson@cygnus.com>
5896
5897         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
5898         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
5899         EHANDLER nor UHANDLER bit is set.
5900         (__get_except_table): Likewise.
5901
5902 2000-08-23  Nick Clifton  <nickc@redhat.com>
5903
5904         * config/arm/lib1funcs.asm: Replace upper case condition codes
5905         with lower case versions.
5906
5907         * config/arm/arm.h (STRUCT_VALUE): Define.
5908         (STRUCT_VALUE_REGNUM): Delete.
5909
5910 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
5911
5912         * cpphash.h (IN_I): New flag for directive table.
5913         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
5914         #pragma with IN_I.
5915         (_cpp_check_directive): If -fpreprocessed, execute directives
5916         marked with IN_I.  Issue no warnings in this case.
5917         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
5918
5919 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5920
5921         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
5922         %u.
5923         (check_format_info): Support printf 'I' flag; warn about it with
5924         -pedantic.
5925
5926 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
5927
5928         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
5929         barrier can't be ignored by the alias analysis code.
5930
5931 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
5932
5933         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
5934         works inside fixincl.
5935
5936 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
5937
5938         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
5939         simplify_relational_operation() unless both operands are of
5940         VOIDmode.
5941         * cse.c (fold_rtx): Likewise.
5942
5943 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
5944
5945         * rtlanal.c (rtx_unstable_p): The pic register is stable
5946         (within one function) and the actual rtx should be used
5947         when checking the registers.
5948         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
5949
5950         * alias.c (true_dependence, write_dependence_p): Fix
5951         bug in previous patch.
5952
5953         * i386.c (ix86_GOT_alias_set): New.
5954         (legitimize_pic_address): Use it.
5955
5956         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
5957         only stable if its address is stable.
5958         (rtx_varies_p): An unchanging MEM can't vary if
5959         its address doesn't vary.
5960
5961 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5962
5963         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
5964
5965 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
5966
5967         * vax.h (ASM_SPEC): Pass `-J' to assembler.
5968         * x-vax-gcc: New file for bootstrapping with gcc.
5969         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
5970         * configure.in: Use x-vax-gcc with gcc.
5971         * configure: Rebuilt.
5972
5973 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5974
5975         * toplev.c (rest_of_compilation): Rebuild label notes after
5976         post-reload splitting pass if new labels have been created.
5977
5978 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
5979
5980         * diagnostic.h (output_buffer_state): New macro.
5981         * diagnostic.c (diagnostic_for_decl, sorry,
5982         default_print_error_function, output_do_verbatim,
5983         report_diagnostic, report_problematic_module): Use it.
5984         (wrap_text): Tweak.
5985         (output_format): Use wrap_text instead of maybe_wrap_text.
5986
5987 2000-08-22  Nick Clifton  <nickc@redhat.com>
5988
5989         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
5990         Common code for ARM divide and modulus functions.
5991         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
5992         ARM_DIV_MOD_BODY.
5993         (FUNC_END): New macro: Common code at the end of the division and
5994         modulo functions.
5995         (THUMB_FUNCTION_START): New macro:  Common code at the start of
5996         Thumb functions.
5997         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
5998
5999 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
6000
6001         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
6002
6003         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
6004         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
6005         const0_rtx.
6006
6007 2000-08-22  Nick Clifton  <nickc@redhat.com>
6008
6009         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
6010         restorative additions, test for bottom bits of IP being set,
6011         rather than relying upon the RORs not matching.
6012         (__modsi3): Ditto.
6013
6014 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
6015
6016         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
6017         text_section() as appropriate instead of emitting text csect
6018         pseudo-op directly.
6019         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
6020         (UNIQUE_SECTION): Define macro.
6021         (ASM_OUTPUT_SECTION_NAME): Define macro.
6022         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
6023         on AIX if debugging and -fdata-sections always.
6024
6025 2000-08-22  Steven King  <sxking@uswest.net>
6026
6027         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
6028         machinery.
6029         (LDBL_MAX): Same here.
6030
6031 2000-08-22  Richard Henderson  <rth@cygnus.com>
6032
6033         * flow.c (tidy_fallthru_edge): Update b->end properly.
6034
6035 2000-08-22  Stan Cox  <scox@redhat.com>
6036
6037         * Makefile.in (OBJS): Add dependence.o.
6038         * dependence.c: New file.
6039
6040 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
6041
6042         * calls.c (check_sibcall_argument_overlap_1): Adjust for
6043         ARGS_GROW_DOWNWARD.
6044         (check_sibcall_argument_overlap): Likewise.
6045
6046 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
6047
6048         * invoke.texi (SH Options): Document -m4-nofpu,
6049         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
6050         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
6051
6052 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
6053
6054         * c-common.c (check_format_info): Give the 'some locales' warning
6055         for strftime %Ey rather than the unconditional 'only last 2 digits
6056         of year' one.
6057
6058 2000-08-22  Richard Henderson  <rth@cygnus.com>
6059
6060         * alias.c (init_alias_analysis): Do not register
6061         struct_value_incoming_rtx or static_chain_rtx as pointing
6062         to stack memory.
6063
6064 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
6065
6066         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
6067
6068 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
6069
6070         * diagnostic.h (report_problematic_module): Declare.
6071         * diagnostic.c (report_problematic_module): New function.
6072         (report_error_function): Tweak.
6073
6074 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6075
6076         * stmt.c (expand_goto_internal, fixup_gotos): Only check
6077         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
6078
6079 2000-08-21  Richard Henderson  <rth@cygnus.com>
6080
6081         * flow.c (calculate_global_regs_live): Mark frame pointer live
6082         everywhere before reload.
6083
6084 2000-08-21  Jim Wilson  <wilson@cygnus.com>
6085
6086         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
6087         INTEL_EXTENDED_IEEE_FORMAT.
6088         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
6089         clear last two bytes of output FP value.
6090
6091 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
6092
6093         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
6094
6095 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
6096
6097         * unroll.c (loop_find_equiv_value): If ret is modified between
6098         insn and loop_start, ret might not be equivalent to reg.
6099
6100 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6101
6102         * c-common.c (init_dollar_format_checking,
6103         maybe_read_dollar_number, finish_dollar_format_checking): New
6104         functions.
6105         (dollar_arguments_used, dollar_arguments_count,
6106         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
6107         New variables.
6108         (check_format_info): Support $ formats for scanf and printf width
6109         and precision.  Always increment format_chars to advance past the
6110         '*' of precision, not just when the format parameters are
6111         available to check.
6112
6113 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6114
6115         * mips.c (block_move_loop, expand_block_move,
6116         function_arg_partial_nregs, save_restore_insns, function_prologue,
6117         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
6118         constant suffix.
6119         (function_arg_advance, function_arg): Match argument to format
6120         specifier `%p'.
6121
6122 2000-08-21  Nix  <nix@esperi.demon.co.uk>
6123
6124         * gcc.c (do_spec_1): Implement %j spec flag.
6125         Remove dead comment.
6126
6127         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
6128         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
6129         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
6130         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
6131
6132         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
6133         writable) instead of hardcoded value.
6134
6135         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
6136
6137         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
6138         MKTEMP_EACH_FILE.
6139
6140         * gcc.c (cc1_options): Do not process -o or run the assembler if
6141         -fsyntax-only.
6142         * objc/lang-spec.h: Likewise.
6143
6144 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
6145
6146         * fixinc/fixincl.c (fix_with_system): Pipe the output of
6147         "external" fixes through `cat', to avoid truncating the input
6148         file by redirection.
6149
6150 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
6151
6152         * config/i386/i386.md (lea_general_1): Copy insn condition to split
6153         condition.
6154         (lea_general_2, lea_general_3): Likewise.
6155
6156 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6157
6158         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
6159         warnings to user code.
6160
6161         * c-lex.c (readescape, yylex): Likewise.
6162
6163         * c-typeck.c (store_init_value, process_init_element): Likewise
6164         (c_expand_start_case): Format.
6165
6166 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6167
6168         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
6169
6170         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
6171         and linker_endian_spec to endian_spec.
6172         (ENDIAN_SPEC): Add %{EB} and %{EL}.
6173         (LINK_SPEC): Remove %{EB} and %{EL}.
6174         (ASM_SPEC): Likewise.  Use %(endian_spec).
6175
6176 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6177
6178         * c-tree.h (flag_hosted): Move declaration from here...
6179         * c-common.h (flag_hosted): ... to here.
6180         (flag_noniso_default_format_attributes): New declaration.
6181         * c-decl.c (flag_noniso_default_format_attributes): New variable.
6182         (c_decode_option): Set it appropriately for options choosing
6183         language standard variant.
6184         * c-common.c (init_function_format_info): Only provide default
6185         format attributes if flag_hosted.  Only provide the gettext
6186         formats if flag_noniso_default_format_attributes.  Update
6187         comments.
6188         (check_format_info): Disable treatment of %a as a scanf flag in
6189         C99 mode.
6190
6191 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
6192
6193         * c-common.c (scan_char_table): Add 'w' to flags for all formats
6194         except 'n'.
6195         (check_format_info): Set 'wide' for scanf format widths.  Warn for
6196         a zero scanf width.  Make the check for writing into a constant
6197         object at the first level of indirection; at later levels, warn if
6198         any type qualifiers are encountered.
6199
6200 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
6201
6202         * reload.c (reload_inner_reg_of_subreg): New function broken out of
6203         push_reload.
6204         (push_reload): Use reload_inner_reg_of_subreg.
6205         (combine_reloads): Do not combine reloads if the input reload
6206         is a SUBREG in which the inner part will need reloading.
6207
6208         * global.c (global_alloc): Avoid passing dumpfile argument to
6209         reload routines.
6210         * toplev.c (rest_of_compilation): Likewise.
6211         * reload.h (reload): Remove dumpfile argument.  Callers changed.
6212         (debug_reload, debug_reload_to_stream): Move prototypes here.
6213         * rtl.h  (reload): Remove dumpfile argument.
6214         * reload.c (debug_reload): Remove prototype.
6215         (debug_reload_to_stream): Likewise.
6216         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
6217         instead.
6218
6219 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6220
6221         * diagnostic.c (context_as_prefix): Export.
6222         (need_error_newline): Remove.
6223         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
6224         (error_module_changed, record_last_error_module,
6225         error_function_changed, record_last_error_function): New functions.
6226         (initialize_diagnostics): Default intialize
6227         lang_diagnostic_starter, lang_diagnostic_finalizer.
6228         (init_output_buffer): Tweak.
6229         (file_name_as_prefix): New function.
6230         (announce_function, default_print_error_function,
6231         report_error_function, set_diagnostic_context): Tweak.
6232
6233 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
6234
6235         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
6236         condition expression.
6237
6238 2000-08-20  Richard Henderson  <rth@cygnus.com>
6239
6240         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
6241
6242 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
6243
6244         * cppinit.c (cpp_init): Set global flag when called.
6245         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
6246
6247 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
6248
6249         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
6250         before `process_directive' so that newlines won't be missed
6251         for directives.
6252         (cpp_printf): Increment `print->lineno' when newline is emitted.
6253
6254         * cppmain.c (cb_ident): Likewise.
6255         (cb_define): Likewise.
6256         (cb_undef): Likewise.
6257         (cb_include): Likewise.
6258         (cb_def_pragma): Likewise.
6259         (dump_macros_helper): Likewise.
6260
6261 2000-08-20  Richard Henderson  <rth@cygnus.com>
6262
6263         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
6264         assigned before a loop.
6265
6266         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
6267         (ashrsi3, lshrsi3): Likewise.
6268
6269 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
6270
6271         * c-lang.c: #include diagnostic.h
6272         (c_tree_printer): New function.
6273         (lang_init): Initialize lang_printer.
6274
6275         * Makefile.in (c-lang.o): Depends on diagnostic.h
6276
6277 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
6278
6279         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
6280
6281         * diagnostic.c (default_diagnostic_starter,
6282         default_diagnostic_finalizer): New functions.
6283         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
6284         (pedwarn, pedwarn_with_file_and_line, error,
6285         error_with_file_and_line, fatal, warning,
6286         warning_with_file_and_line): Adjust call to report_diagnostic.
6287         (report_diagnostic): Rework.
6288         (set_diagnostic_context): New function.
6289
6290         * diagnostic.h (struct diagnostic_context): New data structure.
6291         (diagnostic_message, diagnostic_argument_list,
6292         diagnostic_file_location, diagnostic_line_location,
6293         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
6294         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
6295         (set_diagnostic_context): Declare.
6296         (report_diagnostic): Change prototype.
6297
6298 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
6299
6300         * fix-header.c (main): Initialize cpplib.
6301
6302 2000-08-19  Michael Meissner  <meissner@redhat.com>
6303
6304         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
6305         instructions in it before checking for indirect jumps.
6306
6307         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
6308         in a indirect jump as a potential for conditional execution.
6309
6310         * d30v.h (d30v_init_expanders): Don't declare here.
6311         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
6312         prototype.
6313
6314 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
6315
6316         * cpp.texi: Add @section for assertions.
6317
6318 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
6319
6320         * loop.c (scan_loop): Use CONST_CALL_P instead of
6321         checking for REG_LIBCALL / REG_RETVAL.
6322
6323 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
6324
6325         * reload1.c (reload_as_needed): Accept dumpfile argument,
6326         pass it to emit_reload_insns.
6327         (emit_reload_insns): Add new dumpfile argument.  If non-null
6328         then dump the reloads for each insn into the dumpfile.
6329         (reload): Pass dumpfile to reload_as_needed.
6330
6331         * invoke.texi: Clean up linux-gnu vs linux comments.
6332
6333 2000-08-19  Richard Henderson  <rth@cygnus.com>
6334
6335         * config/ia64/ia64.c (reg_or_5bit_operand): New.
6336         (ia64_depz_field_mask): New.
6337         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
6338         (PREDICATE_CODES): Update.
6339         * config/ia64/ia64.md: Update commentary.
6340         (depz_internal): New.
6341         (ashlsi3): Implement directly.
6342         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
6343         (ashldi3): Use shladd.
6344         * config/ia64/ia64-protos.h: Update.
6345
6346 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6347
6348         * toplev.c (independent_decode_option): Always process -g.
6349         Remove third argument, now unused.  Adjust caller to match.
6350
6351 2000-08-18  Richard Henderson  <rth@cygnus.com>
6352
6353         * combine.c (make_compound_operation): Break after creating
6354         the extraction.
6355
6356 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
6357
6358         * cpplib.c (cpp_register_pragma_space): Just return if the
6359         namespace is already registered.
6360
6361 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
6362
6363         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
6364         constant amount.  Do not generate ROTL instruction.
6365
6366 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
6367
6368         * config/sh/elf.h: Do not include sh/sh.h.
6369         * config/sh/rtems.h: Likewise.
6370         * config/sh/rtemself.h: Do not include sh/elf.h.
6371         * configure.in: Get them included with `tm_file's.
6372         * configure: Rebuilt.
6373
6374         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
6375         * config/sh/sh.c (fpscr_set_from_mem): Use them.
6376
6377 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6378
6379         * stor-layout.c (compute_record_type): Don't use mode of single
6380         field as mode of record if not integer mode of same type.
6381
6382         * regmove.c (perhaps_ends_bb_p): New function.
6383         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
6384         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
6385         (fixup_match_1): Likewise.
6386         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
6387         avoid signed/unsigned warnings.
6388
6389         * function.c (fixup_var_refs_1, case MEM): Update CODE after
6390         updating X.
6391
6392 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
6393
6394         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
6395         (_cpp_trigraph_map): Declaration moved from cpplex.c
6396
6397         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
6398         instead of 256.  Use consistent test for designated initializers.
6399         (cpp_init): Initialize trigraph_map.
6400         (initialize_standard_includes, parse_option):  Use memcmp
6401         instead of strncmp.
6402
6403         * cpplex.c (init_trigraph_map): Remove.
6404         (trigraph_ok, trigraph_replace, lex_line): Refer to
6405         _cpp_trigraph_map.
6406
6407         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
6408         (do_unassert): Remove unused "next" local.
6409
6410         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
6411
6412 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
6413
6414         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
6415         insn.
6416
6417 2000-08-17  Richard Henderson  <rth@cygnus.com>
6418
6419         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
6420         the first insn in a sequence.
6421
6422 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
6423
6424         * alias.c (true_dependence, write_dependence_p): A read
6425         involving a label_ref or the constant pool doesn't create
6426         a dependency.
6427
6428         * rtl.h (unchanging): Improve documentation.
6429
6430 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
6431
6432         * cse.c (insert_regs): Remove unused `regno'.
6433
6434 2000-08-17  Neil Booth  <NeilB@earthling.net>
6435
6436         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
6437         remove_dup_dirs.  If qtail == brack, remove brack not
6438         qtail.
6439         (remove_dup_dir, remove_dup_dirs): New functions.
6440
6441 2000-08-17  Neil Booth  <NeilB@earthling.net>
6442
6443         * cppinit.c (cpp_cleanup): Free include dir chains.
6444         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
6445         (do_unassert): Free the assert with _cpp_free_definition.
6446         * cppmacro.c (_cpp_free_definition): Free memory allocated for
6447         assertions.  Make the node a T_VOID node.
6448
6449 2000-08-17  Neil Booth  <NeilB@earthling.net>
6450
6451         * cppinit.c (path_include, append_include_chain):
6452         Remove 2nd parameter (struct cpp_pending *).
6453         (path_include, initialize_standard_includes, cpp_handle_option):
6454         Update callers appropriately.
6455         (cpp_handle_option): Use pend.
6456
6457 2000-08-17  Neil Booth  <NeilB@earthling.net>
6458
6459         * cppinit.c (sort_options): Remove, put functionality in
6460         cpp_init.
6461         (cpp_init): New.
6462         (initialize_builtins): Free memory.
6463         (cpp_start_read): Move init_IStable to cpp_init.
6464
6465         * cpplib.h (cpp_init): New prototype.
6466         * cppmain.c (main): Call cpp_init.
6467
6468 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
6469
6470         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
6471         (rtx_unstable_p, rtx_varies_p): Process vectors.
6472
6473 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
6474
6475         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
6476         references to GLOBAL symbols.  Use LOCAL where appropriate.
6477
6478 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6479
6480         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
6481         use t-aix41 when host == target.
6482
6483 2000-08-16  Richard Henderson  <rth@cygnus.com>
6484
6485         * reload.c (push_secondary_reload): Revert last change.
6486         If we use a reload_in/out pattern, make the when the same
6487         as the primary reload.
6488         (find_reloads): Likewise.
6489
6490 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
6491
6492         * configure.in (libstdcxx-v3): Fix test.
6493         * configure: Regenerate.
6494
6495 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6496
6497         * calls.c (calls_function_1, expand_call): Only test
6498         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
6499         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6500
6501 2000-08-16  Richard Henderson  <rth@cygnus.com>
6502
6503         * combine.c (simplify_shift_const): Revert previous two
6504         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
6505         before the main loop.
6506
6507 2000-08-15  Richard Henderson  <rth@cygnus.com>
6508
6509         * combine.c (simplify_shift_const): Bound shift count when
6510         combining shifts.
6511
6512 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6513
6514         * calls.c (ECF_SP_DEPRESSED): New macro.
6515         (calls_function_1): Treat calling sp-depressed function as alloca.
6516         (emit_call_1): Don't adjust SP if calling sp-depressed function.
6517         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
6518         If sp-depressed, ensure block saves and restores SP.
6519         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
6520         for INTEGER_TYPE.
6521         * function.c (keep_stack_depressed): New function.
6522         (thread_prologue_and_epilogue_insns): Call it.
6523         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
6524         to print DECL_OFFSET_ALIGN.
6525         Print no-force-blk and transparent-union flags properly.
6526         * stmt.c (expand_goto_internal): Don't restore stack if last block
6527         and function returns with sp depressed.
6528         (fixup_gotos): Likewise.
6529         (save_stack_pointer): New function, from code in expand_decl.
6530         (expand_decl): Call new function.
6531         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
6532         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
6533         (save_stack_pointer): New declaration.
6534
6535         * diagnostic.c (fatal_function): New variable.
6536         (set_fatal_function): New function.
6537         (fatal): Call it.
6538         * diagnostic.h (set_fatal_function): New declaration.
6539
6540 2000-08-15  William Cohen  <wcohen@redhat.com>
6541
6542         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
6543         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
6544         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
6545
6546 2000-08-15  Richard Henderson  <rth@cygnus.com>
6547
6548         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
6549
6550 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6551
6552         * arm.c (arm_function_ok_for_sibcall): New function.
6553         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
6554         * arm.md (call expanders): Don't check here for calls that can't
6555         be sibling calls.
6556
6557 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6558
6559         * arm.md (splits generating cond_exec): Disable.
6560
6561 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6562
6563         * arm/linux-elf.h (text_section): Delete declaration.
6564
6565 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
6566
6567         ARM support for unordered FP operations.
6568         * arm-protos.h (arm_comparison_operator): Declare.
6569         * arm.c (arm_comparison_operator): New function.
6570         (arm_select_cc_mode): Add unordered comparison codes.
6571         (get_arm_condition_code): Likewise.
6572         (arm_final_prescan_insn): Can't handle unordered jumps that can't
6573         be done in one insn.
6574         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
6575         * arm.md (all uses of comparison_operator): Replace with
6576         arm_comparison_operator.
6577         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
6578         expands.
6579         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
6580         patterns.
6581
6582 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6583
6584         * gthr-posix.h: Conditionally include <sched.h>; include
6585         <config.h> from libobjc/.
6586
6587 2000-08-14  Richard Henderson  <rth@cygnus.com>
6588
6589         * config/i386/i386.c (legitimize_pic_address): Use Pmode
6590         for all CONSTs.
6591
6592 2000-08-14  Richard Henderson  <rth@cygnus.com>
6593
6594         * configure.in (ia64-*): Set float_format for i386 long double.
6595
6596         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
6597         as we would for i386 XFmode.
6598         (PUT_REAL): Likewise.
6599         (endian, ereal_atof, real_value_truncate): Likewise.
6600         (ereal_isneg, toe64, etens, make_nan): Likewise.
6601         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
6602
6603         * config/ia64/ia64-protos.h: Update.
6604         * config/ia64/ia64.c (general_tfmode_operand): New.
6605         (destination_tfmode_operand): New.
6606         (tfreg_or_fp01_operand): New.
6607         (ia64_split_timode): New.
6608         (spill_tfmode_operand): New.
6609         (ia64_expand_prologue): Use TFmode not XFmode.
6610         (ia64_expand_epilogue): Likewise.
6611         (ia64_function_arg): Likewise.
6612         (ia64_function_arg_advance): Likewise.
6613         (ia64_return_in_memory): Likewise.
6614         (ia64_function_value): Likewise.
6615         (ia64_print_operand): Likewise.
6616         (ia64_register_move_cost): Set GR<->FR to 5.
6617         (ia64_secondary_reload_class): Get GR for TImode memory op.
6618         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
6619         (ROUND_TYPE_ALIGN): Remove.
6620         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
6621         (INTEL_EXTENDED_IEEE_FORMAT): Define.
6622         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
6623         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
6624         (MODES_TIEABLE_P): Use TFmode, not XFmode.
6625         (CLASS_MAX_NREGS): Likewise.
6626         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
6627         (PREDICATE_CODES): Update.
6628         * config/ia64/ia64.md (movti): New.
6629         (movti_internal): Use a clobber for memory alternatives.
6630         (reload_inti, reload_outti): New.
6631         (movsfcc_astep): Predicate properly.
6632         (movdfcc_astep): Likewise.
6633         (movxf): Remove.
6634         (movtf): New.
6635         (extendsftf2, extenddftf2): New.
6636         (trunctfsf2, trunctfdf2): New.
6637         (floatditf2, fix_trunctfdi2): New.
6638         (floatunsditf2, fixuns_trunctfdi2): New.
6639         (addtf3, subtf3, multf3, abstf2): New.
6640         (negtf2, nabstf2, mintf3, maxtf3): New.
6641         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
6642         (cmptf): New.
6643         (fr_spill): Use TFmode, not XFmode.
6644         (fr_restore): Likewise.
6645         * config/ia64/lib1funcs.asm (__divtf3): New.
6646         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
6647
6648 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6649
6650         * cse.c (fold_rtx): Avoid empty body in an if-statement.
6651
6652         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
6653         `U' integer constant suffix.
6654
6655         * dwarf2out.c (add_subscript_info): Avoid empty body in an
6656         else-statement.
6657
6658         * sparc/sol2.h (__enable_execute_stack): Prototype.
6659
6660 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
6661
6662         * collect2.c: Remove use of AIX import file.
6663
6664         * longlong.h: Test ARCH_PWR not ARCH_POWER.
6665
6666         * rs6000.c (print_operand, case 'E'): Add else.
6667
6668 2000-08-14  Richard Henderson  <rth@cygnus.com>
6669
6670         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
6671         (movdi_symbolic): New.
6672
6673 2000-08-14  Jim Wilson  <wilson@cygnus.com>
6674
6675         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6676         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
6677         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
6678         to GNU as.
6679
6680 2000-08-14  Richard Henderson  <rth@cygnus.com>
6681
6682         * expr.c (emit_group_load): Don't force constants into registers.
6683         Special case source already in the correct mode.
6684
6685 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
6686
6687         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
6688         * fixinc/inclhack.def: Likewise.
6689         * fixinc/mkfixinc.sh: Likewise.
6690         * configure: Regenerate.
6691         * fixinc/fixincl.x: Regenerate.
6692         * install.texi: Document equivalence of linux and linux-gnu.
6693
6694 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
6695
6696         * cse.c (insert_regs): Also in REG case: When finding an invalid
6697         value, and we make a new quantity, make sure that it won't be
6698         mistaken by for a valid one by mention_regs.
6699
6700 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
6701
6702         * h8300.md: Remove obsolete peepholes.
6703
6704 2000-08-13  Kazu Hirata  <kazu@hxi.com>
6705
6706         * invoke.texi (H8/300 Options): Fix typos.
6707         * config/h8300.c: Fix formatting.
6708         * config/h8300.h: Fix comment typos.
6709         (OVERRIDE_OPTIONS): Fix formatting.
6710
6711         * function.c: Fix formatting.
6712
6713         * cse.c: Fix formatting.
6714
6715 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
6716
6717         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
6718         (attempt_auto_inc): Suppress parentheses warning.
6719         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
6720         * loop.c (load_mems): Remove `u' suffix in two places.
6721         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
6722         hex constants.
6723         * config/rs6000/rs6000.h: Likewise.
6724         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
6725         __eabi dummy routine.
6726         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
6727         variable `buf_ptr'.
6728
6729         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
6730         not put stuff in .sdata unnecessarily.
6731         (rs6000_unique_section): New function.
6732         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
6733         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
6734
6735         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
6736         arrays in C99.  Don't try to look at DECL_REGISTER of a
6737         COMPONENT_REF.  Don't complain twice about the same error.
6738
6739         * fixinc/inclhack.def (aix_pthread): New fix.
6740         (aix_sysmachine): New fix.
6741         * fixinc/fixincl.x: Regenerate.
6742
6743         * expr.c (expand_expr): Call convert_modes when turning a large
6744         multiply into a small one.
6745
6746 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
6747
6748         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
6749         the tree structure an exponent rather than an explicit alignment
6750         so it doesn't overflow.
6751         (SET_DECL_OFFSET_ALIGN): New macro.
6752         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
6753         rather than DECL_OFFSET_ALIGN.
6754         (place_field): Likewise.
6755         * expmed.c (store_bit_field): Abort on align==0 to avoid
6756         antisocial machine behaviour.
6757
6758 2000-08-12  Richard Henderson  <rth@cygnus.com>
6759
6760         * sibcall.c (uses_addressof): Accept both addressof and
6761         current_function_internal_arg_pointer inside a mem.
6762         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
6763         if current_function_uses_addressof.
6764         * stmt.c (expand_return): Kill tail recursion and HAVE_return
6765         optimizations.
6766
6767 2000-08-11  Richard Henderson  <rth@cygnus.com>
6768
6769         * config/ia64/ia64.md (addsi3): Remove expander.
6770         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
6771         (*addsi3_shladd): New.
6772
6773 2000-08-11  Richard Henderson  <rth@cygnus.com>
6774
6775         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
6776         (do_restore): Likewise.
6777         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
6778         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
6779         (rtx_needs_barrier): Track actual bit manipulation for
6780         ar.unat moves, gr_spill, and gr_restore.
6781         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
6782         (process_set): Don't handle varargs spills.
6783         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
6784         .mem.offset here instead of in process_set.
6785         (gr_restore): Likewise.
6786
6787 2000-08-11  Richard Henderson  <rth@cygnus.com>
6788
6789         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
6790
6791 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
6792
6793         * gcc.texi (The Configuration File): Document
6794         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
6795         UPDATE_PATH_HOST_CANONICALIZATION.
6796
6797 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6798
6799         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
6800         unprototyped function pointer casts on integer constants.
6801
6802 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
6803
6804         * fixproto: Recognize DOS paths with drive letters as absolute paths.
6805
6806 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
6807
6808         * extend.texi (Volatiles): Fix typos.
6809
6810 2000-08-11  Kazu Hirata  <kazu@hxi.com>
6811
6812         * flow.c: Fix formatting.
6813
6814 2000-08-11  Richard Henderson  <rth@cygnus.com>
6815
6816         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
6817         pattern, always allocate a tertiary scratch register.
6818
6819         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
6820         (reload_inhi): Likewise.
6821
6822 2000-08-11  Richard Henderson  <rth@cygnus.com>
6823
6824         * function.c (put_reg_into_stack): Allow type to be NULL.
6825         (schedule_fixup_var_refs): Likewise.
6826         (gen_mem_addressof): Allow decl to be NULL.
6827         (put_addressof_into_stack): Likewise.
6828
6829         * flow.c (merge_blocks_nomove): Be more careful about
6830         locating the beginning of block A.
6831
6832         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
6833
6834 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6835
6836         * configure.in:
6837         * configure:
6838         * gthr-posix.h:
6839         * config.in: Reverted the check for <sched.h>.
6840
6841 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
6842
6843         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
6844         macros define the name of CTOR and DTOR sections.
6845         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
6846         DTOR_LIST_END): Change to use attributes to specify
6847         sections.
6848         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
6849         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
6850         DTOR_LIST_END): Same as in mips/elf.h.
6851
6852 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
6853
6854         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
6855         disabling just crt0.o.
6856
6857 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
6858
6859         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
6860         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
6861         (EXTRA_SPECS): Add them.
6862         * arm/lib1funcs.asm: Support builds for interworking.
6863         Use macros to eliminate duplicated pieces of code.
6864
6865 2000-08-10  Kazu Hirata  <kazu@hxi.com>
6866
6867         * h8300.c (expand_a_rotate): New.
6868         (emit_a_rotate): Likewise.
6869         (h8300_adjust_insn_length): Add support for the rotate insns.
6870         * h8300.md (rotlqi3): New.
6871         (*rotlqi3_1): Likewise.
6872         (rotlhi3): Likewise.
6873         (*rotlhi3_1): Likewise.
6874         (rotlhi3): Likewise.
6875         (*rotlhi3_1): Likewise.
6876         * h8300-proto.h: Add prototypes for expand_a_rotate and
6877         emit_a_rotate.
6878
6879         * h8300.c: Fix comment typos.
6880         (dosize): Declare the variable amount as unsigned.
6881         (get_shift_alg): Fix a comparison between signed and unsigned.
6882         (emit_a_shift): Likewise.
6883         (h8300_adjust_insn_length): Simplify the code.
6884
6885         * c-decl.c: Fix formatting.
6886
6887 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6888
6889         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
6890         warning about non-traditional numeric constant suffixes.
6891
6892         * cppexp.c (parse_number): Likewise.
6893
6894         * invoke.texi: (-Wtraditional): Document new behavior.
6895
6896 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
6897
6898         * gthr-posix.h: Include auto-host.h. Conditionally include
6899         <sched.h>.
6900         * configure.in: Check for the <sched.h> header file.
6901         * config.in: Added define for HAVE_SCHED_H.
6902
6903 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6904
6905         * c-typeck.c (process_init_element): For -Wtraditional, warn about
6906         initialization of unions.
6907
6908         * invoke.texi (-Wtraditional): Document new behavior.
6909
6910 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
6911
6912         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
6913         instead of extra_c_flags.
6914         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
6915         * configure: Regenerate.
6916         * config.in: Regenerate.
6917
6918         * cpperror.c (cpp_type2name): New function.
6919         * cpplex.c (lex_line): If we issued an error for an invalid
6920         preprocessing directive, discard that logical line.
6921         * cpplib.c (do_line): Call a hook function if the current file
6922         is renamed by #line.
6923         (do_ident): Pass the contents of the string, not the entire
6924         token, to the callback function.
6925         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
6926         (cb.rename_file): New hook function.
6927         (cb.ident): Adjust prototype.
6928         (cpp_type2name): Prototype.
6929         * cppmacro.c (dump_macro_args): Correct precedence lossage.
6930
6931         * cppmain.c (cb_ident): Update for changed interface.
6932         (cb_rename_file): New function.
6933         (main): Set rename callback.
6934
6935 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
6936
6937         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
6938         multi-word registers.
6939
6940 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
6941
6942         * c-common.c (combine_strings, check_format_info): Refer to ISO C
6943         or ISO C89 instead of ANSI C.
6944         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
6945         build_enumerator, do_case): Likewise.
6946         * c-lex.c (parse_float, yylex): Likewise.
6947         * c-parse.in: Likewise.
6948         * c-typeck.c (common_type, build_array_ref, build_binary_op,
6949         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
6950         build_c_cast, convert_for_assignment, set_init_index,
6951         set_init_label, c_expand_start_case): Likewise.
6952         * toplev.c (documented_lang_options, display_help): Likewise.
6953
6954 2000-08-08  Kazu Hirata  <kazu@hxi.com>
6955
6956         * h8300.c: Fix formatting.
6957         * h8300.h: Likewise.
6958         * h8300.md: Likewise.
6959         (movsi_h8300hs): Fix formatting of the resulting assembly code.
6960
6961         * reload1.c: Fix formatting.
6962
6963 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
6964
6965         * alpha/alpha.c (alpha_emit_xfloating_libcall):
6966         Use GEN_CALL_VALUE define.
6967         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
6968         * clipper/clipper.md (untyped_call): Likewise.
6969         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
6970         * fx80/fx80.md (untyped_call): Likewise.
6971         * mips/mips.md (untyped_call): Likewise.
6972         * ns32k/ns32k.md (untyped_call): Likewise.
6973         * pa/pa.md (untyped_call): Likewise.
6974         * romp/romp.md (untyped_call): Likewise.
6975         * sparc/sparc.md (untyped_call): Likewise.
6976
6977 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
6978
6979         * config/i860/i860.c (singlemove_string): Do not generate assembler
6980         pseudo instructions that must be expanded (that is, with signed
6981         constants larger than 16 bits).
6982
6983 2000-08-08  Richard Henderson  <rth@cygnus.com>
6984
6985         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
6986         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
6987         (init_propagate_block_info): Don't kill memory stores at -O0.
6988         (mark_set_1, mark_used_regs): Likewise.
6989
6990 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
6991
6992         * rs6000.c (optimization_options): Decorate 'level' as
6993         ATTRIBUTE_UNUSED.
6994         (mask64_operand): Remove sign-extend thinko.
6995         (rldic_operand): New function.
6996         (load_multiple_operation): regno's are unsigned ints.
6997         (store_multiple_operation): Likewise.
6998         (lmw_operation): Likewise.
6999         (stmw_operation): Likewise.
7000         (includes_lshift_p): shift_mask is unsigned int.
7001         (includes_lshift64_p): New function.
7002         (addrs_ok_for_quad_peep): unsigned int reg1.
7003         (print_operand): Consistently add "else" after
7004         output_operand_lossage().
7005         (print_operand, case 'b'): Fold in case 'W'.
7006         (print_operand, case 'W'): Print rldic MB value.
7007         (output_epilogue): Update Objective-C language string.
7008         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
7009         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
7010         * rs6000.md (ashldi3): Add rldic instruction.
7011         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
7012         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
7013         modifier.
7014
7015 2000-08-08  Richard Henderson  <rth@cygnus.com>
7016
7017         * config/ia64/ia64-protos.h: Remove duplicates.  Update
7018         for massive code rearrangements.
7019         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
7020         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
7021         (ia64_local_regs, ia64_need_regstk): Remove.
7022         (ar_ccv_reg_operand): New.
7023         (ia64_gp_save_reg): New.
7024         (struct ia64_frame_info): Combine most of the size elements;
7025         add new gr save elements.
7026         (find_gr_spill): New.
7027         (next_scratch_gr_reg): New.
7028         (mark_reg_gr_used_mask): New.
7029         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
7030         to GR backing store regs when possible.
7031         (ia64_initial_elimination_offset): New.
7032         (ia64_rap_fp_offset): Remove.
7033         (save_restore_insns): Remove.
7034         (setup_spill_pointers): New.
7035         (finish_spill_pointers): New.
7036         (spill_restore_mem): New.
7037         (do_spill, do_restore): New.
7038         (ia64_expand_prologue): Rewrite to use them.
7039         (ia64_expand_epilogue): Likewise.
7040         (ia64_direct_return): Update for current_frame_info changes.
7041         (ia64_function_prologue): Simplify .prologue emission.  Emit
7042         .spill when needed.
7043         (ia64_setup_incoming_varargs): Don't ever emit rtl.
7044         (ia64_dbx_register_number): New.
7045         (ia64_initialize_trampoline): New.
7046         (ia64_secondary_reload_class): Request GR_REGS for integer
7047         arithmetic destined for FR_REGS.
7048         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
7049         (ia64_mark_machine_status): Mark ia64_gp_save.
7050         (rws_access_regno): Rename from rws_access_reg; don't treat
7051         predicates specially.
7052         (rws_access_reg): New.  Update all callers.
7053         (rtx_needs_barrier): Remove dead unspecs.
7054         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
7055         (ia64_encode_section_info): Silence signed/unsigned warnings.
7056         (spill_offset, sp_offset, spill_offset_emitted): Remove.
7057         (tmp_reg, tmp_saved): Remove.
7058         (process_set): Rewrite to expect complicated bits via
7059         REG_FRAME_RELATED_EXPR.
7060         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
7061         in the use of ar.ccv; never set RTX_UNCHANGING_P.
7062         (ia64_expand_op_and_fetch): Likewise.
7063         (ia64_expand_compare_and_swap): Likewise.
7064         (ia64_expand_builtin): Likewise.
7065         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
7066         (FIRST_PSEUDO_REGISTER): Update.
7067         (AR_M_REGNO_P): Update.
7068         (FIXED_REGS): Don't mark three local registers as used.
7069         (EXTRA_CC_MODES): New.
7070         (SELECT_CC_MODE): New.
7071         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
7072         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
7073         (FRAME_GROWS_DOWNWARD): Unset.
7074         (STARTING_FRAME_OFFSET): Zero.
7075         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
7076         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
7077         (HARD_FRAME_POINTER_REGNUM): New.
7078         (CAN_DEBUG_WITHOUT_FP): Define.
7079         (TRAMPOLINE_TEMPLATE): Remove.
7080         (TRAMPOLINE_SIZE): Lower to 32.
7081         (TRAMPOLINE_ALIGNMENT): Lower to 64.
7082         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
7083         (PREDICATE_CODES): Update.
7084         (struct machine_function): Add ia64_gp_save.
7085         * config/ia64/ia64.md: Purge unused unspecs.
7086         (movsi patterns): Allow moves to/from AR_M_REGS.
7087         (movdi patterns): Allow moves to/from p0.
7088         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
7089         (gr_spill, gr_restore): Indicate ar.unat read/written.
7090         (nonlocal_goto): Don't pass old frame_pointer.
7091         (nonlocal_goto_receiver): Remove.
7092         (exception_receiver): New.
7093         (builtin_setjmp_setup): New.
7094         (builtin_setjmp_receiver): New.
7095         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
7096         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
7097         (__ia64_restore_stack_nonlocal): Likewise.
7098         (__ia64_trampoline): New.
7099         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
7100         function.
7101         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
7102
7103 2000-08-08  Richard Henderson  <rth@cygnus.com>
7104
7105         * frame.h (ia64_frame_state): Add my_psp.
7106         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
7107         (__throw): Pass it in.  Don't clobber r7.
7108         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
7109         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
7110         and nothing to do with sp.
7111         (normalize_reg_loc): Use frame->my_psp.
7112         (frame_translate): Handle frame-pointer-less functions.  Set
7113         spill_base correctly, in absence of being told.
7114         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
7115         (__ia64_backtrace_helper): New sp argument.  Use
7116         builtin_return_address instead of label addresses.
7117         (print_record) [mem_stack_v]: No size member.
7118
7119 2000-08-08  Richard Henderson  <rth@cygnus.com>
7120
7121         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
7122
7123 2000-08-08  Richard Henderson  <rth@cygnus.com>
7124
7125         * tm.texi (LOCAL_REGNO): Document.
7126         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
7127         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
7128         * reload1.c (reload): Likewise when considering nonlocal labels.
7129
7130         * config/ia64/ia64.h (LOCAL_REGNO): New.
7131         * config/sparc/sparc.h (LOCAL_REGNO): New.
7132
7133 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
7134
7135         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
7136
7137 2000-08-07  Nick Clifton  <nickc@redhat.com>
7138
7139         * config/mips/mips.c: Fix compile time warning messages.
7140         * config/mips/mips-protos.h: Add prototype for equality_op.
7141
7142         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
7143
7144 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
7145
7146         * mn10300.md: Use nonimmediate_operand instead of general_operand
7147         on output operands.
7148
7149         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
7150
7151 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
7152
7153         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
7154         * sh.c (expand_block_move): Break long lines.
7155         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
7156         * sh.md (mulsi3): Likewise.
7157         (movdi): Adjust spacing.
7158
7159 2000-08-07  Richard Henderson  <rth@cygnus.com>
7160
7161         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
7162         * expr.c (emit_group_store): Don't set it.
7163
7164 2000-08-07  Kazu Hirata  <kazu@hxi.com>
7165
7166         * invoke.texi (Options for Debugging Your Program or GCC): Remove
7167         duplicate entries for 'w' and 'z'.
7168
7169         * flow.c: Fix a comment typo.
7170
7171 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7172
7173         * c-parse.in: Changed the language string for Objective-C to "GNU
7174         Objective-C".
7175
7176 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7177
7178         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
7179         to improve the Posix thread support for Objective-C.
7180
7181 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
7182
7183         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
7184         CTI_UNSIGNED_PTRDIFF_TYPE.
7185         (signed_size_type_node): Define.
7186         (unsigned_ptrdiff_type_node): Define.
7187         * c-decl.c (init_decl_processing): Create the
7188         signed_size_type_node and unsigned_ptrdiff_type_node types.
7189         * c-common.c (T_SC): Define.
7190         (T_SST): Define.
7191         (T_UPD): Define.
7192         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
7193         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
7194         %s and %p.
7195         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
7196         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
7197         flags for %c, %s and %[.
7198         (check_format_info): Only allow leniency for signedness of targets
7199         of character pointers (when pedantic) for formats flagged with
7200         "c", so for strings but not for %hh formats.  When pedantic, don't
7201         allow character pointers to substitute for void pointers if a
7202         second level of indirection is present.
7203
7204 2000-08-06  Kazu Hirata  <kazu@hxi.com>
7205
7206         * invoke.texi (Options for Debugging Your Program or GCC): Update
7207         the names of dump files.
7208
7209         * h8300.c (dosize): Rearrange code for conciseness.
7210         (split_adds_subs): Likewise.
7211
7212         * loop.c: Fix formatting.
7213
7214         * dwarf2out.c: Fix formatting.
7215
7216         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
7217
7218         * expr.c: Fix formatting.
7219
7220 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7221
7222         * rs6000.c (rs6000_maybe_dead): Prototype.
7223
7224 2000-08-06  Richard Henderson  <rth@cygnus.com>
7225
7226         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
7227         HAVE_nonlocal_goto as well.
7228         * config/i960/i960.md (nonlocal_goto): Don't do it here.
7229         * config/pj/pj.md (nonlocal_goto): Likewise.
7230
7231 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
7232
7233         * loop.c (try_swap_copy_prop): New function.
7234         (load_mems): Rename copies to load_copies and add new regset
7235         store_copies.  Check for sets of shadow registers and mark
7236         in store_copies.   Call try_swap_copy_prop for registers
7237         marked in store_copies.
7238
7239 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
7240
7241         * objc/objc-act.c: New command line option -fconstant-string-class
7242         to allow specifying a user defined constant string class,
7243         different from NXConstantString.
7244
7245         * toplev.c: Moved the Objective-C specific options to
7246         objc/lang-options.h.
7247
7248         * objc/lang-options.h: Moved the Objective-C specific options from
7249         toplev.c. Added -fconstant-string-class.
7250
7251 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
7252
7253         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
7254         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
7255         __CTOR_LIST__ from func_ptr array to just func_ptr, to
7256         avoid extra alignment imposed on arrays.
7257         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
7258         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
7259
7260         * mips.h: Clean up comments and spacing near MASKs.
7261         (TARGET_UNIX_ASM): Delete.
7262         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
7263         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
7264         values contiguous.
7265
7266 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
7267
7268         * c-common.c (print_char_table): Add entries for the X/Open '
7269         format flag (print decimals with locale's thousands grouping
7270         character).  Make %C expect wint_t.
7271         (check_format_info): If pedantic, warn when the %n$ operand
7272         number form is used.  Allow for the ' flag; warn about it if
7273         pedantic.
7274
7275 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
7276
7277         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
7278         type is a float mode, cfun->decl's return type is not, and
7279         TARGET_FLOAT_RETURNS_IN_80387.
7280
7281 2000-08-04  Andreas Schwab  <schwab@suse.de>
7282
7283         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
7284         token list, which are always `#' and `pragma'.
7285
7286 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
7287
7288         * tree.c (tree_expr_nonnegative_p): Move to...
7289         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
7290         (rtl_expr_nonnegative_p): New.
7291         * tree.h: Add prototype for rtl_expr_nonnegative_p.
7292
7293         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
7294         CONST_DOUBLE_CHAIN: Move to...
7295         * rtl.h: ...here.  Use XCINT/XCEXP.
7296
7297         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
7298         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
7299         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
7300         to VOL_FILES.
7301
7302         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
7303
7304 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7305
7306         * config/c4x/c4x.md (return_indirect_internal): New.
7307         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
7308
7309 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7310
7311         * c-common.c (time_char_table): Mark up formats added in C99 and
7312         make other corrections.  %D and %g were added in C99.  %Og is an
7313         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
7314         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
7315         C99 rather than GNU extensions, but %OG and %Oz are extensions.
7316         %h was added in C99.  %C was added in C99.  %OY and %OC are
7317         extensions.  Add the C99 format %F.
7318         (check_format_info): If pedantic and not in C99 mode, warn for C99
7319         formats, %E and %O.
7320
7321 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7322
7323         * function.c (schedule_fixup_var_refs): New function, broken out
7324         of put_reg_into_stack.
7325         (put_reg_into_stack): Use it.
7326         (put_var_into_stack): In CONCAT case, fixup up references for
7327         components only after fixing up references to the whole concat.
7328
7329 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
7330
7331         * alias.c (mark_constant_function): Use INSN_P.
7332         (init_alias_analysis): Likewise.
7333         * combine.c (combine_instructions): Use INSN_P.
7334         (can_combine_p): Likewise.
7335         (try_combine): Likewise.
7336         (distribute_notes): Likewise.
7337         (distribute_links): Likewise.
7338         * cse.c (cse_around_loop): Use INSN_P.
7339         (invalidate_skipped_block): Likewise.
7340         (cse_set_around_loop): Likewise.
7341         (cse_end_of_basic_block): Likewise.
7342         (delete_trivially_dead_insns): Likewise.
7343         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
7344         (unshare_all_rtl_1): Likewise.
7345         (next_cc0_user): Likewise.
7346         (try_split make_insn_raw): Likewise.
7347         (remove_unnecessary_notes): Likewise.
7348         * final.c (shorten_branches): Use INSN_P.
7349         (leaf_renumber_regs): Likewise.
7350         (leaf_renumber_regs_insn): Likewise.
7351         * flow.c (find_label_refs): Use INSN_P.
7352         (verify_wide_reg): Likewise.
7353         (notice_stack_pointer_modification): Likewise.
7354         (count_or_remove_death_notes): Likewise.
7355         (verify_flow_info): Likewise.
7356         (clear_log_links): Likewise.
7357         * function.c (fixup_var_refs_insns): Use INSN_P.
7358         (compute_insns_for_mem): Likewise.
7359         * gcse.c (alloc_gcse_mem): Use INSN_P.
7360         (compute_sets): Likewise.
7361         (compute_hash_table): Likewise.
7362         (classic_gcse): Likewise.
7363         (cprop): Likewise.
7364         (insert_insn_end_bb): Likewise.
7365         (delete_null_pointer_checks_1): Likewise.
7366         * global.c (expand_preferences): Use INSN_P.
7367         (build_insn_chain): Likewise.
7368         * graph.c (node_data): Use INSN_P.
7369         * haifa-sched.c (priority): Use INSN_P.
7370         (rm_line_notes): Likewise.
7371         (rm_other_notes): Likewise.
7372         (find_insn_reg_weight): Likewise.
7373         (init_target_units): Likewise.
7374         (schedule_block): Likewise.
7375         (compute_block_forward_dependences): Likewise.
7376         (debug_dependencies): Likewise.
7377         (set_priorities): Likewise.
7378         * integrate.c (function_cannot_inline_p): Use INSN_P.
7379         (save_parm_insns): Likewise.
7380         (copy_insn_list): Likewise.
7381         * jump.c (mark_all_labels): Use INSN_P.
7382         (never_reached_warning): Likewise.
7383         * lcm.c (optimize_mode_switching): Use INSN_P.
7384         * local-alloc.c (validate_equiv_mem): Use INSN_P.
7385         (memref_used_between_p): Likewise.
7386         (update_equiv_regs): Likewise.
7387         (block_alloc): Likewise.
7388         (no_conflict_p): Likewise.
7389         * loop.c (scan_loop): Use INSN_P.
7390         (find_and_verify_loops): Likewise.
7391         (count_loop_regs_set): Likewise.
7392         (loop_reg_used_before_p): Likewise.
7393         (strength_reduce): Likewise.
7394         (recombine_givs): Likewise.
7395         (check_dbra_loop): Likewise.
7396         (load_mems): Likewise.
7397         (try_copy_prop): Likewise.
7398         * print-rtl.c (print_rtx): Use INSN_P.
7399         * recog.c (find_single_use): Use INSN_P.
7400         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
7401         (next_flags_user): Likewise.
7402         (swap_rtx_condition): Likewise.
7403         * regmove.c (mark_flags_life_zones): Use INSN_P.
7404         (optimize_reg_copy_1): Likewise.
7405         (optimize_reg_copy_2): Likewise.
7406         (optimize_reg_copy_3): Likewise.
7407         (reg_is_remote_constant_p): Likewise.
7408         (fixup_match_2): Likewise.
7409         (regmove_optimize): Likewise.
7410         (fixup_match_1): Likewise.
7411         * regrename.c (build_def_use): Use INSN_P.
7412         (replace_reg_in_block): Likewise.
7413         (consider_use): Likewise.
7414         * reload.c (find_equiv_reg): Use INSN_P.
7415         * reload1.c (reload): Use INSN_P.
7416         (maybe_fix_stack_asms): Likewise.
7417         (calculate_needs_all_insns): Likewise.
7418         (reload_as_needed): Likewise.
7419         (emit_output_reload_insns): Likewise.
7420         (delete_address_reloads_1): Likewise.
7421         (reload_cse_regs_1): Likewise.
7422         (reload_combine): Likewise.
7423         (reload_cse_move2add): Likewise.
7424         * reorg.c (redundant_insn): Use INSN_P.
7425         (dbr_schedule): Likewise.
7426         * resource.c (find_dead_or_set_registers): Use INSN_P.
7427         (mark_target_live_regs): Likewise.
7428         * rtlanal.c (reg_used_between_p): Use INSN_P.
7429         (reg_referenced_between_p): Likewise.
7430         (reg_set_between_p): Likewise.
7431         (reg_set_p): Likewise.
7432         (single_set): Likewise.
7433         (multiple_sets): Likewise.
7434         (find_last_value): Likewise.
7435         (reg_set_last): Likewise.
7436         (find_reg_note): Likewise.
7437         (find_regno_note): Likewise.
7438         * sibcall.c (sequence_uses_addressof): Use INSN_P.
7439         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
7440         * ssa.c (find_evaluations): Use INSN_P.
7441         (rename_block): Likewise.
7442         (rename_equivalent_regs): Likewise.
7443         * unroll.c (loop_find_equiv_value): Use INSN_P.
7444         (set_dominates_use): Likewise.
7445         * varasm.c (mark_constant_pool): Use INSN_P.
7446         (mark_constants): Likewise.
7447         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
7448         (alphaev4_next_group): Likewise.
7449         (alphaev5_next_group): Likewise.
7450         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
7451         (c4x_rptb_rpts_p): Likewise.
7452         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
7453         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
7454         (rs6000_adjust_priority): Likewise.
7455         * config/sh/sh.c (sh_loop_align): Use INSN_P.
7456         (machine_dependent_reorg): Likewise.
7457         (split_branches): Likewise.
7458         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
7459
7460 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
7461
7462         * combine.c (recog_for_combine): Remove the old notes
7463         prior to attempting to recognize the new pattern.
7464         (distribute_notes): Ignore REG_NONNEG notes.
7465
7466 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
7467
7468         * varasm.c (output_constructor): Add .align 0 for packed vars.
7469
7470 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
7471
7472         * configure.in: Use default thread_file even when enable_threads is
7473         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
7474         * configure: Rebuilt.
7475
7476         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
7477
7478 2000-08-04  Donn Terry (donnte@microsoft.com)
7479
7480         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
7481
7482 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
7483
7484         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
7485         Delete code that conditionally modifies 'version'.
7486         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
7487         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
7488         * gcc.c (main): Use it.
7489         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
7490         * prefix.c (update_path): Use it.
7491         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
7492         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
7493         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
7494         code.
7495         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
7496         (SUBTARGET_SWITCHES): Adjust.
7497         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
7498         defining.
7499         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
7500
7501 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7502
7503         * c-common.h (flag_isoc94): Declare.
7504         * c-decl.c (flag_isoc94): Define.
7505         (c_decode_option): Set flag_isoc94 as appropriate.
7506         * c-common.c (T_PD, T_IM, T_UIM): Define.
7507         (format_char_info): Add tlen and jlen.
7508         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
7509         %F.  Allow %lf.
7510         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
7511         %l[.
7512         (time_char_table): Add NULL entries for %t and %j.
7513         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
7514         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
7515         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
7516         precision.  Allow precision argument to be unsigned int.  If
7517         pedantic, warn for %p passed an argument not a pointer to possibly
7518         qualified void or a possibly qualified character type, and for
7519         pointer targets of the wrong sign, except for character pointers.
7520
7521 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7522
7523         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
7524         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
7525         (wint_type_node): Define.
7526         * c-decl.c (WINT_TYPE): Define.
7527         (init_decl_processing): Create the wint_type_node type.
7528         * c-common.c (T_WI): Define.
7529         (print_char_table): Use T_WI for %lc format.
7530
7531 2000-08-04  Bruce Korb  <bkorb@gnu.org>
7532
7533         * fixinc/:  Verified that the MSDOS patch does not break
7534         the UNIX functionality and applied the next three patches
7535         from July:
7536
7537 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
7538
7539         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
7540         output file with the temporary one by appending ".X" to generate
7541         the temporary fuile's name.  If the output file already has an
7542         extension, replace it with ".X".
7543
7544         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
7545         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
7546         reallocate the command buffer while copying the command-line
7547         argument.  Redirect the output directly to the temporary file,
7548         instead of going through another temporary file.
7549         (process): Close the temporary file before unlinking it.
7550         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
7551         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
7552         (run_compiles): Pass p_fixd argument to machine_matches, as it
7553         expects.
7554
7555         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
7556         environment, assume there are no symlinks in the include
7557         directory.  When cleaning up the DONE files, look for them
7558         case-insensitively.  Don't try to remove symlinks if they aren't
7559         there.
7560
7561         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
7562         all callers changed.  Declare pz "const char *", to avoid compiler
7563         warnings.
7564
7565         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
7566         Change prototype of make_raw_shell_str.
7567
7568 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
7569
7570         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
7571         (initialize) [__MSDOS__]: Use tempnam.
7572         (initialize): Don't use SIGPIPE if it is not defined.
7573
7574         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
7575         return stdout.
7576
7577 2000-07-25  Bruce Korb  <bkorb@gnu.org>
7578
7579         * fixinc/fix*.[ch]: substantially reworked to make it possible
7580         to run this program without using fork(2) or pipe(2) (i.e. in
7581         a DOS environment).
7582
7583 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7584
7585         * cppdefault.h (WINT_TYPE): Define.
7586         * cppinit.c (builtin_array): Define __WINT_TYPE__.
7587         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
7588         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
7589
7590 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
7591
7592         * (mips_legitimate_address_p): Don't allow register+offset
7593         if the offset is large and negative, and we are compiling
7594         for 64 bit registers.
7595
7596 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
7597
7598         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
7599         insn_code_number + 1.
7600
7601 2000-08-04  Kazu Hirata  <kazu@hxi.com>
7602
7603         * h8300.c (function_prologue): Rearrange code for conciseness.
7604         (function_epilogue): Likewise.
7605         * h8300.h (OK_FOR_U): Fix formatting.
7606
7607         * cse.c: Fix a comment typo. Fix formatting.
7608
7609 2000-08-03  Richard Henderson  <rth@cygnus.com>
7610
7611         * config/i386/i386.md (return_indirect_internal): New.
7612         * config/i386/i386.c (ix86_expand_epilogue): Use it.
7613
7614 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
7615
7616         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
7617         before the name.
7618         (lex_line): Glue @ onto the beginning of identifiers and
7619         string constants, in Objective-C mode.
7620         (output_token, spell_token): Handle CPP_OSTRING.
7621         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
7622         beginning of a NAME or a STRING, in objc mode.
7623
7624         * cpplib.c (get_define_node): Do not permit identifiers that
7625         begin with @ to be #defined.
7626         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
7627         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
7628
7629         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
7630         * c-tree.h (build_objc_string): Delete prototype.
7631         * objc/objc-tree.def: Delete OBJC_STRING_CST.
7632         * c-lex.c (yylex): Use build_string for all three kinds of strings.
7633
7634         * c-parse.in, objc/objc-act.c: Update commentary.
7635
7636 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
7637
7638         * extend.texi: Fix typo in last change.
7639
7640         * extend.texi: Add commentary on statement-expressions and their
7641         interactions with C++.
7642
7643 2000-08-03  Nick Clifton  <nickc@cygnus.com>
7644
7645         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
7646         * dwarf.h (LANG_JAVA): Change value to 0x000b.
7647
7648 2000-08-03  Anthony Green  <green@cygnus.com>
7649
7650         * dwarf2out.c (gen_compile_unit_die): Add java language support.
7651         (add_bound_info): Check for java language.
7652         (is_java): New function.
7653         * dwarfout.c (output_compile_unit_die): Ditto.
7654         * dwarf.h (dwarf_source_language): Add java source language type.
7655         * dwarf2.h (dwarf_source_language): Ditto.
7656
7657 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7658
7659         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
7660         operands.
7661
7662         * i386.c (ix86_expand_branch): Mode of comparison in
7663         IF_THEN_ELSE is VOIDmode.
7664
7665 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
7666
7667         * gengenrtl.c, rtl.c: Avoid #elif.
7668
7669 2000-08-03  Michael Poole  <poole@troilus.org>
7670
7671         * tm.texi (Register Classes): Clarify order of sub-initializers
7672         in REG_CLASS_CONTENTS.
7673
7674 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
7675
7676         From SAITOH Masanobu:
7677         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
7678
7679 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
7680
7681         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
7682         is not supported by tradcpp and isn't actually needed for cygwin.
7683
7684 2000-08-03  Kazu Hirata  <kazu@hxi.com>
7685
7686         * h8300.c: Fix a comment typo.
7687         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
7688
7689         * jump.c: Fix formatting.
7690
7691         * toplev.c: Fix formatting.
7692
7693 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
7694
7695         * flow.c (find_auto_inc): Verify that we've got a REG before
7696         peeking at its regno.  Fail, don't abort if we can't find
7697         the increment of the desired register.
7698
7699         * pa.md (shadd height reduction patterns/splitters): Remove.
7700
7701 2000-08-02  Jim Wilson  <wilson@cygnus.com>
7702
7703         * config/ia64/ia64-protos.h (flag_ssa): Declare.
7704         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
7705
7706 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
7707
7708         * dce.c: Remove all uses of assert.
7709         * dwarf2out.c: Likewise.
7710         * dwarfout.c: Likewise.
7711         * ssa.c: Likewise.
7712
7713 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7714
7715         * gcc.h (lang_specific_driver): Constify second argument.
7716         * gcc.c (translate_options, process_command, main): Likewise.
7717         Constify variables to match.  Cast second argument to
7718         pexecute.
7719
7720         * cppspec.c, gccspec.c: Adjust type of second argument to
7721         lang_specific_driver, and update code as necessary.
7722
7723 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
7724
7725         * loop.c (scan_loop): Ensure update_end label does not
7726         go away until reg_scan_update is run.
7727
7728 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7729
7730         * c-common.h: Prototype min_precision and c_build_qualified_type here...
7731         * c-tree.h: ... not here.
7732         * errors.h: Prototype fancy_abort.
7733
7734         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
7735         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
7736         * regrename.c (regrename_optimize): Make control flow explicit.
7737         (replace_reg_in_block): Initialize reg_use to 0.
7738
7739         * i386.c (legitimate_address_p): Rename error label to
7740         report_error to avoid namespace clash.
7741
7742 2000-08-02  Kazu Hirata  <kazu@hxi.com>
7743
7744         * fold-const.c: Fix formatting.
7745
7746 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7747
7748         * i386.c (legitimate_address_p): Accept other bases than
7749         pic_offset_table_rtx for GOTOFF constructs.
7750
7751 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7752
7753         * i386.md (shift to lea splitter): Use const_int_operand.
7754
7755 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
7756
7757         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
7758         cppspec.c: Do not use 'legal' or 'illegal' in error messages
7759         and comments.
7760
7761         * cppmain.c (cb_define, cb_undef): Don't generate any output
7762         if not done_initializing.
7763         * cpplex.c (maybe_paste_with_next): When the token after a ##
7764         is an omitted rest argument, only delete the token before it
7765         if that token is a comma.  Do not warn about bogus token
7766         pastes for , ## rest_arg.
7767
7768         * cpp.texi: Update.
7769         * cpp.1: Regenerate.
7770
7771 2000-08-02  Fred Fish  <fnf@be.com>
7772
7773         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
7774         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
7775         and later.
7776
7777         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
7778         Be directories to search path.
7779
7780         Remove support for __declspec(dllimport) and __declspec(dllexport).
7781         This is leftover cruft from the earlier BeOS gcc port when BeOS
7782         used Microsoft's PE object file format.
7783         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
7784         * config/i386/t-beos (winnt.o): Remove Makefile frag.
7785         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
7786         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
7787         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
7788         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
7789         (REDO_SECTION_INFO_P): Remove.
7790         (ASM_EXPORT_DECL): Remove.
7791         (ASM_DECLARE_FUNCTION_NAME): Remove.
7792         (ASM_DECLARE_OBJECT_NAME): Remove.
7793         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
7794         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
7795         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
7796         (STRIP_NAME_ENCODING): Remove.
7797
7798         Remove support for obsolete version of BeOS that is no longer
7799         supported by Be.
7800         * configure.in (i*86-*-beospe*): Remove.
7801         * config/i386/beos-pe.h: Remove.
7802
7803 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
7804             Mark Mitchell <mark@codesourcery.com>
7805
7806         * Makefile.in (OBJS): Added dce.o.
7807         (ssa.o): Updated target to include ssa.h.
7808         (flow.o): Likewise.
7809         (toplev.o): Likewise.
7810         (dce.o): Created target.
7811         * basic-block.h: Added comments.
7812         (INVALID_BLOCK): Added definition.
7813         (connect_infinite_loops_to_exit): Added declaration.
7814         Moved SSA declarations to ssa.h.
7815         * flow.c: Added inclusion of ssa.h.
7816         (struct depth_first_search_dsS, depth_first_search_ds):
7817         Added definitions.
7818         (compute_immediate_postdominators): Added definition.
7819         (connect_infinite_loops_to_exit): Likewise.
7820         (flow_dfs_compute_reverse_init): Likewise.
7821         (flow_dfs_compute_reverse_add_bb): Likewise.
7822         (flow_dfs_compute_reverse_execute): Likewise.
7823         (flow_dfs_compute_reverse_finish): Likewise.
7824         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
7825         (LABEL_P): Added definition.
7826         (JUMP_P): Likewise.
7827         (NOTE_P): Likewise.
7828         (BARRIER_P): Likewise.
7829         (JUMP_TABLE_DATA_P): Likewise.
7830         (INSN_DEAD_CODE_P): Likewise.
7831         * ssa.c: Replaced inclusions with ssa.h inclusion.
7832         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
7833         (rename_registers): Removed unnecessary variables.
7834         * ssa.h: Created by moving declarations from ssa.c and
7835         basic-block.h.
7836         * timevar.def: Defined TV_DEAD_CODE_ELIM.
7837         * toplev.c: Added ssa.h inclusion.
7838         (dump_file_index): Added DFI_dce.
7839         (dump_file): Added "dce" entry.
7840         Defined flag_ssa.
7841         (f_options): Added dce entry.
7842         * invoke.texi: Document -fdce.  Emphasize experimental status of
7843         -fssa.
7844         * dce.c: New file.
7845
7846 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
7847
7848         * cpperror.c (v_message): Split into _cpp_begin_message and
7849         v_message macro.  All callers updated.
7850         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
7851         checks here.
7852
7853         * cppfiles.c (cpp_syshdr_flags): New function.
7854         (read_include_file): Don't call cpp_output_tokens.  Call
7855         enter_file hook.
7856         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
7857         (cpp_reader_init): Don't initialize token_buffer.  Call
7858         _cpp_init_internal_pragmas.
7859         (cpp_cleanup): Don't clear token_buffer.
7860         (cpp_start_read): Don't worry about output from -D processing.
7861         Don't call cpp_output_tokens.
7862         (cpp_finish): Don't dump macros here.  Don't call
7863         cpp_output_tokens.
7864         * cppmacro.c (_cpp_dump_definition): Rename
7865         cpp_dump_definition.  Write directly to a FILE *.
7866         (dump_funlike_macro): Delete.
7867         (dump_macro_args): New.
7868
7869         * cpplex.c (TOKEN_LEN): Convert to inline function.
7870         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
7871         cpp_scan_line, _cpp_dump_list): Delete.
7872         (cpp_printf, cpp_output_list): New.
7873         (output_line_command): Don't worry about entering or leaving files.
7874         (cpp_scan_buffer): Just output each token as we hit it.
7875         (process_directive): Don't call cpp_output_tokens.
7876         (_cpp_glue_header_name): Don't use token_buffer.
7877         (output_token, dump_param_spelling): Write directly to a FILE *.
7878
7879         * cpplib.c (pass_thru_directive, dump_macro_name,
7880         pragma_dispatch, do_pragma_gcc): Delete.
7881         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
7882         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
7883         functions.
7884         (do_error, do_warning, pragma_dependency): Call
7885         _cpp_begin_message, then cpp_output_list.
7886         (cpp_register_pragma, cpp_register_pragma_space,
7887         _cpp_init_internal_pragmas): New.
7888         (do_pragma): Walk the pragmas table here.
7889         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
7890         do_pragma_dependency): Return void.
7891         (do_pragma_implementation): Moved to cppmain.c.
7892
7893         * cpplib.h: Update prototypes.
7894          (struct cpp_reader): Remove printer, token_buffer,
7895         token_buffer_size, and limit.  Add struct cb, and pragmas.
7896         (struct cpp_printer): Remove last_id and written.
7897         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
7898         CPP_ADJUST_WRITTEN): Delete.
7899         * cpphash.h: Update prototypes.
7900         (ufputs): New wrapper.
7901
7902         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
7903         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
7904         (main): Set up callbacks.  Register #pragma implementation.
7905         Dump macros from here.
7906
7907 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
7908
7909         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
7910         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
7911         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
7912         insns if they have a REG_MAYBE_DEAD note attached.
7913         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
7914         (rs6000_emit_load_toc_table): TOC loads may go dead.
7915
7916 2000-08-01  Jim Wilson  <wilson@cygnus.com>
7917
7918         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
7919         type exists before using it.  Use number of words as alignment
7920         otherwise.
7921         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
7922         ia64_va_arg): Propagate ia64_function_args changes here.
7923
7924 2000-08-01  Richard Henderson  <rth@cygnus.com>
7925
7926         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
7927         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
7928
7929 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
7930
7931         From Joern Rennecke:
7932         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
7933         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
7934         unless TARGET_SH3E is set.
7935         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
7936
7937         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
7938         (ashlsi3_std): New pattern.
7939         (ashlsi3 expander): Use it for TARGET_SH3.
7940         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
7941
7942 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7943
7944         * loop.c (canonicalize_condition):  Use destination, not source to
7945         determine SET's mode.
7946
7947 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
7948
7949         * flow.c (clear_log_links): Fix typo.
7950
7951 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
7952
7953         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
7954         on targets which need more than one insn for a compare/cbranch
7955         operation.
7956
7957 2000-07-31  Jim Wilson  <wilson@cygnus.com>
7958
7959         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
7960         when computing offset.
7961
7962 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
7963
7964         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
7965
7966 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
7967
7968         * flow.c (clear_log_links): Nuke global_live_at_start and
7969         global_live_at_end data, since if the log_links stuff is invalid
7970         so is global_live_at_*.
7971
7972 2000-07-31  Richard Henderson  <rth@cygnus.com>
7973
7974         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
7975
7976 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
7977
7978         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
7979         (_cpp_get_token): Don't macro expand a just pasted token if it
7980         was pasted at no_expand_level.
7981
7982 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7983
7984         * cppmacro.c (find_param, count_params, save_expansion):
7985         Permit 'defined' as a macro parameter name.
7986
7987 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7988
7989         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
7990         xcpp to cpp throughout.
7991         (native): Remove unnecessary dependency on cpp.
7992
7993         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
7994         tradcpp to tradcpp0.
7995         (.i spec): Add missing output-file spec to cc1 command line.
7996         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
7997
7998 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
7999
8000         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
8001         (implicit_decl_warning): New function.
8002         (implicitly_declare): Use it.
8003         * c-typeck.c (build_external_ref): Use implicit_decl_warning
8004         to complain about implicit decls of builtins.
8005
8006         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
8007         based on pedantic && flag_isoc99, if not already set.
8008         * c-tree.h: Declare mesg_implicit_function_declaration.
8009         Prototype implicit_decl_warning.
8010
8011 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
8012
8013         * Makefile.in (ssa.o): Updated header files in dependences.
8014         * basic-block.h: Added compute_immediate_postdominators declaration.
8015         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
8016         definition.
8017         * flow.c (compute_immediate_dominators): Updated comment.
8018         (compute_immediate_postdominators): Added definition.
8019         * rtl.h (HARD_REGISTER_P): Added definition.
8020         * ssa.c: Include additional header files.
8021         (assert): Added definition.
8022         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
8023         include select hard registers.
8024         (ssa_rename_to_insert): Likewise.
8025         (ssa_rename_from_initialize): Likewise.
8026         (ssa_rename_from_lookup): Likewise.
8027         (original_register): Likewise.
8028         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
8029         include select hard reigsters.
8030         (ssa_rename_from_traverse): Likewise.
8031         (ssa_rename_from_free): Likewise.
8032         (ssa_rename_from_print): Likewise.
8033         (ssa_rename_from_print_1): Likewise.
8034         (ssa_rename_from_hash_function): Likewise.
8035         (ssa_rename_from_equal): Likewise.
8036         (ssa_rename_from_delete): Likewise.
8037         (simplify_to_immediate_dominators): Removed in favor of
8038         flow.c:compute_immediate_dominators.
8039         (find_evaluations_1): Modified to work with hard registers.
8040         (insert_phi_node): Likewise.
8041         (insert_phi_nodes): Likewise.
8042         (struct rename_set_data): Updated prev_reg comment.
8043         (create_delayed_rename): Modified to work with hard registers.
8044         (RENAME_NO_RTX): Updated comment.
8045         (apply_delayed_renames): Modified to work with hard registers.
8046         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
8047         (rename_block): Updated to use revised ssa_rename_to interface.
8048         (rename_registers): Updated to use revised ssa_rename_to and
8049         ssa_rename_from interface.
8050         (convert_to_ssa): Revised to use compute_immediate_dominators and
8051         deal with hard registers.
8052         (make_regs_equivalent_over_bad_edges): Modified to work with hard
8053         registers.  Added check for illegal unification of hard register.
8054         (make_equivalent_phi_alternatives_equivalent): Modified to work
8055         with hard registers.
8056         (compute_conservative_reg_partition): Likewise.
8057         (coalesce_if_unconflicting): Modified to work with hard registers
8058         and check for conflicting hard registers.
8059         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
8060         registers.
8061         (rename_equivalent_regs_in_insn): Modified to work with hard
8062         registers.
8063         (record_canonical_element_1): Added definition.
8064         (check_hard_regs_in_partition): Added definition.
8065         (convert_from_ssa): Added data structure deallocation and check
8066         for illegal hard register unification.
8067         (conflict_hard_regs_p): Added definition.
8068         * toplev.c (rest_of_compilation): Added comment.
8069
8070 2000-07-31  Anthony Green  <green@redhat.com>
8071
8072         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
8073
8074 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
8075
8076         * builtins.c (expand_builtin_apply): Don't defer pop during
8077         argument setup.
8078
8079 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8080
8081         * calls.c (combine_pending_stack_adjustment_and_call): Only use
8082         preferred_unit_stack_boundary when it is > 1.
8083
8084 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
8085
8086         * c-common.c (init_function_format_info): Add C99 format functions
8087         in C99 mode.
8088
8089         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
8090         void' or 'register void' as being the special case of 'void' alone
8091         in a parameter list.
8092
8093         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
8094         discarding qualifiers into a plain warning.
8095
8096 2000-07-31  Kazu Hirata  <kazu@hxi.com>
8097
8098         * combine.c: Fix formatting.
8099
8100         * h8300.md: Fix formatting.
8101
8102         * local-alloc.c: Fix formatting.
8103
8104         * h8300.c (get_shift_alg): Remove the variable alg.
8105         (emit_a_shift): Rearrange code to improve readability.
8106
8107         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
8108
8109         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
8110         HImode on all architectures and a combination of HImode and SImode
8111         on H8/300H and H8/S.
8112
8113         * h8300.c (split_adds_subs): Rearrange code for conciseness.
8114
8115 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8116
8117         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
8118         in my last checkin.
8119
8120 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8121
8122         * recog.c (extract_insn): Set operand_mode according to
8123         operand if match_operand is VOIDmode.
8124
8125 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8126
8127         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
8128
8129 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
8130
8131         * c-parse.in (extdefs): Call ggc_collect between external
8132         definitions.
8133
8134 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
8135             Richard Henderson  <rth@cygnus.com>
8136
8137         * Makefile.in (OBJS): Add doloop.o.
8138         * doloop.c: New file.
8139
8140         * final.c (insn_current_reference_address): Return 0 before final.
8141         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
8142         * jump.c (any_uncondjump_p): Likewise.
8143         * loop.c (indirect_jump_in_function): Make static.
8144         (strength_reduce): Call doloop_optimize.
8145         (insert_bct, instrument_loop_bct): Remove.
8146         * loop.h (doloop_optimize): Prototype.
8147         * recog.c (split_all_insns): Split all INSN_P.
8148         * toplev.c (flag_branch_on_count_reg): Default on.
8149
8150         * config/c4x/c4x.c (c4x_optimization_options): Don't set
8151         flag_branch_on_count_reg.
8152         * config/i386/i386.c (override_options): Likewise.
8153         * config/rs6000/rs6000.c (optimization_options): Likewise.
8154
8155         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
8156         (doloop_end): New.
8157         (dbra_ge): Remove, as well as all it's splitters.
8158
8159         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
8160         (doloop_end): New.
8161
8162         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
8163         (ia64_register_move_cost): Declare.
8164         * config/ia64/ia64.c (ar_lc_reg_operand): New.
8165         (struct ia64_frame_info): Add ar_size.
8166         (ia64_compute_frame_size): Set it.
8167         (save_restore_insns): Save and restore ar.lc.
8168         (ia64_register_move_cost): New, moved from header file.  Handle
8169         application registers.
8170         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
8171         (emit_insn_group_barriers): Special case doloop_end_internal.
8172         (ia64_epilogue_uses): Mark ar.lc live at end.
8173         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
8174         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
8175         (FIRST_PSEUDO_REGISTER): Make room.
8176         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
8177         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
8178         (REG_ALLOC_ORDER): Update.
8179         (HARD_REGNO_MODE_OK): Update.
8180         (REGISTER_NAMES): Update.
8181         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
8182         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
8183         (REGNO_REG_CLASS): Update.
8184         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
8185         (REGISTER_MOVE_COST): Move out of line.
8186         (PREDICATE_CODES): Update.
8187         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
8188         (addsi3_plus1_alt, adddi3_plus1_alt): New.
8189         (shladd_elim splitter): Allow constants in the predicate.
8190         (doloop_end, doloop_end_internal): New.
8191
8192 2000-07-30  Richard Henderson  <rth@cygnus.com>
8193
8194         * genattrtab.c (struct insn_def): Add lineno member.
8195         (struct insn_ent): Likewise.
8196         (struct attr_desc): Likewise.
8197         (struct delay_desc): Likewise.
8198         (struct function_unit_op): Likewise.
8199         (struct function_unit): Likewise.
8200         (check_attr_value): Use message_with_line.
8201         (check_defs): Likewise.
8202         (expand_units): Likewise.
8203         (check_attr_test): Take a lineno argument.
8204         (gen_attr): Likewise.
8205         (gen_insn): Likewise.
8206         (gen_delay): Likewise.
8207         (gen_unit): Likewise.
8208         (main): Give it to them.
8209         (convert_set_attr_alternative): Take an insn_def argument
8210         instead of num_alt and insn_index.
8211         (convert_set_attr): Likewise.
8212         (write_test_expr): Protect INSN_ADDRESSES load
8213         with INSN_ADDRESSES_SET_P.
8214
8215 2000-07-30  Richard Henderson  <rth@cygnus.com>
8216
8217         * flow.c (init_propagate_block_info): Use pc_set.
8218
8219 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8220
8221         * i386.md (*lea_general_[123]) New insns and splits.
8222         (addsi3 to lea splitter): Handle other modes too.
8223         (shlsi3 to lea splitter): Likewise.
8224         (addhi_1_lea, shlhi_1_lea): New patterns.
8225         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
8226
8227 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8228
8229         * recog.c (general_operand, nonimmediate_operand): Accept
8230         any mode for VOIDmode CONSTANT_P operands.
8231
8232 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8233
8234         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
8235         instead of replace_rtx.
8236         * recog.c (validate_replace_rtx_subexp): New function.
8237         * recog.h (validate_replace_rtx_subexp): Declare.
8238
8239 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8240
8241         * combine.c (simplify_set, make_extraction, make_compound_operation
8242         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
8243         as force_to_mode argument.
8244
8245 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8246
8247         * combine.c (if_then_else_cond): Be sure that mode fits in
8248         HOST_WIDE_INT.
8249
8250 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8251
8252         * combine.c (record_promoted_value):  Allow bitsize of mode
8253         to be equivalent to HOST_BITS_PER_WISE_INT.
8254
8255 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8256
8257         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
8258         Do not call gen_mode_alignment when mode is BLKmode.
8259
8260 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8261
8262         * loop.c (express_from_1): Fix call of simplify_gen_binary.
8263
8264 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
8265
8266         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
8267         VOIDmode implies both operands to be VOIDmode.
8268         (simplify_ternary_operation): Compute properly the mode of comparison.
8269         * combine.c (combine_simplify_rtx): Likewise.
8270
8271 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
8272
8273         * basic-block.h (struct loops): New field rc_order.
8274         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
8275         (flow_loops_free): Free rc_order.
8276         (flow_depth_first_order_compute): New parameter rc_order.
8277         (flow_loops_find): Allocate rc_order and swap usage with
8278         dfs_order.
8279
8280 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
8281            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8282
8283         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
8284         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
8285         (nodb_call, return_from_epilogue): Likewise.
8286         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
8287         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
8288         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
8289         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
8290         (c4x_valid_type_attribute_p): Likewise.
8291         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
8292         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
8293
8294 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8295
8296         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
8297         and loadhi_big_constant if applicable.
8298         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
8299         and add new splitter.s
8300
8301 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8302
8303         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
8304
8305 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8306
8307         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
8308
8309 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8310
8311         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
8312
8313 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
8314
8315         * config/c4x/libgcc.S (divqf3): Improve accuracy.
8316
8317 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
8318
8319         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
8320         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
8321         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
8322         (get_prev_bb_note): Likewise.
8323         (remove_scope_notes): Likewise.
8324         * flow.c (commit_one_edge_insertion): Likewise.
8325         (merge_blocks_nomove): Likewise.
8326         (verify_flow_info): Likewise.
8327         * gcse.c (insert_insn_end_bb): Likewise.
8328         * reg-stack.c (emit_swap_insn): Likewise.
8329         * ssa.c (first_insn_after_basic_block_note): New function.
8330         (insert_phi_node): Use it.
8331         (rename_block): Likewise.
8332         (eliminate_phi): Likewise.
8333         (make_regs_equivalent_over_bad_edges): Likewise.
8334         (make_equivalent_phi_alternatives_equivalent): Likewise.
8335         (for_each_successor_phi): Likewise.
8336         (convert_from_ssa): Modify phi-node deletion algorithm.
8337
8338 2000-07-29  Andreas Jaeger  <aj@suse.de>
8339
8340         * configure.in (mips*-*-linux*): Use mips*el to check for little
8341         endian MIPS, add tmake_file.
8342
8343         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
8344         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
8345         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
8346
8347 2000-07-28  Richard Henderson  <rth@cygnus.com>
8348
8349         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
8350         Sign extend mode size before negating.
8351
8352 2000-07-28  Richard Henderson  <rth@cygnus.com>
8353
8354         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
8355
8356 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
8357
8358         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
8359         (cse_insn): Likewise.
8360         (addr_affects_sp_p): Likewise.
8361         * expr.c (move_by_pieces): Likewise.
8362         (clear_by_pieces): Likewise.
8363         * gcse.c (oprs_unchanged_p): Likewise.
8364         * haifa-sched.c (sched_analyze_2): Likewise.
8365         * recog.c (offsettable_address_p): Likewise.
8366         * regclass.c (record_address_regs): Likewise.
8367         * reload.c (find_reusable_reload): Likewise.
8368         (push_reload): Likewise.
8369         (operands_match_p): Likewise.
8370         (decompose): Likewise.
8371         (find_reloads_address_1): Likewise.
8372         (find_inc_amount): Likewise.
8373         * reload1.c (elimination_effects): Likewise.
8374         * resource.c (mark_set_resources): Likewise.
8375         * flow.c (attempt_auto_inc): New function; mostly broken out
8376         of find_auto_inc.
8377         (find_auto_inc): Split into two functions and enhanced to
8378         generate POST_MODIFY.
8379         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
8380         * rtl.h (count_all_occurrences):  Declare.
8381         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
8382         defined.
8383         * rtlanal.c (count_all_occurrences): New function.
8384         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
8385         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
8386
8387         * config/ia64/ia64-protos.h (destination_operand): Declare.
8388         * config/ia64/ia64.c (destination_operand): New function.
8389         (ia64_print_operand): Handle POST_MODIFY.
8390         (rtx_needs_barrier): Likewise.
8391         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
8392         (HAVE_POST_MODIFY_REG): Define to 1.
8393         (MAX_REGS_PER_ADDRESS): Change to 2.
8394         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
8395         (LEGITIMATE_ADDRESS_REG): New helper macro.
8396         (LEGITIMATE_ADDRESS_DISP): Likewise.
8397         (PREDICATE_CODES): Add entry for destination_operand.
8398         * config/ia64/ia64.md (all mov patterns): Use destination_operand
8399         predicate for operand 0.
8400
8401 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8402
8403         * dwarf2out.c: Indent #error directive.
8404
8405         * gbl-ctors.h: Fix typo in comment.
8406         (__do_global_ctors): Prototype.
8407
8408         * gcse.c (record_one_set, pre_delete): Remove unused variables.
8409
8410         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
8411         (print_operand): Initialize variable `t'.
8412
8413 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
8414
8415         * config/arm/arm.md ("call_value"): removed constraints.
8416         Constraints are ignored in expanders.
8417         (*call_value_reg): split =rf into various constraints.
8418         (*call_value_mem): same
8419         (*call_value_symbol): same
8420         (*sibcall_value_insn): same
8421
8422 2000-07-28  Philipp Thomas  <pthomas@suse.de>
8423
8424         * install.texi (--enable-nls): Change the description of the NLS
8425         related configure options to match the current state.
8426         (--with-included-gettext): Likewise.
8427         (--enable-maintainer-mode): New description added.
8428         * extend.texi (-fstrict-prototype): Add missing '.'.
8429
8430 2000-07-27  Jim Wilson  <wilson@cygnus.com>
8431
8432         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
8433         DECL_INITIAL (decl) == NULL_TREE.
8434
8435 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
8436
8437         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
8438         on insn-attr.h with it.
8439         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
8440         * insn-addr.h: New header.
8441         (insn_addresses_): Renamed from insn_addresses.
8442         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
8443         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
8444         INSN_ADDRESSES_NEW): New macros.
8445         * genattrtab.c (write_test_expr): Use new macros.
8446         * final.c (insn_addresses, init_insn_lengths): Likewise.
8447         (align_fuzz, shorten_branches): Likewise.
8448         (final): Likewise.  Do not reject new insns if their addresses
8449         have been added to INSN_ADDRESSES.
8450         * config/arm/arm.c, config/avr/avr.c: Use new macros.
8451         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
8452         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
8453         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
8454         * config/sh/sh.c: Likewise.
8455         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
8456
8457         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
8458
8459 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
8460
8461         * gcc.c (struct prefix_list): Add member priority.
8462         (enum path_prefix_priority): Declare.
8463         (add_prefix): Replace ``first'' with ``priority''.  Append new
8464         entry but keep list in priority order.
8465         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
8466         PREFIX_PRIORITY_LAST to add_prefix.
8467         (process_command): Move include kludge - foo/stageN - to before
8468         foo/include.
8469
8470 2000-07-27  Jason Merrill  <jason@redhat.com>
8471
8472         * dwarf2out.c (gen_typedef_die): Abort if we get identical
8473         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
8474
8475 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
8476
8477         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
8478         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
8479
8480 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
8481
8482         * c-decl.c (finish_function): Don't treat 'main' specially unless
8483         flag_hosted.  In C99 mode, return 0 from 'main' unless
8484         DEFAULT_MAIN_RETURN is otherwise defined.
8485
8486         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
8487         parameters defaulting to int in an old-style function definition.
8488
8489 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8490
8491         * c-parse.in (string): For -Wtraditional, warn about string
8492         concatenation only once per line.
8493
8494 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
8495
8496         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
8497         for HI-UX/WE2 systems.
8498
8499 2000-07-24  Bruce Korb  <bkorb@gnu.org>
8500
8501         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
8502         defining the __xxx_TYPE__ macros.
8503         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
8504         * fixincl/fixlib.h: don't need to include "tm.h" anymore
8505         * fixincl/inclhack.def(type_map): now obsolete
8506
8507 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
8508
8509         * cpp.texi: Append a trailing full-stop to xrefs where needed.
8510
8511 2000-07-26  Dave Pitts  <dpitts@cozx.com>
8512
8513         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
8514         routine constants.
8515         (mvs_hash_alias): New function.
8516         (mvs_add_alias): Change argument spacing.
8517         (mvs_need_alias): Change aliasing criteria. Added documentation.
8518         (mvs_get_alias): Change to use hashed name. The hashed name prevents
8519         CSECT name collisions.
8520         (mvs_check_alias): Likewise.
8521         (handle_pragma): Change documentation.
8522         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
8523         mode from SImode to DImode.
8524         (iorhi3): Changed LTORG size for insn.
8525
8526 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
8527
8528         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
8529         mem if the address is a mode_dependent_address_p.
8530
8531 2000-07-26  Kazu Hirata  <kazu@hxi.com>
8532
8533         * h8300.c (print_operand): Print ":8" when the 'R' operand is
8534         suitable for 8-bit absolute.
8535         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
8536         (OK_FOR_U): Add a case for the 8-bit constant address on the
8537         H8/300H.
8538
8539 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
8540
8541         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
8542         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
8543         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
8544         lack of implemented alignment.
8545
8546 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
8547
8548         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
8549         cross-compiling between 64-bit and 32-bit machines.
8550
8551 2000-07-27  Richard Henderson  <rth@cygnus.com>
8552
8553         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
8554         (movhicc_astep, movhi_internal_astep): New.
8555         (movsicc_astep, movsi_internal_astep): New.
8556         (movdicc_astep, movdi_internal_astep): New.
8557         (movsfcc_astep, movsf_internal_astep): New.
8558         (movdfcc_astep, movdf_internal_astep): New.
8559         (movxfcc_astep, movxf_internal_astep): New.
8560         (cmovdi_internal_astep, cmovsi_internal_astep): New.
8561         Unify the cmov[ds]i splitters.
8562
8563 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
8564
8565         * real.c (asctoeg): Rename `error' label to unexpected_char_error
8566
8567 2000-07-26  Nick Clifton  <nickc@cygnus.com>
8568
8569         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
8570         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
8571
8572         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
8573         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
8574
8575 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
8576
8577         * c-decl.c (finish_enum): Convert enumerations that fit in an
8578         `int' to `int'.
8579         (build_enumerator): In pedantic mode, cast to `int' those that
8580         don't.
8581
8582 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
8583
8584         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
8585
8586 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
8587
8588         * sh.md (cmpgtdi_t): Must be split.
8589         (cmpgtdi_t+1): New splitter.
8590
8591 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8592
8593         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
8594         warnings for indented directives even if we are skipping.
8595
8596 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
8597
8598         * invoke.texi (strict-prototypes): Remove.
8599         * extend.texi (Deprecated Features): Add strict-prototypes.
8600         (Backwards Compatibility): New node.
8601
8602 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8603
8604         * config/i386/i386.md (andsi_1+1): Allow HImode.
8605         (andsi_1+2): Require q_regs_operand.
8606
8607 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
8608
8609         * config/i386/i386.md (call_pop): Check operands[0],
8610         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8611         (call): Likewise.
8612         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
8613         (call_value): Likewise.
8614
8615 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
8616
8617         * toplev.c (pipe_closed): Delete.
8618         (crash_signal): New.  Generate ICE for a fatal signal.
8619         (float_signal): Call crash_signal outside a float-handler
8620         block, not abort.
8621         (main): Install crash_signal as handler for core-dumping signals.
8622
8623 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
8624
8625         * rs6000.c (print_operand, case 'T'): New case.
8626
8627         * rs6000.md (call_indirect_aix32): Convert to expander of
8628         scheduled instructions.
8629         (call_indirect_aix64): Likewise.
8630         (call_value_indirect_aix{32,64}): Likewise.
8631         (call, call_value): Invoke expanders for AIX.  Fall through to
8632         matchers for SysV.
8633         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
8634         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
8635         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
8636         only "g" constraint.
8637         (call_nonlocal_aix64): Likewise.
8638         (call_value_nonlocal_aix{32,64}): Likewise.
8639         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
8640         operands.
8641         (call_value_nonlocal_sysv): New pattern.
8642         (indirect_jump{si,di}): Use new 'T' modifier.
8643         (tablejump{si,di} matchers): Likewise.
8644         (return_internal_{si,di}): Likewise.
8645         (return_eh_{si,di}): Likewise.
8646
8647 2000-07-24  Richard Henderson  <rth@cygnus.com>
8648
8649         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
8650         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
8651         * config/ia64/ia64.md (movdi_internal): Use it.
8652
8653 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
8654
8655         * cppexp.c: Warn about unary + if -Wtraditional.
8656         * cpplex.c (lex_line): Always set BOL on the first token of a line.
8657
8658 2000-07-24  Michael Meissner  <meissner@redhat.com>
8659
8660         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
8661         unsupported macro.
8662
8663 2000-07-24  Nick Clifton  <nickc@cygnus.com>
8664
8665         * config/arm/arm.c (emit_multi_reg_push): Generate a
8666         REG_FRAME_RELEATED_NOTE that is compatable with the code in
8667         dwarf2out_debug_frame_expr.
8668
8669 2000-07-24  Jason Merrill  <jason@redhat.com>
8670
8671         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
8672         UNALIGNED_INT_ASM_OP.
8673         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
8674         a location expression.
8675         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
8676         assume indirect access if we're saving the CFA address exactly.
8677
8678         * Makefile.in (bootstrap): Move -BstageN/ to the end.
8679
8680 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
8681
8682         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
8683         as well.
8684
8685 2000-07-24  Michael Meissner  <meissner@redhat.com>
8686
8687         * invoke.texi (D30V Options): Add d30v options.
8688
8689 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
8690
8691         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
8692         needed by our gcse pass anymore.
8693         (free_pre_mem): Corresponding changes.
8694         (compute_pre_data): Do not call compute_transpout anymore.
8695
8696         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
8697         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
8698         changes.
8699
8700         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
8701         (compute_pre_data): Do it here instead.
8702
8703         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
8704         'temp_bitmap'.
8705         (pre_delete): Corresponding changes.
8706
8707 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
8708
8709         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
8710         to figure out whether or not a variable has already been emitted.
8711
8712 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
8713
8714         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
8715         instead of gen_call.
8716
8717 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
8718
8719         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
8720
8721 2000-07-23  Kazu Hirata  <kazu@hxi.com>
8722
8723         * h8300.c: Fix formatting.
8724
8725 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
8726
8727         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
8728         for `long' switch expression into a plain warning.
8729
8730         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
8731         (yylex): Don't pedwarn for "inline" in C99 mode.
8732
8733         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
8734         with %p.
8735         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
8736         ggc_alloc): Likewise.
8737         * bb-reorder.c (dump_scope_forest_1): Likewise.
8738
8739 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
8740
8741         * reload.c (find_reloads_toplev): Add new parameter
8742         "address_reloaded".
8743         (find_reloads): Add new parameter to find_reloads_toplev calls.
8744
8745 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
8746
8747         * collect2.c (main): Typo fixed.
8748         * diagnostic.c: Typo fixed.
8749         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
8750         * eh-common.h: Typo fixed.
8751         * emit-rtl.c (start_sequence): Typo fixed.
8752         * flow.c (find_label_refs): Typo fixed.
8753         (calculate_global_regs_live): Typo fixed.
8754         (mark_regno_cond_dead): Typo fixed.
8755         (create_edge_list): Typos fixed.
8756         (verify_edge_list): Typo fixed.
8757         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
8758         * loop.c (strength_reduce): Typo in function name fixed.
8759         * rtl.h: Added comments.  Typo in function name fixed.
8760         * rtlanal.c: Typo in function name fixed.
8761         (insn_dependant_p): Rename to ...
8762         (insn_dependent_p): ... this.
8763         (computed_jumo_p): Typo fixed.
8764
8765 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8766
8767         * system.h (__FUNCTION__): Wrap definition in #ifndef.
8768
8769 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
8770
8771         * rs6000.h (SIZE_TYPE): Define.
8772
8773 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
8774
8775         * ssa.c (rename_insn_1): Don't rename registers that are
8776         CLOBBERed.
8777
8778 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
8779
8780         * diagnostic.c (trim_filename, fancy_abort): Moved here from
8781         rtl.c.
8782         (fatal_function, set_fatal_function): Removed.
8783         (fatal): Don't prepare for or call the fatal_function.
8784         (diagnostic_lock, error_recursion): New.
8785         (diagnostic_for_decl, report_diagnostic): Guard against
8786         re-entering the error reporting routines.
8787         (fancy_abort): Assume function is not NULL.
8788
8789         * errors.c (fancy_abort): New.  Assume function is not NULL.
8790         * tradcpp.c (fancy_abort): Assume function is not NULL.
8791
8792         * system.h: Provide default definition of __FUNCTION__.
8793         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
8794         Always use __FUNCTION__ in definition of abort.
8795         * tree.h: Likewise.
8796         * varray.h: Likewise.
8797         * toplev.h: Likewise.  Don't prototype set_fatal_function.
8798
8799 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
8800
8801         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
8802         in 64-bit mode.
8803         * glimits.h: Don't do #if defined for ARCH_PPC.
8804
8805         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
8806         constants of size no larger than a pointer should go in the TOC.
8807         Add 'MODE' parameter.
8808         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
8809         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
8810         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
8811         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
8812         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
8813         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
8814         (rs6000_legitimize_address): Likewise.
8815         (rs6000_emit_move): Likewise.
8816         (rs6000_select_rtx_section): Likewise.
8817         (output_toc): Deal properly with outputting small constants like
8818         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
8819         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
8820         MODE parameter.  Put small constants in the TOC.
8821
8822         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
8823         easy in SImode.
8824         (rs6000_emit_move): When reload calls us with an illegitimate
8825         address, exit early.  Move the change_address calls to one place
8826         at the end of the routine.  Merge the SImode and DImode expanders.
8827         When called by reload to put an integer into a FP register, force
8828         it to memory.
8829
8830         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
8831         field.
8832         (rs6000_hash_constant): Hash mode too.
8833         (toc_hash_function): Allow for key_mode.
8834         (toc_hash_eq): Structures are different if key_mode differs.
8835         (output_toc): Add 'mode' parameter.  Save key_mode.
8836         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
8837         Pass 'mode' parameter.
8838         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
8839
8840         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
8841         for vtable references.
8842
8843         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
8844         choice, don't put integer values in FP regs.
8845
8846 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
8847
8848         * flow.c (verify_flow_info): Revamp code to verify that the
8849         head and end of each basic block are in the insn chain.
8850
8851 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
8852
8853         * gcse.c (record_one_set): Prepend instead of append onto
8854         reg_set_table, making it O(n) instead O(n^2).
8855         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
8856         Use a queue instead of a stack as worklist.
8857
8858 2000-07-20  Kazu Hirata  <kazu@hxi.com>
8859
8860         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
8861         * h8300.h (OK_FOR_T): New.
8862         (EXTRA_CONSTRAINT): Support OK_FOR_T.
8863         * h8300.md: Use inc/dec.[wl] for increment/decrement
8864         by 1 and 2 in HI and SI modes.
8865
8866 2000-07-20  Jim Wilson  <wilson@cygnus.com>
8867
8868         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
8869         larger than 14 bits.
8870
8871 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
8872
8873         * cppmacro.c (CAN_PASTE_AFTER): New macro.
8874         (count_params): Don't set GNU_REST_ARGS on anything.
8875         (save_expansion): Set PASTE_LEFT only on tokens for which
8876         CAN_PASTE_AFTER is true, or which are named operators.
8877
8878         * cpplex.c (parse_args): Distinguish between a rest argument
8879         given one empty argument, and a rest argument given zero arguments.
8880         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
8881         deletion of previous token based on that.
8882         (get_raw_token): Flatten some control structure.
8883
8884         * cpplib.h (CPP_LAST_EQ): Correct.
8885         (VOID_REST): New token flag.
8886         (GNU_REST_ARGS): Delete.
8887
8888         * tradcpp.c (main): Don't munge -D options.
8889         (make_definition): Bring -D handling in line with cpplib.
8890         (do_define): Strip all leading whitespace from macro definitions.
8891
8892 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
8893
8894         * Makefile.in (tradcpp): Depend on intl.o and version.o.
8895
8896 2000-07-20  Bruce Korb  <bkorb@gnu.org>
8897
8898         * fixincl/check.tpl: strip the platform specific types before testing
8899         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
8900         * fixincl/fixincl.tpl: use platform specific types
8901         * fixincl/fixlib.h: include the platform specific types
8902         * fixincl/inclhack.def(gnu_types): don't supply the types
8903         * fixincl/fixincl.x: regen
8904
8905 2000-07-19  Jim Wilson  <wilson@cygnus.com>
8906
8907         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
8908         GR_REGS.
8909
8910 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
8911
8912         * tradcpp.c (rescan): Do not recognize directives when the #
8913         is indented.
8914
8915 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
8916
8917         Implement C++ named operators.
8918
8919         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
8920         of operators allowed in #if and having an _EQ variant.  Add
8921         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
8922         (cpp_token flags): Add NAMED_OP.
8923         (enum node_type): Add T_OPERATOR.
8924         (struct cpp_hashnode): Add code slot to value union.
8925         * cpphash.h (spec_nodes): Remove n_defined.
8926
8927         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
8928         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
8929         (is_macro_disabled): Tweak error messages.
8930
8931         * cpplib.c (get_define_node): Disallow all named operators as
8932         macro names.  Tweak error messages.
8933         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
8934
8935         * cppinit.c (builtin_array): Add entries for the named operators.
8936         * cppexp.c (lex): Check for CPP_DEFINED token.
8937         (priority table): Add entries for CPP_MIN and CPP_MAX.
8938         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
8939
8940 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
8941
8942         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
8943         larger than the array of cuids.
8944         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
8945         cuids.
8946
8947 2000-07-19  Bruce Korb  <bkorb@gnu.org>
8948
8949         * fixinc/fixincl.c:  Convert to using a table of environment variables
8950         and activate the auto-edit marker on the fixed output files.
8951         * fixinc/fixlib.h:  Define the environment table
8952         * fixinc/fixincl.sh: export the ${INPUT} dir
8953         * fixinc/check.tpl: likewise
8954
8955 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
8956
8957         * gcc.c (.h spec): Fix typo.
8958
8959 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
8960
8961         * Makefile.in: Fix tradcif.c path.
8962
8963 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
8964
8965         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
8966           macros, not five.
8967
8968         * cpphash.h (TOKEN_NAME): New macro.
8969         (_cpp_spell_operator): Deleted.
8970         (token_spellings): Now _cpp_token_spellings.
8971
8972         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
8973         * cpplex.c: Use OP and TK macros when expanding the
8974         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
8975         store the stringification of the enumeration name (CPP_CHAR,
8976         etc.) in the name slot of token_spellings.
8977         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
8978         token_spellings directly.
8979         * cpplib.c: Use TOKEN_SPELL.
8980
8981         * cpplex.c (_cpp_push_token): If the token being pushed back
8982         is the previous token in this context, just subtract one from
8983         context->posn.
8984         * cppmacro.c (save_expansion): Clear aux field when storing a
8985         placemarker.
8986
8987 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
8988
8989         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
8990         buffer, provided it is not NULL.
8991
8992 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
8993
8994         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
8995         case of invalid volatile re-declaration.
8996
8997 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
8998
8999         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
9000         (expand_call): Adjust caller.
9001
9002 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
9003
9004         * diagnostic.h (report_diagnostic): Change prototype.
9005
9006         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
9007         diagnostic_for_decl):  Change prototype.
9008         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
9009         error, warning, error_with_file_and_line,
9010         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
9011         Adjust call to report_diagnostic, diagnostic_for_decl.
9012         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
9013         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
9014
9015         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
9016         varaible argument list.
9017
9018 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
9019
9020         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
9021         moved to cppmacro.c.
9022         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
9023         dump_hash_helper): Delete.
9024         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
9025         cpp_forall_identifiers): New. Implement specialized version of
9026         Vlad's expandable hash table.
9027         (cpp_lookup): Use new functions.
9028         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
9029         implementation.
9030         * cppmacro.c: New file.
9031         * cppinit.c (dump_macros_helper): New.
9032         (cpp_finish): Iterate over the identifier table directly.
9033         * cpplex.c (parse_name): Calculate the hash of the identifier
9034         while we scan it.  Use _cpp_lookup_with_hash when we can.
9035
9036         * cpphash.h: Update prototypes.
9037         (xcnewvec, HASHSTEP): New helper macros.
9038         * cpplib.h: Update prototypes.
9039         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
9040         (cppmacro.o): New rule.
9041         (cpphash.o): Update deps.
9042
9043         * cppmain.c: Do not set pfile->printer if no_output is on.
9044
9045 2000-07-15  Neil Booth  <neilb@earthling.net>
9046
9047         * cpplib.c: Change all directive-handler functions to return
9048         void, not int.
9049         * cpphash.h: Update typedefs.
9050
9051 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
9052
9053         * configure: Regenerate.
9054
9055         * extend.texi (Extended Asm): Mention that a memory clobber
9056         does not count as a side-effect.
9057
9058         * unroll.c (copy_loop_body): Fix one instance of using host
9059         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
9060         cross-compile.
9061
9062         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
9063
9064 2000-07-17  Richard Henderson  <rth@cygnus.com>
9065
9066         * config/ia64/ia64.md (movdi): Split out load address code.
9067         New post-reload splitter for symbolic operands.
9068         (movdi_internal): Abort if we didn't split symbolic operands
9069         when we should have.
9070         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
9071         (ia64_reorg): Split insns when not optimizing.
9072         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
9073
9074 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9075
9076         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
9077         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
9078
9079 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
9080
9081         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
9082
9083 2000-07-17  Jason Merrill  <jason@redhat.com>
9084
9085         * Makefile.in (clean): Remove libgcc directory.
9086
9087         * configure.in (-Wno-long-long check): Use higher-level macros.
9088
9089 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
9090
9091         * simplify-rtx.c (simplify_binary_operation): Recognize
9092            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
9093         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
9094            a CONST_INT, it will always be zero.
9095
9096 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
9097
9098         * loop.c (check_dbra_loop) : Return if more than one condition is
9099         present to control the loop.
9100
9101 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
9102
9103         * mips.c (mips_expand_prologue): Don't calculate the last argument
9104         register unless we need it.  When we are calculating this, make
9105         sure FUNCTION_ARG is giving us a REG.
9106
9107 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
9108
9109         * flow.c (libcall_dead_p): Use single_set to verify the insn
9110         has only one set and get for analysis.
9111         (propagate_one_insn): Don't pass the PATTERN of the insn.
9112
9113 2000-07-17  Mark Klein <mklein@dis.com>
9114
9115          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
9116
9117 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9118
9119         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
9120         * configure.in (TARGET_GETGROUPS_T): Evaluate.
9121         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
9122         of second argument of getgroups.
9123         * configure, config.in: Rebuilt.
9124
9125 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
9126
9127         * simplify-rtx.c (simplify_relational_operation): Two signed
9128         values with equal high words are less/greater than each other if
9129         their low words are less/greater when considered as unsigned.
9130
9131 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
9132
9133         * configure.in (vax-*-openbsd):  Change to new style configuration,
9134         add collect2/float_format information.
9135         * configure:  Rebuilt.
9136         * config/vax/openbsd1.h:  New.
9137         * config/vax/openbsd.h:  New.
9138         * config/vax/t-openbsd:  New.
9139
9140 2000-07-17  Chip Salzenberg  <chip@valinux.com>
9141
9142         * c-common.c (shorten_compare): Quiet warnings about unsigned
9143         comparisons with zero when they occur in a system header.
9144
9145 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
9146
9147         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
9148         update to describe current practice.
9149
9150         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
9151
9152         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
9153         references to C9X.  Change references to -fstd and -flang-isoc9x
9154         to refer to -std.
9155
9156         * c-common.c (scan_char_table): Allow "z" length modifiers on
9157         diouxXn formats.
9158         (check_format_info): Use TYPE_DOMAIN on the type matched against
9159         for "z" formats, to retrieve the language size_t rather than the
9160         internal one.
9161
9162         * c-common.c (check_format_info): Do not make a pedantic objection
9163         to the 'L' length modifier if used with a floating point type
9164         character.
9165
9166         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
9167         constants in C99 mode.
9168
9169 2000-07-17  Kazu Hirata  <kazu@hxi.com>
9170
9171         * h8300.md: Fix the format of mac.
9172         (movsi_h8300hs): Output a tab after stmac instead of a space.
9173
9174         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
9175         profitable adds/subs sequences.
9176
9177         * fold-const.c: Fix comment typos.
9178
9179 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
9180
9181         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
9182
9183 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9184
9185         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
9186
9187 2000-07-16  Neil Booth  <NeilB@earthling.net>
9188
9189         * cpplex.c: Update comments.
9190         * README.Portability: Small update.
9191
9192 2000-07-16  Neil Booth  <NeilB@earthling.net>
9193
9194         * README.Portability:  Small update.
9195
9196 2000-07-15  Richard Henderson  <rth@cygnus.com>
9197
9198         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
9199         * config/ia64/ia64.c (ia64_move_ok): New function.
9200         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
9201         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
9202
9203 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
9204
9205         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
9206         immediately following a paste operator.
9207         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
9208         (cpp_reader_init): Call it, if HOST_EBCDIC.
9209         (cpp_handle_options): Do not sort option list here.
9210         (handle_option): Rename to cpp_handle_option and export.
9211         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
9212         _cpp_get_token directly.
9213         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
9214         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
9215         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
9216         cpp_scan_line.
9217
9218 2000-07-15  Richard Henderson  <rth@cygnus.com>
9219
9220         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
9221         cast around an expression.  Tidy other unsigned tests.
9222
9223 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
9224
9225         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
9226         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
9227         (v_message_with_decl): Rename to ...
9228         (format_with_decl): ... this. Tweak
9229         (diagnostic_for_decl): New function.
9230         (fatal_io_error): Use verbatim in lieu of notice.
9231         (announce_function): Use verbatim.
9232         (default_print_error_function): Likewise.
9233         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
9234         infratructure.
9235
9236 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9237
9238         * mips.c (function_arg_pass_by_reference): Don't do automatic
9239         aggregate initialization.
9240         (machine_dependent_reorg): Initialize variable `mode'.
9241
9242         * mips.md (absdi2): Change variable `regno1' to unsigned int.
9243         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
9244         conflicts with sys/param.h macro of the same name.
9245         (reload_outdi): Likewise.
9246
9247 2000-07-15  Michael Meissner  <meissner@redhat.com>
9248
9249         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
9250         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
9251         create a new node instead.
9252
9253 2000-07-15  Neil Booth  <NeilB@earthling.net>
9254
9255         * README.Portability: Correct example about calling a function
9256         through a pointer to function.  Format wide paragraphs.
9257
9258 2000-07-15  Michael Meissner  <meissner@redhat.com>
9259
9260         * README.Portability: Update integer suffixes and function
9261         prototype sections.
9262
9263 2000-07-15  Neil Booth  <NeilB@earthling.net>
9264
9265         * README.Portability: Small update.
9266
9267 2000-07-15  Neil Booth  <NeilB@earthling.net>
9268
9269         * README.Portability: New file.
9270
9271 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
9272
9273         * INSTALL: Give special instructions for building GCC on Irix 6.
9274         * config/mips/x-iris6 (CC): Don't set it.
9275         (OLDCC): Likewise.
9276
9277 2000-07-14  Jason Merrill  <jason@redhat.com>
9278
9279         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
9280         register in the stack and later in another register, use the new
9281         register.
9282
9283 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
9284
9285         * config/mips/mips.md: (absdi2): Handle sign_extend for
9286         second operand.
9287
9288 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
9289
9290         * cpplib.c (do_pragma_dependency): Tidy warning messages.
9291
9292 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
9293
9294         * .cvsignore: Correct typo.
9295
9296 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
9297
9298         * .cvsignore: Add generated YACC files.
9299         * objc/.cvsignore: New file.
9300
9301 2000-07-14  Neil Booth  <NeilB@earthling.net>
9302
9303         * cpplex.c (adjust_column): New funcion.
9304         (skip_whitespace): Use it.
9305         (skip_block_comment): Use it, and warn about /*/* with
9306         -Wcomments.
9307
9308 2000-07-14  Neil Booth  <NeilB@earthling.net>
9309
9310         * cpphash.c (struct macro_info): Add new members.
9311         (_cpp_free_definition): Delete the macro directly.
9312         (count_params): Return void, with first token of
9313         expansion in struct macro_info on success.
9314         (parse_define): Return int.  Hoist syntax checking from
9315         save_macro_expansion.  Leave call to save_expansion to
9316         _cpp_create_definition.
9317         (alloc_macro): Needs just 2 arguments.
9318         (free_macro): Delete.
9319         (save_expansion): Don't perform syntax check.
9320         (_cpp_create_definition): Call save_expansion.
9321
9322 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9323
9324         * genrecog.c (write_header): Split long string.
9325
9326         * cpphash.c (macro_info): Don't use the `signed' keyword.
9327
9328         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
9329
9330 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
9331
9332         * calls.c (stored_args_map): New variable.
9333         (check_sibcall_argument_overlap_1): New.
9334         (check_sibcall_argument_overlap): New.
9335         (expand_call): Initialize stored_args_map.
9336         Call check_sibcall_argument_overlap.
9337
9338 2000-07-13  Bruce Korb  <bkorb@gnu.org>
9339
9340         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
9341         (emit_gnu_type): utility procedure for gnu_type_fix
9342         (gnu_type_fix): implement various pre-processor guards around
9343         standard types so these types can be defined over and over
9344         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
9345         types alluded to above will have GNU-compliant base types
9346         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
9347         * fixinc/inclhack.def: add test_text entries and utilize the new
9348         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
9349         * fixinc/fixincl.x: regenerate
9350
9351 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
9352
9353         * diagnostic.c (vline_wrapper_message_with_location,
9354         v_message_with_file_and_line, v_error_with_file_and_file,
9355         v_error_for_asm, v_warning_for_asm, vfatal,
9356         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
9357         vsorry, verror, vwarning, vpedwarn): Remove.
9358         (diagnostic_for_asm): New function.
9359         (pedwarn, error, warning, pedwarn_with_file_and_line,
9360         error_with_file_and_line, warning_with_file_and_line, sorry,
9361         error_for_asm, warning_for_asm, fatal): Reimplement.
9362         (finish_diagnostic): Clear diagnostic info as well.
9363
9364 2000-07-13  Neil Booth  <NeilB@earthling.net>
9365
9366         * c-common.h (flag_digraphs): New.
9367         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
9368         * c-lex.c (yylex): Use flag_digraphs to decide whether to
9369         honour digraphs.
9370
9371 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
9372
9373         * gcc.c (do_spec_1): Add new %B operator.
9374         (set_input): Prepare for %B.
9375
9376         (link_command_spec): Move up with the other tm.h-
9377         overrideable specs.  Factor out the portion conditional on
9378         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
9379         (struct compiler): Just have a single spec string.  All users
9380         updated.
9381         (default_compilers): Remove unnecessary braces.
9382         (static_specs): Update.
9383
9384         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
9385         named specs.
9386         (C and assembly specs): Use the new named specs, as appropriate.
9387
9388         * objc/lang-specs.h: Use the new named specs.
9389         Remove unnecessary braces.
9390
9391 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9392
9393         * gcc.c (execute): If a subprocess gets a fatal signal, report
9394         strsignal() of the signal number, and ask for a bug report.
9395         Do not do this for SIGPIPE if there's already been an error.
9396
9397         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
9398         Delete pipe_closed.
9399
9400         * tradcif.c: Remove.
9401
9402 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9403
9404         * final.c (profile_function): Do not emit profile counters in
9405         the data section, if NO_PROFILE_COUNTERS is defined.
9406         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
9407         FUNCTION_PROFILER.
9408
9409         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
9410         (FUNCTION_PROFILER): Just emit a call to mcount.
9411
9412 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9413
9414         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
9415
9416         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
9417         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
9418         traditional, lang_chill, or lang_fortran.
9419
9420         * cppfiles.c: #undef strcmp to suppress warning about macros
9421         used without arguments.
9422         (_cpp_execute_include): Use f, not fname, in "No include path"
9423         error.
9424         (_cpp_pop_file_buffer): New function.
9425         * cpplib.c: Don't include <sys/mman.h>.
9426         (cpp_push_buffer): Set line_base and lineno in new buffer.
9427         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
9428
9429         * cpplex.c: Move all prototypes and structure declarations to the
9430         top of the file.  Properly parenthesise some macro arguments.
9431         (cpp_scan_line): New function.
9432         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
9433         don't need to walk up the stack counting.
9434
9435 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9436
9437         * c-common.c (combine_strings): Emit a pedantic warning when a
9438         string length is greater than the minimum ANSI C is required
9439         to support.
9440
9441 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
9442
9443         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
9444         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
9445
9446 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9447
9448         * c-decl.c (define_label): Warn about identifier conflicts with
9449         labels in traditional C.
9450
9451         * c-parse.in (unop +): Warn about the unary plus operator for
9452         traditional C.
9453
9454         * c-typeck.c (store_init_value): Warn about automatic aggregate
9455         initialization for traditional C.
9456
9457         * invoke.texi (-Wtraditional): Document new warnings.
9458
9459 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9460
9461         * Makefile.in (c-errors.o): Fix thinko in dependency.
9462
9463 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9464
9465         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
9466         -traditional, -ftraditional, or -traditional-cpp was given.
9467         Do not pass -traditional to the preprocessor.
9468         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
9469         preprocessor does it automatically.
9470         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
9471
9472         * ch/lang-specs.h: Always use tradcpp.  Do not pass
9473         -traditional, -trigraphs, or -pedantic to the preprocessor.
9474         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
9475         _LANGUAGE_FORTRAN.
9476
9477 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
9478
9479         * cppexp.c (LOGICAL): Delete macro.
9480         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
9481         and && directly.
9482
9483         * cpphash.c (HASHSIZE): Increase to 4096.
9484         (struct hashdummy): Add hash field.
9485         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
9486         the string values using memcmp.
9487         (cpp_lookup): Set dummy.hash.
9488
9489 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
9490
9491         * configure.in (m88k-openbsd): Express configuration using new fragment
9492         style.
9493         * configure: Rebuilt.
9494         * m88k/aout-dbx.h: New.
9495         * m88k/openbsd.h: New.
9496         * m88k/xm-openbsd.h: New.
9497
9498 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9499
9500         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
9501
9502 2000-07-12  Richard Henderson  <rth@cygnus.com>
9503
9504         * reload.c (push_secondary_reload): Make sure to add the new
9505         reload at the end, after acquiring secondary memory.
9506
9507 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9508
9509         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
9510
9511         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
9512         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
9513
9514         * c-parse.in (stmt): Delete unused variables.
9515
9516         * convert.c (convert_to_vector): Likewise.
9517
9518         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
9519
9520         * tree.c (finish_vector_type): Prototype.
9521
9522 2000-07-12  Bruce Korb  <bkorb@gnu.org>
9523
9524         * fixinc/fixfixes.c: use xmalloc
9525         * fixinc/fixincl.c(initialize): set program name for xmalloc
9526         * fixinc/fixlib.c(must_malloc): obsolete
9527         (is_cxx_header): no longer used - disabled
9528         (skip_quote): inserted and disabled for future use
9529         * fixinc/fixlib.h: reflects above
9530         * fixinc/fixtests.c: removed dinkleberries
9531
9532 2000-07-12  Neil Booth  <NeilB@earthling.net>
9533
9534         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
9535         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
9536
9537         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
9538         struct toklist_dummy): New.
9539         (cpp_free_definition): Free macros with free_macro.
9540         (count_params): Don't save paramter spellings.  Save macro
9541         information in a struct macro_info.
9542         (parse_define): Don't allocate a token list.
9543         (save_expansion): Allocate the macro's token list, and
9544         save parameter spellings if necessary.  Use TOKEN_SPELL.
9545         (cpp_create_definition): Make list const.
9546
9547 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9548
9549         * c-typeck.c (pedwarn_c99): Move to
9550         * c-errors.c: ... Here.
9551         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
9552         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
9553         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
9554         (c-errors.o): List dependency.
9555
9556 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
9557
9558         * c-parse.c: Remove.
9559         * c-parse.h: Likewise.
9560         * c-parse.y: Likewise.
9561         * objc/objc-parse.c: Likewise.
9562         * objc/objc-pasre.y: Likewise.
9563
9564 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
9565
9566         * gcc.texi: Fix minor typos
9567         * extend.texi: Fix minor typos
9568
9569 2000-07-11  Marc Espie <espie@openbsd.org>
9570
9571         * collect2.c (main): Recognize .lo as object files.
9572
9573 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
9574
9575         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
9576         true.
9577
9578         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
9579         with MAP_ANONYMOUS and MAP_ANON.
9580         * configure, config.in: Rebuilt.
9581
9582 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
9583
9584         * diagnostic.c (save_output_state): Remove.
9585         (restore_output_state): Likewise.
9586         (clear_text_info): New function.
9587         (clear_diagnostic_info): Likewise.
9588         (output_text_length, is_starting_newline, output_prefix,
9589         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
9590         prefixing_policy, output_buffer_ptr_to_format_args): New macros
9591         (set_real_maximum_length, output_set_maximum_length,
9592         output_set_prefix, output_get_prefix, output_set_maximum_length,
9593         output_destroy_prefix, init_output_buffer,
9594         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
9595         output_add_newline, output_add_character, output_add_space,
9596         output_append_r, output_append, wrap_text, output_format,
9597         output_do_printf, output_printf, output_do_verbatim,
9598         output_verbatim, verbatim): Use them.
9599         (output_clear): Split into cleat_text_info and
9600         clear_diagnostic_info.
9601         (struct output_state): Move to...
9602
9603         * diagnostic.h: ...Here
9604         (struct output_buffer): Adjust.
9605
9606 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
9607
9608         * cpplex.c (parse_name): No longer inline (premature optimization).
9609         (do_pop_context): Fold into pop_context.
9610         (pop_context): Returns int.
9611         (lex_next): Hoist test for end of directive into pop_context.
9612         (push_macro_context): Returns int; takes just reader and token.
9613         Hoist test for excessive nesting to caller.
9614         (push_arg_context): Returns void; takes just reader and token.
9615         Do not call stringify_arg or get_raw_token.
9616         (get_raw_token): Convert tail recursion through push_arg_context
9617         to a loop at this level.  Call stringify_arg here if appropriate.
9618         (maybe_paste_with_next): Convert tail recursion to a while loop.
9619         Hoist test of paste_level to caller.
9620
9621         (stringify_arg): Push arg context at beginning.
9622         (cpp_get_token): Split out core into _cpp_get_token.  Call
9623         process_directive here.  Throw away CPP_PLACEMARKER tokens.
9624         (_cpp_get_token): Convert tail recursion through
9625         push_macro_context to a loop at this level.
9626         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
9627         _cpp_get_raw_token): Use _cpp_get_token.
9628         (_cpp_skip_rest_of_line): Drop the context stack directly; do
9629         not call pop_context.
9630         (_cpp_run_directive): Call lex_next directly.
9631
9632         * cpphash.h: Prototype _cpp_get_token.
9633         * cppexp.c (lex): Use it.
9634         * cpphash.c (parse_define): Use it.
9635         * cpplib.c (get_define_node, do_undef, parse_include,
9636         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
9637         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
9638         parse_ifdef, validate_else): Use it.
9639         (cpp_push_buffer): Tweak error message; abort if anyone tries
9640         to push a buffer while macro expansions are stacked.
9641
9642 2000-07-11  Donn Terry  <donnte@microsoft.com>
9643
9644         * cpplex.c (free_macro_args, save_token): Cast arg of free
9645         and/or xrealloc to PTR.
9646         (_cpp_init_input_buffer): Clear all fields of the base context.
9647
9648 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
9649
9650         * gensupport.c (process_rtx): Make rtl checking stop
9651         complaining about the define_insn while it is being
9652         converted from a define_insn_and_split.
9653
9654 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
9655
9656         * config/mips/mips.c (simple_memory_operand): Access the
9657         INTVAL of the address, not it's containing MEM.
9658
9659 2000-07-11  Bruce Korb  <bkorb@gnu.org>
9660
9661         * fixinc/fixtests.c(double_slash): obsolete
9662         (else_endif_label): likewise
9663         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
9664         (libc1_ifdefd_memx): correct initial comment
9665         and omit the #if/#endif pair from the memxxx declarations
9666         * fixinc/fixincl.x: regen
9667
9668 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9669
9670         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
9671
9672 2000-07-11  Neil Booth  <NeilB@earthling.net>
9673
9674         * cpp.texi: Update.
9675
9676 2000-07-11  Neil Booth  <NeilB@earthling.net>
9677
9678         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
9679         (handle_option): Set digraphs according to standard.
9680         Merge OPT_lang_c89 handler with OPT_std_c89.
9681
9682         * cpplex.c: (lex_line, can_paste): Honour digraphs in
9683         accordance with the digraphs flag.
9684
9685         * cpplib.h: (struct cpp_options): New option digraphs.
9686
9687 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
9688             Bruce Korb  <bkorb@gnu.org>
9689
9690         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
9691         * fixinc/fixincl.x: Regenerate.
9692         * fixinc/tests/base/testing.h: Add testcase.
9693
9694 2000-07-10  Richard Henderson  <rth@cygnus.com>
9695
9696         * config/ia64/ia64.c (got_symbolic_operand): New.
9697         (symbolic_operand, move_operand): Revert 0701 change.
9698         * config/ia64/ia64.h (PREDICATE_CODES): Update.
9699         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
9700         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
9701         split the offset into a 14-bit low part instead of a 13-bit low part.
9702         (load_fptr): Mark the mem as unchanging.
9703         (load_symptr): Use got_symbolic_operand.
9704
9705 2000-07-10  Nick Clifton  <nickc@cygnus.com>
9706
9707         * libgcc2.c (next_stack_level): Cast result of computation to
9708         (void **) so that the assignment does not generate a warning.
9709
9710 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
9711
9712         * flags.h : Add new variable flag_single_precision_constant.
9713         * toplev.c (display_help) : Add -fsingle-precision-constant option.
9714         (flag_single_precision_constant): New.
9715         * c-lex.c (yylex): Convert floating point constant to single
9716         precision constant.
9717         * invoke.texi : Add documentation for this new option.
9718
9719 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
9720
9721         * diagnostic.c (output_octal): Second parameter is unsigned.
9722         (output_long_octal): Likewise.
9723         (output_hexadecimal): Likewise.
9724         (output_long_hexadecimal): Likewise.
9725         (output_format): Adjust arguments extraction. Tweak.
9726         (output_verbatim, verbatim): End variable argument list.
9727         (report_diagnostic): Improve documentation.
9728
9729 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
9730
9731         * c-common.h (build_stmt): Declare.
9732         (build_continue_stmt): Likewise.
9733         (build_break_stmt): Likewise.
9734         (build_return_stmt): Likewise.
9735
9736         * c-decl.c (do_case): Rewrite to do what previously done in
9737         c-parse.in.
9738
9739         * c-semantics.c (build_stmt): Define.
9740         (build_return_stmt): Likewise.
9741         (build_break_stmt): Likewise.
9742         (build_continue_stmt): Likewise.
9743         (build_case_label): Likewise.
9744
9745         * c-parse.in (BREAK): Change to build tree, then generate RTL.
9746         (CONTINUE): Likewise.
9747         (RETURN): Likewise.
9748         (CASE): Likewise.
9749         (DEFAULT): Likewise.
9750
9751         * c-parse.y: Regenerate.
9752         * c-pasre.c: Likewise.
9753
9754 2000-07-09  Jason Merrill  <jason@redhat.com>
9755
9756         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
9757
9758         * tree.h (STRIP_NOPS): Check for error_mark_node.
9759         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
9760         (dwarf2out_*): Remove duplicate declarations.
9761
9762         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
9763         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
9764
9765 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
9766
9767         * diagnostic.c (wrap_text): New function.
9768         (maybe_wrap_text): Likewise.
9769         (output_add_string): Use it.
9770         (output_format): Likewise.
9771         (count_error): Use verbatim instead of notice.
9772         (report_error_function): Likewise. Don't use plain fprintf.
9773         (finish_diagnostic): New function.
9774         (output_do_verbatim): Tweak.  Commonalize functionalities in
9775         output_verbatim and verbatim.
9776         (output_verbatim): Adjust.
9777         (verbatim): Likewise.
9778         (report_diagnostic): Define.
9779
9780         * diagnostic.h (report_diagnostic): Prototype.
9781
9782 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
9783
9784         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
9785
9786 2000-07-09  Neil Booth  <NeilB@earthling.net>
9787
9788         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
9789         IShspace, ISspace: Update.
9790
9791         * cppinit.c: ISTABLE: Update.
9792         V: New.
9793
9794         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
9795         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
9796         (skip_block_comment, skip_line_comment, parse_string,
9797         lex_line): Use is_vspace rather than IS_NEWLINE.
9798         (skip_whitespace, lex_line): Clean up to use is_nvspace.
9799         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
9800         gets a BOL flag.
9801         (lex_next): Unconditionally stop if within a directive.
9802         Treat directives within macro invocations as directives
9803         (after parse_args emits error), not as the argument.
9804
9805 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
9806
9807         * diagnostic.c (diagnostic_args): New macro.
9808         (diagnostic_msg): Likewise.
9809         (output_formatted_integer): Likewise.
9810         (output_state): New data type.
9811         (digit_buffer): Make global.
9812         (output_add_integer): Rename to output_decimal. Squeeze
9813         digit_buffer.
9814         (output_long_decimal, output_unsigned_decimal,
9815         output_long_unsigned_decimal, output_octal, output_long_octal,
9816         output_hexadecimal, output_long_hexadecimal): New functions.
9817         (output_append_r): New function.
9818         (output_append): Tweak.
9819         (output_flush_on): Rename to output_to_stream.
9820         (output_format): Change prototype.  Improve documentation. Handle
9821         more format specifiers.
9822         (build_location_prefix): Rename to context_as_prefix.
9823         (output_notice): Rename to output_do_printf.
9824         (output_printf): Tweak.
9825         (line_wrapper_printf): Likewise.
9826         (vline_wrapper_message_with_location): Adjust call to renamed
9827         functions.
9828         (v_message_with_decl): Likewise.
9829         (default_print_error_function): Likewise.
9830         (save_output_state): New function.
9831         (restore_output_state): Likewise.
9832         (output_do_verbatim): Likewise.
9833         (output_verbatim): Define.
9834         (verbatim): Likewise.
9835
9836         * diagnostic.h (printer_fn): Change return type from void to int.
9837         Improve documentation.
9838         (output_add_integer): Rename to output_decimal.
9839         (output_flush_on, output_format): Don't export.
9840         (output_verbatim, verbatim): Declare.
9841
9842 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
9843
9844         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
9845         Check whether c divides op1 exactly if operation is not
9846         multiplication.
9847
9848 2000-07-08  Richard Henderson  <rth@cygnus.com>
9849
9850         * final.c (final): Do not abort when reg-stack introduces
9851         a new insn.
9852
9853 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
9854
9855         * cpplib.h (struct cpp_name): Now struct cpp_string.
9856         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
9857         CPP_HEADER_NAME): Change to type S.
9858         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
9859         field, a cpp_hashnode *.  All references to val.name updated
9860         to use val.str or val.node as appropriate.
9861         (struct cpp_reader): Add spec_nodes field.
9862         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
9863
9864         * cpphash.h (struct spec_nodes): New.
9865         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
9866         val.str.  All references to 'spelling > SPELL_NONE' updated to
9867         match.
9868
9869         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
9870         pfile->buffer->inc are not NULL before dereferencing them.
9871
9872         * cpplex.c (parse_name): Take a pointer to the current token,
9873         plus current position and limit as args; return the new
9874         position; don't copy the text of a name into the string
9875         buffer, instead call cpp_lookup and store the node pointer.
9876         If extending a token, copy out the text of the old into a
9877         scratch buffer, append the new, look that up and store the new
9878         node pointer.  Inline.
9879         (maybe_paste_with_next): If the result of paste is a NAME,
9880         then look up the pasted text and store its node pointer.
9881         (lex_line): Adjust for new parse_name interface.
9882         Check for L"str", L'str' using spec_nodes->n_L.
9883         (spell_token): SPELL_IDENT tokens have their spelling in
9884         val.node->name.  Handle SPELL_STRING tokens that don't have
9885         string delimiters.
9886         (_cpp_expand_name_space,
9887         (can_paste): Check for L ## "str" using spec_nodes->n_L.
9888         (cpp_get_token, special_symbol): No need to call cpp_lookup.
9889         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
9890         return 1=equal 0=not, not a tristate.
9891
9892         * cpphash.c (var_args_str): Delete.
9893         (find_param): Compare node fields directly.
9894         (is__va_args__): Use CPP_PEDANTIC.  Just compare
9895         token->val.node with spec_nodes->n__VA_ARGS__.
9896         (dump_funlike_macro): Don't use var_args_str.
9897
9898         * cpplib.c (_cpp_check_directive): Just walk through
9899         spec_nodes->dirs comparing pointers.
9900         (get_define_node, do_pragma_poison, detect_if_not_defined,
9901         parse_ifdef): The identifier has already been looked up.
9902         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
9903         node.
9904         (do_if): Only call detect_if_not_defined at beginning of file.
9905         (_cpp_parse_assertion): Only copy string pointers for
9906         SPELL_STRING tokens.
9907         (pragma_dispatch): Take a node pointer and examine its name
9908         field.
9909         (_cpp_init_stacks): Also initialize the spec_nodes structure.
9910
9911         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
9912         _cpp_init_macros.
9913         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
9914         reverse order from the corresponding _cpp_init_* routines.
9915
9916         * cppexp.c (parse_number, parse_charconst, parse_defined,
9917         lex): Check val.node->type instead of calling cpp_defined.
9918         Use spec_nodes entries where appropriate.
9919
9920         * fix-header.c, scan-decls.c: Update for interface changes.
9921
9922 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
9923
9924         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
9925         emitting aux_truncdfsf2.
9926
9927 2000-07-03  Donn Terry  (donnte@microsoft.com)
9928
9929         * cppinit.c (print_help): split overlong line into ISO C89
9930         maximum chunks.
9931
9932 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
9933
9934         * cppexp.c: Update all code for new lexer interface.
9935         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
9936         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
9937         * cpplex.c (token_names): Trim leading CPP_ from names; make
9938         the strings unsigned.
9939         (_cpp_spell_operator): New.
9940         (is_macro_disabled): Disable all macros if rescanning
9941         preprocessed text.
9942         (_cpp_get_directive_token): Remove.
9943
9944         * cppinit.c: Don't set no_macro_expand.
9945         * cpplib.c (read_line_number, do_line): Check only for EOF,
9946         not VSPACE.
9947         * cpphash.h: Update prototypes.
9948         * cpplib.h (CPP_VSPACE): Remove.
9949         (struct cpp_reader): Remove no_macro_expand.
9950
9951 2000-07-08  Neil Booth  <NeilB@earthling.net>
9952
9953         * cpphash.c (is__va_args__): New function.
9954         (count_params): Fix line reported in error messages.  Use
9955         is__va_args__.  Don't return ')' on error.  Flag GNU style
9956         rest args macro definitions.
9957         (parse_define): Check macro name is not __VA_ARGS__.
9958         (save_expansion): Check identifier in non-varargs-macro is
9959         not __VA_ARGS__.  Don't flag GNU_VARARGS.
9960         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
9961         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
9962          than per-token GNU_VARARGS.
9963         * cpplib.h (GNU_VARARGS): Remove.
9964         (GNU_REST_ARGS): New.
9965
9966 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
9967
9968         * i386.md (call_pop, call, call_value_pop): Do not set
9969         current_function_uses_pic_offset_table for calls to static
9970         functions or indirect calls.
9971
9972 2000-07-07  Jim Wilson  <wilson@cygnus.com>
9973
9974         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
9975         is_predicate_reg, then take max write_count of register pair.
9976
9977 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9978
9979         * tradcpp.c (main): Rename label `include' to `add_include' to
9980         avoid conflicts with variable `include' in traditional C.
9981
9982 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
9983
9984         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
9985
9986 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
9987
9988         * sibcall.c (uses_addressof): Add INMEM argument, check for
9989         current_function_internal_arg_pointer outside of MEM rtxs in addition
9990         to ADDRESSOFs.
9991         (sequence_uses_addressof): Update caller.
9992
9993 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
9994
9995         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
9996         and friends.
9997
9998 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9999
10000         * system.h (UNION_INIT_ZERO): New macro for initializing union
10001         members in structs.
10002
10003         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
10004
10005 2000-07-07  Neil Booth  <NeilB@earthling.net>
10006
10007         * cpp.texi: Update.
10008
10009 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
10010
10011         * final.c (final): Detect out of bounds array access to
10012         the insn_lengths array.
10013
10014 2000-07-07  Kazu Hirata  <kazu@hxi.com>
10015
10016         * fold-const.c (fold): Fix a comment typo.
10017
10018 2000-07-07  Neil Booth  <NeilB@earthling.net>
10019
10020         * cpp.texi: Update to new lexer.
10021
10022 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
10023
10024         * tradcpp.c: New file.
10025         * tradcif.y: New file.
10026         * tradcif.c: New generated file.
10027
10028         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
10029         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
10030         dependencies of C.  Install tradcpp from install-common, in
10031         $(libsubdir).
10032
10033 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
10034
10035         * cppinit.c: Include cppdefault.h.  Refer to
10036         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
10037         to GCC_INCLUDE_DIR and its length.
10038         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
10039         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
10040         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
10041         cppdefault.h.
10042         (include_defaults_array): Move to cppdefault.c.
10043
10044         * cppdefault.h: New file.
10045         * cppdefault.c: New file.
10046
10047         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
10048         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
10049         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
10050         this file.
10051
10052 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10053
10054         * reload.c (push_reload): When seeing if can reuse a register,
10055         check extra registers against widest of INMODE and OUTMODE.
10056
10057 2000-07-06  Neil Booth  <NeilB@earthling.net>
10058
10059         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
10060         based on full length of predicate.
10061
10062 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
10063
10064         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
10065         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
10066
10067 2000-07-05  Kazu Hirata  <kazu@hxi.com>
10068
10069         * h8300-proto.h: Fix formatting.
10070         * h8300.c: Likewise.
10071         * h8300.h: Likewise.
10072
10073 2000-07-05  Jim Wilson  <wilson@cygnus.com>
10074
10075         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
10076         CCmode.
10077
10078 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
10079
10080         * invoke.texi: Fix minor typos
10081         * md.texi: Fix minor typos
10082
10083 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
10084
10085         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
10086
10087 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
10088
10089         * cpplex.c: Don't include sys/mman.h.
10090         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
10091
10092         * cpplib.c: Include sys/mman.h and obstack.h.
10093         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
10094         obstack.
10095         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
10096         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
10097         bother freeing if stack entries (they will be freed with their buffer).
10098         (do_endif): Free if stack entries from the buffer obstack.
10099         (push_conditional): Allocate if stack entries from the buffer obstack.
10100
10101         (find_answer): Rename to _cpp_find_answer.
10102         (do_assert, do_unassert): Update.
10103
10104         * cpphash.h: Update prototypes.
10105         (xobnew): New convenience macro.
10106         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
10107         Update comments.
10108         (struct cpp_hashnode): Remove disabled field.
10109
10110         * cppinit.c: Don't include hashtab.h or splay-tree.h.
10111         (report_missing_guard): Moved to cppfiles.c.
10112         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
10113         cpp_init_includes.
10114         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
10115         cpp_cleanup_includes.  Don't destroy hashtab or
10116         all_include_files here.
10117         (cpp_finish): Use _cpp_report_missing_guards.
10118
10119         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
10120         (_cpp_init_include_table): Rename _cpp_init_includes.
10121         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
10122
10123         * cppexp.c (parse_assertion): Update for new name of
10124         find_answer.
10125
10126         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
10127
10128 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
10129
10130         * cpplib.c (do_ident): s/VSPACE/EOF/
10131
10132 2000-07-05  Neil Booth  <NeilB@earthling.net>
10133
10134         * cpplex.c: Fix trigraph replacement within strings.
10135
10136 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10137
10138         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
10139
10140         * xcoffout.c (assign_type_number): Constify.
10141         (xcoffout_source_file): Add static prototype.  Don't needlessly
10142         cast away const-ness.
10143
10144 2000-07-04  Jason Merrill  <jason@redhat.com>
10145
10146         * frame.h (frame_state): Move base_offset to end.
10147
10148 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
10149
10150         * calls.c (emit_library_call_value_1): Revert previous change.
10151
10152 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
10153
10154         * fix-header.c (struct partial_proto): Remove unnecessary fields.
10155         (recognized_extern, recognized_function, read_scan_file):
10156         Update for new scheme.
10157         (check_protection): It's still a multiple include guard even
10158         if it doesn't always trigger.
10159         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
10160         new scheme.
10161         * scan.h: Declare struct cpp_token.  Update prototypes.
10162
10163 2000-07-03  Neil Booth  <neilb@earthling.net>
10164             Zack Weinberg  <zack@wolery.cumb.org>
10165
10166         Complete overhaul of the lexer and macro expander.
10167
10168         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
10169         arg, arglist, argdata, reflist, collect_objlike_expansion,
10170         collect_funlike_expansion, collect_params,
10171         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
10172         unsafe_chars, macarg, compare_defs, special_symbol,
10173         scan_arguments, stringify, funlike_macroexpand,
10174         _cpp_quote_string, monthnames): Delete.
10175         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
10176         _cpp_create_definition, _cpp_dump_definition,
10177         dump_hash_helper): Adjust.
10178         (find_param, count_params, parse_define, var_args_str,
10179         check_macro_redefinition, save_expansion): New.
10180
10181         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
10182         parse_string, output_line_command, trigraph_replace,
10183         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
10184         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
10185         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
10186         _cpp_skip_rest_of_line): Modify.
10187
10188         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
10189         find_position, null_warning, bump_column, expand_name_space,
10190         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
10191         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
10192         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
10193         _cpp_prescan): Delete.
10194
10195         (dump_param_spelling, process_directive, lex_next,
10196         is_macro_disabled, stringify_arg, expand_context_stack,
10197         output_token, make_string_token, alloc_number_token,
10198         special_symbol, duplicate_token, maybe_paste_with_next,
10199         can_paste, prevent_macro_expansion, restore_macro_expansion,
10200         get_temp_token, release_temp_tokens, quote_string,
10201         token_names, token_spellings, _cpp_expand_name_space,
10202         _cpp_glue_header_name, _cpp_reserve_name_space,
10203         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
10204         placemarker_token, eof_token, cpp_context, macro_args,
10205         get_raw_token, parse_arg, parse_args, save_token,
10206         push_arg_context, push_macro_context, pop_context,
10207         do_pop_context, free_macro_args, _cpp_get_line,
10208         _cpp_run_directive): New.
10209
10210         * cpplib.c (validate_else, parse_include, push_conditional,
10211         pass_thru_directive, read_line_number, parse_ifdef,
10212         detect_if_not_defined, _cpp_check_directive, do_define,
10213         do_undef, do_include, do_import, do_include_next, do_error,
10214         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
10215         top_pragmas, do_pragma_gcc, do_pragma_implementation,
10216         do_pragma_poison, do_pragma_system_header,
10217         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
10218         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
10219         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
10220         cpp_defined): Update for new scheme.
10221         (strtoul_for_line, get_define_node, dump_macro_name,
10222         _cpp_check_linemarker, _cpp_parse_assertion): New.
10223         (_cpp_handle_directive, do_pragma_default): Delete.
10224
10225         * cpphash.h (struct predicate): Now struct answer.
10226         (enum spell_type, struct token_spelling, struct directive,
10227         directive_handler): New.
10228         Update prototypes.  Remove unused macros.
10229         * cpplib.h: Update prototypes.  Remove unused macros,
10230         structure definitions, and fields.
10231
10232         * cpperror.c (print_containing_files, v_message): Adjust.
10233         * cppexp.c (parse_assertion, lex, parse_escape,
10234         _cpp_parse_expr): Adjust.
10235         * cppfiles.c (open_include_file, _cpp_execute_include,
10236         _cpp_compare_file_date, cpp_read_file, read_include_file):
10237         Adjust.
10238         * cppinit.c (dump_special_to_buffer): Delete.
10239         (append_include_chain, merge_include_chains, cpp_reader_init,
10240         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
10241         cpp_finish, handle_option, print_help): Adjust.
10242         * cppmain.c (main): Adjust.
10243
10244 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
10245
10246         * cppspec.c (lang_specific_driver): Use double quotes in error
10247         message.
10248
10249 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
10250
10251         * calls.c (emit_library_call_value_1): Use valreg instead
10252         of hard_libcall_value.
10253
10254 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
10255
10256         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
10257         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
10258         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
10259         (movhi): Likewise.
10260         (movqi): Likewise.
10261         (movdf): Likewise.
10262         (movsf): Likewise.
10263         (movdi): Likewise.
10264         (movti): Likewise.
10265
10266         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
10267         mode instead of wider_mode is being used.
10268
10269 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
10270
10271         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
10272         of 'r'. Use q_regs_operand.
10273         (andsi_1+2): Use q_regs_operand.
10274
10275 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
10276
10277         * builtins.c (get_memory_rtx): Always put into alias set 0.
10278
10279 2000-07-03  Nick Clifton  <nickc@cygnus.com>
10280
10281         * config/arm/arm.md: Fix post increment and pre increment
10282         peepholes so that they do not generate UNPREDICATBLE opcodes.
10283         (ie ones where the increment clobbers the source/destination).
10284
10285 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
10286
10287         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
10288         change too big for -mtiny-stack" a warning, if larger than 63.
10289         (out_set_stack_ptr): Change the logic so -mno-interrupts is
10290         always safe to use on possible future devices.
10291         (function_prologue): Write SPH before SPL, for consistency.
10292         If interrupt_func_p true, we know we have enabled interrupts.
10293         (avr_num_arg_regs): New function.  Round up to even number of
10294         bytes if no -mpack-args or if calling a libgcc function.
10295         (function_arg, function_arg_advance): Use it.
10296         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
10297         Output "movw" if available.
10298         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
10299         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
10300         (asm_output_section_name): Add blanks for consistent output.
10301         (encode_section_info): Set TREE_READONLY for progmem data to
10302         avoid gas warnings about changed section attributes.
10303         (avr_hard_regno_mode_ok): Force non-QImode data to start in
10304         even numbered registers on devices with "movw".
10305         * config/avr/avr.h (MASK_*): Define bits for target_flags.
10306         (TARGET_SWITCHES): Mark help strings for translation.
10307         Add new -mpack-args and -menhanced switches.
10308         (TARGET_OPTIONS): Mark help strings for translation.
10309         (progmem_section): Add section attributes.
10310         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
10311         Output "movw" if available.
10312         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
10313         New patterns.
10314         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
10315         call convention (arguments aligned on even registers).
10316         (_cleanup, _exit): Make weak symbols libc can override.
10317
10318 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10319
10320         * fp-bit.h: New file.
10321
10322         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
10323         Comment #endif statements.
10324         (__thenan_sf, __thenan_df): Add missing braces around initializer.
10325
10326 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
10327
10328         * gcse.c (compute_pre_data): Compute ae_kill using other local
10329         properties instead of calling compute_ae_kill.
10330
10331         * alias.c (init_alias_analysis): Do not call
10332         prologue_epilogue_contains until after reload has completed.
10333
10334 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
10335
10336         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
10337         (genrtl_finish_compound_stmt): Likewise.
10338         (genrtl_compound_stmt): Change to return void.
10339
10340         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
10341         move code from here to ...
10342         (genrtl_compound_stmt): ... here.
10343         (genrtl_finish_compound_stmt): Remove.
10344         (expand_stmt): Add comment.
10345
10346 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
10347
10348         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
10349         and VOID_TYPE_P.
10350
10351 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
10352
10353         * cpplib.h (struct cpp_reader): New field include_depth.
10354         (struct cpp_printer): Rename last_bsd to last_id.
10355         * cppfiles.c (read_include_file): Bump include_depth.
10356         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
10357         (output_line_command): Output correct #line if a header
10358         is including itself and is not protected against multiple inclusion.
10359         Use include_depth instead of buffer_stack_depth, last_id instead of
10360         last_bsd.
10361         * cppinit.c (cpp_start_read): Initialize last_id instead of
10362         last_bsd.
10363
10364 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
10365
10366         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
10367         (c-semantics.o): New target.
10368
10369         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
10370         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
10371         (genrtl_clear_out_block): Likewise.
10372         (genrtl_goto_stmt): Likewise.
10373         (genrtl_expr_stmt): Likewise.
10374         (genrtl_decl_stmt): Likewise.
10375         (genrtl_if_stmt): Likewise.
10376         (genrtl_while_stmt): Likewise.
10377         (genrtl_do_stmt): Likewise.
10378         (genrtl_return_stmt): Likewise.
10379         (genrtl_for_stmt): Likewise.
10380         (genrtl_break_stmt): Likewise.
10381         (genrtl_continue_stmt): Likewise.
10382         (genrtl_scope_stmt): Likewise.
10383         (genrtl_switch_stmt): Likewise.
10384         (genrtl_case_label): Likewise.
10385         (genrtl_begin_compound_stmt): Likewise.
10386         (gerntl_finish_compound_stmt): Likewise.
10387         (genrtl_compound_stmt): Likewise.
10388         (genrtl_asm_stmt): Likewise.
10389         (genrtl_decl_cleanup): Likewise.
10390         (DECL_ANON_UNION_ELEMS): Likewise.
10391         (emit_local_var): Likewise.
10392         (make_rtl_for_local_static): Likewise.
10393         (expand_cond): Likewise.
10394         (expand_stmt): Likewise.
10395         (c_expand_return): Likewise.
10396         (c_expand_start_case): Likewise.
10397         (do_case): Likewise.
10398         (COMPOUND_STMT_NO_SCOPE): Likewise.
10399         (c_expand_asm_operands): Likewise.
10400         (NEW_FOR_SCOPE_P): New macro.
10401         (expand_expr_stmt_fn): New type.
10402
10403         (set_current_function_name_declared): Likewise.
10404         (current_function_name_declared): Likewise.
10405         (lang_expand_stmt): Likewise.
10406         (stmts_are_full_exprs_p): Likewise.
10407         (anon_aggr_type_p): Likewise.
10408         (lang_expand_expr_stmt): Likewise.
10409         (build_case_label): Likewise.
10410
10411         * c-decl.c (lang_expand_expr_stmt): Initialize.
10412         (stmts_are_full_exprs_p): Define.
10413         (current_function_name_declared): Likewise.
10414         (do_case): Likewise.
10415         (lang_expand_stmt): Likewise.
10416         (set_current_function_name_declared): Likewise.
10417         (anon_aggr_type_p): Likewise.
10418
10419         * c-semantics.c: New file.
10420         (expand_cond): Moved from cp/semantics.c.
10421         (genrtl_do_pushlevel): Likewise.
10422         (genrtl_clear_out_block): Likewise.
10423         (genrtl_goto_stmt): Likewise.
10424         (genrtl_expr_stmt): Likewise.
10425         (genrtl_decl_stmt): Likewise.
10426         (genrtl_if_stmt): Likewise.
10427         (genrtl_while_stmt): Likewise.
10428         (genrtl_do_stmt): Likewise.
10429         (genrtl_return_stmt): Likewise.
10430         (genrtl_for_stmt): Likewise.
10431         (genrtl_break_stmt): Likewise.
10432         (genrtl_continue_stmt): Likewise.
10433         (genrtl_scope_stmt): Likewise.
10434         (genrtl_switch_stmt): Likewise.
10435         (genrtl_case_label): Likewise.
10436         (genrtl_begin_compound_stmt): Likewise.
10437         (genrtl_finish_compound_stmt): Likewise.
10438         (genrtl_compound_stmt): Likewise.
10439         (genrtl_asm_stmt): Likewise.
10440         (genrtl_decl_cleanup): Likewise.
10441         (make_rtl_for_local_static): Moved from cp/decl.c.
10442         (emit_local_var): Likewise.
10443         (expand_stmt): Define.
10444
10445         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
10446         (c_expand_return): Likewise.
10447         (c_expand_start_case): Likewise.
10448
10449 2000-07-01  Richard Henderson  <rth@cygnus.com>
10450
10451         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
10452         with the low 13 bits set.
10453         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
10454         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
10455         of the low 13 bits into a CONST plus an adddi3.
10456         (load_symptr): Set RTX_UNCHANGING_P.
10457
10458 See ChangeLog.3 for earlier changes.