OSDN Git Service

* config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2000-05-04  Richard Henderson  <rth@cygnus.com>
2
3         * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place.
4
5 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6
7         * system.h: Don't wrap <sys/types.h> with HAVE_SYS_TYPES_H.
8
9 2000-05-04  Mumit Khan  <khan@xraylith.wisc.edu>
10
11         * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move 
12         attribute macros from here ...
13         (CPP_SPEC): to here.
14         * i386/mingw32.h (CPP_PREDEFINES): Likewise.
15         (CPP_SPEC): Likewise.
16         * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. 
17
18         * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule.
19         (libgcc.a): Pass LIB1ASMSRC to libgcc.mk.
20
21 2000-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
22
23         * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype.
24         
25         * diagnostic (vbuild_message_string, build_message_string,
26         build_location_prefix, output_get_prefix, init_output_buffer,
27         output_notice, vline_wrapper_message_with_location,
28         v_message_with_decl, default_print_error_function): De-constify.
29         (set_real_maximum_length): Prototype.
30
31         * diagnostic.h (struct output_buffer, init_output_buffer,
32         output_get_prefix, output_set_prefix): De-constify.
33
34         * function.c (init_function_start): Constify.
35
36         * gensupport.c (remove_constraints, process_rtx): Prototype.
37
38         * gthr-posix.h: Indent uses of #pragma.
39
40         * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table):
41         Prototype.
42
43         * predict.c (find_expected_value): Delete prototype.
44         (expected_value_to_br_prob): Initialize variable `ev_reg'.
45
46         * sbitmap.h (debug_sbitmap): Prototype.
47
48         * ssa.c (compute_coalesced_reg_partition): Prototype.
49
50         * stor-layout.c (debug_rli): Prototype.
51
52         * tree.h (round_down): Prototype.
53         (init_function_start): Constify.
54
55 2000-05-04  Zack Weinberg  <zack@wolery.cumb.org>
56
57         * cpphash.h: #define __extension__ away if GCC_VERSION < 2095
58         (overly conservative).  Change extern inline wrappers to
59         static inline, define them always, use PARAMS properly.
60         * cpplex.c (_cpp_get_directive_token): Don't issue pedantic
61         whitespace warnings for \f and \v at the beginning of a line.
62
63 Thu May  4 10:03:50 2000  Jeffrey A Law  (law@cygnus.com)
64
65         * haifa-sched.c (schedule_insns): Free the flow edge list when it
66         is no longer needed
67
68 2000-05-04  Bruce Korb  <bkorb@gnu.org>
69
70         * fixincl/inclhack.def: added broken_cabs -
71         Remove `extern double cabs' declarations from math.h
72         * fixincl/inclhack.sh: regen
73         * fixincl/fixincl.x: regen
74         * fixincl/fixincl.c: Remove BOGOSITY code
75         * fixincl/mkfixinc.sh: Remove code for installing "shell" version
76
77 Thu May  4 09:45:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
78
79         * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and
80         MEM_ALIAS_SET.
81         * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET
82         when calling MEM_COPY_ATTRIBUTES.
83         * emit-rtl.c (operand_subword, change_address): Likewise.
84         * explow.c (stabilize): Likewise.
85         * expr.c (protect_from_queue, emit_move_insn_1): Likewise.
86         * integrate.c (copy_rtx_and_substitute): Likewise.
87         * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P
88         when calling MEM_COPY_ATTRIBUTES.
89         (make_extraction, simplify_shift_const, gen_lowpart_for_combine):
90         Likewise.
91         * cse.c (gen_lowpart_if_possible): Likewise.
92         * function.c (fixup_var_refs_1, purge_addressof_1): Likewise.
93         * optabs.c (gen_move_insn): Likewise.
94         * recog.c (validate_replace_rtx_1): Likewise.
95         * simplify-rtx.c (add_mem_for_addr): Likewise.
96         * stmt.c (expand_anon_union_decl): Likewise.
97         * config/arm/arm.md: Likewise.
98         * config/h8300/h7300.c (fix_bit_operand): Likewise.
99         * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise.
100         (block_move_no_loop, block_move_sequence): Likewise.
101         * config/rs6000/rs6000.c (expand_block_move_mem): Likewise.
102         * config/alpha/alpha.c (get_aligned_mem): Likewise.
103         Clear MEM_ALIAS_SET.
104         * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling
105         MEM_COPY_ATTRIBUTES.
106
107 2000-05-03  Robert Lipe <robertlipe@usa.net>
108         
109         * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare
110         to suppress libgcc1.
111         (i[34567]86-*-sco3.2v5*) Likewise.
112         (i[34567]86-*-sco3.2v4*) Likewise.
113         (i[34567]86-*-sco) Likewise.
114         (i[34567]86-*-solaris2) Likewise.
115         (i[34567]86-*-sysv5*) Likewise.
116         (i[34567]86-*-sysv4*) Likewise.
117         (i[34567]86-*-udk*) Likewise.
118         (i[34567]86-*-sysv*) Likewise.
119
120 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
121
122         * cpphash.h (U): New define, to correct type of string constants.
123         (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper
124         routines, to do casts when passing unsigned strings to libc.
125         * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them.
126
127         * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *.
128         * cpphash.c (_cpp_quote_string): Make string an U_CHAR *.
129         * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *.
130         * cpplex.c (parse_ifdef, parse_include, validate_else): Make
131         second argument an U_CHAR *.
132
133         * cppinit.c (builtin_array): Make name and value U_CHAR *, add
134         length field, clean up initializer.
135         (ISTABLE): Add __extension__ to designated-
136         initializers version.
137         * cpplex.c (CHARTAB): Likewise.
138
139         * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS
140         case so the file won't be empty.
141
142 Wed May  3 21:01:46 2000  Jason Eckhardt  <jle@cygnus.com>
143
144         * bb-reorder.c (struct reorder_block_def): Member succ removed.
145         (REORDER_BLOCK_SUCC): Removed.
146         (enum reorder_skip_type): Removed.
147         (skip_insns_between_block): Renamed to skip_insns_after_block.
148         Removed second argument. Removed dead code and cleaned up.
149         (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC.
150         (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed
151         second parameter to skip_insns_after_block.
152
153 Wed May  3 13:29:54 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
154
155         * tree.c (staticp, case LABEL_DECL): New case.
156
157 2000-05-03  Richard Henderson  <rth@cygnus.com>
158
159         * Makefile.in (start.encap): Do not depend on LIBGCC1.
160
161         * mklibgcc1.in: Fix typo last change.
162
163 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
164
165         * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long.
166         (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional.
167         (GCC_CFLAGS): Use it.
168         (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS.
169         * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in,
170         objc/Make-lang.in: Use it.
171
172 2000-05-03  Jason R Thorpe  <thorpej@zembu.com>
173
174         * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint.
175
176 2000-05-03  Richard Henderson  <rth@cygnus.com>
177
178         * mklibgcc.in: Restrict OLDCC=GCC test to native.  Equate
179         LIBGCC1 empty with libgcc1.null.
180
181 Wed May  3 12:55:46 2000  Jim Wilson  <wilson@cygnus.com>
182
183         * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness
184         change.
185
186 2000-05-03  Greg McGary  <gkm@gnu.org>
187
188         * tree.h (tree_common): Add bounded_flag member.  Remove
189         inaccurate comment about number of remaining bits.
190         (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P,
191         BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P,
192         MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P,
193         TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P,
194         TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros.
195         (TYPE_QUAL_BOUNDED): New constant.
196         (TYPE_QUALS): Handle bounded qualifier.
197         (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros.
198         (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT,
199         TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH,
200         TYPE_AMBIENT_BOUNDEDNESS): New macros.
201         (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants.
202         (tree_type): Add pointer_depth member.  Remove
203         inaccurate comment about number of remaining bits.
204         (DECL_POINTER_DEPTH): Add macro.
205         (tree_decl): Add pointer_depth member.
206
207 Wed May  3 22:52:53 2000  Denis Chertykov  <denisc@overta.ru>
208
209         * config/avr/avr-protos.h (test_hard_reg_class): Declared.
210         * config/avr/avr.c (ashrhi3_out): optimized shift by 15.
211         (lshrhi3_out): Likewise.
212         (ashrsi3_out): bugfix in shift by 8.
213         (test_hard_reg_class): New function.
214         * config/avr/avr.md: Bugfix inside conditions in peepholes.
215         (ashlhi3): removed define_expand of this pattern.
216         (*ashlhi3_insn): renamed to ashlhi3.
217         (ashlsi3): removed define_expand of this pattern.
218         (*ashlsi3_insn): renamed to ashlsi3.
219         (ashrqi3): removed define_expand of this pattern.
220         (*ashrqi3_insn): renamed to ashrqi3.
221         (ashrhi3): removed define_expand of this pattern.
222         (*ashrhi3_insn): renamed to ashrhi3.
223         (ashrsi3): removed define_expand of this pattern.
224         (*ashrsi3_insn): renamed to ashrsi3.
225         (lshrhi3): removed define_expand of this pattern.
226         (*lshrhi3_insn): renamed to lshrhi3.
227         (lshrsi3): removed define_expand of this pattern.
228         (*lshrsi3_insn): renamed to lshrsi3.
229
230 2000-05-03  Rodney Brown  <RodneyBrown@pmsc.com>
231
232         * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with
233         inclusion of "system.h".
234
235 Wed May  3 11:43:53 2000  Jim Wilson  <wilson@cygnus.com>
236
237         * config/ia64/ia64.c (ia64_encode_section_info): Add check for
238         TREE_ASM_WRITTEN.
239
240 2000-05-03  David Mosberger  <davidm@hpl.hp.com>
241
242         * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp
243         if -mauto-pic is on.
244         (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if
245         -mconstant-gp is in effect and function-descriptors are being used
246         to make indirect calls.
247         * config/ia64/ia64.h (MASK_CONST_GP): New macro.
248         (MASK_AUTO_PIC): Ditto.
249         (TARGET_CONST_GP): Ditto.
250         (TARGET_AUTO_PIC): Ditto.
251         (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options.
252         (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or
253         -mno-pic is in effect.
254         (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto.
255         * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if
256         -mauto-pic is in effect.
257         (gprel64_offset): New pattern.
258         (load_gprel64): Ditto.
259         (call): Handle -mauto-pic like -mno-pic (don't use fptr).  If
260         -mconstant-gp is in effect, no need to preserve gp around direct
261         calls.
262         (call_value): Ditto.
263         * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define.
264         (FUNCTION_PROFILER): Define.
265         * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate
266         @fptr() directive when -mno-pic or -mauto-pic is in effect.
267         (ASM_OUTPUT_DESTRUCTOR): Ditto.
268
269 2000-05-03  Richard Henderson  <rth@cygnus.com>
270
271         * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk.
272         (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets.
273         (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets.
274         (mklibgcc, libgcc.mk): New targets.
275         (libgcc.a): Use libgcc.mk.
276         (stmp-multilib): Likewise.
277         (stmp-multilib-sub): Remove.
278         (mostlyclean): Don't delete libgcc2 temp files.
279         * configure.in (AC_PROG_CC_C_O): Add.
280         (NO_MINUS_C_MINUS_O): Substitute it.
281         (all_outputs): Add mklibgcc.
282         * mklibgcc.in: New file.
283
284 2000-05-03  Jason Merrill  <jason@casey.cygnus.com>
285
286         * cppexp.c (op_t): Make an int.
287
288         * rtlanal.c (dead_or_set_regno_p): Remove unused variable.
289
290         * varasm.c (initializer_constant_valid_p): Fix parenthesis.
291
292         * gensupport.c (process_rtx): Fix macros used.
293
294 2000-05-03  Richard Henderson  <rth@cygnus.com>
295
296         * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for
297         call-clobbered registers of a call.
298
299 Wed May  3 12:40:53 2000  Clinton Popetz  <cpopetz@cygnus.com>
300
301         * gensupport.c: New file.
302         * gensupport.h: New file.
303         * Makefile.in (HOST_RTL): Depend on gensupport.
304         (gensupport.o) New rule.
305         * genattr.c: Use gensupport for reading .md files.
306         * genattrtab.c: Ditto. 
307         * gencodes.c: Ditto. 
308         * genconfig.c: Ditto. 
309         * genemit.c: Ditto. 
310         * genextract.c: Ditto. 
311         * genflags.c: Ditto. 
312         * genopinit.c: Ditto. 
313         * genoutput.c: Ditto. 
314         * genpeep.c: Ditto. 
315         * genrecog.c: Ditto.
316         * rtl.def (define_insn_and_split): New DEF_RTL_EXPR.
317         * md.texi (Insn Splitting): Document define_insn_and_split.
318
319 Tue May  2 00:20:30 2000  Jason Eckhardt  <jle@cygnus.com>
320
321         * flow.c (verify_flow_info): Added two more sanity checks. The
322         first checks that the blocks are numbered consecutively. The second
323         checks that n_basic_blocks is actually equal to the number of
324         basic blocks in the insn chain.
325
326 2000-05-03  Zack Weinberg  <zack@wolery.cumb.org>
327
328         * cpplib.h: Add accessor macros for token lists.
329         * cpplib.c, cpphash.c, cpplex.c: Use them.
330
331 Wed May  3 09:29:17 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
332
333         * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking
334         memory usage if not in a function.
335         * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only
336         return address if static.
337
338 Wed May  3 13:14:49 MET DST 2000  Jan Hubicka  <jh@suse.cz>
339
340         * ifcvt.c (noce_try_cmove_arith):  Use may_trap_p to thest
341         whether address may trap.
342
343 Tue May  2 23:38:37 2000  Jason Eckhardt  <jle@cygnus.com>
344
345         * bb-reorder (chain_reorder_blocks): Changed code to test for
346         EDGE_FALLTHRU rather than making erroneous assumption that the
347         first outgoing edge is the fall-through edge.
348
349 Tue May  2 18:20:31 2000  Donald Lindsay  <dlindsay@hound.cygnus.com>
350
351         * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new 
352         ABI for varargs, across all MIPS. This is incompatible because the
353         va_list (__builtin_va_list) structure is different, so a compilation
354         unit passing a va_list and a compilation unit being passed one, should
355         both be compiled with the same ABI. (The old structure had two 
356         pointers, now it has three.)
357
358 Tue May  2 19:18:43 2000  Jason Eckhardt  <jle@cygnus.com>
359
360         * bb-reorder.c (struct reorder_block_def): Remove members end,
361         block_begin, and block_end.
362         (REORDER_BLOCK_OLD_END): Delete.
363         (REORDER_BLOCK_BEGIN): Delete.
364         (REORDER_BLOCK_END): Delete.
365         (chain_reorder_blocks): Remove dead code.
366
367 Tue May  2 17:06:53 2000  Jason Eckhardt  <jle@cygnus.com>
368
369         * bb-reorder.c (remove_scope_notes): Check for both types of scope
370         notes as the end of a basic block before deleting.
371
372 2000-05-02  Mumit Khan  <khan@xraylith.wisc.edu>
373
374         * final.c (final_start_function): Fix spelling of "necessary".
375
376 2000-05-02  Jason Merrill  <jason@casey.cygnus.com>
377
378         * toplev.c (debug_ignore_block): Return int.
379         * dwarf2out.c (dwarf2out_ignore_block): Likewise.
380         * toplev.h, dwarf2out.h: Adjust.
381         * emit-rtl.c (remove_unnecessary_notes): Test return value.
382
383         * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary".
384         * toplev.c, final.c, rtl.h: Adjust.
385
386 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
387
388         * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro.
389         * configure.in: Look for makeinfo in the unified tree, then
390         for a system makeinfo which is sufficiently new.
391         * Makefile.in: If configure says makeinfo is too old, don't
392         build or install Info documentation.
393
394 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
395
396         * cpphash.c (collect_params): Fix off-by-one error.
397         (dump_hash_helper): Dump all four macro nodetypes.
398
399 2000-05-02  Jakub Jelinek  <jakub@redhat.com>
400
401         * cpphash.c (trad_stringify): Adjust p after stringification as
402         well.
403
404 2000-05-02  Zack Weinberg  <zack@wolery.cumb.org>
405
406         * cpplib.h (CPP_POP, parse_cleanup_t): Delete.
407         (cpp_buffer): Remove cleanup, seen_eof, manual_pop members.
408
409         * cppfiles.c (file_cleanup): Delete.
410         * cpphash.c (macro_cleanup): Delete.
411         (collect_objlike_expansion, collect_funlike_expansion,
412         macarg, scan_arguments): Remove CPP_POP case.
413
414         * cpplex.c (null_cleanup): Delete.
415         (cpp_pop_buffer): Do the work that was done in the cleanups
416         here.  Call _cpp_unwind_if_stack from here.
417         (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput,
418         cpp_scan_buffer): Run until we see CPP_EOF and the top of
419         stack is the buffer _below_ the one we stacked.
420         (cpp_get_token): Always pop an exhausted buffer.  Return
421         CPP_EOF unless it's a macro buffer.  Don't call _cpp_handle_eof.
422         * cpplib.c (skip_if_group): Don't call cpp_get_token to
423         increment the line number.
424         (_cpp_handle_eof): Rename to _cpp_unwind_if_stack.
425
426         * fix-header.c (read_scan_file) [parsing getchar()]: Run until
427         we see CPP_EOF and the top of stack is the buffer _below_ the
428         one we stacked.
429         * scan-decls.c: Likewise.
430
431 2000-05-02  Andrew Haley  <aph@cygnus.com>
432
433         * config/ia64/ia64.c (ia64_encode_section_info): Handle the case
434         where this function is called for the second time on a decl that
435         has had its section info changed in such a way as to move it out
436         of small data/bss.  
437         * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition.
438
439 2000-05-01  Richard Henderson  <rth@cygnus.com>
440
441         * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
442         the sequence we're moving, not to merge_bb->head.
443
444 2000-05-01  Richard Henderson  <rth@cygnus.com>
445
446         * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove
447         reference to alpha/t-linux.
448         (alpha*-*-linux-gnu*): Likewise.
449         * configure: Rebuild.
450
451         * calls.c (expand_call): Don't emit reg notes for a sibcall.
452
453         * flow.c (calculate_global_regs_live): Skip for_each_successor_phi
454         if not in SSA form.
455
456         * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING.
457
458 2000-05-01  Jason Merrill  <jason@casey.cygnus.com>
459
460         * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and
461         TREE_THIS_VOLATILE.
462
463 2000-05-01  Richard Henderson  <rth@cygnus.com>
464
465         * ifcvt.c (noce_emit_cmove): Conditionally compile call to
466         emit_conditional_move.
467
468 2000-05-01  Jakub Jelinek  <jakub@redhat.com>
469
470         * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1
471         as the dynamic linker.
472
473 2000-05-01  Zack Weinberg  <zack@wolery.cumb.org>
474
475         * cppfiles.c (open_include_file): Open file in blocking mode.
476         (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore.
477         Only exclude block devices and directories.
478
479         * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now
480         static.  Allocate the hashnode and its string in the same
481         block of memory.
482         (del_HASHNODE): Don't free h->name.
483         (_cpp_lookup): If there is no entry for this string, create
484         one, of type T_VOID.
485         (_cpp_lookup_slot): Delete.
486         * cpphash.h: Update prototypes.
487
488         * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID,
489         not hp == NULL.
490         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert,
491         do_unassert, cpp_defined): Use _cpp_lookup.  Don't create a
492         node here, just fill in the value field properly.  "Delete"
493         entries by setting the value field to T_VOID.  Check for
494         hp->type == T_VOID, not hp == NULL.
495
496         * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H).
497         * cpperror.c, cppexp.c, cpplex.c, cpplib.c:  Don't include
498         hashtab.h.
499
500 2000-05-01  Alexandre Oliva  <aoliva@cygnus.com>
501
502         * config/mn10300/mn10300.c (print_operand_address): Do not add
503         zero to SP.
504
505         * config/mn10300/mn10300.c (expand_epilogue): If SP is to be
506         adjusted by less than 256 bytes, use ret regardless of having any
507         callee-saved register to restore.
508
509 2000-05-01 Laurynas Biveinis <lauras@softhome.net>
510
511         * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo.
512
513 2000-05-01 Mark Elbrecht <snowball3@bigfoot.com>
514
515         * config/i386/djgpp.h (INT_ASM_OP): Define.
516         (CPP_PREDEFINES): Rename MSDOS to __MSDOS__.
517         (ASM_WEAKEN_LABEL): Define.
518         (MASK_BNU210): Define.
519         (SUBTARGET_SWITCHES): Define.
520         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define.
521         (MAKE_DECL_ONE_ONLY): Define.
522         (UNIQUE_SECTION_P, UNIQUE_SECTION): Define.
523
524 2000-05-01  Mumit Khan  <khan@xraylith.wisc.edu>
525
526         * i386/cygwin.h (INT_ASM_OP): Define.
527
528 Mon May  1 18:20:06 2000  Denis Chertykov  <denisc@overta.ru>
529
530         * config/avr/avr.c (address_cost): renamed to avr_address_cost.
531         * config/avr/avr.h (ADDRESS_COST): use avr_address_cost.
532
533 Mon May  1 17:50:44 2000  Denis Chertykov  <denisc@overta.ru>
534
535         * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in
536         __tmp_reg__ and __zero_reg__ initialization.
537
538 2000-04-30  Richard Henderson  <rth@cygnus.com>
539
540         * flow.c (propagate_one_insn): Mark sets even when the insn is dead.
541
542         * ifcvt.c (noce_process_if_block): Fail the conversion if X is
543         referenced bewteen the condition and the jump.  Don't delete
544         anything but the jump.
545
546 Sun Apr 30 22:48:24 2000  Jason Eckhardt  <jle@cygnus.com>
547
548         * bb-reorder.c (scope_def): New struct.
549         (scope_forest_info): New struct.
550         (struct reorder_block_def): New member "scope".
551         (REORDER_BLOCK_SCOPE): New macro.
552         (relate_bbs_with_scopes): New function and prototype.
553         (make_new_scope): Likewise.
554         (build_scope_forest): Likewise.
555         (remove_scope_notes): Likewise.
556         (insert_intra_1): Likewise.
557         (insert_intra_bb_scope_notes): Likewise.
558         (insert_inter_bb_scope_notes): Likewise.
559         (rebuild_scope_notes): Likewise.
560         (free_scope_forest_1): Likewise.
561         (free_scope_forest): Likewise.
562         (dump_scope_forest): Likewise.
563         (dump_scope_forest_1): Likewise.
564         (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block.
565         Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new
566         block.
567         (reorder_basic_blocks): Added calls to build_scope_scope_forest
568         and remove_scope_notes before reordering is done. Added calls to
569         rebuild_scope_notes, free_scope_forest, and reorder_blocks after
570         after reordering is done.
571
572 2000-40-30  Bruce Korb  <bkorb@gnu.org>
573
574         * fixinc/inclhack.def:  Added definitions needed by OSR5,
575         removed two stale entries (defined away with OLD_CPP).
576         * fixinc/inclhack.sh: regen
577         * fixinc/fixincl.x: regen
578
579 2000-04-30  Richard Henderson  <rth@cygnus.com>
580
581         * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes
582         from the last insn in the sequence.
583
584 2000-04-30  Zack Weinberg  <zack@wolery.cumb.org>
585
586         * cpplex.c (cpp_idcmp): New function.
587         * cpplib.h: Prototype it.
588         * scan_decls.c (scan_decls): Use it to inspect token names.
589         * fix-header.c (read_scan_file): Likewise.  Set system_header_p on
590         the file being run through the preprocessor.
591         (check_macro_names): Provide length of token to cpp_defined.
592
593         * Makefile.in: Remove stale warning message.
594
595         * cppfiles.c (redundant_include_p): Provide length of token to
596         cpp_defined.
597         * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash
598         values are unsigned int.
599         (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length.
600         (_cpp_lookup_slot): Do not calculate the hash, either.
601         * cpphash.h: Update prototypes.
602         * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert):
603         Hashes are unsigned int.  Calculate hash here, pass by value
604         to _cpp_lookup_slot.
605
606 2000-04-30  Bernd Schmidt  <bernds@cygnus.co.uk>
607
608         * simplify-rtx.c (check_value_useless): Delete function.
609         (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter
610         by hand.
611         (cselib_invalidate_regno): Likewise.
612         (cselib_invalidate_mem_1): Likewise.
613         (references_value_p): Recognize useless values by the fact that they
614         have no locations.
615         (discard_useless_values): Likewise.
616         (cselib_record_set): This may turn a useless value
617         into a useful one.
618
619 2000-04-30  Richard Henderson  <rth@cygnus.com>
620
621         * config/d30v: New port.
622
623         * configure.in (d30v-*): Set fp format.
624         * configure: Rebuild.
625
626 2000-04-30  Richard Henderson  <rth@cygnus.com>
627
628         * ifcvt.c: New file.
629         * Makefile.in (OBJS): Add it.
630         (ifcvt.o): New target.
631         * jump.c (jump_optimize_1): Remove all code related to if-conversion,
632         and conditional arithmetic.
633         (find_insert_position): Remove.
634         * timevar.def (TV_IFCVT, TV_IFCVT2): New.
635         * toplev.c (DFI_ce, DFI_ce2): New.
636         (dump_file): Add ce and ce2 dumps.
637         (rest_of_compilation): Run if_convert a couple o times.  Set
638         cse_not_expected after cse2.  Don't set no_new_pseudos until
639         after sched1 or recompute_reg_usage.
640
641 2000-04-30  Richard Henderson  <rth@cygnus.com>
642
643         * config/alpha/t-crtbe (crtbegin.o): Add "-I.".
644         (crtend.o, crtbeginS.o, crtendS.o): Likewise.
645
646 2000-04-30  Richard Henderson  <rth@cygnus.com>
647
648         * flow.c (struct reg_cond_life_info): New.
649         (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg.
650         (init_propagate_block_info): Initialize them.
651         (free_propagate_block_info): Destruct them.
652         (mark_set_1): Consider conditional life before killing a register.
653         (mark_regno_cond_dead): New.
654         (free_reg_cond_life_info): New.
655         (flush_reg_cond_reg_1, flush_reg_cond_reg): New.
656         (ior_reg_cond, not_reg_cond, nand_reg_cond): New.
657         (mark_used_reg): Record conditional life.
658
659         * haifa-sched.c (schedule_insns): Disable death counting
660         sanity check for HAVE_conditional_execution.
661
662 2000-04-30  Richard Henderson  <rth@cygnus.com>
663
664         * Makefile.in (TIMEVAR_H): New.
665         (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it.
666         (timevar.h): Remove rule.
667
668 2000-04-29  Richard Henderson  <rth@cygnus.com>
669
670         * config/alpha/crtend.asm: Use C comments instead of #.
671         * config/alpha/crtbegin.asm: Likewise.  Mark __dso_handle hidden.
672
673         * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL.
674
675 2000-04-29  Zack Weinberg  <zack@wolery.cumb.org>
676
677         * cpphash.h (enum node_type: Take out T_MCONST.
678         (union hashval): Move into struct hashnode.
679         (struct hashnode): Pack tighter.  Remove file, line, col
680         members.
681         * cpphash.c: Constify most of the macro-definition structures.
682         (struct definition): Replace by struct object_defn
683         and struct funct_defn.  Put file, line, column information
684         here.  All users updated to match.
685         (_cpp_create_definition, _cpp_macroexpand): Remove special
686         case for #define WORD OTHERWORD.
687         * cpplib.c (do_undef): Remove T_MCONST case.
688
689         * cpphash.h: Move struct reflist, struct definition, and the
690         DEFINITION typedef to cpphash.c.  Use 'struct definition *' in
691         union hashval.  _cpp_free_definition takes a HASHNODE pointer.
692         * cpphash.c (_cpp_free_definition): Free data pointed to by
693         MCONST, XCONST, MACRO, and FMACRO nodes properly.
694         (_cpp_create_definition, del_HASHNODE): Just call
695         _cpp_free_definition to clear out a hashnode.
696         * cpplib.c (do_pragma_poison): Likewise.
697
698 Sat Apr 29 12:25:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
699
700         * config/mn10300/mn10300.h (FIRST_DATA_REGNUM,
701         LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM,
702         FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros.
703         (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM.
704         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P,
705         REGNO_AM33_P): Redefine in terms of the new macros.
706         (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise.
707         (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P,
708         STRUCT_VALUE): Likewise.
709         (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM,
710         ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise.  Moved.
711
712 Sat Apr 29 01:18:45 MET DST 2000  Jan Hubicka  <jh@suse.cz>
713
714         * regmove.c (struct record_stack_memrefs_data): New.
715         (record_stack_memrefs): New function.
716         (combine_stack_adjustments_for_block): Use it.
717
718 Sat Apr 29 01:15:27 MET DST 2000  Jan Hubicka  <jh@suse.cz>
719
720         * calls.c (calls_function_1):  Propertly handle TREE_LIST expressions;
721         use special_function_p to detect alloca.
722
723 Fri Apr 28 16:30:33 2000  Marc Espie <espie@cvs.openbsd.org>
724
725         * gcc.texi: Fixes for makeinfo 4.0 --html.
726
727 2000-04-28  Zack Weinberg  <zack@wolery.cumb.org>
728
729         * pcp.h: Delete file.
730
731 2000-04-28  Kazu Hirata  <kazu@hxi.com>
732
733         * h8300.c (function_epilogue): Clean up flags when the last insn
734         in a function is a barrier.
735
736 2000-04-28  Chris Demetriou  <cgd@sibyte.com>
737
738         * configure.in (sparc-hal-solaris2*): protect [] glob from
739         my expansion.
740         (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines
741         rather than hard-coded constants in target_cpu_default2.
742         * configure: Regenerate.
743
744 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
745
746         * tree.c (get_callee_fndecl): Extract the initial value from
747         a readonly decl.
748
749 2000-04-28  Richard Henderson  <rth@cygnus.com>
750
751         * varasm.c (record_constant_1): Record the CODE_LABEL when
752         taking the address of a LABEL_REF.
753
754 2000-04-28  Richard Henderson  <rth@cygnus.com>
755             Jan Hubicka  <jh@suse.cz>
756
757         * calls.c (combine_pending_stack_adjustment_and_call): Return the
758         adjustment; don't do the stack adjust.
759         (expand_call): Call compute_argument_block_size right before
760         allocating the block; update comment; don't do alignment sanity
761         checking for sibling call; use args_size instead of
762         unadjusted_args_size before args_size is adjusted.  Use
763         combine_pending_stack_adjustment_and_call to compute stack adjust
764         for must_preallocate case.
765
766         * expr.c (push_block): Remove shadow `temp' in inner scope.
767
768 2000-04-28  Jason Merrill  <jason@casey.cygnus.com>
769
770         * toplev.c (rest_of_compilation): Call
771         note_deferral_of_defined_inline_function even if the function
772         can't be inlined.
773
774 2000-04-28  Scott Bambrough  <scottb@netwinder.org>
775
776         * cpplex.c (_cpp_scan_line): Fix buffer overwrite.
777
778 2000-04-28  Richard Henderson  <rth@cygnus.com>
779
780         * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo.
781
782 2000-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
783
784         * timevar.c (init_timevar): DeANSIfy function definition.
785
786 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
787
788         * Makefile.in (timevar.o): Depend on flags.h.
789         * timevar.c (unused_stack_instances): New variable.
790         (timevar_push): Take a timevar_stack_def from
791         unused_stack_instances if available.
792         (timevar_pop): Push the popped timevar_stack_def onto
793         unused_stack_instances.
794         (TIMEVAR_ENABLE): New macro.
795         (timevar_def): Make standalone a 1-bit field.  Add field used.
796         (get_time): Rename parameter to now.  Return after clearing it if
797         not TIMEVAR_ENABLE.
798         (init_timevar): Do nothing if not TIMEVAR_ENABLE.
799         (timevar_pop): Likewise.
800         (timevar_stop): Likewise.
801         (timevar_push): Likewise.  Mark the timing variable as used.
802         (timevar_start): Likewise.
803         (timevar_print): Do nothing if not TIMEVAR_ENABLE.  Don't print
804         timevars that were never used.
805
806 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
807
808         * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are
809         always TREE_READONLY.
810
811 2000-04-27  Ulrich Drepper  <drepper@cygnus.com>
812
813         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference
814         for call instruction with mode QImode.
815
816 2000-04-27  Alex Samuel  <samuel@codesourcery.com>
817
818         * Makefile.in (OBJS): Add timevar.o.
819         (toplev.o): Depend on timevar.h.
820         (ggc-simple.o): Likewise.
821         (ggc-page.o): Likewise.
822         (timevar.o): New rule.
823         (timevar.h): New rule.
824
825         * timevar.h: New file.
826         * timevar.c: Likewise.
827         * timevar.def: Likewise.
828
829         * toplev.h (gc_time, parse_time, varconst_time): Remove.
830         * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR
831         throughout.
832         (TIMEVAR): Remove macro.
833         (gc_time, parse_time, varconst_time, integration_time, jump_time,
834         cse_time, gcse_time, loop_time, cse2_time, branch_prob_time,
835         flow_time, combine_time, regmove_time, sched_time,
836         local_alloc_time, global_alloc_time, flow2_time, peephole2_time,
837         sched2_time, dbr_sched_time, reorder_blocks_time,
838         rename_registers_time, shorten_branch_time, stack_reg_time,
839         to_ssa_time, from_ssa_time, final_time, symout_time, dump_time,
840         all_time): Remove.
841         (compile_file): Don't initialize time variables.  Call
842         init_timevar and start TV_TOTAL timer.  Call timevar_print instead
843         of many calls to print_time.
844         (rest_of_compilation): Add timing for reload_cse_regs.
845         (get_run_time): Removed to timevar.c.
846         (print_time): Likewise.
847         (get_run_time): Implement using TV_TOTAL time variable.
848         (print_time): Get total run time from get_run_time.
849         * ggc-page.c (ggc_collect): Push and pop TV_GC instead of
850         computing elapsed time explicitly.
851         * ggc-simple.c (ggc_collect): Likewise.
852         (gc_time): Remove declaration.
853
854 2000-04-27  Mark Mitchell  <mark@codesourcery.com>
855
856         * calls.c (combine_pending_stack_adjustment_and_call): New function.
857         (expand_call): Use it.
858
859 2000-04-27  Jan Hubicka  <jh@suse.cz>
860
861         * flow.c (mark_set_1):  Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT
862         fields.
863
864 Thu Apr 27 12:47:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
865
866         * config/mn10300/mn10300.md (movhi): Simplify.  Prefer data
867         registers.
868
869 Thu Apr 27 17:33:05 MET DST 2000  Jan Hubicka  <jh@suse.cz>
870
871         * function.c (epilogue_done): Pass whole insn to record_insns.
872
873 Thu Apr 27 16:55:28 MET DST 2000  Jan Hubicka  <jh@suse.cz>
874
875         * cse.c (CSE_ADDRESS_COST): Remove.
876         (find_best_addr): Add new parameter "MODE", use address_cost instead
877         of CSE_ADDRESS_COST
878         (address_cost): New.
879         (fold_rtx): Update call of find_best_addr.
880         * rtl.h (address_cost): Declare.
881         * loop.c (general_induction_var): Add new parameter "MODE", use
882         address_cost instead of ADDRESS_COST
883         (init_loop): Use address_cost instead of ADDRESS_COST.
884         (check_insn_for_givs): Update call of general_induction_var.
885         (find_mem_givs): Likewise.
886         (consec_sets_giv): Likewise.
887         * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost.
888         * i386.c (ix86_address_cost): New.
889         * i386-protos.h (ix86_address_cost): Declare.
890
891 Thu Apr 27 11:45:16 2000  Alexandre Oliva  <aoliva@cygnus.com>
892
893         * config/mn10300/mn10300.md (movqi): Simplify.  Prefer data
894         registers.
895
896 Thu Apr 27 16:11:00 MET DST 2000  Jan Hubicka  <jh@suse.cz>
897
898         * expr.c (store_expr): Use clear_storage instead of direct memset
899         libcall.
900
901 Thu Apr 27 10:36:51 2000  Alexandre Oliva  <aoliva@cygnus.com>
902
903         * config/mn10300/mn10300.c (mn10300_address_cost): Test
904         ASHIFT, AND and LABEL_REF.
905
906 Thu Apr 27 15:08:46 MET DST 2000  Jan Hubicka  <jh@suse.cz>
907
908         * invoke.texi (-foptimize-sibling-calls): Fix.
909
910 Thu Apr 27 14:54:22 MET DST 2000  Jan Hubicka  <jh@suse.cz>
911
912         * loop.c (load_mems)  Don't use hard registers for the hoisting.
913
914         * unroll.c (unroll_loop): Avoid overflow in the n_iterations
915         calculation; rename const_equiv array in the preconditioning code
916         from loop_unroll to loop_unroll_precondition
917
918 2000-04-27  Richard Henderson  <rth@cygnus.com>
919
920         * flow.c (struct propagate_block_info): Remove new_dead, new_live;
921         add new_set.
922         (propagate_one_insn): Clear it.  Don't update reg_live here.
923         (init_propagate_block_info): Update for pbi member changes.
924         (free_propagate_block_info): Likewise.
925         (mark_set_1): Know that zero_extract, sign_extract, and
926         strict_low_part don't kill their argument.  Alter hard subregs.
927         Update new_set for non-CLOBBER sets.  Update reg_live.
928         (find_auto_inc): Update reg_live, not new_dead.
929         (mark_used_reg): Update reg_live, not new_live.  Examine new_set
930         to determine if the reg in question was set this insn.  Only update
931         reg info with PROP_REG_INFO.
932
933 2000-04-26  Richard Henderson  <rth@cygnus.com>
934
935         * flow.c (allocate_reg_life_data): Set max_regno here ...
936         (life_analysis): ... not here.
937
938         * flow.c (calculate_global_regs_live): Force stack pointer
939         live at end.
940
941 2000-04-26  Richard Henderson  <rth@cygnus.com>
942
943         * jump.c (redirect_exp_1): Rework from old redirect_exp.  Never
944         commit change group changes.
945         (invert_exp_1): Similarly.
946         (redirect_exp, invert_exp): Use them.
947         (redirect_jump_1): New.
948         (invert_jump_1): New.
949         (jump_optimize_1): Remove code subsumed by condexec.c.
950         * rtl.h (invert_jump_1, redirect_jump_1): Declare.
951
952 2000-04-26  Richard Henderson  <rth@cygnus.com>
953
954         * rtlanal.c (dead_or_set_regno_p): Use find_regno_note.
955
956         * genconfig.c (main): Set all HAVE_foo to 1.
957
958         * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array.
959
960 2000-04-26  Alex Samuel  <samuel@codesourcery.com>
961
962         * invoke.texi: Document -fssa flag.
963
964 2000-04-26  Richard Henderson  <rth@cygnus.com>
965
966         * flow.c (count_reg_sets_1): Remove.
967         (count_reg_sets, count_reg_references): Remove.
968         (recompute_reg_usage): Implement with update_life_info.
969         Reallocate life data.
970
971 2000-04-26  Richard Henderson  <rth@cygnus.com>
972
973         * flow.c (update_life_info): Consider blocks null to mean the
974         universal set.
975         (calculate_global_regs_live): Likewise.
976         (life_analysis): Do that instead of collecting all_blocks.
977
978 2000-04-26  Richard Henderson  <rth@cygnus.com>
979
980         * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
981         a still-valid conditional jump.
982
983 2000-04-26  Richard Henderson  <rth@cygnus.com>
984
985         * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
986
987         * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability.
988         * flow.c (calculate_loop_depth): Remove.
989         * output.h (calculate_loop_depth): Don't declare.
990         * toplev.c (rest_of_compilation): Expand calculate_loop_depth
991         inline; run estimate_probability at the same time.
992
993 2000-04-26  Neil Booth  <NeilB@earthling.net>
994
995         * cpplib.h: "~=" is not a single pp-token.
996         * cpplex.c: Correct commentary.
997
998 2000-04-26  Richard Henderson  <rth@cygnus.com>
999
1000         * flow.c (mark_set_1): New arguments code and flags; update all
1001         callers.  Track regno_first and regno_last; do HARD_REGNO_NREGS
1002         test in one place.  Tidy flags tests.  Don't bias REG_N_REFS by
1003         loop_depth when optimizing for size.  Do new_dead update after
1004         emitting REG_UNUSED notes.  Merge mark_set_reg code.
1005         (mark_set_reg): Remove.
1006         (propagate_one_insn): Use mark_set_1 for call-clobbered registers;
1007         arrange to not emit REG_UNUSED notes.
1008
1009 2000-04-26  Richard Henderson  <rth@cygnus.com>
1010
1011         * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN.
1012         * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn.
1013
1014 2000-04-26  Richard Henderson  <rth@cygnus.com>
1015
1016         * flow.c (propagate_one_insn): Break out from propagate_block.
1017         (init_propagate_block_info): Likewise.
1018         (free_propagate_block_info): Likewise.
1019         (propagate_block): Use them.  Export.
1020         * basic-block.h: Declare them all.
1021
1022 2000-04-26  Richard Henderson  <rth@cygnus.com>
1023
1024         * basic-block.h (life_analysis): Declare here ...
1025         * output.h: ... not here.
1026         * flow.c (life_analysis): Remove nregs parameter; replace
1027         remove_dead_code with flags.  Remove ssa dead code check.
1028         Only init alias analysis if we'll use it.
1029         * reg-stack.c (reg_to_stack): Update life_analysis arguments.
1030         * ssa.c (convert_to_ssa): Likewise.
1031         (convert_from_ssa): Likewise.
1032         * toplev.c (rest_of_compilation): Likewise.
1033
1034 2000-04-26  Richard Henderson  <rth@cygnus.com>
1035
1036         * flow.c (flow_delete_block): Rename from delete_block.  Export.
1037         * basic-block.h (flow_delete_block): Declare.
1038
1039 2000-04-26  David S. Miller  <davem@redhat.com>
1040
1041         * optabs.c (emit_libcall_block): Verify insns with INSN_P before
1042         taking a PATTERN of it.
1043
1044 2000-04-26  <NeilB@earthling.net>
1045
1046         * cpplex.c (spell_other, spell_char): Remove.
1047         (SPELL_CHAR): New.
1048         (token_spelling, trigraph_map): Use unsigned chars.
1049         (_cpp_lex_line): Tidy up the switch statement.
1050         * cpplib.h: Implement spell_char with spell_string.
1051         (C): New.
1052
1053 2000-04-26  <RodneyBrown@pmsc.com>
1054
1055         * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal.
1056         * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal.
1057
1058 2000-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1059
1060         * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi,
1061         reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa,
1062         dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save,
1063         dwarf2out_return_save, dwarf2out_return_reg,
1064         dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename,
1065         add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label,
1066         gen_compile_unit_die, dwarf2out_init): Constify a char*.
1067
1068         * dwarf2out.h (dwarf2out_init): Likewise.
1069
1070         * dwarfout.c (filename_entry, primary_filename, last_filename,
1071         type_tag, output_compile_unit_die, dwarfout_init): Likewise.
1072
1073         * tree.h (dwarf2out_def_cfa, dwarf2out_window_save,
1074         dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save,
1075         dwarf2out_return_reg): Likewise.
1076
1077 2000-04-26  Andreas Jaeger  <aj@suse.de>
1078
1079         * extend.texi (Function Attributes): Fix description of pure
1080         attribute.
1081
1082 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
1083
1084         * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT
1085         before calling rest_of_compilation.
1086
1087 2000-04-26  Andreas Jaeger  <aj@suse.de>
1088
1089         * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in
1090         last patch.
1091
1092 2000-04-25  Richard Henderson  <rth@cygnus.com>
1093
1094         * cse.c (cse_insn): Emit barrier after unconditional jump.
1095
1096         * calls.c (expand_call): Disable tail call generation once
1097         rtx_equal_function_value_matters is false.
1098
1099         * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges
1100         like EDGE_EH edges.
1101
1102 2000-04-25  Jason Merrill  <jason@casey.cygnus.com>
1103
1104         * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR.
1105
1106         * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs.
1107
1108         * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE
1109         is the primary DIE for a member function.
1110         (gen_decl_die): Call set_decl_origin_self here.
1111         * dwarfout.c (output_decl): And here.
1112         * integrate.c (output_inline_function): Not here.
1113         Don't clear DECL_INLINE until after calling rest_of_compilation.
1114         (set_decl_origin_self): No longer static.
1115         * tree.h: Add prototype.
1116         * toplev.c (note_deferral_of_defined_inline_function): Only write
1117         out abstract instance for actual inlines.
1118
1119 2000-04-25  Alexandre Oliva  <aoliva@cygnus.com>
1120
1121         * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return
1122         EXTENDED_REGS only if TARGET_AM33.
1123         * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing
1124         SP_REGS to register allocation and reloading unless absolutely
1125         necessary.
1126         (movsi3): Remove special-case of adding non-constants to SP.
1127
1128 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1129
1130         * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires
1131         INCLUDES to search and does not provide any of its own.  Also it
1132         now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED
1133         parameters.  Also it does not call AC_DEFINE.
1134         (gcc_AC_NEED_DECLARATIONS): Likewise.  Also this macro now calls
1135         AC_DEFINE and provides for automatic entries for autoheader.
1136         (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test.
1137
1138         * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS
1139         so we can pass -I flags and include gansidecl.h/system.h in this
1140         test.
1141
1142         * acconfig.h: Delete all NEED_DECLARATION_* entries.
1143
1144 2000-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1145
1146         * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
1147         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
1148         ENABLE_GC_ALWAYS_COLLECT): Delete entries.
1149
1150         * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING,
1151         ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING,
1152         ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE
1153         for these macros.  Clean up spacing and linewraps.
1154
1155 2000-04-26  Jason Merrill  <jason@casey.cygnus.com>
1156
1157         * calls.c (expand_call): Use get_callee_fndecl.
1158
1159         * print-tree.c (print_node): Print the chain of an _EXPR.
1160
1161 Tue Apr 25 16:16:04 2000  Andrew MacLeod  <amacleod@cygnus.com>
1162                           Jim Wilson  <wilson@cygnus.com>
1163                           Andrew Haley  <aph@cygnus.com>
1164
1165         * config/ia64/crtbegin.asm: Add IA-64 unwind support.  Correct alloc
1166         and gp save/restore problems.
1167         * config/ia64/crtend.asm: Add IA-64 unwind support.
1168         * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size
1169         in fr_pad_size calculation.
1170         (save_restore_insns): Move PR save area.  Correct uses of
1171         RTX_FRAME_RELATED_P.
1172         (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P.
1173         (ia64_expand_epilogue): Add eh_epilogue support.
1174         (ia64_function_prologue): Emit .prologue directive.
1175         (ia64_init_machine_status, ia64_mark_machine_status): New functions.
1176         (ia64_override_options): Set init_machine_status and
1177         mark_machine_status.
1178         (rtx_needs_barrier): Handle bsp reads and writes.
1179         (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved):
1180         New static variables.
1181         (process_set, process_for_unwind_directive): New functions.
1182         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT,
1183         ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR,
1184         ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New
1185         macros.
1186         (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section.
1187         (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define.
1188         (struct machine_function): Define.
1189         * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns.
1190
1191 2000-04-25  Bruce Korb  <bkorb@gnu.org>
1192
1193         * fixinc/Makefile.in: make the removal of old programs more
1194         robust
1195         * fixinc/mkfixinc.sh: use the two new targets in the Makefile:
1196         install-bin and install-sh
1197
1198 2000-04-25  Nick Clifton  <nickc@cygnus.com>
1199
1200         * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not
1201         defined, define to return zero.
1202         (function_cannot_inline_p): If a function has any target
1203         specific attributes, then use the macro
1204         FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide
1205         whether it can be inlined.  If it cannot, issue a suitable
1206         explanation.
1207
1208         * tm.texi: Add a new node 'Inlining' to document the new macro
1209         FUNCTION_ATTRIBUTE_INLINABLE_P.
1210
1211 2000-04-25  Zack Weinberg  <zack@wolery.cumb.org>
1212
1213         * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix
1214         commentary.
1215
1216 2000-04-25  Neil Booth  <NeilB@earthling.net>
1217
1218         Restore previous patch, plus the following fixes:
1219
1220         * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in
1221         flags, not CPP_OPEN_PAREN.
1222         * cpplex.c (expand_token_space, init_token_list,
1223         cpp_free_token_list): Put the dummy token at list->tokens[-1].
1224         (_cpp_lex_line, _cpp_lex_file): token list is 0-based.
1225
1226 Tue Apr 25 14:06:40 2000  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
1227
1228         * config/i386/freebsd.h (INT_ASM_OP): Define.
1229
1230 Tue Apr 25 14:51:07 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1231
1232         * loop.c (strength_reduce): Fix typo in the last checkin.
1233
1234 Tue Apr 25 07:33:12 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1235
1236         * stor-layout.c (finalize_record_size): Simplify to use existing
1237         functions.
1238         (compute_record_mode): No longer static.
1239         * tree.h (compute_record_mode): New declaration.
1240
1241 2000-04-25  Neil Booth  <NeilB@earthling.net>
1242
1243         * Revert my patch below until cause of build failures
1244         determined.
1245
1246 2000-04-25  Richard Henderson  <rth@cygnus.com>
1247
1248         * combine.c (combine_instructions): Add missing argument
1249         to try_combine.
1250
1251         * toplev.c (rest_of_compilation): Delay sibcall optimization
1252         until after emit_eh_context.
1253
1254 2000-04-24  Nick Clifton  <nickc@redhat.com>
1255
1256         * combine.c (combine_instructions): Do not try to combine a
1257         sequence of insns when the second insn has been replaced by a
1258         note.
1259
1260 Mon Apr 24 17:34:18 2000  Mumit Khan  <khan@xraylith.wisc.edu>
1261
1262         * gcc.c (load_specs): New static function.
1263         (read_specs): Use it.
1264
1265         * gcc.c (lookup_compiler): Make multiple passes for case
1266         insensitive filesystems.
1267
1268 2000-04-24  Neil Booth  <NeilB@earthling.net>
1269
1270         * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE.
1271         * cpphash.h (_cpp_check_directive): new.
1272         * cpplex.c (handle_newline, cpp_free_token_list,
1273         init_trigraph_map, trigraph_ok, trigraph_replace,
1274         backslash_start, skip_block_comment, skip_line_comment,
1275         skip_whitespace, parse_name, parse_number, parse_string,
1276         copy_comment, _cpp_lex_line, spell_char, spell_string,
1277         spell_comment, spell_name, spell_other, _cpp_lex_file,
1278         _cpp_output_list): new.
1279         (expand_name_space): take length argument.
1280         (init_token_list): add comment list initialisation.
1281         (cpp_scan_line): use auto_expand_name_space.  PREV_WHITESPACE
1282         instead of HSPACE_BEFORE.
1283
1284         * cpplib.c (_cpp_check_directive): new
1285         * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT,
1286         DIGRAPH, UNSIGNED_INT, TOK_NAME): new.
1287         (HSPACE_BEFORE): delete.
1288         (TTYPE_TABLE): rearrange.
1289         (struct cpp_toklist): update.
1290
1291 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1292
1293         * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR,
1294         gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three
1295         argument form of AC_DEFINE.
1296
1297         * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER,
1298         HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY,
1299         WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK,
1300         HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG,
1301         HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise.
1302
1303         * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE.
1304
1305 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1306
1307         * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES,
1308         deduced.h): Use -isystem, not -I, for including system headers.
1309
1310 2000-04-24  Nick Clifton  <nickc@cygnus.com>
1311
1312         * config/fr30/fr30.md (addsi3): Do not use small add instruction if
1313         the source register is the frame pointer or arg pointer.
1314         (addsi3_small_int): Disallow if source register is the frame
1315         pointer or arg pointer.
1316
1317 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1318
1319         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant
1320         call to AC_MSG_RESULT.
1321
1322 2000-04-24  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
1323
1324         * invoke.texi: Correct grammatical errors, document
1325         -fno-gnu-keywords as identical to -fno-asm for C++.
1326
1327 2000-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1328
1329         * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION,
1330         GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT,
1331         GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE,
1332         AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG,
1333         EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_.
1334
1335         * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S,
1336         GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING,
1337         GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR,
1338         GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with
1339         new macros names.
1340
1341 2000-04-24  Mumit Khan  <khan@xraylith.wisc.edu>
1342
1343         * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro.
1344         (pop_alignment): Likewise.
1345         (handle_pragma_token): Likewise.
1346
1347 2000-04-24  Robert Lipe <robertlipe@usa.net>
1348
1349         * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD.
1350
1351 2000-04-24  Hiroyuki Machida <machida@sm.sony.co.jp>
1352
1353         * combine.c (try_combine): Update reg_nonzero_bits of
1354         newi2pat before newpat.
1355
1356 Mon Apr 24 10:19:48 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1357
1358         * loop.c (strength_reduce): Simplify test to INSN_P.
1359         (record_giv): Attempt to simplify the add value, use CONSTANT_P
1360         expressions instead of CONST_INT.
1361         (express_from_1): Likewise.
1362
1363 2000-04-24  Mark Mitchell  <mark@codesourcery.com>
1364
1365         * regs.h (reg_n_max): Don't declare.
1366         * flow.c (reg_n_max): Don't define.
1367         * regclass.c (renumber): Don't initialize to zero.
1368         (regno_allocated): Likewise.
1369         (reg_n_max): Define.
1370         (allocate_reg_info): Don't initialize unnecessarily.
1371
1372 Mon Apr 24 00:21:36 2000  Jeffrey A Law  (law@cygnus.com)
1373
1374         * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p
1375         and blockage_p in the newly allocated attribute.
1376
1377 Sun Apr 23 20:16:49 2000  Alexandre Oliva  <aoliva@cygnus.com>
1378
1379         * config/mn10300/mn10300.md (addsi): `inc4' on address
1380         registers does not modify cc, but `inc' on an extended
1381         register does.
1382
1383 Sun Apr 23 16:24:35 2000  Denis Chertykov  <denisc@overta.ru>
1384
1385         * reload.c (find_equiv_reg): Checks all valueno regs
1386         as a reload_reg_p regs.
1387
1388 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
1389
1390         * cpphash.c (collect_objlike_expansion): Add sanity check.
1391         (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST.  If
1392         the buffer is the empty string, return.  Mark __DATE__ and
1393         __TIME__ as XCONST nodes, not MCONST.
1394         (_cpp_macroexpand): Avoid pushing an empty buffer.
1395         (funlike_macroexpand): Don't pop token_buffer here.
1396
1397 Sun Apr 23 18:37:53 2000  Alexandre Oliva  <aoliva@cygnus.com>
1398
1399         * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro.
1400         (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros.
1401         (REGNO_EXTENDED_P, REGNO_AM33_P): New macros.
1402         (REGNO_OK_FOR_BASE_P): Define in terms of them.
1403         (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise.
1404         (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro.
1405         (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise.
1406
1407 Sun Apr 23 22:23:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1408
1409         * loop.c (simplify_giv_expr):  Be more agressive on simplifying
1410         constant MULT givs.
1411
1412 2000-04-23  Zack Weinberg  <zack@wolery.cumb.org>
1413
1414         * cpphash.h (struct definition): Move file, line, col members...
1415         (struct hashnode): ... here.  Also add 'disabled' flag.
1416         (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and
1417         T_IDENTITY.  Remove T_DISABLED.
1418         Update prototypes.
1419
1420         * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION.
1421         (collect_expansion): Split into collect_objlike_expansion and
1422         collect_funlike_expansion.
1423         (_cpp_macroexpand): Split out scan_arguments, stringify, and
1424         funlike_macroexpand.
1425         (_cpp_compare_defs): Rename compare_defs, make static.
1426         (_cpp_make_hashnode): Initialize hp->disabled.
1427         (macro_cleanup): Adjust for new token types.  Clear
1428         m->disabled.
1429         (_cpp_create_definition): Move code here to determine what
1430         sort of macro it is, and code to check for redefinitions, from
1431         do_define.  Implement a few simple cases without creating a
1432         full DEFINITION.
1433         (_cpp_macroexpand, special_symbol, _cpp_dump_definition):
1434         Handle the simple cases.
1435         (push_macro_expansion): Set buf->has_escapes and hp->disabled
1436         here.
1437
1438         * cppinit.c (builtin_array): Change MCONST to XCONST
1439         everywhere.
1440         * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here;
1441         fix check for disabled and function-like macros.
1442         * cpplib.c (do_define): Move most logic to
1443         _cpp_create_definition.
1444         (do_undef): Handle new special token types.
1445
1446 Sun Apr 23 14:27:44 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1447
1448         * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead
1449         of CONSTANT_P for mult_val; always use validate_change to update insn.
1450
1451 2000-04-22  Zack Weinberg  <zack@wolery.cumb.org>
1452
1453         * cpphash.c (trad_stringify, add_pat): New functions.
1454         (collect_expansion): Restore support for -traditional syntax.
1455         Use trad_stringify and add_pat.
1456         (_cpp_macroexpand): Restore support for -traditional semantics.
1457         * cpplex.c (_cpp_scan_line): Don't change space_before if we
1458         get a COMMENT token.
1459         (_cpp_lex_token): Provide COMMENT tokens to caller if
1460         traditional and parsing_define_directive.
1461         (skip_comment): Warn about // comments if -Wtraditional.
1462         * cpplib.c (do_define): Fix typo.  Create EMPTY nodes with
1463         proper node type.
1464         (do_undef): Don't warn about undefining EMPTY nodes.
1465
1466 Sat Apr 22 22:35:38 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1467
1468         * loop.c (strength_reduce): Fix biv removal code.
1469
1470 2000-04-22  Richard Henderson  <rth@cygnus.com>
1471
1472         * predict.c (estimate_probability): Examine both sides of
1473         a branch for no exits.  Use 90% not 50% for predict taken.
1474         Reorg for one copy of note generation code.
1475
1476 2000-04-22  Richard Henderson  <rth@cygnus.com>
1477
1478         * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg.
1479
1480 2000-04-22  Richard Henderson  <rth@cygnus.com>
1481
1482         * diagnostic.c (init_output_buffer): Don't initialize format_args.
1483         (output_clear): Likewise.
1484         (output_printf): Use va_copy.
1485         (vline_wrapper_message_with_location): Likewise.
1486         (v_message_with_decl): Likewise.
1487         (line_wrapper_printf): VA_START infor buffer.format_args directly.
1488         * system.h (va_copy): Provide default implementation.
1489
1490 2000-04-22  Richard Henderson  <rth@cygnus.com>
1491
1492         * predict.c (expected_value_to_br_prob): Don't bomb if op1 of
1493         the collected condition is not a constant.
1494
1495 2000-04-22  Gabriel Dos Reis  <gdr@codesourcery.com>
1496
1497         * diagnostic.h: New file.
1498
1499         * Makefile.in (diagnostic.o): Depends on diagnostic.h
1500
1501         * diagnostic.c: Tweak.  Rationalize the output logic.  Adjust
1502         various function prototypes.
1503         (diagnostic.h): #include.
1504         (struct output_buffer): Move into diagnostic.h.
1505         (get_output_prefix): Rename to output_get_prefix.  Export.
1506         (init_output_buffer): Export. Break out.  Ajust intialization.
1507         (output_space_left, output_append): Export.
1508         (output_newline): Rename to output_add_newline.  Export.
1509         (output_clear): Nullify additional output_buffer fields.
1510         (output_puts): Rename to output_add_string.  Export.
1511         (dump_output): Rename to output_flush_on.  Export.
1512         (build_location_prefix): Constify return-type.
1513         (emit_output_prefix): Rename to output_emit_prefix. Export.
1514         (set_real_maximum_length): New function.
1515         (output_set_maximum_length): Ditto
1516         (output_clear): Ditto.
1517         (output_add_character): Ditto.
1518         (output_add_integer): Ditto.
1519         (output_add_space): Ditto.
1520         (output_format): Ditto.
1521         (output_printf): Adjust buffer initialization.
1522         (vline_wrapper_message_with_location): Ditto.
1523         (v_message_with_decl): Ditto.  Adjust call to output_puts
1524         and get_output_prefix.
1525         (default_print_error_function): Adjust buffer intialization.
1526
1527 Sat Apr 22 06:45:04 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1528
1529         * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE
1530         of VOID_TYPE.
1531
1532 Fri Apr 21 18:33:09 2000  Alexandre Oliva  <aoliva@cygnus.com>
1533
1534         * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead
1535         of explicit 0.
1536
1537 Fri Apr 21 18:30:00 2000  Alexandre Oliva  <aoliva@cygnus.com>
1538
1539         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more
1540         accurate data about SP moves.
1541
1542 Fri Apr 21 18:28:28 2000  Alexandre Oliva  <aoliva@cygnus.com>
1543
1544         * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added
1545         aliases to AM33 registers.
1546
1547 Fri Apr 21 18:26:17 2000  Alexandre Oliva  <aoliva@cygnus.com>
1548
1549         * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16
1550         to all EXTENDED bitmaps.
1551
1552 Fri Apr 21 18:17:12 2000  Alexandre Oliva  <aoliva@cygnus.com>
1553
1554         * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare.
1555         * config/mn10300/mn10300.h (ADDRESS_COST): New macro.
1556         * config/mn10300/mn10300.c (mn10300_address_cost): New function.
1557
1558 Fri Apr 21 18:11:56 2000  Alexandre Oliva  <aoliva@cygnus.com>
1559
1560         * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when
1561         the operand is not constant.
1562
1563 Fri Apr 21 14:58:29 2000  Denis Chertykov  <denisc@overta.ru>
1564
1565         * reload.c (find_equiv_reg): Checks all valueno and regno regs
1566         as a call-clobbered regs.
1567
1568 Fri Apr 21 13:30:26 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1569
1570         * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG.
1571         * rtl.h: Likewise.
1572         * rtl.def: Update comment.
1573         * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER.
1574         * integrate.c (expand_inline_function): Likewise.
1575         * profile.c (branch_prob): Likewise.
1576         * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG.
1577         * print-rtl.c (print_rtx): Likewise.
1578         * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise.
1579         (reemit_notes): Likewise; also use enum insn_note.
1580
1581         * stor-layout.c (layout_decl): Only set DECL_MODE if not already set.
1582         (place_field): Properly compute know and actual alignment.
1583
1584         * gengenrtl.c (gencode): Write obstack_alloc_rtx function start
1585         in proper format.
1586
1587         * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL
1588         note for REG1.
1589
1590 2000-04-21  Zack Weinberg  <zack@wolery.cumb.org>
1591
1592         * cpphash.c (struct arg, struct arglist): Const-ify strings.
1593         (warn_trad_stringify, duplicate_arg_p): New helper functions.
1594         (collect_expansion): Rewrite to scan over a token list.
1595         Remove -traditional support.
1596         (collect_formal_parameters): Rename to collect_params; rewrite
1597         to scan over a token list.
1598         (_cpp_create_definition): Adjust to scan a token list.
1599         (_cpp_macroexpand): Remove -traditional support.
1600         (_cpp_compare_defs): Whitespace is now canonicalized.
1601         (comp_def_part): Delete function.
1602
1603         * cpphash.h: Update prototypes.
1604         * cpplex.c (init_token_list): Don't set lineno if there is no
1605         buffer.
1606         (pedantic_whitespace): New function.
1607         (_cpp_scan_line): Mark tokens that had hspace before.  Don't
1608         consume a newline.  Use pedantic_whitespace.
1609         (_cpp_lex_token): Remove support for -traditional macros.
1610         (_cpp_get_define_token): Delete.
1611         (_cpp_get_directive_token): Do the real work here.  Use
1612         pedantic_whitespace.
1613         (_cpp_init_input_buffer): Initialize pfile->directbuf.
1614
1615         * cpplib.c (get_macro_name): Delete.
1616         (do_define): Read the entire line into pfile->directbuf, then
1617         feed the token list to _cpp_create_definition.
1618         * cpplib.h (HSPACE_BEFORE): new define.
1619         (struct cpp_reader): Add a toklist member, "directbuf".
1620
1621         * predict.c (estimate_probability): New heuristic: if a jump
1622         branches around a block with no successors, predict it taken.
1623         Disentangle control flow.
1624
1625 2000-04-20  Richard Henderson  <rth@cygnus.com>
1626
1627         * loop.c (emit_iv_add_mult): Revert last change.
1628
1629 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1630
1631         * cpplib.h (enum cpp_ttype): Add token types for all
1632         punctuators.  Distinguish pp-numbers from valid C numbers.
1633         Give some tokens better names.  Initialize from macro.
1634         (struct cpp_name, cpp_token, cpp_toklist): New data
1635         structures.
1636         Update prototypes.
1637         * cpplex.c (bump_column, expand_name_space,
1638         expand_token_space, init_token_list, cpp_output_list,
1639         _cpp_scan_line):  New functions.
1640         (output_line_command): Add third argument, new line number.
1641         * cpphash.h: Update prototypes.
1642         * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new
1643         token names.
1644
1645 2000-04-20  Richard Henderson  <rth@cygnus.com>
1646
1647         * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier.
1648
1649 2000-04-20  Zack Weinberg  <zack@wolery.cumb.org>
1650
1651         * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the
1652         object pointed to.
1653
1654 Thu Apr 20 14:19:18 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1655
1656         * loop.c (emit_iv_add_mult):  Simplify it's input and emit
1657         REG_EQUAL note explaining the calculated value.
1658
1659         * calls.c (expand_call): Avoid unnecesary precalculation
1660         and outgoing parameters space guarding for sibling calls.
1661         (store_one_arg): Likewise.
1662
1663 Thu Apr 20 08:01:07 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1664
1665         * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling.
1666         (rest_of_compilation): Write sibling dump file and account
1667         for time as jump time.
1668         * invoke.texi: Update documentation on dump flags.
1669
1670 2000-04-19  Marek Michalkiewicz  <marekm@linux.org.pl>
1671
1672         * avr.c: #include "system.h" instead of <stdio.h> and <stdlib.h>.
1673
1674 2000-04-19  Zack Weinberg  <zack@wolery.cumb.org>
1675
1676         * cpphash.c (special_symbol): Represent an empty macro with
1677         "\r \r " not just "\r ".
1678         (_cpp_macroexpand): Correct condition for the foo ( ) special
1679         case.
1680         (unsafe_chars): Handle EOF as second argument.
1681         (push_macro_expansion): Simplify test for removing escape at
1682         end.  Do not trim both escapes if there is no text in between.
1683
1684 2000-04-19  Jim Blandy  <jimb@redhat.com>
1685
1686         * dwarf2out.c (DWARF2_ADDR_SIZE): New macro.  Use it instead
1687         of PTR_SIZE, when appropriate.
1688
1689 2000-04-19  Mark Mitchell  <mark@codesourcery.com>
1690
1691         * system.h (ONLY_INT_FIELDS): Make sure it is defined.
1692         (USE_ENUM_BITFIELDS): Fix typo.
1693
1694 Wed Apr 19 12:14:55 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1695
1696         * stor-layout.c (place_field): Set rli->offset_align properly.
1697
1698 2000-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1699
1700         * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG,
1701         INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY,
1702         PARM_BOUNDARY): Remove unnecessary casts.
1703
1704 Wed Apr 19 12:02:37 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1705
1706         * calls.c (precompute_arguments): Remove must_preallocate and
1707         args_size calls.
1708         (expand_call): Update call of precompute_arguments.
1709
1710         * loop.c (check_insn_for_bivs, for_every_insn_in_loop,
1711         check_insn_for_givs): Break out from ...
1712         (strength_reduce) ... here; use for_every_insn_in_loop to call
1713         check_insn_for_givs.
1714         * loop.h (for_every_insn_in_loop): Declare.
1715         (loop_insn_callback): New type.
1716
1717 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1718
1719         * cpplib.c (do_pragma_poison):  Strings in the token buffer are
1720         not nul-terminated.
1721
1722 Tue Apr 18 16:04:12 2000  Jim Wilson  <wilson@cygnus.com>
1723
1724         * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if
1725         flag_pic and RELOC.
1726
1727 2000-04-18  Zack Weinberg  <zack@wolery.cumb.org>
1728
1729         * cccp.c, cexp.y, cexp.c, cccp.1: Removed.
1730
1731         * configure.in: Delete --disable-cpplib option and all
1732         references to cpp_main.
1733         * configure: Regenerate.
1734         * Makefile.in: Remove all references to CCCP, CCCP_OBJS,
1735         @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o,
1736         cccp.o, cccp, or cppmain.  Link cppmain.o straight to
1737         cpp$(exeext).  Add --no-headers to makeinfo command line when
1738         generating INSTALL.  Install and uninstall cpp.1 manpage, not
1739         cccp.1.
1740         * install.texi: Delete all references to cexp.y/cexp.c.
1741         Delete ancient instructions for compiling GCC on 3b1.
1742         * INSTALL: Regenerate.
1743
1744         * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff,
1745         mips/t-elf, mips/t-r3900: Remove references to cccp.c.
1746         * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to
1747         cexp.c/cexp.y.
1748         * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING,
1749         which is no longer tested anywhere.
1750
1751         * cppinit.c (handle_option): Don't run error message through
1752         gettext twice.
1753
1754 Tue Apr 18 14:16:47 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1755
1756         * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot.
1757         * cpperror.c (hashtab.h): Now include.
1758         * cppexp.c (hashtab.h): Likewise.
1759         * cpplex.c (hashtab.h): Likewise.
1760         * cppfiles.c (hashtab.h): Likewise.
1761         (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type
1762         to htab_find_slot_with_hash.
1763         * cpphash.c (hashtab.h): Now include.
1764         (_cpp_lookup_slot): INSERT is now enum insert_option.
1765         * cpphash.h (_cpp_lookup_slot): Likewise.
1766         * cppinit.c (hashtab.h): Include earlier.
1767         (initialize_builtins): Pass enum to htab_find_slot.
1768         * cpplib.c (hashtab.h): Now include.
1769         (do_define, do_undef): Pass enum type to _cpp_lookup_slot.
1770         (do_pragma_poison, do_assert): Likewise.
1771         * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to
1772         htab_find_slot_with_hash.
1773         * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise.
1774         * tree.c (type_hash_add): Likewise.
1775         (build1): Minor cleanup.
1776
1777         * ggc-common.c: Add missing blanks.
1778         * print-tree.c (print_node): Print DECL_OFFSET_ALIGN.
1779         * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment.
1780
1781         * stmt.c (mark_case_node): New function.
1782         (mark_case_nesting): Call it.
1783
1784         * expmed.c (emit_store_flag): If comparing two-word integer
1785         with zero, can optimize NE, EQ, GE, and LT.
1786
1787         * c-decl.c (mark_binding_level): Use 'for' instead of `while'.
1788         * conflict.c: Minor cleanups.
1789         * optabs.c: Add blank line
1790         * simplify-rtx.c: Minor cleanups.
1791
1792 2000-04-18  Stan Cox  <scox@cygnus.com>
1793
1794         * gengenrtl.c (genlegend): Fix misspelling.
1795
1796 2000-04-18  Robert Lipe  <robertlipe@usa.net>
1797
1798         * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added.  Check that
1799         bitfields of the host compiler are not signed quantities.
1800         * config.in: Regenerate.
1801         * configure: Regenerate.
1802         * system.h (USE_ENUM_BITFIELDS): Added.
1803         (ENUM_BITFIELDS): Added.
1804         * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD.
1805         (SHORT_ENUM_BUG): Deleted.
1806         * tree.h (tree_common): Members `code', `mode', `built_in_class',
1807         now ENUM_BITFIELD.
1808         * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted.
1809         (CODE_FIELD_BUG): Likewise.
1810         * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG.
1811         (OLD_CC): Likewise.
1812         * config/m68k/x-ccur (X_CFLAGS): Likewise.
1813
1814 2000-04-18  Mark Mitchell  <mark@codesourcery.com>
1815
1816         * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the
1817         mark is active.
1818
1819 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1820
1821         * cppexp.c (lex): Don't assume tokens are NUL terminated.
1822         * cpplib.c (do_include, do_import, do_include_next,
1823         read_line_number, detect_if_not_defined): Likewise.
1824         * cpphash.c (collect_expansion): Likewise.
1825         (special_symbol, _cpp_macroexpand): Check return from
1826         cpp_file_buffer.
1827         * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete
1828         macros.  Delete all uses.
1829
1830         * gcc.dg/cpp-mi.c: Add two more test cases.
1831         * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files.
1832
1833 2000-04-17  Richard Henderson  <rth@cygnus.com>
1834
1835         * bb-reorder.c (fixup_reorder_chain): Don't look up new block again.
1836         (reorder_basic_blocks): If no epilogue in rtl, force last block last.
1837
1838 2000-04-17  Mark Mitchell  <mark@codesourcery.com>
1839
1840         * function.c (expand_function_start): Use hard_function_value to
1841         compute the RTL to use for DECL_RESULT.
1842
1843 Mon Apr 17 23:35:29 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1844
1845         * i386.c (athlon_cost): Fix lea, divide and XFmode move costs.
1846         (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1847          x86_memory_mismatch_stall): New global variables.
1848         (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only
1849         alloved; fix load penalties for Athlon.
1850         * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency,
1851         x86_memory_mismatch_stall): Declare.
1852         (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY,
1853          TARGET_MEMORY_MISMATCH_STALL): New.
1854         * i386.md (athlon scheduling parameters): Fix latencies according to
1855         Athlon Optimization Manual.
1856         (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to
1857         vector.
1858         (fsqrt instruction patterns): Set athlon_decode to direct.
1859         (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for
1860         PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines.
1861         (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY
1862         and TARGET_PARTIAL_REGISTER_STALL machines.
1863         (pushdf_nointeger): New pattern.
1864         (pushdf_integer): Rename from pushdf.
1865         (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines.
1866         (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines.
1867
1868 2000-04-17  Richard Henderson  <rth@cygnus.com>
1869
1870         * loop.c (canonicalize_condition): Add WANT_REG argument.
1871         Stop the search if we match it.
1872         * expr.h (canonicalize_condition): Update decl.
1873         * predict.c (expected_value_to_br_prob): Use it.  Track last
1874         expected value note.
1875         (find_expected_value): Remove.
1876
1877         * reorg.c (mostly_true_jump): Always use BR_PROB if present.
1878
1879 2000-04-17  Zack Weinberg  <zack@wolery.cumb.org>
1880
1881         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]).
1882         (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of
1883         a plain file.
1884         * configure.in: Call AC_FUNC_MMAP_FILE.
1885         * configure: Regenerate.
1886         * config.in: Regenerate.
1887
1888         * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP.
1889         * fixinc/fixincl.c: Likewise.
1890
1891 2000-04-17  Richard Henderson  <rth@cygnus.com>
1892
1893         * builtins.c (expand_builtin_expect): New.
1894         (expand_builtin): Call it.
1895         * builtins.def (BUILT_IN_EXPECT): New.
1896         * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect.
1897         * extend.texi: Document it.
1898
1899         * predict.c (expected_value_to_br_prob): New.
1900         (find_expected_value): New.
1901         * basic-block.h (expected_value_to_br_prob): Declare.
1902         * toplev.c (rest_of_compilation): Invoke it.
1903
1904         * rtl.h (NOTE_EXPECTED_VALUE): New.
1905         (NOTE_INSN_EXPECTED_VALUE): New.
1906         * rtl.c (note_insn_name): Update.
1907         * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special
1908         cases; handle NOTE_INSN_EXPECTED_VALUE.
1909
1910 2000-04-17  Jakub Jelinek  <jakub@redhat.com>
1911
1912         * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use
1913         leaf sibcall delay slot if flag_pic.
1914         (output_sibcall): Always emit call for leaf sibcall if flag_pic.
1915
1916 2000-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1917
1918         * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto.
1919
1920         * fixproto: If fix-header fails, exit with an error.
1921
1922 Mon Apr 17 14:59:36 MET DST 2000  Jan Hubicka  <jh@suse.cz>
1923
1924         * cse.c (struct check_depdendence_data): New.
1925         (check_dependence): New function.
1926         (invalidate): Use check_depdenence.
1927
1928 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1929
1930         * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that
1931         UNITS_PER_WORD is unsigned.
1932
1933         * tree.h (struct tree_common): Remove misleading comment.
1934
1935 2000-04-16  Dave Pitts  <dpitts@cozx.com>
1936
1937         * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole
1938         message in quotes. Otherwise, IBM's make program treats the '#' as the
1939         start of a comment and ignores the remainder of the line.
1940
1941         * c-lex.c (yylex): Change for EBCDIC, lower case characters preceed
1942         upper case.
1943         * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC.
1944         * cexp.y (initialize_random_junk): Likewise.
1945         * cppfiles.c (find_include_file): Cast alloca return value.
1946         * cppinit.c (initialize_standard_includes): Likewise.
1947         * cpplib.c (cpp_define, cpp_undef): Likewise.
1948         * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT.
1949         * final.c (output_asm_insn): Allow for holes in EBCDIC.
1950         * fold-const.c (CHARMASK): New.
1951         (real_hex_to_f): Use it.
1952         * real.c (CHARMASK): New.
1953         (etoasc, asctoeg): Use it.
1954         (asctoeg): EBCDIC lower case characters preceed upper case.
1955
1956         * i370.c (mvs_add_label): Change spacing for coding conventions.
1957         * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the
1958         outputing case vectors.
1959         (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT.
1960         (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check,
1961         since vector in in the data CSECT.
1962         (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation.
1963         * i370.md (Many patterns): Put the length in the XL directives.
1964         (movdi): Put back STM and MVC in definition.
1965         (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370
1966         pattern using the TCA.
1967         * oe.h (CPP_SPEC): Added to allow trigraphs.
1968         * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does
1969         not support the "long long" type.
1970
1971 2000-04-16  Mark Mitchell  <mark@codesourcery.com>
1972
1973         * config/mips/mips-protos.h (mips_legitimate_address_p): New
1974         function.
1975         (mips_reg_mode_ok_for_base_p): Likewise.
1976         * config/mips/mips.h (REG_OK_STRICT_P): Don't define.
1977         (REG_OK_FOR_INDEX_P): Define unconditionally.
1978         (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p.
1979         (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p.
1980         * config/mips/mips.c (mips16_simple_memory_operand): Adjust now
1981         that GET_MODE_SIZE is unsigned.
1982         (mips_reg_mode_ok_for_base_p): Define.
1983         (mips_legitimate_address_p): Likewise.  Adjust now
1984         that GET_MODE_SIZE is unsigned.
1985         (block_move_loop): Make the number of bytes unsigned.
1986         (expand_block_move): Likewise.
1987         (function_arg): Make the loop counter unsigned to match the
1988         boundary condition.
1989
1990 2000-04-16  Richard Henderson  <rth@cygnus.com>
1991
1992         * rtl.h (enum insn_note): New enumeration.  Subsume
1993         NOTE_INSN_DELETED and friends.
1994         (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS.
1995         * rtl.c (note_insn_name): Tweak string order.
1996
1997 2000-04-15  Zack Weinberg  <zack@wolery.cumb.org>
1998
1999         * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it
2000         to offset * 2.
2001
2002         * cpplex.c (output_line_command): Remove debugging prints.
2003         (cpp_output_tokens): Don't write out a zero-length buffer or
2004         try to see if it has a newline in it.
2005         (_cpp_expand_to_buffer): Copy the source buffer before pushing.
2006         (_cpp_read_and_prescan): Move shift-down of pushback bytes to
2007         the end of the loop.  Use memmove.  Don't read past the end of
2008         the buffer.  Remove trailing newlines from error messages.
2009
2010 2004-04-16  Neil Booth  <NeilB@earthling.net>
2011
2012         * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new.
2013         * cpplib.c: Add new syntax flags to directive table, and
2014         supporting macros.
2015
2016 2000-04-15  Ulrich Drepper  <drepper@redhat.com>
2017
2018         * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once
2019         using ret $N.
2020
2021 2000-04-15  David Edelsohn  <edelsohn@gnu.org>
2022
2023         * toplev.c (display_help): Prefix "f" to "sched-verbose=".
2024         * haifa-sched.c: Update -fsched-verbose comments to use "=".
2025
2026 Sat Apr 15 10:59:19 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2027
2028         * Makefile.in (ggc-page.o): Now includes toplev.h.
2029         * ggc-page.c (toplev.h): Now included.
2030         (gc_time): Remove declaration.
2031         (ggc_collect): TIME now long.
2032         * toplev.c (parse_time, varasm_time, gc_time): Still global; all
2033         others static.
2034         * toplev.h (gc_time, parse_time, gc_time): New declarations.
2035
2036         * toplev.c: Make *_time variable long to reduce chance of overflow.
2037         (TIMEVAR): Likewise for `otime'.
2038         (print_time): Arg is now long; compute percentage in FP and round.
2039         * toplev.h (print_time): Arg is long.
2040
2041         * tree.c: Minor whitespace changes.
2042
2043         * configure.in (alpha*-*-*): Add config/alpha/t-alpha.
2044         * configure: Rebuilt.
2045         * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi.
2046         (__fixunsxfDI): Renamed from __fixunsxfdi.
2047         (__fixunsdfDI): Renamed from __fixunsdfdi.
2048         (__fixunssfDI): Renamed from __fixunssfdi.
2049         (__floatdisf): Use proper type in REP_BIT macro.
2050         (__fixunsxfSI): Renamed from __fixunsxfsi.
2051         (__fixunsdfSI): Renamed from __fixunsdfsi.
2052         (__fixunssfSI): Renamed from __fixunssfsi.
2053         * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4.
2054         Change location of macros and upper-case some names as above.
2055         * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd.
2056         * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files.
2057
2058         * varasm.c (assemble_variable): Add cast to remove warning.
2059         (immed_real_const_1): Only use CONST[01]_RTX if not in nested function.
2060
2061         * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change.
2062         * optabs.c (emit_libcall_block): If have REG_EH_REGION, update
2063         region number to -1.
2064
2065 2000-04-15  Richard Earnshaw (rearnsah@arm.com)
2066
2067         * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then
2068         call unshare_all_rtl.
2069
2070         * arm.md (movhi): REGNO_POINTER_ALIGN is now bits.
2071
2072 Fri Apr 14 16:58:45 2000  Jim Wilson  <wilson@cygnus.com>
2073
2074         * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3):
2075         Use .s1 not .s0 for all FP instructions.
2076
2077 2000-04-14  Zack Weinberg  <zack@wolery.cumb.org>
2078
2079         * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public
2080         interfaces.
2081         (safe_fwrite, output_line_command): New static functions.
2082         (cpp_expand_to_buffer): Now private to cpplib.
2083         (cpp_scan_buffer): Take a printer.
2084
2085         * cpphash.h: Update prototypes.
2086         * cpplib.h: Update prototypes.
2087         (cpp_printer): New.
2088         (cpp_buffer): Remove last_nominal_fname.
2089         (cpp_reader): Remove lineno.
2090
2091         * cppmain.c: Use a cpp_printer.
2092         * fix-header.c: No need to inhibit line commands.  Call
2093         cpp_start_read with no printer.
2094
2095         * cpperror.c (cpp_notice_from_errno): Provide default name.
2096         * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions.
2097         (find_include_file, cpp_read_file): Use make_IHASH.
2098         (file_cleanup): Set control_macro and clear
2099         input_stack_listing_current here.
2100         (_cpp_execute_include): Don't output entering-file marker.
2101         * cpphash.c (special_symbol): Look for the line number in the
2102         buffer, not the reader.
2103         (_cpp_macroexpand): No need to disable line commands.
2104         (_cpp_dump_definition): No need to generate line commands.
2105         (dump_hash_helper): Remove excess newline from output.
2106         * cppinit.c (dump_special_to_buffer): No need to generate line
2107         commands.
2108         (cpp_printer_init): New.
2109         (cpp_start_read): Take a printer, and start it up if it's not
2110         NULL.  No need to generate line commands.
2111         (cpp_finish): Expect no buffers stacked at all.  Take a
2112         printer argument, and flush the output buffer if it's not
2113         NULL.
2114         * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer.
2115         Don't put two hashes at the beginning of an assertion.
2116         (cpp_get_token): Don't increment pfile->lineno or emit line
2117         commands here.  Return EOF if there's no buffer when we get
2118         EOF.
2119         * cpplib.c (do_define, skip_if_group):
2120         No need to disable line commands.
2121         (_cpp_output_line_command): Delete function.
2122         (do_line): Don't emit line commands here, but set things up so
2123         they will be emitted if necessary.  Use _cpp_fake_ihash to
2124         make unique nominal_fnames if necessary.
2125         (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line
2126         with 0 for column, not -1.
2127         (_cpp_handle_eof): Don't set the control macro here.  Don't
2128         clear input_stack_listing_current here.  Don't emit line
2129         commands.
2130
2131 2000-04-14  Geoff Keating  <geoffk@cygnus.com>
2132
2133         * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty
2134         always, use the default SVR4 start address.
2135
2136         * config/rs6000/linux.h (LINK_SPEC): Don't define.
2137         (LINK_SHLIB_SPEC): Define.
2138         (LINK_START_DEFAULT_SPEC): Define.
2139         (LINK_OS_DEFAULT_SPEC): Define.
2140
2141         * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros.
2142
2143         * config/rs6000/eabi.asm (__eabi): Call __init rather than
2144         __do_global_ctors to handle constructors.
2145         * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin.
2146         (STARTFILE_YELLOWKNIFE_SPEC): Likewise.
2147         (STARTFILE_MVME_SPEC): Likewise.
2148         (STARTFILE_SIM_SPEC): Likewise.
2149         (ENDFILE_ADS_SPEC): Use crtend.
2150         (ENDFILE_YELLOWKNIFE_SPEC): Likewise.
2151         (ENDFILE_MVME_SPEC): Likewise.
2152         (ENDFILE_SIM_SPEC): Likewise.
2153         (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS.
2154         (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS.
2155         (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects.
2156         (ENDFILE_LINUX_SPEC): Use crtendS for shared objects.
2157         * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o.
2158         (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS.
2159         (CRTSTUFF_T_CFLAGS_S): Define.
2160         * config/rs6000/eabi-ctors.c: Delete.
2161
2162         * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte
2163         boundary.
2164         (__fini): Likewise.
2165         * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame.
2166         boundary.
2167         (__fini): Likewise.
2168
2169 Fri Apr 14 16:09:02 2000  Jim Wilson  <wilson@cygnus.com>
2170
2171         * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift
2172         plus mask size is smaller or equal to the mode size.
2173
2174 Fri Apr 14 18:07:30 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2175
2176         * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK
2177         not yet set.
2178
2179         * expr.c (reload.h): Now included.
2180         (emit_block_move): Set volatile_ok when checking for movstr.
2181         (emit_move_1): Check for replacements in addresses in multi-word case.
2182         * Makefile.in (expr.o): Now includes reload.h.
2183
2184         * flow.c (count_basic_blocks): Remove unused var PREV_CALL.
2185         Never have a LIBCALL end a basic block.
2186         (find_basic_blocks_1): Likewise.
2187         Reorganize CALL_INSN cases.
2188
2189         * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change.
2190
2191 Fri Apr 14 10:54:22 2000  Jim Wilson  <wilson@cygnus.com>
2192
2193         * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete
2194         completers from mov.ret instruction.
2195
2196 2000-04-14  Richard Henderson  <rth@cygnus.com>
2197
2198         * fold-const.c (extract_muldiv): Don't distribute and widen
2199         multiply across plus for non-sizetype unsigned types.
2200
2201 2000-04-14  Richard Henderson  <rth@cygnus.com>
2202
2203         * flow.c (find_auto_inc): Don't autoinc eliminable registers.
2204         If the original source is dead in the incr insn, it's dead now.
2205
2206 Fri Apr 14 07:40:32 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2207
2208         * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to
2209         see if DECL_BIT_FIELD needs to still be set.
2210
2211         * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7.
2212
2213         * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call
2214         print_int_cst_octal with something that's not an INTEGER_CST.
2215
2216         * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG
2217         and not a SUBREG to a FLOAT rtl.
2218
2219 Thu Apr 13 19:39:56 2000  Clinton Popetz  <cpopetz@cygnus.com>
2220
2221         * emit-rtl.c (try_split): Avoid infinite loop if the split
2222         results in a sequence that contains the original insn.
2223
2224 2000-04-13  Andreas Jaeger  <aj@suse.de>
2225
2226         * config/mips/mips.c (expand_block_move): Pass alignment
2227         argument to move_by_pieces in bits, not bytes.
2228
2229         * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and
2230         __pic__ for little endian.
2231
2232 2000-04-13  Andreas Jaeger  <aj@suse.de>
2233
2234         * config/i386/i386-protos.h: Add prototype for
2235         uno_comparison_operator.
2236
2237 Thu Apr 13 15:55:08 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2238
2239         * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage.
2240         * calls.c (ECF_PURE): New flag.
2241         (emit_call_1): Handle ECF_PURE calls.
2242         (initialize_argument_information): Unset ECF_PURE flag too.
2243         (precompute_arguments): Precompute for ECF_PURE too.
2244         (expand_call): Handle ECF_PURE calls too.
2245         (emit_library_call_value_1): Rename no_queue argument to fn_type,
2246         accept value of 2 as pure function.
2247         (emit_library_call_value, emit_library_call): Rename no_queue argument
2248         to fn_type.
2249         * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call.
2250
2251         * tree.h (DECL_IS_PURE): New macro.
2252         (struct tree_decl): Add pure_flag.
2253         * c-common.c (enum attrs): Add attribute "pure".
2254         (init_attributes): Initialize attribute "pure"
2255         (decl_attributes): Handle attribute "pure".
2256         * extend.texi (Attribute "pure"): Document.
2257         * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from"
2258         in pure function.
2259         (flags_from_decl_or_type): Support attribute "pure".
2260
2261 2000-04-13  Jason Merrill  <jason@casey.cygnus.com>
2262
2263         * cpplex.c (_cpp_lex_token): Handle digraphs.  Don't null-terminate
2264         the token except for numbers and identifiers.
2265
2266 Thu Apr 13 00:09:16 EDT 2000  John Wehle  (john@feith.com)
2267
2268         * i386.c (ix86_expand_binary_operator,
2269         ix86_expand_unary_operator): Check no_new_pseudos
2270         instead of reload_in_progress and reload_completed.
2271         (ix86_split_ashldi, ix86_split_ashrdi,
2272         ix86_split_lshrdi): Check no_new_pseudos instead
2273         of reload_completed.
2274
2275 2000-04-12  Jeffrey A Law  (law@cygnus.com)
2276
2277         * function.c (purge_addressof): Unshare any shared rtl created by
2278         purge_addressof and its children.
2279
2280 2000-04-12  Mark Mitchell  <mark@codesourcery.com>
2281
2282         * function.c (aggregate_value_p): VOID_TYPE nodes are never
2283         aggregates.
2284
2285 2000-04-05  Andreas Jaeger  <aj@suse.de>
2286
2287         * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if
2288         not compiling PIC code, add flags for mabi=64.
2289         (SUBTARGET_CPP_SIZE_SPEC): New.
2290         (SUBTARGET_CPP_SPEC): New.
2291         (CPP_PREDEFINES): Define __PIC__ and __pic__.  PIC code is default
2292         for MIPS/Linux and lots of code needs these defines.
2293
2294 Wed Apr 12 22:44:11 2000  Hans-Peter Nilsson  <hp@axis.com>
2295
2296         * reorg.c (fill_slots_from_thread): Check side_effects_p when
2297         trying the "opposite arithmetic" approach.
2298
2299 Wed Apr 12 20:51:20 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2300
2301         * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI.
2302         (struct sh_args): Add new field force_mem.
2303         (INIT_CUMULATIVE_ARGS): Initialize it.
2304         (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it.
2305
2306 Wed Apr 12 17:20:41 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2307
2308         * calls.c (expand_call): Do not reverse args in "equal from" field.
2309         (emit_library_call_value_1): Emit_libcall_block for const and pure
2310         function.
2311
2312 Wed Apr 12 16:00:25 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
2313
2314         * reload1.c (reload_combine): Don't enable optimization for fixed
2315         registers when encountering a BARRIER.
2316
2317 Wed Apr 12 15:54:11 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2318
2319         * builtins.c (expand_builtin_memcmp): Do expansion even with
2320         !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails.
2321
2322         * calls.c (expand_call): Do NO_DEFER_POP unconditionally once
2323         stack is propertly aligned; add sanity checking for aligned
2324         stack pointer.
2325         (expand_library_call_value_1): Add sanity checking for aligned
2326         stack pointer.
2327
2328 Wed Apr 12 07:51:54 2000  Catherine Moore  <clm@cygnus.com>
2329
2330         * calls.c (emit_library_call_value_1): Change 3rd arg to
2331         locate_and_pad_parm to disregard the setting of partial.
2332
2333 Wed Apr 12 08:47:38 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2334
2335         * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST.
2336
2337         * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the
2338         CALL_INSN from the normal case.
2339
2340 Fri Apr  7 12:23:04 MET DST 2000  Jan Hubicka  <jh@suse.cz>
2341
2342         * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
2343         New global variables.
2344         (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the
2345         adjustment.
2346         * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8):
2347         Declare,
2348         (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4,
2349          TARGET_ADD_ESP_8): New macros.
2350         * i386.md: Add peep2s to convert esp adjustments to push and pop
2351         instructions.
2352         (pushsi_prologue, popsi_epilogue): New patterns.
2353
2354 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
2355
2356         * real.c (toe64): Remove stale #endif from the last change.
2357
2358 2000-04-12  Stephen L Moshier  <moshier@mediaone.net>
2359
2360         * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment.
2361         * real.c (toe64): Revert previous change.
2362
2363 2000-04-12  Jakub Jelinek  <jakub@redhat.com>
2364
2365         * objc/objc-act.c: Include ggc.h.
2366         (objc_tree_index, objc_global_trees): Convert most of the
2367         static tree variables into a static array with previous names
2368         as defines.
2369         (objc_ellipsis_node): New variable.
2370         (lang_init): Call objc_act_parse_init and c_parse_init.
2371         Create objc_ellipsis_node.
2372         (build_selector_translation_table): Use objc_ellipsis_node instead
2373         of (tree)1.
2374         (hack_method_prototype): Likewise.
2375         (get_arg_type_list): Likewise.
2376         (start_method_def): Likewise.
2377         (continue_method_def): Likewise.
2378         (gen_method_decl): Likewise.
2379         (ggc_mark_imp_list): New function.
2380         (ggc_mark_hash_table): New function.
2381         (objc_act_parse_init): New function.
2382         * objc/objc-act.h (objc_ellipsis_node): Add extern variable.
2383         * c-parse.in (c_parse_init): For objc add roots of objc specific
2384         local tree variables.
2385         * objc/objc-parse.y: Rebuilt.
2386         * objc/objc-parse.c: Rebuilt.
2387         (opt_parm_list): Use objc_ellipsis_node instead of (tree)1.
2388
2389 Wed Apr 12 01:00:44 EDT 2000  John Wehle  (john@feith.com)
2390
2391         * cse.c (delete_trivially_dead_insns): Also delete insns
2392         that copy a register to itself where the destination is
2393         a strict_low_part.
2394
2395 2000-04-11  Richard Henderson  <rth@cygnus.com>
2396
2397         * flow.c (struct propagate_block_info): Add new_dead, new_live.
2398         (propagate_block): Initialize them.  Use them in parallel instead
2399         of one tmp variable, ie revert much of the 0408 and 0407 functional
2400         changes, but keep the structural changes.
2401         (mark_set_regs): Take new_dead from propagate_block_info instead.
2402         (mark_set_1, mark_set_reg): Likewise.
2403         (mark_used_regs): Likewise with new_live.
2404         (mark_used_reg): Likewise.  Revert 0408 change.
2405
2406 2000-04-11  Nick Clifton  <nickc@cygnus.com>
2407
2408         * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2
2409         restriction.
2410         (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction.
2411
2412 2000-04-11  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
2413
2414         * config/elfos.h (SELECT_SECTION): Decide whether to use a data or
2415         const section to output a CONSTRUCTOR based on the same conditions
2416         used for VAR_DECLs.
2417
2418 Tue Apr 11 09:55:59 2000  Jeffrey A Law  (law@cygnus.com)
2419
2420         * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64.
2421         * pa/pa-protos.h (output_call): Add additional argument indicating
2422         if the call is a sibling/tail call.
2423         (compute_zdepdi_operands, output_64bit_and): Prototype new functions.
2424         (compute_64bit_ior, cmpib_comparison_operator): Likewise.
2425         (function_arg, function_arg_partial_nregs): Likewise
2426         * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT.
2427         (emit_move_sequence): Zero extend certain constants as needed
2428         for TARGET_64BIT.
2429         (compute_zdepdi_operands, output_64bit_and): New functions.
2430         (output_64bit_ior, function_arg): Likewise.
2431         (cmpib_comparison_operator, function_arg_partial_nregs): Likewise.
2432         (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT.
2433         (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise.
2434         (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise.
2435         (output_bvb): Likewise.
2436         (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT.
2437         (output_call): New argument 'sibcall'.  Generate sibcall sequences
2438         as needed.
2439         (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT.  For
2440         (ouput_arg_descriptor): Do not emit argument descriptors for
2441         TARGET_64BIT.
2442         * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already
2443         defined.
2444         (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define.
2445         (FUNCTION_OK_FOR_SIBALL): Define.
2446         (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define.
2447         (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise.
2448         (CPP_SPEC): Use new spec infrastructure.
2449         (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT.
2450         (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise.
2451         (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise.
2452         (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise.
2453         (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise.
2454         (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise.
2455         (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise.
2456         (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise.
2457         (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise.
2458         (FUNCTION_ARG); Call out to C code.
2459         (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
2460         (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define.
2461         (MIN_UNITS_PER_WORD): Likewise.
2462         * pa/pa.md (cmpdi): New expander.
2463         (scc patterns, movstrsi): Not available for TARGET_64BIT.
2464         (64bit conditional arithmetic): New patterns.
2465         (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns.
2466         (movsicc): Not available if modes on all the operands to not match.
2467         (movdicc): New expander and associated patterns.
2468         (64bit branches): New patterns.
2469         (pre_load, post_store): Generate appropriate code for TARGET_64BIT.
2470         (pre_ldd, post_std): New patterns.
2471         (64bit addil, load low part): New patterns.
2472         (special movsf constant): Not available for TARGET_64BIT.
2473         (movsf, movdf expanders): Force constants into memory.
2474         (32bit movdf/movdi patterns): Disable for TARGET_64BIT.
2475         (64bit movdf/movdi patterns): New patterns.
2476         (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns
2477         for TARGET_64BIT.
2478         (extendqidi2, extendhidi2, extendsidi2): Similarly.
2479         (adddi3 expander): Allow "arith_operand" for second input.
2480         (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT.
2481         (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT.
2482         (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too.
2483         (muldi3): New expander for TARGET_64BIT.
2484         (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2)
2485         for TARGET_64BIT.
2486         (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable
2487         patterns for TARGET_64BIT.
2488         (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New
2489         patterns for TARGET_64BIT.
2490         (64bit bit insertion/extractions): New patterns for TARGET_64BIT.
2491         (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT.
2492         (sibcall_epilogue): New expander.
2493         (casesi): Tweak for TARGET_64BIT.
2494         (call expanders): Set & use the outgoing argument pointer.  Use the
2495         64bit call patterns as needed. Add additional arg to output_call.
2496         (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern.
2497         (sibcall, sibcall_internal_symref): New expanders.
2498         (sibcall_value, sibcall_value_internal_symref
2499         (interspace_jump): Turn into an expander + matching patterns.
2500         (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT.
2501         * pa/pa64-regs.h: Eliminate trigraph sequences.
2502         * pa/pa64-start.h (TARGET_PA_20): Fix typo.
2503
2504 2000-04-11  Zack Weinberg  <zack@wolery.cumb.org>
2505
2506         * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c,
2507         cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace
2508         cpp_token with cpp_ttype everywhere.
2509         * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c:
2510         Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or
2511         CPP_BUF_COL.  Line and column numbers are unsigned int, not
2512         long.
2513         * cpplex.c (cpp_buf_line_and_col): Delete.
2514         * cpplib.h (struct cpp_buffer, struct cpp_reader): Change
2515         'long lineno' to 'unsigned int lineno'.
2516         (CPP_BUF_LINE, CPP_BUF_COL): New macros.
2517
2518 2000-04-11  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2519
2520         * extend.texi: ISO C99 is not a draft anymore.
2521         * invoke.texi: ISO C++ is not a draft anymore.
2522         * cpp.texi: __cplusplus is required by the ISO standard.
2523
2524         * extend.texi (-fthis-is-variable): Undocument.
2525         * flags.h (warn_template_debugging): Remove declaration.
2526         * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable,
2527         -Wenum-clash, -Wtemplate-debugging): Undocument.
2528
2529 2000-04-10  Nick Clifton  <nickc@cygnus.com>
2530
2531         * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT
2532         integer.
2533         (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT
2534         integer.
2535         (ARM_SIGN_EXTEND): Use HOST_UINT.
2536         (STRIP_NAME_ENCODING): Prevent warnings about redefinitions.
2537         (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions.
2538         (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported.
2539         (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported.
2540
2541         * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT.
2542         (arm_gen_constant): Use HOST_UINT.
2543         (arm_canonicalize_constant): Use HOST_UINT.
2544         (arm_reload_in_hi): Use HOST_UINT.
2545         (arm_reload_out_hi): Use HOST_UINT.
2546         (output_multi_immediate): Use HOST_UINT.
2547         (int_log2): Use HOST_UINT.
2548         (arm_poke_function_name): Use HOST_UINT.
2549         (arm_output_epilogue): Use arm_volatile_func().
2550         (output_thumb_prologue): Use arm_strip_name_encoding().
2551
2552 Mon Apr 10 15:40:59 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2553
2554         * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential
2555         of sequence point problems.
2556
2557 2000-04-10  Nathan Sidwell  <nathan@codesourcery.com>
2558
2559         * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT):
2560         Recomment.
2561         * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment.
2562
2563 Mon Apr 10 07:21:13 2000  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2564
2565         * sbitmap.h: Whitespace changes and use upper-case macro args.
2566         (struct simple_bitmap_def): All sizes now unsigned.
2567         (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_.
2568         * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars.
2569         (sbitmap_vector_alloc): Parms and local vars now unsigned.
2570         (sbitmap_zero): Cast bzero arg to PTR.
2571         (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned.
2572         (sbitmap_union_of_diffs): Change loop index to unsigned and rework
2573         loop to make structure clearer.
2574         (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise.
2575         (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise.
2576         (sbitmap_a_and_b_or_c): Likewise.
2577         (sbitmap_intersection_of_succs): Minor cleanups.
2578         (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise.
2579         (sbitmap_union_of_preds): Likewise.
2580         (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned.
2581         (debug_sbitmap): New function.
2582
2583         * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE.
2584         * c-typeck.c (convert_for_assignment): Likewise.
2585
2586         * expmed.c (init_expmed): Don't free objects we make.
2587         * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups.
2588
2589         * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases.
2590         (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field.
2591
2592         * gcse.c (expr_hash_table_size): Now unsigned.
2593         (compute_ae_gen): Local variable `i' now unsigned.
2594         (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise.
2595         (compute_transout, hoist_code): Likewise.
2596         (compute_local_properties): Likewise, also hash_table_size.
2597         (alloc_expr_hash_table): N_INSNS now unsigned.
2598         (delete_null_pointer_checks): Mark arg F as unused.
2599
2600         * regrename.c: Minor cleanups, including chang some variables
2601         to unsigned int.
2602
2603 2000-04-10  Neil Booth  <NeilB@earthling.net>
2604
2605         * cpplex.c (skip_block_comment): Use pointer arithmetic rather
2606         than GETC ().
2607         * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New.
2608
2609 2000-04-10  Martin v. Löwis  <loewis@informatik.hu-berlin.de>
2610
2611         * invoke.texi (-fno-gnu-keywords): Remove classof, headof,
2612         __classof__, and __headof__ from the list of gnu keywords.
2613         (-ansi): Remove -foperator-names from list of implied options.
2614         Do not call it ANSI C++.
2615         (-foperator-names): Document as -fno-operator-names.
2616
2617 2000-04-09  Zack Weinberg  <zack@wolery.cumb.org>
2618
2619         * cpphash.c (timestamp): Delete.
2620         (del_HASHNODE): If type is T_MCONST, free value.cpval.
2621         (special_symbol): Remove unnecessary braces.  Remove
2622         T_VERSION.  Treat T_STDC like T_CONST unless
2623         STDC_0_IN_SYSTEM_HEADERS.  Render both __DATE__ and __TIME__
2624         when one is encountered, then convert them into T_MCONST
2625         nodes.
2626         * cppinit.c (builtin_array): version_string is T_MCONST.
2627         __STDC__ has a "1" in its cpval.  Don't have a terminator
2628         entry.  Clean up which entries are dumped.
2629         (initialize_builtins): Only __STDC__ gets the special
2630         -traditional treatment.  Count the length of builtin_array.
2631         Render version_string here.
2632         * cpphash.h: Remove T_VERSION.  Add T_MCONST.
2633         * cpplib.h (struct cpp_reader): Remove timebuf.
2634
2635 2000-04-09  Richard Henderson  <rth@cygnus.com>
2636
2637         * genrecog.c (pred): Update comparison_operator for the unordered
2638         operators.
2639
2640         * config/i386/i386.c (no_comparison_operator): Disallow unordered
2641         operators.
2642         (fcmov_comparison_operator): Allow UNORDERED/ORDERED.
2643         (uno_comparison_operator): New.
2644         (put_condition_code): Handle UNORDERED/ORDERED.
2645         (unsigned_comparison): Likewise.
2646         (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare.
2647         (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise.
2648         (ix86_expand_fp_compare): Use them.  Take scratch as argument,
2649         update all callers.  Handle all 8 unordered operators.
2650         (ix86_expand_setcc): Lose the unordered argument, update all callers.
2651         (ix86_expand_branch): Likewise.  Don't fully expand fp branches.
2652         * config/i386/i386.h (PREDICATE_CODES): Update.
2653         * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare.
2654         (ix86_expand_branch, ix86_expand_setcc): Update.
2655         * config/i386/i386.md (sunordered, sordered): New.
2656         (suneq, sunge, sungt, sunle, sunlt, sltgt): New.
2657         (bunordered, bordered): New.
2658         (buneq, bunge, bungt, bunle, bunlt, bltgt): New.
2659         (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New.
2660         (*fp_jcc_5, *fp_jcc_6, and splitters): New.
2661
2662 2000-04-09  Philip Blundell  <philb@gnu.org>
2663
2664         * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too.
2665
2666 Sun Apr  9 15:16:14 EDT 2000  John Wehle  (john@feith.com)
2667
2668         * i386.md (fix_truncsfhi2, fix_truncdfhi2,
2669         fix_truncxfhi2): New patterns.
2670         * i386.c (output_fix_trunc): Handle converting to HImode.
2671
2672 2000-04-08  Alex Samuel  <samuel@codesourcery.com>
2673
2674         * ssa.c (convert_to_ssa): Eliminate dead code when calling
2675         life_analysis.
2676         (convert_from_ssa): Call compute_bb_for_insn before life_analysis.
2677         (for_each_successor_phi): Change parameter to basic_block.
2678         (coalesce_regs_in_successor_phi_nodes): Likewise.
2679         (coalesce_regs_in_copies): Likewise.
2680         (compute_coalesced_reg_partition): Use basic_block instead of index.
2681         * rtl.h (convert_to_ssa): Delete.
2682         (convert_from_ssa): Likewise.
2683         (successor_phi_fn): Likewise.
2684         (for_each_successor_phi): Likewise.
2685         (in_ssa_form): Likewise.
2686         * basic-block.h (convert_to_ssa): Moved from rtl.h.
2687         (convert_from_ssa): Likewise.
2688         (successor_phi_fn): Likewise.
2689         (in_ssa_form): Likewise.
2690         (for_each_successor_phi): Likewise.  Change parameter to basic_block.
2691         * flow.c (calculate_global_regs_live): Pass a basic_block to
2692         for_each_successor_phi.
2693
2694 2000-04-08  Richard Henderson  <rth@cygnus.com>
2695
2696         * flow.c (mark_used_reg): Use reg_set_p to determine if a register
2697         was modified in the current insn.
2698
2699 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2700
2701         * arm/thumb.md: Delete.
2702         * arm/thumb-protos.h: Delete.
2703
2704 2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2705
2706         Merge changes from merged-arm-thumb-backend-branch onto trunk.
2707
2708         2000-04-08  Richard Earnshaw (rearnsha@arm.com)
2709
2710         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408
2711         into branch.
2712
2713         * arm.md (nop): Use the standard RTL expression.  Don't code as a
2714         define_expand.
2715         (*arm_nop, *thumb_nop): Delete.
2716
2717         * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining
2718         constants.  Use casts instead.
2719         (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi,
2720         output_multi_immediate, arm_poke_function_name): Likewise.
2721         * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND,
2722         MASK_RETURN_ADDDR): Likewise.
2723
2724         2000-03-31  Richard Earnshaw (rearnsha@arm.com)
2725
2726         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325
2727         into branch.
2728
2729         * arm.md (eh_epilogue): New function.
2730         * arm.h (struct machine_function): Move to here ...
2731         * arm.c: ... from here.
2732         (arm_output_epilogue): Support epilogues for __builtin_eh_return.
2733         (thumb_exit): Extra parameter eh_ofs.  All callers changed.
2734         Handle epilogues for __builtin_eh_return.  Make bit-fields unsigned.
2735
2736         2000-03-30  Nick Clifton  <nickc@cygnus.com>
2737
2738         * config/arm/semi.h (ASM_SPEC): Restore definition.
2739         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2740
2741         * config/arm/elf.h (ASM_SPEC): Restore definition.
2742         (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined.
2743
2744         * config/arm/arm.h (ASM_SPEC): Remove definition.
2745         (SUBTARGET_EXTRA_ASM_SPEC): Remove definition.
2746
2747         2000-03-26  Bernd Schmidt <bernds@cygnus.co.uk>
2748
2749         * config/arm/arm.c: Disable -fschedule-insns for Thumb.
2750
2751         2000-03-24  Nick Clifton  <nickc@cygnus.com>
2752
2753         Various formating tidyups, elimination of compile time
2754         warnings and synchronisation with internal sources:
2755
2756         * config/arm/arm-protos.h (assemble_align): Add prototype.
2757         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2758         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2759         (arm_return_addr_rtx): Rename to arm_return_addr.
2760
2761         * config/arm/arm.c: Include except.h.
2762         Define shorter typenames for strict minipool_node and struct
2763         minipool_fix.
2764         (arm_return_in_memory): For WinCE return all structures <= 32 bits
2765         in memory.
2766         (gen_rotated_half_load): Rename to arm_gen_rotated_half_load.
2767         (gen_comapre_reg): Rename to arm_gen_compare_reg.
2768
2769         * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not
2770         already defined.
2771         (ASM_SPEC): Define if not already defined.
2772         (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2773
2774         * config/arm/arm.md: Rename references to gen_rotated_half_load to
2775         arm_gen_rotated_half_load, and references to gen_comapre_reg to
2776         arm_gen_compare_reg.
2777         (indirect_jump):  Only accept register operands.
2778         (load_indirect_jump): Keep this pattern since combine can generate
2779         it.
2780
2781         * config/arm/coff.h: Include aout.h.
2782         (MULTILIB_DEFAULTS): Only define if not already defined.
2783
2784         * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition
2785         into arm.h (so that COFF ports can support thumb based aliases).
2786         (ASM_SPEC): Move definition into arm.h
2787
2788         * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove
2789         redundant apcs spec.
2790         (ASM_SPEC): Move definition to arm.h
2791
2792         * config/arm/semi.h (ASM_SPEC): Move definition to arm.h
2793
2794         * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support
2795         for entries in the .bss section
2796
2797         2000-03-23  Nick Clifton  <nickc@cygnus.com>
2798
2799         * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0
2800         to thumb_far_jump_used_p.
2801
2802         * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a
2803         single integer parameter.
2804
2805         * config/arm/arm.c (struct machine_function): Add two new
2806         fields, 'far_jump_used' and 'arg_pointer_live'.
2807         (thumb_far_jump_used_p): Once the decision has been made that
2808         far jumps might be used, always return true.
2809         If being called from the initial elimination offset macro then
2810         do not bother to perform the test if the arg pointer is not
2811         being used.
2812         (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p().
2813         (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p().
2814
2815         2000-03-23  Richard Earnshaw (rearnsha@arm.com)
2816
2817         * arm.c (output_return_instruction): Handle more cases where we can
2818         return from a function with an ldr instruction.
2819         (arm_output_epilogue): Likewise.
2820
2821         * arm.c (thumb_expand_prologue): Don't clobber the frame pointer
2822         if we need to push a large stack frame and there are no callee-saved
2823         registers.
2824
2825         * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid
2826         in ARM code if the frame pointer has been eliminated.
2827
2828         * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber
2829         unspec_volatile arguments to avoid duplicates.
2830         (consttable_1, consttable_2): Fixes for big-endian mode.
2831
2832         * arm.md (all ARM-mode load insns): Add neg_pool_range attribute
2833         as appropriate.
2834
2835         Re-write constant pool code.
2836         * arm.c (minipool_node, minipool_fix): New types.
2837         (minifix): Delete type.
2838         (arm_add_minipool_constant): Delete.
2839         (arm_compute_minipool_offsets, arm_find_barrier,
2840         arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise.
2841         (get_jump_table_size): Now returns HOST_WIDE_INT.
2842         (move_minipool_fix_forward_ref, add_minipool_forward_ref): New
2843         functions.
2844         (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise.
2845         (assign_minipool_offsets, arm_print_value): Likewise.
2846         (dump_minipool): Rewrite.
2847         (arm_barrier_cost): New function.
2848         (create_fix_barrier): New function.
2849         (push_minipool_barrier): New function.
2850         (push_minipool_fix): Record additional information about the fixup
2851         required.
2852         (note_invalid_constants): Remove push for (UNSPEC 3).  Don't
2853         check the mode of what needs fixing.
2854         (arm_reorg): Rewrite.
2855
2856         2000-03-08  Nick Clifton  <nickc@cygnus.com>
2857
2858         * config/arm/arm.md (indirect_jump): Force constant addresses into
2859         a register.
2860
2861         2000-03-01  Bernd Schmidt <bernds@cygnus.co.uk>
2862
2863         * config/arm/arm.md: Add splitter to turn SF moves into SI moves.
2864
2865         2000-02-24  Nick Clifton  <nickc@cygnus.com>
2866
2867         * config/arm/arm.c (thumb_expand_prologue): Make sure that stack
2868         adjust is word aligned.
2869         (thumb_expand_epilogue): Make sure that stack adjust is word
2870         aligned.
2871
2872         * config/arm/elf.h (ASM_FILE_START): Fix type of version string.
2873
2874         2000-02-24  Bernd Schmidt <bernds@cygnus.com>
2875
2876         * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame
2877         pointer relative addresses.
2878
2879         2000-02-10  Richard Earnshaw  <rearnsha@arm.com>
2880
2881         * arm.c (find_barrier): Find the last barrier within the allowed
2882         range.
2883
2884         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2885
2886         * config/arm/arm-protos.h: Replace PROTO with PARAMS.
2887
2888         2000-02-09  Nick Clifton  <nickc@cygnus.com>
2889
2890         * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to
2891         ARM_FUNCTION_PROFILER.
2892
2893         * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to
2894         ARM_FUNCTION_PROFILER.
2895
2896         * config/arm/linux-oldld.h: Imported from mainline sources.
2897
2898         2000-02-07  Nick Clifton  <nickc@cygnus.com>
2899
2900         * config/arm/lib1funcs.asm: Merge in thumb functions from
2901         lib1thumb.asm.
2902
2903         * config/arm/lib1thumb.asm: Delete.
2904
2905         2000-02-04  Nick Clifton  <nickc@cygnus.com>
2906
2907         * config/arm/arm.c: Sychronised with current Red hat local
2908         sources.
2909         * config/arm/arm.h: Ditto.
2910         * config/arm/arm-protos.h: Ditto.
2911
2912         2000-02-02  Bernd Schmidt  <bernds@cygnus.co.uk>
2913
2914         * arm.c (soft_df_operand): Reject SUBREGs containing a constant.
2915
2916         * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two
2917         byte stores.
2918
2919         2000-02-02  Nick Clifton  <nickc@cygnus.com>
2920
2921         * config/arm/thumb.c (thumb_exit): Additional fix for same bug.
2922
2923         * config/arm/arm.md (epilogue): Fix rtl checking abort because
2924         (return) was emited using an emit_insn() call.
2925
2926         2000-01-31  Nick Clifton  <nickc@cygnus.com>
2927
2928         * config/arm/arm.c (output_thumb_prologue): Fix bug generating
2929         thumb stack frame.
2930         (thumb_exit): Move frame pointer back into hard frame pointer
2931         register if backtracing is being used.
2932
2933         2000-01-13  Richard Earnshaw (rearnsha@arm.com)
2934
2935         * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113
2936         into branch.
2937
2938         1999-12-15  Bernd Schmidt  <bernds@cygnus.co.uk>
2939
2940         * config/arm/arm.md (neg_pool_offset): Provide default for new
2941         attribute.
2942         (arm_movsi_insn): Add neg_pool_offset attribute.
2943         * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an
2944         rtx for the insn that starts the scan and an unsigned long for its
2945         address.  Add MIN_OFFSET and PINSERTED args.  All callers changed.
2946         Change scan to ignore insns before MIN_OFFSET.  Store size of inserted
2947         instructions in *PINSERTED.
2948         (struct minipool_fixup): Add MIN_ADDRESS elt.
2949         (sort_fixups): Compute it.
2950         (arm_reorg): Changes to support inserting pools before the insn to be
2951         fixed up.
2952
2953         1999-12-08  Bernd Schmidt  <bernds@cygnus.co.uk>
2954
2955         * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm".
2956         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm".
2957         * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm".
2958
2959         Wed Nov  3 10:04:07 1999  Nick Clifton  <nickc@cygnus.com>
2960
2961         * config/arm/semi.h (TARGET_VERSION): Do not define if already
2962         defined.
2963         (TARGET_DEFAULT): Do not define if already defined.
2964
2965         Tue Nov  2 10:37:25 1999  Nick Clifton  <nickc@cygnus.com>
2966
2967         * config/arm/arm.md (anddi3): Allow disjoint source operands.
2968         (iordi3): Allow disjoint source operands.
2969         (xordi3): Allow disjoint source operands.
2970         (negdi2): Permit construction for ARM and Thumb.
2971         (arm_negdi2): Renamed version of old negdi2 pattern.
2972         (thumb_negdi2): New pattern: Only permit non-overlapping
2973         source and destination.
2974
2975         Fri Oct 29 18:52:38 1999  Nick Clifton  <nickc@cygnus.com>
2976
2977         * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the
2978         scratch low register so that it will not be deleted.
2979
2980         Fri Oct 29 15:23:48 1999  Nick Clifton  <nickc@cygnus.com>
2981
2982         * config/arm/pe.h (ARM_PE): Define.
2983
2984         * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow
2985         interfacearm attribute if this is a PE toolchain.
2986         (output_return_instruction): Do not emit anything if the function
2987         has the naked attribute set.
2988         (is_called_in_ARM_mode): If the function has the interfacearm
2989         attribute then return true.
2990         (thumb_expand_prologue): Do not generate a prologue for naked
2991         functions.
2992         (thumb_expand_epilogue): Do not generate an epilogie for a naked
2993         function.
2994         (output_thumb_prologue): Do not bother if the function is naked.
2995         Strip PE encoding from function name before emitting.
2996
2997         Thu Oct 28 11:05:13 1999  Richard Earnshaw <rearnsha@arm.com>
2998
2999         * arm.md (pic_load_addr): Fix constraints.
3000
3001         * arm.md (casesi_insn): Fix mis-applied patch.
3002
3003         * arm.md ("core" function unit): Add rules for single- and
3004         multi-cycle insns.
3005         (All TARGET_THUMB patterns): Add "type" attribute information
3006         where needed.
3007         * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if
3008         the following insn is a CALL.
3009
3010         * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack
3011         pointer.
3012         * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the
3013         ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME.
3014         (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM.
3015
3016         Wed Oct 27 14:40:48 1999  Nick Clifton  <nickc@cygnus.com>
3017
3018         * config/arm/linux-gas.h: oops - this file was missed out when the
3019         branch was created...
3020
3021         Tue Oct 26 17:07:38 1999  Richard Earnshaw <rearnsha@arm.com>
3022
3023         * thumb.c: Deleted.  Move contents to ...
3024         * arm.c: ... here.
3025         * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove
3026         rule for thumb.o
3027         * configure.in (arm*-*-*): Remove thumb.o from extra_objs list.
3028         * configure: Regen.
3029
3030         * arm-protos.h: Use RTX_CODE and tidy up long lines.  Don't
3031         declare a prototype for asm_output_align();
3032
3033         * arm.c (thumb_condition_code): Delete.
3034         (arm_print_operand): Always use arm_condition_code array.
3035
3036         * arm.c (thumb_return_addr_rtx): Delete.
3037         (arm_save_machine_status, arm_restore_machine_status): Delete.
3038         (arm_init_machine_status, arm_mark_machine_status): New functions.
3039         (arm_init_expanders): Update accordingly.
3040         (arm_return_addr): Renamed from arm_return_addr_rtx.  Rewrite.
3041         (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx.
3042         * arm.h (RETURN_ADDR_RTX): Call arm_return_addr().
3043
3044         Tue Oct 26 13:24:16 1999  Nick Clifton  <nickc@cygnus.com>
3045
3046         * configure.in : Fix arm-*-aout target to use new t-arm-aout
3047         script.
3048         * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout
3049         targets.
3050
3051         Tue Oct 26 11:27:12 1999  Nick Clifton  <nickc@cygnus.com>
3052
3053         * config/arm/thumb.c (output_thumb_prologue): Fix bug creating
3054         stack backtrace structure.
3055
3056         * config/arm/arm-protos.h: Add prototypes for functions defined in
3057         arm/pe.h.
3058
3059         * config/arm/arm.c (arm_override_options): Fix selection of
3060         attributes of default processor.
3061
3062         * config/arm/coff.h: Delete needless #include.
3063
3064         * config/arm/pe.c: Delete unused code.
3065
3066         * config/arm/pe.h (CPP_DEFINES): Delete
3067         (SUBTARGET_CPP_SPEC): Define.
3068         (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME.
3069
3070         * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build.
3071
3072         Mon Oct 25 15:42:09 1999  Richard Earnshaw (rearnsha@arm.com)
3073
3074         * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses
3075         updated.
3076         (CAN_DEBUG_WITHOUT_FP): Define.
3077         (FIXED_REGISTERS): Make r11 call-saved.
3078         (CALL_USED_REGISTERS): Likewise.
3079         (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME.
3080         (FRAME_POINTER_REQUIRED): Correct logic for determining when a
3081         frame-pointer is required.
3082         (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME.
3083         * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g
3084         if the target normally needs a stack frame in non-leaf functions.
3085         (use_return_insn): Correct logic for determining when a return
3086         instruction can be used.
3087         (output_return_instruction): Handle the frame-pointer register as
3088         a normal register when not TARGET_APCS_FRAME.
3089         (arm_output_prologue): Likewise.
3090         (arm_output_epilogue): Likewise.
3091         (output_func_epilogue): Likewise.
3092         (arm_expand_prologue): Likewise.
3093         * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME.
3094
3095         * arm.c (use_return_insn): No need to check floating point regs if
3096         TARGET_SOFT_FLOAT.
3097         (arm_find_minipool_constant): Correct typo; use GET_CODE to get
3098         the code of value stored in the minipool array.
3099         (arm_add_minipool_constant): Likewise.
3100
3101 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3102
3103         * basic-block.h (conflict_graph_enum_fn): K&R fix.
3104
3105 2000-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3106
3107         * tree.c (tree_expr_nonnegative_p): New function.
3108
3109         * tree.h (tree_expr_nonnegative_p): Declare.
3110
3111         * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to
3112         elide some sign_compare warnings.
3113         (build_conditional_expr): Likewise.
3114
3115 Sat Apr  8 00:21:51 EDT 2000  John Wehle  (john@feith.com)
3116
3117         * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo.
3118
3119         * i386.md (floathisf2, floathidf2, floathixf2): New patterns.
3120         * i386.c (print_operand): Use the proper suffix for a 387 HImode
3121         operand.  Abort if a 387 operand has an unsupported size.
3122
3123 2000-04-08  Neil Booth  <NeilB@earthling.net>
3124
3125         * cppexp.c (parse_charconst): Null does not end character
3126         constants.
3127         * cppinit.c (ISTABLE): Null character handled as whitespace.
3128         * cpplex.c (null_warning):  new function.
3129         (skip_string): Emit warning if nulls encountered.
3130         (_cpp_skip_hspace): Emit warning if nulls encountered.
3131         (_cpp_lex_token): Emit warning if nulls encountered.  Drop
3132         them.
3133         * cpp.texi: Update.
3134
3135 2000-04-07  Richard Henderson  <rth@cygnus.com>
3136
3137         * flow.c (loop_depth): Remove.
3138         (reg_next_use, cc0_live, mem_set_list): Replace with ...
3139         (struct propagate_block_info): New.
3140         (life_analysis): Don't allocate reg_next_use.
3141         (propagate_block_delete_insn): Break out of propagate_block.
3142         Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED.
3143         (propagate_block_delete_libcall): Likewise.
3144         (propagate_block): Create a propagate_block_info struct to pass
3145         to subroutines.  Allocate one not two temporary regsets.  Don't
3146         clobber memory for const calls.  Look for clobbers in
3147         CALL_INSN_FUNCTION_USAGE.
3148         (mark_set_regs): Recognize COND_EXEC.
3149         (mark_set_reg): Break out of mark_set_1.
3150         (mark_used_reg): Break out of mark_used_regs.
3151         (mark_used_regs): Recognize COND_EXEC.
3152         (insn_dead_p): Use propagate_block_info struct.
3153         (libcall_dead_p, invalidate_mems_from_autoinc): Likewise.
3154         (find_auto_inc, try_pre_increment_1): Likewise.
3155         (print_rtl_with_bb): Dump regs live at end too.
3156         (count_reg_sets_1): Pass in loop_depth.
3157         (count_reg_sets, count_reg_references): Likewise.
3158         (recompute_reg_usage): Provide it.
3159
3160 2000-04-07  Richard Henderson  <rth@cygnus.com>
3161
3162         * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H)
3163         not the raw files.
3164
3165 2000-04-07  Zack Weinberg  <zack@wolery.cumb.org>
3166
3167         * cpplib.c (do_elif): Skip the rest of the line if we're
3168         not going to bother evaluating it.
3169         (skip_if_group): Clear pfile->only_seen_white.  Reorder loop
3170         to avoid pointless calls to the lexer.
3171
3172 Fri Apr  7 11:50:54 2000  Jim Wilson  <wilson@cygnus.com>
3173
3174         * config/ia64/ia64.c: Delete stdio.h and ctype.h includes.
3175
3176 2000-04-07  Jason Merrill  <jason@casey.cygnus.com>
3177
3178         * calls.c (expand_call): emit_queue if we're trying a sibcall.
3179
3180 2000-04-07  Jakub Jelinek  <jakub@redhat.com>
3181
3182         * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove.
3183
3184 2000-04-06  Geoff Keating  <geoffk@cygnus.com>
3185
3186         * Makefile.in: Build crtbeginS and crtendS like crtbegin and
3187         crtend so they can be multilibbed.
3188         (STAGESTUFF): Remove s-crt and s-crtS.
3189
3190 2000-04-07  Richard Henderson  <rth@cygnus.com>
3191
3192         * config/alpha/alpha.c (alpha_emit_conditional_move): Fail
3193         if we discover we need a pseudo and no_new_pseudos is true.
3194         * config/alpha/alpha.md (ne:DI insn): New.
3195         (trunctfsf2, sne): Emit NE instead of non-canonical LTU.
3196
3197 2000-04-07  Richard Henderson  <rth@cygnus.com>
3198
3199         * rtl.def (COND_EXEC): New.
3200         * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New.
3201         * tm.texi (MAX_CONDITIONAL_EXECUTE): Document.
3202
3203         * genconfig.c (have_cond_arith_flag): Remove.
3204         (have_cond_exec_flag): New.
3205         (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE.
3206         (main): Print HAVE_conditional_execution.
3207
3208         * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC.
3209         (sched_analyze_insn, print_pattern): Likewise.
3210         * reload.c (find_equiv_reg): Likewise.
3211         * rtlanal.c (reg_referenced_p): Likewise.
3212         (note_stores, dead_or_set_regno_p): Likewise.
3213         (reg_overlap_mentioned_p): Rewrite to use a switch.
3214
3215         * ggc.h (struct rtx_def): Forward declare.
3216
3217         * print-rtl.c (debug_rtx_range): New.
3218         * rtl.h (debug_rtx_range): Declare.
3219
3220         * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New.
3221
3222         * gcse.c (gcse_main): Don't rebuild the CFG here.
3223         (delete_null_pointer_checks): Likewise.
3224         * ssa.c (convert_to_ssa): Likewise.
3225         * toplev.c (rest_of_compilation): Do it here instead.  Combine
3226         sequential calls to TIMEVAR.  Consistently use `insns' instead of
3227         `get_insns()'.  Always split insns after reload when optimizing.
3228
3229         * basic-block.h (merge_blocks_nomove): Declare.
3230         (tidy_fallthru_edge): Declare.
3231         * flow.c (merge_blocks_nomove): Document as merging into previous
3232         blocks.  Remove cruft from between blocks; remove all edges out of A.
3233         (tidy_fallthru_edge): Export.
3234
3235 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
3236
3237         * ssa.c (compute_conservative_reg_partition): Declare with
3238         void arguments.
3239         * toplev.c (clean_dump_file): Remove previously-deleted function
3240         inadvertantly merged back in.
3241         * conflict.c (conflict_graph_add): Use a single call to
3242         htab_find_slot to look up and insert.
3243
3244 2000-04-06  Richard Henderson  <rth@cygnus.com>
3245
3246         * genrecog.c (*): Rename _last_insn to last_insn.
3247         (make_insn_sequence): Set the position of the peephole2 C test
3248         to be at the last insn.
3249
3250 2000-04-06  Richard Henderson  <rth@cygnus.com>
3251
3252         * flow.c (compute_flow_dominators): Free worklist.
3253
3254 2000-04-06  Michael Matz  <matzmich@cs.tu-berlin.de>
3255
3256         * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO.
3257
3258 2000-04-06  Alex Samuel  <samuel@codesourcery.com>
3259
3260         * rtl.h (INSN_P): New macro.
3261         (successor_phi_fn): New typedef.
3262         (for_each_successor_phi): New prototype.
3263         (in_ssa_form): New variable.
3264         (PHI_NODE_P): Likewise.
3265         * flow.c (calculate_global_regs_live): Add to new_live_at_end from
3266         phi nodes in successors.
3267         (mark_used_regs): Add PHI case.
3268         (set_phi_alternative_reg): New function.
3269         (life_analysis): Assert that dead code elimination is not selected
3270         when in SSA form.
3271         * toplev.c (to_ssa_time): New variable.
3272         (from_ssa_time): Likewise.
3273         (compile_file): Zero to_ssa_time and from_ssa_time.
3274         Print time to convert to and from SSA.
3275         (rest_of_compilation): Time convert_to_ssa and convert_from_ssa.
3276         (print_time): Compute percent fraction as integer.
3277         * ssa.c (PHI_NODE_P): Moved to rtl.h.
3278         (convert_to_ssa): Check if we're already in SSA.
3279         Don't eliminate dead code in life_analysis.
3280         Rerun flow and life analysis at bottom.
3281         (eliminate_phi): Use canonical regnos when adding nodes.
3282         (mark_reg_in_phi): New function.
3283         (mark_phi_and_copy_regs): Likewise.
3284         (convert_from_ssa): Rerun life analysis at top.
3285         Use coalesced partition.
3286         Check for removing a phi node at the end of the block.
3287         (compute_coalesced_reg_partition): New function.
3288         (coalesce_regs_in_copies): Likewise.
3289         (coalesce_reg_in_phi): Likewise.
3290         (coalesce_regs_in_sucessor_phi_nodes): Likewise.
3291         (for_each_successor_phi): Likewise.
3292         (rename_context): New struct.
3293         (rename_block): Use a rename_context with rename_insn_1.  When
3294         renaming sets of a subreg, emit a copy of the entire reg first.
3295         (rename_insn_1): Treat data as a rename_context *.  Save current
3296         insn in set_data.
3297         (rename_set_data): Add field set_insn.
3298         * Makefile.in (HASHTAB_H): Move up in file.
3299         (OBSTACK_H): New macro.
3300         (collect2.o): Use OBSTACK_H in dependencies.
3301         (sdbout.o): Likewise.
3302         (emit-rtl.o): Likewise.
3303         (simplify-rtx.o): Likewise.
3304         (fix-header.o): Likewise.
3305         (OBJS): Add conflict.o.
3306         (conflict.o): New rule.
3307         * basic-block.h: Include partition.h.
3308         (conflict_graph): New typedef.
3309         (conflict_graph_enum_fn): Likewise.
3310         (conflict_graph_new): New prototype.
3311         (conflict_graph_delete): Likewise.
3312         (conflict_graph_add): Likewise.
3313         (conflict_graph_conflict_p): Likewise.
3314         (conflict_graph_enum): Likewise.
3315         (conflict_graph_merge_regs): Likewise.
3316         (conflict_graph_print): Likewise.
3317         (conflict_graph_compute): Likewise.
3318         * conflict.c: New file.
3319
3320 2000-04-06  Jason Merrill  <jason@yorick.cygnus.com>
3321
3322         * tlink.c (read_repo_files): Don't look for .rpo info for
3323         linker flags.
3324
3325 Thu Apr  6 20:39:26 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3326
3327         * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define.
3328
3329 Thu Apr  6 19:34:08 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3330
3331         * config/sh/lib1funcs.asm (___udivsi3_i4):
3332         ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr
3333         only depends on FMOVD_WORKS.
3334
3335 Thu Apr  6 19:11:47 2000  J"orn Rennecke <amylaar@cygnus.co.uk>
3336
3337         * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd,
3338         make double constant 8-byte aligned.
3339
3340 2000-04-06  Jakub Jelinek  <jakub@redhat.com>
3341
3342         * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32,
3343         movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64,
3344         movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS.
3345         (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise.
3346         Accept storing GENERAL_REGS into offsetable memory.
3347         * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow
3348         building a TFmode constant other than 0.0L into GENERAL_REGS.
3349
3350 2000-04-06  Clinton Popetz  <cpopetz@cygnus.com>
3351
3352         * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER.
3353
3354 2000-04-06  Zack Weinberg  <zack@wolery.cumb.org>
3355
3356         * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete.
3357         (macro_cleanup): No need to cast pbuf->macro.
3358         (collect_expansion): Use _cpp_get_define_token.  Goto done if
3359         it returns VSPACE.  Remove check for trailing space after
3360         CPP_COMMENT.
3361         (_cpp_create_definition): Don't diddle flags here.  Return
3362         directly on error.
3363         (unsafe_chars): Handle c1 being EOF.
3364         (push_macro_expansion): Use unsafe_chars for both accidental-paste
3365         checks.  Don't push the buffer till after we're done with
3366         them.
3367         * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New.
3368         (PEEKN, FORWARD, GETC, PEEKC): Use them.
3369         (cpp_push_buffer): Don't set new->alimit.  Set new->mark
3370         appropriately.
3371         (_cpp_parse_assertion): Don't NUL terminate.
3372         (_cpp_lex_token): Fix -traditional macro handling.  Don't skip
3373         hspace before calling _cpp_parse_assertion.  Remove all sets
3374         of only_seen_white. Treat '\f' as hspace.  Don't do anything
3375         special with '\n' here.
3376         (maybe_macroexpand): Handle T_EMPTY hash entries without
3377         pushing a buffer at all.
3378         (cpp_get_token): Handle clearing only_seen_white here.  Handle
3379         incrementing the line number here.  Clear
3380         potential_control_macro as well as only_seen_white, if
3381         appropriate.
3382         (cpp_get_non_space_token): Don't eat CPP_POP tokens.
3383         (_cpp_get_define_token): New function, basically like
3384         _cpp_get_directive_token was but doesn't eat horizontal space.
3385         Don't do anything with only_seen_white here.
3386         (_cpp_get_directive_token): Just call _cpp_get_define_token
3387         repeatedly till it returns non-hspace.
3388
3389         * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete.
3390         (conditional_skip, skip_if_group): Return int.
3391         (DIRECTIVE_TABLE): Change origin of all conditional directives
3392         to "COND".
3393         (TRAD_DIRECT_P): New macro.
3394         (_cpp_handle_directive): Use _cpp_get_directive_token.  Issue
3395         an error for a bogus directive, unless -lang-asm.  Use
3396         TRAD_DIRECT_P. Loop calling handler functions till one returns
3397         zero.
3398         (get_macro_name): Don't diddle flags here.
3399         (do_define): Diddle flags here.  Use _cpp_get_directive_token.
3400         Create T_EMPTY nodes for #define macro /* nothing */.
3401         (do_undef): Don't copy the name.  Use _cpp_get_directive_token.
3402         Use hp->name when calling pass_thru_directive.
3403         (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip):
3404         Return the result of conditional_skip and/or skip_if_group.
3405         Don't call _cpp_output_line_command.
3406         (consider_directive_while_skipping): Use _cpp_get_directive_token.
3407         Issue -Wtraditional warnings as appropriate.  Don't complain
3408         about unrecognized directives.  If we are to stop skipping,
3409         return the number of the directive that ended the skip.
3410         (skip_if_group): Use _cpp_get_directive_token.  Turn off macro
3411         expansion and line commands while skipping.  Return the result
3412         of consider_directive_while_skipping, if nonzero.
3413         (do_endif): Just set potential_control_macro here.
3414         (validate_else): Use _cpp_get_directive_token.
3415         (do_assert, do_unassert): Don't save pointers into the
3416         token_buffer across calls to the lexer.  Use
3417         _cpp_get_directive_token.
3418
3419         * cpplib.h (cpp_buffer): Remove alimit and colno.  Make mark a
3420         pointer, not an offset.  Replace 'data', which was a generic
3421         pointer, with 'macro', which points to a struct hashnode.
3422         (cpp_reader): Add 'potential_control_macro' pointer.
3423         * cpphash.h (T_UNUSED): Replace with T_EMPTY.
3424         (CPP_BUF_GET, CPP_FORWARD): Delete.
3425         (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros.
3426         (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK,