OSDN Git Service

2000-10-06 David O'Brien <obrien@FreeBSD.org>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-10-06  David O'Brien  <obrien@FreeBSD.org>
2
3         * config/alpha/elf.h: Protect the ASM_OUTPUT_IDENT definition with an
4         #undef.
5
6 2000-10-06  Richard Henderson  <rth@cygnus.com>
7
8         * function.c (diddle_return_value): Examine
9         current_function_return_rtx instead of the DECL_RESULT.
10         (expand_function_end): Handle reloading DECL_RESULT from memory
11         into a hard register.  Query promote_mode for sign of mismatched
12         modes.
13
14 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
15
16         * haifa-sched.c (schedule_insns): Fix typo in freeing
17         forward_dependency_cache.
18
19 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
20
21         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): Add
22         `TARGET_SH2' as a condition.
23
24 2000-10-06  Vladimir Makarov  <vmakarov@touchme.toronto.redhat.com>
25
26         * haifa-sched.c (anti_dependency_cache, output_dependency_cache,
27         forward_dependency_cache): New variables.
28         (add_dependence, remove_dependence): Use anti_dependency_cache and
29         output_dependency_cache.
30         (compute_block_forward_dependences): Use forward_dependency_cache.
31         (schedule_insns): Allocate and free memory for anti/output/forward
32         dependencies caches.
33         
34 2000-10-06  Alexandre Oliva  <aoliva@redhat.com>
35
36         * config/sh/sh.md (call, call_value): Use `TARGET_SH2' instead of
37         `! TARGET_SH1'.  Reindent.
38
39 2000-10-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
40
41         * builtins.c (is_valid_printf_arglist, expand_builtin_printf):
42         Move functions from here ...
43
44         * c-common.c (is_valid_printf_arglist, c_expand_builtin_printf):
45         ... to here.
46         (c_expand_builtin): New function.
47         (init_function_format_info): Don't set `check_function_format_ptr'.
48         (c_common_nodes_and_builtins): Set built_in_class type for
49         printf/__builtin_printf to BUILT_IN_FRONTEND.
50         (c_expand_expr): Handle CALL_EXPRs that are front-end builtins.
51
52         * c-common.h (build_function_call): Declare.
53
54         * expr.c (expand_expr): Pass builtins with class BUILT_IN_FRONTEND
55         to `lang_expand_expr' rather than `expand_builtin'.
56
57         * tree.c (check_function_format_ptr): Delete.
58
59         * tree.h (check_function_format_ptr): Likewise.
60
61 2000-10-06  Hans-Peter Nilsson  <hp@bitrange.com>
62
63         * dwarf2out.c (build_cfa_loc): Correct to use DW_OP_regx or
64         DW_OP_bregx when cfa->reg > 31.
65
66         * frame-dwarf2.c (decode_stack_op) [case DW_OP_regx]: Add missing
67         break.
68
69 2000-10-05  Richard Henderson  <rth@cygnus.com>
70
71         * c-decl.c (warn_missing_noreturn): Remove.
72         (c_expand_body): Don't set or check can_reach_end.
73         * c-tree.h (warn_missing_noreturn): Move ...
74         * flags.h: ... here.
75         (can_reach_end): Remove.
76         * flow.c (check_function_return_warnings): New.
77         (make_edges): No edge to exit for noreturn sibcalls.
78         * function.c (expand_function_end): Save the return value
79         clobber instruction.
80         (mark_function_status): Mark it.
81         * function.h (struct function): Add x_clobber_return_insn.
82         * jump.c (can_reach_end): Remove.
83         (calculate_can_reach_end): Remove.
84         (jump_optimize_1): Don't call it.
85         * output.h (check_function_return_warnings): Declare.
86         * toplev.c (warn_missing_noreturn): Move from c-decl.c
87         (rest_of_compilation): Call check_function_return_warnings.
88
89 2000-10-05  Richard Henderson  <rth@cygnus.com>
90
91         * Makefile.in (NM_FOR_TARGET): New.
92         (libgcc.mk): Pass SHLIB_MKMAP, SHLIB_MAPFILES.
93         (libgcc.a, stmp-multilib): Pass NM_FOR_TARGET.
94         * mklibgcc.in: If SHLIB_MKMAP, build libgcc.map.  Depend the
95         shared library build on that and EXTRA_MULTILIB_PARTS.
96         * mkmap-flat.awk: New file.
97         * mkmap-symver.awk: New file.
98         * libgcc-std.ver: New file.
99         * config/libgcc-glibc.ver: New file.
100         * config/ia64/libgcc-ia64.ver: New file.
101         * config/t-linux (SHLIB_MKMAP, SHLIB_MAPFILES): New.
102         (SHLIB_LINK): Add --version-script.
103         * config/ia64/t-ia64 (SHLIB_MAPFILES): Add libgcc-ia64.ver.
104         * config/mips/t-iris6 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
105         * config/sparc/t-sol2 (SHLIB_MKMAP, SHLIB_MAPFILES): New.
106         (SHLIB_LINK): Add -M.
107
108 2000-10-05  Richard Henderson  <rth@cygnus.com>
109
110         * Makefile.in (LIB2FUNCS): Add _clz.
111         * libgcc2.c (__ffsdi2): Use count_trailing_zeros.
112         (__clz_tab): Put in its own unit, non-static.
113         * libgcc2.h: Always include longlong.h.
114
115         * longlong.h [alpha] (count_leading_zeros): Use cmpbge with
116         a zero instead of -1.
117         (count_trailing_zeros): Likewise.
118
119 2000-10-05  Richard Henderson  <rth@cygnus.com>
120
121         * config/alpha/alpha.c (alpha_emit_setcc): Don't swap GT tests
122         when second op1 is const0_rtx.  Validate op0 as a register.
123         * config/alpha/alpha.md (setcc_internal): Don't allow constants
124         in the first argument of the compare.
125         (setcc_swapped_internal): Likewise.
126         (setne_internal): Likewise.
127
128 2000-10-05  Geoff Keating  <geoffk@cygnus.com>
129
130         * tree.c (tree_size): New function split out of copy_node.
131         (make_node): Remove obstack handling.  Use tree_size.
132         (copy_node): Use tree_size.
133         * tree.h: Prototype tree_size.
134
135 2000-10-05  Richard Henderson  <rth@cygnus.com>
136
137         * diagnostic.c (output_format): Add missing break.
138
139 2000-10-05  Jim Wilson  <wilson@cygnus.com>
140
141         * function.c (fixup_var_refs_1, case SET): When gen_move_insn returns a
142         SEQUENCE, call emit_insn_before, copy PATTERN and REG_NOTES of last
143         sequence insn to INSN, and delete last sequence insn.
144
145 2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
146
147         * gcc.c (main): Include generated configargs.h header
148         and use arguments in '-v' output.
149
150 Thu Oct  5 16:16:57 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
151
152         * gcc.c: Move data on prefixes forward in file and reorganize.
153         (md_exec_prefix, md_startfile_prefix, md_startfile_prefix_1):
154         Always define, but make null if no value.
155         (static_specs): Add "md_exec_prefix", "md_startfile_prefix",
156         and "md_startfile_prefix_1".
157         (main): Check whether md_exec_prefix and the others are the
158         null string rather than whether the macro is defined.
159
160 Thu Oct  5 19:04:18 2000  J"orn Rennecke <amylaar@redhat.co.uk>
161
162         * (convert_move): Use zero_extendpsisi2 to do an unsigned extension
163         from PSImode to SImode.
164
165 2000-10-05  Jakub Jelinek  <jakub@redhat.com>
166
167         * emit-rtl.c (gen_lowpart_common) [REAL_ARITHMETICS]: Fix conversion
168         from float to integral mode with HOST_BITS_PER_WIDE_INT 64.
169         * dwarf2out.c (add_const_value_attribute): Divide by 4, not
170         sizeof(long).
171
172 Thu Oct  5 09:31:31 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
173
174         * fold-const.c (fold, case MINUS_EXPR, case EQ_EXPR): Perform
175         negation in proper type.a
176
177 2000-10-04  Richard Henderson  <rth@cygnus.com>
178
179         * configure.in (enable-shared): New.
180         * Makefile.in (LIBGCC_DEPS): Depend on EXTRA_PARTS as well.
181         (libgcc.mk): Pass SHLIB_LINK, SHLIB_LIBS, SHLIB_MULTILIB to mklibgcc.
182         * mklibgcc.in: Use them to link shared a libgcc.
183         * config/t-linux (SHLIB_LINK, SHLIB_LIBS): New.
184         * config/alpha/t-ieee (SHLIB_MULTILIB): New.
185         * config/mips/t-iris6 (SHLIB_LINK, SHLIB_LIBS): New.
186         * config/sparc/t-sol2 (SHLIB_LINK, SHLIB_LIBS): New.
187
188         * configure.in (alpha-osf*): Use t-osf and x-osf.
189         * config/alpha/t-osf: New file.
190         * config/alpha/t-osf4: New file.
191         * config/alpha/x-osf: New file.
192         * config/alpha/x-alpha: Remove file.
193
194 2000-10-04  Will Cohen  <wcohen@redhat.com>
195
196         * c-typeck.c (process_init_element): Added warning for zero-length
197         array.
198
199         * extend.texi (Zero Length): State that static initializers for
200         zero-length arrays are not allowed.
201
202 Mon Oct  2 14:50:14 MET DST 2000  Jan Hubicka  <jh@suse.cz>
203
204         * rtlanal.c (single_set_1): Do not require USE and CLOBBERs
205         to come last.
206
207 2000-10-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
208
209         * config/float-c4x.h: New.
210         * configure.in (c4x-*): Set float_format to c4x.
211         * configure: Regenerate.        
212
213 2000-10-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
214
215         * configure.in (sparc-*-solaris2*): Disable 32-to-64 cross
216         compilation for solaris versions 2.7 and greater.
217
218 2000-10-02  David O'Brien  <obrien@dragon.nuxi.com>
219
220         * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Define.
221
222 2000-10-01  Mark Mitchell  <mark@codesourcery.com>
223
224         * config/ns32k/genix.h: Remove.
225         * config/ns32k/x-genix: Likewise.
226         * config/ns32k/xm-genix.h: Likewise.
227         * config/fx80: Remove all filee in directory.
228         * config/pyr: Likewise.
229         * config/tahoe: Likewise.
230         * config/gmicro: Likewise.
231         * config/spur: Likewise.
232         * configure.in: Remove configury bits for above targets.
233         * configure: Regenerated.
234         
235         * configure.in: Don't configure chill by default.
236         * configure: Regenerated.
237         
238         * c-decl.c (c_expand_body): Don't generate RTL if flag_syntax_only.
239         (lang_mark_false_label_stack): Remove.
240         * c-lex.c (init_c_lex): Add file_info_tree as GC root.  Allocate
241         <top level> string in GC area.
242         (mark_splay_tree_node): New function.
243         (mark_splay_tree): Likewise.
244         * except.c (mark_eh_status): Only call lang_mark_false_label_stack
245         if it exists.
246         * ggc-callbacks.c (lang_mark_false_label_stack): Remove.
247         * ggc-common.c (lang_mark_false_label_stack): Change type.
248         * ggc.h (ggc_alloc_string): Add comment.
249         (ggc_strdup): New function.
250         
251 Sat Sep 23 19:10:20 2000  Denis Chertykov  <denisc@overta.ru>
252
253         * config/avr/avr.h (BRANCH_COST): Define as 0.
254
255         * config/pdp11/pdp11.c: #include "tree.h" added.
256
257 2000-09-30  Marek Michalkiewicz  <marekm@linux.org.pl>
258
259         * config/avr/avr.c (ashlhi3_out, ashlsi3_out, ashrhi3_out,
260         ashrsi3_out, lshrhi3_out, lshrsi3_out): Optimize more cases
261         with known shift count.
262         * config/avr/avr.md (ashlsi3, ashrsi3, lshrsi3):
263         New alternative for shift count 2 with no scratch register.
264         (ashlhi3, ashlsi3): Change "cc" attribute from "clobber" to
265         "set_n" for shift counts 1 and 2.
266
267 2000-09-30  Geoff Keating  <geoffk@cygnus.com>
268
269         * config/rs6000/rs6000.md (movsi_to_cr): Remove the USE.  Calculate
270         the mask value from the individual SET operations.
271         (return_internal_si): Move the USE after the RETURN.
272         (return_internal_di): Likewise.
273         (return_and_restore_fpregs_si): Likewise.
274         (return_and_restore_fpregs_di): Likewise.
275         (return_eh_si): Likewise.
276         (return_eh_di): Likewise.
277         * config/rs6000/rs6000.c (mtcrf_operation): Don't look for,
278         or check, the USE.
279         (rs6000_emit_prologue): Don't emit the USE for movsi_to_cr.
280         Don't generate a PARALLEL around a single operation movsi_to_cr.
281         Generate the RETURN first in any PARALLELs.
282
283         * rtlanal.c (single_set_1): Use fatal_insn to display the
284         invalid insn.  Check for more cases when a USE or CLOBBER occurs
285         before a SET.
286         * Makefile.in: Update dependencies for rtlanal.o.
287
288 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
289
290         * i386.c: Move include of "config.h" to before that of <setjmp.h>.
291
292 2000-09-30  Joseph S. Myers  <jsm28@cam.ac.uk>
293
294         * c-tree.texi, contrib.texi, gcc.texi, install.texi, invoke.texi:
295         Consistently use @email for formatting email addresses.
296
297 2000-09-29  Richard Henderson  <rth@cygnus.com>
298
299         * cse.c (notreg_cost): New argument outer.
300         (COST): Pass in SET to notreg_cost
301         (COST_IN): New.
302         (fold_rtx): Use COST_IN.  Prefer constants when costs
303         are the same.
304
305 2000-09-29  David Edelsohn  <edelsohn@gnu.org>
306
307         * fixinc/inclhack.def (broken_cabs): Generalize regex.
308         * fixinc/fixincl.x: Regenerate.
309
310 2000-09-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
311
312         * loop.c (check_final_value): A GIV is not replaceable if used
313         before set.
314
315 Fri Sep 29 10:04:12 2000  Jeffrey A Law  (law@cygnus.com)
316
317         * version.c: Bump to gcc-2.97.
318
319 Frs Sep 29 13:37:59 MET DST 2000  Jan Hubicka  <jh@suse.cz>
320
321         * final.c (final_scan_insn): Remove extra extract_insn call;
322         Use caching for constrain_operands.
323         (cleanup_subreg_operands): Use caching for extract_insn.
324         * recog.c (constrain_operands_cached): New.
325         * recog.h (constrain_operands_cached): Declare.
326         * i386.c (ix86_attr_length_immediate_default,
327         ix86_attr_length_address_default, ix86_agi_dependant): Cache
328         extract_insn call.
329
330         * recog.c (asm_noperands): Tweak.
331         (extract_insn): Do not call asm_noperads for non-asm instructions.
332
333 Fri Sep 29 13:20:42 MET DST 2000  Jan Hubicka  <jh@suse.cz>
334
335         * recog.c (recog_memoized): Rename to recog_memoized_1.
336         * recog.h (recog_memoized): Rename to recog_memoized_1.
337         (recog_memoized): New macro.
338         * rtl.h (single_set): Rename to single_set_1
339         (single_set): New macro.
340         * rtlanal.c (single_set): Rename to single_set_1;  expect clobbers
341         to be last.
342
343         * i386.md (strmovsi_1, strmovhi_1 strmovqi_1):
344         Do not use match_dup of input operands at outputs.
345         Use register_operand for memory expression.
346         (rep_movsi): Put use last, canonicalize.
347         Use register_operand for memory expression.
348         (rep_movqi): Put use last.
349         Use register_operand for memory expression.
350         (strsetsi_1, strset_hi_1, strsetqi_1): Do not use match_dup
351         of input operands at outputs.  Use register_operand for memory
352         expression.
353         (rep_stossi): Put use last; canonicalize; fix match_dup in
354         the address expression
355         (rep_stosqi): Likewise.
356         (memcmp expander): Update calls.
357         (cmpstrsi_nz_1, cmpstrsi_1, strlensi_1): Avoid match_dups in
358         the clobbers.
359
360         * i386.md (fp_jcc_3, fp_jcc_4, jp_fcc_5): if_then_else operand is
361         VOIDmode.
362         (fp_jcc_4, fp_jcc_3): Refuse unordered comparisons.
363
364 2000-09-28  David O'Brien  <obrien@FreeBSD.org>
365
366         * config/i386/freebsd-aout.h: New, FreeBSD a.out config file.
367         Contains the old contents of config/i386/freebsd.h
368         * config/i386/freebsd.h: Now the ELF rather than a.out config file.
369         Contains the old contents of config/i386/freebsd-elf.h
370         * config/i386/freebsd-elf.h: Retire this file -- contents moved to
371         config/i386/freebsd.h.
372         * configure.in: Adjust for above changes.
373         * po/POTFILES.in: Likewise.
374         * po/en_GB.po: Likewise.
375         * po/gcc.pot: Likewise.
376         * configure: Rebuilt.
377
378 2000-09-28  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
379
380         * doloop.c (doloop_modify): Prevent delete_insn() from
381         deleting too much.  Prefer loop->top over loop->start as
382         target for the new JUMP insn.
383         (doloop_valid_p): Ignore loop with exit_count != 0.
384
385 2000-09-28  Philipp Thomas  <pthomas@suse.de>
386
387         * invoke.texi (i386 Options): Add athlon to table of possible
388         choices for -mcpu=.
389
390 2000-09-28  Gabriel Dos Reis  <gdr@codesourcery.com>
391
392         * diagnostic.h (output_clear_message_text): New function.
393         (output_message_text): New macro.
394
395         * diagnostic.c (clear_text_info): Rename to
396         output_clear_message_text. 
397         (output_clear): Adjust.
398         (output_finish): Rename to output_finalize_message.  Tweek.
399         (output_to_stream): Adjust. 
400
401 2000-09-28  Neil Booth  <neilb@earthling.net>
402
403         * cpperror.c (_cpp_begin_message):  Do the test for suppression
404         of warnings and pedantic warnings before the "is a warning an
405         error" tests.
406         * cppinit.c (cpp_handle_option): Remove surplus \n.
407         * cpplex.c (ON_REST_ARG): Delete.
408         (skip_block_comment): Initialise prevc.
409         (parse_args): Improve error messages.
410         (maybe_paste_with_next): Use CONTEXT_VARARGS rather
411         than ON_REST_ARG.
412         * cpplib.c (cpp_push_buffer): Fix grammar in message.
413         * cppmain.c (main): Set callbacks for #ident and #pragma
414         only if no_output option is false.
415         (do_pragma_implementation): Only call the #pragma handler
416         if it is set in the cpp_reader structure.
417
418 Wed Sep 27 14:00:07 2000  Donald Lindsay  <dlindsay@cygnus.com>
419
420         * integrate.c (copy_insn_list): if an ignored return value
421         is being clobbered, skip cloning that into the inline copy.
422
423 2000-09-27  Joseph S. Myers  <jsm28@cam.ac.uk>
424
425         * extend.texi, invoke.texi, gcc.texi, install.texi: Consistently
426         use @uref for formatting URLs.
427
428 2000-09-27  Mark Elbrecht  <snowball3@bigfoot.com>
429
430         * config/i386/djgpp.h (UNIQUE_SECTION): Constify the variables
431         name and prefix.
432
433 Tue 26-Sep-2000 18:25:38 BST  Neil Booth  <neilb@earthling.net>
434
435         * gcc.c (cpp_options): Add spec for -ftabstop=.
436         (invoke_as): New spec that handles invoking as.
437         Update specs to handle -save-temps and -traditional.
438         * ch/lang-specs.h, f/lang-specs.h, java/lang-specs.h:
439         Use invoke_as.
440         * cp/lang-specs.h, objc/lang-specs.h: Update to use
441         invoke_as, and handle -save-temps and -traditional (if
442         appropriate).
443
444 2000-09-26  Jakub Jelinek  <jakub@redhat.com>
445
446         * config/sparc/sparc.c (sparc_emit_set_const64): Don't abort when
447         op0 is a SUBREG.
448         (function_arg_slotno): Accept TImode/CTImode.
449         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): If IN_LIBGCC2 define
450         to UNITS_PER_WORD.
451
452 2000-09-26  Michael Hayes  <mhayes@cygnus.com>
453
454         * flow.c (flow_loop_pre_header_scan): Punt if loop enters
455         from entry block.
456
457 2000-09-25  Jim Wilson  <wilson@cygnus.com>
458
459         * config/ia64/ia64.h (INDEX_REG_CLASS): Define to GENERAL_REGS.
460         (REGNO_OK_FOR_INDEX_P): Define to REGNO_OK_FOR_BASE_P.
461         (LEGITIMATE_ADDRESS_DISP): Use LEGITIMATE_ADDRESS_REG.
462         (REG_OK_FOR_INDEX): Define to REG_OK_FOR_BASE_P.
463
464 Tue 26-Sep-2000 00:16:22 BST  Neil Booth  <neilb@earthling.net>
465
466         * cpplex.c (parse_args): Don't set VOID_REST flag.
467         (CONTEXT_VARARGS): New flag.
468         (maybe_paste_with_next): Set context earlier in loop.  Use
469         it.  Do varargs test with CONTEXT_VARARGS flag.
470         (push_arg_context): Set CONTEXT_VARARGS flag if we're
471         pushing an argument context for a varargs argument.
472         * cpplib.h (VOID_REST): Delete.
473         * gcc.dg/cpp/vararg1.c: Add test case.   
474
475 2000-09-25  Branko Cibej  <branko.cibej@hermes.si>
476
477         * flags.h:  Declare warning flag warn_system_headers.
478         * toplev.c:  Define it.
479         (W_options): Add option -Wsystem-headers.
480         * diagnostic.c (count_error): Test warn_system_headers.
481         * invoke.texi:  Add description for -Wsystem-headers.
482         * cpplib.h (cpp_options): New member warn_system_headers.
483         * cpphash.h (CPP_PEDANTIC, CPP_WTRADITIONAL): Don't test
484         CPP_IN_SYSTEM_HEADER.
485         * cpplib.c (do_import, do_pragma_once): Likewise.
486         * cpperror.c (_cpp_begin_message): Test warn_system_headers
487         and CPP_IN_SYSTEM_HEADER.
488         * cppinit.c (handle_option): Recognize -Wsystem_headers.
489         (print_help): Describe -Wsystem_headers.
490         * cpplex.c (lex_line): Reorganize condition so that warnings
491         about C++ comments in system headers can be enabled. Remove
492         label do_line_comment.
493
494 Mon 25-Sep-2000 23:38:27 BST  Neil Booth  <neilb@earthling.net>
495
496         * cpplex.c (save_comment): Only store the initial '/'
497         now.
498         (lex_token): Combine handling of the two comment types.
499         Pass everything but the initial '/' to save_comment.    
500
501 Mon 25-Sep-2000 23:31:45 BST  Neil Booth  <neilb@earthling.net>
502
503         * cpphash.h (_cpp_digraph_spellings, _cpp_process_directive,
504         _cpp_can_paste): New library-internal prototypes.
505         * cpplex.c (dump_param_spelling, output_line_command,
506         output_token, cpp_scan_buffer, cpp_scan_buffer_nooutput,
507         cpp_printf, cpp_output_list): Move to cppoutput.c.
508         (process_directive, can_paste, digraph_spellings): Add _cpp_ prefix.
509         * cppmacro.c (dump_macro_args, cpp_dump_definition) Move to
510         cppoutput.c.
511         * cppoutput.c (dump_macro_args, cpp_dump_definition, output_token,
512         dump_param_spelling, output_line_command, cpp_scan_buffer,
513         cpp_scan_buffer_nooutput, cpp_printf, cpp_output_list): Moved
514         from elsewhere.
515         * Makefile.in: Add cppoutput.c.
516         * po/POTFILES.in: Add cppoutput.c.
517
518 2000-09-25  Richard Henderson  <rth@cygnus.com>
519
520         * config/ia64/ia64.c (ia64_print_operand): Define 'e' as 64-n.
521         * config/ia64/ia64.md (rotrsi3): Allow variable rotates; don't
522         split until after reload.
523         (rotlsi3, rotldi3): New.
524
525 2000-09-25  Gabriel Dos Reis  <gdr@codesourcery.com>
526
527         * diagnostic.c (output_last_position): Define.
528         (set_real_maximum_length): Tweek.
529         * diagnostic.h (output_last_position): Declare.
530
531 2000-09-25  Kazu Hirata  <kazu@hxi.com>
532
533         * config/i386/i386.c: Fix formatting.
534
535 2000-09-24  Alan Lehotsky  <alehotsky@cygnus.com>
536
537         * emit-rtl-c (gen_lowpart_common): Accept non-paradoxical SUBREG when
538         UNITS_PER_WORD is small.
539
540 2000-09-25  Joseph S. Myers  <jsm28@cam.ac.uk>
541
542         * c-common.c (format_char_info): Add flags2; update comments.
543         (print_char_table, scan_char_table, time_char_table): Split some
544         flags out into flags2.
545         (check_format_info): Use flags2 for those flags, for identifying
546         the initial character of a scanf scanset, and for identifying
547         printf formats where the '0' flag is ignored with precision.
548
549 2000-09-25  Hans-Peter Nilsson  <hp@axis.com>
550
551         Changes below marked "here" add TABs on either or both sides,
552         covering start of line, up to any operand for all noted .*ASM.*_OP
553         definitions.  All callers changed.
554         * tm.texi: Make documented *_ASM.*_OP:s include spacing
555         (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, SHARED_SECTION_ASM_OP,
556         BSS_SECTION_ASM_OP, SHARED_BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
557         ASM_BYTE_OP, FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
558         ASM_STABS_OP, ASM_STABD_OP, ASM_STABN_OP).
559         Fix typos in description for LONG_LONG_TYPE_SIZE and
560         FINI_SECTION_ASM_OP.
561         * crtstuff.c (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Explain
562         why these defaults don't have leading spacing.
563         * dbxout.c (ASM_STABS_OP, ASM_STABN_OP): Here.
564         * dwarf2out.c (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
565         UNALIGNED_DOUBLE_INT_ASM_OP, SECTION_ASM_OP, ASM_BYTE_OP): Here.
566         * dwarfout.c (FILE_ASM_OP, VERSION_ASM_OP,
567         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, ASM_BYTE_OP,
568         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP): Here.
569         * defaults.h (ASM_STABD_OP, EH_FRAME_SECTION_ASM_OP): Here.
570         * varasm.c (ASM_STABS_OP): Here.
571         * xcoffout.h (ASM_STABS_OP): Here.
572         * config/elfos.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
573         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
574         INT_ASM_OP, ASCII_DATA_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP,
575         STRING_ASM_OP): Here.
576         * config/freebsd.h (IDENT_ASM_OP): Here.
577         * config/linux-aout.h (SET_ASM_OP): Here.
578         * config/linux.h (SET_ASM_OP): Here.
579         * config/lynx.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
580         INT_ASM_OP): Here.
581         * config/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
582         * config/nextstep.h (EH_FRAME_SECTION_ASM_OP, ALIGN_ASM_OP): Here.
583         * config/openbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP): Here.
584         * config/psos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
585         INT_ASM_OP): Here.
586         * config/ptx4.h (IDENT_ASM_OP, ASM_BYTE_OP, SET_ASM_OP,
587         SKIP_ASM_OP, ALIGN_ASM_OP, COMMON_ASM_OP, LOCAL_ASM_OP,
588         INT_ASM_OP, ASCII_DATA_ASM_OP, CONST_SECTION_ASM_OP,
589         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
590         FINI_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP STRING_ASM_OP): Here.
591         * config/svr3.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
592         CONST_SECTION_ASM_OP, ASM_BYTE_OP): Here.
593         * config/a29k/udi.h (INT_ASM_OP): Here.
594         * config/alpha/alpha-interix.h (CONST_SECTION_ASM_OP,
595         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
596         SET_ASM_OP): Here.
597         * config/alpha/alpha.h (TEXT_SECTION_ASM_OP,
598         READONLY_DATA_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
599         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
600         UNALIGNED_DOUBLE_INT_ASM_OP, ASM_STABS_OP, ASM_STABN_OP,
601         ASM_STABD_OP): Here.
602         * config/alpha/elf.h (IDENT_ASM_OP, SKIP_ASM_OP, ALIGN_ASM_OP,
603         COMMON_ASM_OP, INT_ASM_OP, ASCII_DATA_ASM_OP,
604         CONST_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
605         BSS_SECTION_ASM_OP, SBSS_SECTION_ASM_OP, SDATA_SECTION_ASM_OP,
606         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, TYPE_ASM_OP,
607         SIZE_ASM_OP, STRING_ASM_OP): Here.
608         * config/alpha/vms.h (LINK_SECTION_ASM_OP,
609         READONLY_SECTION_ASM_OP, LITERALS_SECTION_ASM_OP,
610         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, COMMON_ASM_OP): Here.
611         * config/arc/arc.h (ASM_BYTE_OP, SET_ASM_OP): Here.
612         (PUSHSECTION_ASM_OP): Define this, not PUSHSECTION_FORMAT.
613         * config/arm/aof.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP):
614         Here.
615         * config/arm/aout.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
616         BSS_SECTION_ASM_OP, SET_ASM_OP): Here.
617         * config/arm/coff.h (INT_ASM_OP): Here.
618         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Here.
619         * config/arm/elf.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP): Here.
620         * config/arm/linux-elf.h (IDENT_ASM_OP, CONST_SECTION_ASM_OP,
621         INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): Here.
622         * config/arm/unknown-elf.h (UNALIGNED_WORD_ASM_OP): Here.
623         * config/avr/avr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
624         ASM_BYTE_OP, TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP,
625         STRING_ASM_OP): Here.  Update documentation copy in comments.
626         * config/c4x/c4x.h (ASM_STABS_OP, BSS_SECTION_ASM_OP): Here.
627         * config/clipper/clipper.h (TEXT_SECTION_ASM_OP,
628         DATA_SECTION_ASM_OP): Here.
629         * config/clipper/clix.h (BSS_SECTION_ASM_OP, INIT_SECTION_ASM_OP):
630         Here.
631         * config/convex/convex.h (TEXT_SECTION_ASM_OP,
632         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
633         * config/d30v/d30v.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
634         BSS_SECTION_ASM_OP): Here.
635         * config/fr30/fr30.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
636         BSS_SECTION_ASM_OP): Here.
637         * config/fx80/fx80.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
638         Here.
639         * config/gmicro/gmicro.h (TEXT_SECTION_ASM_OP,
640         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP): Here.
641         * config/h8300/h8300.h (ASM_WORD_OP): Here.
642         * config/i370/i370.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
643         BSS_SECTION_ASM_OP): Here.
644         * config/i386/aix386.h (INIT_SECTION_ASM_OP): Here.
645         * config/i386/bsd.h (ASM_BYTE_OP): Here.
646         * config/i386/cygwin.h (SET_ASM_OP, INT_ASM_OP): Here.
647         * config/i386/dgux.h (CONST_SECTION_ASM_OP): Here.
648         * config/i386/djgpp.h (IDENT_ASM_OP, INT_ASM_OP, SET_ASM_OP):
649         Here.
650         * config/i386/freebsd-elf.h (SET_ASM_OP): Here.
651         * config/i386/freebsd.h (TYPE_ASM_OP, SIZE_ASM_OP, INT_ASM_OP):
652         Here.
653         * config/i386/i386-coff.h (CTORS_SECTION_ASM_OP,
654         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
655         * config/i386/i386-interix.h (STRING_ASM_OP, CONST_SECTION_ASM_OP,
656         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP,
657         SET_ASM_OP): Here.
658         * config/i386/i386elf.h (BSS_SECTION_ASM_OP): Here.
659         * config/i386/netbsd.h (INT_ASM_OP): Here.
660         * config/i386/openbsd.h (INT_ASM_OP): Here.
661         * config/i386/osfrose.h (TYPE_ASM_OP, SIZE_ASM_OP, SET_ASM_OP,
662         IDENT_ASM_OP): Here.
663         * config/i386/sco5.h (ALIGN_ASM_OP, ASCII_DATA_ASM_OP,
664         ASM_BYTE_OP, IDENT_ASM_OP, COMMON_ASM_OP, SET_ASM_OP,
665         LOCAL_ASM_OP, INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, STRING_ASM_OP,
666         SKIP_ASM_OP, GLOBAL_ASM_OP): Here.
667         * config/i386/seq-sysv3.h (SHARED_SECTION_ASM_OP,
668         SHARED_BSS_SECTION_ASM_OP): Here.
669         * config/i386/sequent.h (SHARED_SECTION_ASM_OP): Here.
670         * config/i386/sun386.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
671         DATA_SECTION_ASM_OP): Here.
672         * config/i386/svr3gas.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
673         CONST_SECTION_ASM_OP): Here.
674         * config/i386/sysv3.h (INIT_SECTION_ASM_OP): Here.
675         * config/i386/unix.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
676         BSS_SECTION_ASM_OP): Here.
677         * config/i860/bsd-gas.h (ASCII_DATA_ASM_OP): Here.
678         * config/i860/bsd.h (ASCII_DATA_ASM_OP): Here.
679         * config/i860/fx2800.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP,
680         BSS_ASM_OP): Here, but use trailing spaces.
681         * config/i860/i860.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
682         DATA_SECTION_ASM_OP): Here.
683         * config/i860/paragon.h (ASCII_DATA_ASM_OP, BSS_SECTION_ASM_OP):
684         Here.
685         * config/i860/sysv3.h (ASCII_DATA_ASM_OP, CTORS_SECTION_ASM_OP,
686         DTORS_SECTION_ASM_OP, TDESC_SECTION_ASM_OP): Here.
687         * config/i860/sysv4.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
688         TDESC_SECTION_ASM_OP): Here.
689         * config/i960/i960-coff.h (CTORS_SECTION_ASM_OP,
690         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
691         * config/i960/i960.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
692         Here.
693         * config/ia64/ia64.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
694         BSS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP,
695         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
696         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
697         * config/ia64/sysv4.h (ASM_BYTE_OP, STRING_ASM_OP, SKIP_ASM_OP,
698         COMMON_ASM_OP, ASCII_DATA_ASM_OP, INIT_SECTION_ASM_OP,
699         FINI_SECTION_ASM_OP, CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
700         SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Here.
701         * config/m32r/m32r.h (SCOMMON_ASM_OP): Here.
702         * config/m68hc11/m68hc11.h (GLOBAL_ASM_OP): Here.
703         * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
704         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
705         SET_ASM_OP): Here.
706         * config/m68k/coff.h (BSS_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
707         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
708         * config/m68k/crds.h (BSS_SECTION_ASM_OP): Here.
709         * config/m68k/dpx2.h (ASM_BYTE_OP, GLOBAL_ASM_OP): Here.
710         * config/m68k/hp320.h (ASCII_DATA_ASM_OP, GLOBAL_ASM_OP): Here.
711         * config/m68k/linux.h (BSS_SECTION_ASM_OP): Here.
712         * config/m68k/lynx.h (BSS_SECTION_ASM_OP): Here.
713         * config/m68k/m68k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
714         GLOBAL_ASM_OP): Here.
715         * config/m68k/m68kelf.h (SWBEG_ASM_OP, BSS_ASM_OP,
716         BSS_SECTION_ASM_OP): Here.
717         * config/m68k/m68kv4.h (BSS_ASM_OP): Here.
718         * config/m68k/mot3300.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
719         ASCII_DATA_ASM_OP, SET_ASM_OP, CTORS_SECTION_ASM_OP,
720         DTORS_SECTION_ASM_OP, GLOBAL_ASM_OP, ASM_BYTE_OP, ALIGN_ASM_OP,
721         SKIP_ASM_OP): Here.
722         * config/m68k/newsgas.h (SET_ASM_OP): Here.
723         * config/m68k/rtemself.h (INIT_SECTION_ASM_OP,
724         FINI_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
725         * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP,
726         SPACE_ASM_OP, ALIGN_ASM_OP, GLOBAL_ASM_OP, SWBEG_ASM_OP,
727         SET_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here,
728         but use trailing spaces.
729         * config/m68k/tower-as.h (TEXT_SECTION_ASM_OP,
730         DATA_SECTION_ASM_OP, GLOBAL_ASM_OP, INIT_SECTION_ASM_OP,
731         FINI_SECTION_ASM_OP, CONST_SECTION_ASM_OP, BSS_SECTION_ASM_OP):
732         Here.
733         * config/m88k/dgux.h (FINI_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
734         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
735         * config/m88k/m88k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
736         CONST_SECTION_ASM_OP, TDESC_SECTION_ASM_OP, CTORS_SECTION_ASM_OP,
737         DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
738         IDENT_ASM_OP, FILE_ASM_OP, SECTION_ASM_OP, SET_ASM_OP,
739         GLOBAL_ASM_OP, ALIGN_ASM_OP, SKIP_ASM_OP, COMMON_ASM_OP,
740         BSS_ASM_OP, FLOAT_ASM_OP, DOUBLE_ASM_OP, INT_ASM_OP, SHORT_ASM_OP,
741         CHAR_ASM_OP, ASCII_DATA_ASM_OP, SBSS_ASM_OP, SCOMM_ASM_OP,
742         SDATA_SECTION_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP, INTERNAL_ASM_OP,
743         VERSION_ASM_OP, UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP,
744         PUSHSECTION_ASM_OP, POPSECTION_ASM_OP, REQUIRES_88110_ASM_OP,
745         ASM_BYTE_OP): Here.
746         * config/m88k/openbsd.h (SET_ASM_OP): Here.
747         * config/m88k/sysv4.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
748         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Here.
749         * config/mcore/mcore-elf.h (UNALIGNED_INT_ASM_OP,
750         UNALIGNED_SHORT_ASM_OP, CTORS_SECTION_ASM_OP,
751         DTORS_SECTION_ASM_OP): Here.
752         * config/mcore/mcore-pe.h (CTORS_SECTION_ASM_OP,
753         DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
754         * config/mips/elf.h (TYPE_ASM_OP, SIZE_ASM_OP,
755         BSS_SECTION_ASM_OP): Here.
756         * config/mips/elf64.h (TYPE_ASM_OP, SIZE_ASM_OP): Here.
757         * config/mips/iris5.h (ABICALLS_ASM_OP): Here.
758         * config/mips/iris6.h (TYPE_ASM_OP, SIZE_ASM_OP,
759         POPSECTION_ASM_OP, BSS_SECTION_ASM_OP, CONST_SECTION_ASM_OP_32,
760         CONST_SECTION_ASM_OP_64, CTORS_SECTION_ASM_OP,
761         DTORS_SECTION_ASM_OP, EH_FRAME_SECTION_ASM_OP): Here.
762         * config/mips/mips.c (ABICALLS_ASM_OP): Here.
763         * config/mips/mips.h (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP):
764         Here.
765         * config/mips/netbsd.h (TYPE_ASM_OP, SIZE_ASM_OP, WEAK_ASM_OP):
766         Here.
767         * config/mips/osfrose.h (SET_ASM_OP): Here.
768         * config/mips/sni-svr4.h (ABICALLS_ASM_OP): Here.
769         * config/ns32k/encore.h (SHARED_SECTION_ASM_OP): Here.
770         * config/ns32k/merlin.h (SHARED_SECTION_ASM_OP): Here.
771         * config/ns32k/ns32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
772         Here.
773         * config/ns32k/sequent.h (SHARED_SECTION_ASM_OP): Here.
774         * config/ns32k/tek6000.h (SHARED_SECTION_ASM_OP): Here.
775         * config/pa/pa-64.h (INT_ASM_OP, TYPE_ASM_OP, SIZE_ASM_OP): Here.
776         * config/pa/pa.h (ASM_STABS_OP, ASM_STABN_OP): Here.
777         * config/pj/pj.h (SET_ASM_OP, BSS_SECTION_ASM_OP): Here.
778         * config/pyr/pyr.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
779         Here.
780         * config/romp/romp.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
781         Here.
782         * config/rs6000/rs6000.h (SET_ASM_OP): Here.
783         * config/rs6000/sol2.h (ASM_STABN_OP): Here.
784         * config/rs6000/sysv4.h (SKIP_ASM_OP, LOCAL_ASM_OP, LCOMM_ASM_OP):
785         Here.
786         * config/sh/sh.h (SET_ASM_OP, BSS_SECTION_ASM_OP,
787         UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Here.
788         * config/sparc/linux.h (COMMON_ASM_OP): Here.
789         * config/sparc/linux64.h (COMMON_ASM_OP,
790         UNALIGNED_DOUBLE_INT_ASM_OP): Here.
791         * config/sparc/litecoff.h (BSS_SECTION_ASM_OP,
792         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INT_ASM_OP): Here.
793         * config/sparc/lynx.h (BSS_SECTION_ASM_OP): Here.
794         * config/sparc/pbd.h (ASM_INT_OP): Here.
795         * config/sparc/sp64-elf.h (UNALIGNED_LONGLONG_ASM_OP): Here.
796         * config/sparc/sparc.h (ASM_BYTE_OP, TEXT_SECTION_ASM_OP,
797         DATA_SECTION_ASM_OP, IDENT_ASM_OP): Here.
798         * config/sparc/sun4gas.h (UNALIGNED_DOUBLE_INT_ASM_OP,
799         UNALIGNED_INT_ASM_OP, UNALIGNED_SHORT_ASM_OP): Here.
800         * config/sparc/sysv4.h (STRING_ASM_OP, COMMON_ASM_OP, SKIP_ASM_OP,
801         UNALIGNED_DOUBLE_INT_ASM_OP, UNALIGNED_INT_ASM_OP,
802         UNALIGNED_SHORT_ASM_OP, PUSHSECTION_ASM_OP, POPSECTION_ASM_OP,
803         TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP,
804         CONST_SECTION_ASM_OP, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
805         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP,
806         EH_FRAME_SECTION_ASM_OP): Here.
807         * config/sparc/vxsim.h (COMMON_ASM_OP): Here.
808         * config/spur/spur.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
809         Here.
810         * config/tahoe/tahoe.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
811         Here.
812         * config/v850/v850.h (SCOMMON_ASM_OP, ZCOMMON_ASM_OP,
813         TCOMMON_ASM_OP): Here.
814         * config/vax/vax.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
815         Here.
816         * config/we32k/we32k.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP,
817         ASM_BYTE_OP): Here.
818
819 2000-09-25  Richard Henderson  <rth@cygnus.com>
820
821         * expmed.c (store_bit_field): Adjust last change to not consider
822         any word-sized field naturally aligned.
823
824 2000-09-24  Richard Henderson  <rth@cygnus.com>
825
826         * config/alpha/alpha.c (alpha_emit_conditional_branch): Handle
827         TFmode unordered compares properly.  Revalidate integer compare
828         operands.
829         (alpha_emit_setcc): New.
830         (alpha_emit_conditional_move): Revalidate integer compare operands.
831         * config/alpha/alpha-protos.h: Update.
832         * config/alpha/alpha.md (cmpdi): Allow general operands.
833         (sne): Use alpha_emit_setcc.
834         (seq, slt, sle, sgt, sge, sltu, sleu, sgtu, sgeu): Likewise.
835         (sunordered, sordered): New.
836
837 2000-09-24  Richard Henderson  <rth@cygnus.com>
838
839         * config/ia64/ia64-protos.h: Update.
840         * config/ia64/ia64.c (call_multiple_values_operation): Remove.
841         (ia64_expand_call): New.
842         (ia64_expand_prologue): Emit an alloc if we need extra input
843         registers.
844         (ia64_expand_epilogue): New arg sibcall_p; don't emit the return
845         instruction if true.
846         (struct reg_flags): Add is_sibcall.
847         (rtx_needs_barrier): A sibcall does not use CFM et al.  Ignore USEs.
848         (emit_insn_group_barriers): Set flags.is_sibcall.  Remove hacks
849         for CODE_FOR_gr_spill_internal/CODE_FOR_gr_restore_internal.
850         * config/ia64/ia64.h (PREDICATE_CODES): Update.
851         * config/ia64/ia64.md (call): Use ia64_expand_call.
852         (call_value): Likewise.
853         (sibcall, sibcall_value): New.
854         (call patterns): Remove extra expanders; tidy.
855         (sibcall_epilogue): New.
856         (set_bsp): Remove the extra USE.  Put the operand inside the UNSPEC.
857
858 2000-09-24  Richard Henderson  <rth@cygnus.com>
859
860         * emit-rtl.c (gen_lowpart_common): Use trunc_int_for_mode.
861
862         * sibcall.c (skip_pic_restore): New.
863         (identify_call_return_value): Use it.
864
865 2000-09-24  Mark Mitchell  <mark@codesourcery.com>
866
867         * c-tree.texi: Moved here from cp/ir.texi.  Documented nested
868         functions.  Generalize to handle both C and C++.
869         * Makefile.in (c-tree.info): New target.
870         (info): Add c-tree.info.
871         
872 Sun Sep 24 09:15:48 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
873
874         * expr.c (store_field): If BITSIZE is negative, use size of type.
875         (expand_expr, case COMPONENT_EXPR): Likewise.
876
877 Sun 24-Sep-2000 11:40:23 BST  Neil Booth  <NeilB@earthling.net>
878
879         * cpplex.c: Update TODO comment.
880         * cpplib.c (do_error, do_warning): Merge common code of
881         do_error and do_warning into do_diagnostic.  Use it.
882         (do_diagnostic): New function.
883         * cpplib.h: Fix comment typo.
884
885 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
886
887         * c-common.c (check_format_info): Warn for a wide character string
888         used as a non-wide format argument.
889
890 2000-09-24  Joseph S. Myers  <jsm28@cam.ac.uk>
891
892         * builtins.def (BUILT_IN_LLABS): Add.
893         * builtins.c (expand_builtin): Also abort on BUILT_IN_LLABS.
894         * c-common.c (c_common_nodes_builtins): Create builtin functions
895         __builtin_llabs, and plain llabs unless no_nonansi_builtins
896         outside of C99 mode.
897         (expand_tree_builtin): Handle BUILT_IN_LLABS.
898
899 Sat 23-Sep-2000 22:39:18 BST  Neil Booth  <NeilB@earthling.net>
900
901         * cpphash.h (CPP_RESERVE, CPP_PUTS_Q, CPP_PUTS, CPP_PUTC_Q,
902         CPP_PUTC, DUMMY_TOKEN, NO_DUMMY_TOKEN): Delete.
903         * cpplex.c (_cpp_expand_token_space, _cpp_init_toklist,
904         _cpp_free_toklist): No need to worry about extra dummy token
905         at the start of token lists any more.
906         (trigraph_ok): Only warn outside comments.
907         (skip_block_comment): Set and clear lexing_comment.
908         (skip_line_comment): Take a cpp_reader not cpp_buffer.
909         Set and clear lexing_comment.
910         (parse_number): Handle leading '.' indicated by pfile->seen_dot.
911         (check_long_token): Delete.
912         (lex_percent, lex_dot): New subroutines of lex_token to
913         handle lexing of '.' and '%' without lookback.
914         (lex_token): Use lex_dot and lex_percent.
915         (lex_line): Don't check for LIST_OFFSET.
916         (_cpp_init_input_buffer): Update for new _cpp_init_toklist.
917         * cpplib.c (_cpp_parse_assertion): Similarly.
918         (cpp_push_buffer): Initialize extra_char.
919         * cpplib.h (LIST_OFFSET): Delete.
920         (struct cpp_buffer): New member extra_char.
921         (struct lexer_state): New members lexing_comment and seen_dot.
922
923 2000-09-23  Jason Merrill  <jason@redhat.com>
924
925         * config/rs6000/x-aix41 (CLIB): Define here.
926         * config/rs6000/t-aix43: Not here.
927         * config/rs6000/t-aix41: Or here.  Remove.
928         * configure.in: Don't use it.
929
930 2000-09-22  Jason Merrill  <jason@redhat.com>
931
932         * configure.in: Add test for HAVE_LD_DWARF_LINKONCE.
933         * toplev.c: Use it to initialize flag_eliminate_dwarf2dups.
934         * config.in: Regenerate.
935
936         * configure.in: Fix checks for assembler features when using a
937         one-tree assembler that has not yet been built.
938         Fix --disable-threads.
939
940 2000-09-19  Geoff Keating  <geoffk@cygnus.com>
941
942         * stmt.c (expand_asm_operands): Allow # in constraints.
943
944 2000-09-22  Jason Merrill  <jason@redhat.com>
945
946         * c-lex.c (skip_white_space): Just treat CRs as horizontal whitespace.
947
948         * dbxout.c (dbxout_symbol_name): Just use DECL_NAME for
949         function-local names.
950
951 2000-09-22  Brad Lucier <lucier@math.purdue.edu>
952             Mark Mitchell  <mark@codesourcery.com>
953
954         * toplev.c (warn_disabled_optimization): Declare new warning flag.
955         * flags.h (warn_disabled_optimization): Add it here.
956         * gcse.c (gcse_main): Add warning when disabled.
957         * invoke.texi: Document -Wdisabled-optimization.
958
959 2000-09-21  Jason Merrill  <jason@redhat.com>
960
961         * dwarf2out.c (add_const_value_attribute): Multiply by length, not 4.
962
963         * dwarf2out.c (tree_add_const_value_attribute): New fn.
964         (gen_variable_die): Call it for non-definitions.
965
966         * dwarf2out.c (die_struct): Add die_mark field.
967         (mark_dies, unmark_dies): New fns.
968         (clear_die_sizes): Remove.
969         (print_die): Check die_symbol rather than die_offset.
970         (build_abbrev_table, output_pubnames, output_aranges): Check
971         die_mark rather than die_offset.
972         (output_comp_unit): Move calc_die_sizes after build_abbrev_table.
973         Call mark_dies.
974
975 Thu 21-Sep-2000 18:19:05 BST  Neil Booth  <NeilB@earthling.net>
976
977         * cppfiles.c (lookup_include_file): Rename to open_file.
978         Always create a splay tree value, even on syscall failures.
979         Negative entries indicated by fd == -2.
980         Re-open files closed in the meantime.
981         (_cpp_fake_include): Create a negative splay tree entry.
982         (find_include_file, cpp_read_file): Update for function name
983         change.
984         * gcc.gd/cpp/mi4.c: Testcase.
985
986 2000-09-21  Nick Clifton  <nickc@redhat.com>
987
988         * config/arm/t-arm-elf (MULTILIB_DIRNAMES): Enable multilibs for
989         ARM and THUMB modes.
990
991         * config/mcore/mcore.c: Fix compile time warnings.
992         * config/mcore/mcore-protos.h: Fix compile time warnings. 
993
994 2000-09-20  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
995
996         * configure.in: Correct test of gcc_cv_glibc.
997         * configure: Rebuilt.
998         * config.in: Rebuilt.
999
1000 2000-09-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1001
1002         * builtins.c (expand_builtin_fputs): Also expand when length!=1.
1003         (expand_builtin): Handle BUILT_IN_FWRITE.
1004
1005         * builtins.def (BUILT_IN_FWRITE): New entry.
1006
1007         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_fwrite.
1008
1009 Wed Sep 20 15:39:14 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1010
1011         * gcc.c (modify_target): New variable and struct.
1012         (process_command): Handle MODIFY_TARGET_NAME.
1013         * tm.texi (MODIFY_TARGET_NAME): Add documentation for new macro.
1014         * config/pa/pa.h (MODIFY_TARGET_NAME): New macro.
1015
1016         * c-decl.c (finish_decl): Add else's to avoid referencing
1017         TYPE_DOMAIN of an ERROR_MARK.
1018
1019 Wed Sep 20 21:44:31 2000  Denis Chertykov  <denisc@overta.ru>
1020
1021         * config/avr/avr.c (adjust_insn_length): Adjust lengths of
1022         `reload_in*' insns.
1023
1024 2000-09-19  Marek Michalkiewicz  <marekm@linux.org.pl>
1025
1026         * config/avr/avr.md (neghi2): Add alternative for input and output
1027         operands in different registers, as in negsi2.
1028         (*negsi2): Remove '*' from the name.  Use "movw" if available.
1029
1030 2000-09-19  Jim Wilson  <wilson@cygnus.com>
1031
1032         * config/ia64/crtbegin.asm (__dso_handle): Delete use of
1033         HAVE_GAS_HIDDEN macro.
1034
1035 Tue 19-Sep-2000 22:38:57 BST  Neil Booth  <NeilB@earthling.net>
1036
1037         * cpplex.c (lex_line): Drop the EOF token for unknown
1038         directives in assembler.
1039
1040 2000-09-19  David Edelsohn  <edelsohn@gnu.org>
1041
1042         * configure.in: Allow enable_threads_flag value of "aix".  Define
1043         thread_file as "aix" for AIX 4.3 and above.
1044         * configure: Regenerated.
1045
1046         * gthr-aix.h: New file.
1047
1048         * rs6000/t-aix43: Replace soft-float multilib with pthread.
1049         Remove 403 processor multilib match.  Fix rios2 processor multilib
1050         match.
1051
1052         * rs6000/aix.h (ASM_DECLARE_FUNCTION_NAME): Use function_section
1053         to return to appropriate csect.
1054
1055 2000-09-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1056
1057         * builtins.c (is_valid_printf_arglist, expand_builtin_printf): New
1058         functions.
1059         (expand_builtin_fputs): Set `target' parameter for `expand_expr'.
1060         (expand_builtin): Handle BUILT_IN_PUTCHAR, BUILT_IN_PUTS and
1061         BUILT_IN_PRINTF.
1062
1063         * builtins.def (BUILT_IN_PUTCHAR, BUILT_IN_PUTS, BUILT_IN_PRINTF):
1064         New entries.
1065
1066         * c-common.c (init_function_format_info): Handle __builtin_printf.
1067         Set `check_function_format_ptr'.
1068         (c_common_nodes_and_builtins): Set `puts_ftype' and
1069         `printf_ftype'.  Declare __builtin_putchar, __builtin_puts,
1070         __builtin_printf and printf.
1071
1072         * tree.c, tree.h (check_function_format_ptr): Declare.
1073
1074 Tue 19-Sep-2000 18:26:57 BST  Neil Booth  <NeilB@earthling.net>
1075
1076         * cppfiles.c (read_include_file): Take no special action for
1077         zero-length files.
1078
1079 2000-09-19  Bernd Schmidt  <bernds@redhat.co.uk>
1080
1081         * final.c (insn_current_reference_address): Use INSN_SHUID of seq
1082         rather than that of branch.
1083         (shorten_branches): Don't increment insn_current_address twice.
1084
1085         Undo most of the Wed Jan 27 23:39:53 1999 patch:
1086         * loop.h (struct induction): Delete members derived, ix and last_use.
1087         (struct loop_ivs): Delete members first_increment_giv and
1088         last_increment_giv.
1089         * loop.c (verify_dominator, find_life_end, cmp_recombine_givs_stats,
1090         recombine_givs): Delete functions.
1091         (find_and_verify_loops): Don't initialize cont_dominator.
1092         (strength_reduce): Lose code to try to find bivs that can be
1093         expressed as givs of another biv, and to convert biv increments
1094         into givs.
1095         Lose loop_scan_start variable, always use loop->scan_start.
1096         Don't call recombine_givs.  Don't handle derived givs.
1097         (record_giv): Don't initialize derived and last_use fields.
1098         (biv_eliminiation_giv_has_0_offset): Lose code to handle derived
1099         givs.
1100         * unroll.c (derived_regs): Delete static variable.
1101         (unroll_loop): Don't initialize it.
1102         (copy_loop_body): Lose code to handle derived givs.
1103         (find_splittable_givs): Don't check for givs made from biv
1104         increments.
1105         Don't set derived_regs.
1106
1107         Fix misapplied earlier patch:
1108         * config/sh/sh.md (floatsisf_ie): Reenable.  Remove explicit reference
1109         to fpul.
1110         (floatsisf2): Generate floatsisf_ie by default.
1111         (floatsisf_i4): Conditional on TARGET_SH4.
1112
1113         (floatsisf2, floatsidf2, extendsfdf2): Also use reg_no_subreg_operand
1114         predicate for the expanders.
1115
1116 2000-09-19  Richard Henderson  <rth@cygnus.com>
1117
1118         * config/i386/i386.h (CPP_CPU_SPEC): Define i586 and i686 symbols
1119         in addition to pentium and pentiumpro symbols.
1120         (CPP_CPU_DEFAULT_SPEC): Likewise.
1121
1122         * c-typeck.c (c_expand_asm_operands): Restore the output tree
1123         after expanding.
1124
1125         * stmt.c (expand_expr_stmt): Only call warn_if_unused_value
1126         if the tree has side effects.
1127         (warn_if_unused_value): Do not warn about void constructs.
1128
1129         * c-decl.c (poplevel): Invoke warn_about_unused_variables.
1130
1131         * unroll.c (copy_loop_body): Update LABEL_NUSES before
1132         calling invert_jump.
1133
1134 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
1135
1136         * combine.c (can_combine_p): Don't substitute an ASM_OPERANDS
1137         into anything.
1138
1139 2000-09-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1140
1141         * Makefile.in (c-common.o): Depend on diagnostic.h.
1142
1143         * c-common.c: Include diagnostic.h.
1144         (tfaff): Delete.
1145         (status_warning): New function.
1146         (check_format_info, maybe_read_dollar_number, check_format_types,
1147         finish_dollar_format_checking, check_function_format): Accept a
1148         `status' parameter.  All callers changed.
1149
1150         * c-common.h (check_function_format): Accept a `status' parameter.
1151
1152         * c-typeck.c: Update call to `check_function_format'.
1153
1154 2000-09-18  Richard Henderson  <rth@cygnus.com>
1155
1156         * c-decl.c (c_expand_body): Call mark_varargs before
1157         expand_function_start.
1158
1159 2000-09-18  Geoff Keating  <geoffk@cygnus.com>
1160
1161         * config/rs6000/eabi-cn.asm: Use /**/ to delimit comments, not #.
1162         * config/rs6000/eabi-ci.asm: Likewise.
1163
1164 2000-09-18  Richard Henderson  <rth@cygnus.com>
1165
1166         * emit-rtl.c (init_emit_once): Initialize const_tiny_rtx
1167         for BImode.
1168
1169 2000-09-18  Jim Wilson  <wilson@cygnus.com>
1170
1171         * unroll.c (loop_iterations): Pass increment to extend_for_giv_value
1172         before passing it to fold_rtx_mult_add.
1173
1174         * unroll.c (final_giv_value): Pass increment through
1175         extend_value_for_giv before passing it to emit_iv_add_mult.
1176
1177         * function.c (fixup_var_refs_1, case ZERO_EXTRACT): If we have a
1178         paradoxical subreg, then directly substitute the replacement and
1179         return.
1180
1181 Mon 18-Sep-2000 22:12:44 BST  Neil Booth  <NeilB@earthling.net>
1182
1183         * cpp.texi: Update documentation, including some clarifications,
1184         the treatment of various newline combinations, and space between
1185         backslash and newline.
1186
1187 Mon Sep 18 21:00:47 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1188
1189         * sdbout.c (PUT_SDB_DEF, PUT_SDB_TAG, PUT_SDB_EPILOGUE_END):
1190         Replace ASM_OUTPUT_LABELREF with assemble_name.
1191
1192 Mon Sep 18 20:26:50 2000  J"orn Rennecke <amylaar@redhat.co.uk>
1193
1194         * sh.c (addsubcosts): CONST is not cheap.
1195         (find_barrier): For Sh1, take alignment after jumps into account.
1196
1197 2000-09-15  Andrew Haley  <aph@redhat.com>
1198
1199         * toplev.c (rest_of_compilation): Call purge_hard_subreg_sets to
1200         remove all SETs of SUBREGs of hard registers.
1201         * function.c (purge_hard_subreg_sets): New function.
1202         (purge_single_hard_subreg_set): New function.
1203         * rtl.h: (purge_hard_subreg_sets): New function.
1204
1205 2000-09-18  Richard Henderson  <rth@cygnus.com>
1206
1207         * config/ia64/ia64-protos.h: Update.
1208         * config/ia64/ia64.c (signed_inequality_operator): New.
1209         (ia64_expand_compare): New.
1210         (ia64_register_move_cost): Handle PR_REGS moves.
1211         (ia64_secondary_reload_class): Require a GR when moving to a PR.
1212         (struct reg_write_state): Add written_by_and/or.
1213         (struct reg_flags): Add is_and/or.
1214         (rws_update): Set them.
1215         (rws_access_regno): Test them to allow parallel comparisons.
1216         (rtx_needs_barrier): Recognize parallel comparisons.
1217         (emit_insn_group_barriers): Set prev_insn after a call stop bit.
1218         Call recog_memoized; ignore pred_rel_mutex.
1219         (emit_predicate_relation_info): Don't call find_basic_blocks here.
1220         (ia64_reorg): Do it here instead.
1221         * config/ia64/ia64.h: s/CCmode/BImode/g
1222         (MODES_TIEABLE_P): Don't tie BImode.
1223         (PREFERRED_RELOAD_CLASS): Do not reload operations into AR regs.
1224         (CONST_COSTS): Pick sensible values for CONST_INT based on context.
1225         (RTX_COSTS): Make multiply 4 insns.
1226         (MEMORY_MOVE_COST): New.
1227         (PREDICATE_CODES): Update.
1228         * config/ia64/ia64.md: s/CCmode/BImode/g
1229         (movcci, movbi): New.
1230         (andbi3, andcmbi3, iorbi3, iorcmbi3, one_cmplbi2): New.
1231         (cmpsi_and_0, cmpsi_and_1, cmpsi_andnot_0, cmpsi_andnot_1): New.
1232         (cmpdi_and_0, cmpdi_and_1, cmpdi_andnot_0, cmpdi_andnot_1): New.
1233         (tbit_and_0, tbit_and_1, tbit_and_2, tbit_and_3): New.
1234         (cmpsi_or_0, cmpsi_or_1, cmpsi_orcm_0, cmpsi_orcm_1): New.
1235         (cmpdi_or_0, cmpdi_or_1, cmpdi_orcm_0, cmpdi_orcm_1): New.
1236         (tbit_or_0, tbit_or_1, tbit_or_2, tbit_or_3): New.
1237         (mulsi, muldi): Use xmpy not xma.
1238         (cmpbi): New.
1239         (movcc, movcc_internal): Remove.
1240         (branch expanders): Use ia64_expand_compare.
1241         (setcc expanders): Likewise.
1242         (cmov insns): Use move_operand and ia64_move_ok.
1243         (pred_rel_mutex): Use unspec not unspec_volatile.  Prevent the
1244         scheduler from moving it past a use.
1245         * config/ia64/build.hacks: Remove.
1246
1247 Mon 18-Sep-2000 19:21:35 BST  Neil Booth  <NeilB@earthling.net>
1248
1249         * cpphash.h (HASHSTEP): Take character rather than pointer
1250         to character.
1251         (_cpp_check_directive, _cpp_check_linemarker): Update prototypes.
1252
1253         * cpphash.c (cpp_loookup): Update for new HASHSTEP.
1254
1255         * cpplex.c (auto_expand_name_space, trigraph_replace,
1256         backslash_start, handle_newline, parse_name, INIT_TOKEN_STR,
1257         IMMED_TOKEN, PREV_TOKEN_TYPE, PUSH_TOKEN, REVISE_TOKEN,
1258         BACKUP_TOKEN, BACKUP_TRIGRAPH, MIGHT_BE_DIRECTIVE,
1259         KNOWN_DIRECTIVE): Delete.
1260
1261         (handle_newline, check_long_token, skip_escaped_newlines,
1262         unterminated): New functions.
1263         (ACCEPT_CHAR, SAVE_STATE, RESTORE_STATE): New macros.
1264
1265         (parse_identifier): Was parse_name, new implementation.
1266         (skip_line_comment, skip_block_comment, skip_whitespace,
1267         parse_number, parse_string, trigraph_ok, save_comment,
1268         adjust_column, _cpp_get_line): New implementations.
1269
1270         (lex_token): New function.  Lexes a token at a time, looking
1271         forwards.  Contains most of the guts of the old lex_line.
1272         (lex_line): New implementation, using lex_token to obtain
1273         individual tokens.
1274         (cpp_scan_buffer): Use the token's line, not the list's line.
1275
1276         * cpplib.c (_cpp_check_directive, _cpp_check_linemarker):
1277          New implementations.
1278         (do_assert): Don't bother setting the answer's list's line.
1279         (cpp_push_buffer): Initialise new pfile and read_ahead members
1280         of struct cpp_buffer.
1281
1282         * cpplib.h (cppchar_t): New typedef.
1283         (struct cpp_buffer): read_ahead, pfile and col_adjust are
1284         new members.
1285         (struct lexer_state): New structure that determines the state
1286         and behaviour of the lexer.
1287         (IN_DIRECTIVE, KNOWN_DIRECTIVE): New macros.
1288         (struct cpp_reader): New member "state". Rename
1289         multiline_string_line and multiline_string_column. Delete
1290         col_adjust, in_lex_line members.
1291         (CPP_BUF_COLUMN): Update.
1292
1293 2000-09-18  Richard Henderson  <rth@cygnus.com>
1294
1295         * combine.c (simplify_comparison): Shift a NOT out of a single
1296         bit test.
1297
1298         * combine.c (if_then_else_cond): Canonicalize BImode true to
1299         STORE_FLAG_VALUE.
1300         * explow.c (trunc_int_for_mode): Likewise.
1301
1302         * combine.c (combine_simplify_rtx): Use gen_unary to distribute
1303         the NOT for De Morgan's rule.
1304         * simplify-rtx.c (simplify_unary_operation): Simplify a BImode NOT
1305         of a comparison to the reverse comparison.
1306
1307         * combine.c (try_combine): Allow split to create a single insn.
1308
1309         * machmode.def: Add BImode.  Add a column for bitsize.
1310         * machmode.h (DEF_MACHMODE): Adjust for extra column.
1311         (GET_MODE_BITSIZE): Use it.
1312         * rtl.c (DEF_MACHMODE): Adjust for extra column.
1313         (mode_bitsize): New.
1314         (mode_mask_array): Use bitsize.
1315         * combine.c (combine_simplify_rtx): Require inner and outer
1316         modes to match on nonzero_bits optimizations.
1317
1318 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
1319
1320         * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
1321         its entry in spill_reg_store.
1322         * config/sh/lib1funcs.ams (movstr_i4 functions): Always compile in.
1323         * sh.c (reg_no_subreg_operand): New function.
1324         * sh-protos.h (reg_no_subreg_operand): Declare it.
1325         * sh.h (PREDICATE_CODES): Add it.
1326         * sh.md (floatsisf2_i4, floatsidf2_i, extendsfdf2_i4): Use it for
1327         input operand that needs to be in fpul.
1328         (fix_truncsfsi2, fix_truncsfsi2_i4): Use register_operand for output.
1329         * sh.c (find_barrier): Take into account that machine_dependent_reorg
1330         might add new insns.
1331
1332 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
1333
1334         * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
1335         MAYBE_DEAD.
1336         (sh_expand_epilogue): Take the PIC register into account when
1337         computing the frame size.
1338
1339         * config/sh/sh.c (nonpic_symbol_mentioned_p): Check LABEL_REFs.
1340         * config/sh/sh.md (sym_label2reg, symPLT_label2reg): Protect
1341         LABEL_REFs with a PIC-safe unspec.
1342
1343 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1344
1345         * c-common.c (check_format_info): Properly save the argument
1346         number and parameter for $ operand number formats in case width
1347         and precision arguments are also used.  Allow printf width and
1348         precision arguments to have operand numbers even if none was
1349         specified for the main format, since this is OK for %*.*m.  Only
1350         object to missing $ operand number if the format used requires an
1351         argument.
1352
1353 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1354
1355         * c-common.c (format_char_info): Add 'W' flag to comment.
1356         (print_char_table, scan_char_table): Use it.
1357         (check_format_info): Use the 'W' flag to determine whether a
1358         format argument is written into.
1359
1360 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1361
1362         * c-common.c (check_format_types): Reorganise and clean up,
1363         checking earlier for ERROR_MARKs and making cur_type into its
1364         TYPE_MAIN_VARIANT where convenient.
1365
1366 2000-09-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1367
1368         * gcc.c (cpp_options): Add specs for __STDC_HOSTED__.
1369
1370 2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
1371
1372         * optabs.c (emit_libcall_block): Set CONST_CALL_P for the call.
1373
1374         * i386-protos.h (ix86_init_builtins, ix86_expand_builtin): Declare.
1375         * i386.c (struct builtin_description): New.
1376         (bdesc_comi, bdesc_2arg, bdesc_1arg): New arrays.
1377         (mmx_reg_operand): Declare MODE arg as unused.
1378         (ix86_expand_sse_comi, ix86_expand_sse_compare, safe_vector_operand,
1379         ix86_expand_unop1_builtin, ix86_expand_unop_builtin,
1380         ix86_expand_binop_builtin, ix86_expand_store_builtin,
1381         ix86_init_builtins, ix86_expand_builtin): New functions.
1382         * i386.h (ix86_builtins): New enumeration.
1383         (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): New macros.
1384         * i386.md (attr length_immediate): 0 for mmx/sse types.
1385         (attr prefix_0f): 1 for mmx/sse types.
1386         (setcc_2): Remove "*" so we get gen_setcc_2.
1387         (emms): Account for changed register numbering.  Set "memory" attr
1388         to unknown.
1389         (sfence): Set "memory" attr to unknown.
1390
1391 2000-09-18  Andreas Jaeger  <aj@suse.de>
1392
1393         * configure.in: Define _GNU_SOURCE only when using the GNU C
1394         Library.
1395         * configure: Regenerated.
1396         * config.in: Regenerated.
1397
1398 2000-09-17  Mark Mitchell  <mark@codesourcery.com>
1399
1400         * cppinit.c (cpp_init): Don't use ANSI prototypes.
1401         * flow.c (flow_dump_loop): Likewise.
1402         (flow_loops_dump): Likewise.
1403
1404         * c-typeck.c (c_start_case): Fix typo.
1405
1406 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1407
1408         * c-decl.c (grokdeclarator): Don't give a warning about defaulting
1409         to int for plain complex which defaults to complex double.  Do
1410         warn about defaulting to complex double if pedantic.  Warn about
1411         complex integer types if pedantic.  Warn about complex types if
1412         pedantic and not in C99 mode.
1413         * c-typeck.c (build_unary_op): If pedantic, warn about use of ~
1414         for complex conjugation.
1415
1416 2000-09-17  Joseph S. Myers  <jsm28@cam.ac.uk>
1417
1418         * contrib.texi: Update my entry.
1419
1420 Sun Sep 17 18:48:32 2000  Denis Chertykov  <denisc@overta.ru>
1421
1422         * config/avr/avr.md (mcu_enhanced): New attribute.
1423         (mcu_mega): Likewise.
1424         (extendhisi2): Use mcu_enhanced.
1425         (zero_extendhisi2): Likewise.
1426         (call_insn): Use mcu_enhanced and mcu_mega.
1427         (call_value_insn): Likewise.
1428         (*sbrx_branch): Use mcu_mega.
1429         (*sbrx_and_branchsi): Likewise.
1430         (*sbrx_and_branchhi): Likewise.
1431         (*tablejump_lib): Likewise.
1432
1433 Sun Sep 17 10:46:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1434
1435         * alias.c (true_dependence): Allow non-unchanging read to conflict
1436         with unchanging write.
1437
1438         * expr.c (store_constructor_field): Accept ALIAS_SET arg.
1439         (store_constructor): Pass alias_set to it.
1440
1441         * c-decl.c (grokdeclarator): Reorder tests to avoid looking at
1442         TYPE_MAIN_VARIANT of ERROR_MARK.
1443         * c-lex.c (readescape): Avoid using printf syntax we don't recognize.
1444
1445         * simplify-rtx.c (simplify_unary_operation): Add cases
1446         FLOAT_EXTEND and FLOAT_TRUNCATE to ones that return 0.
1447
1448 2000-09-17  Bernd Schmidt  <bernds@redhat.co.uk>
1449
1450         * expr.h (emit_library_call, emit_library_call_value): Delete
1451         declarations.
1452         * rtl.h (enum libcall_type): New.
1453         (emit_library_call, emit_library_call_value): Change fn_type arg to
1454         be of type enum libcall_type.
1455         * calls.c: Likewise for the function definitions.  Several callers
1456         throughout changed to use the new enumeration appropriately.
1457         (emit_library_call_value_1): Likewise.  Put back code to make libcall
1458         blocks of equal form, but only use it for the two new higher
1459         enumeration values.
1460
1461 2000-09-16  Mark Mitchell  <mark@codesourcery.com>
1462
1463         Convert the C front-end to use function-at-a-time mode.
1464         * c-common.h: Include splay-tree.h.
1465         (C_DECLARED_LABEL_FLAG): New macro.
1466         (struct language_function): Add x_scope_stmt_stack and
1467         x_function_name_declared_p.
1468         (RECHAIN_STMTS): Move definition.
1469         (lang_statment_code_p): Likewise.
1470         (lang_expand_stmt): Likewise.
1471         (lang_expand_decl_stmt): New variable.
1472         (lang_expand_function_end): Likewise.
1473         (current_scope_stmt_stack): New function.
1474         (add_decl_stmt): Likewise.
1475         (add_scope_stmt): Likewise.
1476         (mark_stmt_tree): Likewise.
1477         (struct c_lang_decl): New structure.
1478         (DECL_SAVED_TREE): Define.
1479         (c_mark_lang_decl): New function.
1480         (c_expand_start_cond): Change prototype.
1481         (c_finish_then): New function.
1482         (c_finish_else): Likewise.
1483         (current_function_name_declared): Remove.
1484         (set_current_function_name_declared): Likewise.
1485         (mark_c_language_function): Declare.
1486         (case_compare): Likewise.
1487         (c_add_case_label): Likewise.
1488         (c_expand_expr): Likewise.
1489         (c_safe_from_p): Likewise.
1490         * c-common.c (lang_expand_function_end): New variable.
1491         (struct if_elt): Add if_stmt.
1492         (c_expand_start_cond): Add the if-statement to the statement-tree,
1493         rather than generating RTL.
1494         (c_finish_then): New function.
1495         (c_expand_start_else): Don't generate RTL.
1496         (c_finish_else): New function.
1497         (c_expand_expr_stmt): Don't generate RTL.
1498         (statement_code_p): Add SCOPE_STMT.
1499         (case_compare): New function.
1500         (c_add_case_label): Likewise.
1501         (mark_stmt_tree): Likewise.
1502         (c_mark_lang_decl): Likewise.
1503         (mark_c_language_function): Likewise.
1504         (c_expand_expr): Likewise.
1505         (c_safe_from_p): Likewise.
1506         * c-decl.c (c_stmt_tree): New variable
1507         (c_scope_stmt_stack): Likewise.
1508         (c_function_name_declared_p): Likewise.
1509         (lang_expand_expr_stmt): Remove.
1510         (poplevel): Don't call output_inline_function for nested
1511         functions.
1512         (pushdecl): Don't set DECL_CONTEXT for a local declaration of an
1513         `extern' function.
1514         (redeclaration_error_message): Change means of computing whether
1515         or not a function is nested.
1516         (lookup_label): Don't call label_rtx.
1517         (init_decl_processing): Add more GC roots.
1518         (start_decl): Add DECL_STMTs to the statement-tree, rather than
1519         calling rest_of_decl_compilation.
1520         (finish_decl): Don't call expand_decl.
1521         (store_parm_decls): Begin the statement-tree, but don't generate
1522         RTL.
1523         (finish_function): Tie off the statement-tree.  Call c_expand_body
1524         if appropriate.
1525         (c_expand_body): New function.
1526         (push_c_function_context): Save more information.
1527         (pop_c_function_contxt): Likewise.
1528         (copy_lang_decl): Now that we use DECL_LANG_SPECIFIC, copy it.
1529         (lang_mark_tree): Mark it.
1530         (current_stmt_tree): Adjust.
1531         (current_scope_stmt_stack): New function.
1532         (do_case): Remove.
1533         (set_current_name_declared): Likewise.
1534         (c_begin_compound_stmt): Define.
1535         (c_expand_decl_stmt): Likewise.
1536         * c-lang.c: Include rtl.h and expr.h.
1537         (lang_init): Set more language-specific hooks.
1538         * c-lex.c: Include expr.h.
1539         * c-parse.in: Changes throughout to add statements to the
1540         statement-tree, rather than generating RTL after every statement.
1541         * c-semantics.c (lang_expand_decl_stmt): Define.
1542         (add_decl_stmt): New function.
1543         (add_scope_stmt): Likewise.
1544         (finish_stmt_tree): Tweak.
1545         (genrtl_expr_stmt): Likewise.
1546         (genrtl_decl_stmt): Handle local labels, and call
1547         lang_expand_decl_stmt if required.
1548         (genrtl_for_stmt): Fix line-number handling.
1549         (genrtl_case_label): Handle cleanups.
1550         (genrtl_asm_stmt): Don't call combine_strings.
1551         (genrtl_compound_stmt): Simplify.
1552         (expand_stmt): Handle SCOPE_STMTs.
1553         * c-tree.h (struct lang_decl): New structure.
1554         (C_DECLARED_LABEL_FLAG): Remove.
1555         (c_begin_compound_stmt): Declare.
1556         (c_expand_decl_stmt): Likewise.
1557         (c_expand_start_case): Rename to c_start_case.
1558         (c_finish_case): New function.
1559         * c-typeck.c (start_init): Tweak setting of
1560         constructor_incremental.
1561         (c_expand_asm_operands): Tweak error-handling.  Add to the
1562         statement-tree.
1563         (c_expand_return): Add to the statement-tree.
1564         (c_expand_start_case): Rename to ...
1565         (c_start_case): ... this.
1566         (struct c_switch): New type.
1567         (switch_stack): New variable.
1568         (do_case): Simplify.
1569         (c_finish_case): New function.
1570         * dependence.c: Include expr.h.
1571         (enum dependence_type): Change spelling of enumerals.
1572         (check_node_dependence): Adjust.
1573         * expr.h (lang_safe_from_p): Declare.
1574         (safe_from_p): Likewise.
1575         * expr.c (lang_safe_from_p): New variable.
1576         (safe_from_p): Give it external linkage.  Use lang_safe_from_p.
1577         * stmt.c (expand_expr_stmt): Avoid clobberring of last_expr_type.
1578         * toplev.c (rest_of_decl_compilation): Robustify.
1579         * tree.c (contains_placeholder_p): Likewise.
1580         * Makefile.in: Update dependencies.
1581         * objc/objc-act.h: Adjust calculation of value for dummy_tree_code.
1582         * objc/objc-act.c: Include rtl.h, expr.h, and c-common.h.
1583         (objc_expand_function_end): New function.
1584         (finish_method_def): Use it.
1585         (init_objc): Initialize more language-specific hooks.
1586         * objc/Make-lang.in: Update dependencies.
1587
1588 2000-09-16  Geoffrey Keating  <geoffk@cygnus.com>
1589
1590         * configure.in: Define macros that affect features before
1591         testing for features.  Don't define _XOPEN_SOURCE.
1592         * configure: Regenerated.
1593         * config.in: Regenerated.
1594
1595 Sat Sep 16 19:42:50 EDT 2000  John Wehle  (john@feith.com)
1596
1597         * rtlanal.c (rtx_varies_p): Volatile asms vary.
1598         (rtx_unstable_p): Restructure code.  Volatile asms
1599         are unstable.
1600
1601 Sat Sep 16 14:35:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1602
1603         * function.h (no_debugging_symbols): New field.
1604         * integrate.c (save_for_inline): Renamed from save_for_inline_nocopy.
1605         Initialize no_debugging_symbols.
1606         (output_inline_function): Save and restore write_symbols and set from
1607         no_debugging_symbols.
1608         * toplev.c (rest_of_compilation): Call save_for_inline.
1609         * tree.h: Update comment.
1610
1611         * stor-layout.c (place_field): Don't do anything if field or
1612         its type are ERROR_MARK.
1613
1614 Sat Sep 16 19:14:00 2000  Laurynas Biveinis <lauras@softhome.net>
1615
1616         * cppfiles.c (purge_cache): Use munmap only if MMAP_THRESHOLD defined.
1617         (read_include_file): Ensure inc->mmaped is initialized.
1618
1619 2000-09-16  Richard Henderson  <rth@cygnus.com>
1620
1621         * cppiles.c (purge_cache): Use PTR not caddr_t.
1622
1623 2000-09-16  Hans-Peter Nilsson  <hp@axis.com>
1624
1625         * gcc.c: In description for %{<S}, say the option removed is -S.
1626         * invoke.texi (Spec Files): Ditto.
1627
1628 2000-09-16  Andreas Jaeger  <aj@suse.de>
1629
1630         * configure.in: Always define _GNU_SOURCE to make interfaces
1631         visible that were hidden by only defining _GNU_SOURCE.
1632         * configure: Regenerated.
1633
1634 Sat 16-Sep-2000 08:13:45 BST  Neil Booth  <NeilB@earthling.net>
1635
1636         * cpplex.c (push_macro_context): Set an argument's level after
1637         calling parse_args.  We could loop infinitely otherwise.
1638
1639 2000-09-15  Tom Tromey  <tromey@cygnus.com>
1640
1641         * configure, config.in: Rebuilt.
1642         * configure.in: Check for iconv.h.  Define _XOPEN_SOURCE.
1643
1644 2000-09-15  Greg McGary  <greg@mcgary.org>
1645
1646         * cppmacro.c (check_trad_stringification): Check token
1647         text pointers against limit before dereferencing.
1648
1649 2000-09-15  Joseph S. Myers  <jsm28@cam.ac.uk>
1650
1651         * c-common.c (format_wanted_type): New structure.
1652         (check_format_types): New function.
1653         (check_format_info): Pass all checking of types of format
1654         arguments, including width and precision arguments, to this new
1655         function.
1656
1657 2000-09-15  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1658
1659         * BUGS: Remove file.
1660
1661 2000-09-15  Jakub Jelinek  <jakub@redhat.com>
1662
1663         * config/alpha/alpha.c (override_options): ev6 cache latencies
1664         from Richard Henderson.  Don't allow -mmemory-latency=L0.
1665
1666         * config/alpha/alpha.h (TARGET_CPU_EV5, TARGET_CPU_EV6): Define.
1667         (TARGET_OPTIONS): Add tune=.
1668         (alpha_tune_string): Declare.
1669         * config/alpha/alpha.c (override_options): Add cpu_table.
1670         Use alpha_cpu_string first to set both alpha_cpu and target_flags
1671         and then alpha_tune_string to set alpha_cpu only.
1672         Replace tests for PROCESSOR_EV* with TARGET_CPU_EV* tests.
1673         * config/alpha/elf.h (ASM_FILE_START): Likewise.
1674         * config/alpha/osf.h (ASM_FILE_START): Likewise.
1675         * config/alpha/openbsd.h (ASM_FILE_START): Likewise.
1676
1677 Fri Sep 15 19:45:55 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1678
1679         * i386-protos.h (no_comparison_operator, uno_comparison_operator):
1680         Remove.
1681         (ix86_comparison_operator, ix86_cc_mode): Declare
1682         * i386.h (CCGC, CCGCO): New modes.
1683         (SELECT_CC_MODE): Move offline to ....
1684         * i386.c (ix86_cc_mode): .... here; use new modes.
1685         (ix86_comparison_operator): New.
1686         (fcmov_comparison_operator): Ensure proper mode.
1687         (put_condition_mode): More sanity checking.
1688         (ix86_match_ccmode): Handle new modes.
1689         (ix86_expand_fp_compare): GEU requires CCmode.
1690         (ix86_expand_strlensi_unroll_1): Use emit_cmp_and_jump_insn instead of
1691         doing it by hand.
1692         * i386.md (cmp?i_ccz_1): Remove
1693         (cmp?i_ccno_1): Use ix86_match_ccmode.
1694         (cmp?i_minus_1): New.
1695         (cmpsi_1): New expander.
1696         (cmpqi_ext_1): Use match_ccmode
1697         (cmpqi_ext_3): New expander.
1698         (cmpqi_ext_3_insn): Rename from cmpqi_ext_3.
1699         (cmpqi_ext_4): Use match_ccmode.
1700         (add?i_?): Use match_ccmode.
1701         (add?i_6): New.
1702         (test?i_ccz_1): Remove
1703         (test?i_1): New.
1704         (testsi_ccno_1, testqi_ccz_1, testqi_ext_ccno_0): New expander.
1705         (testqi_ext_0): Use ix86_match_ccmode.
1706         (*xorqi_cc_ext_1): Use ix86_match_ccmode.
1707         (xorqi_cc_ext_1): New expander.
1708         (shift patterns): Use CCGOCmode for all shifts except for sar.
1709         (setcc_?, jcc_?, miv?icc_nic): Use ix86_comparison_operator.
1710         (setcc_3, jcc_3, miv?icc_c): Remove.
1711
1712 2000-09-15  Will Cohen  <wcohen@redhat.com>
1713
1714         * dwarf2out.c (add_const_value_attribute): Changed array into a
1715         xmalloced object, so it exists after function exit.
1716         (free_AT): Added case for dw_val_class_float to free allocated
1717         memory.
1718
1719 2000-09-15  Kazu Hirata  <kazu@hxi.com>
1720
1721         * config/i386/i386.md: Fix a comment typo.
1722         * gcc.c: Fix formatting.
1723
1724 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
1725
1726         * optabs.c (emit_libcall_block): If target is a user variable,
1727         copy to a temporary first.
1728         * expr.c (convert_move): When generating a libcall, make a libcall
1729         block.
1730         * calls.c (emit_library_call_value_1): Don't create a libcall
1731         sequence here; our caller will in most cases do it.
1732
1733         * sh.h (SECONDARY_INPUT_RELOAD_CLASS): Handle moving T, MACL or
1734         MACH into FPUL.
1735         (SECONDARY_OUTPUT_RELOAD_CLASS): Similar case.
1736         * sh.md (reload_outsf): Generate recognizable patterns for
1737         TARGET_SH3E.
1738         (floatsisf2, floatsisf2_ie, floatsisf2_i4, fix_truncsfsi2,
1739         fix_truncsfsi2_i4, fixsfsi, floatsidf2, floatsidf2_i, fix_truncdfsi2,
1740         fix_truncdfsi2_i, extendsfdf2, extendsfdf2_i4, truncdfsf2,
1741         truncdfsf2_i4): Change not to use explicit references to fpul.
1742         (floatsisf2_ie): Remove USE of fpscr.
1743         (floatsisf2): Change default expansion to match this.
1744         (fix_truncsfsi2_i4_2, fix_truncdfsi2_i4 & splitters): Comment out
1745         unused patterns.
1746
1747 2000-09-15  Richard Henderson  <rth@cygnus.com>
1748
1749         * expmed.c (store_bit_field): Consider naturally aligned
1750         memory for direct reference.
1751
1752 2000-09-15  Richard Henderson  <rth@cygnus.com>
1753
1754         * config/alpha/alpha.c (alpha_expand_unaligned_load): Force all
1755         AND addresses into alias set 0.
1756         (alpha_expand_unaligned_store): Likewise.
1757         (alpha_expand_unaligned_load_words): Likewise.
1758         (alpha_expand_unaligned_store_words): Likewise.
1759
1760 2000-09-15  Bernd Schmidt  <bernds@redhat.co.uk>
1761
1762         * config/sh/sh.h (CPP_SPEC): For -m4-nofpu, define __SH4_NOFPU__.
1763         * config/sh/lib1funcs.asm (movstr_i4): Also compile if __SH4_NOFPU__
1764         is defined.
1765         * config/mips/mips.c (mips_va_arg): Args passed by reference have a
1766         rsize of UNITS_PER_WORD.
1767
1768 Fri 15-Sep-2000 06:49:07 BST  Neil Booth  <NeilB@earthling.net>
1769
1770         * cpplex.c (ON_REST_ARG): Correct the test.
1771         (maybe_paste_with_next): Duplicate a token that fail pasting,
1772         and clear its PASTE_LEFT flag, so that nested pasting attempts
1773         do not occur.
1774
1775 2000-09-14  Richard Henderson  <rth@cygnus.com>
1776
1777         * calls.c (precompute_register_parameters): Use COSTS_N_INSNS, not 2.
1778         * cse.c (rtx_cost): Likewise.
1779         * optabls.c (expand_binop): Likewise.
1780         (expand_twoval_binop, prepare_cmp_insn): Likewise.
1781         * regclass.c (copy_cost): Likewise.
1782         * reload1.c (reload_cse_move2add): Likewise.
1783
1784 2000-09-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1785
1786         * c-parse.in (reswords): Add _Complex.
1787
1788 2000-09-14  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
1789
1790         * gcc.1: Delete documentation for -undef preprocessor option.
1791
1792 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
1793
1794         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
1795         STARTFILE_SPEC, ENDFILE_SPEC): Remove define.
1796         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
1797         Remove undefine before config/elfos.h.
1798         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Comment out.
1799
1800 2000-09-14  Kazu Hirata  <kazu@hxi.com>
1801
1802         * invoke.texi (H8/300 Options): Add -ms2600.
1803         * config/h8300.c (h8300_init_once): Output an error when -ms2600
1804         is used without -ms.
1805         * config/h8300.h (TARGET_MAC): New.
1806         (TARGET_SWITCHES): Add -ms2600 and -mno-s2600.
1807         (CONDITIONA_REGISTER_USAGE): Disable the mac register on any
1808         machine other than H8/S2600.
1809         * config/h8300.md: Accept mac instructions on the H8/S2600 instead
1810         of the H8/S2000.
1811
1812 2000-09-14  Alexandre Oliva  <aoliva@redhat.com>, Bernd Schmidt  <bernds@redhat.co.uk>
1813
1814         * reload.c (find_reloads_address_1): Generate reloads for auto_inc
1815         pseudos that refer to the original pseudos, not only to their
1816         equivalent memory locations.
1817
1818 Thu Sep 14 12:10:16 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1819
1820         * expr.c (expand_expr, case COMPONENT_EXPR): Copy memory attributes
1821         when making new MEM.
1822
1823         * Makefile.in (LN): Remove duplicate definition.
1824
1825 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1826
1827         From Joern Rennecke:
1828         * local-alloc.c (update_equiv_regs): If there is no REG_EQUAL note
1829         on an insn and function_invariant_p returns nonzero for the source,
1830         add a REG_EQUAL note.
1831
1832 Thu Sep 14 00:51:57 EDT 2000  John Wehle  (john@feith.com)
1833
1834         * alias.c (memrefs_conflict_p): An ADDRESSOF doesn't
1835         conflict with frame_pointer_rtx.
1836
1837 2000-09-13  Kazu Hirata  <kazu@hxi.com>
1838
1839         * loop.c: Fix formatting.
1840         * loop.h: Likewise.
1841
1842 2000-09-13  Richard Henderson  <rth@cygnus.com>
1843
1844         * config/ia64/ia64.md (divsf3): New.
1845         (divsf3_internal_lat, divsf3_internal_thr): New.
1846         (divdf3, divdf3_internal_lat, divdf3_internal_thr): New.
1847         (divtf3, divtf3_internal_lat, divtf3_internal_thr): New.
1848         (adddf3_trunc, subdf3_trunc, muldf3_trunc): New.
1849         (madddf4_trunc, msubdf4_trunc, nmuldf3_trunc): New.
1850         (nmadddf4_alts, nmadddf4_trunc): New.
1851         (addtf3_truncsf, addtf3_truncdf, subtf3_truncsf): New.
1852         (subtf3_truncdf, multf3_truncsf, multf3_truncdf): New.
1853         (multf3_truncsf_alts, multf3_truncdf_alts): New.
1854         (maddtf4_truncsf, maddtf4_truncdf, maddtf4_alts_truncdf): New.
1855         (msubtf4_truncsf, msubtf4_truncdf, nmultf3_truncsf): New.
1856         (nmultf3_truncdf, nmaddtf4_truncsf, nmaddtf4_truncdf): New.
1857         (nmaddtf4_truncdf_alts): New.
1858         (recip_approx): Don't predicate.
1859
1860 2000-09-13  Richard Henderson  <rth@cygnus.com>
1861
1862         * config/ia64/lib1funcs.asm (__divsf3): Protect fnorm.s with p6.
1863
1864 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1865
1866         * flags.h (flag_dump_rtl_in_asm): Declare.
1867         * toplev.c (flag_dump_rtl_in_asm): Define.
1868         (decode_d_option): Set flag_dump_rtl_in_asm and flag_print_asm_name
1869         if -dP is specified.
1870         * rtl.h (print_rtx_head): Declare.
1871         * print-rtl.c (print_rtx_head): Define.
1872         (print_rtx): Print the string pointed to by print_rtx_head
1873         at beginning of each dump line.
1874         (print_rtl): Likewise.
1875         (print_rtl_single): Likewise.
1876         * final.c (final_scan_insn): Dump the insn in the assembly
1877         file for debugging.
1878         * gcc.1: Document -dP option.
1879         * invoke.texi (Debugging Options): Likewise.
1880
1881 2000-09-13  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1882
1883         * md.texi (Machine Constraints): Document the 68HC11 constraints.
1884         * install.texi (Configurations): Document the 68HC11&68HC12 port.
1885         * invoke.texi (Option Summary, M68hc1x Options): Document the options.
1886
1887 Tue Sep 12 13:51:13 2000  Denis Chertykov  <denisc@overta.ru>
1888
1889         * config/avr/avr.h (ASSEMBLER_DIALECT): New macro declared.
1890         * config/avr/avr.md (*movstrqi_insn): Cleanup output template.
1891         (*clrstrqi): Likewise.
1892         (xorhi3,xorsi3,absqi2): Likewise.
1893         (one_cmplhi2,one_cmplsi2): Likewise.
1894         (addsi3): Two stupid constraint alternatives removed.
1895         (extendhisi2): Use `movw' for enhanced avr cores.
1896         (zero_extendhisi2): Likewise.
1897
1898 Wed Sep 13 02:31:23 EDT 2000  John Wehle  (john@feith.com)
1899
1900         * alias.c (find_base_term): Use frame_pointer_rtx
1901         when handling an ADDRESSOF.
1902
1903         * cse.c (canon_hash): Handle USE of BLKmode memory.
1904         (cse_insn): Outgoing arguments for a libcall don't
1905         affect any recorded expressions.
1906
1907 2000-09-12  Tom Tromey  <tromey@cygnus.com>
1908
1909         * configure, config.in: Rebuilt.
1910         * configure.in: Check for iconv, nl_langinfo, langinfo.h.
1911
1912 2000-09-12  Jakub Jelinek  <jakub@redhat.com>
1913
1914         * c-lex.c (lex_string): Use charwidth to compute bytemask.
1915         * expr.c (expand_expr): Don't optimize constant array references
1916         initialized with wide string constants.
1917
1918 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
1919
1920         * loop.c (note_set_pseudo_multiple_uses): Correct.
1921
1922 2000-09-12  Jim Wilson  <wilson@cygnus.com>
1923
1924         * ifcvt.c (noce_process_if_block): If A and B are the same, and no
1925         else block, and X has side-effects, then fail.
1926
1927 2000-09-12  Greg McGary  <greg@mcgary.org>
1928
1929         * config/mips/mips-protos.h
1930         (trap_cmp_op, mips_gen_conditional_trap): New func decls.
1931         * config/mips/mips.h (ISA_HAS_COND_TRAP): New macro.
1932         (PREDICATE_CODES): Add "trap_cmp_op".
1933         * config/mips/mips.c
1934         (trap_cmp_op, mips_gen_conditional_trap): New functions.
1935         * config/mips/mips.md (trap, conditional_trap): New patterns.
1936
1937 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1938
1939         * flow.c (try_pre_increment_1): Don't do anything to sets of the stack
1940         pointer.
1941
1942 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1943
1944         * builtins.c (built_in_decls): New array.
1945         (expand_builtin_fputs): New function.
1946         (expand_builtin): Handle BUILT_IN_FPUTC and BUILT_IN_FPUTS.
1947
1948         * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTS): New members.
1949
1950         * c-common.c (c_common_nodes_and_builtins): Handle fputc/fputs.
1951
1952         * tree.h (built_in_decls): New array.
1953
1954 Tue Sep 12 08:53:57 2000  Jeffrey A Law  (law@cygnus.com)
1955
1956         * convex.md: Use "+" instead of "=" for outputs wrapped in a
1957         STRICT_LOW_PART.
1958         * i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
1959
1960 2000-09-12  Kazu Hirata  <kazu@hxi.com>
1961
1962         * haifa-sched.c: Fix formatting.
1963
1964         * genattrtab.c: Fix formatting.
1965
1966         * unroll.c: Fix formatting.
1967
1968 2000-09-12  Bruce Korb  <bkorb@gnu.org>
1969
1970         * fixinc/fixfixes.c: make a type for the fix procedure & use it,
1971         remove obsolete code
1972         * fixinc/fixincl.c: Use PARAMS, not _P_.  Add no-op default to switch.
1973         * fixinc/fixincl.tpl: make non-exported arrays static scope
1974         * fixinc/fixincl.x: regenerate
1975         * fixinc/fixlib.h: Use PARAMS, not _P_
1976         * fixinc/fixtests.c: make a type for the test proc & use it
1977         * fixinc/server.h: Use PARAMS, not _P_
1978
1979 2000-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1980
1981         * c-typeck.c (process_init_element): Avoid union init warnings on
1982         floating point zero.  Don't crash on unions containing structs.
1983
1984 2000-09-12  Alexandre Oliva  <aoliva@redhat.com>
1985
1986         * config/sh/sh.h (PREDICATE_CODES): Add CONST_DOUBLE to
1987         general_movsrc_operand, and remove CONST_INT from
1988         general_movdst_operand.
1989
1990 2000-09-12  Bernd Schmidt  <bernds@redhat.co.uk>
1991
1992         * cse.c (approx_reg_cost): If SMALL_REGISTER_CLASSES, return INT_MAX
1993         if a reference to non-fixed hardreg is seen.  Otherwise, count hard
1994         regs with a higher cost.
1995         (preferrable): Deal with cases where either cost or regcost is
1996         MAX_COST.
1997         (cse_insn): Use MAX_COST rather than 10000.  Always initialize
1998         regcost values.
1999         (COSTS_N_INSNS): Move definition...
2000         * rtl.h: ...here.
2001         (MAX_COST): New macro.
2002         * loop.c (init_loop): Use COSTS_N_INSNS macro instead of hardcoded
2003         constant.
2004
2005 2000-09-11  Mark Mitchell  <mark@codesourcery.com>
2006
2007         * c-common.h (genrtl_clear_out_block): Remove.
2008         * c-semantics.c (genrtl_clear_out_block): Remove.
2009         (genrtl_while_stmt): Don't call it.
2010         (genrtl_for_stmt): Likewise.
2011
2012 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
2013
2014         * cppfiles.c: Move all default-#defines to top of file.
2015         (open_include_file): Replace by lookup_include_file.
2016         (read_with_read, read_file): Merged into read_include_file.
2017         (stack_include_file, purge_cache): New functions.
2018         (close_cached_fd): Delete.
2019         (lookup_include_file, read_include_file, _cpp_pop_file_buffer):
2020         Cache the in-memory buffer, not the file descriptor.
2021
2022         * cpphash.h (struct include_file): Add buffer, st, refcnt,
2023         mapped fields.
2024         (xcnew): New utility macro.
2025         (DO_NOT_REREAD, NEVER_REREAD): Move up by struct include_file.
2026         * cpplib.h (struct cpp_buffer): Remove mapped field.
2027
2028 2000-09-11  Zack Weinberg  <zack@wolery.cumb.org>
2029
2030         * cpplex.c (parse_string): Accept backslash space newline as a
2031         line continuation.
2032         (lex_line): Likewise.
2033         (_cpp_get_token): Remove hard limit on macro nesting.
2034
2035 2000-09-12  Philipp Thomas  <pthomas@suse.de>
2036
2037         * aclocal.m4 (AM_WITH_NLS): Don't force use of included gettext.
2038         * configure: Rebuilt.
2039
2040 2000-09-13  Michael Hayes  <mhayes@cygnus.com>
2041
2042         * flow.c (split_block): Fix update of registers live at
2043         end of split block.
2044
2045 Tue Sep 12 01:51:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2046
2047         * i386.md (add?i_3, add?i_5): New.
2048         (add?i_4): Rename from add?i_3;  Fix compare pattern.
2049         (sub?i_3, xor?i_3, ior?i_3): New.
2050
2051         * genrecog.c (write_tree): Output code to clear insn_extract cache.
2052         * genattrtab.c (write_attr_case): Gen call to extract_insn_cache
2053         instead of extract_insn and extract_constrain_insn_cache instead of
2054         extract_insn and constrain_operands.
2055         * recog.c (extract_insn_cached, extract_constrain_insn_cached):
2056         New functions.
2057         (extract_insn): Clear which_alternative.
2058         (constrain_operands): Set which_alternative to -1 when failed.
2059         * recog.h (extract_constrain_insn_cached, extract_insn_cached):
2060         Declare.
2061
2062 2000-09-11  Matthew Hiller  <hiller@redhat.com>
2063
2064         * config/h8300/h8300.md (movstrictqi): Changed constraint modifier
2065         on operand 0 to '+'.
2066         (movstricthi): Likewise.
2067
2068 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
2069
2070         * loop.h (LOOP_IVS): New macro.
2071         (REG_IV_TYPE, REG_IV_INFO): Add ivs argument.
2072         (struct loop_ivs): New.
2073         (struct loop_info): Add ivs field.
2074         (reg_iv_type, reg_iv_info): Delete prototype.
2075         (reg_biv_class, loop_iv_list): Likewise.
2076         * loop.c (record_biv, find_life_end): Pass loop argument.
2077         (reg_iv_type): Remove global array and use
2078         field in loop_regs structure within loop_ivs structure.
2079         (reg_iv_info, reg_biv_class, loop_iv_list): Likewise.
2080         (first_increment_giv, last_increment_giv): Use entry in
2081         loop_ivs structure.
2082         (record_initial): Pass ivs pointer.
2083         * unroll.c (copy_loop_body, remap_split_bivs): Add loop argument.
2084
2085 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
2086
2087         * loop.h (LOOP_REGS): New macro.
2088         (struct loop_regs): New.
2089         (struct loop_info): Add regs field.
2090         * loop.c (set_in_loop): Remove global array and store
2091         in loop_regs structure as part of loop_info structure.
2092         (n_times_set, may_not_optimize): Likewise.
2093         (reg_single_usage, moved_once): Likewise.
2094         (count_one_set): Add regs argument.
2095         (combine_movables, rtx_equal_for_loop_p, combine_givs): Likewise.
2096         (set_pseudo_multiple_uses): Pass regs pointer.
2097
2098 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
2099
2100         * unroll.c (iteration_info): Subsume into loop_iterations.
2101         * loop.h (loop_info): New field iv.
2102
2103 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
2104
2105         * basic-block.h (LOOP_TREE, LOOP_PRE_HEADER, LOOP_EDGES): New.
2106         (LOOP_EXITS_DOMS, LOOP_ALL): Likewise.
2107         (flow_loops_update): New prototype.
2108         (flow_loops_find): Add flags to prototype.
2109         (struct loop): Add `pre_header_root' and `pre_header_trace' fields.
2110         * flow.c (flow_loop_pre_header_scan): New.
2111         (flow_loop_dump): Dump pre-header root and trace and exit dominators.
2112         (flow_loop_free): Free pre-header root and trace and exit dominators.
2113         (flow_loops_find): New argument flags.
2114         (flow_loops_update): New function.
2115         * toplev.c (rest_of_compilation): Add flag argument to flow_loops_find.
2116
2117 2000-09-12  Michael Hayes  <mhayes@cygnus.com>
2118
2119         * basic-block.h (split_block, update_bb_for_insn): New prototypes.
2120         * flow.c (split_block, update_bb_for_insn): New functions.
2121
2122 2000-09-11  Richard Henderson  <rth@cygnus.com>
2123
2124         * cse.c (fold_rtx): Honor NO_FUNCTION_CSE.
2125
2126 2000-09-11  Richard Henderson  <rth@cygnus.com>
2127
2128         * config/ia64/ia64-protos.h (fr_nonimmediate_operand): Declare.
2129         * config/ia64/ia64.c (fr_nonimmediate_operand): New.
2130         (ia64_override_options): Prevent optimizing division for both
2131         latency and throughput.
2132         (rtx_needs_barrier): Handle frcpa.
2133         * config/ia64/ia64.h (MASK_INLINE_DIV_LAT): New.
2134         (MASK_INLINE_DIV_THR, TARGET_INLINE_DIV_LAT): New.
2135         (TARGET_INLINE_DIV_THR, TARGET_INLINE_DIV): New.
2136         (TARGET_SWITCHES): Add -minline-divide-min-latency and
2137         -minline-divide-max-throughput.
2138         (PREDICATE_CODES): Update.
2139         * config/ia64/ia64.md (extendsidi2): Remove * from f case.
2140         (zero_extendsidi2): Likewise.  Fix typo in f case insn.
2141         (extendsfdf2): Add cases for gr<->fr and fr<->mem.
2142         (extendsftf2): Likewise.
2143         (extenddftf2): Likewise.
2144         (fix_trunctfdi2_alts): New.
2145         (fixuns_trunctfdi2_alts): New.
2146         (madd*4): Rename from madd*3.
2147         (divsi3, modsi3, udivsi3, umodsi3): New.
2148         (divsi3_internal): New.
2149         (divdi3, moddi3, udivdi3, umoddi3): New.
2150         (divdi3_internal_lat, divdi3_internal_thr): New.
2151         (multf3_alts, maddtf4_alts, nmaddtf4_alts): New.
2152         (recip_approx): New.
2153
2154 2000-09-11  Alexandre Oliva  <aoliva@redhat.com>
2155
2156         * print-rtl.c (debug_call_placeholder_verbose): New variable.
2157         (print_rtx) [CALL_PLACEHOLDER]: Dump all call sequences if it is
2158         set.
2159         * integrate.c (copy_rtx_and_substitute): Don't share
2160         LEAF_REG_REMAPpable registers with the inlined function.  Don't
2161         share the function value with calling sequences.
2162
2163 2000-09-11  Jakub Jelinek  <jakub@redhat.com>
2164
2165         * c-decl.c (do_case): Fix a typo.
2166
2167         * combine.c (simplify_if_then_else): Don't convert a == b ? b : a
2168         to a if the comparison is floating mode and not -ffast-math.
2169         * simplify-rtx.c (simplify_ternary_operation): Likewise.
2170
2171 Mon Sep 11 20:07:48 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2172
2173         * sh.h (INITIALIZE_TRAMPOLINE): Remove stray call to
2174         gen_ic_invalidate_line.
2175
2176 2000-09-11  Philip Blundell  <pb@futuretv.com>
2177
2178         * config/arm/elf.h (SUBTARGET_CPP_SPEC): Don't define `arm_elf'.
2179
2180 Mon Sep 11 10:48:41 2000  Ulrich Drepper <drepper@redhat.com>
2181
2182         * install.texi (LANGUAGES): Update to include new languages.
2183         * INSTALL: Rebuilt.
2184
2185 2000-09-11  DJ Delorie  <dj@redhat.com>
2186
2187         * gcc.c (main): Don't warn about unused -B prefixes
2188         (unused_prefix_warnings): remove
2189
2190 2000-09-11  Kazu Hirata  <kazu@hxi.com>
2191
2192         * final.c: Fix formatting.
2193
2194         * integrate.c: Fix formatting.
2195
2196 2000-09-11  Geoff Keating  <geoffk@cygnus.com>
2197
2198         * alias.c (memrefs_conflict_p): An ADDRESSOF does conflict, sorry.
2199
2200 2000-09-11  Bernd Schmidt  <bernds@redhat.co.uk>
2201
2202         * reload.c (regno_clobbered_p): Fix thinko in previous change.
2203
2204 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2205
2206         * gcc.1: Document 68hc11 specific options.
2207
2208 2000-09-10  Geoff Keating  <geoffk@cygnus.com>
2209
2210         * config/rs6000/sysv4.h (MASK_LONG_DOUBLE_128): Define.
2211         (TARGET_LONG_DOUBLE_128): Define.
2212         (SUBTARGET_SWITCHES): Add -mlong-double-64 and -mlong-double-128.
2213         (LONG_DOUBLE_TYPE_SIZE): Redefine.
2214         (MAX_LONG_DOUBLE_TYPE_SIZE): Define.
2215         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on definition
2216         of __LONG_DOUBLE_128__.
2217         (CPP_SYSV_SPEC): Define __LONG_DOUBLE_128__ if -mlong-double-128
2218         passed.
2219         (CPP_LONGDOUBLE_DEFAULT_SPEC): Define.
2220         (CPP_SYSV_DEFAULT_SPEC): Define.
2221         (SUBTARGET_EXTRA_SPECS): Add cpp_longdouble_default.
2222         (INIT_TARGET_OPTABS): Define.
2223
2224         * config/rs6000/aix.h (RS6000_ITRUNC): Moved from rs6000.h.
2225         (RS6000_UITRUNC): Likewise.
2226         (INIT_TARGET_OPTABS): New macro.
2227         * config/rs6000/rs6000.c (rs6000_trunc_used): Delete.
2228         (trunc_defined): Delete.
2229         (output_prolog): Don't output .extern definitions for fp->int
2230         conversion routines, ASM_OUTPUT_EXTERNAL_LIBCALL will do it.
2231         * config/rs6000/rs6000.h (rs6000_trunc_used): Delete.
2232         (trunc_defined): Delete.
2233         (RS6000_ITRUNC): Moved to aix.h.
2234         (RS6000_UITRUNC): Likewise.
2235         * config/rs6000/rs6000.md (fix_truncdfsi2): Fail if it would
2236         only emit a libcall.
2237         (fixuns_truncdfsi2): Delete.
2238         (trunc_call): Delete.
2239         (trunc_call_rtl): Delete.
2240
2241 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
2242
2243         * varasm.c (make_decl_rtl): Restore leading star on
2244         DECL_ASSEMBLER_NAME set for decls with an asmspec.
2245
2246 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
2247
2248         * c-pragma.c (handle_pragma_pack): Correct parsing logic so it
2249         won't give a spurious error for '#pragma pack()'.  Simplify
2250         control flow for readability.  'reset' action is not necessary.
2251
2252 2000-09-10  Zack Weinberg  <zack@wolery.cumb.org>
2253
2254         * defaults.h: Provide default definitions for: CHAR_TYPE_SIZE,
2255         SHORT_TYPE_SIZE, INT_TYPE_SIZE, LONG_TYPE_SIZE,
2256         LONG_LONG_TYPE_SIZE, WCHAR_TYPE_SIZE, FLOAT_TYPE_SIZE,
2257         DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE, and WCHAR_UNSIGNED.
2258
2259         * cppexp.c, dwarfout.c, dwarf2out.c, emit-rtl.c, final.c, optabs.c,
2260         profile.c, sdbout.c, tradcif.y, tree.c:
2261         Include defaults.h if not already included.
2262         Don't define the above macros.
2263
2264         * Makefile.in: Update dependencies.
2265
2266 2000-09-10  Mark Mitchell  <mark@codesourcery.com>
2267
2268         * c-common.h (add_stmt): Change prototype.
2269         (RECHAIN_STMTS): New macro.
2270         (CASE_LABEL_DECL): Likewise.
2271         (genrtl_case_label): Change prototype.
2272         (c_expand_start_case): Remove prototype.
2273         (build_case_label): Change prototype.
2274         (decl_constant_value): Declare.
2275         * c-common.c (check_case_value): Handle C++'s extensions to C
2276         semantics.
2277         * c-commnon.def (CASE_LABEL): Add room for the CASE_LABEL_DECL
2278         field.
2279         * c-parse.in (stmt): Adjust handling of return statements and case
2280         laels.
2281         * c-semantics.c (add_stmt): Return the new statement.
2282         (genrtl_return_stmt): Take the RETURN_STMT as input, not the
2283         returned expression.  Directly generate RTL, rather than calling
2284         c_expand_return.
2285         (genrtl_switch_stmt): Don't call c_expand_start_case.
2286         (build_case_label): Take the LABEL_DECL as input, too.
2287         (genrtl_case_label): Just call add_case_node.
2288         (expand_stmt): Adjust calls to genrtl_return_stmt and
2289         genrtl_case_label.
2290         * c-tree.h (c_expand_start_case): Declare.
2291         * c-typeck.c (decl_constant_value): Give it external linkage.
2292         (c_expand_return): Don't call expand_return or expand_null_return;
2293         use genrtl_return_stmt instead.
2294         * stmt.c (struct nesting): Remove num_ranges field.
2295         (add_case_node): Give it external linkage.
2296         (expand_start_case): Don't set num_ranges.
2297         (expand_start_case_dummy): Don't clear it.
2298         (pushcase): Rely on add_case_node to handle `default' labels.
2299         (add_case_node): Handle `default' labels.
2300         * tree.c (tree_int_cst_compare): New function.
2301         * tree.h (tree_int_cst_compare): Declare.
2302         (add_case_node): Likewise.
2303
2304 2000-09-10  Richard Henderson  <rth@cygnus.com>
2305
2306         * c-parse.in: Revert last change.
2307         (init_reswords): Do not enter disabled keywords into the ridpointers
2308         table, modulo objc weirdness.
2309         (_yylex): Return the canonical spelling for a keyword.
2310
2311 2000-09-10  Philip Blundell  <philb@gnu.org>
2312
2313         * config/arm/arm.h (CPP_ISA_SPEC): Don't define `arm' or `thumb'.
2314         * config/arm/linux-elf.h (CPP_PREDEFINES): Don't define `__arm__'.
2315
2316 Sun Sep 10 14:30:28 EDT 2000  John Wehle  (john@feith.com)
2317
2318         * alias.c (find_base_term): Handle ADDRESSOF.
2319         (memrefs_conflict_p): An ADDRESSOF doesn't conflict.
2320
2321 2000-09-10  Denis Chertykov  <denisc@overta.ru>
2322
2323         * genoutput.c (output_insn_data): Translate <NEWLINE> to \n\ while
2324         outputting templates with many lines.
2325
2326 2000-09-10  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2327
2328         * libgcc2.h: Use LONG_LONG_TYPE_SIZE instead of MIN_UNITS_PER_WORD
2329         to decide whether 64-bit support must be generated.
2330
2331 2000-09-10  Richard Henderson  <rth@cygnus.com>
2332
2333         * c-parse.in (asm patterns): Fix volatile check.
2334
2335 2000-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2336
2337         * cppmacro.c (check_trad_stringification): New function.
2338         (save_expansion): If -Wtraditional, warn about stringification of
2339         macro arguments.
2340
2341 2000-09-11  Michael Hayes  <mhayes@cygnus.com>
2342
2343         * loop.h (struct loop_mem_info): Move from loop.c
2344         (struct loop_info): Add fields store_mems, mems, mems_idx,
2345         mems_allocated, unknown_address_altered,
2346         unknown_constant_address_altered, num_mem_sets, and
2347         first_loop_store_insn.
2348
2349         * loop.c (loop_store_mems): Replace with field in loop_info struct.
2350         (loop_mems, loop_mems_idx, loop_mems_allocated): Likewise.
2351         (unknown_address_altered, unknown_constant_address_altered): Likewise.
2352         (num_mem_sets): Likewise.
2353         (replace_loop_mems, replace_loop_regs): New.
2354         (struct loop_replace_args): New.
2355         (load_mems): Use replace_loop_mems.
2356         (try_copy_prop): Use replace_loop_regs.
2357         (replace_loop_reg, replace_loop_mem): Use loop_replace_args structure.
2358
2359 2000-09-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2360
2361         * configure.in: Recognize m6811-elf and m6812-elf.
2362         * configure: Regenerate.
2363
2364 2000-09-09  Geoff Keating  <geoffk@cygnus.com>
2365
2366         * recog.c (validate_replace_rtx_1): Correct MODE parameter in call
2367         to operand_subword.
2368
2369 2000-09-10  Michael Hayes  <mhayes@cygnus.com>
2370
2371         * loop.c (struct movables): New.
2372         (num_movables): Move into struct movables.
2373         (the_movables): Change type to struct movables.
2374         (ignore_some_movables): Change struct movable arg to struct movables.
2375         (force_movables, combine_movables, regs_match_p): Likewise.
2376         (rtx_equal_for_loop_p, move_movables): Likewise.
2377         (scan_loop): Change movables to be of type struct movables.
2378         Replace last_movable with field in movables structure.
2379
2380 2000-09-08  Zack Weinberg  <zack@wolery.cumb.org>
2381
2382         * c-pragma.c: Don't elide entire file if !HANDLE_GENERIC_PRAGMAS.
2383         (init_pragma): Avoid warning if pfile happens to be unused.
2384         * c-pragma.h: Never define HANDLE_GENERIC_PRAGMAS.  Never
2385         define init_pragma to nothing.  Always prototype
2386         init_pragma.  Prototype dispatch_pragma if !USE_CPPLIB.
2387
2388         * c-lex.c (process_directive): Always call dispatch_pragma.
2389         Initialize entering_c_header to 0.
2390
2391 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2392
2393         * config/m68hc11/m68hc11.md: New file, machine description for
2394         68HC11 & 68HC12.
2395         * config/m68hc11/m68hc11.h: New file, definitions for 68HC11 & 68HC12.
2396         * config/m68hc11/m68hc11.c: New file, functions for 68HC11 & 68HC12.
2397         * config/m68hc11/m68hc12.h: New file, definitions for 68HC12.
2398         * config/m68hc11/m68hc11-protos.h: New file.
2399         * config/m68hc11/m68hc11-crt0.S: New file, startup code.
2400         * config/m68hc11/t-m68hc11-gas: New file, makefile fragment.
2401         * config/m68hc11/xm-m68hc11.h: New file, target defs.
2402         * config/m68hc11/larith.asm: New file, libgcc routines.
2403
2404 2000-09-08  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2405
2406         * Makefile.in (DPBIT_FUNCS): Add _usi_to_df.
2407         (FPBIT_FUNCS): Add _usi_to_sf.
2408         * config/fp-bit.c (usi_to_float): New function.
2409         * config/fp-bit.h (L_usi_to_sf, L_usi_to_df): Define.
2410         (usi_to_float): Add appropriate #define.
2411
2412 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
2413
2414         * i386-protos.h (sse_comparison_operator, mmx_reg_operand): Declare
2415         new functions.
2416         * i386.c (sse_comparison_operator, mmx_reg_operand): New functions.
2417         * i386.md (attr "type"): Add sse and mmx types.
2418         (attr "memory"): Handle them without a crash.
2419         (movsi_1, movdi_2): Allow MMX regs.
2420         (movdi splits): Don't split moves involving MMX regs.
2421         (setcc_4): Remove '*' from pattern name so we get a gen_setcc4.
2422         (movv4sf_internal, movv4si_internal, movv8qi_internal,
2423         movv4hi_internal, movv2si_internal, movv8qi, movv4hi, movv2si,
2424         movv4sf, movv4si, pushv4sf, pushv4si, pushv8qi, pushv4hi, pushv2si,
2425         sse_movaps, sse_movups, sse_movmskps, mmx_pmovmskb, mmx_maskmovq,
2426         sse_movntv4sf, sse_movntdi, sse_movhlps, sse_movlhps, sse_movhps,
2427         sse_movlps, sse_loadss, sse_movss, sse_storess, sse_shufps,
2428         addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, mulv4sf3, vmmulv4sf3,
2429         divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2, rsqrtv4sf2, vmrsqrtv4sf2,
2430         sqrtv4sf2, vmsqrtv4sf2, sse_andti3, sse_nandti3, sse_iorti3,
2431         sse_xorti3, maskcmpv4sf3, maskncmpv4sf3, vmmaskcmpv4sf3,
2432         vmmaskncmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
2433         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
2434         cvttps2pi, cvtsi2ss, cvtss2si, cvttss2si, addv8qi3, addv4hi3,
2435         addv2si3, ssaddv8qi3, ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3,
2436         subv4hi3, subv2si3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
2437         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
2438         mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3, mmx_uavgv8qi3,
2439         mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, mmx_pshufw,
2440         eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3, gtv2si3, umaxv8qi3,
2441         smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3, ashrv2si3, lshrv4hi3,
2442         lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3, mmx_ashldi3,
2443         mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
2444         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
2445         mmx_punpckldq, emms, sfence, ldmxcsr, prefetch, stmxcsr, sse_clrti,
2446         mmx_clrdi): New patterns.
2447
2448 2000-09-08  Richard Earnshaw  <rearnsha@arm.com>
2449
2450         * arm.c: Don't include tm.h directly.
2451
2452 Fri Sep  8 14:34:56 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2453
2454         * recog.c (validate_replace_rtx_1): Fix confusion about equality
2455         testing; simplify subregs of constants and nested subregs.
2456
2457 2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
2458
2459         * config/sh/sh.md (symPLT_label2reg): Use operand3 for PIC reg.
2460
2461 2000-09-08  Bernd Schmidt  <bernds@redhat.co.uk>
2462
2463         * combine.c (combine_simplify_rtx): Try to simplify VEC_SELECT of a
2464         VEC_CONCAT.
2465         * rtl.texi (description of USE): Add note about possible pitfalls
2466         with this rtx.
2467         From Richard Henderson:
2468         * reload1.c (choose_reload_regs): Compute need_mode properly.
2469
2470 2000-09-07  Richard Henderson  <rth@cygnus.com>
2471
2472         * config/ia64/lib1funcs.asm (__divsi3): Use .s1 for frcpa.
2473         (__modsi3, __umodsi3): Likewise.
2474         (__udivsi3): Likewise.  Normalize the TFmode values.
2475
2476 2000-09-07  Geoff Keating  <geoffk@cygnus.com>
2477
2478         * config/rs6000/sol-c0.c (_start): Declare `termfunc' parameter
2479         with a prototype.
2480         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Use cast to suppress
2481         warning.
2482
2483 Fri Sep  8 03:26:38 2000  J"orn Rennecke <amylaar@redhat.co.uk>
2484
2485         * sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): Remove.
2486         (cmpeqdi_t): Add output pattern.
2487         (cmpeqdi_t+1): Don't split when not optimizing.
2488         Restore proper splitting operation.
2489
2490 2000-09-07  Richard Henderson  <rth@cygnus.com>
2491
2492         * c-lex.c (process_directive): If not HANDLE_GENERIC_PRAGMAS,
2493         do not call dispatch_pragma.
2494
2495 2000-09-07  Jim Wilson  <wilson@cygnus.com>
2496
2497         * reload.c (push_reload): Use CLASS_CANNOT_CHANGE_MODE_P in addition
2498         to CLASS_CANNOT_CHANGE_MODE.
2499         * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE_P): True only if the
2500         mode classes are different.
2501
2502 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
2503
2504         * cpplib.h (struct cpp_options): Add user_label_prefix member,
2505         left out of commit which removed cppulp.c.
2506
2507 2000-09-07  Richard Henderson  <rth@cygnus.com>
2508
2509         * bb-reorder.c (fixup_reorder_chain): Add jump in new block
2510         after switch for CASE_DROPS_THROUGH.
2511
2512 2000-09-07  Richard Henderson  <rth@cygnus.com>
2513
2514         * loop.c (strength_reduce): Call check_ext_dependant_givs.
2515         Properly extend the biv initial value for the giv.
2516         (record_biv): Zero ext_dependant.
2517         (record_giv): New argument ext_val.  Update all callers.
2518         (general_induction_var): Likewise.
2519         (consec_sets_giv): Likewise.
2520         (simplify_giv_expr): Likewise.  Fill in ext_val if we find
2521         a sign-extend, zero-extend, or truncate.
2522         (combine_givs_p): Make sure modes are compatible.
2523         (check_ext_dependant_givs): New.
2524         (extend_value_for_giv): New.
2525         * loop.h (struct induction): Add ext_dependant.
2526         * unroll.c (iteration_info): Extend the biv initial value for the giv.
2527         (find_splittable_givs): Likewise.
2528         (final_giv_value): Likewise.
2529
2530 2000-09-07  Zack Weinberg  <zack@wolery.cumb.org>
2531
2532         * c-pragma.h: Define HANDLE_GENERIC_PRAGMAS if
2533         REGISTER_TARGET_PRAGMAS is defined.  Duplicate some
2534         definitions from cpplib.h.
2535         * cpplib.h: Don't typedef struct cpp_reader if c-pragma.h has
2536         already done it.
2537         * tm.texi: Document HANDLE_PRAGMA as no longer supported.  Add
2538         documentation for REGISTER_TARGET_PRAGMAS.
2539
2540         * c-lex.c: Include cpplib.h before c-pragma.h.  Define a
2541         default-pragma callback to implement -Wunknown-pragmas if
2542         USE_CPPLIB.
2543         * c-parse.in: Move all includes to top of file.
2544         * c-pragma.c: Include cpplib.h before c-pragma.h.  Include
2545         tm_p.h.
2546         (dispatch_pragma): Put the namespace in the -Wunknown-pragmas
2547         warning.
2548         (init_pragma): If REGISTER_TARGET_PRAGMAS is defined, call it.
2549
2550         * arm.h, arm-protos.h, arm.c,
2551           c4x.h, c4x-protos.h, c4x.c,
2552           h8300.h, h8300-protos.h, h8300.c,
2553           i370.h, i370-protos.h, i370.c,
2554           i960.h, i960-protos.h, i960.c,
2555           sh.h, sh-protos.h, sh.c,
2556           v850.h, v850-protos.h, v850.c: Convert HANDLE_PRAGMA-based
2557         pragmata scheme to use REGISTER_TARGET_PRAGMAS instead.
2558
2559         * d30v.h: Don't mention HANDLE_PRAGMA in comment.  Add
2560         multiple include guard.
2561         * i370.md (untyped_call): Use GEN_CALL.
2562         (umodsi3): Remove unused variable.
2563         * sh/elf.h: Don't undef HANDLE_SYSV_PRAGMA.
2564         * v850.c (output_move_single, output_move_double): Constify
2565         return value.
2566         (print_operand): Constify a char *.
2567         * v850.h (struct small_memory_info): Constify name member.
2568
2569 2000-09-07  Kazu Hirata  <kazu@hxi.com>
2570
2571         * config/h8300.h: Fix comment typos.
2572         * config/h8300/h8300.md: Likewise.
2573         * config/h8300/lib1funcs.asm: Likewise.
2574
2575 Thu 07-Sep-2000 21:29:00 BST  Neil Booth  <NeilB@earthling.net>
2576
2577         * Makefile.in: Remove references to cppulp.{c,o}.
2578         * cppinit.c (initialize_builtins, cpp_start_read,
2579         cpp_handle_option): Update to use cpp_options structure.
2580         * cppulp.c: Remove.
2581
2582 2000-09-07  Joseph S. Myers  <jsm28@cam.ac.uk>
2583
2584         * c-common.c (time_char_table): Allow %#b and %#h.
2585
2586 2000-09-07 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2587
2588         * reorg.c (find_end_label): If the basic block reorder pass moves the
2589         return insn to some other place try to locate it again and put our
2590         end_of_function_label there.
2591         * reorg.c (relax_delay_slots): Check if find_end_label created a
2592         new label that invalidates the current optimazation.
2593
2594 2000-09-07  Catherine Moore  <clm@redhat.com>
2595
2596         * unroll.c (unroll_loop): Check for unconditional jumps
2597         to loop continuation.  Delete if n_iterations is 1.
2598         (ujump_to_loop_cont): New routine.
2599
2600 2000-09-07  Bernd Schmidt  <bernds@redhat.co.uk>
2601
2602         * rtl.c (class_narrowest_mode): Add entries for MODE_VECTOR_INT and
2603         MODE_VECTOR_FLOAT.
2604         * reload.c (regno_clobbered_p): Accept new arg, MODE, and use it
2605         to handle multiword modes correctly.  All callers and the declaration
2606         changed.
2607
2608 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2609
2610         * c-common.h (prep_stmt): Declare.
2611         (lang_expand_stmt): Likewise.
2612         * c-decl.c (lang_expand_stmt): Remove.
2613         * c-semantics.c (lang_expand_stmt): Define.
2614         (prep_stmt): New function.
2615         (expand_stmt): Handle common statement types here.
2616
2617 2000-09-07  Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>, Alexandre Oliva  <aoliva@redhat.com>
2618
2619         * configure.in (sh-*-linux*): Added.
2620         * configure: Rebuilt.
2621         * config/sh/t-linux: New file.
2622         * config/sh/sh.h (USERMODE_BIT): Define.
2623         (TARGET_USERMODE): Likewise.
2624         (TARGET_SWITCHES): New switches for the bits above.
2625         (INITIALIZE_TRAMPOLINE): Call __ic_invalidate in USERMODE.
2626         * config/sh/linux.h: New file.
2627         * config/sh/lib1funcs.asm (GLOBAL): Don't prefix symbols with
2628         underscore on linux.
2629         (L_sdivsi3, L_udivsi3): Define for linux.
2630         (L_ic_invalidate): Define.
2631         * invoke.texi (SH Options): Document -musermode.
2632
2633 2000-09-07  Alexandre Oliva  <aoliva@redhat.com>
2634
2635         * config/sh/sh.h (OVERRIDE_OPTIONS): Don't disable function
2636         CSE unless generating PIC.
2637
2638         * config/sh/sh.md (symPLT_label2reg): Force the initialization of
2639         the PIC register.
2640
2641 2000-09-06  H.J. Lu  (hjl@gnu.org)
2642
2643         * Makefile.in (clean_s1): Depend on stage_b.
2644         (clean_s2): Depend on stage_d. Don't remove $(VOL_FILES) in
2645         stage2. They are used for "make compare".
2646
2647 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2648
2649         Move statement-tree facilities from C++ to C front-end.
2650         * c-common.h (c_tree_index): Add CTI_VOID_ZERO.
2651         (void_zero_node): New macro.
2652         (struct stmt_tree_s): New type.
2653         (stmt_tree): New typedef.
2654         (struct language_function): New type.
2655         (last_tree): New macro.
2656         (last_expr_type): Likewise.
2657         (walk_tree_fn): New typedef.
2658         (current_stmt_tree): New function.
2659         (begin_stmt_tree): Likewise.
2660         (add_stmt): Likewise.
2661         (finish_stmt_tree): Likewise.
2662         (statement_code_p): Likewise.
2663         (lang_statement_code_p): New variable.
2664         (walk_stmt_tree): New function.
2665         (STMT_IS_FULL_EXPR_P): New macro.
2666         * c-common.c (lang_statement_code_p): New variable.
2667         (c_common_nodes_and_builtins): Initialize void_zero_node.
2668         (statement_code_p): New function.
2669         (walk_stmt_tree): Likewise.
2670         * c-decl.c (language_function): Rename to ...
2671         (c_language_function): ... this.  Include language_function.
2672         (push_c_function_context): Adjust accordingly.
2673         (pop_c_function_context): Likewise.
2674         (mark_c_function_context): Likewise.
2675         (current_stmt_tree): Define.
2676         * c-semantics.c (begin_stmt_tree): New function.
2677         (add_stmt): Likewise.
2678         (prune_unused_decls): Likewise.
2679         (finish_stmt_tree): Likewise.
2680
2681 2000-09-06 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2682
2683         * flow.c (insn_dead_p): Detect dead memory stores with auto increments.
2684
2685 2000-09-06  Kazu Hirata  <kazu@hxi.com>
2686
2687         * calls.c: Fix formatting.
2688
2689 2000-09-06  Graham Stott  <grahams@cygnus.co.uk>
2690
2691         * config/i386/i386.h (ADDRESS_COST): Fix typo.
2692
2693 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2694
2695         Integrated preprocessor.
2696
2697         * Makefile.in: Remove all references to c-parse.gperf,
2698         c-gperf.h, and c-parse.h.  Remove -d from yacc command line
2699         generating c-parse.c.  Update dependencies.
2700         * c-parse.gperf, c-gperf.h: Delete.
2701
2702         * c-common.c: Don't define parse_options, cpp_token, yy_cur,
2703         yy_lim, or yy_get_token.  Don't define get_directive_line if
2704         USE_CPPLIB.
2705         * c-common.h: Add multiple include guard.  Define RID values
2706         for every keyword in C, C++, and Objective C.  Put all the
2707         modifiers first.
2708         (struct c_fileinfo, get_fileinfo, dump_time_statistics): New.
2709         * c-decl.c (c_decode_option): Handle -lang-objc here.
2710         (print_lang_identifier): Handle C_IS_RESERVED_WORD case.
2711         (grokdeclarator): Adjust for new RID scheme.
2712         (extract_interface_info): New stub.
2713         * c-lang.c: Don't declare yy_cur or parse_options.
2714         (lang_init_options): Call cpp_init.  Don't call
2715         cpp_options_init.
2716         (lang_init): Don't call check_newline if USE_CPPLIB.
2717
2718         * c-lex.c: Don't include c-parse.h.  Do include timevar.h.
2719         Elide lots of unnecessary code if USE_CPPLIB.  Delete code
2720         rendered unnecessary by new architecture.  Move routines not
2721         shared with C++ to c-parse.in.  Maintain a local idea of the
2722         line number.    Handle C++ as well as C.
2723         [USE_CPPLIB]: Declare and register callbacks for #ident and
2724         for entering/leaving files.
2725         (init_c_lex, c_lex): Are now the entry points to this file.
2726         (check_newline): Break out directive handling to
2727         process_directive.
2728         (read_ucs, is_extended_char, utf8_extend_token): Moved here
2729         from C++ front end.
2730         (readescape, parse_float): Overhaul.
2731         (lex_number, lex_string, lex_charconst): Break out of c_lex
2732         (n'ee yylex).
2733         (get_fileinfo, update_header_times, dump_one_header,
2734         dump_time_statistics): New and/or moved here from C++.
2735         Support per-file data needed by C++ and per-header timing
2736         statistics (C++ only, at the moment).
2737         * c-lex.h: Update prototypes.  Add multiple include guard.
2738         * c-tree.h (struct lang_identifier): Add rid_code field.
2739         (C_IS_RESERVED_WORD, C_RID_CODE): New.
2740
2741         * c-parse.in: Include c-pragma.h. Remove unnecesary calls to
2742         reinit_parse_for_function and/or position_after_white_space.
2743         (save_filename, save_lineno): Look ahead before saving.
2744         (label -> identifier ':'): Save file and line before shifting ':'.
2745         (reservedwords): No need to call get_identifier.
2746         (init_parse, finish_parse, yyerror, yylex, yyprint,
2747         make_pointer_declarator): Are now here for C/ObjC.
2748         (rid_to_yy): Conversion table from RID constants to Yacc codes.
2749
2750         * c-pragma.c: Rewrite parsing logic to fit with cpplib's
2751         #pragma registry.  Provide dummy implementation of that
2752         interface if !USE_CPPLIB.
2753         * c-pragma.h: Update to match.
2754
2755         * flags.h: Add multiple include guard.
2756         (flag_detailed_statistics): Moved here from C++.
2757         * toplev.c: Define flag_detailed_statistics.
2758
2759         * gcc.c (C specs): Use %(trad_capable_cpp) for -E|-M|-MM case
2760         #if USE_CPPLIB.
2761         * timevar.def (TV_CPP, TV_LEX): New.
2762         * timevar.h: Add multiple include guard.
2763
2764         * objc/lang-specs.h: Use %(trad_capable_cpp) for -E|-M|-MM case
2765         #if USE_CPPLIB.
2766         * objc/objc-act.c: Don't mention yy_cur or parse_options.
2767         Initialize cpplib properly.  Force lineno to 0 after first
2768         call to check_newline.  Don't handle -lang-objc here.
2769         Move forget_protocol_qualifiers and remember_protocol_qualifiers here.
2770
2771 2000-09-06  David Edelsohn  <edelsohn@gnu.org>
2772
2773         * rs6000.md: Correct function unit definitions for cr_logical and
2774         mtjmpr.
2775         (sCOND): Additionally fail for sgt, slt, sge, sle if !TARGET_POWER
2776         and use portable method for >=0 and floating point >=.  Remove
2777         associated matchers.
2778
2779 2000-09-06  Mark Mitchell  <mark@codesourcery.com>
2780
2781         * extend.texi: Mark named return value extension as deprecated.
2782
2783 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
2784
2785         * config/rs6000/rs6000.c (rs6000_reverse_condition): Return
2786         the result.
2787
2788 2000-09-06  Gabriel Dos Reis  <gdr@codesourcery.com>
2789
2790         * toplev.c (display_help): Fix thinko in documentation.
2791
2792         * diagnostic.h (output_buffer::indent_skip): New fields.
2793         (output_indentation): New macro.
2794
2795         * diagnostic.c (output_indent): New function.
2796         (output_set_prefix, clear_diagnostic_info): Use.
2797         (output_emit_prefix): Predict future indentation.
2798
2799 2000-09-06  DJ Delorie  <dj@redhat.com>
2800
2801         * Makefile.in (stage_*): add more dependencies to ensure parallel
2802         builds build correctly
2803
2804 2000-09-06  Manfred Hollstein  <manfredh@redhat.com>
2805
2806         * Makefile.in (bootstrap-lean): Depend on bootstrap-lean_g,
2807         not bootstrap-lean_f.
2808
2809 2000-09-06  Andreas Schwab  <schwab@suse.de>
2810
2811         * mklibgcc.in: Emit rule for libgcc-stage-start.
2812         * Makefile.in (stage1-start, stage2-start, stage3-start,
2813         stage4-start): Don't handle libgcc here, use libgcc.mk instead.
2814
2815 2000-09-06  Bernd Schmidt  <bernds@redhat.co.uk>
2816
2817         * local-alloc.c (local_alloc): Ignore CLASS_LIKELY_SPILLED.
2818         (update_equiv_regs): Likewise, except for the mn10200 kludge.
2819         (combine_regs): Likewise.
2820
2821         * Makefile.in (cse.o): Depend on $(BASIC_BLOCK_H).
2822         * cse.c: Include "basic-block.h".
2823         (struct table_elt): New field REGCOST.
2824         (CHEAP_REG): Delete macro.
2825         (COST): Return 0 for REGs.
2826         (approx_reg_cost_1, approx_reg_cost, preferrable): New functions.
2827         (notreg_cost): Return 0 for appropriate SUBREGs.
2828         (COSTS_N_INSNS): Return N * 2.
2829         (rtx_cost): Return 0 for REGs, and use cost of nested rtx for cheap
2830         SUBREGs.
2831         (CHEAPER): Use new function preferrable.
2832         (insert): Initialize REGCOST member.
2833         (find_best_addr): Use approx_reg_cost for estimation of register
2834         usage.
2835         (cse_insn): Likewise.
2836         * loop.c (iv_add_mult_cost): New function.
2837         (add_cost, shift_cost, mult_cost): Delete variables.
2838         (init_loop): Don't initialize add_cost; reduce copy_cost by half.
2839         (strength_reduce): Use iv_add_mult_cost instead of fixed add_cost.
2840         Make code that detects autoinc opportunities slightly less optimistic.
2841         (simplify_giv_expr): If expression contains other reg that is also a
2842         giv, only increment benefit if this is the only use of that reg.
2843         (consec_sets_giv): Take that change into account.
2844         (combine_givs): Slightly more verbose output.
2845
2846         * i386.h (RTX_COSTS): For MULT, return true cost of multiplication,
2847         not the cost of an equivalent shift.
2848         * sh-protos.h (addsubcosts): Declare.
2849         * sh.c (addsubcosts): New function.
2850         * sh.h (CONST_COSTS): If CONST_OK_FOR_I, then return 0.
2851         (RTX_COSTS): Tweak.  Use addsubcosts.
2852         (ADDRESS_COST): Return higher cost for reg+reg addressing.
2853
2854 2000-09-06  Geoff Keating  <geoffk@cygnus.com>
2855
2856         * config/rs6000/rs6000.c (validate_condition_mode): New function.
2857         (branch_comparison_operator): Call validate_condition_mode to
2858         abort rather than returning 0.
2859         (branch_positive_comparison_operator): New function.
2860         (scc_comparison_operator): Call validate_condition_mode to abort
2861         rather than returning 0.
2862         (ccr_bit): Call validate_condition_mode.  Update for
2863         new branch scheme.
2864         (print_operand): Delete %C modifier.  Update %E case
2865         to use EQ bit not SO bit.
2866         (rs6000_reverse_condition): New function.
2867         (rs6000_generate_compare): New function.
2868         (rs6000_emit_sCOND): New function.
2869         (rs6000_emit_cbranch): New function.
2870         (output_cbranch): The length of a long branch insn is
2871         now only 8 bytes.  Add validate_condition_mode.  Use
2872         rs6000_reverse_condition.  Remove cror generation.
2873
2874         * config/rs6000/rs6000.h: Update comments.
2875         (PREDICATE_CODES): Add new predicate.  Update codes used
2876         by branch_comparison_operator and scc_comparison_operator.
2877         * config/rs6000/rs6000-protos.h: Add prototypes for
2878         new external functions.
2879         * config/rs6000/rs6000.md: Add new scheduling parameters
2880         for cr_logical instructions.  Change length of branch
2881         instructions.
2882         (bCOND patterns): Call rs6000_emit_cbranch.
2883         (sCOND patterns): Call rs6000_emit_sCOND.
2884         (branch patterns): Change lengths to 4.
2885         (cr logical patterns): New.
2886
2887 2000-09-06  Richard Henderson  <rth@cygnus.com>
2888
2889         * config/i386/i386.md (call_pop): Fix test for setting
2890         current_function_uses_pic_offset_table.
2891         (call, call_value_pop, call_value): Likewise.
2892
2893 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2894
2895         * timevar.c (timevar_add): Delete.
2896         (timevar_get): Also count time since the selected timer was
2897         last updated.  Do not examine the timevar stack if the
2898         selected timer is standalone.
2899
2900 2000-09-05  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
2901
2902         * gthr-dce.h (__gthread_objc_mutex_deallocate): Free mutex->backend.
2903
2904 2000-09-05  Jason Merrill  <jason@redhat.com>
2905
2906         * c-decl.c (finish_incomplete_decl): Don't call complete_array_type
2907         for 'extern' arrays.
2908
2909 2000-09-05  Richard Henderson  <rth@cygnus.com>
2910
2911         * config/ia64/lib1func.asm (__divtf3): Rebundle for Itanium.
2912         Eliminate final copy from non-trapping case.
2913         (__divdf3, __divsf3): Likewise.
2914
2915 2000-09-05  Richard Henderson  <rth@cygnus.com>
2916
2917         * config/ia64/ia64.md (mulhi3): Fix typo last change.
2918         * config/ia64/lib1func.asm (__divdi3, __udivdi3, __umodsi3): Likewise.
2919
2920 2000-09-03  Donn Terry  <donn@interix.com>,  Laurynas Biveinis  <lauras@softhome.net>
2921
2922         * Makefile.in: Restructure bootstrap stages to allow clean
2923         restart after failure.
2924
2925 2000-09-05  Richard Henderson  <rth@cygnus.com>
2926
2927         * config/ia64.md (movsi and movdi patterns): Allow moves from
2928         8-bit constants to AR registers.
2929
2930 2000-09-05  Richard Henderson  <rth@cygnus.com>
2931
2932         * config/ia64/ia64.md (mulhi3): New.
2933
2934 2000-09-05  Richard Henderson  <rth@cygnus.com>
2935
2936         * config/ia64/ia64.h (INIT_TARGET_OPTABS): Remove.
2937         * config/ia64/lib1funcs.asm (__divdi3): Update from Intel IA-64
2938         Optimization Guide, minimum latency alternative.
2939         (__moddi3, __udivdi3, __umoddi3): Likewise.
2940         (__divsi3, __modsi3, __udivsi3, __umodsi3): Likewise.
2941
2942 2000-09-05  Bruce Korb  <bkorb@gnu.org>
2943
2944         * fixinc/fixincl.c (load_file): always read header files
2945         with sizes that are a multiple of the page size.
2946         & use libiberty's getpagesize for determining that.
2947
2948 2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
2949
2950         * gcse.c (hash_string_1): Add prototype.
2951         * cse.c (canon_hash_string): Likewise.
2952
2953 2000-09-04  Craig Newell  <CraigN@ieee.org>
2954
2955         * gcc.c: Undefine "__WCHAR_TYPE__" before redefining it.
2956
2957 2000-09-04  Andreas Schwab  <schwab@suse.de>
2958
2959         * Makefile.in (STAGESTUFF): Remove libgcc.
2960         (stage1-start, stage2-start, stage3-start): Copy the contents of
2961         the libgcc directory explicitly.
2962         (mostlyclean): Clean libgcc.
2963
2964 2000-09-04  Andrew Haley  <aph@redhat.com>
2965
2966         * dwarf2out.c: (stack_adjust_offset): New prototype.
2967
2968 Wed Jan  1 00:23:59 MET 1997  Jan Hubicka  <jh@suse.cz>
2969
2970         * combine.c (make_extraction): Fix rtx_cost comparison to
2971         match the comment.
2972
2973 Wed Jan  1 00:17:32 MET 1997  Jan Hubicka  <jh@suse.cz>
2974
2975         * i386.md (pushsi2, pushhi2, pophi2, swapsf, swapdf,
2976         umulsi3_highpart, smulsi3_highpart, testqi_ccno_1, xorqi_ext_1):
2977         Add '*' to insn pattern name.
2978
2979 2000-09-04  Jakub Jelinek  <jakub@redhat.com>
2980
2981         * cpplex.c (ON_REST_ARG): Check VAR_ARGS flag of current context,
2982         use posn - 1 to index into tokens array.
2983         (maybe_paste_with_next): Adjust caller.
2984
2985 2000-09-03  Geoff Keating  <geoffk@cygnus.com>
2986
2987         * invoke.texi: Document the -mvxworks option for rs6000 ELF.
2988
2989         * config/rs6000/rs6000.h: Update various comments about XER_REGNO.
2990         (REGNO_REG_CLASS): Use symbolic register
2991         names.
2992
2993 2000-09-03  Richard Earnshaw  <rearnsha@arm.com>
2994
2995         * arm.c (final_prescan_insn): If the form of a jump insn isn't
2996         recognized, don't try to conditionally execute it.
2997
2998 Sun Sep  3 13:10:56 2000  Denis Chertykov  <denisc@overta.ru>
2999
3000         * config/avr/avr.md ("*tablejump_lib"): New pattern.
3001         (call_value_insn): Right length claculation.
3002         (call_insn): Likewise.
3003
3004 2000-09-02  Marek Michalkiewicz  <marekm@linux.org.pl>
3005
3006         * config/avr/avr-protos.h, config/avr/avr.c (unique_section,
3007         gas_output_limited_string, gas_output_ascii, output_movqi,
3008         output_movhi, out_movqi_r_mr, out_movqi_mr_r, out_movhi_r_mr,
3009         out_movhi_mr_r, out_movsi_r_mr, out_movsi_mr_r, output_movsisf,
3010         out_tstsi, out_tsthi, ret_cond_branch, ashlqi3_out, ashlhi3_out,
3011         ashlsi3_out, ashrqi3_out, ashrhi3_out, ashrsi3_out, lshrqi3_out,
3012         lshrhi3_out, lshrsi3_out, output_reload_inhi, output_reload_insisf,
3013         out_shift_with_cnt, ptrreg_to_str, cond_string, encode_section_info):
3014         Add "const" as needed to remove warnings.
3015
3016         * config/avr/avr.c (avr_override_options, avr_init_once,
3017         function_prologue, function_epilogue, frame_pointer_required_p,
3018         class_likely_spilled_p, order_regs_for_local_alloc,
3019         avr_address_cost, avr_ret_register): Use K&R style arguments.
3020         (initial_elimination_offset, gas_output_limited_string):
3021         Remove ATTRIBUTE_UNUSED from the used arguments.
3022         (output_mov*, out_mov*_r_mr, out_mov*_mr_r, output_reload_insisf):
3023         Use local variables src, dest, base to access operands[].
3024         Rename reg_dest to reg_src if that's what it is.
3025         (output_movhi, output_movsisf): Optimize loading 8-bit immediate
3026         constants to LD_REGS if reg_was_0.
3027         (output_reload_insisf): Change arg 3 to insn length and set it.
3028         (out_movhi_r_mr, out_movhi_mr_r): Use in/out for more efficient
3029         access to 16-bit I/O register pairs.
3030         (avr_address_cost): Lower cost for the above case.
3031         (out_tsthi): Use "or" (faster) instead of "sbiw" if the operand
3032         may be clobbered, also for LD_REGS.
3033         (adjust_insn_length): Correct insn length for iorhi3 and iorsi3
3034         with a CONST_INT.
3035
3036         * config/avr/avr.h (PTRDIFF_TYPE): Make signed.
3037
3038         * config/avr/avr.md: Change all uses of the TEST_HARD_REG_CLASS
3039         macro to test_hard_reg_class function.
3040         (*movsi, *movsf): Change "cc" attribute from "clobber" to "none"
3041         for loading immediate constants to LD_REGS.
3042         (andsi3, cmphi, cmpsi): Add return statements to avoid warnings.
3043
3044
3045 Sat Sep  2 13:58:23 2000  Marek Michalkiewicz <marekm@linux.org.pl>
3046
3047         * config/avr/avr.md ("*negsi2"): substitute %@ to __zero_reg__
3048         * config/avr/libgcc.S: Lost part of the previous patch.
3049
3050 2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3051
3052         * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
3053         object before calling pthread_mutex_init.
3054
3055 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
3056
3057         * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
3058         config/sh/crtn.asm: New files.
3059         * config/sh/t-sh (EXTRA_MULTILIB_PARTS): Set.
3060         (crt1.o, crti.o, crtn.o): New targets.
3061         * configure.in [sh-*-elf*, sh-*-rtemself*] (tmake_file): Added
3062         sh/t-elf.
3063         * configure: Rebuilt.
3064         * config/sh/sh.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP,
3065         STARTFILE_SPEC, ENDFILE_SPEC, CRT_CALL_STATIC_FUNCTION): Define.
3066         * config/sh/elf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP):
3067         Undefine for config/elfos.h to redefine.
3068         (STARTFILE_SPEC, ENDFILE_SPEC): Redefine after config/elfos.h.
3069
3070 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, Niibe Yutaka  <gniibe@m17n.org>, Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3071
3072         * config/sh/sh-protos.h (nonpic_symbol_mentioned_p,
3073         legitimize_pic_address, output_pic_addr_const): Declare.
3074         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Fix PIC register.
3075         (PREFERGOT_BIT, TARGET_PREFERGOT): Likewise.
3076         (TARGET_SWITCHES): New switch -mprefergot.
3077         (OVERRIDE_OPTIONS): Set flag_no_function_cse unless -mprefergot.
3078         (PIC_OFFSET_TABLE_REGNUM): Define.
3079         (GOT_SYMBOL_TABLE): Likewise.
3080         (LEGITIMIZE_ADDRESS): Use legitimize_pic_address.
3081         (ENCODE_SECTION_INFO): Define.
3082         (FINALIZE_PIC): New macros.
3083         (LEGITIMATE_PIC_OPERAND_P, SYMBOLIC_CONST_P): New macro.
3084         (ASM_OUTPUT_INT, ASM_OUTPUT_SHORT): Use output_pic_addr_const.
3085         * config/sh/sh.c (print_operand_address): Use output_pic_addr_const.
3086         (prepare_move_operands): Call emit_pic_move or
3087         emit_pic_const_move if appropriate.
3088         (output_far_jump): For PIC, use braf and output long offset.
3089         (machine_dependent_reorg):
3090         (sh_expand_prologue): Save and initialize the PIC register.
3091         (sh_expand_epilogue): Restore it.
3092         (initial_elimination_offset): Account for it.
3093         (nonpic_symbol_mentioned_p): New function.
3094         (legitimize_pic_address): Likewise.
3095         (output_pic_addr_const): Likewise.
3096         * config/sh/sh.md (calli_pcrel, call_valuei_pcrel): New insns.
3097         (call, call_value): Use them.
3098         (GOTaddr2picreg, sym_label2reg, symGOT2reg, symGOTOFF2reg,
3099         symPLT_label2reg): New expands.
3100         * invoke.texi (SH Options): Document -mprefergot.
3101
3102 2000-09-01  Alexandre Oliva  <aoliva@redhat.com>
3103
3104         * rtl.h (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): New macro.
3105         * gcse.c (hash_string_1): New function.
3106         (hash_expr_1) <ASM_OPERANDS>: Disregard filename and line number.
3107         (expr_equiv_p) <ASM_OPERANDS>: Likewise.
3108         * cse.c (rtx_cost): Don't increase the cost of ASM_OPERANDS.
3109         (canon_hash_string): New function.
3110         (canon_hash) <ASM_OPERANDS>: Disregard filename and line number.
3111         (exp_equiv_p) <ASM_OPERANDS>: Likewise.
3112         (fold_rtx): Use ASM_OPERANDS accessor macros.
3113         * emit-rtl.c (copy_insn_1): Likewise.
3114         * integrate.c (copy_rtx_and_substitute): Likewise.
3115         * stmt.c (expand_asm_operands): Likewise.  Give an
3116         ASM_OPERANDS rtx the mode of the output reg being set from it.
3117
3118 2000-09-01  Fred Fish  <fnf@be.com>
3119
3120         * fix-header.c (write_rbrac): Add putc and getc to list of
3121         functions to protect against prior definition as a macro.
3122
3123 2000-09-01  Joseph S. Myers  <jsm28@cam.ac.uk>
3124
3125         * c-common.h (enum c_tree_index): Add CTI_C_SIZE_TYPE.
3126         (c_size_type_node): Define.
3127         * c-decl.c (init_decl_processing): Initialize c_size_type_node.
3128         * c-common.c (enum format_lengths, enum format_std_version,
3129         format_length_info, format_type_detail, BADLEN, NOLENGTHS,
3130         format_kind_info, printf_length_specs, scanf_length_specs, T89_I,
3131         T99_I, T89_L, T99_LL, TEX_LL, T89_S, T89_UI, T99_UI, T89_UL,
3132         T99_ULL, TEX_ULL, T89_US, T89_F, T99_F, T89_D, T99_D, T89_LD,
3133         T99_LD, T89_C, T99_SC, T99_UC, T89_V, T94_W, TEX_W, T94_WI,
3134         TEX_WI, T99_ST, T99_SST, T99_PD, T99_UPD, T99_IM, T99_UIM,
3135         format_types): Define.
3136         (format_char_info, print_char_table, scan_char_table,
3137         time_char_table): Rearrange for new organization of information
3138         about format length modifiers and standard versions.
3139         (T_ST): Redefine to use c_size_type_node.
3140         (check_format_info): Obtain information about length modifiers and
3141         standard versions from tables.  Adjust warning message wordings.
3142         Use the name from the user's program for `ll' and `hh' length
3143         modifiers in warning messages.  Use more informative names for
3144         wanted types where available (for wchar_t, wint_t, size_t, signed
3145         size_t, ptrdiff_t, unsigned ptrdiff_t, intmax_t and uintmax_t).
3146
3147 2000-09-01  Jim Wilson  <wilson@cygnus.com>
3148
3149         * calls.c (emit_call_1): Add REG_NORETURN note to call if ECF_NORETURN.
3150         * combine.c (distribute_notes): Handle REG_NORETURN.
3151         * rtl.c (reg_note_name): Add REG_NORETURN.
3152         * rtl.h (enum reg_note): Likewise.
3153
3154         * config/ia64/ia64-protos.h (emit_safe_across_calls): Renamed from
3155         ia64_file_start.
3156         * config/ia64/ia64.c (emit_safe_across_calls): Likewise.
3157         (rtx_needs_barrier): Handle unspec_volatile 8 and 9.
3158         (emit_predicate_relation_info): Handle conditional calls with
3159         REG_NORETURN.
3160         * config/ia64/ia64.h (ASM_FILE_START): Call emit_safe_across_calls
3161         instead of ia64_file_start.
3162         * config/ia64/sysv4.h (ASM_FILE_START): Likewise.
3163         * config/ia64/ia64.md (safe_across_calls_all,
3164         save_across_calls_normal): New patterns.
3165
3166         * loop.c (check_final_value): Check for biv use before checking for
3167         giv use.  Check for both biv and giv uses.  Always set last_giv_use
3168         if there is a giv use.
3169
3170 2000-09-01  Richard Henderson  <rth@cygnus.com>
3171
3172         * config/ia64/ia64.md (mulsi3): Use grfr_register_operand.
3173         (madddi3): Likewise.
3174         (maddsi3): New.
3175
3176 Fri Sep  1 10:59:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3177
3178         * expr.c (clear_storage): Don't use emit_move_insn unless
3179         either BLKmode or proper size.
3180         (store_constructor): Don't call clear_storage if REG of wrong size.
3181
3182         * flow.c (init_propagate_block_info): Don't mark frame dead at end
3183         of function if returns wiht stack pointer depressed.
3184
3185 2000-09-01  Andrew Haley  <aph@redhat.com>
3186
3187         * dwarf2out.c (stack_adjust_offset): New function.
3188         (dwarf2out_stack_adjust): Break out stack adjust logic into
3189         new stack_adjust_offset function.  Look inside parallels and
3190         sequences for stack adjustments.
3191
3192 2000-08-31  Jeff Law <law@cygnus.com>
3193
3194         * arm.md: Use no_new_pseudos to determine when it is safe
3195         to create new pseudo registers.
3196
3197         * arm.c (legitimize_pic_address): Use no_new_pseudos to determine
3198         when we can safely allocate new registers.
3199
3200 2000-08-31  Geoffrey Keating  <geoffk@cygnus.com>
3201
3202         * stmt.c (expand_asm_operands): Twiddle generating_concat_p
3203         so that CONCATs are not generated for ASMs.
3204         * emit-rtl.c (gen_reg_rtx): Don't generate CONCATs when
3205         not generating_concat_p.
3206         * function.c (pop_function_context_from): Reset
3207         generating_concat_p.
3208         (prepare_function_start): Likewise.
3209         * rtl.c (generating_concat_p): Define.
3210         * rtl.h (generating_concat_p): Declare.
3211         * toplev.c (rest_of_compilation): No CONCATs after RTL generation.
3212
3213 2000-08-22  Philipp Thomas  <pthomas@suse.de>
3214             Masanobu Yuhara <yuhara@flab.fujitsu.co.jp>
3215
3216         * gmicro.h (TARGET_SWITCHES): Add descriptions and mark them
3217         for translation.
3218
3219 2000-08-30  Greg McGary  <greg@mcgary.org>
3220
3221         * Makefile.in (fixinc.sh): Pass CC, CFLAGS and LDFLAGS to mkfixinc.sh
3222         * fixinc/Makefile.in (fixincl): Pass $(LDFLAGS) to $(CC).
3223         * fixinc/mkfixinc.sh: Pass $CC, $CFLAGS and $LDFLAGS to $MAKE.
3224
3225 2000-08-30  Greg McGary  <greg@mcgary.org>
3226
3227         * tree.h (struct tree_int_cst): Wrap low and high in a sub-struct.
3228         (TREE_INT_CST_LOW, TREE_INT_CST_HIGH): Access through sub-struct.
3229         (TREE_INT_CST): New macro.
3230         * varasm.c (const_hash, compare_constant_1, record_constant_1):
3231         Use new macro TREE_INT_CST.
3232
3233 Wed 30-Aug-2000 23:18:59 BST  Neil Booth  <NeilB@earthling.net>
3234
3235         * contrib.texi: Add self.
3236
3237 2000-08-30  Alexandre Oliva  <aoliva@redhat.com>
3238
3239         * config/sh/sh.md (cmpeqsi_ior_t, cmpeqsi_and_t): New insns.
3240         (cmpeqdi_t splitter): Use cmpeqsi_and_t instead of emitting jumps
3241         and labels.
3242
3243 2000-08-30  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3244
3245         * fixinc/gnu-regex.c: Don't define `const'.
3246
3247 Tue Aug 29 22:09:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3248
3249         * expr.c (store_constructor): Allow variable bounds of array type.
3250         (expand_expr): Don't blow up if type is ERROR_MARK.
3251         * varasm.c (output_constructor): Don't access lower bound of array
3252         type unless need it if index is supplied (so it can be a variable
3253         if no index is supplied).
3254         Use tree_low_cst; use HOST_WIDE_INT for sizes; change BITPOS to POS.
3255         Other minor cleanups.
3256
3257 2000-08-29  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
3258
3259         * Makefile.in: Revamp handling of cflags to allow different WARN_CFLAGS
3260         for compilations in stage 1 and subsequent stages, respectively.
3261         * configure.in (vax): Add compiler-dependent CFLAGS for stage 1.
3262         * configure: Rebuilt.
3263         * x-vax, x-vax-gcc: Deleted.
3264
3265 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
3266
3267         * c-common.c (declare_function_name): Use func_id_node,
3268         function_id_node, and pretty_function_id_node.  Do not make
3269         __func__ visible at file scope.
3270         * c-common.h (c_tree_index): Add CTI_FUNCTION_ID,
3271         CTI_PRETTY_FUNCTION_ID, and CTI_FUNC_ID.
3272         (function_id_node, pretty_function_id_node, func_id_node): New
3273         macros.
3274         * c-decl.c (init_decl_processing): Initialize function_id_node,
3275         pretty_function_id_node, and func_id_node.
3276         (c_make_fname_decl): Correct comment.
3277
3278         * tree.h (struct tree_identifier): Constify pointer member.
3279
3280         * c-decl.c (pushdecl, implicit_decl_warning): Constify a char *.
3281         * c-pragma.h (struct weak_syms): Constify name and value members.
3282         (add_weak): Constify arguments.
3283
3284         * calls.c (special_function_p): Constify a char *.
3285         (expand_call): Remove variable which is initialized and then
3286         never used.
3287         * dependence.c (struct def_use, struct induction, struct subscript):
3288         Constify 'variable' member.
3289         (get_low_bound, have_induction_variable): Constify char * argument.
3290         (find_induction_variable): Add braces to avoid dangling else.
3291         (classify_dependence): Constify char * arrays.
3292         * profile.c (output_func_start_profiler): Constify a char *.
3293         * stor-layout.c (finalize_record_size): Constify a char *.
3294         * tree.c (is_attribute_p): Constify a char *.
3295         * varasm.c (add_weak, remove_from_pending_weak_list): Constify argument.
3296
3297         * varasm.c (make_function_rtl, make_decl_rtl): Rearrange code
3298         for comprehensibility.  Do not call get_identifier if we did
3299         not change the DECL_ASSEMBLER_NAME of the decl.  Use alloca to
3300         create temporary string constants, not ggc_alloc_string.  No
3301         need to copy result of ASM_FORMAT_PRIVATE_NAME.  Use const
3302         char * to hold IDENTIFIER_POINTERs.
3303
3304 2000-08-29  Richard Henderson  <rth@cygnus.com>
3305
3306         * config/ia64/ia64.md (muldi3): Use grfr_register_operand
3307         for the inputs.
3308
3309 2000-08-29  Richard Henderson  <rth@cygnus.com>
3310
3311         * reload.c (push_secondary_reload): Allow class == reload_class
3312         if we're using a reload_in/out pattern.
3313
3314         * config/ia64/ia64.md (reload_inti): Use a TImode scratch.  Use
3315         the half that does not conflict with the reload register.
3316         (reload_outti): Likewise.
3317
3318 2000-08-29  Kazu Hirata  <kazu@hxi.com>
3319
3320         * reload.c: Fix formatting.
3321
3322         * stmt.c: Fix formatting.
3323
3324         * gcc.c: Fix formatting.
3325
3326 2000-08-29  Zack Weinberg  <zack@wolery.cumb.org>
3327
3328         * flags.h (time_report, mem_report): New global flags.
3329         * toplev.c: Define time_report and mem_report.
3330         (f_options): Add -ftime-report and -fmem-report.
3331         (compile_file): Turn on time_report if quiet_flag is off.
3332         Call ggc_print_statistics at very end if mem_report is on.
3333         * timevar.c (TIMEVAR_ENABLE): Examine time_report, not quiet_flag.
3334
3335         * ggc-common.c (ggc_print_statistics): Rename to
3336         ggc_print_common_statistics; all callers changed.  Scale
3337         quantities above 10K to kilobytes and above 10M to megabytes.
3338         * ggc-page.c (ggc_page_print_statistics): Rename to
3339         ggc_print_statistics.  Report memory consumed by internal data
3340         structures for each allocation bucket.  Scale quantities above
3341         10K to kilobytes and above 10M to megabytes.
3342         * ggc-simple.c: Prototype debug_ggc_tree to avoid warning.
3343         Cast PTR_KEY(p) to unsigned long in fprintf call to avoid warning.
3344         Define tally_leaves always.
3345         (ggc_print_statistics): New function.
3346         * ggc.h: Adjust for renamed functions.
3347
3348 Wed Aug 30 00:11:42 2000  Denis Chertykov  <denisc@overta.ru>
3349
3350         * config/avr/avr.md ("*movsf","*movsi"): Pass NULL to
3351         output_movsisf instead of which_alternative.
3352
3353         * config/avr/avr.c (output_reload_inhi): Check for NULL ponter.
3354
3355 Tue Aug 29 22:29:58 2000  Denis Chertykov  <denisc@overta.ru> & Marek Michalkiewicz <marekm@linux.org.pl>
3356
3357         * config/avr/avr-protos.h: (avr_output_ascii) Removed.
3358         (avr_progmem_p): New prototype.
3359         (output_movsisf): Prototype declaration changed.
3360         (output_movqi): New prototype.
3361         (output_movhi): New prototype.
3362         (call_insn_operand): Likewise.
3363         (final_prescan_insn): Likewise.
3364         (avr_simplify_comparision_p): Likewise.
3365         (avr_normalize_condition): Likewise.
3366         (compare_eq_p): Likewise.
3367         (out_shift_with_cnt): Likewise.
3368         (const_int_pow2_p): Likewise.
3369         (output_reload_inhi): Prototype declaration changed.
3370
3371         * config/avr/avr.c: (debug_hard_reg_set): Prototype declared.
3372         (ldi_reg_rtx): New. rtx for r31.
3373         (avr_init_stack): Initialize as "__stack".
3374         (function_prologue): Use it.
3375         Replace all TARGET_ENHANCED with AVR_ENHANCED.
3376         (avr_mcu_name): Initialize as "avr2".
3377         (avr_enhanced_p, avr_mega_p): New variables.
3378         (mcu_types, avr_override_options): Handle all known MCU types.
3379         Also handle avr1 (only preprocess, assemble and link).
3380         (print_operand): Using of `%K' in output template removed.
3381         (out_movqi_r_mr): Optimized.
3382         (out_movhi_r_mr): Likewise.
3383         (output_movqi): New function.
3384         (output_movhi): Likewise.
3385         (out_movsi_r_mr): Optimized.
3386         (output_movsisf): Compute insn length for `adjust_insn_length'
3387         (out_movqi_mr_r): Optimized.
3388         (out_movhi_mr_r): Optimized.
3389         (adjust_insn_length): Use output_movsisf, output_movqi,
3390         output_movhi for insn length adjusting.
3391         (reg_unused_after): Use dead_or_set_p.
3392         (preferred_reload_class): Now havn't any restriction.
3393         (reg_was_0): New function.
3394         (io_address_p): Likewise.
3395         (const_int_pow2_p): Likewise.
3396         (output_reload_inhi): Likewise.
3397         (output_reload_insisf): Likewise.
3398
3399         * config/avr/avr.h (MULTILIB_DEFAULTS): Define.
3400         (LIB_SPEC): Use -lc for all supported devices.
3401         (LIBGCC_SPEC): Use -lgcc for all supported devices.
3402         (AVR_MEGA): Define as avr_mega_p.
3403         (AVR_ENHANCED): New, define as avr_enhanced_p.
3404         (TARGET_SWITCHES): Remove -menhanced, now handled by -mmcu=...
3405         (CPP_SPEC, LINK_SPEC): Handle all known MCU types.
3406         (CRT_BINUTILS_SPECS): Handle all known MCU types.
3407         Rename gcrt1-*.o to make file names unique on 8.3 filesystems.
3408         (EXTRA_SPECS): Add CPP_AVR[1-5]_SPEC.
3409         (ASM_SPEC): Pass -mmcu=... to the assembler.
3410         Change all -DAVR_* to -D__AVR_*__.
3411         (INIT_TARGET_OPTABS), config/avr/libgcc.S:
3412         Rename library functions to