OSDN Git Service

* expmed.c (store_bit_field): Adjust last change to not consider
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-09-25  Richard Henderson  <rth@cygnus.com>
2
3         * expmed.c (store_bit_field): Adjust last change to not consider
4         any word-sized field naturally aligned.
5
6 2000-09-24  Richard Henderson  <rth@cygnus.com>
7
8         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
9         TFmode unordered compares properly.  Revalidate integer compare
10         operands.
11         (alpha_emit_setcc): New.
12         (alpha_emit_conditional_move): Revalidate integer compare operands.
13         * config/alpha/alpha-protos.h: Update.
14         * config/alpha/alpha.md (cmpdi): Allow general operands.
15         (sne): Use alpha_emit_setcc.
16         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
17         (sunordered, sordered): New.
18
19 2000-09-24  Richard Henderson  <rth@cygnus.com>
20
21         * config/ia64/ia64-protos.h: Update.
22         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
23         (ia64_expand_call): New.
24         (ia64_expand_prologue): Emit an alloc if we need extra input
25         registers.
26         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
27         instruction if true.
28         (struct reg_flags): Add is_sibcall.
29         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
30         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
31         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
32         * config/ia64/ia64.h (PREDICATE_CODES): Update.
33         * config/ia64/ia64.md (call): Use ia64_expand_call.
34         (call_value): Likewise.
35         (sibcall, sibcall_value): New.
36         (call patterns): Remove extra expanders; tidy.
37         (sibcall_epilogue): New.
38         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
39
40 2000-09-24  Richard Henderson  <rth@cygnus.com>
41
42         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
43
44         * sibcall.c (skip_pic_restore): New.
45         (identify_call_return_value): Use it.
46
47 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
48
49         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
50         functions.  Generalize to handle both C and C++.
51         * Makefile.in (c-tree.info): New target.
52         (info): Add c-tree.info.
53         
54 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
55
56         * expr.c (store_field): If BITSIZE is negative, use size of type.
57         (expand_expr, case COMPONENT_EXPR): Likewise.
58
59 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
60
61         * cpplex.c: Update TODO comment.
62         * cpplib.c (do_error, do_warning): Merge common code of
63         do_error and do_warning into do_diagnostic.  Use it.
64         (do_diagnostic): New function.
65         * cpplib.h: Fix comment typo.
66
67 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
68
69         * c-common.c (check_format_info): Warn for a wide character string
70         used as a non-wide format argument.
71
72 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
73
74         * builtins.def (BUILT_IN_LLABS): Add.
75         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
76         * c-common.c (c_common_nodes_builtins): Create builtin functions
77         __builtin_llabs, and plain llabs unless no_nonansi_builtins
78         outside of C99 mode.
79         (expand_tree_builtin): Handle BUILT_IN_LLABS.
80
81 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
82
83         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
84         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
85         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
86         _cpp_free_toklist): No need to worry about extra dummy token
87         at the start of token lists any more.
88         (trigraph_ok): Only warn outside comments.
89         (skip_block_comment): Set and clear lexing_comment.
90         (skip_line_comment): Take a cpp_reader not cpp_buffer.
91         Set and clear lexing_comment.
92         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
93         (check_long_token): Delete.
94         (lex_percent, lex_dot): New subroutines of lex_token to
95         handle lexing of '.' and '%' without lookback.
96         (lex_token): Use lex_dot and lex_percent.
97         (lex_line): Don't check for LIST_OFFSET.
98         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
99         * cpplib.c (_cpp_parse_assertion): Similarly.
100         (cpp_push_buffer): Initialize extra_char.
101         * cpplib.h (LIST_OFFSET): Delete.
102         (struct cpp_buffer): New member extra_char.
103         (struct lexer_state): New members lexing_comment and seen_dot.
104
105 2000-09-23  Jason Merrill  <jason@redhat.com>
106
107         * config/rs6000/x-aix41 (CLIB): Define here.
108         * config/rs6000/t-aix43: Not here.
109         * config/rs6000/t-aix41: Or here.  Remove.
110         * configure.in: Don't use it.
111
112 2000-09-22  Jason Merrill  <jason@redhat.com>
113
114         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
115         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
116         * config.in: Regenerate.
117
118         * configure.in: Fix checks for assembler features when using a
119         one-tree assembler that has not yet been built.
120         Fix --disable-threads.
121
122 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
123
124         * stmt.c (expand_asm_operands): Allow # in constraints.
125
126 2000-09-22  Jason Merrill  <jason@redhat.com>
127
128         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
129
130         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
131         function-local names.
132
133 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
134             Mark Mitchell  <mark@codesourcery.com>
135
136         * toplev.c (warn_disabled_optimization): Declare new warning flag.
137         * flags.h (warn_disabled_optimization): Add it here.
138         * gcse.c (gcse_main): Add warning when disabled.
139         * invoke.texi: Document -Wdisabled-optimization.
140
141 2000-09-21  Jason Merrill  <jason@redhat.com>
142
143         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
144
145         * dwarf2out.c (tree_add_const_value_attribute): New fn.
146         (gen_variable_die): Call it for non-definitions.
147
148         * dwarf2out.c (die_struct): Add die_mark field.
149         (mark_dies, unmark_dies): New fns.
150         (clear_die_sizes): Remove.
151         (print_die): Check die_symbol rather than die_offset.
152         (build_abbrev_table, output_pubnames, output_aranges): Check
153         die_mark rather than die_offset.
154         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
155         Call mark_dies.
156
157 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
158
159         * cppfiles.c (lookup_include_file): Rename to open_file.
160         Always create a splay tree value, even on syscall failures.
161         Negative entries indicated by fd == -2.
162         Re-open files closed in the meantime.
163         (_cpp_fake_include): Create a negative splay tree entry.
164         (find_include_file, cpp_read_file): Update for function name
165         change.
166         * gcc.gd/cpp/mi4.c: Testcase.
167
168 2000-09-21  Nick Clifton  <nickc@redhat.com>
169
170         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
171         ARM and THUMB modes.
172
173         * config/mcore/mcore.c: Fix compile time warnings.
174         * config/mcore/mcore-protos.h: Fix compile time warnings. 
175
176 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
177
178         * configure.in: Correct test of gcc_cv_glibc.
179         * configure: Rebuilt.
180         * config.in: Rebuilt.
181
182 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
183
184         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
185         (expand_builtin): Handle BUILT_IN_FWRITE.
186
187         * builtins.def (BUILT_IN_FWRITE): New entry.
188
189         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
190
191 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
192
193         * gcc.c (modify_target): New variable and struct.
194         (process_command): Handle MODIFY_TARGET_NAME.
195         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
196         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
197
198         * c-decl.c (finish_decl): Add else's to avoid referencing
199         TYPE_DOMAIN of an ERROR_MARK.
200
201 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
202
203         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
204         `reload_in*' insns.
205
206 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
207
208         * config/avr/avr.md (neghi2): Add alternative for input and output
209         operands in different registers, as in negsi2.
210         (*negsi2): Remove '*' from the name.  Use "movw" if available.
211
212 2000-09-19  Jim Wilson  <wilson@cygnus.com>
213
214         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
215         HAVE_GAS_HIDDEN macro.
216
217 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
218
219         * cpplex.c (lex_line): Drop the EOF token for unknown
220         directives in assembler.
221
222 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
223
224         * configure.in: Allow enable_threads_flag value of "aix".  Define
225         thread_file as "aix" for AIX 4.3 and above.
226         * configure: Regenerated.
227
228         * gthr-aix.h: New file.
229
230         * rs6000/t-aix43: Replace soft-float multilib with pthread.
231         Remove 403 processor multilib match.  Fix rios2 processor multilib
232         match.
233
234         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
235         to return to appropriate csect.
236
237 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
238
239         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
240         functions.
241         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
242         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
243         BUILT_IN_PRINTF.
244
245         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
246         New entries.
247
248         * c-common.c (init_function_format_info): Handle __builtin_printf.
249         Set `check_function_format_ptr'.
250         (c_common_nodes_and_builtins): Set `puts_ftype' and
251         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
252         __builtin_printf and printf.
253
254         * tree.c, tree.h (check_function_format_ptr): Declare.
255
256 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
257
258         * cppfiles.c (read_include_file): Take no special action for
259         zero-length files.
260
261 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
262
263         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
264         rather than that of branch.
265         (shorten_branches): Don't increment insn_current_address twice.
266
267         Undo most of the Wed Jan 27 23:39:53 1999 patch:
268         * loop.h (struct induction): Delete members derived, ix and last_use.
269         (struct loop_ivs): Delete members first_increment_giv and
270         last_increment_giv.
271         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
272         recombine_givs): Delete functions.
273         (find_and_verify_loops): Don't initialize cont_dominator.
274         (strength_reduce): Lose code to try to find bivs that can be
275         expressed as givs of another biv, and to convert biv increments
276         into givs.
277         Lose loop_scan_start variable, always use loop->scan_start.
278         Don't call recombine_givs.  Don't handle derived givs.
279         (record_giv): Don't initialize derived and last_use fields.
280         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
281         givs.
282         * unroll.c (derived_regs): Delete static variable.
283         (unroll_loop): Don't initialize it.
284         (copy_loop_body): Lose code to handle derived givs.
285         (find_splittable_givs): Don't check for givs made from biv
286         increments.
287         Don't set derived_regs.
288
289         Fix misapplied earlier patch:
290         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
291         to fpul.
292         (floatsisf2): Generate floatsisf_ie by default.
293         (floatsisf_i4): Conditional on TARGET_SH4.
294
295         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
296         predicate for the expanders.
297
298 2000-09-19  Richard Henderson  <rth@cygnus.com>
299
300         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
301         in addition to pentium and pentiumpro symbols.
302         (CPP_CPU_DEFAULT_SPEC): Likewise.
303
304         * c-typeck.c (c_expand_asm_operands): Restore the output tree
305         after expanding.
306
307         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
308         if the tree has side effects.
309         (warn_if_unused_value): Do not warn about void constructs.
310
311         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
312
313         * unroll.c (copy_loop_body): Update LABEL_NUSES before
314         calling invert_jump.
315
316 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
317
318         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
319         into anything.
320
321 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
322
323         * Makefile.in (c-common.o): Depend on diagnostic.h.
324
325         * c-common.c: Include diagnostic.h.
326         (tfaff): Delete.
327         (status_warning): New function.
328         (check_format_info, maybe_read_dollar_number, check_format_types,
329         finish_dollar_format_checking, check_function_format): Accept a
330         `status' parameter.  All callers changed.
331
332         * c-common.h (check_function_format): Accept a `status' parameter.
333
334         * c-typeck.c: Update call to `check_function_format'.
335
336 2000-09-18  Richard Henderson  <rth@cygnus.com>
337
338         * c-decl.c (c_expand_body): Call mark_varargs before
339         expand_function_start.
340
341 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
342
343         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
344         * config/rs6000/eabi-ci.asm: Likewise.
345
346 2000-09-18  Richard Henderson  <rth@cygnus.com>
347
348         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
349         for BImode.
350
351 2000-09-18  Jim Wilson  <wilson@cygnus.com>
352
353         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
354         before passing it to fold_rtx_mult_add.
355
356         * unroll.c (final_giv_value): Pass increment through
357         extend_value_for_giv before passing it to emit_iv_add_mult.
358
359         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
360         paradoxical subreg, then directly substitute the replacement and
361         return.
362
363 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
364
365         * cpp.texi: Update documentation, including some clarifications,
366         the treatment of various newline combinations, and space between
367         backslash and newline.
368
369 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
370
371         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
372         Replace ASM_OUTPUT_LABELREF with assemble_name.
373
374 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
375
376         * sh.c (addsubcosts): CONST is not cheap.
377         (find_barrier): For Sh1, take alignment after jumps into account.
378
379 2000-09-15  Andrew Haley  <aph@redhat.com>
380
381         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
382         remove all SETs of SUBREGs of hard registers.
383         * function.c (purge_hard_subreg_sets): New function.
384         (purge_single_hard_subreg_set): New function.
385         * rtl.h: (purge_hard_subreg_sets): New function.
386
387 2000-09-18  Richard Henderson  <rth@cygnus.com>
388
389         * config/ia64/ia64-protos.h: Update.
390         * config/ia64/ia64.c (signed_inequality_operator): New.
391         (ia64_expand_compare): New.
392         (ia64_register_move_cost): Handle PR_REGS moves.
393         (ia64_secondary_reload_class): Require a GR when moving to a PR.
394         (struct reg_write_state): Add written_by_and/or.
395         (struct reg_flags): Add is_and/or.
396         (rws_update): Set them.
397         (rws_access_regno): Test them to allow parallel comparisons.
398         (rtx_needs_barrier): Recognize parallel comparisons.
399         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
400         Call recog_memoized; ignore pred_rel_mutex.
401         (emit_predicate_relation_info): Don't call find_basic_blocks here.
402         (ia64_reorg): Do it here instead.
403         * config/ia64/ia64.h: s/CCmode/BImode/g
404         (MODES_TIEABLE_P): Don't tie BImode.
405         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
406         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
407         (RTX_COSTS): Make multiply 4 insns.
408         (MEMORY_MOVE_COST): New.
409         (PREDICATE_CODES): Update.
410         * config/ia64/ia64.md: s/CCmode/BImode/g
411         (movcci, movbi): New.
412         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
413         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
414         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
415         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
416         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
417         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
418         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
419         (mulsi, muldi): Use xmpy not xma.
420         (cmpbi): New.
421         (movcc, movcc_internal): Remove.
422         (branch expanders): Use ia64_expand_compare.
423         (setcc expanders): Likewise.
424         (cmov insns): Use move_operand and ia64_move_ok.
425         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
426         scheduler from moving it past a use.
427         * config/ia64/build.hacks: Remove.
428
429 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
430
431         * cpphash.h (HASHSTEP): Take character rather than pointer
432         to character.
433         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
434
435         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
436
437         * cpplex.c (auto_expand_name_space, trigraph_replace,
438         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
439         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
440         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
441         KNOWN_DIRECTIVE): Delete.
442
443         (handle_newline, check_long_token, skip_escaped_newlines,
444         unterminated): New functions.
445         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
446
447         (parse_identifier): Was parse_name, new implementation.
448         (skip_line_comment, skip_block_comment, skip_whitespace,
449         parse_number, parse_string, trigraph_ok, save_comment,
450         adjust_column, _cpp_get_line): New implementations.
451
452         (lex_token): New function.  Lexes a token at a time, looking
453         forwards.  Contains most of the guts of the old lex_line.
454         (lex_line): New implementation, using lex_token to obtain
455         individual tokens.
456         (cpp_scan_buffer): Use the token's line, not the list's line.
457
458         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
459          New implementations.
460         (do_assert): Don't bother setting the answer's list's line.
461         (cpp_push_buffer): Initialise new pfile and read_ahead members
462         of struct cpp_buffer.
463
464         * cpplib.h (cppchar_t): New typedef.
465         (struct cpp_buffer): read_ahead, pfile and col_adjust are
466         new members.
467         (struct lexer_state): New structure that determines the state
468         and behaviour of the lexer.
469         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
470         (struct cpp_reader): New member "state". Rename
471         multiline_string_line and multiline_string_column. Delete
472         col_adjust, in_lex_line members.
473         (CPP_BUF_COLUMN): Update.
474
475 2000-09-18  Richard Henderson  <rth@cygnus.com>
476
477         * combine.c (simplify_comparison): Shift a NOT out of a single
478         bit test.
479
480         * combine.c (if_then_else_cond): Canonicalize BImode true to
481         STORE_FLAG_VALUE.
482         * explow.c (trunc_int_for_mode): Likewise.
483
484         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
485         the NOT for De Morgan's rule.
486         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
487         of a comparison to the reverse comparison.
488
489         * combine.c (try_combine): Allow split to create a single insn.
490
491         * machmode.def: Add BImode.  Add a column for bitsize.
492         * machmode.h (DEF_MACHMODE): Adjust for extra column.
493         (GET_MODE_BITSIZE): Use it.
494         * rtl.c (DEF_MACHMODE): Adjust for extra column.
495         (mode_bitsize): New.
496         (mode_mask_array): Use bitsize.
497         * combine.c (combine_simplify_rtx): Require inner and outer
498         modes to match on nonzero_bits optimizations.
499
500 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
501
502         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
503         its entry in spill_reg_store.
504         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
505         * sh.c (reg_no_subreg_operand): New function.
506         * sh-protos.h (reg_no_subreg_operand): Declare it.
507         * sh.h (PREDICATE_CODES): Add it.
508         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
509         input operand that needs to be in fpul.
510         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
511         * sh.c (find_barrier): Take into account that machine_dependent_reorg
512         might add new insns.
513
514 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
515
516         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
517         MAYBE_DEAD.
518         (sh_expand_epilogue): Take the PIC register into account when
519         computing the frame size.
520
521         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
522         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
523         LABEL_REFs with a PIC-safe unspec.
524
525 2000-09-18  Will Cohen  <wcohen@redhat.com>
526
527         * extend.texi (Zero Length): State that static initializers for
528         zero-length arrays are not allowed.
529
530         * c-typeck.c (process_init_element): Flag initializers for zero
531         length arrays.
532
533         * tree.c (integer_all_onesp): Ignore TREE_INT_CST_HIGH if prec is
534         exactly HOST_BITS_PERWIDE_INT.
535
536 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
537
538         * c-common.c (check_format_info): Properly save the argument
539         number and parameter for $ operand number formats in case width
540         and precision arguments are also used.  Allow printf width and
541         precision arguments to have operand numbers even if none was
542         specified for the main format, since this is OK for %*.*m.  Only
543         object to missing $ operand number if the format used requires an
544         argument.
545
546 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
547
548         * c-common.c (format_char_info): Add 'W' flag to comment.
549         (print_char_table, scan_char_table): Use it.
550         (check_format_info): Use the 'W' flag to determine whether a
551         format argument is written into.
552
553 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
554
555         * c-common.c (check_format_types): Reorganise and clean up,
556         checking earlier for ERROR_MARKs and making cur_type into its
557         TYPE_MAIN_VARIANT where convenient.
558
559 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
560
561         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
562
563 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
564
565         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
566
567         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
568         * i386.c (struct builtin_description): New.
569         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
570         (mmx_reg_operand): Declare MODE arg as unused.
571         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
572         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
573         ix86_expand_binop_builtin, ix86_expand_store_builtin,
574         ix86_init_builtins, ix86_expand_builtin): New functions.
575         * i386.h (ix86_builtins): New enumeration.
576         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
577         * i386.md (attr length_immediate): 0 for mmx/sse types.
578         (attr prefix_0f): 1 for mmx/sse types.
579         (setcc_2): Remove "*" so we get gen_setcc_2.
580         (emms): Account for changed register numbering.  Set "memory" attr
581         to unknown.
582         (sfence): Set "memory" attr to unknown.
583
584 2000-09-18  Andreas Jaeger  <aj@suse.de>
585
586         * configure.in: Define _GNU_SOURCE only when using the GNU C
587         Library.
588         * configure: Regenerated.
589         * config.in: Regenerated.
590
591 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
592
593         * cppinit.c (cpp_init): Don't use ANSI prototypes.
594         * flow.c (flow_dump_loop): Likewise.
595         (flow_loops_dump): Likewise.
596
597         * c-typeck.c (c_start_case): Fix typo.
598
599 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
600
601         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
602         to int for plain complex which defaults to complex double.  Do
603         warn about defaulting to complex double if pedantic.  Warn about
604         complex integer types if pedantic.  Warn about complex types if
605         pedantic and not in C99 mode.
606         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
607         for complex conjugation.
608
609 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
610
611         * contrib.texi: Update my entry.
612
613 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
614
615         * config/avr/avr.md (mcu_enhanced): New attribute.
616         (mcu_mega): Likewise.
617         (extendhisi2): Use mcu_enhanced.
618         (zero_extendhisi2): Likewise.
619         (call_insn): Use mcu_enhanced and mcu_mega.
620         (call_value_insn): Likewise.
621         (*sbrx_branch): Use mcu_mega.
622         (*sbrx_and_branchsi): Likewise.
623         (*sbrx_and_branchhi): Likewise.
624         (*tablejump_lib): Likewise.
625
626 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
627
628         * alias.c (true_dependence): Allow non-unchanging read to conflict
629         with unchanging write.
630
631         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
632         (store_constructor): Pass alias_set to it.
633
634         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
635         TYPE_MAIN_VARIANT of ERROR_MARK.
636         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
637
638         * simplify-rtx.c (simplify_unary_operation): Add cases
639         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
640
641 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
642
643         * expr.h (emit_library_call, emit_library_call_value): Delete
644         declarations.
645         * rtl.h (enum libcall_type): New.
646         (emit_library_call, emit_library_call_value): Change fn_type arg to
647         be of type enum libcall_type.
648         * calls.c: Likewise for the function definitions.  Several callers
649         throughout changed to use the new enumeration appropriately.
650         (emit_library_call_value_1): Likewise.  Put back code to make libcall
651         blocks of equal form, but only use it for the two new higher
652         enumeration values.
653
654 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
655
656         Convert the C front-end to use function-at-a-time mode.
657         * c-common.h: Include splay-tree.h.
658         (C_DECLARED_LABEL_FLAG): New macro.
659         (struct language_function): Add x_scope_stmt_stack and
660         x_function_name_declared_p.
661         (RECHAIN_STMTS): Move definition.
662         (lang_statment_code_p): Likewise.
663         (lang_expand_stmt): Likewise.
664         (lang_expand_decl_stmt): New variable.
665         (lang_expand_function_end): Likewise.
666         (current_scope_stmt_stack): New function.
667         (add_decl_stmt): Likewise.
668         (add_scope_stmt): Likewise.
669         (mark_stmt_tree): Likewise.
670         (struct c_lang_decl): New structure.
671         (DECL_SAVED_TREE): Define.
672         (c_mark_lang_decl): New function.
673         (c_expand_start_cond): Change prototype.
674         (c_finish_then): New function.
675         (c_finish_else): Likewise.
676         (current_function_name_declared): Remove.
677         (set_current_function_name_declared): Likewise.
678         (mark_c_language_function): Declare.
679         (case_compare): Likewise.
680         (c_add_case_label): Likewise.
681         (c_expand_expr): Likewise.
682         (c_safe_from_p): Likewise.
683         * c-common.c (lang_expand_function_end): New variable.
684         (struct if_elt): Add if_stmt.
685         (c_expand_start_cond): Add the if-statement to the statement-tree,
686         rather than generating RTL.
687         (c_finish_then): New function.
688         (c_expand_start_else): Don't generate RTL.
689         (c_finish_else): New function.
690         (c_expand_expr_stmt): Don't generate RTL.
691         (statement_code_p): Add SCOPE_STMT.
692         (case_compare): New function.
693         (c_add_case_label): Likewise.
694         (mark_stmt_tree): Likewise.
695         (c_mark_lang_decl): Likewise.
696         (mark_c_language_function): Likewise.
697         (c_expand_expr): Likewise.
698         (c_safe_from_p): Likewise.
699         * c-decl.c (c_stmt_tree): New variable
700         (c_scope_stmt_stack): Likewise.
701         (c_function_name_declared_p): Likewise.
702         (lang_expand_expr_stmt): Remove.
703         (poplevel): Don't call output_inline_function for nested
704         functions.
705         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
706         `extern' function.
707         (redeclaration_error_message): Change means of computing whether
708         or not a function is nested.
709         (lookup_label): Don't call label_rtx.
710         (init_decl_processing): Add more GC roots.
711         (start_decl): Add DECL_STMTs to the statement-tree, rather than
712         calling rest_of_decl_compilation.
713         (finish_decl): Don't call expand_decl.
714         (store_parm_decls): Begin the statement-tree, but don't generate
715         RTL.
716         (finish_function): Tie off the statement-tree.  Call c_expand_body
717         if appropriate.
718         (c_expand_body): New function.
719         (push_c_function_context): Save more information.
720         (pop_c_function_contxt): Likewise.
721         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
722         (lang_mark_tree): Mark it.
723         (current_stmt_tree): Adjust.
724         (current_scope_stmt_stack): New function.
725         (do_case): Remove.
726         (set_current_name_declared): Likewise.
727         (c_begin_compound_stmt): Define.
728         (c_expand_decl_stmt): Likewise.
729         * c-lang.c: Include rtl.h and expr.h.
730         (lang_init): Set more language-specific hooks.
731         * c-lex.c: Include expr.h.
732         * c-parse.in: Changes throughout to add statements to the
733         statement-tree, rather than generating RTL after every statement.
734         * c-semantics.c (lang_expand_decl_stmt): Define.
735         (add_decl_stmt): New function.
736         (add_scope_stmt): Likewise.
737         (finish_stmt_tree): Tweak.
738         (genrtl_expr_stmt): Likewise.
739         (genrtl_decl_stmt): Handle local labels, and call
740         lang_expand_decl_stmt if required.
741         (genrtl_for_stmt): Fix line-number handling.
742         (genrtl_case_label): Handle cleanups.
743         (genrtl_asm_stmt): Don't call combine_strings.
744         (genrtl_compound_stmt): Simplify.
745         (expand_stmt): Handle SCOPE_STMTs.
746         * c-tree.h (struct lang_decl): New structure.
747         (C_DECLARED_LABEL_FLAG): Remove.
748         (c_begin_compound_stmt): Declare.
749         (c_expand_decl_stmt): Likewise.
750         (c_expand_start_case): Rename to c_start_case.
751         (c_finish_case): New function.
752         * c-typeck.c (start_init): Tweak setting of
753         constructor_incremental.
754         (c_expand_asm_operands): Tweak error-handling.  Add to the
755         statement-tree.
756         (c_expand_return): Add to the statement-tree.
757         (c_expand_start_case): Rename to ...
758         (c_start_case): ... this.
759         (struct c_switch): New type.
760         (switch_stack): New variable.
761         (do_case): Simplify.
762         (c_finish_case): New function.
763         * dependence.c: Include expr.h.
764         (enum dependence_type): Change spelling of enumerals.
765         (check_node_dependence): Adjust.
766         * expr.h (lang_safe_from_p): Declare.
767         (safe_from_p): Likewise.
768         * expr.c (lang_safe_from_p): New variable.
769         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
770         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
771         * toplev.c (rest_of_decl_compilation): Robustify.
772         * tree.c (contains_placeholder_p): Likewise.
773         * Makefile.in: Update dependencies.
774         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
775         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
776         (objc_expand_function_end): New function.
777         (finish_method_def): Use it.
778         (init_objc): Initialize more language-specific hooks.
779         * objc/Make-lang.in: Update dependencies.
780
781 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
782
783         * configure.in: Define macros that affect features before
784         testing for features.  Don't define _XOPEN_SOURCE.
785         * configure: Regenerated.
786         * config.in: Regenerated.
787
788 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
789
790         * rtlanal.c (rtx_varies_p): Volatile asms vary.
791         (rtx_unstable_p): Restructure code.  Volatile asms
792         are unstable.
793
794 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
795
796         * function.h (no_debugging_symbols): New field.
797         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
798         Initialize no_debugging_symbols.
799         (output_inline_function): Save and restore write_symbols and set from
800         no_debugging_symbols.
801         * toplev.c (rest_of_compilation): Call save_for_inline.
802         * tree.h: Update comment.
803
804         * stor-layout.c (place_field): Don't do anything if field or
805         its type are ERROR_MARK.
806
807 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
808
809         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
810         (read_include_file): Ensure inc->mmaped is initialized.
811
812 2000-09-16  Richard Henderson  <rth@cygnus.com>
813
814         * cppiles.c (purge_cache): Use PTR not caddr_t.
815
816 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
817
818         * gcc.c: In description for %{<S}, say the option removed is -S.
819         * invoke.texi (Spec Files): Ditto.
820
821 2000-09-16  Andreas Jaeger  <aj@suse.de>
822
823         * configure.in: Always define _GNU_SOURCE to make interfaces
824         visible that were hidden by only defining _GNU_SOURCE.
825         * configure: Regenerated.
826
827 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
828
829         * cpplex.c (push_macro_context): Set an argument's level after
830         calling parse_args.  We could loop infinitely otherwise.
831
832 2000-09-15  Tom Tromey  <tromey@cygnus.com>
833
834         * configure, config.in: Rebuilt.
835         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
836
837 2000-09-15  Greg McGary  <greg@mcgary.org>
838
839         * cppmacro.c (check_trad_stringification): Check token
840         text pointers against limit before dereferencing.
841
842 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
843
844         * c-common.c (format_wanted_type): New structure.
845         (check_format_types): New function.
846         (check_format_info): Pass all checking of types of format
847         arguments, including width and precision arguments, to this new
848         function.
849
850 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
851
852         * BUGS: Remove file.
853
854 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
855
856         * config/alpha/alpha.c (override_options): ev6 cache latencies
857         from Richard Henderson.  Don't allow -mmemory-latency=L0.
858
859         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
860         (TARGET_OPTIONS): Add tune=.
861         (alpha_tune_string): Declare.
862         * config/alpha/alpha.c (override_options): Add cpu_table.
863         Use alpha_cpu_string first to set both alpha_cpu and target_flags
864         and then alpha_tune_string to set alpha_cpu only.
865         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
866         * config/alpha/elf.h (ASM_FILE_START): Likewise.
867         * config/alpha/osf.h (ASM_FILE_START): Likewise.
868         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
869
870 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
871
872         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
873         Remove.
874         (ix86_comparison_operator, ix86_cc_mode): Declare
875         * i386.h (CCGC, CCGCO): New modes.
876         (SELECT_CC_MODE): Move offline to ....
877         * i386.c (ix86_cc_mode): .... here; use new modes.
878         (ix86_comparison_operator): New.
879         (fcmov_comparison_operator): Ensure proper mode.
880         (put_condition_mode): More sanity checking.
881         (ix86_match_ccmode): Handle new modes.
882         (ix86_expand_fp_compare): GEU requires CCmode.
883         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
884         doing it by hand.
885         * i386.md (cmp?i_ccz_1): Remove
886         (cmp?i_ccno_1): Use ix86_match_ccmode.
887         (cmp?i_minus_1): New.
888         (cmpsi_1): New expander.
889         (cmpqi_ext_1): Use match_ccmode
890         (cmpqi_ext_3): New expander.
891         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
892         (cmpqi_ext_4): Use match_ccmode.
893         (add?i_?): Use match_ccmode.
894         (add?i_6): New.
895         (test?i_ccz_1): Remove
896         (test?i_1): New.
897         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
898         (testqi_ext_0): Use ix86_match_ccmode.
899         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
900         (xorqi_cc_ext_1): New expander.
901         (shift patterns): Use CCGOCmode for all shifts except for sar.
902         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
903         (setcc_3, jcc_3, miv?icc_c): Remove.
904
905 2000-09-15  Will Cohen  <wcohen@redhat.com>
906
907         * dwarf2out.c (add_const_value_attribute): Changed array into a
908         xmalloced object, so it exists after function exit.
909         (free_AT): Added case for dw_val_class_float to free allocated
910         memory.
911
912 2000-09-15  Kazu Hirata  <kazu@hxi.com>
913
914         * config/i386/i386.md: Fix a comment typo.
915         * gcc.c: Fix formatting.
916
917 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
918
919         * optabs.c (emit_libcall_block): If target is a user variable,
920         copy to a temporary first.
921         * expr.c (convert_move): When generating a libcall, make a libcall
922         block.
923         * calls.c (emit_library_call_value_1): Don't create a libcall
924         sequence here; our caller will in most cases do it.
925
926         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
927         MACH into FPUL.
928         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
929         * sh.md (reload_outsf): Generate recognizable patterns for
930         TARGET_SH3E.
931         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
932         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
933         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
934         truncdfsf2_i4): Change not to use explicit references to fpul.
935         (floatsisf2_ie): Remove USE of fpscr.
936         (floatsisf2): Change default expansion to match this.
937         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
938         unused patterns.
939
940 2000-09-15  Richard Henderson  <rth@cygnus.com>
941
942         * expmed.c (store_bit_field): Consider naturally aligned
943         memory for direct reference.
944
945 2000-09-15  Richard Henderson  <rth@cygnus.com>
946
947         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
948         AND addresses into alias set 0.
949         (alpha_expand_unaligned_store): Likewise.
950         (alpha_expand_unaligned_load_words): Likewise.
951         (alpha_expand_unaligned_store_words): Likewise.
952
953 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
954
955         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
956         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
957         is defined.
958         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
959         rsize of UNITS_PER_WORD.
960
961 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
962
963         * cpplex.c (ON_REST_ARG): Correct the test.
964         (maybe_paste_with_next): Duplicate a token that fail pasting,
965         and clear its PASTE_LEFT flag, so that nested pasting attempts
966         do not occur.
967
968 2000-09-14  Richard Henderson  <rth@cygnus.com>
969
970         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
971         * cse.c (rtx_cost): Likewise.
972         * optabls.c (expand_binop): Likewise.
973         (expand_twoval_binop, prepare_cmp_insn): Likewise.
974         * regclass.c (copy_cost): Likewise.
975         * reload1.c (reload_cse_move2add): Likewise.
976
977 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
978
979         * c-parse.in (reswords): Add _Complex.
980
981 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
982
983         * gcc.1: Delete documentation for -undef preprocessor option.
984
985 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
986
987         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
988         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
989         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
990         Remove undefine before config/elfos.h.
991         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
992
993 2000-09-14  Kazu Hirata  <kazu@hxi.com>
994
995         * invoke.texi (H8/300 Options): Add -ms2600.
996         * config/h8300.c (h8300_init_once): Output an error when -ms2600
997         is used without -ms.
998         * config/h8300.h (TARGET_MAC): New.
999         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
1000         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
1001         machine other than H8/S2600.
1002         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
1003         of the H8/S2000.
1004
1005 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
1006
1007         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
1008         pseudos that refer to the original pseudos, not only to their
1009         equivalent memory locations.
1010
1011 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1012
1013         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
1014         when making new MEM.
1015
1016         * Makefile.in (LN): Remove duplicate definition.
1017
1018 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1019
1020         From Joern Rennecke:
1021         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
1022         on an insn and function_invariant_p returns nonzero for the source,
1023         add a REG_EQUAL note.
1024
1025 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
1026
1027         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
1028         conflict with frame_pointer_rtx.
1029
1030 2000-09-13  Kazu Hirata  <kazu@hxi.com>
1031
1032         * loop.c: Fix formatting.
1033         * loop.h: Likewise.
1034
1035 2000-09-13  Richard Henderson  <rth@cygnus.com>
1036
1037         * config/ia64/ia64.md (divsf3): New.
1038         (divsf3_internal_lat, divsf3_internal_thr): New.
1039         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
1040         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
1041         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
1042         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
1043         (nmadddf4_alts, nmadddf4_trunc): New.
1044         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
1045         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
1046         (multf3_truncsf_alts, multf3_truncdf_alts): New.
1047         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
1048         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
1049         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
1050         (nmaddtf4_truncdf_alts): New.
1051         (recip_approx): Don't predicate.
1052
1053 2000-09-13  Richard Henderson  <rth@cygnus.com>
1054
1055         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
1056
1057 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1058
1059         * flags.h (flag_dump_rtl_in_asm): Declare.
1060         * toplev.c (flag_dump_rtl_in_asm): Define.
1061         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
1062         if -dP is specified.
1063         * rtl.h (print_rtx_head): Declare.
1064         * print-rtl.c (print_rtx_head): Define.
1065         (print_rtx): Print the string pointed to by print_rtx_head
1066         at beginning of each dump line.
1067         (print_rtl): Likewise.
1068         (print_rtl_single): Likewise.
1069         * final.c (final_scan_insn): Dump the insn in the assembly
1070         file for debugging.
1071         * gcc.1: Document -dP option.
1072         * invoke.texi (Debugging Options): Likewise.
1073
1074 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1075
1076         * md.texi (Machine Constraints): Document the 68HC11 constraints.
1077         * install.texi (Configurations): Document the 68HC11&68HC12 port.
1078         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
1079
1080 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
1081
1082         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
1083         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
1084         (*clrstrqi): Likewise.
1085         (xorhi3,xorsi3,absqi2): Likewise.
1086         (one_cmplhi2,one_cmplsi2): Likewise.
1087         (addsi3): Two stupid constraint alternatives removed.
1088         (extendhisi2): Use `movw' for enhanced avr cores.
1089         (zero_extendhisi2): Likewise.
1090
1091 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
1092
1093         * alias.c (find_base_term): Use frame_pointer_rtx
1094         when handling an ADDRESSOF.
1095
1096         * cse.c (canon_hash): Handle USE of BLKmode memory.
1097         (cse_insn): Outgoing arguments for a libcall don't
1098         affect any recorded expressions.
1099
1100 2000-09-12  Tom Tromey  <tromey@cygnus.com>
1101
1102         * configure, config.in: Rebuilt.
1103         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
1104
1105 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
1106
1107         * c-lex.c (lex_string): Use charwidth to compute bytemask.
1108         * expr.c (expand_expr): Don't optimize constant array references
1109         initialized with wide string constants.
1110
1111 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
1112
1113         * loop.c (note_set_pseudo_multiple_uses): Correct.
1114
1115 2000-09-12  Jim Wilson  <wilson@cygnus.com>
1116
1117         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
1118         else block, and X has side-effects, then fail.
1119
1120 2000-09-12  Greg McGary  <greg@mcgary.org>
1121
1122         * config/mips/mips-protos.h
1123         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
1124         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
1125         (PREDICATE_CODES): Add "trap_cmp_op".
1126         * config/mips/mips.c
1127         (trap_cmp_op, mips_gen_conditional_trap): New functions.
1128         * config/mips/mips.md (trap, conditional_trap): New patterns.
1129
1130 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1131
1132         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
1133         pointer.
1134
1135 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1136
1137         * builtins.c (built_in_decls): New array.
1138         (expand_builtin_fputs): New function.
1139         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
1140
1141         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
1142
1143         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
1144
1145         * tree.h (built_in_decls): New array.
1146
1147 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
1148
1149         * convex.md: Use "+" instead of "=" for outputs wrapped in a
1150         STRICT_LOW_PART.
1151         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
1152
1153 2000-09-12  Kazu Hirata  <kazu@hxi.com>
1154
1155         * haifa-sched.c: Fix formatting.
1156
1157         * genattrtab.c: Fix formatting.
1158
1159         * unroll.c: Fix formatting.
1160
1161 2000-09-12  Bruce Korb  <bkorb@gnu.org>
1162
1163         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
1164         remove obsolete code
1165         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
1166         * fixinc/fixincl.tpl: make non-exported arrays static scope
1167         * fixinc/fixincl.x: regenerate
1168         * fixinc/fixlib.h: Use PARAMS, not _P_
1169         * fixinc/fixtests.c: make a type for the test proc & use it
1170         * fixinc/server.h: Use PARAMS, not _P_
1171
1172 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1173
1174         * c-typeck.c (process_init_element): Avoid union init warnings on
1175         floating point zero.  Don't crash on unions containing structs.
1176
1177 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
1178
1179         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
1180         general_movsrc_operand, and remove CONST_INT from
1181         general_movdst_operand.
1182
1183 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1184
1185         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
1186         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
1187         regs with a higher cost.
1188         (preferrable): Deal with cases where either cost or regcost is
1189         MAX_COST.
1190         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
1191         regcost values.
1192         (COSTS_N_INSNS): Move definition...
1193         * rtl.h: ...here.
1194         (MAX_COST): New macro.
1195         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
1196         constant.
1197
1198 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
1199
1200         * c-common.h (genrtl_clear_out_block): Remove.
1201         * c-semantics.c (genrtl_clear_out_block): Remove.
1202         (genrtl_while_stmt): Don't call it.
1203         (genrtl_for_stmt): Likewise.
1204
1205 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
1206
1207         * cppfiles.c: Move all default-#defines to top of file.
1208         (open_include_file): Replace by lookup_include_file.
1209         (read_with_read, read_file): Merged into read_include_file.
1210         (stack_include_file, purge_cache): New functions.
1211         (close_cached_fd): Delete.
1212         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
1213         Cache the in-memory buffer, not the file descriptor.
1214
1215         * cpphash.h (struct include_file): Add buffer, st, refcnt,
1216         mapped fields.
1217         (xcnew): New utility macro.
1218         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
1219         * cpplib.h (struct cpp_buffer): Remove mapped field.
1220
1221 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
1222
1223         * cpplex.c (parse_string): Accept backslash space newline as a
1224         line continuation.
1225         (lex_line): Likewise.
1226         (_cpp_get_token): Remove hard limit on macro nesting.
1227
1228 2000-09-12  Philipp Thomas  <pthomas@suse.de>
1229
1230         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
1231         * configure: Rebuilt.
1232
1233 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
1234
1235         * flow.c (split_block): Fix update of registers live at
1236         end of split block.
1237
1238 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1239
1240         * i386.md (add?i_3, add?i_5): New.
1241         (add?i_4): Rename from add?i_3;  Fix compare pattern.
1242         (sub?i_3, xor?i_3, ior?i_3): New.
1243
1244         * genrecog.c (write_tree): Output code to clear insn_extract cache.
1245         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
1246         instead of extract_insn and extract_constrain_insn_cache instead of
1247         extract_insn and constrain_operands.
1248         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
1249         New functions.
1250         (extract_insn): Clear which_alternative.
1251         (constrain_operands): Set which_alternative to -1 when failed.
1252         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
1253         Declare.
1254
1255 2000-09-11  Matthew Hiller  <hiller@redhat.com>
1256
1257         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
1258         on operand 0 to '+'.
1259         (movstricthi): Likewise.
1260
1261 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1262
1263         * loop.h (LOOP_IVS): New macro.
1264         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
1265         (struct loop_ivs): New.
1266         (struct loop_info): Add ivs field.
1267         (reg_iv_type, reg_iv_info): Delete prototype.
1268         (reg_biv_class, loop_iv_list): Likewise.
1269         * loop.c (record_biv, find_life_end): Pass loop argument.
1270         (reg_iv_type): Remove global array and use
1271         field in loop_regs structure within loop_ivs structure.
1272         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
1273         (first_increment_giv, last_increment_giv): Use entry in
1274         loop_ivs structure.
1275         (record_initial): Pass ivs pointer.
1276         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
1277
1278 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1279
1280         * loop.h (LOOP_REGS): New macro.
1281         (struct loop_regs): New.
1282         (struct loop_info): Add regs field.
1283         * loop.c (set_in_loop): Remove global array and store
1284         in loop_regs structure as part of loop_info structure.
1285         (n_times_set, may_not_optimize): Likewise.
1286         (reg_single_usage, moved_once): Likewise.
1287         (count_one_set): Add regs argument.
1288         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
1289         (set_pseudo_multiple_uses): Pass regs pointer.
1290
1291 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1292
1293         * unroll.c (iteration_info): Subsume into loop_iterations.
1294         * loop.h (loop_info): New field iv.
1295
1296 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1297
1298         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
1299         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
1300         (flow_loops_update): New prototype.
1301         (flow_loops_find): Add flags to prototype.
1302         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
1303         * flow.c (flow_loop_pre_header_scan): New.
1304         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
1305         (flow_loop_free): Free pre-header root and trace and exit dominators.
1306         (flow_loops_find): New argument flags.
1307         (flow_loops_update): New function.
1308         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
1309
1310 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
1311
1312         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
1313         * flow.c (split_block, update_bb_for_insn): New functions.
1314
1315 2000-09-11  Richard Henderson  <rth@cygnus.com>
1316
1317         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
1318
1319 2000-09-11  Richard Henderson  <rth@cygnus.com>
1320
1321         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
1322         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
1323         (ia64_override_options): Prevent optimizing division for both
1324         latency and throughput.
1325         (rtx_needs_barrier): Handle frcpa.
1326         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
1327         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
1328         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
1329         (TARGET_SWITCHES): Add -minline-divide-min-latency and
1330         -minline-divide-max-throughput.
1331         (PREDICATE_CODES): Update.
1332         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
1333         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
1334         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
1335         (extendsftf2): Likewise.
1336         (extenddftf2): Likewise.
1337         (fix_trunctfdi2_alts): New.
1338         (fixuns_trunctfdi2_alts): New.
1339         (madd*4): Rename from madd*3.
1340         (divsi3, modsi3, udivsi3, umodsi3): New.
1341         (divsi3_internal): New.
1342         (divdi3, moddi3, udivdi3, umoddi3): New.
1343         (divdi3_internal_lat, divdi3_internal_thr): New.
1344         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
1345         (recip_approx): New.
1346
1347 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
1348
1349         * print-rtl.c (debug_call_placeholder_verbose): New variable.
1350         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
1351         set.
1352         * integrate.c (copy_rtx_and_substitute): Don't share
1353         LEAF_REG_REMAPpable registers with the inlined function.  Don't
1354         share the function value with calling sequences.
1355
1356 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
1357
1358         * c-decl.c (do_case): Fix a typo.
1359
1360         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
1361         to a if the comparison is floating mode and not -ffast-math.
1362         * simplify-rtx.c (simplify_ternary_operation): Likewise.
1363
1364 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1365
1366         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
1367         gen_ic_invalidate_line.
1368
1369 2000-09-11  Philip Blundell  <pb@futuretv.com>
1370
1371         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
1372
1373 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
1374
1375         * install.texi (LANGUAGES): Update to include new languages.
1376         * INSTALL: Rebuilt.
1377
1378 2000-09-11  DJ Delorie  <dj@redhat.com>
1379
1380         * gcc.c (main): Don't warn about unused -B prefixes
1381         (unused_prefix_warnings): remove
1382
1383 2000-09-11  Kazu Hirata  <kazu@hxi.com>
1384
1385         * final.c: Fix formatting.
1386
1387         * integrate.c: Fix formatting.
1388
1389 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
1390
1391         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
1392
1393 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
1394
1395         * reload.c (regno_clobbered_p): Fix thinko in previous change.
1396
1397 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1398
1399         * gcc.1: Document 68hc11 specific options.
1400
1401 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
1402
1403         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
1404         (TARGET_LONG_DOUBLE_128): Define.
1405         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
1406         (LONG_DOUBLE_TYPE_SIZE): Redefine.
1407         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
1408         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
1409         of __LONG_DOUBLE_128__.
1410         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
1411         passed.
1412         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
1413         (CPP_SYSV_DEFAULT_SPEC): Define.
1414         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
1415         (INIT_TARGET_OPTABS): Define.
1416
1417         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
1418         (RS6000_UITRUNC): Likewise.
1419         (INIT_TARGET_OPTABS): New macro.
1420         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
1421         (trunc_defined): Delete.
1422         (output_prolog): Don't output .extern definitions for fp->int
1423         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
1424         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
1425         (trunc_defined): Delete.
1426         (RS6000_ITRUNC): Moved to aix.h.
1427         (RS6000_UITRUNC): Likewise.
1428         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
1429         only emit a libcall.
1430         (fixuns_truncdfsi2): Delete.
1431         (trunc_call): Delete.
1432         (trunc_call_rtl): Delete.
1433
1434 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1435
1436         * varasm.c (make_decl_rtl): Restore leading star on
1437         DECL_ASSEMBLER_NAME set for decls with an asmspec.
1438
1439 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1440
1441         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
1442         won't give a spurious error for '#pragma pack()'.  Simplify
1443         control flow for readability.  'reset' action is not necessary.
1444
1445 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
1446
1447         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
1448         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
1449         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
1450         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
1451
1452         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
1453         profile.c, sdbout.c, tradcif.y, tree.c:
1454         Include defaults.h if not already included.
1455         Don't define the above macros.
1456
1457         * Makefile.in: Update dependencies.
1458
1459 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
1460
1461         * c-common.h (add_stmt): Change prototype.
1462         (RECHAIN_STMTS): New macro.
1463         (CASE_LABEL_DECL): Likewise.
1464         (genrtl_case_label): Change prototype.
1465         (c_expand_start_case): Remove prototype.
1466         (build_case_label): Change prototype.
1467         (decl_constant_value): Declare.
1468         * c-common.c (check_case_value): Handle C++'s extensions to C
1469         semantics.
1470         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
1471         field.
1472         * c-parse.in (stmt): Adjust handling of return statements and case
1473         laels.
1474         * c-semantics.c (add_stmt): Return the new statement.
1475         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
1476         returned expression.  Directly generate RTL, rather than calling
1477         c_expand_return.
1478         (genrtl_switch_stmt): Don't call c_expand_start_case.
1479         (build_case_label): Take the LABEL_DECL as input, too.
1480         (genrtl_case_label): Just call add_case_node.
1481         (expand_stmt): Adjust calls to genrtl_return_stmt and
1482         genrtl_case_label.
1483         * c-tree.h (c_expand_start_case): Declare.
1484         * c-typeck.c (decl_constant_value): Give it external linkage.
1485         (c_expand_return): Don't call expand_return or expand_null_return;
1486         use genrtl_return_stmt instead.
1487         * stmt.c (struct nesting): Remove num_ranges field.
1488         (add_case_node): Give it external linkage.
1489         (expand_start_case): Don't set num_ranges.
1490         (expand_start_case_dummy): Don't clear it.
1491         (pushcase): Rely on add_case_node to handle `default' labels.
1492         (add_case_node): Handle `default' labels.
1493         * tree.c (tree_int_cst_compare): New function.
1494         * tree.h (tree_int_cst_compare): Declare.
1495         (add_case_node): Likewise.
1496
1497 2000-09-10  Richard Henderson  <rth@cygnus.com>
1498
1499         * c-parse.in: Revert last change.
1500         (init_reswords): Do not enter disabled keywords into the ridpointers
1501         table, modulo objc weirdness.
1502         (_yylex): Return the canonical spelling for a keyword.
1503
1504 2000-09-10  Philip Blundell  <philb@gnu.org>
1505
1506         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
1507         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
1508
1509 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
1510
1511         * alias.c (find_base_term): Handle ADDRESSOF.
1512         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
1513
1514 2000-09-10  Denis Chertykov  <denisc@overta.ru>
1515
1516         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
1517         outputting templates with many lines.
1518
1519 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1520
1521         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
1522         to decide whether 64-bit support must be generated.
1523
1524 2000-09-10  Richard Henderson  <rth@cygnus.com>
1525
1526         * c-parse.in (asm patterns): Fix volatile check.
1527
1528 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1529
1530         * cppmacro.c (check_trad_stringification): New function.
1531         (save_expansion): If -Wtraditional, warn about stringification of
1532         macro arguments.
1533
1534 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
1535
1536         * loop.h (struct loop_mem_info): Move from loop.c
1537         (struct loop_info): Add fields store_mems, mems, mems_idx,
1538         mems_allocated, unknown_address_altered,
1539         unknown_constant_address_altered, num_mem_sets, and
1540         first_loop_store_insn.
1541
1542         * loop.c (loop_store_mems): Replace with field in loop_info struct.
1543         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
1544         (unknown_address_altered, unknown_constant_address_altered): Likewise.
1545         (num_mem_sets): Likewise.
1546         (replace_loop_mems, replace_loop_regs): New.
1547         (struct loop_replace_args): New.
1548         (load_mems): Use replace_loop_mems.
1549         (try_copy_prop): Use replace_loop_regs.
1550         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
1551
1552 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1553
1554         * configure.in: Recognize m6811-elf and m6812-elf.
1555         * configure: Regenerate.
1556
1557 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
1558
1559         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
1560         to operand_subword.
1561
1562 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
1563
1564         * loop.c (struct movables): New.
1565         (num_movables): Move into struct movables.
1566         (the_movables): Change type to struct movables.
1567         (ignore_some_movables): Change struct movable arg to struct movables.
1568         (force_movables, combine_movables, regs_match_p): Likewise.
1569         (rtx_equal_for_loop_p, move_movables): Likewise.
1570         (scan_loop): Change movables to be of type struct movables.
1571         Replace last_movable with field in movables structure.
1572
1573 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
1574
1575         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
1576         (init_pragma): Avoid warning if pfile happens to be unused.
1577         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
1578         define init_pragma to nothing.  Always prototype
1579         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
1580
1581         * c-lex.c (process_directive): Always call dispatch_pragma.
1582         Initialize entering_c_header to 0.
1583
1584 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1585
1586         * config/m68hc11/m68hc11.md: New file, machine description for
1587         68HC11 & 68HC12.
1588         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
1589         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
1590         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
1591         * config/m68hc11/m68hc11-protos.h: New file.
1592         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
1593         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
1594         * config/m68hc11/xm-m68hc11.h: New file, target defs.
1595         * config/m68hc11/larith.asm: New file, libgcc routines.
1596
1597 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1598
1599         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
1600         (FPBIT_FUNCS): Add _usi_to_sf.
1601         * config/fp-bit.c (usi_to_float): New function.
1602         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
1603         (usi_to_float): Add appropriate #define.
1604
1605 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
1606
1607         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
1608         new functions.
1609         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
1610         * i386.md (attr "type"): Add sse and mmx types.
1611         (attr "memory"): Handle them without a crash.
1612         (movsi_1, movdi_2): Allow MMX regs.
1613         (movdi splits): Don't split moves involving MMX regs.
1614         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
1615         (movv4sf_internal, movv4si_internal, movv8qi_internal,
1616         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
1617         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
1618         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
1619         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
1620         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
1621         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
1622         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
1623         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
1624         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
1625         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
1626         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
1627         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
1628         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
1629         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
1630         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
1631         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
1632         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
1633         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
1634         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
1635         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
1636         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
1637         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
1638         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
1639         mmx_clrdi): New patterns.
1640
1641 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
1642
1643         * arm.c: Don't include tm.h directly.
1644
1645 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1646
1647         * recog.c (validate_replace_rtx_1): Fix confusion about equality
1648         testing; simplify subregs of constants and nested subregs.
1649
1650 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
1651
1652         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
1653
1654 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
1655
1656         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
1657         VEC_CONCAT.
1658         * rtl.texi (description of USE): Add note about possible pitfalls
1659         with this rtx.
1660         From Richard Henderson:
1661         * reload1.c (choose_reload_regs): Compute need_mode properly.
1662
1663 2000-09-07  Richard Henderson  <rth@cygnus.com>
1664
1665         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
1666         (__modsi3, __umodsi3): Likewise.
1667         (__udivsi3): Likewise.  Normalize the TFmode values.
1668
1669 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
1670
1671         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
1672         with a prototype.
1673         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
1674         warning.
1675
1676 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1677
1678         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
1679         (cmpeqdi_t): Add output pattern.
1680         (cmpeqdi_t+1): Don't split when not optimizing.
1681         Restore proper splitting operation.
1682
1683 2000-09-07  Richard Henderson  <rth@cygnus.com>
1684
1685         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
1686         do not call dispatch_pragma.
1687
1688 2000-09-07  Jim Wilson  <wilson@cygnus.com>
1689
1690         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
1691         to CLASS_CANNOT_CHANGE_MODE.
1692         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
1693         mode classes are different.
1694
1695 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
1696
1697         * cpplib.h (struct cpp_options): Add user_label_prefix member,
1698         left out of commit which removed cppulp.c.
1699
1700 2000-09-07  Richard Henderson  <rth@cygnus.com>
1701
1702         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
1703         after switch for CASE_DROPS_THROUGH.
1704
1705 2000-09-07  Richard Henderson  <rth@cygnus.com>
1706
1707         * loop.c (strength_reduce): Call check_ext_dependant_givs.
1708         Properly extend the biv initial value for the giv.
1709         (record_biv): Zero ext_dependant.
1710         (record_giv): New argument ext_val.  Update all callers.
1711         (general_induction_var): Likewise.
1712         (consec_sets_giv): Likewise.
1713         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
1714         a sign-extend, zero-extend, or truncate.
1715         (combine_givs_p): Make sure modes are compatible.
1716         (check_ext_dependant_givs): New.
1717         (extend_value_for_giv): New.
1718         * loop.h (struct induction): Add ext_dependant.
1719         * unroll.c (iteration_info): Extend the biv initial value for the giv.
1720         (find_splittable_givs): Likewise.
1721         (final_giv_value): Likewise.
1722
1723 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
1724
1725         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
1726         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
1727         definitions from cpplib.h.
1728         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
1729         already done it.
1730         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
1731         documentation for REGISTER_TARGET_PRAGMAS.
1732
1733         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
1734         default-pragma callback to implement -Wunknown-pragmas if
1735         USE_CPPLIB.
1736         * c-parse.in: Move all includes to top of file.
1737         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
1738         tm_p.h.
1739         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
1740         warning.
1741         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
1742
1743         * arm.h, arm-protos.h, arm.c,
1744           c4x.h, c4x-protos.h, c4x.c,
1745           h8300.h, h8300-protos.h, h8300.c,
1746           i370.h, i370-protos.h, i370.c,
1747           i960.h, i960-protos.h, i960.c,
1748           sh.h, sh-protos.h, sh.c,
1749           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
1750         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
1751
1752         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
1753         multiple include guard.
1754         * i370.md (untyped_call): Use GEN_CALL.
1755         (umodsi3): Remove unused variable.
1756         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
1757         * v850.c (output_move_single, output_move_double): Constify
1758         return value.
1759         (print_operand): Constify a char *.
1760         * v850.h (struct small_memory_info): Constify name member.
1761
1762 2000-09-07  Kazu Hirata  <kazu@hxi.com>
1763
1764         * config/h8300.h: Fix comment typos.
1765         * config/h8300/h8300.md: Likewise.
1766         * config/h8300/lib1funcs.asm: Likewise.
1767
1768 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
1769
1770         * Makefile.in: Remove references to cppulp.{c,o}.
1771         * cppinit.c (initialize_builtins, cpp_start_read,
1772         cpp_handle_option): Update to use cpp_options structure.
1773         * cppulp.c: Remove.
1774
1775 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
1776
1777         * c-common.c (time_char_table): Allow %#b and %#h.
1778
1779 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1780
1781         * reorg.c (find_end_label): If the basic block reorder pass moves the
1782         return insn to some other place try to locate it again and put our
1783         end_of_function_label there.
1784         * reorg.c (relax_delay_slots): Check if find_end_label created a
1785         new label that invalidates the current optimazation.
1786
1787 2000-09-07  Catherine Moore  <clm@redhat.com>
1788
1789         * unroll.c (unroll_loop): Check for unconditional jumps
1790         to loop continuation.  Delete if n_iterations is 1.
1791         (ujump_to_loop_cont): New routine.
1792
1793 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
1794
1795         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
1796         MODE_VECTOR_FLOAT.
1797         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
1798         to handle multiword modes correctly.  All callers and the declaration
1799         changed.
1800
1801 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
1802
1803         * c-common.h (prep_stmt): Declare.
1804         (lang_expand_stmt): Likewise.
1805         * c-decl.c (lang_expand_stmt): Remove.
1806         * c-semantics.c (lang_expand_stmt): Define.
1807         (prep_stmt): New function.
1808         (expand_stmt): Handle common statement types here.
1809
1810 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
1811
1812         * configure.in (sh-*-linux*): Added.
1813         * configure: Rebuilt.
1814         * config/sh/t-linux: New file.
1815         * config/sh/sh.h (USERMODE_BIT): Define.
1816         (TARGET_USERMODE): Likewise.
1817         (TARGET_SWITCHES): New switches for the bits above.
1818         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
1819         * config/sh/linux.h: New file.
1820         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
1821         underscore on linux.
1822         (L_sdivsi3, L_udivsi3): Define for linux.
1823         (L_ic_invalidate): Define.
1824         * invoke.texi (SH Options): Document -musermode.
1825
1826 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
1827
1828         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
1829         CSE unless generating PIC.
1830
1831         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
1832         the PIC register.
1833
1834 2000-09-06  H.J. Lu  (hjl@gnu.org)
1835
1836         * Makefile.in (clean_s1): Depend on stage_b.
1837         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
1838         stage2. They are used for "make compare".
1839
1840 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
1841
1842         Move statement-tree facilities from C++ to C front-end.
1843         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
1844         (void_zero_node): New macro.
1845         (struct stmt_tree_s): New type.
1846         (stmt_tree): New typedef.
1847         (struct language_function): New type.
1848         (last_tree): New macro.
1849         (last_expr_type): Likewise.
1850         (walk_tree_fn): New typedef.
1851         (current_stmt_tree): New function.
1852         (begin_stmt_tree): Likewise.
1853         (add_stmt): Likewise.
1854         (finish_stmt_tree): Likewise.
1855         (statement_code_p): Likewise.
1856         (lang_statement_code_p): New variable.
1857         (walk_stmt_tree): New function.
1858         (STMT_IS_FULL_EXPR_P): New macro.
1859         * c-common.c (lang_statement_code_p): New variable.
1860         (c_common_nodes_and_builtins): Initialize void_zero_node.
1861         (statement_code_p): New function.
1862         (walk_stmt_tree): Likewise.
1863         * c-decl.c (language_function): Rename to ...
1864         (c_language_function): ... this.  Include language_function.
1865         (push_c_function_context): Adjust accordingly.
1866         (pop_c_function_context): Likewise.
1867         (mark_c_function_context): Likewise.
1868         (current_stmt_tree): Define.
1869         * c-semantics.c (begin_stmt_tree): New function.
1870         (add_stmt): Likewise.
1871         (prune_unused_decls): Likewise.
1872         (finish_stmt_tree): Likewise.
1873
1874 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
1875
1876         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
1877
1878 2000-09-06  Kazu Hirata  <kazu@hxi.com>
1879
1880         * calls.c: Fix formatting.
1881
1882 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
1883
1884         * config/i386/i386.h (ADDRESS_COST): Fix typo.
1885
1886 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
1887
1888         Integrated preprocessor.
1889
1890         * Makefile.in: Remove all references to c-parse.gperf,
1891         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
1892         generating c-parse.c.  Update dependencies.
1893         * c-parse.gperf, c-gperf.h: Delete.
1894
1895         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
1896         yy_lim, or yy_get_token.  Don't define get_directive_line if
1897         USE_CPPLIB.
1898         * c-common.h: Add multiple include guard.  Define RID values
1899         for every keyword in C, C++, and Objective C.  Put all the
1900         modifiers first.
1901         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
1902         * c-decl.c (c_decode_option): Handle -lang-objc here.
1903         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
1904         (grokdeclarator): Adjust for new RID scheme.
1905         (extract_interface_info): New stub.
1906         * c-lang.c: Don't declare yy_cur or parse_options.
1907         (lang_init_options): Call cpp_init.  Don't call
1908         cpp_options_init.
1909         (lang_init): Don't call check_newline if USE_CPPLIB.
1910
1911         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
1912         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
1913         rendered unnecessary by new architecture.  Move routines not
1914         shared with C++ to c-parse.in.  Maintain a local idea of the
1915         line number.    Handle C++ as well as C.
1916         [USE_CPPLIB]: Declare and register callbacks for #ident and
1917         for entering/leaving files.
1918         (init_c_lex, c_lex): Are now the entry points to this file.
1919         (check_newline): Break out directive handling to
1920         process_directive.
1921         (read_ucs, is_extended_char, utf8_extend_token): Moved here
1922         from C++ front end.
1923         (readescape, parse_float): Overhaul.
1924         (lex_number, lex_string, lex_charconst): Break out of c_lex
1925         (n'ee yylex).
1926         (get_fileinfo, update_header_times, dump_one_header,
1927         dump_time_statistics): New and/or moved here from C++.
1928         Support per-file data needed by C++ and per-header timing
1929         statistics (C++ only, at the moment).
1930         * c-lex.h: Update prototypes.  Add multiple include guard.
1931         * c-tree.h (struct lang_identifier): Add rid_code field.
1932         (C_IS_RESERVED_WORD, C_RID_CODE): New.
1933
1934         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
1935         reinit_parse_for_function and/or position_after_white_space.
1936         (save_filename, save_lineno): Look ahead before saving.
1937         (label -> identifier ':'): Save file and line before shifting ':'.
1938         (reservedwords): No need to call get_identifier.
1939         (init_parse, finish_parse, yyerror, yylex, yyprint,
1940         make_pointer_declarator): Are now here for C/ObjC.
1941         (rid_to_yy): Conversion table from RID constants to Yacc codes.
1942
1943         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
1944         #pragma registry.  Provide dummy implementation of that
1945         interface if !USE_CPPLIB.
1946         * c-pragma.h: Update to match.
1947
1948         * flags.h: Add multiple include guard.
1949         (flag_detailed_statistics): Moved here from C++.
1950         * toplev.c: Define flag_detailed_statistics.
1951
1952         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
1953         #if USE_CPPLIB.
1954         * timevar.def (TV_CPP, TV_LEX): New.
1955         * timevar.h: Add multiple include guard.
1956
1957         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
1958         #if USE_CPPLIB.
1959         * objc/objc-act.c: Don't mention yy_cur or parse_options.
1960         Initialize cpplib properly.  Force lineno to 0 after first
1961         call to check_newline.  Don't handle -lang-objc here.
1962         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
1963
1964 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
1965
1966         * rs6000.md: Correct function unit definitions for cr_logical and
1967         mtjmpr.
1968         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
1969         and use portable method for >=0 and floating point >=.  Remove
1970         associated matchers.
1971
1972 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
1973
1974         * extend.texi: Mark named return value extension as deprecated.
1975
1976 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
1977
1978         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
1979         the result.
1980
1981 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
1982
1983         * toplev.c (display_help): Fix thinko in documentation.
1984
1985         * diagnostic.h (output_buffer::indent_skip): New fields.
1986         (output_indentation): New macro.
1987
1988         * diagnostic.c (output_indent): New function.
1989         (output_set_prefix, clear_diagnostic_info): Use.
1990         (output_emit_prefix): Predict future indentation.
1991
1992 2000-09-06  DJ Delorie  <dj@redhat.com>
1993
1994         * Makefile.in (stage_*): add more dependencies to ensure parallel
1995         builds build correctly
1996
1997 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
1998
1999         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
2000         not bootstrap-lean_f.
2001
2002 2000-09-06  Andreas Schwab  <schwab@suse.de>
2003
2004         * mklibgcc.in: Emit rule for libgcc-stage-start.
2005         * Makefile.in (stage1-start, stage2-start, stage3-start,
2006         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
2007
2008 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
2009
2010         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
2011         (update_equiv_regs): Likewise, except for the mn10200 kludge.
2012         (combine_regs): Likewise.
2013
2014         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
2015         * cse.c: Include "basic-block.h".
2016         (struct table_elt): New field REGCOST.
2017         (CHEAP_REG): Delete macro.
2018         (COST): Return 0 for REGs.
2019         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
2020         (notreg_cost): Return 0 for appropriate SUBREGs.
2021         (COSTS_N_INSNS): Return N * 2.
2022         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
2023         SUBREGs.
2024         (CHEAPER): Use new function preferrable.
2025         (insert): Initialize REGCOST member.
2026         (find_best_addr): Use approx_reg_cost for estimation of register
2027         usage.
2028         (cse_insn): Likewise.
2029         * loop.c (iv_add_mult_cost): New function.
2030         (add_cost, shift_cost, mult_cost): Delete variables.
2031         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
2032         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
2033         Make code that detects autoinc opportunities slightly less optimistic.
2034         (simplify_giv_expr): If expression contains other reg that is also a
2035         giv, only increment benefit if this is the only use of that reg.
2036         (consec_sets_giv): Take that change into account.
2037         (combine_givs): Slightly more verbose output.
2038
2039         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
2040         not the cost of an equivalent shift.
2041         * sh-protos.h (addsubcosts): Declare.
2042         * sh.c (addsubcosts): New function.
2043         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
2044         (RTX_COSTS): Tweak.  Use addsubcosts.
2045         (ADDRESS_COST): Return higher cost for reg+reg addressing.
2046
2047 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
2048
2049         * config/rs6000/rs6000.c (validate_condition_mode): New function.
2050         (branch_comparison_operator): Call validate_condition_mode to
2051         abort rather than returning 0.
2052         (branch_positive_comparison_operator): New function.
2053         (scc_comparison_operator): Call validate_condition_mode to abort
2054         rather than returning 0.
2055         (ccr_bit): Call validate_condition_mode.  Update for
2056         new branch scheme.
2057         (print_operand): Delete %C modifier.  Update %E case
2058         to use EQ bit not SO bit.
2059         (rs6000_reverse_condition): New function.
2060         (rs6000_generate_compare): New function.
2061         (rs6000_emit_sCOND): New function.
2062         (rs6000_emit_cbranch): New function.
2063         (output_cbranch): The length of a long branch insn is
2064         now only 8 bytes.  Add validate_condition_mode.  Use
2065         rs6000_reverse_condition.  Remove cror generation.
2066
2067         * config/rs6000/rs6000.h: Update comments.
2068         (PREDICATE_CODES): Add new predicate.  Update codes used
2069         by branch_comparison_operator and scc_comparison_operator.
2070         * config/rs6000/rs6000-protos.h: Add prototypes for
2071         new external functions.
2072         * config/rs6000/rs6000.md: Add new scheduling parameters
2073         for cr_logical instructions.  Change length of branch
2074         instructions.
2075         (bCOND patterns): Call rs6000_emit_cbranch.
2076         (sCOND patterns): Call rs6000_emit_sCOND.
2077         (branch patterns): Change lengths to 4.
2078         (cr logical patterns): New.
2079
2080 2000-09-06  Richard Henderson  <rth@cygnus.com>
2081
2082         * config/i386/i386.md (call_pop): Fix test for setting
2083         current_function_uses_pic_offset_table.
2084         (call, call_value_pop, call_value): Likewise.
2085
2086 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2087
2088         * timevar.c (timevar_add): Delete.
2089         (timevar_get): Also count time since the selected timer was
2090         last updated.  Do not examine the timevar stack if the
2091         selected timer is standalone.
2092
2093 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2094
2095         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2096
2097 2000-09-05  Jason Merrill  <jason@redhat.com>
2098
2099         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
2100         for 'extern' arrays.
2101
2102 2000-09-05  Richard Henderson  <rth@cygnus.com>
2103
2104         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
2105         Eliminate final copy from non-trapping case.
2106         (__divdf3, __divsf3): Likewise.
2107
2108 2000-09-05  Richard Henderson  <rth@cygnus.com>
2109
2110         * config/ia64/ia64.md (mulhi3): Fix typo last change.
2111         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
2112
2113 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
2114
2115         * Makefile.in: Restructure bootstrap stages to allow clean
2116         restart after failure.
2117
2118 2000-09-05  Richard Henderson  <rth@cygnus.com>
2119
2120         * config/ia64.md (movsi and movdi patterns): Allow moves from
2121         8-bit constants to AR registers.
2122
2123 2000-09-05  Richard Henderson  <rth@cygnus.com>
2124
2125         * config/ia64/ia64.md (mulhi3): New.
2126
2127 2000-09-05  Richard Henderson  <rth@cygnus.com>
2128
2129         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
2130         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
2131         Optimization Guide, minimum latency alternative.
2132         (__moddi3, __udivdi3, __umoddi3): Likewise.
2133         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
2134
2135 2000-09-05  Bruce Korb  <bkorb@gnu.org>
2136
2137         * fixinc/fixincl.c (load_file): always read header files
2138         with sizes that are a multiple of the page size.
2139         & use libiberty's getpagesize for determining that.
2140
2141 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
2142
2143         * gcse.c (hash_string_1): Add prototype.
2144         * cse.c (canon_hash_string): Likewise.
2145
2146 2000-09-04  Craig Newell  <CraigN@ieee.org>
2147
2148         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
2149
2150 2000-09-04  Andreas Schwab  <schwab@suse.de>
2151
2152         * Makefile.in (STAGESTUFF): Remove libgcc.
2153         (stage1-start, stage2-start, stage3-start): Copy the contents of
2154         the libgcc directory explicitly.
2155         (mostlyclean): Clean libgcc.
2156
2157 2000-09-04  Andrew Haley  <aph@redhat.com>
2158
2159         * dwarf2out.c: (stack_adjust_offset): New prototype.
2160
2161 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
2162
2163         * combine.c (make_extraction): Fix rtx_cost comparison to
2164         match the comment.
2165
2166 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
2167
2168         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
2169         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
2170         Add '*' to insn pattern name.
2171
2172 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
2173
2174         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
2175         use posn - 1 to index into tokens array.
2176         (maybe_paste_with_next): Adjust caller.
2177
2178 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
2179
2180         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
2181
2182         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
2183         (REGNO_REG_CLASS): Use symbolic register
2184         names.
2185
2186 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
2187
2188         * arm.c (final_prescan_insn): If the form of a jump insn isn't
2189         recognized, don't try to conditionally execute it.
2190
2191 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
2192
2193         * config/avr/avr.md ("*tablejump_lib"): New pattern.
2194         (call_value_insn): Right length claculation.
2195         (call_insn): Likewise.
2196
2197 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
2198
2199         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
2200         gas_output_limited_string, gas_output_ascii, output_movqi,
2201         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
2202         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
2203         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
2204         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
2205         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
2206         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
2207         Add "const" as needed to remove warnings.
2208
2209         * config/avr/avr.c (avr_override_options, avr_init_once,
2210         function_prologue, function_epilogue, frame_pointer_required_p,
2211         class_likely_spilled_p, order_regs_for_local_alloc,
2212         avr_address_cost, avr_ret_register): Use K&R style arguments.
2213         (initial_elimination_offset, gas_output_limited_string):
2214         Remove ATTRIBUTE_UNUSED from the used arguments.
2215         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
2216         Use local variables src, dest, base to access operands[].
2217         Rename reg_dest to reg_src if that's what it is.
2218         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
2219         constants to LD_REGS if reg_was_0.
2220         (output_reload_insisf): Change arg 3 to insn length and set it.
2221         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
2222         access to 16-bit I/O register pairs.
2223         (avr_address_cost): Lower cost for the above case.
2224         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
2225         may be clobbered, also for LD_REGS.
2226         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
2227         with a CONST_INT.
2228
2229         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
2230
2231         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
2232         macro to test_hard_reg_class function.
2233         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
2234         for loading immediate constants to LD_REGS.
2235         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
2236
2237
2238 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
2239
2240         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
2241         * config/avr/libgcc.S: Lost part of the previous patch.
2242
2243 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2244
2245         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
2246         object before calling pthread_mutex_init.
2247
2248 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
2249
2250         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
2251         config/sh/crtn.asm: New files.
2252         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
2253         (crt1.o, crti.o, crtn.o): New targets.
2254         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
2255         sh/t-elf.
2256         * configure: Rebuilt.
2257         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
2258         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
2259         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
2260         Undefine for config/elfos.h to redefine.
2261         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
2262
2263 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2264
2265         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
2266         legitimize_pic_address, output_pic_addr_const): Declare.
2267         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
2268         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
2269         (TARGET_SWITCHES): New switch -mprefergot.
2270         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
2271         (PIC_OFFSET_TABLE_REGNUM): Define.
2272         (GOT_SYMBOL_TABLE): Likewise.
2273         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
2274         (ENCODE_SECTION_INFO): Define.
2275         (FINALIZE_PIC): New macros.
2276         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
2277         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
2278         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
2279         (prepare_move_operands): Call emit_pic_move or
2280         emit_pic_const_move if appropriate.
2281         (output_far_jump): For PIC, use braf and output long offset.
2282         (machine_dependent_reorg):
2283         (sh_expand_prologue): Save and initialize the PIC register.
2284         (sh_expand_epilogue): Restore it.
2285         (initial_elimination_offset): Account for it.
2286         (nonpic_symbol_mentioned_p): New function.
2287         (legitimize_pic_address): Likewise.
2288         (output_pic_addr_const): Likewise.
2289         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
2290         (call, call_value): Use them.
2291         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
2292         symPLT_label2reg): New expands.
2293         * invoke.texi (SH Options): Document -mprefergot.
2294
2295 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
2296
2297         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
2298         * gcse.c (hash_string_1): New function.
2299         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
2300         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
2301         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
2302         (canon_hash_string): New function.
2303         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
2304         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
2305         (fold_rtx): Use ASM_OPERANDS accessor macros.
2306         * emit-rtl.c (copy_insn_1): Likewise.
2307         * integrate.c (copy_rtx_and_substitute): Likewise.
2308         * stmt.c (expand_asm_operands): Likewise.  Give an
2309         ASM_OPERANDS rtx the mode of the output reg being set from it.
2310
2311 2000-09-01  Fred Fish  <fnf@be.com>
2312
2313         * fix-header.c (write_rbrac): Add putc and getc to list of
2314         functions to protect against prior definition as a macro.
2315
2316 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
2317
2318         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
2319         (c_size_type_node): Define.
2320         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
2321         * c-common.c (enum format_lengths, enum format_std_version,
2322         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
2323         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
2324         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
2325         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
2326         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
2327         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
2328         format_types): Define.
2329         (format_char_info, print_char_table, scan_char_table,
2330         time_char_table): Rearrange for new organization of information
2331         about format length modifiers and standard versions.
2332         (T_ST): Redefine to use c_size_type_node.
2333         (check_format_info): Obtain information about length modifiers and
2334         standard versions from tables.  Adjust warning message wordings.
2335         Use the name from the user's program for `ll' and `hh' length
2336         modifiers in warning messages.  Use more informative names for
2337         wanted types where available (for wchar_t, wint_t, size_t, signed
2338         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
2339
2340 2000-09-01  Jim Wilson  <wilson@cygnus.com>
2341
2342         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
2343         * combine.c (distribute_notes): Handle REG_NORETURN.
2344         * rtl.c (reg_note_name): Add REG_NORETURN.
2345         * rtl.h (enum reg_note): Likewise.
2346
2347         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
2348         ia64_file_start.
2349         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
2350         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
2351         (emit_predicate_relation_info): Handle conditional calls with
2352         REG_NORETURN.
2353         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
2354         instead of ia64_file_start.
2355         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
2356         * config/ia64/ia64.md (safe_across_calls_all,
2357         save_across_calls_normal): New patterns.
2358
2359         * loop.c (check_final_value): Check for biv use before checking for
2360         giv use.  Check for both biv and giv uses.  Always set last_giv_use
2361         if there is a giv use.
2362
2363 2000-09-01  Richard Henderson  <rth@cygnus.com>
2364
2365         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
2366         (madddi3): Likewise.
2367         (maddsi3): New.
2368
2369 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2370
2371         * expr.c (clear_storage): Don't use emit_move_insn unless
2372         either BLKmode or proper size.
2373         (store_constructor): Don't call clear_storage if REG of wrong size.
2374
2375         * flow.c (init_propagate_block_info): Don't mark frame dead at end
2376         of function if returns wiht stack pointer depressed.
2377
2378 2000-09-01  Andrew Haley  <aph@redhat.com>
2379
2380         * dwarf2out.c (stack_adjust_offset): New function.
2381         (dwarf2out_stack_adjust): Break out stack adjust logic into
2382         new stack_adjust_offset function.  Look inside parallels and
2383         sequences for stack adjustments.
2384
2385 2000-08-31  Jeff Law <law@cygnus.com>
2386
2387         * arm.md: Use no_new_pseudos to determine when it is safe
2388         to create new pseudo registers.
2389
2390         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
2391         when we can safely allocate new registers.
2392
2393 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
2394
2395         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
2396         so that CONCATs are not generated for ASMs.
2397         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
2398         not generating_concat_p.
2399         * function.c (pop_function_context_from): Reset
2400         generating_concat_p.
2401         (prepare_function_start): Likewise.
2402         * rtl.c (generating_concat_p): Define.
2403         * rtl.h (generating_concat_p): Declare.
2404         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
2405
2406 2000-08-22  Philipp Thomas  <pthomas@suse.de>
2407             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
2408
2409         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
2410         for translation.
2411
2412 2000-08-30  Greg McGary  <greg@mcgary.org>
2413
2414         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
2415         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
2416         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
2417
2418 2000-08-30  Greg McGary  <greg@mcgary.org>
2419
2420         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
2421         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
2422         (TREE_INT_CST): New macro.
2423         * varasm.c (const_hash, compare_constant_1, record_constant_1):
2424         Use new macro TREE_INT_CST.
2425
2426 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
2427
2428         * contrib.texi: Add self.
2429
2430 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
2431
2432         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
2433         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
2434         and labels.
2435
2436 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2437
2438         * fixinc/gnu-regex.c: Don't define `const'.
2439
2440 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2441
2442         * expr.c (store_constructor): Allow variable bounds of array type.
2443         (expand_expr): Don't blow up if type is ERROR_MARK.
2444         * varasm.c (output_constructor): Don't access lower bound of array
2445         type unless need it if index is supplied (so it can be a variable
2446         if no index is supplied).
2447         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
2448         Other minor cleanups.
2449
2450 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2451
2452         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
2453         for compilations in stage 1 and subsequent stages, respectively.
2454         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
2455         * configure: Rebuilt.
2456         * x-vax, x-vax-gcc: Deleted.
2457
2458 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
2459
2460         * c-common.c (declare_function_name): Use func_id_node,
2461         function_id_node, and pretty_function_id_node.  Do not make
2462         __func__ visible at file scope.
2463         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
2464         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
2465         (function_id_node, pretty_function_id_node, func_id_node): New
2466         macros.
2467         * c-decl.c (init_decl_processing): Initialize function_id_node,
2468         pretty_function_id_node, and func_id_node.
2469         (c_make_fname_decl): Correct comment.
2470
2471         * tree.h (struct tree_identifier): Constify pointer member.
2472
2473         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
2474         * c-pragma.h (struct weak_syms): Constify name and value members.
2475         (add_weak): Constify arguments.
2476
2477         * calls.c (special_function_p): Constify a char *.
2478         (expand_call): Remove variable which is initialized and then
2479         never used.
2480         * dependence.c (struct def_use, struct induction, struct subscript):
2481         Constify 'variable' member.
2482         (get_low_bound, have_induction_variable): Constify char * argument.
2483         (find_induction_variable): Add braces to avoid dangling else.
2484         (classify_dependence): Constify char * arrays.
2485         * profile.c (output_func_start_profiler): Constify a char *.
2486         * stor-layout.c (finalize_record_size): Constify a char *.
2487         * tree.c (is_attribute_p): Constify a char *.
2488         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
2489
2490         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
2491         for comprehensibility.  Do not call get_identifier if we did
2492         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
2493         create temporary string constants, not ggc_alloc_string.  No
2494         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
2495         char * to hold IDENTIFIER_POINTERs.
2496
2497 2000-08-29  Richard Henderson  <rth@cygnus.com>
2498
2499         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
2500         for the inputs.
2501
2502 2000-08-29  Richard Henderson  <rth@cygnus.com>
2503
2504         * reload.c (push_secondary_reload): Allow class == reload_class
2505         if we're using a reload_in/out pattern.
2506
2507         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
2508         the half that does not conflict with the reload register.
2509         (reload_outti): Likewise.
2510
2511 2000-08-29  Kazu Hirata  <kazu@hxi.com>
2512
2513         * reload.c: Fix formatting.
2514
2515         * stmt.c: Fix formatting.
2516
2517         * gcc.c: Fix formatting.
2518
2519 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
2520
2521         * flags.h (time_report, mem_report): New global flags.
2522         * toplev.c: Define time_report and mem_report.
2523         (f_options): Add -ftime-report and -fmem-report.
2524         (compile_file): Turn on time_report if quiet_flag is off.
2525         Call ggc_print_statistics at very end if mem_report is on.
2526         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
2527
2528         * ggc-common.c (ggc_print_statistics): Rename to
2529         ggc_print_common_statistics; all callers changed.  Scale
2530         quantities above 10K to kilobytes and above 10M to megabytes.
2531         * ggc-page.c (ggc_page_print_statistics): Rename to
2532         ggc_print_statistics.  Report memory consumed by internal data
2533         structures for each allocation bucket.  Scale quantities above
2534         10K to kilobytes and above 10M to megabytes.
2535         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
2536         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
2537         Define tally_leaves always.
2538         (ggc_print_statistics): New function.
2539         * ggc.h: Adjust for renamed functions.
2540
2541 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
2542
2543         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
2544         output_movsisf instead of which_alternative.
2545
2546         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
2547
2548 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
2549
2550         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
2551         (avr_progmem_p): New prototype.
2552         (output_movsisf): Prototype declaration changed.
2553         (output_movqi): New prototype.
2554         (output_movhi): New prototype.
2555         (call_insn_operand): Likewise.
2556         (final_prescan_insn): Likewise.
2557         (avr_simplify_comparision_p): Likewise.
2558         (avr_normalize_condition): Likewise.
2559         (compare_eq_p): Likewise.
2560         (out_shift_with_cnt): Likewise.
2561         (const_int_pow2_p): Likewise.
2562         (output_reload_inhi): Prototype declaration changed.
2563
2564         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
2565         (ldi_reg_rtx): New. rtx for r31.
2566         (avr_init_stack): Initialize as "__stack".
2567         (function_prologue): Use it.
2568         Replace all TARGET_ENHANCED with AVR_ENHANCED.
2569         (avr_mcu_name): Initialize as "avr2".
2570         (avr_enhanced_p, avr_mega_p): New variables.
2571         (mcu_types, avr_override_options): Handle all known MCU types.
2572         Also handle avr1 (only preprocess, assemble and link).
2573         (print_operand): Using of `%K' in output template removed.
2574         (out_movqi_r_mr): Optimized.
2575         (out_movhi_r_mr): Likewise.
2576         (output_movqi): New function.
2577         (output_movhi): Likewise.
2578         (out_movsi_r_mr): Optimized.
2579         (output_movsisf): Compute insn length for `adjust_insn_length'
2580         (out_movqi_mr_r): Optimized.
2581         (out_movhi_mr_r): Optimized.
2582         (adjust_insn_length): Use output_movsisf, output_movqi,
2583         output_movhi for insn length adjusting.
2584         (reg_unused_after): Use dead_or_set_p.
2585         (preferred_reload_class): Now havn't any restriction.
2586         (reg_was_0): New function.
2587         (io_address_p): Likewise.
2588         (const_int_pow2_p): Likewise.
2589         (output_reload_inhi): Likewise.
2590         (output_reload_insisf): Likewise.
2591
2592         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
2593         (LIB_SPEC): Use -lc for all supported devices.
2594         (LIBGCC_SPEC): Use -lgcc for all supported devices.
2595         (AVR_MEGA): Define as avr_mega_p.
2596         (AVR_ENHANCED): New, define as avr_enhanced_p.
2597         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
2598         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
2599         (CRT_BINUTILS_SPECS): Handle all known MCU types.
2600         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
2601         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
2602         (ASM_SPEC): Pass -mmcu=... to the assembler.
2603         Change all -DAVR_* to -D__AVR_*__.
2604         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
2605         Rename library functions to start with two underscores.
2606         (ASM_OUTPUT_COMMON): Outputs `.comm VAR,VAR-SIZE,1' to avoid
2607         alignment.
2608         (ASM_WEAKEN_LABEL): Declared for __attribute__((weak)).
2609         (SUPPORTS_WEAK): Likewise.
2610         (LDI_REG_REGNO): New. Register r31 will be used as temporary
2611         register for loading constants to r0-r14.
2612
2613         * config/avr/avr.md: Replace all TARGET_ENHANCED with
2614         AVR_ENHANCED.
2615         (*mov_r_sp): Removed. Handled by output_movhi.
2616         (*mov_sp_r): Likewise.
2617         (*mov_sp_r_no_interrupts): Likewise
2618         (*mov_sp_r_tiny): Likewise.
2619         (*movqi): Use output_movqi.
2620         (*reload_inqi): New.
2621         (*movhi): Use output_movhi.
2622         (*reload_inhi): New.
2623         (*negsi2): Optimized.
2624         (*negsf2): Likewise.
2625         Added peepholes (define_peephole2) for loading constants to r0-r14
2626         and for using `cpse' command.
2627
2628         * config/avr/libgcc.S: Rename library functions to start with two
2629         underscores.
2630         Add support for enhanced core.
2631         (_moqhi3): Fix typo, now _modqi3.
2632         (__divsi_raw): Use __zero_reg__ as loop counter, smaller by 1 word.
2633         (__prologue_saves__): Remove test for stack adjust by 0.
2634         (__tablejump__): New.
2635
2636         * config/avr/t-avr: Build libgcc2 with -mcall-prologues.
2637         Add multilib support.
2638
2639 Tue Aug 29 15:17:54 EDT 2000  John Wehle  (john@feith.com)
2640
2641         * loop.c (prescan_loop): Don't check unknown_address_altered
2642         when deciding if insert_loop_mem is safe.  Add BLKmode MEMs
2643         to loop_store_mems as necessary.
2644         (loop_invariant_p): Don't check unknown_address_altered
2645         or unknown_constant_address_altered.
2646
2647 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2648
2649         * vax.md (sltu, sgeu): Delete sltu and sgeu insn patterns.
2650
2651 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
2652
2653         * cpperror.c (print_file_and_line): If line is (unsigned int)-1,
2654         print just the filename.
2655         * cpplex.c (_cpp_run_directive): Add additional argument, the
2656         name to give the synthetic buffer.  This defaults to
2657         translated "<command line>".
2658         * cpplib.c (cpp_define, cpp_undef, cpp_assert, cpp_unassert):
2659         Adjust to match.
2660         (_cpp_define_builtin): New function.
2661         * cppinit.c (initialize_builtins): Use _cpp_define_builtin.
2662         * cpphash.h: Update prototypes.
2663
2664         * tradcpp.c (main): Process -D and -U simultaneously, in the
2665         order they appeared on the command line.
2666
2667 2000-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2668
2669         * c-decl.c (define_label): Call warning_with_file_and_line and
2670         error_with_file_and_line instead of plain warning or error.
2671
2672         * c-parse.in (label): Use save_filename/save_lineno to ensure
2673         correct values for calls to define_label.
2674
2675 2000-08-29  Mark Mitchell  <mark@codesourcery.com>
2676
2677         * calls.c (expand_call): Don't create a VAR_DECL just to throw it
2678         away.
2679         * expr.c (expand_expr, case TARGET_EXPR): Don't call
2680         mark_addressable.
2681         * tree.h (get_file_function_name): Remove two duplicate
2682         declarations.
2683
2684 2000-08-28  Kazu Hirata  <kazu@hxi.com>
2685
2686         * tree.c: Fix formatting.
2687
2688         * xcoffout.c: Fix formatting.
2689
2690 2000-08-28  Jason Merrill  <jason@redhat.com>
2691
2692         * dwarf2out.c (attr_checksum): Also ignore DW_AT_producer.
2693
2694 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
2695
2696         * dwarf2out.c (dwarf2out_finish): Don't bother calling
2697         break_out_includes if it won't do anything.
2698
2699 2000-08-28  Richard Henderson  <rth@cygnus.com>
2700
2701         * reload.c (push_secondary_reload): Revert 2000-08-16 change.
2702         (find_reloads): Likewise.
2703         * config/alpha/alpha.md (reload_inqi): Revert 2000-08-11 change.
2704         (reload_inhi): Likewise.
2705
2706 2000-08-28  Richard Henderson  <rth@cygnus.com>
2707
2708         * config/i386/i386.c: Don't error on EXTRA_CONSTRAINT defined.
2709         (call_insn_operand): Don't expect a surrounding mem.
2710         (constant_call_address_operand): Likewise.
2711         * config/i386/i386.h (PREDICATE_CODES): Update.
2712         * config/i386/i386.md (call patterns): Move the match_operand
2713         for the call destination inside the mem.
2714
2715 2000-08-28  Richard Henderson  <rth@cygnus.com>
2716
2717         * local-alloc.c (requires_inout): Don't use reserved range for
2718         EXTRA_CONSTRAINTS; use anything not matched by REG_CLASS_FROM_LETTER.
2719         * recog.c (asm_operand_ok): Likewise.
2720         (preprocess_constraints, constrain_operands): Likewise.
2721         * regclass.c (record_reg_classes): Likewise.
2722         * reload.c (find_reloads): Likewise.
2723         * reload1.c (maybe_fix_stack_asms): Likewise.
2724         (reload_cse_simplify_operands): Likewise.
2725         * stmt.c (expand_asm_operands): Likewise.
2726
2727         * md.texi: Update constraints documentation.
2728         * tm.texi (EXTRA_CONSTRAINT): Update.
2729
2730 2000-08-28  Daniel Berlin  <dberlin@redhat.com>
2731
2732         * dwarf2out.c (DIE_LABEL_PREFIX): Remove leading "__".
2733         (print_die): If we don't know the offset of the
2734         target die, try the symbol.  Add a trailing newline.
2735         (reverse_all_dies): New fn.
2736         (dwarf2out_finish): Call it.
2737         (break_out_includes): Reorganize for clarity.
2738         (add_sibling_attributes): Don't call reverse_die_lists.
2739         (output_comp_unit): Rename from output_comdat_comp_unit.  Use for
2740         primary CU, too.
2741         * flags.h: Add flag_eliminate_dwarf2_dups.
2742         * toplev.c (f_options): Support -feliminate-dwarf2-dups.
2743
2744 2000-08-28  Jason Merrill  <jason@redhat.com>
2745
2746         * dwarf2.h (DW_TAG_GNU_BINCL, DW_TAG_GNU_EINCL): New tags.
2747         * dwarf2out.c: #include "md5.h".
2748         (DIE_LABEL_PREFIX): New macro.
2749         (dw_val_struct): Add 'external' flag to val_die_ref.
2750         (add_AT_die_ref, AT_ref): Adjust.
2751         (AT_ref_external, set_AT_ref_external): New fns.
2752         (build_abbrev_table): Call set_AT_ref_external.
2753         (value_format): Call AT_ref_external.
2754         (die_struct): Add die_symbol field.
2755         (new_die): Clear it.
2756         (dwarf_tag_name): Handle BINCL/EINCL.
2757         (dwarf2out_start_source_file): Add BINCL DIE.
2758         (dwarf2out_end_source_file): Add EINCL DIE.
2759         (push_new_compile_unit, pop_compile_unit, clear_die_sizes): New fns.
2760         (loc_checksum, attr_checksum, die_checksum): New fns.
2761         (is_type_die, is_comdat_die, is_symbol_die): New fns.
2762         (compute_section_prefix, assign_symbol_names): New fns.
2763         (gen_internal_sym, output_die_symbol, output_symbolic_ref): New fns.
2764         (output_die): Call output_die_symbol and AT_ref_external.
2765         (output_comdat_comp_unit): New fn, split out from...
2766         (dwarf2out_finish): ...here.  Also call add_sibling_attributes for
2767         secondary CUs.
2768         (output_pubnames, output_aranges): Abort if we see entries from
2769         secondary CUs.
2770         * toplev.h: Declare file_name_nondirectory.
2771         * toplev.c (file_name_nondirectory): New fn, moved from C++ frontend.
2772         (rest_of_type_compilation): Call dwarf2out_decl if at toplevel.
2773         (debug_start_source_file): Call dwarf2out_start_source_file
2774         regardless of debug verbosity.
2775         (debug_end_source_file): Similarly.
2776         * tree.h: Declare clean_symbol_name.
2777         * tree.c (clean_symbol_name): Split out from...
2778         (get_file_function_name_long): ...here.
2779
2780         * dwarf2out.c (new_loc_descr): Use calloc.
2781         (splice_child_die): Remove the die from the right parent.
2782         (gen_struct_or_union_die): Don't add AT_name to a specification DIE.
2783
2784 Mon Aug 28 19:02:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2785
2786         * toplev.c (decode_g_option): Don't give warning for unknown -g
2787         option; return 0 instead.
2788         (main): If -g option is not recognized by front end or
2789         language-independent code, give warning.
2790
2791 2000-08-28  Greg McGary  <greg@mcgary.org>
2792
2793         * config/i386/i386-protos.h (ix86_expand_compare): Add extern decl.
2794         * config/i386/i386.c (ix86_expand_compare): Remove `static'.
2795         * config/i386/i386.md (trap, conditional_trap): New insn & expand.
2796
2797 2000-08-27  Greg McGary  <greg@mcgary.org>
2798
2799         * cpplex.c (parse_string): Don't look for backslash
2800         before first char in `namebuf'.
2801         * loop.c (strength_reduce): Skip NOTEs.
2802
2803 2000-08-27  Jason Merrill  <jason@redhat.com>
2804
2805         * c-decl.c (duplicate_decls): Don't set TREE_STATIC or clear
2806         DECL_EXTERNAL on a local extern.  Don't set DECL_IGNORED_P or
2807         TREE_ASM_WRITTEN, either.
2808         (finish_decl): Adjust.
2809
2810 2000-08-28  Philipp Thomas  <pthomas@suse.de>
2811
2812         * ABOUT-GCC-NLS: Remove gettext patches from Paul Eggert as
2813         they have been incorporated into the gettext CVS. Change the text to
2814         reflect the current status of NLS. Add instructions for accessing
2815         the gettext CVS and add the patch from Martin v. Loewis.
2816
2817 2000-08-27  Geoff Keating  <geoffk@cygnus.com>
2818
2819         * config/rs6000/rs6000.md (movdi_internal64+5): Make SUBREG-safe
2820         by using gen_lowpart_common.
2821         (movdi_internal64+6): Likewise.
2822
2823 2000-08-26  Alexandre Oliva  <aoliva@redhat.com>
2824
2825         * tm.texi (FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION):
2826         Document.
2827
2828         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Remap register
2829         numbers to the ranges used by GDB.
2830
2831 2000-08-25  Richard Henderson  <rth@cygnus.com>
2832
2833         * config/ia64/ia64.h (struct machine_function): Add n_varargs.
2834         * config/ia64/ia64.c (ia64_compute_frame_size): Use it.
2835         (ia64_expand_prologue): Likewise.
2836         (ia64_setup_incoming_varargs): Set it.  Properly skip the current
2837         argument for stdargs.
2838
2839 2000-08-25  Jason Merrill  <jason@redhat.com>
2840
2841         * integrate.c (expand_inline_function): Pull out the original decl.
2842
2843 2000-08-25  Jim Wilson  <wilson@cygnus.com>
2844
2845         * cse.c (cse_insn): Don't pass label subtraction to force_const_mem.
2846
2847         * function.c (gen_mem_addressof): Clear MEM_ALIAS_SET if no decl.
2848
2849 2000-08-25  Greg McGary  <greg@mcgary.org>
2850
2851         * flow.c (dump_edge_info): Use ARRAY_SIZE.
2852         * config/alpha/alpha.c (alpha_expand_block_move): Likewise.
2853
2854 2000-08-25  Richard Earnshaw  <rearnsha@arm.com>
2855
2856         * arm.h (STRUCT_VALUE): Define to 0, not NULL.
2857
2858 Fri Aug 25 12:52:49 EDT 2000  John Wehle  (john@feith.com)
2859
2860         * i386.c (ix86_find_base_term): New.
2861         * i386-protos.h (ix86_find_base_term): Prototype.
2862         * i386.h (FIND_BASE_TERM): Define.
2863         * alias.c (find_base_term): Use it.
2864         * tm.texi (FIND_BASE_TERM): Document it.
2865
2866         * alias.c (true_dependence, write_dependence_p): Unchanging
2867         memory can't conflict with non-unchanging memory.
2868
2869         * alias.c (memrefs_conflict_p): A BLKmode reference
2870         to a symbol (or CONST_INT address) always conflicts
2871         with a reference to another symbol.
2872
2873 2000-08-25  Joseph S. Myers  <jsm28@cam.ac.uk>
2874
2875         * c-common.c (time_char_table): Don't allow width and flags with
2876         "z" format.
2877
2878 2000-08-25  Jakub Jelinek  <jakub@redhat.com>
2879
2880         * config/i386/i386.c (ix86_expand_branch): Treat GE and GEU the same
2881         way as LT and LTU when the second operand has 0 in low word.
2882
2883 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
2884
2885         * basic-block.h (struct loop): Rename `exits' field to
2886         `exit_edges'.  Add `entry_edges' and `num_entries' fields.
2887
2888         * flow.c (flow_loop_exit_edges_find): Rename from flow_loop_exits_find.
2889         (flow_loop_entry_edges_find): Add.
2890         (flow_edge_list_print): Rename from flow_exits_print.
2891         (flow_loops_find): Call flow_loop_entry_edges_find.
2892         (flow_loop_dump): Dump entry_edges list.
2893         (flow_loops_free): Free entry_edges.
2894
2895 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
2896
2897         * loop.c (loop_dump_aux, debug_loop): New functions.
2898         (LOOP_BLOCK_NUM_1, LOOP_BLOCK_NUM, LOOP_INSN_UID): New macros.
2899
2900         * flow.c (flow_loops_dump): Add callback parameter.
2901         (flow_loop_dump): Add callback parameter and call it.  Move
2902         loop note debugging code to loop_dump_aux.
2903
2904         * basic-block.h (flow_loop_dump): Add callback parameter
2905         (flow_loops_dump): Likewise.
2906
2907         * toplev.c (rest_of_compilation): Add NULL callback function pointer
2908         to call to flow_loops_dump.
2909
2910 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
2911
2912         * loop.c (count_loop_regs_set): Replace start and end arguments
2913         with loop argument.  All callers udated.
2914
2915 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
2916
2917         * loop.c (constant_high_bytes): Delete.
2918
2919 2000-08-26  Michael Hayes  <mhayes@cygnus.com>
2920
2921         * loop.c (prescan_loop): Move checks for NOTE_INSN_LOOP_CONT
2922         and NOTE_INSN_LOOP_VTOP to...
2923         (find_and_verify_loops) ...here.
2924
2925 Fri Aug 25 04:21:13 2000  Alexandre Oliva  <aoliva@redhat.com>
2926
2927         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Define default.
2928         (fini_dummy, init_dummy): Use it.
2929
2930 Fri 25-Aug-2000 08:03:27 BST  Neil Booth  <NeilB@earthling.net>
2931
2932         * cpplex.c (is_macro_disabled): Caller has already checked
2933         that we're not a preprocessed file.
2934
2935 2000-08-24  Mark Mitchell  <mark@codesourcery.com>
2936
2937         * Makefile.in (C_AND_OBJC_OBJS): Remove c-iterate.o.
2938         (c-iterate.o): Remove target.
2939         * gcc/c-common.h (enum rid): Remove RID_ITERATOR.
2940         * gcc/c-decl.c (init_decl_processing): Remove call to init_iterators.
2941         (finish_decl): Don't handle iterators.
2942         (grokdeclarator): Likewise.
2943         * gcc/c-parse.gperf: Remove __iterator and __iterator__ keywords.
2944         * gcc/c-gperf.h: Regenerated.
2945         * gcc/c-iterate.c: Removed.
2946         * gcc/c-lex.c (init_lex): Don't handle iterators.
2947         * gcc/c-parse.in (primary): Remove pop_iterator_stack call.
2948         (compstmt_primary_start): Remove push_iterator_stack call.
2949         (stmt): Don't allow iterator statements.  Replace iterator_expand
2950         with expand_expr_stmt.
2951         (all_iter_stmt): Remove.
2952         (all_iter_stmt_simple): Likewise.
2953         (all_iter_stmt_with_decl): Likewise.
2954         * gcc/c-tree.h (ITERATOR_P): Remove.
2955         (ITERATOR_BOUND_P): Likewise.
2956         (init_iterators): Remove declaration.
2957         (iterator_expand): Likewise.
2958         (iterator_for_loop_start): Likewise.
2959         (iterator_for_loop_end): Likewise.
2960         (iterator_for_loop_record): Likewise.
2961         (push_iterator_stack): Likewise.
2962         (pop_iterator_stack): Likewise.
2963         * gcc/c-typeck.c (decl_constant_value): Don't check ITERATOR_P.
2964         (readonly_warning): Likewise.
2965         * gcc/tree.h (ITERATOR_BOUND_P): Don't mention it.
2966
2967 2000-08-24  Jim Wilson  <wilson@cygnus.com>
2968
2969         * c-common.c (decl_attributes, case A_ALIGN): Revert last change.
2970         Copy type in a TYPE_DECL, just like pushdecl does.
2971
2972 2000-08-24  Richard Henderson  <rth@cygnus.com>
2973
2974         * toplev.c (main): Enable flag_reorder_blocks at -O2.
2975
2976 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
2977
2978         * ggc-page.c (alloc_page): If HAVE_MMAP_ANYWHERE and we're
2979         asked for one page, allocate GGC_QUIRE_SIZE of them and put
2980         the extras on the free list.
2981         (release_pages): Clean up.
2982         (ggc_set_mark): Don't adjust G.allocated here...
2983         (sweep_pages): ... do it here.
2984
2985 2000-08-24  Zack Weinberg  <zack@wolery.cumb.org>
2986
2987         * cppfiles.c (read_include_file): Rearrange initializations.
2988
2989 2000-08-24  Richard Henderson  <rth@cygnus.com>
2990
2991         * stmt.c (expand_asm_operands): Treat EXTRA_CONSTRAINT like g or X.
2992
2993         * config/ia64/ia64-protos.h: Update.
2994         * config/ia64/ia64.c (gr_register_operand): New.
2995         (fr_register_operand, grfr_register_operand): New.
2996         (gr_nonimmediate_operand, grfr_nonimmediate_operand): New.
2997         (grfr_reg_or_8bit_operand): New.
2998         (gr_reg_or_0_operand): Rename from reg_or_0_operand and
2999         use gr_register_operand.
3000         (gr_reg_or_5bit_operand, gr_reg_or_6bit_operand): Likewise.
3001         (gr_reg_or_8bit_operand, gr_reg_or_8bit_adjusted_operand): Likewise.
3002         (gr_reg_or_8bit_and_adjusted_operand): Likewise.
3003         (gr_reg_or_14bit_operand, gr_reg_or_22bit_operand): Likewise.
3004         (fr_reg_or_fp01_operand): Likewise.
3005         (not_postinc_memory_operand): New.
3006         (ia64_split_timode): Remove unused variables.
3007         (rtx_needs_barrier): Check arguments to cmpxchg.
3008         (builtin_description): Remove.
3009         (bdesc_2argsi, bdesc_2argdi): Remove.
3010         (ia64_init_builtins): Declare all builtins directly.
3011         (ia64_expand_fetch_and_op): Rewrite to be called from
3012         ia64_expand_builtin directly.  Use expand_binop and co.
3013         (ia64_expand_op_and_fetch): Likewise.
3014         (ia64_expand_compare_and_swap): Likewise.
3015         (ia64_expand_binop_builtin): Remove.
3016         (ia64_expand_lock_test_and_set): New.
3017         (ia64_expand_lock_release): New.
3018         (ia64_expand_builtin): Use them.
3019         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_S): New.
3020         (EXTRA_CONSTRAINT): Use it.
3021         (PREDICATE_CODES): Update.
3022         * config/ia64/ia64.md (*): Use gr_register_operand and co.
3023         (mf): Indicate that we set memory as well as use it.
3024         (fetchadd_acq_si): Show memory being modified as well.
3025         (fetchadd_acq_di, cmpxchg_acq_si, cmpxchg_acq_di): Likewise.
3026         (val_compare_and_swap_si, val_compare_and_swap_di): Remove.
3027         (lock_test_and_set_si, lock_test_and_set_di): Remove.
3028         (fetch_and_add_si, fetch_and_sub_si, fetch_and_or_si): Remove.
3029         (fetch_and_and_si, fetch_and_xor_si, fetch_and_nand_si): Remove.
3030         (fetch_and_add_di, fetch_and_sub_di, fetch_and_or_di): Remove.
3031         (fetch_and_and_di, fetch_and_xor_di, fetch_and_nand_di): Remove.
3032         (add_and_fetch_di, sub_and_fetch_di, or_and_fetch_di): Remove.
3033         (and_and_fetch_di, xor_and_fetch_di, nand_and_fetch_di): Remove.
3034         (add_and_fetch_si, sub_and_fetch_si, or_and_fetch_si): Remove.
3035         (and_and_fetch_si, xor_and_fetch_si, nand_and_fetch_si): Remove.
3036         * config/ia64/ia64intrin.h (*): Cast result to the appropriate
3037         return type.  Pretty print definitions.
3038
3039 2000-08-24  Jim Wilson  <wilson@cygnus.com>
3040
3041         * config/ia64/ia64.md (movdi): Don't call gen_movdi_symbolic if
3042         we have a SYMBOL_REF with SYMBOL_REF_FLAG set.
3043
3044 2000-08-24  Jason Merrill  <jason@redhat.com>
3045
3046         * dwarf2out.c (AT_flag, AT_int, AT_unsigned, AT_string, AT_ref,
3047         AT_loc, AT_addr, AT_lbl): Abort on unsuitable input.
3048         (get_AT_low_pc, get_AT_hi_pc, get_AT_string, get_AT_flag,
3049         get_AT_unsigned, get_AT_ref): Don't call them if get_AT fails.
3050
3051 2000-08-24  Greg McGary  <greg@mcgary.org>
3052
3053         * optabs.c (init_optabs): Initialize fixtab, fixtrunctab, floattab,
3054         and extendtab within their proper array boundaries.
3055         * emit-rtl.c (init_emit_once): Pass `const_tiny_rtx' with bounds
3056         for the entire array.
3057
3058         * config/arm/arm.c (arm_override_options): Use ARRAY_SIZE.
3059         * config/alpha/alpha.c (alpha_lookup_xfloating_lib_func): Likewise.
3060         * config/avr/avr.c (order_regs_for_local_alloc): Likewise.
3061         * config/fr30/fr30.c (fr30_print_operand): Likewise.
3062         * config/i386/dgux.c (output_options): Likewise.
3063         * config/i386/dgux.h (ASM_FILE_START): Likewise.
3064         * config/m88k/m88k.c (output_options): Likewise.
3065         * config/m88k/m88k.h (ASM_FILE_START): Likewise.
3066         * config/mcore/mcore.c (mcore_output_inline_const_forced,
3067         layout_mcore_frame, handle_structs_in_regs): Likewise.
3068         * config/mips/mips.c (output_block_move): Likewise.
3069         * config/rs6000/rs6000.c (rs6000_override_options,
3070         rs6000_file_start): Likewise.
3071         * config/sparc/sparc.c (sparc_add_gc_roots): Likewise.
3072         * fixinc/fixfixes.c (FIX_TABLE_CT): Likewise.
3073         * fixinc/fixtests.c (TEST_TABLE_CT): Likewise.
3074         * builtins.c (expand_builtin_setjmp): Likewise.
3075         * expr.c (safe_from_p): Likewise.
3076         * flow.c (life_analysis): Likewise.
3077         * fold-const.c (size_int_type_wide): Likewise.
3078         * gcc.c (translate_options, init_spec, set_spec, main): Likewise.
3079         * genattrtab.c (make_length_attrs): Likewise.
3080         * genopinit.c (gen_insn): Likewise.
3081         * genrecog.c (NUM_KNOWN_PREDS, NUM_SPECIAL_MODE_PREDS): Likewise.
3082         * global.c (global_alloc): Likewise.
3083         * local-alloc.c (find_free_reg): Likewise.
3084         * mips-tdump.c (print_symbol): Likewise.
3085         * mips-tfile.c (parse_def, parse_input): Likewise.
3086         * reload1.c (NUM_ELIMINABLE_REGS): Likewise.
3087         * stmt.c (expand_nl_goto_receiver): Likewise.
3088         * stor-layout.c (set_sizetype): Likewise.
3089         * varasm.c (decode_reg_name): Likewise.
3090         * toplev.c (decode_f_option, decode_W_option,
3091         set_target_switch, print_switch_values): Likewise.
3092         (NUM_ELEM): Remove macro.
3093         (display_help, main): s/NUM_ELEM/ARRAY_SIZE/
3094
3095 2000-08-24  Greg McGary  <greg@mcgary.org>
3096
3097         * tree.h (enum tree_index): New member `TI_MAIN_IDENTIFIER'.
3098         (MAIN_NAME_P, main_identifier_node): New macros.
3099         * c-common.c (c_common_nodes_and_builtins): Init main_identifier_node.
3100         * c-decl.c (start_decl, grokdeclarator, start_function,
3101         store_parm_decls, finish_function): Use MAIN_NAME_P.
3102         * config/avr/avr.c (function_prologue, function_epilogue): Likewise.
3103         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
3104         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
3105         * config/pdp11/pdp11.c (output_function_prologue): Likewise.
3106
3107 2000-08-24  Greg McGary  <greg@mcgary.org>
3108
3109         * cppfiles.c (actual_directory): Don't write beyond `dir'
3110         when it contains "".
3111         * real.c (asctoeg): Stay within bounds of etens[][].
3112
3113 2000-08-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3114
3115         * dependence.c (dependence_string, direction_string,
3116         dump_one_node, dump_node_dependence): Hide unused identifiers.
3117         (get_low_bound, normalize_coefficients): Match definition to
3118         static prototype.
3119         (get_one_coefficient): Initialize variables `value0_is_idx' and
3120         `value1_is_idx'.
3121         (ziv_test, gcd_test): Mark parameters with ATTRIBUTE_UNUSED.
3122         (ziv_test): Delete variable `idx', use parameter `sub' instead.
3123         (direction_merge): Avoid automatic aggregate initialization.
3124         (have_dependence_p): Use `src' not `dest' to set `src_idx'.
3125         Initialize variables `dest_idx' and `src_idx'.
3126         (end_dependence_analysis): Avoid C89 style function definition.
3127
3128 2000-08-24  Joseph S. Myers  <jsm28@cam.ac.uk>
3129
3130         * c-common.c (time_char_table): Don't allow width with %F.
3131         (check_format_info): Don't allow "Z" length with scanf.
3132
3133 2000-08-24  Gabriel Dos Reis  <gdr@codesourcery.com>
3134
3135         * diagnostic.c (finish_diagnostic): Define.
3136         (output_do_printf): Use wrap_text instead of output_add_string.
3137         (default_print_error_function): Avoid embedded '\n'.
3138
3139         * diagnostic.h (flush_diagnostic_buffer): Declare.
3140
3141 2000-08-23  Alexandre Oliva  <aoliva@redhat.com>
3142
3143         * dependence.c: Replace `[][]' with `[][MAX_SUBSCRIPTS]'.
3144
3145 2000-08-23  Hans-Peter Nilsson  <hp@axis.com>
3146
3147         * Makefile.in (GCC_PASSES): Add specs.
3148
3149 2000-08-23  Jim Wilson  <wilson@cygnus.com>
3150
3151         * frame.h (IA64_UNW_EHANDLER, IA64_UNW_UHANDLER): New.
3152         * config/ia64/frame-ia64.c (__get_personality): Return zero if neither
3153         EHANDLER nor UHANDLER bit is set.
3154         (__get_except_table): Likewise.
3155
3156 2000-08-23  Nick Clifton  <nickc@redhat.com>
3157
3158         * config/arm/lib1funcs.asm: Replace upper case condition codes
3159         with lower case versions.
3160
3161         * config/arm/arm.h (STRUCT_VALUE): Define.
3162         (STRUCT_VALUE_REGNUM): Delete.
3163
3164 2000-08-23  Zack Weinberg  <zack@wolery.cumb.org>
3165
3166         * cpphash.h (IN_I): New flag for directive table.
3167         * cpplib.c (DIRECTIVE_TABLE): Mark #define, #undef, #ident, and
3168         #pragma with IN_I.
3169         (_cpp_check_directive): If -fpreprocessed, execute directives
3170         marked with IN_I.  Issue no warnings in this case.
3171         * cpplex.c (_cpp_get_token): Expand no macros if -fpreprocessed.
3172
3173 2000-08-23  Joseph S. Myers  <jsm28@cam.ac.uk>
3174
3175         * c-common.c (print_char_table): Allow 'I' flag with %d, %i and
3176         %u.
3177         (check_format_info): Support printf 'I' flag; warn about it with
3178         -pedantic.
3179
3180 2000-08-23  Richard Earnshaw  (rearnsha@arm.com)
3181
3182         * arm.c (arm_expand_prologue): Ensure that the stack-adjustment
3183         barrier can't be ignored by the alias analysis code.
3184
3185 2000-08-12  Eli Zaretskii  <eliz@is.elta.co.il>
3186
3187         * fixinc/inclhack.def (sysv68_string): Fix the Sed script so it
3188         works inside fixincl.
3189
3190 Wed Aug 23 04:55:48 2000  Alexandre Oliva  <aoliva@redhat.com>
3191
3192         * simplify-rtx.c (simplify_rtx): Don't pass VOIDmode to
3193         simplify_relational_operation() unless both operands are of
3194         VOIDmode.
3195         * cse.c (fold_rtx): Likewise.
3196
3197 Tue Aug 22 23:53:27 EDT 2000  John Wehle  (john@feith.com)
3198
3199         * rtlanal.c (rtx_unstable_p): The pic register is stable
3200         (within one function) and the actual rtx should be used
3201         when checking the registers.
3202         (rtx_addr_can_trap_p): Pic memory addresses can't trap.
3203
3204         * alias.c (true_dependence, write_dependence_p): Fix
3205         bug in previous patch.
3206
3207         * i386.c (ix86_GOT_alias_set): New.
3208         (legitimize_pic_address): Use it.
3209
3210         * rtlanal.c (rtx_unstable_p): An unchanging MEM is
3211         only stable if its address is stable.
3212         (rtx_varies_p): An unchanging MEM can't vary if
3213         its address doesn't vary.
3214
3215 2000-08-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3216
3217         * c-parse.in (unop +): Restrict -Wtraditional warnings to user code.
3218
3219 2000-08-22  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3220
3221         * vax.h (ASM_SPEC): Pass `-J' to assembler.
3222         * x-vax-gcc: New file for bootstrapping with gcc.
3223         * x-vax: Use X_CFLAGS rather than X_CPPFLAGS to pass `-J'.
3224         * configure.in: Use x-vax-gcc with gcc.
3225         * configure: Rebuilt.
3226
3227 Tue Aug 22 21:21:05 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3228
3229         * toplev.c (rest_of_compilation): Rebuild label notes after
3230         post-reload splitting pass if new labels have been created.
3231
3232 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
3233
3234         * diagnostic.h (output_buffer_state): New macro.
3235         * diagnostic.c (diagnostic_for_decl, sorry,
3236         default_print_error_function, output_do_verbatim,
3237         report_diagnostic, report_problematic_module): Use it.
3238         (wrap_text): Tweak.
3239         (output_format): Use wrap_text instead of maybe_wrap_text.
3240
3241 2000-08-22  Nick Clifton  <nickc@redhat.com>
3242
3243         * config/arm/lib1funcs.asm (ARM_DIV_MOD_BODY): New macro.
3244         Common code for ARM divide and modulus functions.
3245         (THUMB_DIV_MOD_BODY): New macro. Thumb equivalent of
3246         ARM_DIV_MOD_BODY.
3247         (FUNC_END): New macro: Common code at the end of the division and
3248         modulo functions.
3249         (THUMB_FUNCTION_START): New macro:  Common code at the start of
3250         Thumb functions.
3251         (__divsi3, __udivsi3, __modsi3, __umodsi3): Use new macros.
3252
3253 Tue Aug 22 20:34:52 2000  Kaz Kojima <kkojima@rr.iij4u.or.jp>
3254
3255         * config/sh/sh.md (cmpeqdi_t splitter): Fix a reverse testing.
3256
3257         * config/sh/sh.c (prepare_scc_operands): Apply force_reg to
3258         sh_compare_op1 when the mode is DImode and sh_compare_op1 isn't
3259         const0_rtx.
3260
3261 2000-08-22  Nick Clifton  <nickc@redhat.com>
3262
3263         * config/arm/lib1funcs.asm (__umodsi3): Before performing any
3264         restorative additions, test for bottom bits of IP being set,
3265         rather than relying upon the RORs not matching.
3266         (__modsi3): Ditto.
3267
3268 2000-08-22  David Edelsohn  <edelsohn@gnu.org>
3269
3270         * aix.h (ASM_DECLARE_FUNCTION_NAME): Call named_section() or
3271         text_section() as appropriate instead of emitting text csect
3272         pseudo-op directly.
3273         (TEXT_SECTION_ASM_OP): Only require default 32-bit alignment.
3274         (UNIQUE_SECTION): Define macro.
3275         (ASM_OUTPUT_SECTION_NAME): Define macro.
3276         * rs6000.c (rs6000_override_options): Disable -ffunction-sections
3277         on AIX if debugging and -fdata-sections always.
3278
3279 2000-08-22  Steven King  <sxking@uswest.net>
3280
3281         * config/float-i386.h (LDBL_EPSILON): Remove __convert_long_double
3282         machinery.
3283         (LDBL_MAX): Same here.
3284
3285 2000-08-22  Richard Henderson  <rth@cygnus.com>
3286
3287         * flow.c (tidy_fallthru_edge): Update b->end properly.
3288
3289 2000-08-22  Stan Cox  <scox@redhat.com>
3290
3291         * Makefile.in (OBJS): Add dependence.o.
3292         * dependence.c: New file.
3293
3294 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>, John David Anglin  <dave.anglin@nrc.ca>
3295
3296         * calls.c (check_sibcall_argument_overlap_1): Adjust for
3297         ARGS_GROW_DOWNWARD.
3298         (check_sibcall_argument_overlap): Likewise.
3299
3300 2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
3301
3302         * invoke.texi (SH Options): Document -m4-nofpu,
3303         -m4-single-only, -m4-single, -m4, -mbigtable, -mfmovd,
3304         -mhitachi, -mnomacsave, -misize, -mpadstruct, -mspace.
3305
3306 2000-08-22  Joseph S. Myers  <jsm28@cam.ac.uk>
3307
3308         * c-common.c (check_format_info): Give the 'some locales' warning
3309         for strftime %Ey rather than the unconditional 'only last 2 digits
3310         of year' one.
3311
3312 2000-08-22  Richard Henderson  <rth@cygnus.com>
3313
3314         * alias.c (init_alias_analysis): Do not register
3315         struct_value_incoming_rtx or static_chain_rtx as pointing
3316         to stack memory.
3317
3318 Tue Aug 22 01:44:43 2000  Jeffrey A Law  (law@cygnus.com)
3319
3320         * protoize.c (munge_compile_params): Fix typo and formatting buglets.
3321
3322 2000-08-22  Gabriel Dos Reis  <gdr@codesourcery.com>
3323
3324         * diagnostic.h (report_problematic_module): Declare.
3325         * diagnostic.c (report_problematic_module): New function.
3326         (report_error_function): Tweak.
3327
3328 Tue Aug 22 02:31:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3329
3330         * stmt.c (expand_goto_internal, fixup_gotos): Only check
3331         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
3332
3333 2000-08-21  Richard Henderson  <rth@cygnus.com>
3334
3335         * flow.c (calculate_global_regs_live): Mark frame pointer live
3336         everywhere before reload.
3337
3338 2000-08-21  Jim Wilson  <wilson@cygnus.com>
3339
3340         * real.c (ereal_from_int, ereal_from_uint, significand_size): Handle
3341         INTEL_EXTENDED_IEEE_FORMAT.
3342         (toe64): Delete INTEL_EXTENDED_IEEE_FORMAT support.  Unconditionally
3343         clear last two bytes of output FP value.
3344
3345 2000-08-21  Graham Stott  <grahams@cygnus.co.uk>
3346
3347         * config/ia64/ia64.h (REDO_SECTION_INFO_P): Change decl to DECL.
3348
3349 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
3350
3351         * unroll.c (loop_find_equiv_value): If ret is modified between
3352         insn and loop_start, ret might not be equivalent to reg.
3353
3354 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3355
3356         * c-common.c (init_dollar_format_checking,
3357         maybe_read_dollar_number, finish_dollar_format_checking): New
3358         functions.
3359         (dollar_arguments_used, dollar_arguments_count,
3360         dollar_first_arg_num, dollar_max_arg_used, dollar_format_warned):
3361         New variables.
3362         (check_format_info): Support $ formats for scanf and printf width
3363         and precision.  Always increment format_chars to advance past the
3364         '*' of precision, not just when the format parameters are
3365         available to check.
3366
3367 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3368
3369         * mips.c (block_move_loop, expand_block_move,
3370         function_arg_partial_nregs, save_restore_insns, function_prologue,
3371         mips_expand_prologue, RA_MASK): Avoid using the `U' integer
3372         constant suffix.
3373         (function_arg_advance, function_arg): Match argument to format
3374         specifier `%p'.
3375
3376 2000-08-21  Nix  <nix@esperi.demon.co.uk>
3377
3378         * gcc.c (do_spec_1): Implement %j spec flag.
3379         Remove dead comment.
3380
3381         * gcc.texi (The Configuration File): Document HOST_BIT_BUCKET.
3382         * system.h (HOST_BIT_BUCKET): Default to "/dev/null".
3383         * config/i386/xm-dos.h (HOST_BIT_BUCKET): Define as "NUL".
3384         * config/i386/xm-os2.h, config/winnt/winnt.h: Likewise.
3385
3386         * protoize.c (munge_compile_params): Use HOST_BIT_BUCKET (if
3387         writable) instead of hardcoded value.
3388
3389         * toplev.c (compile_file): Output to a file even if -fsyntax-only.
3390
3391         * gcc.c, config/i386/xm-dos.h, config/i386/xm-os2.h: Kill
3392         MKTEMP_EACH_FILE.
3393
3394         * gcc.c (cc1_options): Do not process -o or run the assembler if
3395         -fsyntax-only.
3396         * objc/lang-spec.h: Likewise.
3397
3398 2000-08-21  Eli Zaretskii  <eliz@is.elta.co.il>
3399
3400         * fixinc/fixincl.c (fix_with_system): Pipe the output of
3401         "external" fixes through `cat', to avoid truncating the input
3402         file by redirection.
3403
3404 2000-08-21  Jakub Jelinek  <jakub@redhat.com>
3405
3406         * config/i386/i386.md (lea_general_1): Copy insn condition to split
3407         condition.
3408         (lea_general_2, lea_general_3): Likewise.
3409
3410 2000-08-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3411
3412         * c-decl.c (duplicate_decls, define_label): Restrict -Wtraditional
3413         warnings to user code.
3414
3415         * c-lex.c (readescape, yylex): Likewise.
3416
3417         * c-typeck.c (store_init_value, process_init_element): Likewise
3418         (c_expand_start_case): Format.
3419
3420 2000-08-18  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3421
3422         * mips/linux.h (LINK_SPEC): Use %(endian_spec).
3423
3424         * mips/mips.h: Change LINKER_ENDIAN_SPEC to ENDIAN_SPEC
3425         and linker_endian_spec to endian_spec.
3426         (ENDIAN_SPEC): Add %{EB} and %{EL}.
3427         (LINK_SPEC): Remove %{EB} and %{EL}.
3428         (ASM_SPEC): Likewise.  Use %(endian_spec).
3429
3430 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3431
3432         * c-tree.h (flag_hosted): Move declaration from here...
3433         * c-common.h (flag_hosted): ... to here.
3434         (flag_noniso_default_format_attributes): New declaration.
3435         * c-decl.c (flag_noniso_default_format_attributes): New variable.
3436         (c_decode_option): Set it appropriately for options choosing
3437         language standard variant.
3438         * c-common.c (init_function_format_info): Only provide default
3439         format attributes if flag_hosted.  Only provide the gettext
3440         formats if flag_noniso_default_format_attributes.  Update
3441         comments.
3442         (check_format_info): Disable treatment of %a as a scanf flag in
3443         C99 mode.
3444
3445 2000-08-21  Joseph S. Myers  <jsm28@cam.ac.uk>
3446
3447         * c-common.c (scan_char_table): Add 'w' to flags for all formats
3448         except 'n'.
3449         (check_format_info): Set 'wide' for scanf format widths.  Warn for
3450         a zero scanf width.  Make the check for writing into a constant
3451         object at the first level of indirection; at later levels, warn if
3452         any type qualifiers are encountered.
3453
3454 Mon Aug 21 07:41:12 2000  Jeffrey A Law  (law@cygnus.com)
3455
3456         * reload.c (reload_inner_reg_of_subreg): New function broken out of
3457         push_reload.
3458         (push_reload): Use reload_inner_reg_of_subreg.
3459         (combine_reloads): Do not combine reloads if the input reload
3460         is a SUBREG in which the inner part will need reloading.
3461
3462         * global.c (global_alloc): Avoid passing dumpfile argument to
3463         reload routines.
3464         * toplev.c (rest_of_compilation): Likewise.
3465         * reload.h (reload): Remove dumpfile argument.  Callers changed.
3466         (debug_reload, debug_reload_to_stream): Move prototypes here.
3467         * rtl.h  (reload): Remove dumpfile argument.
3468         * reload.c (debug_reload): Remove prototype.
3469         (debug_reload_to_stream): Likewise.
3470         * reload1.c: Avoid passing dumpfile around, rely on rtl_dump_file
3471         instead.
3472
3473 2000-08-21  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3474
3475         * diagnostic.c (context_as_prefix): Export.
3476         (need_error_newline): Remove.
3477         (lang_diagnostic_starter, lang_diagnostic_finalizer): New objects.
3478         (error_module_changed, record_last_error_module,
3479         error_function_changed, record_last_error_function): New functions.
3480         (initialize_diagnostics): Default intialize
3481         lang_diagnostic_starter, lang_diagnostic_finalizer.
3482         (init_output_buffer): Tweak.
3483         (file_name_as_prefix): New function.
3484         (announce_function, default_print_error_function,
3485         report_error_function, set_diagnostic_context): Tweak.
3486
3487 2000-08-21  Richard Earnshaw  <rearnsha@arm.com>
3488
3489         * flow.c (init_propagate_block_info): Handle SUBREG in a jump
3490         condition expression.
3491
3492 2000-08-20  Richard Henderson  <rth@cygnus.com>
3493
3494         * flow.c (merge_blocks_nomove): Don't seek back past the bb note.
3495
3496 2000-08-20  Zack Weinberg  <zack@wolery.cumb.org>
3497
3498         * cppinit.c (cpp_init): Set global flag when called.
3499         (cpp_reader_init): Bomb out if cpp_init hasn't been called.
3500
3501 Sun Aug 20 01:41:35 2000  Dennis Chernoivanov  <cdi@sparc.spb.su>
3502
3503         * cpplex.c (cpp_scan_buffer): Move `output_line_command' just
3504         before `process_directive' so that newlines won't be missed
3505         for directives.
3506         (cpp_printf): Increment `print->lineno' when newline is emitted.
3507
3508         * cppmain.c (cb_ident): Likewise.
3509         (cb_define): Likewise.
3510         (cb_undef): Likewise.
3511         (cb_include): Likewise.
3512         (cb_def_pragma): Likewise.
3513         (dump_macros_helper): Likewise.
3514
3515 2000-08-20  Richard Henderson  <rth@cygnus.com>
3516
3517         * config/ia64/ia64.c (emit_insn_group_barriers): Stop if ar.lc
3518         assigned before a loop.
3519
3520         * config/ia64/ia64.md (ashlsi3): Zero extend the shift count.
3521         (ashrsi3, lshrsi3): Likewise.
3522
3523 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
3524
3525         * c-lang.c: #include diagnostic.h
3526         (c_tree_printer): New function.
3527         (lang_init): Initialize lang_printer.
3528
3529         * Makefile.in (c-lang.o): Depends on diagnostic.h
3530
3531 2000-08-20  Gabriel Dos Reis  <gdr@codesourcery.com>
3532
3533         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic.
3534
3535         * diagnostic.c (default_diagnostic_starter,
3536         default_diagnostic_finalizer): New functions.
3537         (diagnostic_for_asm, diagnostic_for_decl): Tweak.
3538         (pedwarn, pedwarn_with_file_and_line, error,
3539         error_with_file_and_line, fatal, warning,
3540         warning_with_file_and_line): Adjust call to report_diagnostic.
3541         (report_diagnostic): Rework.
3542         (set_diagnostic_context): New function.
3543
3544         * diagnostic.h (struct diagnostic_context): New data structure.
3545         (diagnostic_message, diagnostic_argument_list,
3546         diagnostic_file_location, diagnostic_line_location,
3547         diagnostic_is_warning, diagnostic_starter, diagnostic_finalizer,
3548         diagnostic_finalizer, diagnostic_auxiliary_data): New macros.
3549         (set_diagnostic_context): Declare.
3550         (report_diagnostic): Change prototype.
3551
3552 Sun 20-Aug-2000 09:25:45 BST  Neil Booth  <NeilB@earthling.net>
3553
3554         * fix-header.c (main): Initialize cpplib.
3555
3556 2000-08-19  Michael Meissner  <meissner@redhat.com>
3557
3558         * ifcvt.c (find_if_block): Do not assume that a THEN block has any
3559         instructions in it before checking for indirect jumps.
3560
3561         * ifcvt.c (find_if_block): Do not consider a THEN block that ends
3562         in a indirect jump as a potential for conditional execution.
3563
3564         * d30v.h (d30v_init_expanders): Don't declare here.
3565         * d30v-protos.h (d30v_init_expanders): Declare here with a valid
3566         prototype.
3567
3568 Sat 19-Aug-2000 21:11:45 BST  Neil Booth  <NeilB@earthling.net>
3569
3570         * cpp.texi: Add @section for assertions.
3571
3572 Sat Aug 19 12:37:08 EDT 2000  John Wehle  (john@feith.com)
3573
3574         * loop.c (scan_loop): Use CONST_CALL_P instead of
3575         checking for REG_LIBCALL / REG_RETVAL.
3576
3577 Sat Aug 19 09:18:47 2000  Jeffrey A Law  (law@cygnus.com)
3578
3579         * reload1.c (reload_as_needed): Accept dumpfile argument,
3580         pass it to emit_reload_insns.
3581         (emit_reload_insns): Add new dumpfile argument.  If non-null
3582         then dump the reloads for each insn into the dumpfile.
3583         (reload): Pass dumpfile to reload_as_needed.
3584
3585         * invoke.texi: Clean up linux-gnu vs linux comments.
3586
3587 2000-08-19  Richard Henderson  <rth@cygnus.com>
3588
3589         * config/ia64/ia64.c (reg_or_5bit_operand): New.
3590         (ia64_depz_field_mask): New.
3591         * config/ia64/ia64.h (CONSTRAINT_OK_FOR_R): New.
3592         (PREDICATE_CODES): Update.
3593         * config/ia64/ia64.md: Update commentary.
3594         (depz_internal): New.
3595         (ashlsi3): Implement directly.
3596         (ashrsi3, lshrsi3): Simplify; rely on extv and extzv for constants.
3597         (ashldi3): Use shladd.
3598         * config/ia64/ia64-protos.h: Update.
3599
3600 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
3601
3602         * toplev.c (independent_decode_option): Always process -g.
3603         Remove third argument, now unused.  Adjust caller to match.
3604
3605 2000-08-18  Richard Henderson  <rth@cygnus.com>
3606
3607         * combine.c (make_compound_operation): Break after creating
3608         the extraction.
3609
3610 2000-08-18  Zack Weinberg  <zack@wolery.cumb.org>
3611
3612         * cpplib.c (cpp_register_pragma_space): Just return if the
3613         namespace is already registered.
3614
3615 2000-08-18  Ray Essick <essick@ddna.labs.mot.com> & Nick Clifton  <nickc@redhat.com>
3616
3617         * config/mcore/mcore.md (rotlsi3): Allow allow rotations by a
3618         constant amount.  Do not generate ROTL instruction.
3619
3620 Fri Aug 18 16:22:20 2000  Alexandre Oliva  <aoliva@redhat.com>
3621
3622         * config/sh/elf.h: Do not include sh/sh.h.
3623         * config/sh/rtems.h: Likewise.
3624         * config/sh/rtemself.h: Do not include sh/elf.h.
3625         * configure.in: Get them included with `tm_file's.
3626         * configure: Rebuilt.
3627
3628         * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
3629         * config/sh/sh.c (fpscr_set_from_mem): Use them.
3630
3631 Fri Aug 18 14:23:18 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3632
3633         * stor-layout.c (compute_record_type): Don't use mode of single
3634         field as mode of record if not integer mode of same type.
3635
3636         * regmove.c (perhaps_ends_bb_p): New function.
3637         (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
3638         (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
3639         (fixup_match_1): Likewise.
3640         (fixup_match_1, combine_stack_adjustments_for_block): Add casts to
3641         avoid signed/unsigned warnings.
3642
3643         * function.c (fixup_var_refs_1, case MEM): Update CODE after
3644         updating X.
3645
3646 Fri 18-Aug-2000 18:33:45 BST  Neil Booth  <NeilB@earthling.net>
3647
3648         * cpphash.h: Use HAVE_DESIGNATED_INITIALIZERS.
3649         (_cpp_trigraph_map): Declaration moved from cpplex.c
3650
3651         * cppinit.c: Define _cpp_trigraph_map.  Use UCHAR_MAX + 1
3652         instead of 256.  Use consistent test for designated initializers.
3653         (cpp_init): Initialize trigraph_map.
3654         (initialize_standard_includes, parse_option):  Use memcmp
3655         instead of strncmp.
3656
3657         * cpplex.c (init_trigraph_map): Remove.
3658         (trigraph_ok, trigraph_replace, lex_line): Refer to
3659         _cpp_trigraph_map.
3660
3661         * cpplib.c (str_match, WARNING, ERROR, ICE): Delete.
3662         (do_unassert): Remove unused "next" local.
3663
3664         * system.h (HAVE_DESIGNATED_INITIALIZERS): New prototype.
3665
3666 2000-08-18  Emmanuel Marty  <emarty@suntech.fr>
3667
3668         * arm/lib1funcs.asm (_umodsi3 THUMB VARIANT): Restore deleted return
3669         insn.
3670
3671 2000-08-17  Richard Henderson  <rth@cygnus.com>
3672
3673         * config/ia64/ia64.c (spill_restore_mem): Handle emitting
3674         the first insn in a sequence.
3675
3676 Thu Aug 17 22:40:05 EDT 2000  John Wehle  (john@feith.com)
3677
3678         * alias.c (true_dependence, write_dependence_p): A read
3679         involving a label_ref or the constant pool doesn't create
3680         a dependency.
3681
3682         * rtl.h (unchanging): Improve documentation.
3683
3684 2000-08-17  Rodney Brown  <RodneyBrown@mynd.com>
3685
3686         * cse.c (insert_regs): Remove unused `regno'.
3687
3688 2000-08-17  Neil Booth  <NeilB@earthling.net>
3689
3690         * (cppinit.c) merge_include_chains: Use remove_dup_dir,
3691         remove_dup_dirs.  If qtail == brack, remove brack not
3692         qtail.
3693         (remove_dup_dir, remove_dup_dirs): New functions.
3694
3695 2000-08-17  Neil Booth  <NeilB@earthling.net>
3696
3697         * cppinit.c (cpp_cleanup): Free include dir chains.
3698         * cpplib.c (do_undef): Let _cpp_free_definition make the node void.
3699         (do_unassert): Free the assert with _cpp_free_definition.
3700         * cppmacro.c (_cpp_free_definition): Free memory allocated for
3701         assertions.  Make the node a T_VOID node.
3702
3703 2000-08-17  Neil Booth  <NeilB@earthling.net>
3704
3705         * cppinit.c (path_include, append_include_chain):
3706         Remove 2nd parameter (struct cpp_pending *).
3707         (path_include, initialize_standard_includes, cpp_handle_option):
3708         Update callers appropriately.
3709         (cpp_handle_option): Use pend.
3710
3711 2000-08-17  Neil Booth  <NeilB@earthling.net>
3712
3713         * cppinit.c (sort_options): Remove, put functionality in
3714         cpp_init.
3715         (cpp_init): New.
3716         (initialize_builtins): Free memory.
3717         (cpp_start_read): Move init_IStable to cpp_init.
3718
3719         * cpplib.h (cpp_init): New prototype.
3720         * cppmain.c (main): Call cpp_init.
3721
3722 Thu Aug 17 13:20:32 EDT 2000  John Wehle  (john@feith.com)
3723
3724         * rtlanal.c (rtx_unstable_p): Use CONSTANT_P.
3725         (rtx_unstable_p, rtx_varies_p): Process vectors.
3726
3727 2000-08-16  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3728
3729         * config/sh/lib1funcs.asm (GLOBAL): Define.  Use for all
3730         references to GLOBAL symbols.  Use LOCAL where appropriate.
3731
3732 2000-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3733
3734         * configure.in (*-ibm-aix4.[12]*): Delete test for gnu ld.  Always
3735         use t-aix41 when host == target.
3736
3737 2000-08-16  Richard Henderson  <rth@cygnus.com>
3738
3739         * reload.c (push_secondary_reload): Revert last change.
3740         If we use a reload_in/out pattern, make the when the same
3741         as the primary reload.
3742         (find_reloads): Likewise.
3743
3744 2000-08-16  Manfred Hollstein  <manfredh@redhat.com>
3745
3746         * configure.in (libstdcxx-v3): Fix test.
3747         * configure: Regenerate.
3748
3749 Wed Aug 16 08:10:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3750
3751         * calls.c (calls_function_1, expand_call): Only test
3752         TYPE_RETURNS_STACK_DEPRESSED for FUNCTION_TYPE.
3753         * function.c (thread_prologue_and_epilogue_insns): Likewise.
3754
3755 2000-08-16  Richard Henderson  <rth@cygnus.com>
3756
3757         * combine.c (simplify_shift_const): Revert previous two
3758         changes.  If SHIFT_COUNT_TRUNCATED, crop the shift count
3759         before the main loop.
3760
3761 2000-08-15  Richard Henderson  <rth@cygnus.com>
3762
3763         * combine.c (simplify_shift_const): Bound shift count when
3764         combining shifts.
3765
3766 Tue Aug 15 17:33:05 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3767
3768         * calls.c (ECF_SP_DEPRESSED): New macro.
3769         (calls_function_1): Treat calling sp-depressed function as alloca.
3770         (emit_call_1): Don't adjust SP if calling sp-depressed function.
3771         (expand_call): Set ECF_SP_DEPRESSED if TYPE_RETURNS_STACK_DEPRESSED.
3772         If sp-depressed, ensure block saves and restores SP.
3773         * fold-const.c (extract_muldiv): Only check TYPE_IS_SIZETYPE
3774         for INTEGER_TYPE.
3775         * function.c (keep_stack_depressed): New function.
3776         (thread_prologue_and_epilogue_insns): Call it.
3777         * print-tree.c (print_node): Use HOST_WIDE_INT_PRINT_UNSIGNED
3778         to print DECL_OFFSET_ALIGN.
3779         Print no-force-blk and transparent-union flags properly.
3780         * stmt.c (expand_goto_internal): Don't restore stack if last block
3781         and function returns with sp depressed.
3782         (fixup_gotos): Likewise.
3783         (save_stack_pointer): New function, from code in expand_decl.
3784         (expand_decl): Call new function.
3785         * tree.h (TYPE_IS_SIZETYPE): Call INTEGER_TYPE_CHECK.
3786         (TYPE_RETURNS_STACK_DEPRESSED): New macro.
3787         (save_stack_pointer): New declaration.
3788
3789         * diagnostic.c (fatal_function): New variable.
3790         (set_fatal_function): New function.
3791         (fatal): Call it.
3792         * diagnostic.h (set_fatal_function): New declaration.
3793
3794 2000-08-15  William Cohen  <wcohen@redhat.com>
3795
3796         * config/sh/elf.h (DWARF2_DEBUGGING_INFO): Defined.
3797         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2 info.
3798         (DWARF2_ASM_LINE_DEBUG_INFO): Defined.
3799
3800 2000-08-15  Richard Henderson  <rth@cygnus.com>
3801
3802         * flow.c (mark_used_reg): Set reg_cond_reg appropriately.
3803
3804 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
3805
3806         * arm.c (arm_function_ok_for_sibcall): New function.
3807         * arm.h (FUNCTION_OK_FOR_SIBCALL): Define.
3808         * arm.md (call expanders): Don't check here for calls that can't
3809         be sibling calls.
3810
3811 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
3812
3813         * arm.md (splits generating cond_exec): Disable.
3814
3815 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
3816
3817         * arm/linux-elf.h (text_section): Delete declaration.
3818
3819 2000-08-15  Richard Earnshaw <rearnsha@arm.com>
3820
3821         ARM support for unordered FP operations.
3822         * arm-protos.h (arm_comparison_operator): Declare.
3823         * arm.c (arm_comparison_operator): New function.
3824         (arm_select_cc_mode): Add unordered comparison codes.
3825         (get_arm_condition_code): Likewise.
3826         (arm_final_prescan_insn): Can't handle unordered jumps that can't
3827         be done in one insn.
3828         * arm.h (PREDICATE_CODES): Add arm_comparison_operator.
3829         * arm.md (all uses of comparison_operator): Replace with
3830         arm_comparison_operator.
3831         (bunordered, bordered, bugt, bunlt, bunge, bunle, buneq, bltgt): New
3832         expands.
3833         (arm_buneq, arm_bltgt, arm_buneq_reversed, arm_bltgt_reveresed): New
3834         patterns.
3835
3836 Tue Aug 15 00:36:36 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
3837
3838         * gthr-posix.h: Conditionally include <sched.h>; include
3839         <config.h> from libobjc/.
3840
3841 2000-08-14  Richard Henderson  <rth@cygnus.com>
3842
3843         * config/i386/i386.c (legitimize_pic_address): Use Pmode
3844         for all CONSTs.
3845
3846 2000-08-14  Richard Henderson  <rth@cygnus.com>
3847
3848         * configure.in (ia64-*): Set float_format for i386 long double.
3849
3850         * real.c (GET_REAL): Treat 128-bit INTEL_EXTENDED_IEEE_FORMAT
3851         as we would for i386 XFmode.
3852         (PUT_REAL): Likewise.
3853         (endian, ereal_atof, real_value_truncate): Likewise.
3854         (ereal_isneg, toe64, etens, make_nan): Likewise.
3855         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Likewise.
3856
3857         * config/ia64/ia64-protos.h: Update.
3858         * config/ia64/ia64.c (general_tfmode_operand): New.
3859         (destination_tfmode_operand): New.
3860         (tfreg_or_fp01_operand): New.
3861         (ia64_split_timode): New.
3862         (spill_tfmode_operand): New.
3863         (ia64_expand_prologue): Use TFmode not XFmode.
3864         (ia64_expand_epilogue): Likewise.
3865         (ia64_function_arg): Likewise.
3866         (ia64_function_arg_advance): Likewise.
3867         (ia64_return_in_memory): Likewise.
3868         (ia64_function_value): Likewise.
3869         (ia64_print_operand): Likewise.
3870         (ia64_register_move_cost): Set GR<->FR to 5.
3871         (ia64_secondary_reload_class): Get GR for TImode memory op.
3872         * config/ia64/ia64.h (ROUND_TYPE_SIZE): Remove.
3873         (ROUND_TYPE_ALIGN): Remove.
3874         (LONG_DOUBLE_TYPE_SIZE): Set to 128.
3875         (INTEL_EXTENDED_IEEE_FORMAT): Define.
3876         (HARD_REGNO_NREGS): Use TFmode, not XFmode.
3877         (HARD_REGNO_MODE_OK): Likewise.  Disallow TImode in FRs.
3878         (MODES_TIEABLE_P): Use TFmode, not XFmode.
3879         (CLASS_MAX_NREGS): Likewise.
3880         (ASM_OUTPUT_LONG_DOUBLE): Output by 4 byte hunks.
3881         (PREDICATE_CODES): Update.
3882         * config/ia64/ia64.md (movti): New.
3883         (movti_internal): Use a clobber for memory alternatives.
3884         (reload_inti, reload_outti): New.
3885         (movsfcc_astep): Predicate properly.
3886         (movdfcc_astep): Likewise.
3887         (movxf): Remove.
3888         (movtf): New.
3889         (extendsftf2, extenddftf2): New.
3890         (trunctfsf2, trunctfdf2): New.
3891         (floatditf2, fix_trunctfdi2): New.
3892         (floatunsditf2, fixuns_trunctfdi2): New.
3893         (addtf3, subtf3, multf3, abstf2): New.
3894         (negtf2, nabstf2, mintf3, maxtf3): New.
3895         (maddtf3, msubtf3, nmultf3, nmaddtf3): New.
3896         (cmptf): New.
3897         (fr_spill): Use TFmode, not XFmode.
3898         (fr_restore): Likewise.
3899         * config/ia64/lib1funcs.asm (__divtf3): New.
3900         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add it.
3901
3902 2000-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3903
3904         * cse.c (fold_rtx): Avoid empty body in an if-statement.
3905
3906         * doloop.c (doloop_iterations_max, doloop_modify): Avoid using the
3907         `U' integer constant suffix.
3908
3909         * dwarf2out.c (add_subscript_info): Avoid empty body in an
3910         else-statement.
3911
3912         * sparc/sol2.h (__enable_execute_stack): Prototype.
3913
3914 2000-08-14  David Edelsohn  <edelsohn@gnu.org>
3915
3916         * collect2.c: Remove use of AIX import file.
3917
3918         * longlong.h: Test ARCH_PWR not ARCH_POWER.
3919
3920         * rs6000.c (print_operand, case 'E'): Add else.
3921
3922 2000-08-14  Richard Henderson  <rth@cygnus.com>
3923
3924         * config/ia64/ia64.md (movdi): Delay calling ia64_expand_load_address.
3925         (movdi_symbolic): New.
3926
3927 2000-08-14  Jim Wilson  <wilson@cygnus.com>
3928
3929         * config/ia64/ia64.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
3930         to GNU as.  For Intel as, pass -M const_gp and -M no_plabel.
3931         * config/ia64/linux.h (ASM_SPEC): Pass -mconstant-gp and -mauto-pic
3932         to GNU as.
3933
3934 2000-08-14  Richard Henderson  <rth@cygnus.com>
3935
3936         * expr.c (emit_group_load): Don't force constants into registers.
3937         Special case source already in the correct mode.
3938
3939 2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
3940
3941         * configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
3942         * fixinc/inclhack.def: Likewise.
3943         * fixinc/mkfixinc.sh: Likewise.
3944         * configure: Regenerate.
3945         * fixinc/fixincl.x: Regenerate.
3946         * install.texi: Document equivalence of linux and linux-gnu.
3947
3948 Mon Aug 14 18:51:44 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3949
3950         * cse.c (insert_regs): Also in REG case: When finding an invalid
3951         value, and we make a new quantity, make sure that it won't be
3952         mistaken by for a valid one by mention_regs.
3953
3954 2000-08-13  Ralf Gütlein <ralf.guetlein@aranea.de>
3955
3956         * h8300.md: Remove obsolete peepholes.
3957
3958 2000-08-13  Kazu Hirata  <kazu@hxi.com>
3959
3960         * invoke.texi (H8/300 Options): Fix typos.
3961         * config/h8300.c: Fix formatting.
3962         * config/h8300.h: Fix comment typos.
3963         (OVERRIDE_OPTIONS): Fix formatting.
3964
3965         * function.c: Fix formatting.
3966
3967         * cse.c: Fix formatting.
3968
3969 2000-08-13  Geoff Keating  <geoffk@cygnus.com>
3970
3971         * flow.c (attempt_auto_inc): Remove unused variable `bb'.
3972         (attempt_auto_inc): Suppress parentheses warning.
3973         * function.c (put_reg_into_stack): Remove unused variable `unsigned_p'.
3974         * loop.c (load_mems): Remove `u' suffix in two places.
3975         * config/rs6000/rs6000.c: Remove unnecessary `u' suffixes from
3976         hex constants.
3977         * config/rs6000/rs6000.h: Likewise.
3978         * config/rs6000/sol-c0.c: Prototype some functions.  Remove the
3979         __eabi dummy routine.
3980         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Remove unused
3981         variable `buf_ptr'.
3982
3983         * config/rs6000/rs6000.c (rs6000_select_section): Rewrite to
3984         not put stuff in .sdata unnecessarily.
3985         (rs6000_unique_section): New function.
3986         * config/rs6000/rs6000-protos.h: Add rs6000_unique_section.
3987         * config/rs6000/sysv4.h (UNIQUE_SECTION): Define.
3988
3989         * c-typeck.c (build_array_ref): Don't complain about non-lvalue
3990         arrays in C99.  Don't try to look at DECL_REGISTER of a
3991         COMPONENT_REF.  Don't complain twice about the same error.
3992
3993         * fixinc/inclhack.def (aix_pthread): New fix.
3994         (aix_sysmachine): New fix.
3995         * fixinc/fixincl.x: Regenerate.
3996
3997         * expr.c (expand_expr): Call convert_modes when turning a large
3998         multiply into a small one.
3999
4000 2000-08-12  Geoff Keating  <geoffk@cygnus.com>
4001
4002         * tree.h (DECL_OFFSET_ALIGN): Make the off_align field of
4003         the tree structure an exponent rather than an explicit alignment
4004         so it doesn't overflow.
4005         (SET_DECL_OFFSET_ALIGN): New macro.
4006         * stor-layout.c (place_union_field): Use SET_DECL_OFFSET_ALIGN
4007         rather than DECL_OFFSET_ALIGN.
4008         (place_field): Likewise.
4009         * expmed.c (store_bit_field): Abort on align==0 to avoid
4010         antisocial machine behaviour.
4011
4012 2000-08-12  Richard Henderson  <rth@cygnus.com>
4013
4014         * sibcall.c (uses_addressof): Accept both addressof and
4015         current_function_internal_arg_pointer inside a mem.
4016         (optimize_sibling_and_tail_recursive_call): Fail tail recursion
4017         if current_function_uses_addressof.
4018         * stmt.c (expand_return): Kill tail recursion and HAVE_return
4019         optimizations.
4020
4021 2000-08-11  Richard Henderson  <rth@cygnus.com>
4022
4023         * config/ia64/ia64.md (addsi3): Remove expander.
4024         (subsi3, mulsi3, negsi2, one_cmplsi2): Likewise.
4025         (*addsi3_shladd): New.
4026
4027 2000-08-11  Richard Henderson  <rth@cygnus.com>
4028
4029         * config/ia64/ia64.c (do_spill): Pass cfa offset to move expander.
4030         (do_restore): Likewise.
4031         (gen_movdi_x, gen_fr_spill_x, gen_fr_restore_x): New.
4032         (ia64_expand_prologue, ia64_expand_epilogue): Use them.
4033         (rtx_needs_barrier): Track actual bit manipulation for
4034         ar.unat moves, gr_spill, and gr_restore.
4035         (emit_insn_group_barriers): Special case gr_spill/gr_restore.
4036         (process_set): Don't handle varargs spills.
4037         * config/ia64/ia64.md (gr_spill): Accept cfa offset.  Emit
4038         .mem.offset here instead of in process_set.
4039         (gr_restore): Likewise.
4040
4041 2000-08-11  Richard Henderson  <rth@cygnus.com>
4042
4043         * config/ia64/ia64.h (PROMOTE_MODE): Only extend to SImode.
4044
4045 2000-08-11  Mark Elbrecht  <snowball3@bigfoot.com>
4046
4047         * gcc.texi (The Configuration File): Document
4048         COLLECT2_HOST_INITIALIZATION, GCC_DRIVER_HOST_INITIALIZATION, and
4049         UPDATE_PATH_HOST_CANONICALIZATION.
4050
4051 2000-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4052
4053         * c-parse.in (cast_expr): Avoid -Wstrict-prototype warnings for
4054         unprototyped function pointer casts on integer constants.
4055
4056 2000-08-11 Laurynas Biveinis <lauras@softhome.net>
4057
4058         * fixproto: Recognize DOS paths with drive letters as absolute paths.
4059
4060 2000-08-11  Nathan Sidwell  <nathan@codesourcery.com>
4061
4062         * extend.texi (Volatiles): Fix typos.
4063
4064 2000-08-11  Kazu Hirata  <kazu@hxi.com>
4065
4066         * flow.c: Fix formatting.
4067
4068 2000-08-11  Richard Henderson  <rth@cygnus.com>
4069
4070         * reload.c (push_secondary_reload): When invoking a reload_{in,out}
4071         pattern, always allocate a tertiary scratch register.
4072
4073         * config/alpha/alpha.md (reload_inqi): Use a DImode scratch.
4074         (reload_inhi): Likewise.
4075
4076 2000-08-11  Richard Henderson  <rth@cygnus.com>
4077
4078         * function.c (put_reg_into_stack): Allow type to be NULL.
4079         (schedule_fixup_var_refs): Likewise.
4080         (gen_mem_addressof): Allow decl to be NULL.
4081         (put_addressof_into_stack): Likewise.
4082
4083         * flow.c (merge_blocks_nomove): Be more careful about
4084         locating the beginning of block A.
4085
4086         * combine.c (simplify_shift_const): Obey SHIFT_COUNT_TRUNCATED.
4087
4088 Thu Aug 10 22:47:09 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4089
4090         * configure.in:
4091         * configure:
4092         * gthr-posix.h:
4093         * config.in: Reverted the check for <sched.h>.
4094
4095 2000-08-10  Chris Demetriou  <cgd@sibyte.com>
4096
4097         * mips/elf.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME): New
4098         macros define the name of CTOR and DTOR sections.
4099         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
4100         DTOR_LIST_END): Change to use attributes to specify
4101         sections.
4102         * mips/elf64.h (CTOR_SECTION_NAME, DTOR_SECTION_NAME,
4103         (CTOR_LIST_BEGIN, CTOR_LIST_END, DTOR_LIST_BEGIN,
4104         DTOR_LIST_END): Same as in mips/elf.h.
4105
4106 2000-08-10  Drew Moseley  <dmoseley@redhat.com>
4107
4108         * config/mn10300/mn10300.h: Added no-crt0 option for explicitly
4109         disabling just crt0.o.
4110
4111 2000-08-10  Richard Earnshaw <rearnshaw@arm.com> & Nick Clifton  <nickc@cygnus.com>
4112
4113         * arm.h (CPP_SPEC): Use sub-spec cpp_interwork.
4114         (CPP_INTERWORK_SPEC, CPP_INTERWORK_DEFAULT_SPEC): New sub-specs.
4115         (EXTRA_SPECS): Add them.
4116         * arm/lib1funcs.asm: Support builds for interworking.
4117         Use macros to eliminate duplicated pieces of code.
4118
4119 2000-08-10  Kazu Hirata  <kazu@hxi.com>
4120
4121         * h8300.c (expand_a_rotate): New.
4122         (emit_a_rotate): Likewise.
4123         (h8300_adjust_insn_length): Add support for the rotate insns.
4124         * h8300.md (rotlqi3): New.
4125         (*rotlqi3_1): Likewise.
4126         (rotlhi3): Likewise.
4127         (*rotlhi3_1): Likewise.
4128         (rotlhi3): Likewise.
4129         (*rotlhi3_1): Likewise.
4130         * h8300-proto.h: Add prototypes for expand_a_rotate and
4131         emit_a_rotate.
4132
4133         * h8300.c: Fix comment typos.
4134         (dosize): Declare the variable amount as unsigned.
4135         (get_shift_alg): Fix a comparison between signed and unsigned.
4136         (emit_a_shift): Likewise.
4137         (h8300_adjust_insn_length): Simplify the code.
4138
4139         * c-decl.c: Fix formatting.
4140
4141 2000-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4142
4143         * c-lex.c (parse_float, yylex): For -Wtraditional, issue a
4144         warning about non-traditional numeric constant suffixes.
4145
4146         * cppexp.c (parse_number): Likewise.
4147
4148         * invoke.texi: (-Wtraditional): Document new behavior.
4149
4150 Thu Aug 10 00:11:04 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4151
4152         * gthr-posix.h: Include auto-host.h. Conditionally include
4153         <sched.h>.
4154         * configure.in: Check for the <sched.h> header file.
4155         * config.in: Added define for HAVE_SCHED_H.
4156
4157 2000-08-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4158
4159         * c-typeck.c (process_init_element): For -Wtraditional, warn about
4160         initialization of unions.
4161
4162         * invoke.texi (-Wtraditional): Document new behavior.
4163
4164 2000-08-09  Zack Weinberg  <zack@wolery.cumb.org>
4165
4166         * configure.in (--enable-c-cpplib): Uncomment.  Use AC_DEFINE
4167         instead of extra_c_flags.
4168         (--enable-c-mbchar): Use AC_DEFINE instead of extra_c_flags.
4169         * configure: Regenerate.
4170         * config.in: Regenerate.
4171
4172         * cpperror.c (cpp_type2name): New function.
4173         * cpplex.c (lex_line): If we issued an error for an invalid
4174         preprocessing directive, discard that logical line.
4175         * cpplib.c (do_line): Call a hook function if the current file
4176         is renamed by #line.
4177         (do_ident): Pass the contents of the string, not the entire
4178         token, to the callback function.
4179         * cpplib.h (CPP_LAST_PUNCTUATOR): New #define.
4180         (cb.rename_file): New hook function.
4181         (cb.ident): Adjust prototype.
4182         (cpp_type2name): Prototype.
4183         * cppmacro.c (dump_macro_args): Correct precedence lossage.
4184
4185         * cppmain.c (cb_ident): Update for changed interface.
4186         (cb_rename_file): New function.
4187         (main): Set rename callback.
4188
4189 2000-08-09  Alexandre Oliva  <aoliva@redhat.com>
4190
4191         * caller-save.c (mark_referenced_regs): Mark partially-overwritten
4192         multi-word registers.
4193
4194 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4195
4196         * c-common.c (combine_strings, check_format_info): Refer to ISO C
4197         or ISO C89 instead of ANSI C.
4198         * c-decl.c (grokdeclarator, xref_tag, finish_struct,
4199         build_enumerator, do_case): Likewise.
4200         * c-lex.c (parse_float, yylex): Likewise.
4201         * c-parse.in: Likewise.
4202         * c-typeck.c (common_type, build_array_ref, build_binary_op,
4203         build_unary_op, pedantic_lvalue_warning, build_conditional_expr,
4204         build_c_cast, convert_for_assignment, set_init_index,
4205         set_init_label, c_expand_start_case): Likewise.
4206         * toplev.c (documented_lang_options, display_help): Likewise.
4207
4208 2000-08-08  Kazu Hirata  <kazu@hxi.com>
4209
4210         * h8300.c: Fix formatting.
4211         * h8300.h: Likewise.
4212         * h8300.md: Likewise.
4213         (movsi_h8300hs): Fix formatting of the resulting assembly code.
4214
4215         * reload1.c: Fix formatting.
4216
4217 2000-08-08  Rodney Brown  <RodneyBrown@mynd.com>
4218
4219         * alpha/alpha.c (alpha_emit_xfloating_libcall):
4220         Use GEN_CALL_VALUE define.
4221         * alpha/alpha.md (untyped_call): Use GEN_CALL define.
4222         * clipper/clipper.md (untyped_call): Likewise.
4223         * dsp16xx/dsp16xx.md (untyped_call): Likewise.
4224         * fx80/fx80.md (untyped_call): Likewise.
4225         * mips/mips.md (untyped_call): Likewise.
4226         * ns32k/ns32k.md (untyped_call): Likewise.
4227         * pa/pa.md (untyped_call): Likewise.
4228         * romp/romp.md (untyped_call): Likewise.
4229         * sparc/sparc.md (untyped_call): Likewise.
4230
4231 2000-08-08  Jason Eckhardt  <jle@cygnus.com>
4232
4233         * config/i860/i860.c (singlemove_string): Do not generate assembler
4234         pseudo instructions that must be expanded (that is, with signed
4235         constants larger than 16 bits).
4236
4237 2000-08-08  Richard Henderson  <rth@cygnus.com>
4238
4239         * flow.c (life_analysis): Only turn off PROP_LOG_LINKS and
4240         PROP_AUTOINC at -O0.  Don't collect alias info at -O0.
4241         (init_propagate_block_info): Don't kill memory stores at -O0.
4242         (mark_set_1, mark_used_regs): Likewise.
4243
4244 2000-08-08  David Edelsohn  <edelsohn@gnu.org>
4245
4246         * rs6000.c (optimization_options): Decorate 'level' as
4247         ATTRIBUTE_UNUSED.
4248         (mask64_operand): Remove sign-extend thinko.
4249         (rldic_operand): New function.
4250         (load_multiple_operation): regno's are unsigned ints.
4251         (store_multiple_operation): Likewise.
4252         (lmw_operation): Likewise.
4253         (stmw_operation): Likewise.
4254         (includes_lshift_p): shift_mask is unsigned int.
4255         (includes_lshift64_p): New function.
4256         (addrs_ok_for_quad_peep): unsigned int reg1.
4257         (print_operand): Consistently add "else" after
4258         output_operand_lossage().
4259         (print_operand, case 'b'): Fold in case 'W'.
4260         (print_operand, case 'W'): Print rldic MB value.
4261         (output_epilogue): Update Objective-C language string.
4262         (output_toc): unsigned HOST_WIDE_INT low, compare unsigned.
4263         * rs6000.h (PREDICATE_CODES): Add rldic_operand.
4264         * rs6000.md (ashldi3): Add rldic instruction.
4265         (iordi3, xordi3): Remove redundant "else if CONST_DOUBLE".
4266         (cmpsi_internal2, cmpdi_interal2): Use 'b' output template
4267         modifier.
4268
4269 2000-08-08  Richard Henderson  <rth@cygnus.com>
4270
4271         * config/ia64/ia64-protos.h: Remove duplicates.  Update
4272         for massive code rearrangements.
4273         * config/ia64/ia64.c (ia64_arpfs_regno): Remove.
4274         (ia64_rp_regno, ia64_fp_regno, ia64_input_regs): Remove.
4275         (ia64_local_regs, ia64_need_regstk): Remove.
4276         (ar_ccv_reg_operand): New.
4277         (ia64_gp_save_reg): New.
4278         (struct ia64_frame_info): Combine most of the size elements;
4279         add new gr save elements.
4280         (find_gr_spill): New.
4281         (next_scratch_gr_reg): New.
4282         (mark_reg_gr_used_mask): New.
4283         (ia64_compute_frame_size): Rewrite.  Allocate special AR regs
4284         to GR backing store regs when possible.
4285         (ia64_initial_elimination_offset): New.
4286         (ia64_rap_fp_offset): Remove.
4287         (save_restore_insns): Remove.
4288         (setup_spill_pointers): New.
4289         (finish_spill_pointers): New.
4290         (spill_restore_mem): New.
4291         (do_spill, do_restore): New.
4292         (ia64_expand_prologue): Rewrite to use them.
4293         (ia64_expand_epilogue): Likewise.
4294         (ia64_direct_return): Update for current_frame_info changes.
4295         (ia64_function_prologue): Simplify .prologue emission.  Emit
4296         .spill when needed.
4297         (ia64_setup_incoming_varargs): Don't ever emit rtl.
4298         (ia64_dbx_register_number): New.
4299         (ia64_initialize_trampoline): New.
4300         (ia64_secondary_reload_class): Request GR_REGS for integer
4301         arithmetic destined for FR_REGS.
4302         (ia64_init_machine_status): Don't reset return_address_pointer_rtx.
4303         (ia64_mark_machine_status): Mark ia64_gp_save.
4304         (rws_access_regno): Rename from rws_access_reg; don't treat
4305         predicates specially.
4306         (rws_access_reg): New.  Update all callers.
4307         (rtx_needs_barrier): Remove dead unspecs.
4308         (ia64_epilogue_uses): Mark ar.pfs and ar.unat live on exit.
4309         (ia64_encode_section_info): Silence signed/unsigned warnings.
4310         (spill_offset, sp_offset, spill_offset_emitted): Remove.
4311         (tmp_reg, tmp_saved): Remove.
4312         (process_set): Rewrite to expect complicated bits via
4313         REG_FRAME_RELATED_EXPR.
4314         (ia64_expand_fetch_and_op): Use emit_move_insn; be explicit
4315         in the use of ar.ccv; never set RTX_UNCHANGING_P.
4316         (ia64_expand_op_and_fetch): Likewise.
4317         (ia64_expand_compare_and_swap): Likewise.
4318         (ia64_expand_builtin): Likewise.
4319         * config/ia64/ia64.h (AR_UNAT_REGNUM): New.
4320         (FIRST_PSEUDO_REGISTER): Update.
4321         (AR_M_REGNO_P): Update.
4322         (FIXED_REGS): Don't mark three local registers as used.
4323         (EXTRA_CC_MODES): New.
4324         (SELECT_CC_MODE): New.
4325         (HARD_REGNO_NREGS): Allow DImode in p0; handle CCImode.
4326         (HARD_REGNO_MODE_OK): Disallow CCImode from non-predicates.
4327         (FRAME_GROWS_DOWNWARD): Unset.
4328         (STARTING_FRAME_OFFSET): Zero.
4329         (ELIMINABLE_REGS): Eliminate from the soft to hard frame pointer.
4330         (INITIAL_ELIMINATION_OFFSET): Defer to out of line function.
4331         (HARD_FRAME_POINTER_REGNUM): New.
4332         (CAN_DEBUG_WITHOUT_FP): Define.
4333         (TRAMPOLINE_TEMPLATE): Remove.
4334         (TRAMPOLINE_SIZE): Lower to 32.
4335         (TRAMPOLINE_ALIGNMENT): Lower to 64.
4336         (INITIALIZE_TRAMPOLINE): Defer to out of line function.
4337         (PREDICATE_CODES): Update.
4338         (struct machine_function): Add ia64_gp_save.
4339         * config/ia64/ia64.md: Purge unused unspecs.
4340         (movsi patterns): Allow moves to/from AR_M_REGS.
4341         (movdi patterns): Allow moves to/from p0.
4342         (call patterns): Move most setjmp hackery to ia64_gp_save_reg.
4343         (gr_spill, gr_restore): Indicate ar.unat read/written.
4344         (nonlocal_goto): Don't pass old frame_pointer.
4345         (nonlocal_goto_receiver): Remove.
4346         (exception_receiver): New.
4347         (builtin_setjmp_setup): New.
4348         (builtin_setjmp_receiver): New.
4349         * config/ia64/lib1funcs.asm (__ia64_save_stack_nonlocal): Bundle.
4350         (__ia64_nonlocal_goto): Bundle.  Don't kill r7.
4351         (__ia64_restore_stack_nonlocal): Likewise.
4352         (__ia64_trampoline): New.
4353         * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Defer to out of line
4354         function.
4355         * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __trampoline.
4356
4357 2000-08-08  Richard Henderson  <rth@cygnus.com>
4358
4359         * frame.h (ia64_frame_state): Add my_psp.
4360         * libgcc2.c (ia64_throw_helper): Add throw_sp argument.
4361         (__throw): Pass it in.  Don't clobber r7.
4362         * config/ia64/frame-ia64.c (init_ia64_reg_loc): Mark inline.
4363         (execute_one_ia64_descriptor) [mem_stack_v]: Sets psp.when
4364         and nothing to do with sp.
4365         (normalize_reg_loc): Use frame->my_psp.
4366         (frame_translate): Handle frame-pointer-less functions.  Set
4367         spill_base correctly, in absence of being told.
4368         (__build_ia64_frame_state): New sp argument.  Fill in frame->my_sp.
4369         (__ia64_backtrace_helper): New sp argument.  Use
4370         builtin_return_address instead of label addresses.
4371         (print_record) [mem_stack_v]: No size member.
4372
4373 2000-08-08  Richard Henderson  <rth@cygnus.com>
4374
4375         * regclass.c (choose_hard_reg_mode): Iterate over all CC modes.
4376
4377 2000-08-08  Richard Henderson  <rth@cygnus.com>
4378
4379         * tm.texi (LOCAL_REGNO): Document.
4380         * flow.c (LOCAL_REGNO, EPILOGUE_USES): Provide default.
4381         (mark_regs_live_at_end): Don't mark LOCAL_REGNO registers.
4382         * reload1.c (reload): Likewise when considering nonlocal labels.
4383
4384         * config/ia64/ia64.h (LOCAL_REGNO): New.
4385         * config/sparc/sparc.h (LOCAL_REGNO): New.
4386
4387 2000-08-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4388
4389         * c-lex.c (yylex): Don't allow integer suffixes 'LUL', 'Ll', 'lL'.
4390
4391 2000-08-07  Nick Clifton  <nickc@redhat.com>
4392
4393         * config/mips/mips.c: Fix compile time warning messages.
4394         * config/mips/mips-protos.h: Add prototype for equality_op.
4395
4396         * mn10300.h (TARGET_SWITCHES): Document `-mam33'.
4397
4398 2000-08-07  Graham Stott  <grahams@cygnus.co.uk>
4399
4400         * mn10300.md: Use nonimmediate_operand instead of general_operand
4401         on output operands.
4402
4403         * mn10300.h (PREFERRED_RELOAD_CLASS): Limit memory reloads.
4404
4405 2000-08-07  Alexandre Oliva  <aoliva@redhat.com>
4406
4407         * sh.h (EXTRA_CONSTRAINT_Q): Adjust to GNU Coding Standards.
4408         * sh.c (expand_block_move): Break long lines.
4409         (expand_ashiftrt, fpscr_set_from_mem): Likewise.
4410         * sh.md (mulsi3): Likewise.
4411         (movdi): Adjust spacing.
4412
4413 2000-08-07  Richard Henderson  <rth@cygnus.com>
4414
4415         * expmed.c (store_bit_field): Don't require MEM_IN_STRUCT_P.
4416         * expr.c (emit_group_store): Don't set it.
4417
4418 2000-08-07  Kazu Hirata  <kazu@hxi.com>
4419
4420         * invoke.texi (Options for Debugging Your Program or GCC): Remove
4421         duplicate entries for 'w' and 'z'.
4422
4423         * flow.c: Fix a comment typo.
4424
4425 Sun Aug  6 23:47:35 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4426
4427         * c-parse.in: Changed the language string for Objective-C to "GNU
4428         Objective-C".
4429
4430 Sun Aug  6 11:54:03 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4431
4432         * gthr-posix.h: Integrated Chris Ball's <cball@fmco.com> changes
4433         to improve the Posix thread support for Objective-C.
4434
4435 2000-08-06  Joseph S. Myers  <jsm28@cam.ac.uk>
4436
4437         * c-common.h (enum c_tree_index): Add CTI_SIGNED_SIZE_TYPE and
4438         CTI_UNSIGNED_PTRDIFF_TYPE.
4439         (signed_size_type_node): Define.
4440         (unsigned_ptrdiff_type_node): Define.
4441         * c-decl.c (init_decl_processing): Create the
4442         signed_size_type_node and unsigned_ptrdiff_type_node types.
4443         * c-common.c (T_SC): Define.
4444         (T_SST): Define.
4445         (T_UPD): Define.
4446         (print_char_table): Use T_SST for %zd, %zi, %zn.  Use T_UPD for
4447         %to, %tu, %tx, %tX.  Allow %hhn (T_SC).  Add "c" to the flags for
4448         %s and %p.
4449         (scan_char_table): Use T_SC for %hhd, %hhi, %hhn.  Use T_SST for
4450         %zd, %zi, %zn.  Use T_UPD for %to, %tu, %tx, %tX.  Add "c" to the
4451         flags for %c, %s and %[.
4452         (check_format_info): Only allow leniency for signedness of targets
4453         of character pointers (when pedantic) for formats flagged with
4454         "c", so for strings but not for %hh formats.  When pedantic, don't
4455         allow character pointers to substitute for void pointers if a
4456         second level of indirection is present.
4457
4458 2000-08-06  Kazu Hirata  <kazu@hxi.com>
4459
4460         * invoke.texi (Options for Debugging Your Program or GCC): Update
4461         the names of dump files.
4462
4463         * h8300.c (dosize): Rearrange code for conciseness.
4464         (split_adds_subs): Likewise.
4465
4466         * loop.c: Fix formatting.
4467
4468         * dwarf2out.c: Fix formatting.
4469
4470         * tm.texi (FUNCTION_ARG_PARTIAL_NREGS): Fix a typo.
4471
4472         * expr.c: Fix formatting.
4473
4474 2000-08-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4475
4476         * rs6000.c (rs6000_maybe_dead): Prototype.
4477
4478 2000-08-06  Richard Henderson  <rth@cygnus.com>
4479
4480         * stmt.c (expand_goto): Do virtual_stack_vars_rtx replacement for
4481         HAVE_nonlocal_goto as well.
4482         * config/i960/i960.md (nonlocal_goto): Don't do it here.
4483         * config/pj/pj.md (nonlocal_goto): Likewise.
4484
4485 2000-08-07  Michael Hayes  <mhayes@cygnus.com>
4486
4487         * loop.c (try_swap_copy_prop): New function.
4488         (load_mems): Rename copies to load_copies and add new regset
4489         store_copies.  Check for sets of shadow registers and mark
4490         in store_copies.   Call try_swap_copy_prop for registers
4491         marked in store_copies.
4492
4493 Sun Aug  6 00:54:42 2000  Ovidiu Predescu  <ovidiu@cup.hp.com>
4494
4495         * objc/objc-act.c: New command line option -fconstant-string-class
4496         to allow specifying a user defined constant string class,
4497         different from NXConstantString.
4498
4499         * toplev.c: Moved the Objective-C specific options to
4500         objc/lang-options.h.
4501
4502         * objc/lang-options.h: Moved the Objective-C specific options from
4503         toplev.c. Added -fconstant-string-class.
4504
4505 2000-08-05  Chris Demetriou  <cgd@sibyte.com>
4506
4507         * mips/elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4508         DTOR_LIST_BEGIN, DTOR_LIST_END): change type of
4509         __CTOR_LIST__ from func_ptr array to just func_ptr, to
4510         avoid extra alignment imposed on arrays.
4511         * mips/elf64.h (CTOR_LIST_BEGIN, CTOR_LIST_END,
4512         DTOR_LIST_BEGIN, DTOR_LIST_END): Likewise.
4513
4514         * mips.h: Clean up comments and spacing near MASKs.
4515         (TARGET_UNIX_ASM): Delete.
4516         (MASK_MIPS16, MASK_NO_CHECK_ZERO_DIV, MASK_CHECK_RANGE_DIV,
4517         MASK_UNINIT_CONST_IN_RODATA): Change values to make mask
4518         values contiguous.
4519
4520 2000-08-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4521
4522         * c-common.c (print_char_table): Add entries for the X/Open '
4523         format flag (print decimals with locale's thousands grouping
4524         character).  Make %C expect wint_t.
4525         (check_format_info): If pedantic, warn when the %n$ operand
4526         number form is used.  Allow for the ' flag; warn about it if
4527         pedantic.
4528
4529 2000-08-05  Zack Weinberg  <zack@wolery.cumb.org>
4530
4531         * i386.h (FUNCTION_OK_FOR_SIBCALL):  Not OK if DECL's return
4532         type is a float mode, cfun->decl's return type is not, and
4533         TARGET_FLOAT_RETURNS_IN_80387.
4534
4535 2000-08-04  Andreas Schwab  <schwab@suse.de>
4536
4537         * cppmain.c (cb_def_pragma): Skip the first two tokens from the
4538         token list, which are always `#' and `pragma'.
4539
4540 2000-08-04  Zack Weinberg  <zack@wolery.cumb.org>
4541
4542         * tree.c (tree_expr_nonnegative_p): Move to...
4543         * fold-const.c: ... here.  Also handle BIND_EXPR and RTL_EXPR.
4544         (rtl_expr_nonnegative_p): New.
4545         * tree.h: Add prototype for rtl_expr_nonnegative_p.
4546
4547         * real.h (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH, CONST_DOUBLE_MEM,
4548         CONST_DOUBLE_CHAIN: Move to...
4549         * rtl.h: ...here.  Use XCINT/XCEXP.
4550
4551         * Makefile.in: Remove toplev.o from OBJS.  Add rule to make
4552         libbackend.a; add libbackend.a to STAGESTUFF.  Add BACKEND
4553         variable.  Use BACKEND when linking cc1, not OBJS.  Add BACKEND
4554         to VOL_FILES.
4555
4556         * objc/Make-lang.in (cc1obj): Link with $(BACKEND).
4557
4558 2000-08-05  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4559
4560         * config/c4x/c4x.md (return_indirect_internal): New.
4561         * config/c4x/c4x.c (c4x_expand_epilogue): Use it.
4562
4563 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4564
4565         * c-common.c (time_char_table): Mark up formats added in C99 and
4566         make other corrections.  %D and %g were added in C99.  %Og is an
4567         extension.  %EX is permitted.  %R, %T, %n, %r, %t were added in
4568         C99.  %e was added in C99.  %Oj is an extension.  %G and %z are in
4569         C99 rather than GNU extensions, but %OG and %Oz are extensions.
4570         %h was added in C99.  %C was added in C99.  %OY and %OC are
4571         extensions.  Add the C99 format %F.
4572         (check_format_info): If pedantic and not in C99 mode, warn for C99
4573         formats, %E and %O.
4574
4575 Fri Aug  4 23:01:58 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4576
4577         * function.c (schedule_fixup_var_refs): New function, broken out
4578         of put_reg_into_stack.
4579         (put_reg_into_stack): Use it.
4580         (put_var_into_stack): In CONCAT case, fixup up references for
4581         components only after fixing up references to the whole concat.
4582
4583 2000-08-04  Rodney Brown  <RodneyBrown@pmsc.com>
4584
4585         * alias.c (mark_constant_function): Use INSN_P.
4586         (init_alias_analysis): Likewise.
4587         * combine.c (combine_instructions): Use INSN_P.
4588         (can_combine_p): Likewise.
4589         (try_combine): Likewise.
4590         (distribute_notes): Likewise.
4591         (distribute_links): Likewise.
4592         * cse.c (cse_around_loop): Use INSN_P.
4593         (invalidate_skipped_block): Likewise.
4594         (cse_set_around_loop): Likewise.
4595         (cse_end_of_basic_block): Likewise.
4596         (delete_trivially_dead_insns): Likewise.
4597         * emit-rtl.c (unshare_all_rtl_again): Use INSN_P.
4598         (unshare_all_rtl_1): Likewise.
4599         (next_cc0_user): Likewise.
4600         (try_split make_insn_raw): Likewise.
4601         (remove_unnecessary_notes): Likewise.
4602         * final.c (shorten_branches): Use INSN_P.
4603         (leaf_renumber_regs): Likewise.
4604         (leaf_renumber_regs_insn): Likewise.
4605         * flow.c (find_label_refs): Use INSN_P.
4606         (verify_wide_reg): Likewise.
4607         (notice_stack_pointer_modification): Likewise.
4608         (count_or_remove_death_notes): Likewise.
4609         (verify_flow_info): Likewise.
4610         (clear_log_links): Likewise.
4611         * function.c (fixup_var_refs_insns): Use INSN_P.
4612         (compute_insns_for_mem): Likewise.
4613         * gcse.c (alloc_gcse_mem): Use INSN_P.
4614         (compute_sets): Likewise.
4615         (compute_hash_table): Likewise.
4616         (classic_gcse): Likewise.
4617         (cprop): Likewise.
4618         (insert_insn_end_bb): Likewise.
4619         (delete_null_pointer_checks_1): Likewise.
4620         * global.c (expand_preferences): Use INSN_P.
4621         (build_insn_chain): Likewise.
4622         * graph.c (node_data): Use INSN_P.
4623         * haifa-sched.c (priority): Use INSN_P.
4624         (rm_line_notes): Likewise.
4625         (rm_other_notes): Likewise.
4626         (find_insn_reg_weight): Likewise.
4627         (init_target_units): Likewise.
4628         (schedule_block): Likewise.
4629         (compute_block_forward_dependences): Likewise.
4630         (debug_dependencies): Likewise.
4631         (set_priorities): Likewise.
4632         * integrate.c (function_cannot_inline_p): Use INSN_P.
4633         (save_parm_insns): Likewise.
4634         (copy_insn_list): Likewise.
4635         * jump.c (mark_all_labels): Use INSN_P.
4636         (never_reached_warning): Likewise.
4637         * lcm.c (optimize_mode_switching): Use INSN_P.
4638         * local-alloc.c (validate_equiv_mem): Use INSN_P.
4639         (memref_used_between_p): Likewise.
4640         (update_equiv_regs): Likewise.
4641         (block_alloc): Likewise.
4642         (no_conflict_p): Likewise.
4643         * loop.c (scan_loop): Use INSN_P.
4644         (find_and_verify_loops): Likewise.
4645         (count_loop_regs_set): Likewise.
4646         (loop_reg_used_before_p): Likewise.
4647         (strength_reduce): Likewise.
4648         (recombine_givs): Likewise.
4649         (check_dbra_loop): Likewise.
4650         (load_mems): Likewise.
4651         (try_copy_prop): Likewise.
4652         * print-rtl.c (print_rtx): Use INSN_P.
4653         * recog.c (find_single_use): Use INSN_P.
4654         * reg-stack.c (stack_regs_mentioned): Use INSN_P.
4655         (next_flags_user): Likewise.
4656         (swap_rtx_condition): Likewise.
4657         * regmove.c (mark_flags_life_zones): Use INSN_P.
4658         (optimize_reg_copy_1): Likewise.
4659         (optimize_reg_copy_2): Likewise.
4660         (optimize_reg_copy_3): Likewise.
4661         (reg_is_remote_constant_p): Likewise.
4662         (fixup_match_2): Likewise.
4663         (regmove_optimize): Likewise.
4664         (fixup_match_1): Likewise.
4665         * regrename.c (build_def_use): Use INSN_P.
4666         (replace_reg_in_block): Likewise.
4667         (consider_use): Likewise.
4668         * reload.c (find_equiv_reg): Use INSN_P.
4669         * reload1.c (reload): Use INSN_P.
4670         (maybe_fix_stack_asms): Likewise.
4671         (calculate_needs_all_insns): Likewise.
4672         (reload_as_needed): Likewise.
4673         (emit_output_reload_insns): Likewise.
4674         (delete_address_reloads_1): Likewise.
4675         (reload_cse_regs_1): Likewise.
4676         (reload_combine): Likewise.
4677         (reload_cse_move2add): Likewise.
4678         * reorg.c (redundant_insn): Use INSN_P.
4679         (dbr_schedule): Likewise.
4680         * resource.c (find_dead_or_set_registers): Use INSN_P.
4681         (mark_target_live_regs): Likewise.
4682         * rtlanal.c (reg_used_between_p): Use INSN_P.
4683         (reg_referenced_between_p): Likewise.
4684         (reg_set_between_p): Likewise.
4685         (reg_set_p): Likewise.
4686         (single_set): Likewise.
4687         (multiple_sets): Likewise.
4688         (find_last_value): Likewise.
4689         (reg_set_last): Likewise.
4690         (find_reg_note): Likewise.
4691         (find_regno_note): Likewise.
4692         * sibcall.c (sequence_uses_addressof): Use INSN_P.
4693         * simplify-rtx.c (cselib_process_insn): Use INSN_P.
4694         * ssa.c (find_evaluations): Use INSN_P.
4695         (rename_block): Likewise.
4696         (rename_equivalent_regs): Likewise.
4697         * unroll.c (loop_find_equiv_value): Use INSN_P.
4698         (set_dominates_use): Likewise.
4699         * varasm.c (mark_constant_pool): Use INSN_P.
4700         (mark_constants): Likewise.
4701         * config/alpha/alpha.c (alpha_does_function_need_gp): Use INSN_P.
4702         (alphaev4_next_group): Likewise.
4703         (alphaev5_next_group): Likewise.
4704         * config/c4x/c4x.c (c4x_process_after_reload): Use INSN_P.
4705         (c4x_rptb_rpts_p): Likewise.
4706         * config/mips/mips.c (mips16_optimize_gp): Use INSN_P.
4707         * config/rs6000/rs6000.c (uses_TOC): Use INSN_P.
4708         (rs6000_adjust_priority): Likewise.
4709         * config/sh/sh.c (sh_loop_align): Use INSN_P.
4710         (machine_dependent_reorg): Likewise.
4711         (split_branches): Likewise.
4712         * config/tahoe/tahoe.c (tahoe_cmp_check): Use INSN_P.
4713
4714 Fri Aug  4 11:43:49 2000  John Wehle  (john@feith.com)
4715
4716         * combine.c (recog_for_combine): Remove the old notes
4717         prior to attempting to recognize the new pattern.
4718         (distribute_notes): Ignore REG_NONNEG notes.
4719
4720 2000-08-04  Chandrakala Chavva  <cchavva@redhat.com>
4721
4722         * varasm.c (output_constructor): Add .align 0 for packed vars.
4723
4724 2000-08-04  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
4725
4726         * configure.in: Use default thread_file even when enable_threads is
4727         yes or dce because hpux10.20 pa port uses MULTILIB implementation.
4728         * configure: Rebuilt.
4729
4730         * gthr-dce.h (__gthread_objc_condition_allocate): Fix typo.
4731
4732 2000-08-04  Donn Terry (donnte@microsoft.com)
4733
4734         * prefix.c (translate_name): Don't strip trailing DIR_SEPARATOR.
4735
4736 2000-08-04  Mark Elbrecht  <snowball3@bigfoot.com>
4737
4738         * i386/x-djgpp: Delete code that conditionally modifies target_alias.
4739         Delete code that conditionally modifies 'version'.
4740         Delete X_CPPFLAGS. Add comment for SYSTEM_HEADER_DIR.
4741         * i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): New macro.
4742         * gcc.c (main): Use it.
4743         * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): New macro.
4744         * prefix.c (update_path): Use it.
4745         * i386/djgpp.h (STANDARD_INCLUDE_DIR): Define.
4746         (MD_EXEC_PREFIX): Set to '/dev/env/DJDIR/bin/'.
4747         (ASM_OUTPUT_SECTION_NAME): Add code attribute to sections containing
4748         code.
4749         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Default to true.
4750         (SUBTARGET_SWITCHES): Adjust.
4751         (WCHAR_UNSIGNED, WCHAR_TYPE_SIZE, WCHAR_TYPE): Undefine before
4752         defining.
4753         (WINT_TYPE, SIZE_TYPE, PTRDIFF_TYPE): Define.
4754
4755 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4756
4757         * c-common.h (flag_isoc94): Declare.
4758         * c-decl.c (flag_isoc94): Define.
4759         (c_decode_option): Set flag_isoc94 as appropriate.
4760         * c-common.c (T_PD, T_IM, T_UIM): Define.
4761         (format_char_info): Add tlen and jlen.
4762         (print_char_table): Add entries for %t and %j.  Allow %zn.  Allow
4763         %F.  Allow %lf.
4764         (scan_char_table): Add entries for %t and %j.  Allow %F.  Allow
4765         %l[.
4766         (time_char_table): Add NULL entries for %t and %j.
4767         (check_format_info): Allow for %t and %j.  Warn for %F if pedantic
4768         and not C99.  Warn for %lc, %ls and %l[ if pedantic and not C94.
4769         Warn for printf %lf if pedantic and not C99.  Don't warn for empty
4770         precision.  Allow precision argument to be unsigned int.  If
4771         pedantic, warn for %p passed an argument not a pointer to possibly
4772         qualified void or a possibly qualified character type, and for
4773         pointer targets of the wrong sign, except for character pointers.
4774
4775 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4776
4777         * ginclude/stddef.h: Don't declare wint_t unless __need_wint_t.
4778         * c-common.h (enum c_tree_index): Add CTI_WINT_TYPE.
4779         (wint_type_node): Define.
4780         * c-decl.c (WINT_TYPE): Define.
4781         (init_decl_processing): Create the wint_type_node type.
4782         * c-common.c (T_WI): Define.
4783         (print_char_table): Use T_WI for %lc format.
4784
4785 2000-08-04  Bruce Korb  <bkorb@gnu.org>
4786
4787         * fixinc/:  Verified that the MSDOS patch does not break
4788         the UNIX functionality and applied the next three patches
4789         from July:
4790
4791 2000-07-28  Eli Zaretskii  <eliz@is.elta.co.il>
4792
4793         * fixinc/fixfixes.c (main) [__MSDOS__]: Avoid overwriting the
4794         output file with the temporary one by appending ".X" to generate
4795         the temporary fuile's name.  If the output file already has an
4796         extension, replace it with ".X".
4797
4798         * fixinc/fixincl.c (fix_with_system) [__MSDOS__]: Use $ORIGDIR,
4799         not $DESTDIR, to find applyfix.  Use sprintf instead of snprintf;
4800         reallocate the command buffer while copying the command-line
4801         argument.  Redirect the output directly to the temporary file,
4802         instead of going through another temporary file.
4803         (process): Close the temporary file before unlinking it.
4804         (machine_matches) [__MSDOS__]: If the machine doesn't match, set
4805         the FD_SKIP_TEST flag.  Pay attention to the FD_MACH_IFNOT flag.
4806         (run_compiles): Pass p_fixd argument to machine_matches, as it
4807         expects.
4808
4809         * fixinc/fixincl.sh: Export ORIGDIR.  If $DJDIR is set in the
4810         environment, assume there are no symlinks in the include
4811         directory.  When cleaning up the DONE files, look for them
4812         case-insensitively.  Don't try to remove symlinks if they aren't
4813         there.
4814
4815         * fixinc/fixlib.c (make_raw_shell_str): Accept new argument smax;
4816         all callers changed.  Declare pz "const char *", to avoid compiler
4817         warnings.
4818
4819         * fixinc/fixlib.h (ENV_TABLE): Get ORIGDIR from the environment.
4820         Change prototype of make_raw_shell_str.
4821
4822 2000-07-27  Eli Zaretskii  <eliz@is.elta.co.il>
4823
4824         * fixinc/fixincl.c [__MSDOS__]: Don't include "server.h".
4825         (initialize) [__MSDOS__]: Use tempnam.
4826         (initialize): Don't use SIGPIPE if it is not defined.
4827
4828         * fixinc/fixfixes.c (main) [__MSDOS__]: freopen for stdout should
4829         return stdout.
4830
4831 2000-07-25  Bruce Korb  <bkorb@gnu.org>
4832
4833         * fixinc/fix*.[ch]: substantially reworked to make it possible
4834         to run this program without using fork(2) or pipe(2) (i.e. in
4835         a DOS environment).
4836
4837 2000-08-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4838
4839         * cppdefault.h (WINT_TYPE): Define.
4840         * cppinit.c (builtin_array): Define __WINT_TYPE__.
4841         * tradcpp.c (initialize_builtins): Define __WINT_TYPE__.
4842         * tm.texi (NO_BUILTIN_WINT_TYPE, WINT_TYPE): Document.
4843
4844 Fri Aug  4 06:53:46 2000  Clinton Popetz  <cpopetz@cygnus.com>
4845
4846         * (mips_legitimate_address_p): Don't allow register+offset
4847         if the offset is large and negative, and we are compiling
4848         for 64 bit registers.
4849
4850 2000-08-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4851
4852         * gencodes.c (main): Define CODE_FOR_nothing as the last possible
4853         insn_code_number + 1.
4854
4855 2000-08-04  Kazu Hirata  <kazu@hxi.com>
4856
4857         * h8300.c (function_prologue): Rearrange code for conciseness.
4858         (function_epilogue): Likewise.
4859         * h8300.h (OK_FOR_U): Fix formatting.
4860
4861         * cse.c: Fix a comment typo. Fix formatting.
4862
4863 2000-08-03  Richard Henderson  <rth@cygnus.com>
4864
4865         * config/i386/i386.md (return_indirect_internal): New.
4866         * config/i386/i386.c (ix86_expand_epilogue): Use it.
4867
4868 2000-08-03  Zack Weinberg  <zack@wolery.cumb.org>
4869
4870         * cpplex.c (parse_name): Might have to glue a CPP_OTHER token
4871         before the name.
4872         (lex_line): Glue @ onto the beginning of identifiers and
4873         string constants, in Objective-C mode.
4874         (output_token, spell_token): Handle CPP_OSTRING.
4875         (can_paste, maybe_paste_with_next): Handle pasting @ onto the
4876         beginning of a NAME or a STRING, in objc mode.
4877
4878         * cpplib.c (get_define_node): Do not permit identifiers that
4879         begin with @ to be #defined.
4880         * cppmacro.c (CAN_PASTE_AFTER): Add CPP_OTHER.
4881         * cpplib.h (TTYPE_TABLE): Add CPP_OSTRING.
4882
4883         * c-lang.c, objc/objc-act.c (build_objc_string): Delete.
4884         * c-tree.h (build_objc_string): Delete prototype.
4885         * objc/objc-tree.def: Delete OBJC_STRING_CST.
4886         * c-lex.c (yylex): Use build_string for all three kinds of strings.
4887
4888         * c-parse.in, objc/objc-act.c: Update commentary.
4889
4890 2000-08-03  Mark Mitchell  <mark@codesourcery.com>
4891
4892         * extend.texi: Fix typo in last change.
4893
4894         * extend.texi: Add commentary on statement-expressions and their
4895         interactions with C++.
4896
4897 2000-08-03  Nick Clifton  <nickc@cygnus.com>
4898
4899         * dwarf2.h (DW_LANG_Java): Change value to 0x000b.
4900         * dwarf.h (LANG_JAVA): Change value to 0x000b.
4901
4902 2000-08-03  Anthony Green  <green@cygnus.com>
4903
4904         * dwarf2out.c (gen_compile_unit_die): Add java language support.
4905         (add_bound_info): Check for java language.
4906         (is_java): New function.
4907         * dwarfout.c (output_compile_unit_die): Ditto.
4908         * dwarf.h (dwarf_source_language): Add java source language type.
4909         * dwarf2.h (dwarf_source_language): Ditto.
4910
4911 Thu Aug  3 20:32:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
4912
4913         * reg-stack.c (subst_stack_regs_pat):  Use replace_reg to swap
4914         operands.
4915
4916         * i386.c (ix86_expand_branch): Mode of comparison in
4917         IF_THEN_ELSE is VOIDmode.
4918
4919 Thu Aug  3 10:05:53 2000  Akiko Matsushita <matusita@sra.co.jp>
4920
4921         * gengenrtl.c, rtl.c: Avoid #elif.
4922
4923 2000-08-03  Michael Poole  <poole@troilus.org>
4924
4925         * tm.texi (Register Classes): Clarify order of sub-initializers
4926         in REG_CLASS_CONTENTS.
4927
4928 Thu Aug  3 15:53:03 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
4929
4930         From SAITOH Masanobu:
4931         * sh.h (ASM_OUTPUT_REG_PUSH): Fix syntax.
4932
4933 2000-08-03  David Billinghurst  <David.Billinghurst@riotinto.com.au>
4934
4935         * config/i386/cygwin.h: Remove -remap from CPP_SPEC since this option
4936         is not supported by tradcpp and isn't actually needed for cygwin.
4937
4938 2000-08-03  Kazu Hirata  <kazu@hxi.com>
4939
4940         * h8300.c: Fix a comment typo.
4941         * h8300.h (OK_FOR_U): Accept a 32-bit constant address on H8/S.
4942
4943         * jump.c: Fix formatting.
4944
4945         * toplev.c: Fix formatting.
4946
4947 Thu Aug  3 01:05:32 2000  Jeffrey A Law  (law@cygnus.com)
4948
4949         * flow.c (find_auto_inc): Verify that we've got a REG before
4950         peeking at its regno.  Fail, don't abort if we can't find
4951         the increment of the desired register.
4952
4953         * pa.md (shadd height reduction patterns/splitters): Remove.
4954
4955 2000-08-02  Jim Wilson  <wilson@cygnus.com>
4956
4957         * config/ia64/ia64-protos.h (flag_ssa): Declare.
4958         * config/ia64/ia64.md (movti_internal, movti_internal+1): New.
4959
4960 2000-08-02  Mark Mitchell  <mark@codesourcery.com>
4961
4962         * dce.c: Remove all uses of assert.
4963         * dwarf2out.c: Likewise.
4964         * dwarfout.c: Likewise.
4965         * ssa.c: Likewise.
4966
4967 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
4968
4969         * gcc.h (lang_specific_driver): Constify second argument.
4970         * gcc.c (translate_options, process_command, main): Likewise.
4971         Constify variables to match.  Cast second argument to
4972         pexecute.
4973
4974         * cppspec.c, gccspec.c: Adjust type of second argument to
4975         lang_specific_driver, and update code as necessary.
4976
4977 2000-08-02  Jakub Jelinek  <jakub@redhat.com>
4978
4979         * loop.c (scan_loop): Ensure update_end label does not
4980         go away until reg_scan_update is run.
4981
4982 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
4983
4984         * c-common.h: Prototype min_precision and c_build_qualified_type here...
4985         * c-tree.h: ... not here.
4986         * errors.h: Prototype fancy_abort.
4987
4988         * emit-rtl.c (gen_lowpart_common): Move variable 'c' into
4989         HOST_BITS_PER_WIDE_INT == 64 ifdef block.
4990         * regrename.c (regrename_optimize): Make control flow explicit.
4991         (replace_reg_in_block): Initialize reg_use to 0.
4992
4993         * i386.c (legitimate_address_p): Rename error label to
4994         report_error to avoid namespace clash.
4995
4996 2000-08-02  Kazu Hirata  <kazu@hxi.com>
4997
4998         * fold-const.c: Fix formatting.
4999
5000 Wed Aug  2 16:26:15 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5001
5002         * i386.c (legitimate_address_p): Accept other bases than
5003         pic_offset_table_rtx for GOTOFF constructs.
5004
5005 Wed Aug  2 15:59:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5006
5007         * i386.md (shift to lea splitter): Use const_int_operand.
5008
5009 2000-08-02  Zack Weinberg  <zack@wolery.cumb.org>
5010
5011         * cppexp.c, cppinit.c, cpplex.c, cpplib.c, cppmacro.c,
5012         cppspec.c: Do not use 'legal' or 'illegal' in error messages
5013         and comments.
5014
5015         * cppmain.c (cb_define, cb_undef): Don't generate any output
5016         if not done_initializing.
5017         * cpplex.c (maybe_paste_with_next): When the token after a ##
5018         is an omitted rest argument, only delete the token before it
5019         if that token is a comma.  Do not warn about bogus token
5020         pastes for , ## rest_arg.
5021
5022         * cpp.texi: Update.
5023         * cpp.1: Regenerate.
5024
5025 2000-08-02  Fred Fish  <fnf@be.com>
5026
5027         * config/i386/beos-elf.h (STARTFILE_SPEC): Add i386-mcount.o
5028         when user gives -p option.  Add init_term_dyn.o for BeOS 5.0
5029         and later.
5030
5031         * config/i386/beos-elf.h (INCLUDE_DEFAULTS): Add additional
5032         Be directories to search path.
5033
5034         Remove support for __declspec(dllimport) and __declspec(dllexport).
5035         This is leftover cruft from the earlier BeOS gcc port when BeOS
5036         used Microsoft's PE object file format.
5037         * configure.in (i*86-*-beoself): Remove extra_objs=winnt.o.
5038         * config/i386/t-beos (winnt.o): Remove Makefile frag.
5039         * config/i386/beos-elf.h (TARGET_NOP_FUN_DLLIMPORT): Remove.
5040         (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
5041         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
5042         (MERGE_MACHINE_DECL_ATTRIBUTES): Remove.
5043         (REDO_SECTION_INFO_P): Remove.
5044         (ASM_EXPORT_DECL): Remove.
5045         (ASM_DECLARE_FUNCTION_NAME): Remove.
5046         (ASM_DECLARE_OBJECT_NAME): Remove.
5047         (ASM_OUTPUT_ALIGNED_COMMON): Remove.
5048         (ASM_OUTPUT_ALIGNED_DECL_COMMON): Remove.
5049         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
5050         (STRIP_NAME_ENCODING): Remove.
5051
5052         Remove support for obsolete version of BeOS that is no longer
5053         supported by Be.
5054         * configure.in (i*86-*-beospe*): Remove.
5055         * config/i386/beos-pe.h: Remove.
5056
5057 2000-08-01  Jeffrey Oldham  <oldham@codesourcery.com>
5058             Mark Mitchell <mark@codesourcery.com>
5059
5060         * Makefile.in (OBJS): Added dce.o.
5061         (ssa.o): Updated target to include ssa.h.
5062         (flow.o): Likewise.
5063         (toplev.o): Likewise.
5064         (dce.o): Created target.
5065         * basic-block.h: Added comments.
5066         (INVALID_BLOCK): Added definition.
5067         (connect_infinite_loops_to_exit): Added declaration.
5068         Moved SSA declarations to ssa.h.
5069         * flow.c: Added inclusion of ssa.h.
5070         (struct depth_first_search_dsS, depth_first_search_ds):
5071         Added definitions.
5072         (compute_immediate_postdominators): Added definition.
5073         (connect_infinite_loops_to_exit): Likewise.
5074         (flow_dfs_compute_reverse_init): Likewise.
5075         (flow_dfs_compute_reverse_add_bb): Likewise.
5076         (flow_dfs_compute_reverse_execute): Likewise.
5077         (flow_dfs_compute_reverse_finish): Likewise.
5078         * rtl.h (rtx/in_struct): Added use to determine insn necessity.
5079         (LABEL_P): Added definition.
5080         (JUMP_P): Likewise.
5081         (NOTE_P): Likewise.
5082         (BARRIER_P): Likewise.
5083         (JUMP_TABLE_DATA_P): Likewise.
5084         (INSN_DEAD_CODE_P): Likewise.
5085         * ssa.c: Replaced inclusions with ssa.h inclusion.
5086         (CONVERT_HARD_REGISTER_TO_SSA_P): Moved to ssa.h.
5087         (rename_registers): Removed unnecessary variables.
5088         * ssa.h: Created by moving declarations from ssa.c and
5089         basic-block.h.
5090         * timevar.def: Defined TV_DEAD_CODE_ELIM.
5091         * toplev.c: Added ssa.h inclusion.
5092         (dump_file_index): Added DFI_dce.
5093         (dump_file): Added "dce" entry.
5094         Defined flag_ssa.
5095         (f_options): Added dce entry.
5096         * invoke.texi: Document -fdce.  Emphasize experimental status of
5097         -fssa.
5098         * dce.c: New file.
5099
5100 2000-08-01  Zack Weinberg  <zack@wolery.cumb.org>
5101
5102         * cpperror.c (v_message): Split into _cpp_begin_message and
5103         v_message macro.  All callers updated.
5104         (_cpp_begin_message): Do inhibit_errors/inhibit_warnings
5105         checks here.
5106
5107         * cppfiles.c (cpp_syshdr_flags): New function.
5108         (read_include_file): Don't call cpp_output_tokens.  Call
5109         enter_file hook.
5110         * cppinit.c (dump_macros_helper): Moved to cppmain.c.
5111         (cpp_reader_init): Don't initialize token_buffer.  Call
5112         _cpp_init_internal_pragmas.
5113         (cpp_cleanup): Don't clear token_buffer.
5114         (cpp_start_read): Don't worry about output from -D processing.
5115         Don't call cpp_output_tokens.
5116         (cpp_finish): Don't dump macros here.  Don't call
5117         cpp_output_tokens.
5118         * cppmacro.c (_cpp_dump_definition): Rename
5119         cpp_dump_definition.  Write directly to a FILE *.
5120         (dump_funlike_macro): Delete.
5121         (dump_macro_args): New.
5122
5123         * cpplex.c (TOKEN_LEN): Convert to inline function.
5124         (_cpp_grow_token_buffer, safe_fwrite, cpp_output_tokens,
5125         cpp_scan_line, _cpp_dump_list): Delete.
5126         (cpp_printf, cpp_output_list): New.
5127         (output_line_command): Don't worry about entering or leaving files.
5128         (cpp_scan_buffer): Just output each token as we hit it.
5129         (process_directive): Don't call cpp_output_tokens.
5130         (_cpp_glue_header_name): Don't use token_buffer.
5131         (output_token, dump_param_spelling): Write directly to a FILE *.
5132
5133         * cpplib.c (pass_thru_directive, dump_macro_name,
5134         pragma_dispatch, do_pragma_gcc): Delete.
5135         (do_define, do_undef, parse_include, do_line, do_ident, do_pragma,
5136         do_pragma_poison, cpp_pop_buffer): Call the appropriate hook
5137         functions.
5138         (do_error, do_warning, pragma_dependency): Call
5139         _cpp_begin_message, then cpp_output_list.
5140         (cpp_register_pragma, cpp_register_pragma_space,
5141         _cpp_init_internal_pragmas): New.
5142         (do_pragma): Walk the pragmas table here.
5143         (do_pragma_once, do_pragma_poison, do_pragma_system_header,
5144         do_pragma_dependency): Return void.
5145         (do_pragma_implementation): Moved to cppmain.c.
5146
5147         * cpplib.h: Update prototypes.
5148          (struct cpp_reader): Remove printer, token_buffer,
5149         token_buffer_size, and limit.  Add struct cb, and pragmas.
5150         (struct cpp_printer): Remove last_id and written.
5151         (CPP_WRITTEN, CPP_PWRITTEN, CPP_SET_WRITTEN,
5152         CPP_ADJUST_WRITTEN): Delete.
5153         * cpphash.h: Update prototypes.
5154         (ufputs): New wrapper.
5155
5156         * cppmain.c (cb_define, cb_undef, cb_include, cb_ident,
5157         cb_enter_file, cb_leave_file, cb_def_pragma): New functions.
5158         (main): Set up callbacks.  Register #pragma implementation.
5159         Dump macros from here.
5160
5161 2000-08-01  Geoff Keating  <geoffk@cygnus.com>
5162
5163         * rtl.h (enum reg_note): Add REG_MAYBE_DEAD.
5164         * rtl.c (reg_note_name): Add REG_MAYBE_DEAD.
5165         * flow.c (propagate_one_insn): Allow deletion of prologue/epilogue
5166         insns if they have a REG_MAYBE_DEAD note attached.
5167         * config/rs6000/rs6000.c (rs6000_maybe_dead): New function.
5168         (rs6000_emit_load_toc_table): TOC loads may go dead.
5169
5170 2000-08-01  Jim Wilson  <wilson@cygnus.com>
5171
5172         * config/ia64/ia64.c (ia64_function_arg): Fix last change.  Verify
5173         type exists before using it.  Use number of words as alignment
5174         otherwise.
5175         (ia64_function_arg_partial_nregs, ia64_function_arg_advance,
5176         ia64_va_arg): Propagate ia64_function_args changes here.
5177
5178 2000-08-01  Richard Henderson  <rth@cygnus.com>
5179
5180         * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Care for null DECL.
5181         * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise.
5182
5183 2000-08-01  Bernd Schmidt  <bernds@cygnus.co.uk>
5184
5185         From Joern Rennecke:
5186         * sh.h (CPP_SPEC, TARGET_SWITCHES): Add m4-nofpu.
5187         * sh.md (udivsi3, divsi3): Don't use libcalls that use the FPU
5188         unless TARGET_SH3E is set.
5189         * t-sh (MULTILIB_MATCHES): Add m2=m4-nofpu.
5190
5191         * sh.md (ashlsi3_d, ashlsi3_k): Remove, replace with
5192         (ashlsi3_std): New pattern.
5193         (ashlsi3 expander): Use it for TARGET_SH3.
5194         * sh.c (gen_ashift): Use it instead of ashlsi3_k.
5195
5196 Tue Aug  1 12:34:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5197
5198         * loop.c (canonicalize_condition):  Use destination, not source to
5199         determine SET's mode.
5200
5201 2000-07-31  Mark Mitchell  <mark@codesourcery.com>
5202
5203         * flow.c (clear_log_links): Fix typo.
5204
5205 Mon Jul 31 22:19:24 2000  Jeffrey A Law  (law@cygnus.com)
5206
5207         * loop.c (check_dbra_loop): Make change from July 17, 2000 work
5208         on targets which need more than one insn for a compare/cbranch
5209         operation.
5210
5211 2000-07-31  Jim Wilson  <wilson@cygnus.com>
5212
5213         * config/ia64/ia64.c (ia64_function_arg): Use alignment not size
5214         when computing offset.
5215
5216 Mon Jul 31 20:35:50 2000  Denis Chertykov  <denisc@overta.ru>
5217
5218         * genpeep.c (main): Handle DEFINE_PEEPHOLE2.
5219
5220 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
5221
5222         * flow.c (clear_log_links): Nuke global_live_at_start and
5223         global_live_at_end data, since if the log_links stuff is invalid
5224         so is global_live_at_*.
5225
5226 2000-07-31  Richard Henderson  <rth@cygnus.com>
5227
5228         * tm.texi (Addressing Modes): Clarify PRE/POST_MODIFY descriptions.
5229
5230 2000-07-31  Jakub Jelinek  <jakub@redhat.com>
5231
5232         * cpplex.c (_cpp_get_line): If index is 0, return line 0 col 0.
5233         (_cpp_get_token): Don't macro expand a just pasted token if it
5234         was pasted at no_expand_level.
5235
5236 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5237
5238         * cppmacro.c (find_param, count_params, save_expansion):
5239         Permit 'defined' as a macro parameter name.
5240
5241 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5242
5243         * Makefile.in: Rename cpp to cpp0, tradcpp to tradcpp0, and
5244         xcpp to cpp throughout.
5245         (native): Remove unnecessary dependency on cpp.
5246
5247         * gcc.c (trad_capable_cpp, C specs): Rename cpp to cpp,
5248         tradcpp to tradcpp0.
5249         (.i spec): Add missing output-file spec to cc1 command line.
5250         * objc/lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
5251
5252 2000-07-31  Zack Weinberg  <zack@wolery.cumb.org>
5253
5254         * c-decl.c (mesg_implicit_function_declaration): Init to -1.
5255         (implicit_decl_warning): New function.
5256         (implicitly_declare): Use it.
5257         * c-typeck.c (build_external_ref): Use implicit_decl_warning
5258         to complain about implicit decls of builtins.
5259
5260         * c-lang.c (lang_init): Set mesg_implicit_function_declaration
5261         based on pedantic && flag_isoc99, if not already set.
5262         * c-tree.h: Declare mesg_implicit_function_declaration.
5263         Prototype implicit_decl_warning.
5264
5265 2000-07-30  Jeffrey D. Oldham  <oldham@codesourcery.com>
5266
5267         * Makefile.in (ssa.o): Updated header files in dependences.
5268         * basic-block.h: Added compute_immediate_postdominators declaration.
5269         * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added
5270         definition.
5271         * flow.c (compute_immediate_dominators): Updated comment.
5272         (compute_immediate_postdominators): Added definition.
5273         * rtl.h (HARD_REGISTER_P): Added definition.
5274         * ssa.c: Include additional header files.
5275         (assert): Added definition.
5276         (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to
5277         include select hard registers.
5278         (ssa_rename_to_insert): Likewise.
5279         (ssa_rename_from_initialize): Likewise.
5280         (ssa_rename_from_lookup): Likewise.
5281         (original_register): Likewise.
5282         (ssa_rename_from_insert): Added to reimplement ssa_rename_from to
5283         include select hard reigsters.
5284         (ssa_rename_from_traverse): Likewise.
5285         (ssa_rename_from_free): Likewise.
5286         (ssa_rename_from_print): Likewise.
5287         (ssa_rename_from_print_1): Likewise.
5288         (ssa_rename_from_hash_function): Likewise.
5289         (ssa_rename_from_equal): Likewise.
5290         (ssa_rename_from_delete): Likewise.
5291         (simplify_to_immediate_dominators): Removed in favor of
5292         flow.c:compute_immediate_dominators.
5293         (find_evaluations_1): Modified to work with hard registers.
5294         (insert_phi_node): Likewise.
5295         (insert_phi_nodes): Likewise.
5296         (struct rename_set_data): Updated prev_reg comment.
5297         (create_delayed_rename): Modified to work with hard registers.
5298         (RENAME_NO_RTX): Updated comment.
5299         (apply_delayed_renames): Modified to work with hard registers.
5300         (rename_insn_1): Likewise and added handling of CLOBBER rtls.
5301         (rename_block): Updated to use revised ssa_rename_to interface.
5302         (rename_registers): Updated to use revised ssa_rename_to and
5303         ssa_rename_from interface.
5304         (convert_to_ssa): Revised to use compute_immediate_dominators and
5305         deal with hard registers.
5306         (make_regs_equivalent_over_bad_edges): Modified to work with hard
5307         registers.  Added check for illegal unification of hard register.
5308         (make_equivalent_phi_alternatives_equivalent): Modified to work
5309         with hard registers.
5310         (compute_conservative_reg_partition): Likewise.
5311         (coalesce_if_unconflicting): Modified to work with hard registers
5312         and check for conflicting hard registers.
5313         (mark_phi_and_copy_regs): Revised loop to work only on pseudo
5314         registers.
5315         (rename_equivalent_regs_in_insn): Modified to work with hard
5316         registers.
5317         (record_canonical_element_1): Added definition.
5318         (check_hard_regs_in_partition): Added definition.
5319         (convert_from_ssa): Added data structure deallocation and check
5320         for illegal hard register unification.
5321         (conflict_hard_regs_p): Added definition.
5322         * toplev.c (rest_of_compilation): Added comment.
5323
5324 2000-07-31  Anthony Green  <green@redhat.com>
5325
5326         * config/ia64/crtbegin.asm (__EH_FRAME_BEGIN__): Align correctly.
5327
5328 2000-07-31  Jason McMullan  <jmcmullan@linuxcare.com>
5329
5330         * builtins.c (expand_builtin_apply): Don't defer pop during
5331         argument setup.
5332
5333 2000-07-31 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5334
5335         * calls.c (combine_pending_stack_adjustment_and_call): Only use
5336         preferred_unit_stack_boundary when it is > 1.
5337
5338 2000-07-31  Joseph S. Myers  <jsm28@cam.ac.uk>
5339
5340         * c-common.c (init_function_format_info): Add C99 format functions
5341         in C99 mode.
5342
5343         * c-decl.c (get_parm_info): Don't treat 'const void', 'volatile
5344         void' or 'register void' as being the special case of 'void' alone
5345         in a parameter list.
5346
5347         * c-typeck.c (build_c_cast): Change -Wcast-qual pedwarn for
5348         discarding qualifiers into a plain warning.
5349
5350 2000-07-31  Kazu Hirata  <kazu@hxi.com>
5351
5352         * combine.c: Fix formatting.
5353
5354         * h8300.md: Fix formatting.
5355
5356         * local-alloc.c: Fix formatting.
5357
5358         * h8300.c (get_shift_alg): Remove the variable alg.
5359         (emit_a_shift): Rearrange code to improve readability.
5360
5361         * h8300.md (movsi_h8300hs): Rearrange code to improve readability.
5362
5363         * h8300.h (MODES_TIEABLE_P): Accept a combination of QImode and
5364         HImode on all architectures and a combination of HImode and SImode
5365         on H8/300H and H8/S.
5366
5367         * h8300.c (split_adds_subs): Rearrange code for conciseness.
5368
5369 Mon Jul 31 12:27:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5370
5371         * i386.md (addsi to lea splitter, ashlqi3_1_lea): Fix bugs
5372         in my last checkin.
5373
5374 Mon Jul 31 10:41:01 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5375
5376         * recog.c (extract_insn): Set operand_mode according to
5377         operand if match_operand is VOIDmode.
5378
5379 Mon Jul 31 10:36:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5380
5381         * recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
5382
5383 2000-07-31  Geoff Keating  <geoffk@cygnus.com>
5384
5385         * c-parse.in (extdefs): Call ggc_collect between external
5386         definitions.
5387
5388 2000-07-30  Michael Hayes  <mhayes@cygnus.com>
5389             Richard Henderson  <rth@cygnus.com>
5390
5391         * Makefile.in (OBJS): Add doloop.o.
5392         * doloop.c: New file.
5393
5394         * final.c (insn_current_reference_address): Return 0 before final.
5395         * flags.h (flag_branch_on_count_reg): Fix typos in commentary.
5396         * jump.c (any_uncondjump_p): Likewise.
5397         * loop.c (indirect_jump_in_function): Make static.
5398         (strength_reduce): Call doloop_optimize.
5399         (insert_bct, instrument_loop_bct): Remove.
5400         * loop.h (doloop_optimize): Prototype.
5401         * recog.c (split_all_insns): Split all INSN_P.
5402         * toplev.c (flag_branch_on_count_reg): Default on.
5403
5404         * config/c4x/c4x.c (c4x_optimization_options): Don't set
5405         flag_branch_on_count_reg.
5406         * config/i386/i386.c (override_options): Likewise.
5407         * config/rs6000/rs6000.c (optimization_options): Likewise.
5408
5409         * config/i386/i386.md (decrement_and_branch_on_count): Remove.
5410         (doloop_end): New.
5411         (dbra_ge): Remove, as well as all it's splitters.
5412
5413         * config/rs6000/rs6000.md (decrement_and_branch_on_count): Remove.
5414         (doloop_end): New.
5415
5416         * config/ia64/ia64-protos.h (ar_lc_reg_operand): Declare.
5417         (ia64_register_move_cost): Declare.
5418         * config/ia64/ia64.c (ar_lc_reg_operand): New.
5419         (struct ia64_frame_info): Add ar_size.
5420         (ia64_compute_frame_size): Set it.
5421         (save_restore_insns): Save and restore ar.lc.
5422         (ia64_register_move_cost): New, moved from header file.  Handle
5423         application registers.
5424         (REG_AR_PFS, REG_AR_EC): Remove.  Replace with AR_*_REGNUM numbers.
5425         (emit_insn_group_barriers): Special case doloop_end_internal.
5426         (ia64_epilogue_uses): Mark ar.lc live at end.
5427         * config/ia64/ia64.h (AR_CCV_REGNUM, AR_LC_REGNUM): New registers.
5428         (AR_EC_REGNUM, AR_PFS_REGNUM): New registers.
5429         (FIRST_PSEUDO_REGISTER): Make room.
5430         (AR_M_REGNO_P, AR_I_REGNO_P, AR_REGNO_P): New.
5431         (FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
5432         (REG_ALLOC_ORDER): Update.
5433         (HARD_REGNO_MODE_OK): Update.
5434         (REGISTER_NAMES): Update.
5435         (enum reg_class): Add AR_M_REGS and AR_I_REGS.
5436         (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
5437         (REGNO_REG_CLASS): Update.
5438         (LEGITIMATE_ADDRESS_DISP): Displacement range is 9 bits, not 10.
5439         (REGISTER_MOVE_COST): Move out of line.
5440         (PREDICATE_CODES): Update.
5441         * config/ia64/ia64.md (movdi patterns): Handle ar register classes.
5442         (addsi3_plus1_alt, adddi3_plus1_alt): New.
5443         (shladd_elim splitter): Allow constants in the predicate.
5444         (doloop_end, doloop_end_internal): New.
5445
5446 2000-07-30  Richard Henderson  <rth@cygnus.com>
5447
5448         * genattrtab.c (struct insn_def): Add lineno member.
5449         (struct insn_ent): Likewise.
5450         (struct attr_desc): Likewise.
5451         (struct delay_desc): Likewise.
5452         (struct function_unit_op): Likewise.
5453         (struct function_unit): Likewise.
5454         (check_attr_value): Use message_with_line.
5455         (check_defs): Likewise.
5456         (expand_units): Likewise.
5457         (check_attr_test): Take a lineno argument.
5458         (gen_attr): Likewise.
5459         (gen_insn): Likewise.
5460         (gen_delay): Likewise.
5461         (gen_unit): Likewise.
5462         (main): Give it to them.
5463         (convert_set_attr_alternative): Take an insn_def argument
5464         instead of num_alt and insn_index.
5465         (convert_set_attr): Likewise.
5466         (write_test_expr): Protect INSN_ADDRESSES load
5467         with INSN_ADDRESSES_SET_P.
5468
5469 2000-07-30  Richard Henderson  <rth@cygnus.com>
5470
5471         * flow.c (init_propagate_block_info): Use pc_set.
5472
5473 Sun Jul 30 20:58:34 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5474
5475         * i386.md (*lea_general_[123]) New insns and splits.
5476         (addsi3 to lea splitter): Handle other modes too.
5477         (shlsi3 to lea splitter): Likewise.
5478         (addhi_1_lea, shlhi_1_lea): New patterns.
5479         (addhi_1, shlhi_1): Conditionize by PARTIAL_REG_STALL.
5480
5481 Sun Jul 30 20:51:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5482
5483         * recog.c (general_operand, nonimmediate_operand): Accept
5484         any mode for VOIDmode CONSTANT_P operands.
5485
5486 Sun Jul 30 20:42:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5487
5488         * gcse.c (try_replace_reg): Use validate_replace_rtx_subexp
5489         instead of replace_rtx.
5490         * recog.c (validate_replace_rtx_subexp): New function.
5491         * recog.h (validate_replace_rtx_subexp): Declare.
5492
5493 Sun Jul 30 20:38:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5494
5495         * combine.c (simplify_set, make_extraction, make_compound_operation
5496         make_field_assignment): Use full mask instead of GET_MODE_MASK (mode)
5497         as force_to_mode argument.
5498
5499 Sun Jul 30 20:30:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5500
5501         * combine.c (if_then_else_cond): Be sure that mode fits in
5502         HOST_WIDE_INT.
5503
5504 Sun Jul 30 20:27:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5505
5506         * combine.c (record_promoted_value):  Allow bitsize of mode
5507         to be equivalent to HOST_BITS_PER_WISE_INT.
5508
5509 Sun Jul 30 20:25:21 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5510
5511         * function.c (assign_stack_local_1, assign_stack_temp_for_type):
5512         Do not call gen_mode_alignment when mode is BLKmode.
5513
5514 Sun Jul 30 20:21:54 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5515
5516         * loop.c (express_from_1): Fix call of simplify_gen_binary.
5517
5518 Sun Jul 30 20:08:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
5519
5520         * simplify-rtx.c (simplify_relational_operation): Verify that mode ==
5521         VOIDmode implies both operands to be VOIDmode.
5522         (simplify_ternary_operation): Compute properly the mode of comparison.
5523         * combine.c (combine_simplify_rtx): Likewise.
5524
5525 2000-07-25  Michael Hayes  <mph@paradise.net.nz>
5526
5527         * basic-block.h (struct loops): New field rc_order.
5528         * flow.c (flow_loops_cfg_dump): Dump rc_order if computed.
5529         (flow_loops_free): Free rc_order.
5530         (flow_depth_first_order_compute): New parameter rc_order.
5531         (flow_loops_find): Allocate rc_order and swap usage with
5532         dfs_order.
5533
5534 2000-07-30 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5535            Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5536
5537         * config/c4x/c4x.md (set_ldp_prologue): Add for RTL prologue/epilogue.
5538         (push_st, push_dp, pop_st, pop_dp, popqi_unspec): Likewise.
5539         (nodb_call, return_from_epilogue): Likewise.
5540         (return_from_interrupt_epilogue, prologue, epilogue): Likewise.
5541         * config/c4x/c4x.c (c4x_expand_prologue, c4x_expand_eplilogue): Add.
5542         * config/c4x/c4x-protos.h (c4x_interrupt_function_p): Add.
5543         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
5544         (c4x_valid_type_attribute_p): Likewise.
5545         * config/c4x/c4x.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Delete.
5546         (FUNCTION_BLOCK_PROFILER_EXIT): Convert to emit RTL.
5547
5548 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5549
5550         * config/c4x/c4x.c (c4x_emit_move_sequence): Use loadqi_big_constant
5551         and loadhi_big_constant if applicable.
5552         * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant): Tweak
5553         and add new splitter.s
5554
5555 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5556
5557         * config/c4x/c4x.c (c4x_rptb_insert): Make more robust.
5558
5559 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5560
5561         * config/c4x/c4x.h (ASM_FORMAT_PRIVATE_NAME): Output $ in label.
5562
5563 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5564
5565         * config/c4x/c4x.h (IS_XXX_REGNO): Rewrite to avoid unsigned warnings.
5566
5567 2000-07-30  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5568
5569         * config/c4x/libgcc.S (divqf3): Improve accuracy.
5570
5571 2000-07-27  Mark Mitchell  <mark@codesourcery.com>
5572
5573         Put phi nodes after NOTE_INSN_BASIC_BLOCK.
5574         * rtl.h (NOTE_INSN_BASIC_BLOCK_P): New macro.
5575         * bb-reorder.c (get_next_bb_note): Use NOTE_INSN_BASIC_BLOCK_P.
5576         (get_prev_bb_note): Likewise.
5577         (remove_scope_notes): Likewise.
5578         * flow.c (commit_one_edge_insertion): Likewise.
5579         (merge_blocks_nomove): Likewise.
5580         (verify_flow_info): Likewise.
5581         * gcse.c (insert_insn_end_bb): Likewise.
5582         * reg-stack.c (emit_swap_insn): Likewise.
5583         * ssa.c (first_insn_after_basic_block_note): New function.
5584         (insert_phi_node): Use it.
5585         (rename_block): Likewise.
5586         (eliminate_phi): Likewise.
5587         (make_regs_equivalent_over_bad_edges): Likewise.
5588         (make_equivalent_phi_alternatives_equivalent): Likewise.
5589         (for_each_successor_phi): Likewise.
5590         (convert_from_ssa): Modify phi-node deletion algorithm.
5591
5592 2000-07-29  Andreas Jaeger  <aj@suse.de>
5593
5594         * configure.in (mips*-*-linux*): Use mips*el to check for little
5595         endian MIPS, add tmake_file.
5596
5597         * config/mips/linux.h (TARGET_VERSION): Use GNU/Linux.
5598         (SUBTARGET_CPP_SPEC): Default MIPS_ISA is 1.
5599         Patches by Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
5600
5601 2000-07-28  Richard Henderson  <rth@cygnus.com>
5602
5603         * config/ia64/ia64.c (ia64_print_operand): Fix typos.
5604         Sign extend mode size before negating.
5605
5606 2000-07-28  Richard Henderson  <rth@cygnus.com>
5607
5608         * emit-rtl.c (gen_lowpart_common): Add missing 'c' variable.
5609
5610 2000-07-28  Bernd Schmidt  <bernds@cygnus.co.uk>
5611
5612         * cse.c (canon_hash): Handle PRE_MODIFY/POST_MODIFY.
5613         (cse_insn): Likewise.
5614         (addr_affects_sp_p): Likewise.
5615         * expr.c (move_by_pieces): Likewise.
5616         (clear_by_pieces): Likewise.
5617         * gcse.c (oprs_unchanged_p): Likewise.
5618         * haifa-sched.c (sched_analyze_2): Likewise.
5619         * recog.c (offsettable_address_p): Likewise.
5620         * regclass.c (record_address_regs): Likewise.
5621         * reload.c (find_reusable_reload): Likewise.
5622         (push_reload): Likewise.
5623         (operands_match_p): Likewise.
5624         (decompose): Likewise.
5625         (find_reloads_address_1): Likewise.
5626         (find_inc_amount): Likewise.
5627         * reload1.c (elimination_effects): Likewise.
5628         * resource.c (mark_set_resources): Likewise.
5629         * flow.c (attempt_auto_inc): New function; mostly broken out
5630         of find_auto_inc.
5631         (find_auto_inc): Split into two functions and enhanced to
5632         generate POST_MODIFY.
5633         * rtl.def (PRE_MODIFY, POST_MODIFY): Adjust comment.
5634         * rtl.h (count_all_occurrences):  Declare.
5635         (HAVE_{PRE,POST}_MODIFY_{DISP,REG}): Provide default of 0 if not
5636         defined.
5637         * rtlanal.c (count_all_occurrences): New function.
5638         * tm.texi (HAVE_POST_MODIFY_DISP, HAVE_PRE_MODIFY_DISP,
5639         HAVE_POST_MODIFY_REG, HAVE_PRE_MODIFY_REG): Document.
5640
5641         * config/ia64/ia64-protos.h (destination_operand): Declare.
5642         * config/ia64/ia64.c (destination_operand): New function.
5643         (ia64_print_operand): Handle POST_MODIFY.
5644         (rtx_needs_barrier): Likewise.
5645         * config/ia64/ia64.h (HAVE_POST_MODIFY_DISP): Define to 1.
5646         (HAVE_POST_MODIFY_REG): Define to 1.
5647         (MAX_REGS_PER_ADDRESS): Change to 2.
5648         (GO_IF_LEGITIMATE_ADDRESS): Accept POST_MODIFY too.
5649         (LEGITIMATE_ADDRESS_REG): New helper macro.
5650         (LEGITIMATE_ADDRESS_DISP): Likewise.
5651         (PREDICATE_CODES): Add entry for destination_operand.
5652         * config/ia64/ia64.md (all mov patterns): Use destination_operand
5653         predicate for operand 0.
5654
5655 2000-07-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5656
5657         * dwarf2out.c: Indent #error directive.
5658
5659         * gbl-ctors.h: Fix typo in comment.
5660         (__do_global_ctors): Prototype.
5661
5662         * gcse.c (record_one_set, pre_delete): Remove unused variables.
5663
5664         * rs6000.c (rs6000_maybe_dead): Delete unused prototype.
5665         (print_operand): Initialize variable `t'.
5666
5667 2000-07-27  Aldy Hernandez  <aldyh@redhat.com>
5668
5669         * config/arm/arm.md ("call_value"): removed constraints.
5670         Constraints are ignored in expanders.
5671         (*call_value_reg): split =rf into various constraints.
5672         (*call_value_mem): same
5673         (*call_value_symbol): same
5674         (*sibcall_value_insn): same
5675
5676 2000-07-28  Philipp Thomas  <pthomas@suse.de>
5677
5678         * install.texi (--enable-nls): Change the description of the NLS
5679         related configure options to match the current state.
5680         (--with-included-gettext): Likewise.
5681         (--enable-maintainer-mode): New description added.
5682         * extend.texi (-fstrict-prototype): Add missing '.'.
5683
5684 2000-07-27  Jim Wilson  <wilson@cygnus.com>
5685
5686         * dwarf2out.c (gen_decl_die): Don't call gen_abstract_function if
5687         DECL_INITIAL (decl) == NULL_TREE.
5688
5689 2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
5690
5691         * Makefile.in (INSN_ATTR_H): New macro.  Replace all dependencies
5692         on insn-attr.h with it.
5693         * genattr.c: Generate `#include "insn-addr.h"' if HAVE_ATTR_length.
5694         * insn-addr.h: New header.
5695         (insn_addresses_): Renamed from insn_addresses.
5696         (INSN_ADDRESSES_DEFN, INSN_ADDRESSES, INSN_ADDRESSES_ALLOC,
5697         INSN_ADDRESSES_FREE, INSN_ADDRESSES_SET_P, INSN_ADDRESSES_SIZE,
5698         INSN_ADDRESSES_NEW): New macros.
5699         * genattrtab.c (write_test_expr): Use new macros.
5700         * final.c (insn_addresses, init_insn_lengths): Likewise.
5701         (align_fuzz, shorten_branches): Likewise.
5702         (final): Likewise.  Do not reject new insns if their addresses
5703         have been added to INSN_ADDRESSES.
5704         * config/arm/arm.c, config/avr/avr.c: Use new macros.
5705         * config/h8300/h8300.c, config/i370/i370.c: Likewise.
5706         * config/m88k/m88k.c, config/pa/pa.c, config/pa/pa.md: Likewise.
5707         * config/sparc/sparc.c, config/sparc/sparc.md: Likewise.
5708         * config/sh/sh.c: Likewise.
5709         (output_branchy_insn): Use INSN_ADDRESSES_NEW.
5710
5711         * Makefile.in (bootstrap): Move -BstageN/ back to the beginning.
5712
5713 2000-07-27  Andrew Cagney  <cagney@b1.cygnus.com>
5714
5715         * gcc.c (struct prefix_list): Add member priority.
5716         (enum path_prefix_priority): Declare.
5717         (add_prefix): Replace ``first'' with ``priority''.  Append new
5718         entry but keep list in priority order.
5719         (process_command): Update.  Pass PREFIX_PRIORITY_B_OPT or
5720         PREFIX_PRIORITY_LAST to add_prefix.
5721         (process_command): Move include kludge - foo/stageN - to before
5722         foo/include.
5723
5724 2000-07-27  Jason Merrill  <jason@redhat.com>
5725
5726         * dwarf2out.c (gen_typedef_die): Abort if we get identical
5727         TREE_TYPE and DECL_ORIGINAL_TYPE on a typedef.
5728
5729 2000-07-27  RodneyBrown  <RodneyBrown@pmsc.com>
5730
5731         * expr.h (get_alias_set, lang_get_alias_set): Delete prototypes.
5732         * tree.h (get_alias_set, lang_get_alias_set): Prototype.
5733
5734 2000-07-27  Joseph S. Myers  <jsm28@cam.ac.uk>
5735
5736         * c-decl.c (finish_function): Don't treat 'main' specially unless
5737         flag_hosted.  In C99 mode, return 0 from 'main' unless
5738         DEFAULT_MAIN_RETURN is otherwise defined.
5739
5740         * c-decl.c (store_parm_decls): In C99 mode, pedwarn for function
5741         parameters defaulting to int in an old-style function definition.
5742
5743 2000-07-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5744
5745         * c-parse.in (string): For -Wtraditional, warn about string
5746         concatenation only once per line.
5747
5748 Thu Jul 27 09:25:17 2000  Akiko Matsushita  <matusita@sra.co.jp>
5749
5750         * pa/x-pa-hpux: Add -D_HIUX_SOURCE to FIXPROTO_DEFINES
5751         for HI-UX/WE2 systems.
5752
5753 2000-07-24  Bruce Korb  <bkorb@gnu.org>
5754
5755         * fixincl/fixfixes.c(emit_gnu_type): rewrote to *rely* on GCC
5756         defining the __xxx_TYPE__ macros.
5757         * fixincl/fixincl.tpl(gnu_type_map): now obsolete
5758         * fixincl/fixlib.h: don't need to include "tm.h" anymore
5759         * fixincl/inclhack.def(type_map): now obsolete
5760
5761 Thu Jul 27 11:54:17 2000  Andrew Cagney  <cagney@b1.cygnus.com>
5762
5763         * cpp.texi: Append a trailing full-stop to xrefs where needed.
5764
5765 2000-07-26  Dave Pitts  <dpitts@cozx.com>
5766
5767         * i370.c: Remove LONGEXTERNAL ifdef from alias_number. Added hash
5768         routine constants.
5769         (mvs_hash_alias): New function.
5770         (mvs_add_alias): Change argument spacing.
5771         (mvs_need_alias): Change aliasing criteria. Added documentation.
5772         (mvs_get_alias): Change to use hashed name. The hashed name prevents
5773         CSECT name collisions.
5774         (mvs_check_alias): Likewise.
5775         (handle_pragma): Change documentation.
5776         * i370.md (mulsi3, divsi3, udivsi3, modsi3, umodsi3): Changed gen_rtx
5777         mode from SImode to DImode.
5778         (iorhi3): Changed LTORG size for insn.
5779
5780 Wed Jul 26 19:44:05 2000   Hans-Peter Nilsson  <hp@axis.com>
5781
5782         * reload.c (find_reloads_toplev): Reload a paradoxical subreg of a
5783         mem if the address is a mode_dependent_address_p.
5784
5785 2000-07-26  Kazu Hirata  <kazu@hxi.com>
5786
5787         * h8300.c (print_operand): Print ":8" when the 'R' operand is
5788         suitable for 8-bit absolute.
5789         * h8300.h (EIGHTBIT_CONSTANT_ADDRESS_P): New.
5790         (OK_FOR_U): Add a case for the 8-bit constant address on the
5791         H8/300H.
5792
5793 Wed Jul 26 19:26:21 2000  Hans-Peter Nilsson  <hp@axis.com>
5794
5795         * varasm.c (assemble_variable) [! defined(ASM_OUTPUT_ALIGNED_COMMON)
5796         && ! defined (ASM_OUTPUT_ALIGNED_BSS]): Also test
5797         ! defined(ASM_OUTPUT_ALIGNED_DECL_COMMON) before complaining about
5798         lack of implemented alignment.
5799
5800 2000-07-26  Geoffrey Keating  <geoffk@cygnus.com>
5801
5802         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETIC]: Handle
5803         cross-compiling between 64-bit and 32-bit machines.
5804
5805 2000-07-27  Richard Henderson  <rth@cygnus.com>
5806
5807         * config/ia64/ia64.md (movqicc_astep, movqi_internal_astep): New.
5808         (movhicc_astep, movhi_internal_astep): New.
5809         (movsicc_astep, movsi_internal_astep): New.
5810         (movdicc_astep, movdi_internal_astep): New.
5811         (movsfcc_astep, movsf_internal_astep): New.
5812         (movdfcc_astep, movdf_internal_astep): New.
5813         (movxfcc_astep, movxf_internal_astep): New.
5814         (cmovdi_internal_astep, cmovsi_internal_astep): New.
5815         Unify the cmov[ds]i splitters.
5816
5817 2000-07-27  Rodney Brown  <RodneyBrown@pmsc.com>
5818
5819         * real.c (asctoeg): Rename `error' label to unexpected_char_error
5820
5821 2000-07-26  Nick Clifton  <nickc@cygnus.com>
5822
5823         * config/arm/vxarm.h (CPP_PREDEFINES): Remove definition of
5824         __arm__.  Allow it to be defined by CPP_ISA_SPEC in arm.h
5825
5826         * dwarf2out.c (dwarf2out_frame_debug_expr): Accept SEQUENCE as
5827         well as PARALLEL blocks in FRAME_RELATED_EXPR notes.
5828
5829 2000-07-26  Alexandre Oliva  <aoliva@redhat.com>
5830
5831         * c-decl.c (finish_enum): Convert enumerations that fit in an
5832         `int' to `int'.
5833         (build_enumerator): In pedantic mode, cast to `int' those that
5834         don't.
5835
5836 2000-07-25  Rodney Brown  <RodneyBrown@pmsc.com>
5837
5838         * config/alpha/osf.h (SIZE_TYPE, PTRDIFF_TYPE): New.
5839
5840 Tue Jul 25 23:08:33 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
5841
5842         * sh.md (cmpgtdi_t): Must be split.
5843         (cmpgtdi_t+1): New splitter.
5844
5845 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
5846
5847         * cpplib.c (_cpp_check_directive): Issue -Wtraditional
5848         warnings for indented directives even if we are skipping.
5849
5850 2000-07-25  Nathan Sidwell  <nathan@codesourcery.com>
5851
5852         * invoke.texi (strict-prototypes): Remove.
5853         * extend.texi (Deprecated Features): Add strict-prototypes.
5854         (Backwards Compatibility): New node.
5855
5856 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
5857
5858         * config/i386/i386.md (andsi_1+1): Allow HImode.
5859         (andsi_1+2): Require q_regs_operand.
5860
5861 2000-07-25  Jakub Jelinek  <jakub@redhat.com>
5862
5863         * config/i386/i386.md (call_pop): Check operands[0],
5864         not operands[1]. Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
5865         (call): Likewise.
5866         (call_value_pop): Only check SYMBOL_REF_FLAG for a SYMBOL_REF.
5867         (call_value): Likewise.
5868
5869 2000-07-25  Zack Weinberg  <zack@wolery.cumb.org>
5870
5871         * toplev.c (pipe_closed): Delete.
5872         (crash_signal): New.  Generate ICE for a fatal signal.
5873         (float_signal): Call crash_signal outside a float-handler
5874         block, not abort.
5875         (main): Install crash_signal as handler for core-dumping signals.
5876
5877 2000-07-25  David Edelsohn  <edelsohn@gnu.org>
5878
5879         * rs6000.c (print_operand, case 'T'): New case.
5880
5881         * rs6000.md (call_indirect_aix32): Convert to expander of
5882         scheduled instructions.
5883         (call_indirect_aix64): Likewise.
5884         (call_value_indirect_aix{32,64}): Likewise.
5885         (call, call_value): Invoke expanders for AIX.  Fall through to
5886         matchers for SysV.
5887         (call_indirect_nonlocal_aix{32,64}): New patterns (ctr and lr).
5888         (call_value_indirect_nonlocal_aix{32,64}): New patterns.
5889         (call_nonlocal_aix32): Remove CALL_LONG alternative.  Operand 1
5890         only "g" constraint.
5891         (call_nonlocal_aix64): Likewise.
5892         (call_value_nonlocal_aix{32,64}): Likewise.
5893         (call_nonlocal_sysv): New pattern for ctr, lr, and symbolic
5894         operands.
5895         (call_value_nonlocal_sysv): New pattern.
5896         (indirect_jump{si,di}): Use new 'T' modifier.
5897         (tablejump{si,di} matchers): Likewise.
5898         (return_internal_{si,di}): Likewise.
5899         (return_eh_{si,di}): Likewise.
5900
5901 2000-07-24  Richard Henderson  <rth@cygnus.com>
5902
5903         * config/ia64/ia64.c (ia64_print_operand): Handle "%,".
5904         * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): Likewise.
5905         * config/ia64/ia64.md (movdi_internal): Use it.
5906
5907 2000-07-24  Zack Weinberg  <zack@wolery.cumb.org>
5908
5909         * cppexp.c: Warn about unary + if -Wtraditional.
5910         * cpplex.c (lex_line): Always set BOL on the first token of a line.
5911
5912 2000-07-24  Michael Meissner  <meissner@redhat.com>
5913
5914         * d30v.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Delete references to
5915         unsupported macro.
5916
5917 2000-07-24  Nick Clifton  <nickc@cygnus.com>
5918
5919         * config/arm/arm.c (emit_multi_reg_push): Generate a
5920         REG_FRAME_RELEATED_NOTE that is compatable with the code in
5921         dwarf2out_debug_frame_expr.
5922
5923 2000-07-24  Jason Merrill  <jason@redhat.com>
5924
5925         * dwarf2out.c: Complain if DWARF2_DEBUGGING_INFO is defined without
5926         UNALIGNED_INT_ASM_OP.
5927         (def_cfa_1): Don't emit def_cfa_register or def_cfa_offset to adjust
5928         a location expression.
5929         (dwarf2out_frame_debug_expr): Lose cfa_old_reg stuff.  Don't
5930         assume indirect access if we're saving the CFA address exactly.
5931
5932         * Makefile.in (bootstrap): Move -BstageN/ to the end.
5933
5934 2000-07-24  Jakub Jelinek  <jakub@redhat.com>
5935
5936         * tradcpp.c (main): Update max_include_len for cpp_include_defaults
5937         as well.
5938
5939 2000-07-24  Michael Meissner  <meissner@redhat.com>
5940
5941         * invoke.texi (D30V Options): Add d30v options.
5942
5943 Mon Jul 24 02:04:52 2000  Jeffrey A Law  (law@cygnus.com)
5944
5945         * gcse.c (alloc_pre_mem): Do not alloc TRANSPOUT, it is not
5946         needed by our gcse pass anymore.
5947         (free_pre_mem): Corresponding changes.
5948         (compute_pre_data): Do not call compute_transpout anymore.
5949
5950         * gcse.c (alloc_avail_expr_mem): Kill unused 'u_bitmap'.
5951         (free_avail_expr_mem, alloc_pre_mem, free_pre_mem): Corresponding
5952         changes.
5953
5954         * gcse.c (free_pre_mem): Do not free ANTLOC and AE_KILL here.
5955         (compute_pre_data): Do it here instead.
5956
5957         * gcse.c (alloc_pre_mem, free_pre_mem): Delete unused bitmap
5958         'temp_bitmap'.
5959         (pre_delete): Corresponding changes.
5960
5961 2000-07-23  Mark Mitchell  <mark@codesourcery.com>
5962
5963         * c-semantics.c (make_rtl_for_local_static): Use TREE_ASM_WRITTEN
5964         to figure out whether or not a variable has already been emitted.
5965
5966 Sun Jul 23 14:49:12 2000  Jason Eckhardt  <jle@cygnus.com>
5967
5968         * config/i860/i860.md (untyped_call expander): Use GEN_CALL
5969         instead of gen_call.
5970
5971 Sun Jul 23 11:52:03 2000  George Helffrich (george@gly.bris.ac.uk)
5972
5973         * dbxout.c (dbxout_type, case COMPLEX_TYPE): Fix length field in stab.
5974
5975 2000-07-23  Kazu Hirata  <kazu@hxi.com>
5976
5977         * h8300.c: Fix formatting.
5978
5979 2000-07-23  Joseph S. Myers  <jsm28@cam.ac.uk>
5980
5981         * c-typeck.c (c_expand_start_case): Change -Wtraditional pedwarn
5982         for `long' switch expression into a plain warning.
5983
5984         * c-lex.c (init_lex): Keep the "inline" keyword in C99 mode.
5985         (yylex): Don't pedwarn for "inline" in C99 mode.
5986
5987         * bitmap.c (debug_bitmap_file): Cast pointers to PTR for printing
5988         with %p.
5989         * ggc-page.c (debug_print_page_list, alloc_page, free_page,
5990         ggc_alloc): Likewise.
5991         * bb-reorder.c (dump_scope_forest_1): Likewise.
5992
5993 2000-07-22  Aldy Hernandez  <aldyh@redhat.com>
5994
5995         * reload.c (find_reloads_toplev): Add new parameter
5996         "address_reloaded".
5997         (find_reloads): Add new parameter to find_reloads_toplev calls.
5998
5999 2000-07-22  Jeffrey Oldham  <oldham@codesourcery.com>
6000
6001         * collect2.c (main): Typo fixed.
6002         * diagnostic.c: Typo fixed.
6003         * dwarf2out.c (dwarf2out_frame_debug_expr): Typo fixed.
6004         * eh-common.h: Typo fixed.
6005         * emit-rtl.c (start_sequence): Typo fixed.
6006         * flow.c (find_label_refs): Typo fixed.
6007         (calculate_global_regs_live): Typo fixed.
6008         (mark_regno_cond_dead): Typo fixed.
6009         (create_edge_list): Typos fixed.
6010         (verify_edge_list): Typo fixed.
6011         * ggc-common.c (ggc_mark_rtx_children): Typo fixed.
6012         * loop.c (strength_reduce): Typo in function name fixed.
6013         * rtl.h: Added comments.  Typo in function name fixed.
6014         * rtlanal.c: Typo in function name fixed.
6015         (insn_dependant_p): Rename to ...
6016         (insn_dependent_p): ... this.
6017         (computed_jumo_p): Typo fixed.
6018
6019 2000-07-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6020
6021         * system.h (__FUNCTION__): Wrap definition in #ifndef.
6022
6023 2000-07-21  David Edelsohn  <edelsohn@gnu.org>
6024
6025         * rs6000.h (SIZE_TYPE): Define.
6026
6027 2000-07-21  Mark Mitchell  <mark@codesourcery.com>
6028
6029         * ssa.c (rename_insn_1): Don't rename registers that are
6030         CLOBBERed.
6031
6032 2000-07-21  Zack Weinberg  <zack@wolery.cumb.org>
6033
6034         * diagnostic.c (trim_filename, fancy_abort): Moved here from
6035         rtl.c.
6036         (fatal_function, set_fatal_function): Removed.
6037         (fatal): Don't prepare for or call the fatal_function.
6038         (diagnostic_lock, error_recursion): New.
6039         (diagnostic_for_decl, report_diagnostic): Guard against
6040         re-entering the error reporting routines.
6041         (fancy_abort): Assume function is not NULL.
6042
6043         * errors.c (fancy_abort): New.  Assume function is not NULL.
6044         * tradcpp.c (fancy_abort): Assume function is not NULL.
6045
6046         * system.h: Provide default definition of __FUNCTION__.
6047         * rtl.h: Use __FUNCTION__ not __PRETTY_FUNCTION__ throughout.
6048         Always use __FUNCTION__ in definition of abort.
6049         * tree.h: Likewise.
6050         * varray.h: Likewise.
6051         * toplev.h: Likewise.  Don't prototype set_fatal_function.
6052
6053 2000-07-20  Geoff Keating  <geoffk@cygnus.com>
6054
6055         * config/rs6000/aix43.h (CPP_SPEC): Define __LONG_MAX__ correctly
6056         in 64-bit mode.
6057         * glimits.h: Don't do #if defined for ARCH_PPC.
6058
6059         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): All
6060         constants of size no larger than a pointer should go in the TOC.
6061         Add 'MODE' parameter.
6062         (LEGITIMIZE_RELOAD_ADDRESS): Add MODE parameter to
6063         ASM_OUTPUT_SPECIAL_POOL_ENTRY_P.
6064         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise.
6065         * config/rs6000/aix.h (SELECT_RTX_SECTION): Likewise.
6066         * config/rs6000/netware.h (SELECT_RTX_SECTION): Likewise.
6067         * config/rs6000/rs6000.c (constant_pool_expr_1): Likewise.
6068         (rs6000_legitimize_address): Likewise.
6069         (rs6000_emit_move): Likewise.
6070         (rs6000_select_rtx_section): Likewise.
6071         (output_toc): Deal properly with outputting small constants like
6072         HImode, and SFmode in 32-bit mode, and DFmode in 64-bit mode.
6073         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Add
6074         MODE parameter.  Put small constants in the TOC.
6075
6076         * config/rs6000/rs6000.c (easy_fp_constant_p): All constants are
6077         easy in SImode.
6078         (rs6000_emit_move): When reload calls us with an illegitimate
6079         address, exit early.  Move the change_address calls to one place
6080         at the end of the routine.  Merge the SImode and DImode expanders.
6081         When called by reload to put an integer into a FP register, force
6082         it to memory.
6083
6084         * config/rs6000/rs6000.c (struct toc_hash_struct): Add 'key_mode'
6085         field.
6086         (rs6000_hash_constant): Hash mode too.
6087         (toc_hash_function): Allow for key_mode.
6088         (toc_hash_eq): Structures are different if key_mode differs.
6089         (output_toc): Add 'mode' parameter.  Save key_mode.
6090         * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY):
6091         Pass 'mode' parameter.
6092         * config/rs6000/rs6000-protos.h (output_toc): Add 'mode' param.
6093
6094         * config/rs6000/rs6000.c (output_toc): Use RS6000_OUTPUT_BASENAME
6095         for vtable references.
6096
6097         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): If we have a
6098         choice, don't put integer values in FP regs.
6099
6100 Thu Jul 20 18:13:52 2000  Jeffrey A Law  (law@cygnus.com)
6101
6102         * flow.c (verify_flow_info): Revamp code to verify that the
6103         head and end of each basic block are in the insn chain.
6104
6105 Thu Jul 20 18:02:35 2000  Michael Matz <matzmich@cs.tu-berlin.de>
6106
6107         * gcse.c (record_one_set): Prepend instead of append onto
6108         reg_set_table, making it O(n) instead O(n^2).
6109         * lcm.c (compute_antinout_edge,compute_laterin,compute_available):
6110         Use a queue instead of a stack as worklist.
6111
6112 2000-07-20  Kazu Hirata  <kazu@hxi.com>
6113
6114         * h8300.c (two_insn_adds_subs_operand): Fix a typo.
6115         * h8300.h (OK_FOR_T): New.
6116         (EXTRA_CONSTRAINT): Support OK_FOR_T.
6117         * h8300.md: Use inc/dec.[wl] for increment/decrement
6118         by 1 and 2 in HI and SI modes.
6119
6120 2000-07-20  Jim Wilson  <wilson@cygnus.com>
6121
6122         * config/ia64/ia64.h (ASM_OUTPUT_MI_THUNK): Handle DELTA values
6123         larger than 14 bits.
6124
6125 2000-07-20  Zack Weinberg  <zack@wolery.cumb.org>
6126
6127         * cppmacro.c (CAN_PASTE_AFTER): New macro.
6128         (count_params): Don't set GNU_REST_ARGS on anything.
6129         (save_expansion): Set PASTE_LEFT only on tokens for which
6130         CAN_PASTE_AFTER is true, or which are named operators.
6131
6132         * cpplex.c (parse_args): Distinguish between a rest argument
6133         given one empty argument, and a rest argument given zero arguments.
6134         (maybe_paste_with_next): Look for VOID_REST tag, and trigger
6135         deletion of previous token based on that.
6136         (get_raw_token): Flatten some control structure.
6137
6138         * cpplib.h (CPP_LAST_EQ): Correct.
6139         (VOID_REST): New token flag.
6140         (GNU_REST_ARGS): Delete.
6141
6142         * tradcpp.c (main): Don't munge -D options.
6143         (make_definition): Bring -D handling in line with cpplib.
6144         (do_define): Strip all leading whitespace from macro definitions.
6145
6146 2000-07-20  David Billinghurst <David.Billinghurst@riotinto.com.au>
6147
6148         * Makefile.in (tradcpp): Depend on intl.o and version.o.
6149
6150 2000-07-20  Bruce Korb  <bkorb@gnu.org>
6151
6152         * fixincl/check.tpl: strip the platform specific types before testing
6153         * fixincl/fixfixes.c(gnu_type_fix): use platform specific types
6154         * fixincl/fixincl.tpl: use platform specific types
6155         * fixincl/fixlib.h: include the platform specific types
6156         * fixincl/inclhack.def(gnu_types): don't supply the types
6157         * fixincl/fixincl.x: regen
6158
6159 2000-07-19  Jim Wilson  <wilson@cygnus.com>
6160
6161         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): Don't allow XFmode in
6162         GR_REGS.
6163
6164 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
6165
6166         * tradcpp.c (rescan): Do not recognize directives when the #
6167         is indented.
6168
6169 2000-07-19  Zack Weinberg  <zack@wolery.cumb.org>
6170
6171         Implement C++ named operators.
6172
6173         * cpplib.h (TTYPE_TABLE): Move CPP_MIN and CPP_MAX into block
6174         of operators allowed in #if and having an _EQ variant.  Add
6175         CPP_MIN_EQ, CPP_MAX_EQ, and CPP_DEFINED.
6176         (cpp_token flags): Add NAMED_OP.
6177         (enum node_type): Add T_OPERATOR.
6178         (struct cpp_hashnode): Add code slot to value union.
6179         * cpphash.h (spec_nodes): Remove n_defined.
6180
6181         * cpplex.c (lex_line): Convert T_OPERATOR nodes to their proper types.
6182         (spell_token, can_paste, maybe_paste_with_next): Handle named operators.
6183         (is_macro_disabled): Tweak error messages.
6184
6185         * cpplib.c (get_define_node): Disallow all named operators as
6186         macro names.  Tweak error messages.
6187         (_cpp_init_stacks): Don't set up spec_nodes->n_defined.
6188
6189         * cppinit.c (builtin_array): Add entries for the named operators.
6190         * cppexp.c (lex): Check for CPP_DEFINED token.
6191         (priority table): Add entries for CPP_MIN and CPP_MAX.
6192         (_cpp_parse_expr): Handle CPP_MIN and CPP_MAX.
6193
6194 2000-07-19  Bernd Schmidt  <bernds@cygnus.co.uk>
6195
6196         * gcse.c (INSN_CUID): If ENABLE_CHECKING, abort if the uid is
6197         larger than the array of cuids.
6198         (alloc_gcse_mem): Use uid_cuid rather than INSN_CUID when computing
6199         cuids.
6200
6201 2000-07-19  Bruce Korb  <bkorb@gnu.org>
6202
6203         * fixinc/fixincl.c:  Convert to using a table of environment variables
6204         and activate the auto-edit marker on the fixed output files.
6205         * fixinc/fixlib.h:  Define the environment table
6206         * fixinc/fixincl.sh: export the ${INPUT} dir
6207         * fixinc/check.tpl: likewise
6208
6209 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
6210
6211         * gcc.c (.h spec): Fix typo.
6212
6213 Wed Jul 19 01:22:15 CEST 2000  Marc Espie  <espie@cvs.openbsd.org>
6214
6215         * Makefile.in: Fix tradcif.c path.
6216
6217 2000-07-18  Zack Weinberg  <zack@wolery.cumb.org>
6218
6219         * cpplib.h (TTYPE_TABLE): Rearrange to use only two per-entry
6220           macros, not five.
6221
6222         * cpphash.h (TOKEN_NAME): New macro.
6223         (_cpp_spell_operator): Deleted.
6224         (token_spellings): Now _cpp_token_spellings.
6225
6226         * cppexp.c: Use TOKEN_NAME or TYPE_NAME, not _cpp_spell_operator.
6227         * cpplex.c: Use OP and TK macros when expanding the
6228         TTYPE_TABLE.  Eliminate token_names.  For non-OPERATOR tokens,
6229         store the stringification of the enumeration name (CPP_CHAR,
6230         etc.) in the name slot of token_spellings.
6231         Use TOKEN_NAME and/or TOKEN_SPELL, do not reference
6232         token_spellings directly.
6233         * cpplib.c: Use TOKEN_SPELL.
6234
6235         * cpplex.c (_cpp_push_token): If the token being pushed back
6236         is the previous token in this context, just subtract one from
6237         context->posn.
6238         * cppmacro.c (save_expansion): Clear aux field when storing a
6239         placemarker.
6240
6241 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
6242
6243         * cpplex.c (cpp_scan_buffer): Output line command even at the stop
6244         buffer, provided it is not NULL.
6245
6246 2000-07-18  Alexandre Oliva  <aoliva@redhat.com>
6247
6248         * c-decl.c (duplicate_decls): Do not call make_var_volatile() in
6249         case of invalid volatile re-declaration.
6250
6251 2000-07-18  Jakub Jelinek  <jakub@redhat.com>
6252
6253         * calls.c (store_arg): Return non-zero if sibcall_failure is desired.
6254         (expand_call): Adjust caller.
6255
6256 2000-07-17  Gabriel Dos Reis  <gdr@codesourcery.com>
6257
6258         * diagnostic.h (report_diagnostic): Change prototype.
6259
6260         * diagnostic.c (output_do_verbatim, diagnostic_for_asm,
6261         diagnostic_for_decl):  Change prototype.
6262         (error_with_decl, warning_with_decl, pedwarn_with_decl, warning,
6263         error, warning, error_with_file_and_line,
6264         warning_with_file_and_line, pedwarn_with_file_and_line, fatal):
6265         Adjust call to report_diagnostic, diagnostic_for_decl.
6266         (error_for_asm, warning_for_asm): Adjust call to diagnostic_for_asm.
6267         (output_verbatim, verbatim): Adjust call to output_do_verbatim.
6268
6269         * c-errors.c (pedwarn_c99): Adjust call to report_diagnostic. End
6270         varaible argument list.
6271
6272 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
6273
6274         * cpphash.c: Don't include hashtab.h.  Most macro-handling code
6275         moved to cppmacro.c.
6276         (hash_HASHNODE, eq_HASHNODE, _cpp_dump_macro_hash,
6277         dump_hash_helper): Delete.
6278         (expand_hash, higher_prime_number, _cpp_lookup_with_hash,
6279         cpp_forall_identifiers): New. Implement specialized version of
6280         Vlad's expandable hash table.
6281         (cpp_lookup): Use new functions.
6282         (_cpp_init_macros, _cpp_cleanup_macros): Adjust for new
6283         implementation.
6284         * cppmacro.c: New file.
6285         * cppinit.c (dump_macros_helper): New.
6286         (cpp_finish): Iterate over the identifier table directly.
6287         * cpplex.c (parse_name): Calculate the hash of the identifier
6288         while we scan it.  Use _cpp_lookup_with_hash when we can.
6289
6290         * cpphash.h: Update prototypes.
6291         (xcnewvec, HASHSTEP): New helper macros.
6292         * cpplib.h: Update prototypes.
6293         * Makefile.in (LIBCPP_OBJS): Add cppmacro.o.
6294         (cppmacro.o): New rule.
6295         (cpphash.o): Update deps.
6296
6297         * cppmain.c: Do not set pfile->printer if no_output is on.
6298
6299 2000-07-15  Neil Booth  <neilb@earthling.net>
6300
6301         * cpplib.c: Change all directive-handler functions to return
6302         void, not int.
6303         * cpphash.h: Update typedefs.
6304
6305 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
6306
6307         * configure: Regenerate.
6308
6309         * extend.texi (Extended Asm): Mention that a memory clobber
6310         does not count as a side-effect.
6311
6312         * unroll.c (copy_loop_body): Fix one instance of using host
6313         arithmetic on the target; fixes loop-4 on a 32-bit -> 64-bit
6314         cross-compile.
6315
6316         * tlink.c (scan_linker_output): Tweak for output of AIX ld.
6317
6318 2000-07-17  Richard Henderson  <rth@cygnus.com>
6319
6320         * config/ia64/ia64.md (movdi): Split out load address code.
6321         New post-reload splitter for symbolic operands.
6322         (movdi_internal): Abort if we didn't split symbolic operands
6323         when we should have.
6324         * config/ia64/ia64.c (ia64_expand_load_address): New, from movdi bits.
6325         (ia64_reorg): Split insns when not optimizing.
6326         * config/ia64/ia64-protos.h (ia64_expand_load_address): Declare.
6327
6328 Mon Jul 17 23:43:26 MET DST 2000  Jan Hubicka  <jh@suse.cz>
6329
6330         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use LONG_DOUBLE_TYPE_SIZE
6331         instead of MAX_LONG_DOUBLE_TYPE_SIZE to decide output format.
6332
6333 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
6334
6335         * loop.c (check_dbra_loop) : Changed loop_continue to loop->cont.
6336
6337 2000-07-17  Jason Merrill  <jason@redhat.com>
6338
6339         * Makefile.in (clean): Remove libgcc directory.
6340
6341         * configure.in (-Wno-long-long check): Use higher-level macros.
6342
6343 2000-07-17  Zack Weinberg  <zack@wolery.cumb.org>
6344
6345         * simplify-rtx.c (simplify_binary_operation): Recognize
6346            (compare (gt[u] (cc) 0) (lt[u] (cc) 0)).
6347         (simplify_ternary_operation):  Do not examine MODE_BITSIZE of
6348            a CONST_INT, it will always be zero.
6349
6350 2000-07-17  Chandrakala Chavva   <cchavva@cygnus.com>
6351
6352         * loop.c (check_dbra_loop) : Return if more than one condition is
6353         present to control the loop.
6354
6355 Mon Jul 17 08:26:35 2000  Clinton Popetz  <cpopetz@cygnus.com>
6356
6357         * mips.c (mips_expand_prologue): Don't calculate the last argument
6358         register unless we need it.  When we are calculating this, make
6359         sure FUNCTION_ARG is giving us a REG.
6360
6361 2000-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6362
6363         * flow.c (libcall_dead_p): Use single_set to verify the insn
6364         has only one set and get for analysis.
6365         (propagate_one_insn): Don't pass the PATTERN of the insn.
6366
6367 2000-07-17  Mark Klein <mklein@dis.com>
6368
6369          * pa.c (emit_hpdiv_const): Update to match new pattern for udivsi3.
6370
6371 2000-07-17  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6372
6373         * Makefile.in (TARGET_GETGROUPS_T): New configuration variable.
6374         * configure.in (TARGET_GETGROUPS_T): Evaluate.
6375         * sys-protos.h (getgroups): Use TARGET_GETGROUPS_T for array type
6376         of second argument of getgroups.
6377         * configure, config.in: Rebuilt.
6378
6379 2000-07-17  Geoffrey Keating  <geoffk@cygnus.com>
6380
6381         * simplify-rtx.c (simplify_relational_operation): Two signed
6382         values with equal high words are less/greater than each other if
6383         their low words are less/greater when considered as unsigned.
6384
6385 Mon Jul 17 02:37:06 2000  Marc Espie <espie@openbsd.org>
6386
6387         * configure.in (vax-*-openbsd):  Change to new style configuration,
6388         add collect2/float_format information.
6389         * configure:  Rebuilt.
6390         * config/vax/openbsd1.h:  New.
6391         * config/vax/openbsd.h:  New.
6392         * config/vax/t-openbsd:  New.
6393
6394 2000-07-17  Chip Salzenberg  <chip@valinux.com>
6395
6396         * c-common.c (shorten_compare): Quiet warnings about unsigned
6397         comparisons with zero when they occur in a system header.
6398
6399 2000-07-17  Joseph S. Myers  <jsm28@cam.ac.uk>
6400
6401         * invoke.texi (-pedantic): Refer to ISO C instead of ANSI C, and
6402         update to describe current practice.
6403
6404         * glimits.h (LLONG_MIN, LLONG_MAX, ULLONG_MAX): Define for C99.
6405
6406         * contrib.texi, cpp.texi, extend.texi, invoke.texi: Update
6407         references to C9X.  Change references to -fstd and -flang-isoc9x
6408         to refer to -std.
6409
6410         * c-common.c (scan_char_table): Allow "z" length modifiers on
6411         diouxXn formats.
6412         (check_format_info): Use TYPE_DOMAIN on the type matched against
6413         for "z" formats, to retrieve the language size_t rather than the
6414         internal one.
6415
6416         * c-common.c (check_format_info): Do not make a pedantic objection
6417         to the 'L' length modifier if used with a floating point type
6418         character.
6419
6420         * c-lex.c (yylex): Don't pedwarn for hexadecimal floating point
6421         constants in C99 mode.
6422
6423 2000-07-17  Kazu Hirata  <kazu@hxi.com>
6424
6425         * h8300.md: Fix the format of mac.
6426         (movsi_h8300hs): Output a tab after stmac instead of a space.
6427
6428         * h8300.c (two_insn_adds_subs_operand): Improve code for detecting
6429         profitable adds/subs sequences.
6430
6431         * fold-const.c: Fix comment typos.
6432
6433 2000-07-16  Laurynas Biveinis  <lauras@softhome.net>
6434
6435         * cppfiles.c (read_name_map): Set map_list_ptr->map_list_map to NULL.
6436
6437 2000-07-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6438
6439         * fixinc/fixfixes.c (emit_gnu_type): Avoid string concatenation.
6440
6441 2000-07-16  Neil Booth  <NeilB@earthling.net>
6442
6443         * cpplex.c: Update comments.
6444         * README.Portability: Small update.
6445
6446 2000-07-16  Neil Booth  <NeilB@earthling.net>
6447
6448         * README.Portability:  Small update.
6449
6450 2000-07-15  Richard Henderson  <rth@cygnus.com>
6451
6452         * config/ia64/ia64-protos.h (ia64_move_ok): Prototype.
6453         * config/ia64/ia64.c (ia64_move_ok): New function.
6454         * config/ia64/ia64.md (movqi, movqi_internal): Use it.
6455         (movhi, movsi, movdi, movsf, movdf, movxf): Likewise.
6456
6457 2000-07-15  Zack Weinberg  <zack@wolery.cumb.org>
6458
6459         * cpphash.c (save_expansion): Clear PREV_WHITE on tokens
6460         immediately following a paste operator.
6461         * cppinit.c (sort_options): New function (only for HOST_EBCDIC).
6462         (cpp_reader_init): Call it, if HOST_EBCDIC.
6463         (cpp_handle_options): Do not sort option list here.
6464         (handle_option): Rename to cpp_handle_option and export.
6465         * cpplex.c (cpp_scan_buffer_nooutput, cpp_scan_buffer): Use
6466         _cpp_get_token directly.
6467         (cpp_scan_line): Return 0 at EOF, 1 otherwise.
6468         * cpplib.c (cpp_push_buffer): Don't set new->lineno to 1.
6469         * cpplib.h: Prototype cpp_handle_option.  Update prototype of
6470         cpp_scan_line.
6471
6472 2000-07-15  Richard Henderson  <rth@cygnus.com>
6473
6474         * fold-const.c (extract_muldiv): Don't optimize past an unsigned
6475         cast around an expression.  Tidy other unsigned tests.
6476
6477 2000-07-15  Gabriel Dos Reis  <gdr@codesourcery.com>
6478
6479         * diagnostic.c (doing_line_wrapping, line_wrapper_printf, notice,
6480         v_error_with_decl, v_warning_with_decl, v_pedwarn_with_decl): Remove.
6481         (v_message_with_decl): Rename to ...
6482         (format_with_decl): ... this. Tweak
6483         (diagnostic_for_decl): New function.
6484         (fatal_io_error): Use verbatim in lieu of notice.
6485         (announce_function): Use verbatim.
6486         (default_print_error_function): Likewise.
6487         (error_with_decl, warning_with_decl, pedwarn_with_decl): Use new
6488         infratructure.
6489
6490 2000-07-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6491
6492         * mips.c (function_arg_pass_by_reference): Don't do automatic
6493         aggregate initialization.
6494         (machine_dependent_reorg): Initialize variable `mode'.
6495
6496         * mips.md (absdi2): Change variable `regno1' to unsigned int.
6497         (reload_indi): Rename loword/hiword to lo_word/hi_word to avoid
6498         conflicts with sys/param.h macro of the same name.
6499         (reload_outdi): Likewise.
6500
6501 2000-07-15  Michael Meissner  <meissner@redhat.com>
6502
6503         * fold-const.c (fold): When optimizing FOO++ == CONST into ++FOO
6504         == CONST + INCREMENT, don't overwrite the tree node for FOO++,
6505         create a new node instead.
6506
6507 2000-07-15  Neil Booth  <NeilB@earthling.net>
6508
6509         * README.Portability: Correct example about calling a function
6510         through a pointer to function.  Format wide paragraphs.
6511
6512 2000-07-15  Michael Meissner  <meissner@redhat.com>
6513
6514         * README.Portability: Update integer suffixes and function
6515         prototype sections.
6516
6517 2000-07-15  Neil Booth  <NeilB@earthling.net>
6518
6519         * README.Portability: Small update.
6520
6521 2000-07-15  Neil Booth  <NeilB@earthling.net>
6522
6523         * README.Portability: New file.
6524
6525 Fri Jul 14 18:13:53 2000  Mark P Mitchell  <mark@codesourcery.com>
6526
6527         * INSTALL: Give special instructions for building GCC on Irix 6.
6528         * config/mips/x-iris6 (CC): Don't set it.
6529         (OLDCC): Likewise.
6530
6531 2000-07-14  Jason Merrill  <jason@redhat.com>
6532
6533         * dwarf2out.c (dwarf2out_frame_debug_expr): If we store the CFA
6534         register in the stack and later in another register, use the new
6535         register.
6536
6537 Fri Jul 14 10:25:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
6538
6539         * config/mips/mips.md: (absdi2): Handle sign_extend for
6540         second operand.
6541
6542 2000-07-14  Nathan Sidwell  <nathan@codesourcery.com>
6543
6544         * cpplib.c (do_pragma_dependency): Tidy warning messages.
6545
6546 2000-07-14  Zack Weinberg  <zack@wolery.cumb.org>
6547
6548         * .cvsignore: Correct typo.
6549
6550 2000-07-13  Mark Mitchell  <mark@codesourcery.com>
6551
6552         * .cvsignore: Add generated YACC files.
6553         * objc/.cvsignore: New file.
6554
6555 2000-07-14  Neil Booth  <NeilB@earthling.net>
6556
6557         * cpplex.c (adjust_column): New funcion.
6558         (skip_whitespace): Use it.
6559         (skip_block_comment): Use it, and warn about /*/* with
6560         -Wcomments.
6561
6562 2000-07-14  Neil Booth  <NeilB@earthling.net>
6563
6564         * cpphash.c (struct macro_info): Add new members.
6565         (_cpp_free_definition): Delete the macro directly.
6566         (count_params): Return void, with first token of
6567         expansion in struct macro_info on success.
6568         (parse_define): Return int.  Hoist syntax checking from
6569         save_macro_expansion.  Leave call to save_expansion to
6570         _cpp_create_definition.
6571         (alloc_macro): Needs just 2 arguments.
6572         (free_macro): Delete.
6573         (save_expansion): Don't perform syntax check.
6574         (_cpp_create_definition): Call save_expansion.
6575
6576 2000-07-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6577
6578         * genrecog.c (write_header): Split long string.
6579
6580         * cpphash.c (macro_info): Don't use the `signed' keyword.
6581
6582         * system.h (alloca): Prototype if __GNUC__ && __SIZE_TYPE__.
6583
6584 2000-07-13  Jakub Jelinek  <jakub@redhat.com>
6585
6586         * calls.c (stored_args_map): New variable.
6587         (check_sibcall_argument_overlap_1): New.
6588         (check_sibcall_argument_overlap): New.
6589         (expand_call): Initialize stored_args_map.
6590         Call check_sibcall_argument_overlap.
6591
6592 2000-07-13  Bruce Korb  <bkorb@gnu.org>
6593
6594         * fixinc/fixfixes.c: move EXIT_BROKEN to header, add sub-expr max count
6595         (emit_gnu_type): utility procedure for gnu_type_fix
6596         (gnu_type_fix): implement various pre-processor guards around
6597         standard types so these types can be defined over and over
6598         * fixinc/fixincl.tpl: add a "gnu_type_map" that forces the standard
6599         types alluded to above will have GNU-compliant base types
6600         * fixinc/fixlib.h: add EXIT_BROKEN define and the gnu_type_map struct
6601         * fixinc/inclhack.def: add test_text entries and utilize the new
6602         "gnu_types" fix for the ptrdiff_t, size_t and wchar_t types.
6603         * fixinc/fixincl.x: regenerate
6604
6605 2000-07-12  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
6606
6607         * diagnostic.c (vline_wrapper_message_with_location,
6608         v_message_with_file_and_line, v_error_with_file_and_file,
6609         v_error_for_asm, v_warning_for_asm, vfatal,
6610         v_warning_with_file_and_line, v_pedwarn_with_file_and_line,
6611         vsorry, verror, vwarning, vpedwarn): Remove.
6612         (diagnostic_for_asm): New function.
6613         (pedwarn, error, warning, pedwarn_with_file_and_line,
6614         error_with_file_and_line, warning_with_file_and_line, sorry,
6615         error_for_asm, warning_for_asm, fatal): Reimplement.
6616         (finish_diagnostic): Clear diagnostic info as well.
6617
6618 2000-07-13  Neil Booth  <NeilB@earthling.net>
6619
6620         * c-common.h (flag_digraphs): New.
6621         * c-decl.c (c_decode_option): Set flag_digraphs as appropriate.
6622         * c-lex.c (yylex): Use flag_digraphs to decide whether to
6623         honour digraphs.
6624
6625 2000-07-13  Zack Weinberg  <zack@wolery.cumb.org>
6626
6627         * gcc.c (do_spec_1): Add new %B operator.
6628         (set_input): Prepare for %B.
6629
6630         (link_command_spec): Move up with the other tm.h-
6631         overrideable specs.  Factor out the portion conditional on
6632         LINK_LIBGCC_SPECIAL into a new spec, %(link_libgcc).
6633         (struct compiler): Just have a single spec string.  All users
6634         updated.
6635         (default_compilers): Remove unnecessary braces.
6636         (static_specs): Update.
6637
6638         (trad_capable_cpp, cpp_options, cc1_options, asm_options): New
6639         named specs.
6640         (C and assembly specs): Use the new named specs, as appropriate.
6641
6642         * objc/lang-specs.h: Use the new named specs.
6643         Remove unnecessary braces.
6644
6645 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
6646
6647         * gcc.c (execute): If a subprocess gets a fatal signal, report
6648         strsignal() of the signal number, and ask for a bug report.
6649         Do not do this for SIGPIPE if there's already been an error.
6650
6651         * tradcpp.c: Don't include signal.h.  Don't catch SIGPIPE.
6652         Delete pipe_closed.
6653
6654         * tradcif.c: Remove.
6655
6656 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
6657
6658         * final.c (profile_function): Do not emit profile counters in
6659         the data section, if NO_PROFILE_COUNTERS is defined.
6660         * tm.texi: Document NO_PROFILE_COUNTERS.  Update doc for
6661         FUNCTION_PROFILER.
6662
6663         * config/i386/linux.h (NO_PROFILE_COUNTERS): Define.
6664         (FUNCTION_PROFILER): Just emit a call to mcount.
6665
6666 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
6667
6668         * tradcpp.c (main): Rename 'perror' label to 'sys_error'.
6669
6670         * cppexp.c, cpphash.c, cpphash.h, cppinit.c, cpplex.c,
6671         cpplib.c, cpplib.h: Eradicate all traces of code dependent on
6672         traditional, lang_chill, or lang_fortran.
6673
6674         * cppfiles.c: #undef strcmp to suppress warning about macros
6675         used without arguments.
6676         (_cpp_execute_include): Use f, not fname, in "No include path"
6677         error.
6678         (_cpp_pop_file_buffer): New function.
6679         * cpplib.c: Don't include <sys/mman.h>.
6680         (cpp_push_buffer): Set line_base and lineno in new buffer.
6681         (cpp_pop_buffer): Use _cpp_pop_file_buffer.
6682
6683         * cpplex.c: Move all prototypes and structure declarations to the
6684         top of the file.  Properly parenthesise some macro arguments.
6685         (cpp_scan_line): New function.
6686         (special_symbol [case T_INCLUDE_DEPTH]): Use pfile->include_depth,
6687         don't need to walk up the stack counting.
6688
6689 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6690
6691         * c-common.c (combine_strings): Emit a pedantic warning when a
6692         string length is greater than the minimum ANSI C is required
6693         to support.
6694
6695 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
6696
6697         * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
6698         * d30v/xm-d30v.h (NO_SYS_SIGLIST): Kill.
6699
6700 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6701
6702         * c-decl.c (define_label): Warn about identifier conflicts with
6703         labels in traditional C.
6704
6705         * c-parse.in (unop +): Warn about the unary plus operator for
6706         traditional C.
6707
6708         * c-typeck.c (store_init_value): Warn about automatic aggregate
6709         initialization for traditional C.
6710
6711         * invoke.texi (-Wtraditional): Document new warnings.
6712
6713 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
6714
6715         * Makefile.in (c-errors.o): Fix thinko in dependency.
6716
6717 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
6718
6719         * gcc.c (C specs [!USE_CPPLIB]): Invoke tradcpp if any of
6720         -traditional, -ftraditional, or -traditional-cpp was given.
6721         Do not pass -traditional to the preprocessor.
6722         (.S spec): Likewise.  Don't bother defining __ASSEMBLER__, the
6723         preprocessor does it automatically.
6724         * objc/lang-specs.h: Likewise.  Don't bother defining __OBJC__.
6725
6726         * ch/lang-specs.h: Always use tradcpp.  Do not pass
6727         -traditional, -trigraphs, or -pedantic to the preprocessor.
6728         * f/lang-specs.h (.F spec): Likewise.  Don't bother defining
6729         _LANGUAGE_FORTRAN.
6730
6731 2000-07-12  Zack Weinberg  <zack@wolery.cumb.org>
6732
6733         * cppexp.c (LOGICAL): Delete macro.
6734         (_cpp_parse_expr): Do not use UNARY for unary +.  Implement ||
6735         and && directly.
6736
6737         * cpphash.c (HASHSIZE): Increase to 4096.
6738         (struct hashdummy): Add hash field.
6739         (eq_HASHNODE): Compare unreduced hashes, then lengths, then
6740         the string values using memcmp.
6741         (cpp_lookup): Set dummy.hash.
6742
6743 Wed Jul 12 13:15:16 2000  Marc Espie <espie@openbsd.org>
6744
6745         * configure.in (m88k-openbsd): Express configuration using new fragment
6746         style.
6747         * configure: Rebuilt.
6748         * m88k/aout-dbx.h: New.
6749         * m88k/openbsd.h: New.
6750         * m88k/xm-openbsd.h: New.
6751
6752 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6753
6754         * expr.c (expand_expr): Return const0_rtx, not error_mark_node.
6755
6756 2000-07-12  Richard Henderson  <rth@cygnus.com>
6757
6758         * reload.c (push_secondary_reload): Make sure to add the new
6759         reload at the end, after acquiring secondary memory.
6760
6761 2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6762
6763         * cpplex.c (is_macro_disabled): Use CPP_WTRADITIONAL.
6764
6765         * c-decl.c (set_current_function_name_declared, anon_aggr_type_p,
6766         lang_expand_stmt): Mark parameters with ATTRIBUTE_UNUSED.
6767
6768         * c-parse.in (stmt): Delete unused variables.
6769
6770         * convert.c (convert_to_vector): Likewise.
6771
6772         * gensupport.c (process_rtx): Declare attr as `rtvec' not `rtx'.
6773
6774         * tree.c (finish_vector_type): Prototype.
6775
6776 2000-07-12  Bruce Korb  <bkorb@gnu.org>
6777
6778         * fixinc/fixfixes.c: use xmalloc
6779         * fixinc/fixincl.c(initialize): set program name for xmalloc
6780         * fixinc/fixlib.c(must_malloc): obsolete
6781         (is_cxx_header): no longer used - disabled
6782         (skip_quote): inserted and disabled for future use
6783         * fixinc/fixlib.h: reflects above
6784         * fixinc/fixtests.c: removed dinkleberries
6785
6786 2000-07-12  Neil Booth  <NeilB@earthling.net>
6787
6788         * cpphash.h: (TOKEN_SPELL) Pulled from cpplex.c.
6789         * cpplex.c (TOKEN_SPELL) Move to cpphash.h.
6790
6791         * cpphash.c: (struct macro_info, alloc_macro, free_macro,
6792         struct toklist_dummy): New.
6793         (cpp_free_definition): Free macros with free_macro.
6794         (count_params): Don't save paramter spellings.  Save macro
6795         information in a struct macro_info.
6796         (parse_define): Don't allocate a token list.
6797         (save_expansion): Allocate the macro's token list, and
6798         save parameter spellings if necessary.  Use TOKEN_SPELL.
6799         (cpp_create_definition): Make list const.
6800
6801 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
6802
6803         * c-typeck.c (pedwarn_c99): Move to
6804         * c-errors.c: ... Here.
6805         * toplev.h (verror, vwarning, vpedwarn): Remove prototypes.
6806         * diagnostic.c (verror, vwarning, vpedwarn): Make static.
6807         * Makefile.in (C_AND_OBJC_OBJS): Include c-errors.o
6808         (c-errors.o): List dependency.
6809
6810 2000-07-12  Mark Mitchell  <mark@codesourcery.com>
6811
6812         * c-parse.c: Remove.
6813         * c-parse.h: Likewise.
6814         * c-parse.y: Likewise.
6815         * objc/objc-parse.c: Likewise.
6816         * objc/objc-pasre.y: Likewise.
6817
6818 2000-07-11  Rodney Brown  <RodneyBrown@pmsc.com>
6819
6820         * gcc.texi: Fix minor typos
6821         * extend.texi: Fix minor typos
6822
6823 2000-07-11  Marc Espie <espie@openbsd.org>
6824
6825         * collect2.c (main): Recognize .lo as object files.
6826
6827 2000-07-11  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
6828
6829         * pa.c (hppa_encode_label): Store labels in gc memory when ggc_p is
6830         true.
6831
6832         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Extend test to detect systems
6833         with MAP_ANONYMOUS and MAP_ANON.
6834         * configure, config.in: Rebuilt.
6835
6836 2000-07-12  Gabriel Dos Reis  <gdr@codesourcery.com>
6837
6838         * diagnostic.c (save_output_state): Remove.
6839         (restore_output_state): Likewise.
6840         (clear_text_info): New function.
6841         (clear_diagnostic_info): Likewise.
6842         (output_text_length, is_starting_newline, output_prefix,
6843         line_wrap_cutoff, ideal_line_wrap_cutoff, prefix_was_emitted_for,
6844         prefixing_policy, output_buffer_ptr_to_format_args): New macros
6845         (set_real_maximum_length, output_set_maximum_length,
6846         output_set_prefix, output_get_prefix, output_set_maximum_length,
6847         output_destroy_prefix, init_output_buffer,
6848         reshape_diagnostic_buffer, output_space_left, output_emit_prefix,
6849         output_add_newline, output_add_character, output_add_space,
6850         output_append_r, output_append, wrap_text, output_format,
6851         output_do_printf, output_printf, output_do_verbatim,
6852         output_verbatim, verbatim): Use them.
6853         (output_clear): Split into cleat_text_info and
6854         clear_diagnostic_info.
6855         (struct output_state): Move to...
6856
6857         * diagnostic.h: ...Here
6858         (struct output_buffer): Adjust.
6859
6860 2000-07-11  Zack Weinberg  <zack@wolery.cumb.org>
6861
6862         * cpplex.c (parse_name): No longer inline (premature optimization).
6863         (do_pop_context): Fold into pop_context.
6864         (pop_context): Returns int.
6865         (lex_next): Hoist test for end of directive into pop_context.
6866         (push_macro_context): Returns int; takes just reader and token.
6867         Hoist test for excessive nesting to caller.
6868         (push_arg_context): Returns void; takes just reader and token.
6869         Do not call stringify_arg or get_raw_token.
6870         (get_raw_token): Convert tail recursion through push_arg_context
6871         to a loop at this level.  Call stringify_arg here if appropriate.
6872         (maybe_paste_with_next): Convert tail recursion to a while loop.
6873         Hoist test of paste_level to caller.
6874
6875         (stringify_arg): Push arg context at beginning.
6876         (cpp_get_token): Split out core into _cpp_get_token.  Call
6877         process_directive here.  Throw away CPP_PLACEMARKER tokens.
6878         (_cpp_get_token): Convert tail recursion through
6879         push_macro_context to a loop at this level.
6880         (_cpp_glue_header_name, is_macro_disabled, stringify_arg,
6881         _cpp_get_raw_token): Use _cpp_get_token.
6882         (_cpp_skip_rest_of_line): Drop the context stack directly; do
6883         not call pop_context.
6884         (_cpp_run_directive): Call lex_next directly.
6885
6886         * cpphash.h: Prototype _cpp_get_token.
6887         * cppexp.c (lex): Use it.
6888         * cpphash.c (parse_define): Use it.
6889         * cpplib.c (get_define_node, do_undef, parse_include,
6890         read_line_number, do_line, do_ident, do_pragma, do_pragma_gcc,
6891         do_pragma_implementation, do_pragma_poison, do_pragma_dependency,
6892         parse_ifdef, validate_else): Use it.
6893         (cpp_push_buffer): Tweak error message; abort if anyone tries
6894         to push a buffer while macro expansions are stacked.
6895
6896 2000-07-11  Donn Terry  <donnte@microsoft.com>
6897
6898         * cpplex.c (free_macro_args, save_token): Cast arg of free
6899         and/or xrealloc to PTR.
6900         (_cpp_init_input_buffer): Clear all fields of the base context.
6901
6902 Tue Jul 11 15:28:21 CDT 2000  Clinton Popetz  <cpopetz@cygnus.com>
6903
6904         * gensupport.c (process_rtx): Make rtl checking stop
6905         complaining about the define_insn while it is being
6906         converted from a define_insn_and_split.
6907
6908 Tue Jul 11 16:26:17 2000  Clinton Popetz  <cpopetz@cygnus.com>
6909
6910         * config/mips/mips.c (simple_memory_operand): Access the
6911         INTVAL of the address, not it's containing MEM.
6912
6913 2000-07-11  Bruce Korb  <bkorb@gnu.org>
6914
6915         * fixinc/fixtests.c(double_slash): obsolete
6916         (else_endif_label): likewise
6917         * fixinc/inclhack.def(irix_multiline_cmnt): obsolete
6918         (libc1_ifdefd_memx): correct initial comment
6919         and omit the #if/#endif pair from the memxxx declarations
6920         * fixinc/fixincl.x: regen
6921
6922 2000-07-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6923
6924         * cpplex.c (T, I, S, C, N): Avoid non-constant initializers.
6925
6926 2000-07-11  Neil Booth  <NeilB@earthling.net>
6927
6928         * cpp.texi: Update.
6929
6930 2000-07-11  Neil Booth  <NeilB@earthling.net>
6931
6932         * cppinit.c: (cpp_reader_init): Allow digraphs by default.
6933         (handle_option): Set digraphs according to standard.
6934         Merge OPT_lang_c89 handler with OPT_std_c89.
6935
6936         * cpplex.c: (lex_line, can_paste): Honour digraphs in
6937         accordance with the digraphs flag.
6938
6939         * cpplib.h: (struct cpp_options): New option digraphs.
6940
6941 2000-07-10  Hans-Peter Nilsson  <hp@axis.com>
6942             Bruce Korb  <bkorb@gnu.org>
6943
6944         * fixinc/inclhack.def (libc1_ifdefd_memx): New fix.
6945         * fixinc/fixincl.x: Regenerate.
6946         * fixinc/tests/base/testing.h: Add testcase.
6947
6948 2000-07-10  Richard Henderson  <rth@cygnus.com>
6949
6950         * config/ia64/ia64.c (got_symbolic_operand): New.
6951         (symbolic_operand, move_operand): Revert 0701 change.
6952         * config/ia64/ia64.h (PREDICATE_CODES): Update.
6953         * config/ia64/ia64-protos.h (got_symbolic_operand): Declare.
6954         * config/ia64/ia64.md (movdi): Revert 0701 wrt symbolic_operand;
6955         split the offset into a 14-bit low part instead of a 13-bit low part.
6956         (load_fptr): Mark the mem as unchanging.
6957         (load_symptr): Use got_symbolic_operand.
6958
6959 2000-07-10  Nick Clifton  <nickc@cygnus.com>
6960
6961         * libgcc2.c (next_stack_level): Cast result of computation to
6962         (void **) so that the assignment does not generate a warning.
6963
6964 2000-07-10  Chandrakala Chavva  <cchavva@redhat.com>
6965
6966         * flags.h : Add new variable flag_single_precision_constant.
6967         * toplev.c (display_help) : Add -fsingle-precision-constant option.
6968         (flag_single_precision_constant): New.
6969         * c-lex.c (yylex): Convert floating point constant to single
6970         precision constant.
6971         * invoke.texi : Add documentation for this new option.
6972
6973 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
6974
6975         * diagnostic.c (output_octal): Second parameter is unsigned.
6976         (output_long_octal): Likewise.
6977         (output_hexadecimal): Likewise.
6978         (output_long_hexadecimal): Likewise.
6979         (output_format): Adjust arguments extraction. Tweak.
6980         (output_verbatim, verbatim): End variable argument list.
6981         (report_diagnostic): Improve documentation.
6982
6983 2000-07-10  Benjamin Chelf  <chelf@codesourcery.com>
6984
6985         * c-common.h (build_stmt): Declare.
6986         (build_continue_stmt): Likewise.
6987         (build_break_stmt): Likewise.
6988         (build_return_stmt): Likewise.
6989
6990         * c-decl.c (do_case): Rewrite to do what previously done in
6991         c-parse.in.
6992
6993         * c-semantics.c (build_stmt): Define.
6994         (build_return_stmt): Likewise.
6995         (build_break_stmt): Likewise.
6996         (build_continue_stmt): Likewise.
6997         (build_case_label): Likewise.
6998
6999         * c-parse.in (BREAK): Change to build tree, then generate RTL.
7000         (CONTINUE): Likewise.
7001         (RETURN): Likewise.
7002         (CASE): Likewise.
7003         (DEFAULT): Likewise.
7004
7005         * c-parse.y: Regenerate.
7006         * c-pasre.c: Likewise.
7007
7008 2000-07-09  Jason Merrill  <jason@redhat.com>
7009
7010         * expr.c (expand_expr): Bail earlier if we get an error_mark_node.
7011
7012         * tree.h (STRIP_NOPS): Check for error_mark_node.
7013         (STRIP_SIGN_NOPS, STRIP_TYPE_NOPS): Likewise.
7014         (dwarf2out_*): Remove duplicate declarations.
7015
7016         * c-decl.c (duplicate_decls): Copy DECL_ABSTRACT_ORIGIN from
7017         DECL_ABSTRACT_ORIGIN, not DECL_ORIGIN.
7018
7019 2000-07-10  Gabriel Dos Reis  <gdr@codesourcery.com>
7020
7021         * diagnostic.c (wrap_text): New function.
7022         (maybe_wrap_text): Likewise.
7023         (output_add_string): Use it.
7024         (output_format): Likewise.
7025         (count_error): Use verbatim instead of notice.
7026         (report_error_function): Likewise. Don't use plain fprintf.
7027         (finish_diagnostic): New function.
7028         (output_do_verbatim): Tweak.  Commonalize functionalities in
7029         output_verbatim and verbatim.
7030         (output_verbatim): Adjust.
7031         (verbatim): Likewise.
7032         (report_diagnostic): Define.
7033
7034         * diagnostic.h (report_diagnostic): Prototype.
7035
7036 2000-07-09  Zack Weinberg  <zack@wolery.cumb.org>
7037
7038         * cppexp.c (_cpp_parse_expr): Don't use unary plus.
7039
7040 2000-07-09  Neil Booth  <NeilB@earthling.net>
7041
7042         * cpphash.h: ISvspace, is_vspace, is_nvspace: New.
7043         IShspace, ISspace: Update.
7044
7045         * cppinit.c: ISTABLE: Update.
7046         V: New.
7047
7048         * cpplex.c (IS_HSPACE, S_NEWLINE): Remove.
7049         (IS_DIRECTIVE): Rename KNOWN_DIRECTIVE.
7050         (skip_block_comment, skip_line_comment, parse_string,
7051         lex_line): Use is_vspace rather than IS_NEWLINE.
7052         (skip_whitespace, lex_line): Clean up to use is_nvspace.
7053         (lex_line): Use KNOWN_DIRECTIVE.  Any kind of directive
7054         gets a BOL flag.
7055         (lex_next): Unconditionally stop if within a directive.
7056         Treat directives within macro invocations as directives
7057         (after parse_args emits error), not as the argument.
7058
7059 2000-07-09  Gabriel Dos Reis  <gdr@codesourcery.com>
7060
7061         * diagnostic.c (diagnostic_args): New macro.
7062         (diagnostic_msg): Likewise.
7063         (output_formatted_integer): Likewise.
7064         (output_state): New data type.
7065         (digit_buffer): Make global.
7066         (output_add_integer): Rename to output_decimal. Squeeze
7067         digit_buffer.
7068         (output_long_decimal, output_unsigned_decimal,
7069         output_long_unsigned_decimal, output_octal, output_long_octal,
7070         output_hexadecimal, output_long_hexadecimal): New functions.
7071         (output_append_r): New function.
7072         (output_append): Tweak.
7073         (output_flush_on): Rename to output_to_stream.
7074         (output_format): Change prototype.  Improve documentation. Handle
7075         more format specifiers.
7076         (build_location_prefix): Rename to context_as_prefix.
7077         (output_notice): Rename to output_do_printf.
7078         (output_printf): Tweak.
7079         (line_wrapper_printf): Likewise.
7080         (vline_wrapper_message_with_location): Adjust call to renamed
7081         functions.
7082         (v_message_with_decl): Likewise.
7083         (default_print_error_function): Likewise.
7084         (save_output_state): New function.
7085         (restore_output_state): Likewise.
7086         (output_do_verbatim): Likewise.
7087         (output_verbatim): Define.
7088         (verbatim): Likewise.
7089
7090         * diagnostic.h (printer_fn): Change return type from void to int.
7091         Improve documentation.
7092         (output_add_integer): Rename to output_decimal.
7093         (output_flush_on, output_format): Don't export.
7094         (output_verbatim, verbatim): Declare.
7095
7096 2000-07-08  Toon Moene  <toon@moene.indiv.nluug.nl>
7097
7098         * fold-const.c (extract_muldiv) case PLUS_EXPR, MINUS_EXPR:
7099         Check whether c divides op1 exactly if operation is not
7100         multiplication.
7101
7102 2000-07-08  Richard Henderson  <rth@cygnus.com>
7103
7104         * final.c (final): Do not abort when reg-stack introduces
7105         a new insn.
7106
7107 2000-07-08  Zack Weinberg  <zack@wolery.cumb.org>
7108
7109         * cpplib.h (struct cpp_name): Now struct cpp_string.
7110         (CPP_INT, CPP_FLOAT, CPP_NUMBER, CPP_COMMENT,
7111         CPP_HEADER_NAME): Change to type S.
7112         (struct cpp_token): Rename 'name' field to 'str'.  Add 'node'
7113         field, a cpp_hashnode *.  All references to val.name updated
7114         to use val.str or val.node as appropriate.
7115         (struct cpp_reader): Add spec_nodes field.
7116         (cpp_idcmp): Now cpp_ideq; takes a token * and a char *.
7117
7118         * cpphash.h (struct spec_nodes): New.
7119         (enum spell_type): Reorder.  Only SPELL_STRING tokens use
7120         val.str.  All references to 'spelling > SPELL_NONE' updated to
7121         match.
7122
7123         (CPP_IN_SYSTEM_HEADER): Check pfile->buffer and
7124         pfile->buffer->inc are not NULL before dereferencing them.
7125
7126         * cpplex.c (parse_name): Take a pointer to the current token,
7127         plus current position and limit as args; return the new
7128         position; don't copy the text of a name into the string
7129         buffer, instead call cpp_lookup and store the node pointer.
7130         If extending a token, copy out the text of the old into a
7131         scratch buffer, append the new, look that up and store the new
7132         node pointer.  Inline.
7133         (maybe_paste_with_next): If the result of paste is a NAME,
7134         then look up the pasted text and store its node pointer.
7135         (lex_line): Adjust for new parse_name interface.
7136         Check for L"str", L'str' using spec_nodes->n_L.
7137         (spell_token): SPELL_IDENT tokens have their spelling in
7138         val.node->name.  Handle SPELL_STRING tokens that don't have
7139         string delimiters.
7140         (_cpp_expand_name_space,
7141         (can_paste): Check for L ## "str" using spec_nodes->n_L.
7142         (cpp_get_token, special_symbol): No need to call cpp_lookup.
7143         (cpp_idcmp): Now cpp_ideq; take a token * and a const char *;
7144         return 1=equal 0=not, not a tristate.
7145
7146         * cpphash.c (var_args_str): Delete.
7147         (find_param): Compare node fields directly.
7148         (is__va_args__): Use CPP_PEDANTIC.  Just compare
7149         token->val.node with spec_nodes->n__VA_ARGS__.
7150         (dump_funlike_macro): Don't use var_args_str.
7151
7152         * cpplib.c (_cpp_check_directive): Just walk through
7153         spec_nodes->dirs comparing pointers.
7154         (get_define_node, do_pragma_poison, detect_if_not_defined,
7155         parse_ifdef): The identifier has already been looked up.
7156         (do_ifdef, do_ifndef): parse_ifdef won't return a poisoned
7157         node.
7158         (do_if): Only call detect_if_not_defined at beginning of file.
7159         (_cpp_parse_assertion): Only copy string pointers for
7160         SPELL_STRING tokens.
7161         (pragma_dispatch): Take a node pointer and examine its name
7162         field.
7163         (_cpp_init_stacks): Also initialize the spec_nodes structure.
7164
7165         * cppinit.c (cpp_reader_init): Call _cpp_init_stacks after
7166         _cpp_init_macros.
7167         (cpp_cleanup): Free pfile->spec_nodes.  Call _cpp_cleanup_* in
7168         reverse order from the corresponding _cpp_init_* routines.
7169
7170         * cppexp.c (parse_number, parse_charconst, parse_defined,
7171         lex): Check val.node->type instead of calling cpp_defined.
7172         Use spec_nodes entries where appropriate.
7173
7174         * fix-header.c, scan-decls.c: Update for interface changes.
7175
7176 2000-07-08  Geoffrey Keating  <geoffk@cygnus.com>
7177
7178         * config/rs6000/rs6000.c (rs6000_emit_move): Fix conditions for
7179         emitting aux_truncdfsf2.
7180
7181 2000-07-03  Donn Terry  (donnte@microsoft.com)
7182
7183         * cppinit.c (print_help): split overlong line into ISO C89
7184         maximum chunks.
7185
7186 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
7187
7188         * cppexp.c: Update all code for new lexer interface.
7189         (op_t, operator codes, struct token, tokentab2, op_to_str): Remove.
7190         (struct suffix, vsuf_1, vsuf_2, vsuf_3, op_to_prio): New.
7191         * cpplex.c (token_names): Trim leading CPP_ from names; make
7192         the strings unsigned.
7193         (_cpp_spell_operator): New.
7194         (is_macro_disabled): Disable all macros if rescanning
7195         preprocessed text.
7196         (_cpp_get_directive_token): Remove.
7197
7198         * cppinit.c: Don't set no_macro_expand.
7199         * cpplib.c (read_line_number, do_line): Check only for EOF,
7200         not VSPACE.
7201         * cpphash.h: Update prototypes.
7202         * cpplib.h (CPP_VSPACE): Remove.
7203         (struct cpp_reader): Remove no_macro_expand.
7204
7205 2000-07-08  Neil Booth  <NeilB@earthling.net>
7206
7207         * cpphash.c (is__va_args__): New function.
7208         (count_params): Fix line reported in error messages.  Use
7209         is__va_args__.  Don't return ')' on error.  Flag GNU style
7210         rest args macro definitions.
7211         (parse_define): Check macro name is not __VA_ARGS__.
7212         (save_expansion): Check identifier in non-varargs-macro is
7213         not __VA_ARGS__.  Don't flag GNU_VARARGS.
7214         * cpplex.c (parse_args): Accept no argument iff GNU_REST_ARGS.
7215         (maybe_paste_with_next): Use per-macro GNU_REST_ARGS rather
7216          than per-token GNU_VARARGS.
7217         * cpplib.h (GNU_VARARGS): Remove.
7218         (GNU_REST_ARGS): New.
7219
7220 Sat Jul  8 01:38:25 MET DST 2000  Jan Hubicka  <jh@suse.cz>
7221
7222         * i386.md (call_pop, call, call_value_pop): Do not set
7223         current_function_uses_pic_offset_table for calls to static
7224         functions or indirect calls.
7225
7226 2000-07-07  Jim Wilson  <wilson@cygnus.com>
7227
7228         * config/ia64/ia64.c (rws_access_reg): New local write_count.  If
7229         is_predicate_reg, then take max write_count of register pair.
7230
7231 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7232
7233         * tradcpp.c (main): Rename label `include' to `add_include' to
7234         avoid conflicts with variable `include' in traditional C.
7235
7236 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
7237
7238         * integrate.c (copy_insn_list): Remove REG_LABEL notes.
7239
7240 2000-07-07  Jakub Jelinek  <jakub@redhat.com>
7241
7242         * sibcall.c (uses_addressof): Add INMEM argument, check for
7243         current_function_internal_arg_pointer outside of MEM rtxs in addition
7244         to ADDRESSOFs.
7245         (sequence_uses_addressof): Update caller.
7246
7247 2000-07-07  Zack Weinberg  <zack@wolery.cumb.org>
7248
7249         * tradcpp.c (initialize_builtins): Honor NO_BUILTIN_SIZE_TYPE
7250         and friends.
7251
7252 2000-07-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7253
7254         * system.h (UNION_INIT_ZERO): New macro for initializing union
7255         members in structs.
7256
7257         * cpplex.c (placemarker_token, eof_token): Use UNION_INIT_ZERO.
7258
7259 2000-07-07  Neil Booth  <NeilB@earthling.net>
7260
7261         * cpp.texi: Update.
7262
7263 Fri Jul  7 07:47:35 2000  Jeffrey A Law  (law@cygnus.com)
7264
7265         * final.c (final): Detect out of bounds array access to
7266         the insn_lengths array.
7267
7268 2000-07-07  Kazu Hirata  <kazu@hxi.com>
7269
7270         * fold-const.c (fold): Fix a comment typo.
7271
7272 2000-07-07  Neil Booth  <NeilB@earthling.net>
7273
7274         * cpp.texi: Update to new lexer.
7275
7276 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
7277
7278         * tradcpp.c: New file.
7279         * tradcif.y: New file.
7280         * tradcif.c: New generated file.
7281
7282         * Makefile.in: Add rules to build tradcpp.o, tradcif.o,
7283         $(srcdir)/tradcif.c.  Add tradcpp to STAGESTUFF and
7284         dependencies of C.  Install tradcpp from install-common, in
7285         $(libsubdir).
7286
7287 2000-07-06  Zack Weinberg  <zack@wolery.cumb.org>
7288
7289         * cppinit.c: Include cppdefault.h.  Refer to
7290         cpp_GCC_INCLUDE_DIR and cpp_GCC_INCLUDE_DIR_len, not directly
7291         to GCC_INCLUDE_DIR and its length.
7292         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE,
7293         USER_LABEL_PREFIX, REGISTER_PREFIX, struct default_include,
7294         STANDARD_INCLUDE_DIR, STANDARD_INCLUDE_COMPONENT):  Move to
7295         cppdefault.h.
7296         (include_defaults_array): Move to cppdefault.c.
7297
7298         * cppdefault.h: New file.
7299         * cppdefault.c: New file.
7300
7301         * Makefile.in (LIBCPP_OBJS): Add cppdefault.o.
7302         (cppinit.o): Don't apply $(PREPROCESSOR_DEFINES) to this file.
7303         (cppdefault.o): New rule; apply $(PREPROCESSOR_DEFINES) to
7304         this file.
7305
7306 Thu Jul  6 18:30:36 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7307
7308         * reload.c (push_reload): When seeing if can reuse a register,
7309         check extra registers against widest of INMODE and OUTMODE.
7310
7311 2000-07-06  Neil Booth  <NeilB@earthling.net>
7312
7313         * cpplib.c: (_cpp_parse_assertion):  Perform hash lookups
7314         based on full length of predicate.
7315
7316 2000-07-06  Hans-Peter Nilsson  <hp@axis.com>
7317
7318         * timevar.c: [HAVE_SYS_RESOURCE_H]: Include <sys/resource.h>.
7319         [NEED_DECLARATION_GETRUSAGE]: Declare getrusage.
7320
7321 2000-07-05  Kazu Hirata  <kazu@hxi.com>
7322
7323         * h8300-proto.h: Fix formatting.
7324         * h8300.c: Likewise.
7325         * h8300.h: Likewise.
7326
7327 2000-07-05  Jim Wilson  <wilson@cygnus.com>
7328
7329         * config/ia64/ia64.h (HARD_REGNO_MODE_OK): If FR_REGNO_P, disallow
7330         CCmode.
7331
7332 2000-07-05  Rodney Brown  <RodneyBrown@pmsc.com>
7333
7334         * invoke.texi: Fix minor typos
7335         * md.texi: Fix minor typos
7336
7337 2000-07-05  Zack Weinberg  <zack@wolery.cumb.org>
7338
7339         * cpplib.c (_cpp_parse_assertion): Fix buffer overrun.
7340
7341 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
7342
7343         * cpplex.c: Don't include sys/mman.h.
7344         (cpp_push_buffer, cpp_pop_buffer): Moved to cpplib.c.
7345
7346         * cpplib.c: Include sys/mman.h and obstack.h.
7347         (cpp_push_buffer): Moved from cpplex.c; allocate buffers on an
7348         obstack.
7349         (cpp_pop_buffer): Moved from cpplex.c; free buffers from an obstack.
7350         (_cpp_unwind_if_stack): Now static, unwind_if_stack.  Don't
7351         bother freeing if stack entries (they will be freed with their buffer).
7352         (do_endif): Free if stack entries from the buffer obstack.
7353         (push_conditional): Allocate if stack entries from the buffer obstack.
7354
7355         (find_answer): Rename to _cpp_find_answer.
7356         (do_assert, do_unassert): Update.
7357
7358         * cpphash.h: Update prototypes.
7359         (xobnew): New convenience macro.
7360         * cpplib.h (struct cpp_reader): Add hash_ob and buffer_ob fields.
7361         Update comments.
7362         (struct cpp_hashnode): Remove disabled field.
7363
7364         * cppinit.c: Don't include hashtab.h or splay-tree.h.
7365         (report_missing_guard): Moved to cppfiles.c.
7366         (cpp_reader_init): Call cpp_init_stacks, cpp_init_macros,
7367         cpp_init_includes.
7368         (cpp_cleanup): Call cpp_cleanup_stacks, cpp_cleanup_macros,
7369         cpp_cleanup_includes.  Don't destroy hashtab or
7370         all_include_files here.
7371         (cpp_finish): Use _cpp_report_missing_guards.
7372
7373         * cppfiles.c (report_missing_guard): Moved from cppinit.c.
7374         (_cpp_init_include_table): Rename _cpp_init_includes.
7375         (_cpp_cleanup_includes, _cpp_report_missing_guards): New.
7376
7377         * cppexp.c (parse_assertion): Update for new name of
7378         find_answer.
7379
7380         * Makefile.in (cpplib.o, cpphash.o, cppinit.o): Update deps.
7381
7382 2000-07-04  Zack Weinberg  <zack@wolery.cumb.org>
7383
7384         * cpplib.c (do_ident): s/VSPACE/EOF/
7385
7386 2000-07-05  Neil Booth  <NeilB@earthling.net>
7387
7388         * cpplex.c: Fix trigraph replacement within strings.
7389
7390 2000-07-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7391
7392         * rs6000/aix.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier.
7393
7394         * xcoffout.c (assign_type_number): Constify.
7395         (xcoffout_source_file): Add static prototype.  Don't needlessly
7396         cast away const-ness.
7397
7398 2000-07-04  Jason Merrill  <jason@redhat.com>
7399
7400         * frame.h (frame_state): Move base_offset to end.
7401
7402 Mon Jul  3 21:31:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
7403
7404         * calls.c (emit_library_call_value_1): Revert previous change.
7405
7406 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
7407
7408         * fix-header.c (struct partial_proto): Remove unnecessary fields.
7409         (recognized_extern, recognized_function, read_scan_file):
7410         Update for new scheme.
7411         (check_protection): It's still a multiple include guard even
7412         if it doesn't always trigger.
7413         * scan-decls.c (skip_to_closing_brace, scan_decls): Update for
7414         new scheme.
7415         * scan.h: Declare struct cpp_token.  Update prototypes.
7416
7417 2000-07-03  Neil Booth  <neilb@earthling.net>
7418             Zack Weinberg  <zack@wolery.cumb.org>
7419
7420         Complete overhaul of the lexer and macro expander.
7421
7422         * cpphash.c (object_defn, funct_defn, push_macro_expansion,
7423         arg, arglist, argdata, reflist, collect_objlike_expansion,
7424         collect_funlike_expansion, collect_params,
7425         warn_trad_stringify, trad_stringify, duplicate_arg_p, add_pat,
7426         unsafe_chars, macarg, compare_defs, special_symbol,
7427         scan_arguments, stringify, funlike_macroexpand,
7428         _cpp_quote_string, monthnames): Delete.
7429         (cpp_lookup, _cpp_free_definition, dump_funlike_macro,
7430         _cpp_create_definition, _cpp_dump_definition,
7431         dump_hash_helper): Adjust.
7432         (find_param, count_params, parse_define, var_args_str,
7433         check_macro_redefinition, save_expansion): New.
7434
7435         * cpplex.c (skip_block_comment, skip_line_comment, parse_name,
7436         parse_string, output_line_command, trigraph_replace,
7437         lex_line, cpp_push_buffer, cpp_pop_buffer, cpp_output_tokens,
7438         cpp_scan_buffer_nooutput, cpp_scan_buffer, cpp_free_toklist,
7439         cpp_idcmp, _cpp_get_directive_token, _cpp_init_input_buffer,
7440         _cpp_skip_rest_of_line): Modify.
7441
7442         (maybe_macroexpand, skip_comment, copy_comment, skip_string,
7443         find_position, null_warning, bump_column, expand_name_space,
7444         pedantic_whitespace, _cpp_output_list, _cpp_slice_toklist,
7445         _cpp_squeeze_toklist, _cpp_scan_until, _cpp_skip_hspace,
7446         _cpp_parse_name, _cpp_lex_token, cpp_get_non_space_token,
7447         _cpp_prescan): Delete.
7448
7449         (dump_param_spelling, process_directive, lex_next,
7450         is_macro_disabled, stringify_arg, expand_context_stack,
7451         output_token, make_string_token, alloc_number_token,
7452         special_symbol, duplicate_token, maybe_paste_with_next,
7453         can_paste, prevent_macro_expansion, restore_macro_expansion,
7454         get_temp_token, release_temp_tokens, quote_string,
7455         token_names, token_spellings, _cpp_expand_name_space,
7456         _cpp_glue_header_name, _cpp_reserve_name_space,
7457         digraph_spellings, trigraph_ok, skip_whitespace, save_comment,
7458         placemarker_token, eof_token, cpp_context, macro_args,
7459         get_raw_token, parse_arg, parse_args, save_token,
7460         push_arg_context, push_macro_context, pop_context,
7461         do_pop_context, free_macro_args, _cpp_get_line,
7462         _cpp_run_directive): New.
7463
7464         * cpplib.c (validate_else, parse_include, push_conditional,
7465         pass_thru_directive, read_line_number, parse_ifdef,
7466         detect_if_not_defined, _cpp_check_directive, do_define,
7467         do_undef, do_include, do_import, do_include_next, do_error,
7468         do_warning, do_ident, do_pragma, pragma_dispatch, gcc_pragmas,
7469         top_pragmas, do_pragma_gcc, do_pragma_implementation,
7470         do_pragma_poison, do_pragma_system_header,
7471         do_pragma_dependency, do_sccs, do_ifdef, do_ifndef, do_else,
7472         dl_elif, do_endif, _cpp_unwind_if_stack, do_assert,
7473         do_unassert, cpp_define, cpp_undef, cpp_assert, cpp_unassert,
7474         cpp_defined): Update for new scheme.
7475         (strtoul_for_line, get_define_node, dump_macro_name,
7476         _cpp_check_linemarker, _cpp_parse_assertion): New.
7477         (_cpp_handle_directive, do_pragma_default): Delete.
7478
7479         * cpphash.h (struct predicate): Now struct answer.
7480         (enum spell_type, struct token_spelling, struct directive,
7481         directive_handler): New.
7482         Update prototypes.  Remove unused macros.
7483         * cpplib.h: Update prototypes.  Remove unused macros,
7484         structure definitions, and fields.
7485
7486         * cpperror.c (print_containing_files, v_message): Adjust.
7487         * cppexp.c (parse_assertion, lex, parse_escape,
7488         _cpp_parse_expr): Adjust.
7489         * cppfiles.c (open_include_file, _cpp_execute_include,
7490         _cpp_compare_file_date, cpp_read_file, read_include_file):
7491         Adjust.
7492         * cppinit.c (dump_special_to_buffer): Delete.
7493         (append_include_chain, merge_include_chains, cpp_reader_init,
7494         cpp_cleanup, initialize_builtins, builtin_array, cpp_start_read,
7495         cpp_finish, handle_option, print_help): Adjust.
7496         * cppmain.c (main): Adjust.
7497
7498 2000-07-03  Zack Weinberg  <zack@wolery.cumb.org>
7499
7500         * cppspec.c (lang_specific_driver): Use double quotes in error
7501         message.
7502
7503 Mon Jul  3 16:53:43 2000  Clinton Popetz  <cpopetz@cygnus.com>
7504
7505         * calls.c (emit_library_call_value_1): Use valreg instead
7506         of hard_libcall_value.
7507
7508 2000-07-03  Geoff Keating  <geoffk@cygnus.com>
7509
7510         * config/rs6000/rs6000.c (rs6000_emit_move): New function.
7511         * config/rs6000/rs6000-proto.h: Prototype rs6000_emit_move.
7512         * config/rs6000/rs6000.md (movsi): Use rs6000_emit_move.
7513         (movhi): Likewise.
7514         (movqi): Likewise.
7515         (movdf): Likewise.
7516         (movsf): Likewise.
7517         (movdi): Likewise.
7518         (movti): Likewise.
7519
7520         * expmed.c (expand_mult_highpart): Use op1 instead of wide_op1 when
7521         mode instead of wider_mode is being used.
7522
7523 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
7524
7525         * config/i386/i386.md (movstrictqi_xor): Use 'q' constraint instead
7526         of 'r'. Use q_regs_operand.
7527         (andsi_1+2): Use q_regs_operand.
7528
7529 2000-07-03  Jakub Jelinek  <jakub@redhat.com>
7530
7531         * builtins.c (get_memory_rtx): Always put into alias set 0.
7532
7533 2000-07-03  Nick Clifton  <nickc@cygnus.com>
7534
7535         * config/arm/arm.md: Fix post increment and pre increment
7536         peepholes so that they do not generate UNPREDICATBLE opcodes.
7537         (ie ones where the increment clobbers the source/destination).
7538
7539 2000-07-01  Marek Michalkiewicz  <marekm@linux.org.pl>
7540
7541         * config/avr/avr.c (out_adj_frame_ptr): Make "frame pointer
7542         change too big for -mtiny-stack" a warning, if larger than 63.
7543         (out_set_stack_ptr): Change the logic so -mno-interrupts is
7544         always safe to use on possible future devices.
7545         (function_prologue): Write SPH before SPL, for consistency.
7546         If interrupt_func_p true, we know we have enabled interrupts.
7547         (avr_num_arg_regs): New function.  Round up to even number of
7548         bytes if no -mpack-args or if calling a libgcc function.
7549         (function_arg, function_arg_advance): Use it.
7550         (output_movsisf, ashlsi3_out, ashrsi3_out, lshrsi3_out):
7551         Output "movw" if available.
7552         (out_tsthi, out_tstsi, ashlqi3_out, lshrqi3_out): Change uses
7553         of TEST_HARD_REG_CLASS macro to test_hard_reg_class function.
7554         (asm_output_section_name): Add blanks for consistent output.
7555         (encode_section_info): Set TREE_READONLY for progmem data to
7556         avoid gas warnings about changed section attributes.
7557         (avr_hard_regno_mode_ok): Force non-QImode data to start in
7558         even numbered registers on devices with "movw".
7559         * config/avr/avr.h (MASK_*): Define bits for target_flags.
7560         (TARGET_SWITCHES): Mark help strings for translation.
7561         Add new -mpack-args and -menhanced switches.
7562         (TARGET_OPTIONS): Mark help strings for translation.
7563         (progmem_section): Add section attributes.
7564         * config/avr/avr.md (*movhi, call_insn, call_value_insn):
7565         Output "movw" if available.
7566         (mulqi3, mulqihi3, umulqihi3, mulhi3, *tablejump_enh):
7567         New patterns.
7568         * config/avr/libgcc.S (_mulqi3, _divqi3): Update to the new
7569         call convention (arguments aligned on even registers).
7570         (_cleanup, _exit): Make weak symbols libc can override.
7571
7572 2000-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7573
7574         * fp-bit.h: New file.
7575
7576         * fp-bit.c: Move common code, prototypes, etc into fp-bit.h.
7577         Comment #endif statements.
7578         (__thenan_sf, __thenan_df): Add missing braces around initializer.
7579
7580 Mon Jul  3 00:32:47 2000  Jeffrey A Law  (law@cygnus.com)
7581
7582         * gcse.c (compute_pre_data): Compute ae_kill using other local
7583         properties instead of calling compute_ae_kill.
7584
7585         * alias.c (init_alias_analysis): Do not call
7586         prologue_epilogue_contains until after reload has completed.
7587
7588 2000-07-02  Benjamin Chelf  <chelf@codesourcery.com>
7589
7590         * c-common.h (genrtl_begin_compound_stmt): Remove declaration.
7591         (genrtl_finish_compound_stmt): Likewise.
7592         (genrtl_compound_stmt): Change to return void.
7593
7594         * c-semantics.c (genrtl_begin_compound_stmt): Remove function and
7595         move code from here to ...
7596         (genrtl_compound_stmt): ... here.
7597         (genrtl_finish_compound_stmt): Remove.
7598         (expand_stmt): Add comment.
7599
7600 2000-07-02  Zack Weinberg  <zack@wolery.cumb.org>
7601
7602         * c-typeck.c (build_indirect_ref): Use COMPLETE_OR_VOID_TYPE_P
7603         and VOID_TYPE_P.
7604
7605 2000-07-02  Jakub Jelinek  <jakub@redhat.com>
7606
7607         * cpplib.h (struct cpp_reader): New field include_depth.
7608         (struct cpp_printer): Rename last_bsd to last_id.
7609         * cppfiles.c (read_include_file): Bump include_depth.
7610         * cpplex.c (cpp_pop_buffer): Decrement include_depth.
7611         (output_line_command): Output correct #line if a header
7612         is including itself and is not protected against multiple inclusion.
7613         Use include_depth instead of buffer_stack_depth, last_id instead of
7614         last_bsd.
7615         * cppinit.c (cpp_start_read): Initialize last_id instead of
7616         last_bsd.
7617
7618 2000-07-01  Benjamin Chelf  <chelf@codesourcery.com>
7619
7620         * Makefile.in (C_AND_OBJC_OBJS): Added c-semantics.o.
7621         (c-semantics.o): New target.
7622
7623         * c-common.h (TREE_LANG_FLAG_?): Added documentation.
7624         (genrtl_do_pushlevel): Moved from cp/cp-tree.h.
7625         (genrtl_clear_out_block): Likewise.
7626         (genrtl_goto_stmt): Likewise.
7627         (genrtl_expr_stmt): Likewise.
7628         (genrtl_decl_stmt): Likewise.
7629         (genrtl_if_stmt): Likewise.
7630         (genrtl_while_stmt): Likewise.
7631         (genrtl_do_stmt): Likewise.
7632         (genrtl_return_stmt): Likewise.
7633         (genrtl_for_stmt): Likewise.
7634         (genrtl_break_stmt): Likewise.
7635         (genrtl_continue_stmt): Likewise.
7636         (genrtl_scope_stmt): Likewise.
7637         (genrtl_switch_stmt): Likewise.
7638         (genrtl_case_label): Likewise.
7639         (genrtl_begin_compound_stmt): Likewise.
7640         (gerntl_finish_compound_stmt): Likewise.
7641         (genrtl_compound_stmt): Likewise.
7642         (genrtl_asm_stmt): Likewise.
7643         (genrtl_decl_cleanup): Likewise.
7644         (DECL_ANON_UNION_ELEMS): Likewise.
7645         (emit_local_var): Likewise.
7646         (make_rtl_for_local_static): Likewise.
7647         (expand_cond): Likewise.
7648         (expand_stmt): Likewise.
7649         (c_expand_return): Likewise.
7650         (c_expand_start_case): Likewise.
7651         (do_case): Likewise.
7652         (COMPOUND_STMT_NO_SCOPE): Likewise.
7653         (c_expand_asm_operands): Likewise.
7654         (NEW_FOR_SCOPE_P): New macro.
7655         (expand_expr_stmt_fn): New type.
7656
7657         (set_current_function_name_declared): Likewise.
7658         (current_function_name_declared): Likewise.
7659         (lang_expand_stmt): Likewise.
7660         (stmts_are_full_exprs_p): Likewise.
7661         (anon_aggr_type_p): Likewise.
7662         (lang_expand_expr_stmt): Likewise.
7663         (build_case_label): Likewise.
7664
7665         * c-decl.c (lang_expand_expr_stmt): Initialize.
7666         (stmts_are_full_exprs_p): Define.
7667         (current_function_name_declared): Likewise.
7668         (do_case): Likewise.
7669         (lang_expand_stmt): Likewise.
7670         (set_current_function_name_declared): Likewise.
7671         (anon_aggr_type_p): Likewise.
7672
7673         * c-semantics.c: New file.
7674         (expand_cond): Moved from cp/semantics.c.
7675         (genrtl_do_pushlevel): Likewise.
7676         (genrtl_clear_out_block): Likewise.
7677         (genrtl_goto_stmt): Likewise.
7678         (genrtl_expr_stmt): Likewise.
7679         (genrtl_decl_stmt): Likewise.
7680         (genrtl_if_stmt): Likewise.
7681         (genrtl_while_stmt): Likewise.
7682         (genrtl_do_stmt): Likewise.
7683         (genrtl_return_stmt): Likewise.
7684         (genrtl_for_stmt): Likewise.
7685         (genrtl_break_stmt): Likewise.
7686         (genrtl_continue_stmt): Likewise.
7687         (genrtl_scope_stmt): Likewise.
7688         (genrtl_switch_stmt): Likewise.
7689         (genrtl_case_label): Likewise.
7690         (genrtl_begin_compound_stmt): Likewise.
7691         (genrtl_finish_compound_stmt): Likewise.
7692         (genrtl_compound_stmt): Likewise.
7693         (genrtl_asm_stmt): Likewise.
7694         (genrtl_decl_cleanup): Likewise.
7695         (make_rtl_for_local_static): Moved from cp/decl.c.
7696         (emit_local_var): Likewise.
7697         (expand_stmt): Define.
7698
7699         * c-tree.h: (c_expand_asm_operands): Moved to c-common.h.
7700         (c_expand_return): Likewise.
7701         (c_expand_start_case): Likewise.
7702
7703 2000-07-01  Richard Henderson  <rth@cygnus.com>
7704
7705         * config/ia64/ia64.c (symbolic_operand): Reject CONST expressions
7706         with the low 13 bits set.
7707         (move_operand): Check for CONST|SYMBOL_REF|LABEL_REF directly.
7708         * config/ia64/ia64.md (movdi): Likewise.  Expand a CONST with one
7709         of the low 13 bits into a CONST plus an adddi3.
7710         (load_symptr): Set RTX_UNCHANGING_P.
7711
7712 See ChangeLog.3 for earlier changes.