OSDN Git Service

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