OSDN Git Service

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