OSDN Git Service

Revert more of previous change
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2
3         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
4         change.
5
6 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
7
8         * config.gcc: Remove default for xm_file.  Clean up local
9         machine type handling.  Remove settings of xm_file to
10         something that doesn't exist.  In the big switch, set xm_file,
11         don't append to it (the value before the big switch is always
12         null).  Don't force build_xm_file or host_xm_file to have a value.
13         * configure.in: Remove default for xm_file.  Do not special       
14         case $cpu/xm-$cpu.h not existing.                          
15         * configure: Regenerate.
16
17 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
18
19         * simplify-rtx.c (simplify_binary_operation): Check for overflow
20         when folding integer division and modulo operations.
21
22 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
23
24         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE 
25         instead of DWARF2_ADDR_SIZE for EH addresses.
26         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for 
27         EH addresses.
28
29 2001-04-04  Richard Henderson  <rth@redhat.com>
30
31         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
32         * config/ia64/t-glibc (LIB2ADDEH): Disable.
33         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
34
35 2001-04-04  Richard Henderson  <rth@redhat.com>
36
37         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
38         * configure: Rebuilt.
39
40 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
41
42         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
43         push insns to delete to it instead of deleting them.
44         (delete_null_pointer_checks): Delete insns from delete_list after
45         all delete_null_pointer_checks_1 passes are done.
46
47 2001-04-04  Richard Henderson  <rth@redhat.com>
48
49         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
50         * configure: Rebuilt.
51
52 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
53
54         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
55         * config/romp/xm-romp.h: Delete.
56
57 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
58
59         * sched-deps.c (sched_analyze_insn): Partially revert March 27
60         change.
61
62 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
63
64         * emit-rtl.c (mark_label_nuses) Increment the label uses for
65         all labels present in rtx.
66         (try_split) Call new function for all split insns.
67
68 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
69
70         * recog.c (validate_replace_rtx_1): Instead of aborting just make
71         sure the change won't be validated.
72
73 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
74
75         * rtl.h (set_noop_p): Declare.
76         * flow.c (set_noop_p): Move from here ...
77         * rtlanal.c (set_noop_p): ... to here and enhance.
78         * cse.c (delete_trivially_dead_insns): Use it.
79         * gcse.c (hash_scan_set): Likewise.
80         * jump.c (delete_noop_moves): Likewise.
81         * recog.c (split_all_insns): Likewise.
82
83 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
84
85         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
86         stack pointer via a LO_SUM.  Ditto for setting a temp register
87         used to save to the stack.  Set cfa_temp when setting fp, and
88         allow matches to cfa_temp in addition to cfa_store when saving
89         regs.  Handle POST_INC and LO_SUM register stores.  Document the
90         changes and errors in rule 12 doco.
91
92         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
93         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
94         (load_reg): Move closer to epilogue code.
95         (DO_FRAME_NOTES): Define to control the following..
96         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
97         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
98         notes as necessary.
99         (hppa_expand_epilogue): Likewise.
100
101 2001-04-03  Richard Henderson  <rth@redhat.com>
102
103         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
104         * configure: Rebuild.
105
106 2001-04-03  Richard Henderson  <rth@redhat.com>
107
108         * rtl.h (LCT_THROW): New.
109         * calls.c (emit_library_call_value_1): Handle it.
110         * except.c (connect_post_landing_pads): Use it.
111
112 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
113
114         * gansidecl.h: Delete file.
115         * configure.in: Change all refs to gansidecl.h to use
116         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
117         lives.
118         * configure: Regenerate.
119
120         * Makefile.in (intl.o): Don't depend on gansidecl.h.
121         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
122         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
123         Don't include gansidecl.h.
124         * intl.c, main.c, version.c, fixinc/fixlib.h,
125         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
126         gansidecl.h.
127
128 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
129
130         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
131         Update for 64bit.
132
133 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
134
135         * config/i386/xm-beos.h, config/i386/xm-isc.h,
136         config/i386/xm-next.h, config/i386/xm-sco.h,
137         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
138         config/m88k/xm-m88k.h: Delete.
139
140         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
141         * config/romp/xm-romp.h: Don't define bcopy.
142         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
143         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
144
145         * config.gcc: Remove references to deleted files.
146
147         14 xm-host.h remain, 1 xm-cpu.h.
148
149 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
150             David S. Miller  <davem@pierdol.cobaltmicro.com>
151             Andrew MacLeod  <amacleod@redhat.com>
152
153         Use byte offsets in SUBREGs instead of words.
154
155         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
156         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
157         to pass new argument.
158         (add_stored_regs): Use subreg_regno_offset function.
159         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
160         into account.
161         (precompute_arguments): Use gen_lowpart_SUBREG.
162         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
163         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
164         (simplify_set): Rework to use SUBREG_BYTE.
165         (expand_field_assignment): Use SUBREG_BYTE.
166         (make_extraction): Use SUBREG_BYTE.
167         (if_then_else_cond): Use SUBREG_BYTE.
168         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
169         (gen_lowpart_for_combine): Compute full byte offset.
170         * cse.c (mention_regs): Use SUBREG_BYTE.
171         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
172         (canon_hash): Use SUBREG_BYTE.
173         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
174         (gen_lowpart_if_possible): Formatting.
175         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
176         correctly.
177         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
178         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
179         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
180         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
181         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
182         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
183         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
184         certain invariants about SUBREGs the compiler creates.
185         (gen_lowpart_SUBREG): New function.
186         (subreg_hard_regno): New function to get the final register number.
187         (gen_lowpart_common): Use SUBREG_BYTE.
188         (gen_imagpart): Spacing nits.
189         (subreg_realpart_p): Use SUBREG_BYTE.
190         (gen_highpart): Use SUBREG_BYTE.
191         (subreg_lowpart_p): Always compute endian corrected goal offset,
192         even at the byte level, then compare against that.
193         (constant_subword): New function, pulled out all constant cases
194         from operand_subword and changed second argument name to offset.
195         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
196         and call constant_subword to do the work.  Return const0_rtx if
197         looking for a word outside of OP.
198         (operand_subword_force): Change second arg name to offset.
199         * expmed.c (store_bit_field): Use SUBREG_BYTE.
200         (store_split_bit_field): Use SUBREG_BYTE.
201         (extract_bit_field): Use SUBREG_BYTE.
202         (extract_split_bit_field): Use SUBREG_BYTE.
203         (expand_shift): Use SUBREG_BYTE.
204         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
205         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
206         * flow.c (set_noop_p): Use SUBREG_BYTE.
207         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
208         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
209         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
210         correction code.
211         (optimize_bit_field): Use SUBREG_BYTE.
212         (purge_addressof_1): Use SUBREG_BYTE.
213         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
214         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
215         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
216         * gengenrtl.c (special_rtx): Add SUBREG.
217         * global.c (mark_reg_store): Use SUBREG_BYTE.
218         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
219         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
220         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
221         final byte offset is congruent to subreg's mode size.
222         (subst_constants): Use SUBREG_BYTE.
223         (mark_stores): Use subreg_regno_offset function.
224         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
225         function and SUBREG_BYTE.
226         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
227         (reg_is_born): Use subreg_hard_regno.
228         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
229         endian correction code.  Don't combine subregs unless resulting
230         offset aligns with type.  Fix subreg constant extraction for DImode.
231         Simplify SUBREG of VOIDmode CONST_DOUBLE.
232         (general_operand): Remove dead mode_altering_drug code.
233         (indirect_operand): Use SUBREG_BYTE.
234         (constrain_operands): Use subreg_regno_offset function.
235         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
236         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
237         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
238         * regs.h (REG_SIZE): Allow target to override.
239         (REGMODE_NATURAL_SIZE): New macro which target can override.
240         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
241         on the entire subreg rtx.
242         (push_reload): Use SUBREG_BYTE in comments and code.
243         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
244         for hard registers inside subregs.
245         (operands_match_p): Use subreg_regno_offset.
246         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
247         containing hard regs.
248         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
249         corrections when fixing up MEM subregs.
250         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
251         subreg_regno_offset where appropriate.
252         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
253         byte endian corrections when fixing up MEM subregs.
254         (subst_reloads): When combining two subregs, make sure final
255         offset is congruent to subreg's mode size.
256         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
257         (refers_to_regno_for_reload_p): Use subreg_regno.
258         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
259         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
260         correction code for memory subreg fixups.
261         (forget_old_reload_1): Use subreg_regno_offset.
262         (choose_reload_regs): Use subreg_regno.
263         (emit_input_reload_insns): Use SUBREG_BYTE.
264         (reload_combine_note_store): Use subreg_regno_offset.
265         (move2add_note_store): Use subreg_regno_offset.
266         * resource.c (update_live_status, mark_referenced_resources): Use
267         subreg_regno function.
268         (mark_set_resources): Use subreg_regno function.
269         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
270         (subreg_regno_offset, subreg_regno): Define prototypes.
271         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
272         (gen_lowpart_SUBREG): Add prototype.
273         * rtl.texi (subreg): Update to reflect new byte offset representation.
274         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
275         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
276         (reg_overlap_mentioned_p): Use subreg_regno.
277         (replace_regs); Make sure final offset of combined subreg is
278         congruent to size of subreg's mode.
279         (subreg_regno_offset): New function.
280         (subreg_regno): New function.
281         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
282         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
283         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
284         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
285         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
286         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
287         (a29k_get_reloaded_address): Use SUBREG_BYTE.
288         (print_operand): Use SUBREG_BYTE.
289         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
290         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
291         (arm_reload_out_hi): Use SUBREG_BYTE.
292         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
293         instead of SUBREG_WORD.
294         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
295         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
296         SUBREG creation to use byte offset.
297         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
298         inverted load insns): Fix explicit rtl subregs to use byte
299         offsets.
300         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
301         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
302         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
303         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
304         to use byte offsets.
305         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
306         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
307         offsets, also make sure it is congruent to SUBREG's mode size.
308         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
309         unnamed ldob insn): Generate SUBREGs with byte offset.
310         (zero_extendqihi2): SUBREG's are byte offsets.
311         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
312         (m68hc11_gen_highpart): Use SUBREG_BYTE.
313         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
314         zero-extendqisi2): Generate SUBREGs with byte offset.
315         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
316         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
317         subregs in rtl to use byte offsets.
318         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
319         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
320         (mips_move_2words): Use subreg_regno_offset.
321         (mips_secondary_reload_class): Use subreg_regno_offset.
322         * config/mips/mips.md (DImode plus, minus, move, and logical op
323         splits): Fixup explicit subregs in rtl to use byte offsets.
324         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
325         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
326         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
327         rtl to use byte offsets.
328         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
329         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
330         subregs to use byte offsets.
331         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
332         Fixup explicit subregs in rtl to use byte offsets.
333         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
334         and remove byte endian correction code.
335         * config/sh/sh.c (output_movedouble): Use subreg_regno.
336         (gen_ashift_hi): Use SUBREG_BYTE.
337         (regs_used): Use subreg_regno_offset.
338         (machine_dependent_reorg): Use subreg_regno_offset.
339         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
340         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
341         (movdf_i4): Subregs are byte offsets now.
342         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
343         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
344         (REGMODE_NATURAL_SIZE): Override.
345         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
346         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
347         with byte offsets.
348         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
349         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
350         extendqidi2): Generate SUBREGs with byte offsets, also make sure
351         it is congruent to SUBREG's mode size.
352         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
353         offsets.
354         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
355         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
356         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
357         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
358         * config/v850/v850.c (print_operand, output_move_double): Use
359         subreg_regno function.
360
361 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
362
363         * configure.in (target_subdir): Use target_alias, not target.
364         * configure: Rebuilt.
365
366         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
367         other way round.
368         * config/sh/crti.asm: Fix typos in comments.
369
370 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
371
372         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
373         TARGET_FAST_INDIRECT_CALLS.
374         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
375         -fPIC.  Don't warn.
376         (return_addr_rtx): Short circuit export stub matching when
377         TARGET_NO_SPACE_REGS.
378         (output_millicode_call): For out of range calls, make -fPIC
379         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
380         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
381         * pa.md: Modify length attr calculation of all millicode insns to
382         match above.
383
384 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
385
386         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
387         Require at least 2.11 in the version test.  Specifically check
388         for and reject GAS version 2.10.90.
389         * configure: regenerate.
390
391 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
392
393         * pa.c (override_options): Remove PIC profiling warning.
394         (hp_profile_labelno): Delete.
395         (hp_profile_label_rtx): Delete.
396         (hp_profile_label_name): Delete.
397         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
398         (output_function_prologue): Remove profiling code and all tests on
399         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
400         merge_sp_adjust_with_store can work for PIC and profiling.
401         (hppa_expand_epilogue): Remove profile_flag test.
402         (hppa_can_use_return_insn_p): Likewise.
403         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
404         cater for PROFILE_HOOK.
405         (hppa_profile_hook): New function.
406         * pa.h (FUNCTION_PROFILER): Now does nothing.
407         (PROFILE_HOOK): Define.
408         (hppa_profile_hook): Declare.
409         (PROFILE_BEFORE_PROLOGUE): Delete.
410         (ASM_OUTPUT_REG_PUSH): Delete.
411         (ASM_OUTPUT_REG_POP): Delete.
412         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
413         r24.  Accept function name operand, and use this and a locally
414         generated label to calculate pc-rel offset to func start.
415
416 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
417
418         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
419         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
420         $(SYSTEM_H).
421
422 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
423
424         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
425         LO_SUM cases to where they belong.
426
427 2001-04-02  Richard Henderson  <rth@redhat.com>
428
429         * except.h (lang_eh_type_covers): Mark extern.
430         (lang_eh_runtime_type): Likewise.
431
432 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
433
434         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
435         gengenrtl.c:  Wrap generated header in multiple-include guard.
436         Improve error checking.
437
438 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
439
440         * configure.in: Don't check for putenv.
441         * configure: Regenerate.
442         * gcc.c (putenv): Don't define.
443         * vax/xm-vms.h: Handle putenv.
444
445 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
446
447         * ifcvt.c (noce_emit_move_insn): New.
448         (noce_try_store_flag, noce_try_store_flag_constants,
449         noce_try_store_flag_inc, noce_try_store_flag_mask,
450         noce_try_cmove, noce_try_cmove_arith, noce_try_minmax,
451         noce_try_abs): Use it.
452         (noce_process_if_block): Likewise.
453         For STRICT_LOW_PART, take mode from its SUBREG.
454
455 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
456
457         * fold-const.c (fold): Before optimizing unsigned comparison with
458         0x7fffffffU, make sure arg0 is integral type.
459
460 2001-04-02  Joseph S. Myers  <jsm28@cam.ac.uk>
461
462         * c-tree.texi: Document representation of wide strings.
463
464 2001-04-01  Richard Henderson  <rth@redhat.com>
465
466         * except.h (expand_builtin_dwarf_fp_regnum): Declare.
467
468 Sun Apr  1 11:49:05 CEST 2001  Jan Hubicka  <jH@suse.cz>
469
470         * i386.md: remove obsoleted comments.
471         (adddi_?): Rename to adddi_?_rex64; disable for 32bit.
472         (x86_movsicc_0_m1_rex64): Rename to x86_movdicc_0_m1_rex64;
473         fix output template.
474
475 2001-03-31  Marek Michalkiewicz  <marekm@linux.org.pl>
476
477         * config/avr/libgcc.S (__mulhi3): Optimize previous change.
478
479 2001-03-30  Bernd Schmidt  <bernds@redhat.com>
480
481         * loop.c (load_mems): When generating a load from a pseudo, update
482         REGNO_LAST_UID.
483
484 Fri Mar 30 17:36:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
485
486         * i386.c (ix86_split_long_move): Use change address to compensate
487         stack pointer change in push instruction.
488
489 Fri Mar 30 00:31:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
490
491         * i386.md (sse_movdfcc_eq): Fix constraint (sse_mov?fcc splitter): Use operands_match_p
492         instead of rtx_equal_p; fix the output template.
493
494 Fri Mar 30 00:21:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
495
496         * i386.c (ix86_expand_setcc): Support 64bit.
497         (ix86_expand_int_movcc): Likewise.
498         * i386.md (movdicc_rex64, x86_movsicc_0_m1_rex64, movdicc_c_rex64):
499         New patterns.
500
501         * i386.md (allocate_stack_worker): Turn to expander.
502         (allocate_stack_worker_1, allocate_stack_worker_rex64): New insns.
503
504         * i386.c (print_reg): Do not print x86_64 style regs on IA-32
505
506 2001-03-29  Richard Henderson  <rth@redhat.com>
507
508         * libgcc2.c [L__main]: Include unwind-dw2-fde.h instead of frame.h.
509
510 2001-03-28  Matthew Hiller  <hiller@redhat.com>
511
512         * config/mn10300/mn10300.md (cmpsi): Fix first alternative's
513         output template.
514
515         * MAINTAINERS: Added self.
516
517 2001-03-28  Richard Henderson  <rth@redhat.com>
518
519         * Makefile.in (cs-tconfig.h): Depend on CONFIG_H, not GCONFIG_H.
520         Use ALL_CFLAGS not HOST_CFLAGS for sjlj detection.
521
522 2001-03-28  Jim Wilson  <wilson@redhat.com>
523
524         * config/ia64/ia64.md (movtf): Change DImode to TFmode in calls to
525         operand_subword.
526
527 2001-03-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
528
529         * toplev.h (fatal_error): Add ATTRIBUTE_NORETURN.
530
531         * tradcif.y (yyerror): Likewise.  Add format specifier in call to
532         `error'.
533
534         * tradcpp.c (macroexpand): Likewise for call to `error_with_line'.
535
536 2001-03-28  DJ Delorie  <dj@redhat.com>
537
538         * Makefile.in (stage1_build): Revert CFLAGS patch.
539
540 2001-03-28  Marek Michalkiewicz  <marekm@linux.org.pl>
541
542         * config/avr/libgcc.S (__mulhi3): Correct tests to exit the loop
543         when multiplier or multiplicand is zero.
544
545 2001-03-28  Bernd Schmidt  <bernds@redhat.com>
546
547         * cselib.c (hash_rtx): Don't do tail recursion elimination by hand.
548
549         * config/ia64/ia64.c (update_set_flags): New function, broken out of
550         rtx_needs_barrier.
551         (set_src_needs_barrier): Likewise.
552         (rtx_needs_barrier): For SET case, use these two functions.  Rework
553         PARALLEL case to handle all inputs before all outputs.
554         (emit_insn_group_barriers): Call init_insn_group_barriers only if we
555         saw a label and no stop bit since then.
556         (maybe_rotate, process_epilogue): Add prototypes.
557
558 2001-03-28  Richard Henderson  <rth@redhat.com>
559
560         * config/rs6000/rs6000.h (EPILOGUE_USES): Use TARGET_AIX,
561         not TARGET_TOC for special toc restore handling.
562         * config/rs6000/rs6000.md (eh_return): Likewise.
563
564 2001-03-28  Richard Henderson  <rth@redhat.com>
565
566         * config/sparc/sparc.c (eligible_for_epilogue_delay): False if
567         current_function_calls_eh_return.
568         (output_function_epilogue): Handle eh_return.
569         * config/sparc/sparc.h (DOESNT_NEED_UNWINDER): Remove.
570         (EH_RETURN_DATA_REGNO): New.
571         (EH_RETURN_STACKADJ_RTX): New.
572         (EH_RETURN_HANDLER_RTX): New.
573         * config/sparc/sparc.md (call/short branch peepholes): Check
574         can_throw_internal instead of in_same_eh_region.
575
576         * config/rs6000/rs6000.c (rs6000_stack_info): Allocate space
577         for eh_return data registers.
578         (rs6000_emit_prologue): Save eh_return data registers.
579         (rs6000_emit_epilogue): Force inline restores if eh_return.
580         Restore eh_return data registers.  Mind EH_RETURN_STACKADJ_RTX.
581         * config/rs6000/rs6000.h (rs6000_stack_t): Add ehrd_offset.
582         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX): New.
583         (EPILOGUE_USES): True for TOC_REGISTER if calls_eh_return and
584         the target uses one.
585         * config/rs6000/rs6000.md (eh_epilogue, eh_reg_restore): Remove.
586         (return_eh_si, return_eh_di): Remove.
587         (eh_return): New, from corpse of eh_epilogue.
588         (eh_set_lr_si, eh_set_lr_di): New.
589
590         * config/i386/i386.c (general_no_elim_operand): Disallow virtual regs.
591         (ix86_save_reg): If maybe_eh_return, true for EH_RETURN_DATA_REGNOs.
592         True for pic register if current_function_calls_eh_return.
593         (ix86_expand_epilogue): Change "emit_return" argument into "style".
594         Handle eh_return requirements.
595         * config/i386/i386.h (EH_RETURN_DATA_REGNO): New.
596         (EH_RETURN_STACKADJ_RTX): New.
597         * config/i386/i386.md (exception_receiver): Remove.
598         (eh_return, eh_return_1): New.
599         * config/i386/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
600
601         * config/alpha/alpha.c (alpha_sa_mask): Add EH_RETURN_DATA_REGNOs.
602         (alpha_mark_machine_status): No eh_epilogue_sp_ofs ...
603         (alpha_expand_epilogue): ... use EH_RETURN_STACKADJ_RTX instead.
604         * config/alpha/alpha.h (machine_function): Remove eh_epilogue_sp_ofs.
605         (EH_RETURN_DATA_REGNO): New.
606         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): New.
607         * config/alpha/alpha.md (eh_epilogue): Remove.
608         (exception_receiver): Use $26 for ldgp input.
609         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New.
610
611 2001-03-28  Richard Henderson  <rth@redhat.com>
612
613         * except.c: Rewrite entirely for IA-64 ABI exception handling.
614         * except.h: Likewise.
615
616         * Makefile.in (LIB2ADDEH): Mention unwind-dw2*.c
617         (LIB2ADDEHDEP): New.
618         (LIB2FUNCS_EH): Remove.
619         (LIB2ADD): Remove LIB2ADDEH.
620         (libgcc.mk): Pass LIB2ADDEHDEP, don't pass LIB2FUNCS_EH.
621         (LIBGCC_DEPS): Use LIB2ADDEHDEP.
622         (crt{begin,end}[S].o): Likewise.
623         (except.o): Update includes.
624         * mklibgcc.in: Remove LIB2FUNCS_EH, add LIB2ADDEH, LIB2ADDEHDEP.
625         (libgcc2_c_dep): Use LIB2ADDEHDEP.
626
627         * basic-block.h (struct basic_block_def): Remove eh_beg, eh_end.
628         * bb-reorder.c (reorder_basic_blocks): Don't disable for EH.
629         * builtins.def (BUILT_IN_EH_RETURN_DATA_REGNO): New.
630         * builtins.c (expand_builtin): Implement it.
631         [BUILT_IN_EH_RETURN]: Update for nr arguments change.
632         * c-common.c (c_common_nodes_and_builtins): Declare it.
633         * c-decl.c (init_decl_processing): Update __builtin_eh_return.
634         * calls.c (libfunc_nothrow): Remove.
635         (emit_library_call_value_1): Don't call it.
636         * crtstuff.c: Include unwind-dw2-fde.h instead of frame.h.
637         * dwarf2.h (dwarf_call_frame_info): Add dwarf2.1 elements.
638         (DW_EH_PE_*): New defines for pointer encoding in .eh_frame.
639         * dwarf2out.c (struct dw_fde_struct): Add uses_eh_lsda, funcdef_number.
640         (current_funcdef_number): Globalize.
641         (output_call_frame_info): Emit frame data if an lsda is needed.
642         Generate augmentation for personality routine.  Don't play with
643         difference symbols.
644         (dwarf2out_begin_prologue): Record funcdef_number.
645         * dwarf2out.h (current_funcdef_number): Declare.
646         * expr.c (expand_expr): Update for except.h name changes.
647         Remove POPDCC_EXPR, POPDHC_EXPR.  Add EXC_PTR_EXPR.
648         * expr.h (LTI_throw, LTI_rethrow): Remove.
649         (LTI_sjthrow, LTI_sjpopnthrow, LTI_terminate): Remove.
650         (LTI_eh_rtime_match): Remove.
651         (LTI_unwind_resume, LTI_eh_personality): Add.
652         (LTI_unwind_sjlj_register, LTI_unwind_sjlj_unregister): Add.
653         * final.c (final): Don't call check_exception_handler_labels,
654         init_insn_eh_region, or free_insn_eh_region.
655         (final_scan_insn): Always emit debug labels for
656         NOTE_INSN_EH_REGION notes.
657         * flags.h (flag_new_exceptions): Remove.
658         * flow.c (entry_exit_blocks): Remove eh_beg, eh_end.
659         (record_active_eh_regions): Remove.
660         (count_basic_blocks): Check all instructions for REG_EH_REGION.
661         Use can_throw_internal.
662         (find_basic_blocks_1): Likewise.
663         (move_stray_eh_region_notes): Remove.
664         (find_label_refs): No eh_return_stub_label.
665         (make_edges): Likewise.  No init/free_eh_nesting_info.  Handle RESX.
666         (make_eh_edge): No eh_nest_info.  Update for reachable_handlers
667         changes.
668         (delete_unreachable_blocks): Don't track deleted handlers.
669         (flow_delete_block): Use maybe_remove_eh_handler.
670         (delete_eh_regions): Remove.
671         (merge_blocks): Don't check for eh region match.
672         (mark_regs_live_at_end): Handle EH_RETURN_DATA_REGNO,
673         EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX.
674         (init_propagate_block_info): Disable dead frame store optimization
675         when current_function_calls_eh_return.
676         (dump_bb): Don't print eh_beg, eh_end.
677         * function.c (fixup_var_refs): No catch_clauses.
678         (expand_function_end): Likewise.  Call expand_eh_return before
679         the return register use.  Call sjlj_emit_function_exit_after.
680         (expand_function_start): Force pseudo DECL_RESULT if sjlj exceptions.
681         * function.h (struct function): Add calls_eh_return, uses_eh_lsda.
682         * ifcvt.c (dead_or_predicable): Remove eh region check.
683         * integrate.c (function_cannot_inline_p): Disallow __builtin_eh_return.
684         Don't check for EH vs parameters.
685         (expand_inline_function_eh_labelmap, eif_eh_map): Remove.
686         (expand_inline_function): Call duplicate_eh_regions.
687         (copy_insn_list): Don't handle NOTE_INSN_EH_REGION_BEG/END.
688         (copy_insn_notes): Remap REG_EH_REGION notes.
689         (copy_rtx_and_substitute): Remove SYMBOL_REF_NEED_ADJUST check.
690         * integrate.h (struct inline_remap): Add local_return_label.
691         * jump.c (jump_optimize_1): Don't init/free_insn_eh_region, nor
692         check_exception_handler_labels, nor exception_optimize.
693         (find_cross_jump): No EH region check.
694         * optabs.c (init_optabs): Update for changed eh libfuncs.
695         * rtl.def (RESX): New.
696         * rtl.h (SYMBOL_REF_NEED_ADJUST): Remove.
697         * stmt.c (expand_decl_cleanup): Simplify using_eh_for_cleanups_p
698         checks.  Update for except.h name changes.
699         (expand_cleanups): Likewise.
700         (expand_dcc_cleanup, expand_dhc_cleanup): Remove.
701         * toplev.c (dump_file_index, dump_file): Add .02.eh dump.
702         (compile_file): Call init_eh before init_optabs.  Don't
703         output_exception_table here.
704         (rest_of_compilation): Call convert_from_eh_region_ranges,
705         convert_to_eh_region_ranges, output_function_exception_table.
706         Don't emit_eh_context.
707         * tree.def (POPDHC_EXPR, POPDCC_EXPR): Remove.
708         (EXC_PTR_EXPR): New.
709
710         * md.texi (eh_epilogue): Remove.
711         (eh_return): Document.
712         * tm.texi (EH_RETURN_DATA_REGNO): Document.
713         (EH_RETURN_STACKADJ_RTX, EH_RETURN_HANDLER_RTX): Document.
714
715         * eh-common.h: Remove file.
716         * frame-dwarf2.c, frame.c, frame.h: Remove files.
717         * libgcc2.c (L_eh): Remove.
718
719         * unwind-dw2-fde.c: New file, largely copied from frame.c.
720         * unwind-dw2-fde.h: New file.
721         * unwind-dw2.c: New file, largely cribbed from frame-dwarf2.c.
722         * unwind-sjlj.c, unwind.h, unwind.inc: New files.
723         * libgcc-std.ver: Update for eh symbols.
724
725 2001-03-27  Richard Henderson  <rth@redhat.com>
726
727         * regmove.c (perhaps_ends_bb_p): Use can_throw_internal to
728         reduce false positives.
729         (regmove_optimize): Disable if flag_non_call_exceptions.
730
731         * stmt.c (expand_return): Remove always true predicate.
732         (expand_decl_cleanup_no_eh): Remove dead code.
733
734         * sched-deps.c (sched_analyze_insn): Consolidate scheduling
735         barrier code.  Add a scheduling barrier if a non-call insn
736         can throw internally.
737
738         * rtlanal.c (rtx_addr_can_trap_p): Virtual registers cannot trap.
739         Auto-inc addresses trap only if their base register does.
740
741         * except.c (can_throw_internal): Rename from can_throw.
742         * except.h, resource.c: Update references.
743
744         * integrate.c (copy_insn_list): Use returnjump_p.
745         (copy_insn_notes): Recurse for CALL_PLACEHOLDER.
746
747         * function.h (struct function): Move all boolean valued fields
748         to single bit fields at the end of the struct.
749
750         * bb-reorder.c, dwarf2out.c, except.c, except.h, flow.c,
751         jump.c, toplev.c:
752         Rename asynchronous_exceptions to flag_non_call_exceptions.
753
754         * gthr-single.h (UNUSED): New.  Distinguish between how C
755         and C++ mark unused function arguments.  Use throughout.
756
757         * Makefile.in (cs-tconfig.h): Copy USING_SJLJ_EXCEPTIONS
758         value to target configuration header.
759         * configure.in (CONFIG_SJLJ_EXCEPTIONS): New.
760         * config.in, configure: Rebuild.
761         * except.h (USING_SJLJ_EXCEPTIONS): New.  Define based on
762         configuration and target defines.
763         (exceptions_via_longjmp): Remove.
764         * dwarf2out.c, except.c, final.c, toplev.c, config/ia64/ia64.c:
765         Use USING_SJLJ_EXCEPTIONS instead of exceptions_via_longjmp.
766
767         * except.h (flag_non_call_exceptions): Move ...
768         * flags.h: ... here.
769
770         * combine.c (distribute_notes) [REG_EH_REGION]: If non-call
771         exceptions, put the note on the trapping instruction.
772
773         * flags.h (flag_new_exceptions): Remove.
774         * toplev.c: Don't set it.
775         * final.c: Don't check it.
776         * except.c: Provide stub definition.
777
778         * flow.c (tidy_fallthru_edges): Don't combine complex edges.
779         (calculate_global_regs_live): Kill call-clobbered registers
780         across exception edges.
781         * reg-stack.c (convert_regs_1): Kill the entire target stack
782         across non-call exception edges.
783
784         * flow.c (cleanup_cfg): Take no argument.
785         * output.h, sibcall.c, toplev.c: Update all calls.
786
787 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
788
789         * configure.in: Don't check for bcopy.
790         * configure, config.in: Regenerate.
791
792         * system.h: Don't define or prototype bcopy, instead poison it.
793
794 2001-03-27  Richard Henderson  <rth@redhat.com>
795
796         * function.c (expand_function_start): Set DECL_REGISTER on
797         a pseudo used for DECL_RESULT.
798
799         * rtl.h (LCT_NORETURN): New.
800         * calls.c (emit_library_call_value_1): Handle it.
801
802 2001-03-27  Stan Shebs  <shebs@apple.com>
803
804         * objc/objc-act.c (objc_init): Use dump_base_name.
805         (gen_declaration): Clear the buffer arg.
806         (gen_declaration_1): New function, body of gen_declaration.
807         (adorn_decl): Call gen_declaration_1 instead of gen_declaration.
808         (gen_method_decl): Ditto, plus always clear buffer arg.
809         (error_with_ivar): Simplify.
810         (warn_with_method): Ditto.
811         (build_message_expr): Don't clear buffers.
812         (dump_interface): Ditto.
813         (objc_debug): Ditto.
814         (build_keyword_selector): Clear the buffer by only zeroing
815         the first element.
816         (objc_implementation_context): Declare.
817         (start_class): Warn about missing @end.
818         (finish_objc): Ditto.
819
820 2001-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
821
822         * reload1.c (eliminate_regs): Don't abort on MEM USEs.
823
824 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
825
826         * Makefile.in (SYSTEM_H): Define.
827         Depend on $(SYSTEM_H), not system.h.
828
829         * objc/Make-lang.in: Depend on $(SYSTEM_H), not system.h.
830
831 2001-03-27  Jim Wilson  <wilson@redhat.com>
832
833         * final.c (final_scan_insn, case NOTE_INSN_BASIC_BLOCK): Call
834         IA64_UNWIND_EMIT.
835         * config/ia64/ia64.c (block_num, need_copy_state): New static vars.
836         (process_epilogue): New static function.
837         (process_set): Call process_epilogue instead of emitting .restore
838         directly.
839         (process_for_unwind_directive): Handle NOTE_INSN_BASIC_BLOCK.
840
841         * flow.c (struct reg_cond_life_info): New fields orig_condition
842         and stores.
843         (init_propagate_block_info): Set new fields.
844         (mark_regno_cond_dead): Set and use new fields.
845         (flush_reg_cond_reg_1): Likewise.
846         (and_reg_cond, case AND): Check for redundant AND conditions.
847         (mark_used_reg): Delete unnecessary clears before freeing splay trees.
848         Set new fields.
849
850 2001-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
851
852         * cppmacro.c (stringify_arg): Null terminate strings.
853
854 2001-03-27  Zack Weinberg  <zackw@stanford.edu>
855
856         * config.gcc (m68hc11-*-*, m68hc12-*-*): Convert to new tm.h
857         inclusion style.  xm-m68hc11.h no longer exists.
858         * config/m68hc11/xm-m68hc11.h: Delete file.
859         * config/m68hc11/m68hc12.h: Convert to new tm.h inclusion style.
860
861         * config/m68hc11/m68hc11.h: Convert to new tm.h inclusion style.
862         Don't define GCC_VERSION, N_, or PARAMS; don't include
863         gansidecl.h or stdio.h.  Define inhibit_libc here.
864         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
865         Delete code conditioned on #if GCC_VERSION == 2095.
866
867         * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c:
868         Make code conditioned on #if GCC_VERSION > 2095 unconditional.
869         Delete code conditioned on #if GCC_VERSION == 2095.
870
871 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
872
873         * system.h: Include symcat.h.
874         (STRINGIFY): Don't define.
875
876         * configure.in: Adjust comment.
877
878         * builtins.c: Use STRINGX, not STRINGIFY.
879         * gencheck.c: Likewise.
880         * gengenrtl.c: Likewise.
881         * protoize.c: Likewise.
882
883         * cpplex.c: Don't include symcat.h.
884         * cpplib.c: Likewise.
885
886         * gansidecl.h (HAVE_STRINGIZE): Don't define.
887
888 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
889
890         * c-typeck.c (digest_init): Fold init expression.
891
892 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
893
894         * sbitmap.c (sbitmap_copy): Call memcpy, not bcopy.
895
896 2001-03-27  Alan Modra  <alan@linuxcare.com.au>
897
898         * except.c (eh_regs): Save results of build_pointer_type to a temp
899         as FUNCTION_VALUE macro may evaluate its args multiple times.
900
901 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
902
903         * c-common.h (DECL_NUM_STMTS): New macro.
904         * c-decl.c (duplicate_decls): Copy DECL_NUM_STMTS, not
905         DECL_FRAME_SIZE.
906         (pushdecl): Likewise.
907         * c-semantics.c (add_stmt): Update DECL_NUM_STMTS.
908         * integrate.c (expand_inline_function): Don't check
909         DECL_FRAME_SIZE.
910         * print-tree.c (print_node): Don't print it.
911         * toplev.c (rest_of_compilation): Don't try to inline when
912         flag_no_inline is on.
913         * tree.h (DECL_FRAME_SIZE): Remove.
914         (tree_decl): Adjust accordingly.
915
916 2001-03-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
917
918         * combine.c (try_combine): Use memcpy, not bcopy.
919
920         * genattrtab.c (expand_units): Likewise.
921
922 Mon Mar 26 15:55:08 CEST 2001  Jan Hubicka  <jh@suse.cz>
923
924         * i386.md (push mem DI peep2): New.
925         (mov 0, mov -1 peep2): Handle 64bit.
926         (lea to arithmetics peep2): Handle 64bit leas.
927         (rsp arithmetics to push/pop peep2s): New.
928
929         * i386.md (truncdfsf2_3, trunctfsf2_2): Change predicate to memory_operand.
930
931 Mon Mar 26 14:35:18 CEST 2001  Jan Hubicka  <jh@suse.cz>
932
933         * i386.c (struct machine_function): Add save_varrargs_registers.
934         (ix86_save_varrargs_registers): New macro.
935         (ix86_frame_layout): Support 64bit; support red zones and varrargs area.
936         (ix86_expand_prologue): Likewise.
937         (ix86_emit_epilogue_esp_adjustement): Likewise.
938         (ix86_expand_epilogue): Likewise.
939         * i386.md (pro_epilogue_adjust_stack): Turn to expander; support 64bit.
940         (pro_epilogue_adjust_stack_1): New insn.
941         (pro_epilogue_adjust_stack_rex64): Likewise.
942         * i386.h (MASK_NO_RED_ZONE): New constant.
943         (TARGET_RED_ZONE): New macro.
944         (TARGET_OPTIONS): Add "red-zone" and "no-red-zone"
945         (RED_ZONE_SIZE): New constant.
946         (RED_ZONE_RESERVE): New constant.
947
948 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
949
950         * toplev.c (set_float_handler): Use memcpy, not bcopy.
951
952 2001-03-25  Kazu Hirata  <kazu@hxi.com>
953
954         * config/h8300/h8300.md (umodqi3): Output a tab instead of a
955         space.
956         (modqi3): Likewise.
957         (umodhi3): Likewise.
958         (modhi3): Likewise.
959
960 2001-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
961
962         * mkconfig.sh (DEFINES): Handle entries with '='.
963
964         * config.gcc: Don't use i370/xm-mvs.h or ns32k/xm-pc532-min.h.
965         Set xm_defines to MACRO=value instead.
966
967         * i370/xm-mvs.h: Delete.
968
969         * ns32k/xm-pc532-min.h: Likewise.
970
971 Sun Mar 25 15:01:40 CEST 2001  Jan Hubicka  <jh@suse.cz>
972
973         * i386.md (ashldi3, ashrdi3, lshrdi3): Change predicates to
974         shiftdi_operand;
975         use ix86_expand_binary_operator
976         (?sh??i_?): Disable for 64bit.
977         * i386.h (PREDICATE_CODES): Add shiftdi_operand.
978         * i386.c (shiftdi_operand): New predicate.
979
980         * (ashldi3_1_rex64, ashldi3_cmp_rex64, ashlsi3_1_zext, ashlsi3_cmp_zext,
981         ashrdi3_63_rex64, ashrdi3_1_one_bit_rex64, ashrdi3_1_rex64,
982         ashrdi3_one_bit_cmp_rex64, ashrdi3_cmp_rex64, ashrsi3_31_zext,
983         ashrsi3_1_one_bit_zext, ashrsi3_1_zext, ashrsi3_one_bit_cmp_zext,
984         ashrsi3_cmp_zext, lshrdi3_1_one_bit_rex64, lshrdi3_1_rex64,
985         lshrdi3_cmp_one_bit_rex64, lshrdi3_cmp_rex64, lshrsi3_1_one_bit_zext,
986         lshrsi3_1_zext, lshrsi3_cmp_one_bit_zext, lshrsi3_cmp_zext,
987         rotlsi3_1_one_bit_rex64, rotldi3_1_rex64,
988         rotlsi3_1_one_bit_zext, rotlsi3_1_zext, rotrdi3_1_one_bit_rex64,
989         rotrdi3_1_rex64, rotrsi3_1_one_bit_zext, rotrsi3_1_zext): New patterns.
990         (rotldi3, rotrdi3): New expanders.
991
992 Sun Mar 25 14:25:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
993
994         * i386.md (movstrsi): Move offline.
995         (movstrdi): New.
996         (strmovdi_rex64): New.
997         (strmov?i): Accept 64bit.
998         (strmov?i_rex64): New.
999         (strmov?i_rex_1): New.
1000         (strmov?i_1): Disable for 64bit.
1001         (rep_mov?i_rex64): New.
1002         (rep_mov?i): Disable for 64bit.
1003         (clrstrsi): Move offline.
1004         (strset?i_rex64): New.
1005         (strset?i: Accept 64bit.
1006         (rep_stos?i): Disable for 64bit.
1007         (rep_stos?i_rex64): New.
1008         (strset?i_rex_1): New.
1009         (strset?i_1): Disable for 64bit.
1010         (cmpstrsi): Accept 64bit.
1011         (cmpstrsi_nz_1): Rename to cmpstrqi_nz_1; Disable for 64bit.
1012         (cmpstrqi_nz_rex_1): New.
1013         (cmpstrsi_1): Rename to cmpstrqi_1; Disable for 64bit.
1014         (strlensi): Move offline.
1015         (strlendi): New.
1016         (strlenqi_1): Disable for 64bit; fix constraints.
1017         (strlenqi_rex_1): New.
1018         * i386.c (ix86_adjust_counter): New static function.
1019         (ix86_zero_extend_to_Pmode): Likewise.
1020         (ix86_expand_aligntest): Likweise.
1021         (ix86_expand_strlensi_unroll_1): Make static; update for 64bit.
1022         (ix86_expand_movstr): New global function.
1023         (ix86_expand_clrstr): New global function.
1024         (ix86_expand_strlen): New global function.
1025         * i386-protos.h (ix86_expand_movstr, ix86_expand_clrstr,
1026         ix86_expand_strlen): Declare.
1027         (ix86_expand_strlensi_unroll_1): Delete.
1028
1029 Sat Mar 24 23:15:19 CET 2001  Jan Hubicka  <jh@suse.cz>
1030
1031         * i386.md (cmpdi): Fix operand predicates.
1032         (cmpdi_ccno_1_rex64, cmpdi_minus_1_rex64, cmpdi_1_rex64,
1033          cmpdi_1_insn_rex64): New patterns.
1034         (adddi3): Turn to expander.
1035         (adddi3_1, adddi3_carry_rex64, adddi3_cc_rex64): New patterns.
1036         (addsi3_carry_zext): New pattern.
1037         (adddi_?_rex64): New patterns and splitters.
1038         (addsi_?_zext): New patterns.
1039         (subsi3_carry_zext): New pattern.
1040         (subdi_?_rex64): New patterns and splitters.
1041         (iorsi_?_zext): New patterns.
1042         (iordi_?_rex64): New patterns and splitters.
1043         (iorsi_?_zext): New patterns.
1044         (iorsi_?_zext_imm): New patterns.
1045         (xorsi_?_zext): New patterns.
1046         (xordi_?_rex64): New patterns and splitters.
1047         (xorsi_?_zext): New patterns.
1048         (negdi*): New patterns.
1049         (one_cmpldi*): Likewise.
1050         (one_cmplsi*_zext, negsi*_zext): Likewise.
1051         (testqi_ext_3_rex64): New pattern.
1052
1053 Sat Mar 24 21:13:28 CET 2001  Jan Hubicka  <jh@suse.cz>
1054
1055         * i386-protos.h (ix86_split_long_move): Return void.
1056         * i386.c (ix86_split_to_parts): Handle 64bit target.
1057         (ix86_split_long_move): Likewise.
1058         * i386.md (all calls to ix86_split_long_move): Update.
1059
1060 2001-03-23  Richard Henderson  <rth@redhat.com>
1061
1062         * config/mips/iris4.h (ASM_OUTPUT_ASCII): Rename local variables
1063         to avoid shadowing arguments.
1064
1065 2001-03-23  Jakub Jelinek  <jakub@redhat.com>
1066
1067         * varasm.c (make_decl_rtl): Don't append var_labelno discriminator
1068         to variable names where DECL_NAME is different from
1069         DECL_ASSEMBLER_NAME.
1070
1071 2001-03-23  Jim Wilson  <wilson@redhat.com>
1072
1073         * varasm.c (make_decl_rtl): Add TREE_PUBLIC check to abort test.
1074         (assemble_alias): Call make_decl_rtl.
1075
1076 Fri Mar 23 16:59:08 2001  J"orn Rennecke <amylaar@redhat.com>
1077
1078         * stor-layout.c (layout_type): Give OFFSET_TYPE a MODE_INT type.
1079
1080 2001-03-23  Bryce McKinlay  <bryce@albatross.co.nz>
1081
1082         * extend.texi: Document the "java_interface" attribute.
1083
1084 2001-03-22  Zack Weinberg  <zackw@stanford.edu>
1085
1086         * mkconfig.sh: Use a subshell with redirected stdout,
1087         instead of closing stdout and confusing commands that run
1088         afterward.  Throw away output of cmp.
1089
1090 2001-03-22  Gordon Sadler  <gbsadler1@lcisp.com>
1091
1092         * Makefile.in (stage1_build): Pass CFLAGS to stage1_build.
1093
1094 Thu Mar 22 22:15:59 CET 2001  Jan Hubicka  <jh@suse.cz>
1095
1096         * i386.md (zero_extendsidi2_32): Break out from ...
1097         (zero_extendsidi2): ... here ; turn to expander.
1098         (zero_extendsidi2_rex64): New.
1099         (extendsidi2_32): Break out from ...
1100         (extendsidi2): ... here ; turn to expander.
1101         (extendsidi2_rex64): New.
1102         (zero_extendhidi2, zero_extendqidi2, extendhidi2, extendqidi2): New.
1103         (trunc?f?f splitters): Add 64bit versions.
1104
1105 Thu Mar 22 21:41:16 CET 2001  Jan Hubicka  <jh@suse.cz>
1106
1107         * i386.md (pushsi, pushsi2_prologue): Disable.
1108         (pushsi2_rex64): New.
1109         (movabs?i_1_rex64, movabs?i_2_rex64): New.
1110         (movqi_ext_1): Disable for 64bit.
1111         (movqi_ext_1_rex64): New.
1112         (pushdi2_rex64): New pattern, peep2s and splitter.
1113         (pushdi2_prologue_rex64): New pattern.
1114         (popdi1_epilogue_rex64, popdi1, movdi_xor_rex64, movdi_or_rex64):
1115         Likewise.
1116         (movdi splitters): Disable for 64bit.
1117         (movdi_1_rex64): New pattern, peep2s and splitters.
1118         (swapdi): New pattern.
1119         (pushsf): Disable for 64bit.
1120         (pushsf_rex64): New pattern and splitter.
1121         (pushdf_nointeger): Disable for 64bit.
1122         (pushdf_integer): Handle the 64bit case.
1123         (pushtf): Likewise; update splitters.
1124
1125 2001-03-22  Richard Henderson  <rth@redhat.com>
1126
1127         * mkconfig.sh: Include insn-flags.h.
1128         * Makefile.in (CONFIG_H): Include insn-flags.h.
1129         (lots of objects): Remove insn-codes.h and insn-flags.h.
1130
1131         * alias.c, bb-reorder.c, calls.c, do-loop.c, flow.c, haifa-sched.c,
1132         integrate.c, jump.c, loop.c, predict.c, profile.c, reg-stack.c,
1133         regmove.c, reorg.c, a29k/a29k.c, alpha/alpha.c, arc/arc.c, arm/arm.c,
1134         avr/avr.c, clipper/clipper.c, convex/convex.c, d30v/d30v.c,
1135         dsp16xx/dsp16xx.c, fr30/fr30.c, h8300/h8300.c, i370/i370.c,
1136         i386/i386.c, i860/i860.c, ia64/ia64.c, m32r/m32r.c, m68hc11/m68hc11.c,
1137         m68k/m68k.c, m88k/m88k.c, mcore/mcore.c, mn10200/mn10200.c,
1138         mn10300/mn10300.c, ns32k/ns32k.c, pa/pa.c, pdp11/pdp11.c,
1139         pj/pj.c, romp/romp.c, rs6000/rs6000.c, sh/sh.c, sparc/sparc.c,
1140         v850/v850.c, vax/vax.c:
1141         Don't include insn-flags.h.
1142
1143         * diagnostic.c, expr.h, reload.c, toplev.c:
1144         Don't include insn-codes.h.
1145
1146         * builtins.c, combine.c, except.c, explow.c, expmed.c, expr.c,
1147         final.c, function.c, optabs.c, recog.c, reload1.c, stmt.c,
1148         c4x/c4x.c, i960/i960.c, mips/mips.c:
1149         Don't include insn-codes.h or insn-flags.h.
1150
1151         * genemit.c, genopinit.c, genoutput.c: Don't include insn-codes.h
1152         or insn-flags.h in the generated code.
1153         * genflags.c (gen_proto): Use "struct rtx_def *" instead of "rtx".
1154         (main): Forward declare struct rtx_def.
1155
1156 2001-03-22  Joseph S. Myers  <jsm28@cam.ac.uk>
1157
1158         * invoke.texi (-ffast-math): Remove duplicate line about
1159         __FAST_MATH__.
1160
1161         * gcc.texi: Remove more obsolete documentation of bugs and
1162         installation problems.
1163
1164 2001-03-21  Kazu Hirata  <kazu@hxi.com>
1165
1166         * config/h8300/h8300.md (movsi_h8300hs): Split the 2nd alternative
1167         into two parts.
1168
1169 2001-03-20  Jason Merrill  <jason@redhat.com>
1170
1171         * collect2.c (is_ctor_dtor): Always use '_' in the file fn names,
1172         not '.' or '$'.
1173         * tree.c (FILE_FUNCTION_FORMAT): Likewise.
1174         * varasm.c (CHKR_PREFIX): Likewise.
1175
1176 Wed Mar 21 14:27:11 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1177
1178         * gcse.c (hash_scan_set): An expression is not anticipatible if it
1179         is part of a multi-SET insn.
1180
1181         * cse.c (find_comparison_args): Remove previous change.
1182         * ifcvt.c (noce_process_if_block): When moving an insn, remove any
1183         REG_EQUAL notes.
1184
1185         * config/i386/i386.md (conditional_trap): Remove warning.
1186
1187         * recog.c (push_operand): Fix error in last change that caused
1188         undefined symbol on many targets.
1189
1190         * sdbout.c: #include ggc.h.
1191         (sdbout_init): Move to end of file.
1192         Call ggc_add_tree_root for anonymous_types.
1193         (sdbout_symbol): Use DECL_NAME for local, not DECL_ASSEMBLER_NAME.
1194         (sdbout_one_type): Use DECL_NAME for field name.
1195         * Makefile.in (sdbout.o): Show includes ggc.h.
1196
1197 Wed Mar 21 20:33:26 CET 2001  Jan Hubicka  <jh@suse.cz>
1198
1199         * i386.c (override_options): Default ix86_regparm to REGPARM_MAX.
1200         (override_options): Use properlimits for preferred_stack_boundary.
1201         (ix86_valid_type_attribute_p): Disable stdcall and cdecl attributes
1202         on x86_64.
1203         (ext_register_operand): Accept DImode.
1204         (load_pic_register): Abort on 64bit.
1205         (gen_push): Use Pmode instead of SImode.
1206         (ix86_save_reg): Pic reg is never used on 64bit.
1207         (ix86_expand_prologue): Likewise.
1208         (ix86_emit_save_regs): Use Pmode instead of SImode.
1209         (legitimate_address_p): Check displacement for 64bit.
1210         (print_operand): Avoid outputting of (%rip) on 64bit.
1211         (print_operand_address): Output (%rip) where possible.
1212         (split_di): Abort on 64bit registers.
1213         (ix86_expand_branch): DImode comparison is simple for x86_64.
1214         (memory_address_length): Recognize memory addresses formed using
1215         PRE/POST modify.
1216         (ix86_data_alignment, ix86_local_alignment): Align arrays to 16 bytes
1217         for x86_64.
1218         * i386.h (TARGET_USE_SAHF): Disable for 64bit.
1219
1220 Wed Mar 21 18:51:19 CET 2001  Jan Hubicka  <jh@suse.cz>
1221
1222         * recog.c (push_operand): Recognize new format of push instructions.
1223
1224 Wed Mar 21 10:53:57 CET 2001  Jan Hubicka  <jh@suse.cz>
1225
1226         * i386.md (pushqi1): New.
1227         * i386-protos.h (x86_64_general_operand, x86_64_szext_general_operand,
1228         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
1229         x86_64_immediate_operand, x86_64_immediate_operand,
1230         x86_64_zext_immediate_operand): Declare.
1231         * i386.c (x86_64_general_operand, x86_64_szext_general_operand,
1232         x86_64_nonmemory_operand, x86_64_szext_nonmemory_operand,
1233         x86_64_immediate_operand, x86_64_immediate_operand,
1234         x86_64_zext_immediate_operand): define.
1235         * i386.h (PREDICATE_CODES): Add new predicates.
1236
1237 Wed Mar 21 10:25:13 CET 2001  Jan Hubicka  <jh@suse.cz>
1238
1239         * i386.md (pophi1, popqi1, pushqi1): Remove.
1240
1241         * expr.c (emit_single_push_insn): New function.
1242         (move_by_pieces): Accept NULL as destination for push instructions.
1243         (gen_push_operand): Kill.
1244         (emit_push_insn): Pass NULL when pushing; avoid updating of
1245         stack_pointer_delta.
1246         * expr.h (gen_push_operand): Kill.
1247
1248 Tue Mar 20 20:15:06 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1249
1250         * rtl.texi (COMPARE): Clarify documentation and reference section
1251         on comparisons.
1252
1253 2001-03-20  Stan Shebs  <shebs@apple.com>
1254
1255         * objc/objc-act.c (get_static_reference): Use NULL_TREE.
1256         (get_object_reference): Ditto.
1257         (error_with_ivar): Use error_with_file_and_line.
1258         (warn_with_method): Use warning_with_file_and_line.
1259
1260 2001-03-20  Tom Tromey  <tromey@redhat.com>
1261
1262         * libgcc-std.ver: Added __fixunssfsi and __fixunsdfsi.
1263
1264 2001-03-20  Mark Mitchell  <mark@codesourcery.com>
1265
1266         * tree.c (set_decl_assembler_name): Set DECL_ASSEMBLER_NAME for
1267         variables that are TREE_PUBLIC, even if not TREE_STATIC.
1268
1269 2001-03-20  DJ Delorie  <dj@redhat.com>
1270
1271         * Makefile.in (install-libgcc): Pass complete list of variables.
1272         (install-multilib): Ditto.
1273
1274 2001-03-20  David Billinghurst  <David.Billinghurst@riotinto.com>
1275
1276         * config/i386/cygwin.h: Declare ctor_section, dtor_section
1277         drectve_section, switch_to_section.
1278
1279         * winnt.c: Declare functions associated_type, gen_stdcall_suffix,
1280         i386_pe_dllexport_p, i386_pe_dllimport_p, i386_pe_mark_dllexport,
1281         i386_pe_mark_dllimport.
1282
1283 2001-03-20  David Billinghurst <David.Billinghurst@riotinto.com>
1284
1285         * config/i386/cygwin.h: Include <stdio.h> Declare and constify
1286         functions i386_pe_*.
1287
1288         * config/i386/winnt.c: Include "tm_p.h" and "toplev.h" Constify
1289         i386_pe_* functions with char * arguments.
1290
1291 2001-03-20  Alexandre Oliva  <aoliva@redhat.com>
1292
1293         * config/sh/sh.md (movsf_ie): Fix output patterns for fpul load
1294         and store.
1295         (movsi_ie): Introduce fpul store.
1296
1297 2001-03-20  Alan Modra  <alan@linuxcare.com.au>
1298
1299         * Makefile.in (OBJS): Remove hashtab.o.
1300
1301 2001-03-19  Stan Shebs  <shebs@apple.com>
1302
1303         * objc/objc-act.c (maybe_objc_method_name): Remove, never called.
1304         * c-lang.c (maybe_objc_method_name): Ditto.
1305         * c-tree.h (maybe_objc_method_name): Remove decl.
1306
1307 2001-03-19  Tom Tromey  <tromey@redhat.com>
1308
1309         * gcc.c (init_gcc_specs): Fix comment.
1310
1311 2001-03-19  Mark Mitchell  <mark@codesourcery.com>
1312
1313         Compute DECL_ASSEMBLER_NAME lazily.
1314         * tree.h (DECL_ASSEMBLER_NAME): Compute it lazily.
1315         (DECL_ASSEMBLER_NAME_SET_P): New macro.
1316         (SET_DECL_ASSEMBLER_NAME): Likewise.
1317         (COPY_DECL_ASSEMBLER_NAME): Likewise.
1318         (set_decl_assembler_name): Declare.
1319         (lang_set_decl_assembler_name): Likewise.
1320         * tree.c (lang_set_decl_assembler_name): New variab.e
1321         (set_decl_assembler_name): New function.
1322         (init_obstacks): Set lang_set_decl_assembler_name.
1323         (build_decl): Don't set DECL_ASSEMBLER_NAME.
1324         * c-decl.c (duplicate_decls): Use SET_DECL_ASSEMBLER_NAME,
1325         COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
1326         where it's not necessary.
1327         (builtin_function): Likewise.
1328         (finish_decl): Likewise.
1329         * dbxout.c (dbxout_type_methods): Likewise.
1330         * ggc-common.c (ggc_mark_trees): Likewise.
1331         * profile.c (output_func_start_profiler): Likewise.
1332         * varasm.c (make_decl_rtl): Likewise.
1333
1334         * cse.c (find_comparison_args): Update documentation.  Fix
1335         mishandling of COMPARE operations.
1336
1337         * tree.def (ABS_EXPR): Add documentation.
1338         * fold-const.c (fold): Improve folding of ABS_EXPRs.
1339
1340 2001-03-19  Zack Weinberg  <zackw@stanford.edu>
1341
1342         * Makefile.in (hash.o): Depend on $(GCONFIG_H), not $(CONFIG_H).
1343
1344 2001-03-19  Jakub Jelinek  <jakub@redhat.com>
1345
1346         * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
1347         Remove ia32 linux PIC kludge and move it...
1348         * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
1349
1350 Mon Mar 19 18:53:54 CET 2001  Jan Hubicka  <jh@suse.cz>
1351
1352         * i386.md (absdf2 expander): Fix 64bit case.
1353
1354 2001-03-19  Brad Lucier  <lucier@math.purdue.edu>
1355
1356         * Makefile.in: Have splay-tree.o depend on $(GCONFIG_H).
1357
1358 2001-03-16  Andrew Haley  <aph@cambridge.redhat.com>
1359
1360         * config/ia64/libgcc-ia64.ver: Add __ia64_backtrace.
1361
1362 2001-03-19  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1363
1364         * README.X11: Remove obsolete file.
1365
1366 2001-03-18  Anthony Green  <green@redhat.com>
1367
1368         * config/pj/pj.h: Remove some trailing commas.
1369         (ASM_SPEC): Use -EB and -EL, not -mb and -ml.
1370
1371 2001-03-18  Richard Henderson  <rth@redhat.com>
1372
1373         * defaults.h (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Move from ...
1374         * calls.c: ... here.
1375         * combine.c, expr.c, final.c, function.c toplev.c: Don't provide
1376         defaults for them here.
1377
1378 2001-03-17  Anthony Green  <green@redhat.com>
1379
1380         * config/pj/lib1funcs.S: Fix broken comment.
1381         * config/pj/pj.h (LOCAL_LABEL_PREFIX): Prefix internal
1382         labels with '.'.
1383
1384 2001-03-18  Joseph S. Myers  <jsm28@cam.ac.uk>
1385
1386         * gcc.texi: Remove obsolete information relating to build and
1387         installation problems with enquire or the Pyramid C compiler.
1388
1389 2001-03-17  Richard Henderson  <rth@redhat.com>
1390
1391         * dwarf2out.c (queue_reg_save): New.
1392         (flush_queued_reg_saves, clobbers_queued_reg_save): New.
1393         (dwarf2out_frame_debug_expr): Call queue_reg_save instead of
1394         dwarf2out_reg_save.
1395         (dwarf2out_frame_debug): Call flush_queued_reg_saves when needed.
1396         (cfa, cfa_store, cfa_temp): Make static.
1397         * final.c (final_scan_insn): Always call dwarf2out_frame_debug.
1398
1399 2001-03-17  Richard Henderson  <rth@redhat.com>
1400
1401         * integrate.h (struct inline_remap): Add local_return_label.
1402         * integrate.c (expand_inline_function): Initialize it and emit
1403         it after copy_insn_notes.
1404         (copy_insn_list): Don't store local_return_label here.
1405         (copy_insn_notes): New function split out from copy_insn_list.
1406
1407 2001-03-17  Richard Henderson  <rth@redhat.com>
1408
1409         * dwarf2out.c (lookup_filename): Emit .file if the assembler
1410         is generating .debug_line.
1411         (dwarf2out_init): Add main_input_filename to the file table first.
1412         * configure.in (as_dwarf2_debug_line): Test with file number 1
1413         instead of file number 0.
1414
1415 Sat Mar 17 11:52:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1416
1417         * combine.c (undobuf): Remove field previous_undos; all refs deleted.
1418         (gen_rtx_combine): Deleted; all references changed as appropriate.
1419         (gen_unary): Deleted; all refs changed to call simplify_gen_unary.
1420
1421         * print-tree.c (print_node): Print DECL_NONADDRESSABLE_P.
1422
1423 2001-03-17  David Billinghurst  <David.Billinghurst@riotinto.com>
1424
1425         * config/i386/xm-cygwin.h: Include <sys/cygwin.h.  Remove unused
1426         variable.
1427
1428 2001-03-16  Jim Wilson  <wilson@redhat.com>
1429
1430         * config/ia64/ia64.c (ia64_compute_frame_size): If reg_fp is zero,
1431         then set it to LOC_REG (79) instead of aborting.
1432
1433 2001-03-16  Phil Edwards  <pme@sources.redhat.com>
1434
1435         * gccbug.in:  Remove high priority.
1436
1437 2001-03-16  Richard Henerson  <rth@redhat.com>
1438
1439         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): Substitute leading od
1440         output with a space instead of deleting it.
1441         * configure: Regenerate.
1442
1443 2001-03-16  Zack Weinberg  <zackw@stanford.edu>
1444
1445         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT): New utility macro which
1446         handles the gory details of converting an object file into
1447         something that's safe to grep.
1448         (gcc_AC_C_COMPILE_BIGENDIAN): Rename to
1449         gcc_AC_C_COMPILE_ENDIAN.  Use gcc_AC_EXAMINE_OBJECT.  Put
1450         newlines at either end of the string we're looking for.
1451         Make 'checking ...' message less stilted.
1452         (gcc_AC_C_FLOAT_FORMAT): Use gcc_AC_EXAMINE_OBJECT.  Handle
1453         ARM in-memory layout and its hypothetical converse.  Don't
1454         define HOST_FLOAT_WORDS_BIG_ENDIAN unless it's different from
1455         HOST_WORDS_BIG_ENDIAN.
1456
1457         * configure.in: Adjust for renamed macro.  Move
1458         gcc_AC_C_FLOAT_FORMAT below gcc_AC_C_COMPILE_ENDIAN.
1459         * configure, config.in: Regenerate.
1460
1461 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
1462
1463         * fixinc/Makefile.in: Set SHELL.
1464
1465 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
1466
1467         * fixinc/fixincl.c (fix_with_system): Quote file names before
1468         passing them to shell.
1469
1470 2001-03-16  Laurynas Biveinis  <lauras@softhome.net>
1471
1472         * Makefile.in: Use fix-header$(build_exeext) instead
1473         of fix-header.
1474
1475 2001-03-16  Richard Henderson  <rth@redhat.com>
1476
1477         * dwarf2out.c: Revert most of 2000-11-25 and 2001-01-24 changes.
1478         (LN_PROLOG_AS_LABEL, LN_PROLOG_END_LABEL): New.
1479         (size_of_line_prolog): Remove.
1480         (output_line_info): Compute prologue size via label difference.
1481         (lookup_filename): Return "unspecified" for <internal> and <built-in>.
1482
1483         * configure.in (HAVE_AS_DWARF2_DEBUG_LINE): Require that the
1484         assembler error when redefining file numbers.
1485         * config.in, configure: Rebuild.
1486
1487         * dwarf2asm.c (dw2_asm_output_data): Mask data to the output size.
1488         (dw2_asm_output_data_uleb128): Use space not tab after .uleb128.
1489         (dw2_asm_output_delta_uleb128): Likewise.
1490         (dw2_asm_output_delta_sleb128): Similarly.
1491         (dw2_asm_output_data_sleb128): Similarly.  Print number in decimal.
1492
1493 2001-03-16  Michael Meissner  <meissner@redhat.com>
1494
1495         * mips.h (BITMASK_HIGH): Replacement for 0x80000000 that avoids
1496         warnings.
1497         (BITMASK_UPPER16): Replacement for 0xffff0000 that avoids
1498         warnings.
1499         (BITMASK_LOWER16): Replacement for 0x0000ffff.
1500
1501         * mips.c (save_restore_insns): Use BITMASK_UPPER16/BITMASK_LOWER16
1502         instead of 0xffff0000/0x0000ffff to avoid warnings about constants
1503         being unsigned in ISO C and signed in traditional.
1504         (expand_prologue): Ditto.
1505         (RA_MASK): Use BITMASK_HIGH to avoid warnings.
1506
1507         * mips.md (divmodsi4,divmodsi4): Use BITMASK_HIGH to avoid
1508         warnings.
1509         (divsi3,divdi3): Ditto.
1510         (modsi3,moddi3): Ditto.
1511         (fix_truncdfsi2,fix_truncdfdi2): Ditto.
1512         (fix_truncsfsi2,fix_truncsfdi2): Ditto.
1513         (movsi split): Use BITMASK_UPPER16/BITMASK_LOWER16 to avoid
1514         warnings.
1515
1516 Fri Mar 16 14:47:57 CET 2001  Jan Hubicka  <jh@suse.cz>
1517
1518         * i386.c (ix86_expand_fp_movcc): Do not attempt to construct
1519         SSE based conditional moves on LTGT/UNEQ conditions;
1520         Canonicalize EQ to NE.
1521         * i386.md (sse_mov?fcc): Disallow EQ and NE in IEEE mode.
1522         (sse_mov?fcc_ne): New.
1523
1524         * i386-protos.h (sign_extended_value, zero_extended_value): Declare.
1525
1526 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
1527
1528         * config/sh/sh.c (sh_expand_prologue): Insns that set up the PIC
1529         register may be dead.
1530
1531 2001-03-16  Brad Lucier  <lucier@math.purdue.edu>
1532
1533         * Makefile.in (hash.o): Depend on CONFIG_H.
1534
1535 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
1536
1537         * dwarf2out.c (rtl_for_decl_location): Use DECL_RTL_IF_SET.
1538
1539 2001-03-15  Richard Henderson  <rth@redhat.com>
1540
1541         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): New.
1542         (ASM_OUTPUT_DWARF_PCREL): New.
1543         * config/ia64/hpux.h (ASM_OUTPUT_DWARF_OFFSET): Remove.
1544
1545 2001-03-16  Alexandre Oliva  <aoliva@redhat.com>
1546
1547         * cppfiles.c (stack_include_file): Use MAX of sysp.
1548
1549 2001-03-15  Steve Ellcey  <sje@cup.hp.com>
1550
1551         * config.gcc (ia64*-*-hpux*): New case.
1552         * config/ia64/hpux.h: New file for HP-UX support.
1553         * config/ia64/t-hpux: New file for HP-UX support.
1554
1555 2001-03-16  Bruce Korb  <bkorb@gnu.org>, Alexandre Oliva  <aoliva@redhat.com>
1556
1557         * fixinc/inclhack.def (irix_stdio_va_list): New.
1558         * fixinc/fixincl.x: Rebuilt.
1559
1560 2001-03-15  Richard Henderson  <rth@redhat.com>
1561
1562         * dwarf2asm.c (dw2_asm_output_offset): Use ASM_OUTPUT_DWARF_OFFSET
1563         if provided by the target.
1564         (dw2_asm_output_pcrel): Likewise with ASM_OUTPUT_DWARF_PCREL.
1565         (dw2_asm_output_addr): New.
1566         * dwarf2asm.h (dw2_asm_output_addr): Declare.
1567         * dwarf2out.c (output_cfi): Use it for program addresses.
1568         (output_call_frame_info, output_die): Likewise.
1569         (output_aranges, output_line_info): Likewise.
1570
1571 2001-03-15  Bruce Korb  <bkorb@gnu.org>
1572
1573         * gcc.c(main): make more rigorous
1574         * collect2.c(main): guard against ignoring SIGCHLD
1575         * protoize.c(main): ditto
1576         * gcc/fixinc/fixincl.c(initialize): ditto
1577
1578 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
1579
1580         * sdbout.c (sdbout_symbol): Use DECL_RTL_SET_P, SET_DECL_RTL.
1581         (sdbout_parms): Likewise.
1582
1583 Thu Mar 15 12:57:14 2001  Jeffrey A Law  (law@cygnus.com)
1584
1585         * reload1.c (reload_cse_simplify_set): For LOAD_EXTEND_OP, do not
1586         "widen" a destination that is already wider than a word.  Also do
1587         not widen if LOAD_EXTEND_OP is NIL for the given mode.
1588
1589 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
1590
1591         * config/ia64/ia64.c (ia64_sched_reorder): Remove debugging aids.
1592
1593 Thu Mar 15 11:30:31 EST 2001  John Wehle  (john@feith.com)
1594
1595         * i960.h (ROUND_TYPE_SIZE_UNIT): Fix typo.
1596
1597 Thu Mar 15 11:24:29 EST 2001  John Wehle  (john@feith.com)
1598
1599         * i960.h (i960_maxbitalignment,
1600         i960_last_maxbitalignment): Declare.
1601         * i960.c (i960_maxbitalignment,
1602         i960_last_maxbitalignment): Make global.
1603         (process_pragma): Delete.
1604         (i960_pr_align, i960_pr_noalign): Move from here ...
1605         * i960-c.c: ... to this new file.
1606         * t-960bare (i960-c.o): New rule.
1607         * t-vxworks960 (i960-c.o): Likewise.
1608         * config.gcc (i960-*-*): Define c_target_objs and
1609         cxx_target_objs.
1610
1611 2001-03-15  Bernd Schmidt  <bernds@redhat.com>
1612
1613         * cselib.c (hash_rtx): For REG and MEM, just use value of expression
1614         without adding in rtx code and mode.
1615
1616         * alias.c (init_alias_analysis): Don't use any rtx whose value
1617         varies as a known value.
1618         Delete a superfluous test.
1619
1620         * config/ia64/ia64.c (maybe_rotate): New function, broken out of
1621         ia64_sched_reorder.
1622         (ia64_sched_reorder): Call maybe_rotate; also rotate after
1623         scheduling a stop bit.
1624         (ia64_emit_nops): Correctly handle ASMs.
1625
1626 2001-03-15  Mark Mitchell  <mark@codesourcery.com>
1627
1628         * varasm.c (assemble_variable): Use DECL_RTL_SET_P.
1629
1630 2001-03-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1631
1632         * cpp.texi: Update documentation for -include and -imacros.
1633         * cppfiles.c (struct include_file): Remove "defined" memeber.
1634         (find_or_create_entry): Make a copy of the file name, and
1635         simplify it.
1636         (open_file): Update to ensure we use the simplified filename.
1637         (stack_include_file): Don't set search_from.
1638         (cpp_included): Don't simplify the path name here.
1639         (find_include_file): New prototype.  Call search_from to
1640         get the start of the "" include chain.  Don't simplify the
1641         filenames here.
1642         (_cpp_execute_include): New prototype.  Move diagnostics to
1643         do_include_common.  Update.
1644         (_cpp_pop_file_buffer): Don't set defined.
1645         (search_from): New prototype.  Use the preprocessor's cwd
1646         for files included from the command line.
1647         (read_name_map): Don't simplify the pathname here.
1648         * cpphash.h (enum include_type): New.
1649         (struct buffer): Delete search from.  New search_cached.
1650         (_cpp_execute_include): Update prototype.
1651         * cppinit.c (do_includes): Use _cpp_execute_include.
1652         * cpplib.c (do_include_common): New function.
1653         (do_include, do_include_next, do_import): Use it.
1654
1655 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
1656
1657         * varasm.c (assemble_alias): Use DECL_ASSEMBLER_NAME, not the
1658         contents of the RTL, to determine the name of the object.
1659
1660 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
1661
1662         * tree.h (DECL_RTL): Allocate RTL lazily.
1663         (SET_DECL_RTL): New macro.
1664         (DECL_RTL_SET_P): Likewise.
1665         (COPY_DECL_RTL): Likewise.
1666         (DECL_RTL_IF_SET): Likewise.
1667         * varasm.c (make_decl_rtl): Add assertions about the kind of
1668         declaration we are processing.
1669         * c-decl.c (duplicate_decls): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
1670         (start_decl): Likewise.
1671         (finish_decl): Likewise.
1672         * c-semantics.c (emit_local_var): Likewise.
1673         * calls.c (expand_call): Likewise.
1674         * dbxout.c (dbxout_symbol): Likewise.
1675         * emit-rtl.c (unshare_all_rtl): Likewise.
1676         (unshare_all_decls): Likewise.
1677         (reset_used_decls): Likewise.
1678         * expr.c (store_constructor): Likewise.
1679         (safe_from_p): Likewise.
1680         (expand_expr): Likewise.
1681         * function.c (put_var_into_stack): Likewise.
1682         (instantiate_decls_1): Likewise.
1683         (assign_parms): Likewise.
1684         (expand_function_start): Likewise.
1685         (expand_function_end): Likewise.
1686         * ggc-common.c (gcc_mark_trees): Likewise.
1687         * integrate.c (function_cannot_inline_p): Likewise.
1688         (copy_decl_for_inlining): Likewise.
1689         (expand_inline_function): Likewise.
1690         (integrate_parm_decls): Likewise.
1691         (integrate_decl_tree): Likewise.
1692         * print-tree.c (print_node): Likewise.
1693         * reg-stack.c (stack_result): Likewise.
1694         * stmt.c (label_rtx): Likewise.
1695         (expand_return): Likewise.
1696         (expand_decl): Likewise.
1697         (expand_decl_cleanup): Likewise.
1698         (expand_anon_union_decl): Likewise.
1699         * toplev.c (check_global_declarations): Likewise.
1700         (rest_of_decl_compilation): Likewise.
1701         * tree.c (simple_cst_equal): Likewise.
1702         * objc/objc-act.c (generate_static_references): Likewise.
1703
1704 2001-03-14  Zack Weinberg  <zackw@stanford.edu>
1705
1706         * aclocal.m4 (gcc_AC_C_CHARSET, gcc_AC_C_COMPILE_BIGENDIAN,
1707         gcc_AC_C_FLOAT_FORMAT): New macros.
1708         * configure.in: Add AC_PROG_CPP after CC tests;
1709         gcc_AC_C_CHARSET and gcc_AC_C_FLOAT_FORMAT after the sizeof
1710         tests; and gcc_AC_C_COMPILE_BIGENDIAN after gcc_AC_C_CHAR_BIT.
1711         * configure, config.in: Regenerate.
1712
1713         * config/a29k/xm-a29k.h, config/arc/xm-arc.h,
1714         config/arm/xm-arm.h, config/c4x/xm-c4x.h,
1715         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
1716         config/i370/xm-linux.h, config/i370/xm-oe.h,
1717         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
1718         config/m68k/xm-m68k.h, config/mips/xm-mips.h,
1719         config/pa/xm-linux.h, config/pa/xm-pa.h,
1720         config/rs6000/xm-lynx.h, config/rs6000/xm-mach.h,
1721         config/rs6000/xm-rs6000.h, config/rs6000/xm-sysv4.h,
1722         config/sparc/xm-sparc.h, config/vax/xm-vax.h,
1723         config/we32k/xm-we32k.h: Delete.
1724
1725         * config/i370/xm-mvs.h, config/m88k/m88k.h,
1726         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
1727         config/vax/xm-vms.h: Don't define any of:
1728         HOST_FLOAT_FORMAT, HOST_EBCDIC, HOST_WORDS_BIG_ENDIAN
1729
1730         * config/rs6000/aix.h: Define COLLECT_EXPORT_LIST here.
1731
1732         * config.gcc: Remove references to deleted files.
1733         (i370-*-opened*): Use i370/xm-mvs.h (which now defines only
1734         FATAL_EXIT_CODE, which is the same between oe and mvs).
1735
1736 2001-03-14  DJ Delorie  <dj@redhat.com>
1737             Vladimir Makarov  <vmakarov@redhat.com>
1738
1739         * config/i960/i960.c (i960_function_prologue): Compute size of
1740         frame according to number of registers actually saved there.
1741
1742 2001-03-14  Richard Henderson  <rth@redhat.com>
1743
1744         * expr.c (emit_move_insn_1): Fix else if around #endif.
1745
1746 Wed Mar 14 22:39:12 CET 2001  Jan Hubicka  <jh@suse.cz>
1747                               Vojtech Pavlik
1748
1749         * md.texi (machine constraints): Document 'Q', 'R', 'e' and 'Z'
1750         constraints.
1751
1752 Wed Mar 14 22:26:10 CET 2001  Jan Hubicka  <jh@suse.cz>
1753
1754         * i386.c (ix86_cmodel_string, ix86_cmodel): Define.
1755         (override_options): Parse cmodel string.
1756         (x86_64_sign_extended_value, x86_64_zero_extended_value): New.
1757         * i386.h (TARGET_OPTIONS): Add "cmodel".
1758         (EXTRA_CONSTRAINT): Recognize 'e' and 'Z'.
1759         (enum cmodel): New.
1760         (ix86_cmodel_string, ix86_cmodel): Declare.
1761
1762 Wed Mar 14 22:26:54 CET 2001  Jan Hubicka  <jh@suse.cz>
1763
1764         Spot by Matt Kraai:
1765         * i386.h (GENERAL_REG_P): Add missing REG_P.
1766
1767 2001-03-14  Laurynas Biveinis  <lauras@softhome.net>
1768
1769         * configure.in: Use $gcc_cv_as instead of $as.
1770         * configure: Regenerated.
1771
1772 2001-03-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1773
1774         * cppfiles.c (stack_include_file): Only increase the include
1775         count if we actually process the file properly, as opposed
1776         to treating it as length zero.  Only call read_include_file
1777         if not DO_NOT_REREAD.  Handle the -H include file output
1778         here.
1779         (read_include_file): Remove now redundant DO_NOT_REREAD check.
1780         (cpp_included, find_include_file): Simplify pathnames after
1781         remapping them.  If remapping, don't use the remapped file
1782         name's buffer as our scratch buffer.
1783         (cpp_pop_file_buffer): Replace the multiple include macro
1784         only if it isn't yet set.
1785         (read_name_map): Simplify remapped names when reading in.
1786         (remap_filename): Move code to code path that uses it.
1787         (_cpp_simplify_pathname): Return the input pointer.
1788         * cpphash.h (_cpp_simplify_pathname): Update prototype.
1789
1790 2001-03-14  Mark Mitchell  <mark@codesourcery.com>
1791
1792         * expr.c (expand_expr): Revove bogus conditional.
1793
1794 Wed Mar 14 19:29:50 CET 2001  Jan Hubicka  <jh@suse.cz>
1795
1796         * expr.c (emit_move_insn_1): Guard PUSH_ROUNDING use by ifdef.
1797
1798 2001-03-14  Jakub Jelinek  <jakub@redhat.com>
1799
1800         * reg-stack.c (stack_result): Unconditionally use
1801         FUNCTION_OUTGOING_VALUE resp. FUNCTION_VALUE.
1802
1803 Wed Mar 14 16:36:25 CET 2001  Jan Hubicka  <jh@suse.cz>
1804
1805         * expr.c (emit_move_insn_1):  Split push of complex value when
1806         no suitable push instruction exist.
1807
1808         * i386.md (QImode move/add/shift patterns): Use ANY_QI_REG_P
1809         instead of QI_REG_P.
1810
1811 Tue Mar 13 22:22:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1812
1813         * alias.c (handled_component_p, can_address_p): New functions.
1814         (get_alias_set): Use them.
1815
1816 2001-03-13  Jim Wilson  <wilson@redhat.com>
1817
1818         * config/ia64/ia64.c (find_gr_spill): Subtract frame_pointer_needed
1819         from 80 in try_locals code.
1820         (ia64_expand_prologue): Add comment pointing to find_gr_spill change.
1821
1822 2001-03-13  Zack Weinberg  <zackw@stanford.edu>
1823
1824         * aclocal.m4 (gcc_AC_COMPILE_CHECK_SIZEOF, gcc_AC_C_CHAR_BIT,
1825         gcc_AC_C_LONG_LONG): New.
1826         * configure.in: Use them.  Probe the size of short, int, long,
1827         and long long/__int64 if we have them.  Move all the AC_C_*
1828         checks together, except gcc_AC_C_CHAR_BIT which has to go
1829         after AC_CHECK_HEADERS(limits.h).
1830         Take hwint.h out of host_xm_file and build_xm_file.
1831
1832         * hwint.h: Unconditionally define HOST_BITS_PER_CHAR,
1833         HOST_BITS_PER_SHORT, HOST_BITS_PER_INT, HOST_BITS_PER_LONG,
1834         and HOST_BITS_PER_LONGLONG in terms of SIZEOF_* and CHAR_BIT.
1835         Move the HOST_WIDEST_INT setup logic here from system.h.
1836         Provide HOST_WIDEST_INT even if HOST_BITS_PER_LONGLONG is not
1837         defined.
1838         * system.h: Include hwint.h after limits.h.  HOST_WIDEST_INT
1839         is now handled by hwint.h.
1840
1841         * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms.h,
1842         config/c4x/xm-c4x.h, config/i370/xm-oe.h,
1843         config/ia64/xm-ia64.h: Don't define any of:
1844         HOST_BITS_PER_LONG, HOST_BITS_PER_CHAR, HOST_BITS_PER_SHORT,
1845         HOST_BITS_PER_LONGLONG.
1846
1847         * config/alpha/xm-alpha.h, config/dsp16xx/xm-dsp16xx.h,
1848         config/h8300/xm-h8300.h, config/mips/iris6.h,
1849         config/mn10200/xm-mn10200.h, config/pa/xm-pa64hpux.h,
1850         config/sparc/xm-sp64.h: Delete.
1851         * config.gcc: Remove references to deleted files.
1852
1853         * config/arm/xm-arm.h, config/mips/xm-mips.h: Don't define
1854         HOST_FLOAT_FORMAT to IEEE_FLOAT_FORMAT.
1855         * config/i370/xm-linux.h: Clarify floating-point situation in
1856         a comment.
1857
1858 2001-03-13  Neil Booth  <neil@daikokuya.demon.co.uk>
1859
1860         * cppfiles.c (NO_INCLUDE_PATH): New macro.
1861         (find_include_file): Decide here which part of the include
1862         chain to start the search.  Complain about an empty include
1863         chain in all cases apart from an abolsute file name.
1864         (_cpp_execute_include): Don't choose the search chain here.
1865         Don't call handle_missing_include in the case of an empty
1866         include chain.
1867         (_cpp_compare_file_date): Don't choose the search chain here.
1868         * cpplib.c (do_include_next): Move the in-main-file diagnostic
1869         here from _cpp_execute_include.  Behave like #include if
1870         we're in the main file.
1871
1872 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1873
1874         * system.h (malloc, realloc, calloc, strdup): Only poison these
1875         tokens when IN_GCC is defined.
1876
1877 Tue Mar 13 14:38:44 CET 2001  Jan Hubicka  <jh@suse.cz>
1878
1879         * i386.md (abs?f expander): Support SSE case.
1880         (abd?f_if): Add new "USE"; add splitters.
1881
1882 2001-03-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1883
1884         * cpp.texi (poison): Explain the macro expansion exception.
1885
1886 2001-03-13  Jakub Jelinek  <jakub@redhat.com>
1887
1888         * expr.c (store_expr): Add dont_store_target.  If temp is already in
1889         target before copying to reg, don't store it into target again.
1890
1891 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1892
1893         * cppinternals.texi: Update for file handling.
1894
1895 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
1896
1897         * emit-rtl.c (remove_unnecessary_notes): Reverse Richard Kenner's
1898         2001-02-24 which broke building the Java library.
1899         * function.c (identify_blocks): Likewise.
1900         (all_blocks): Likewise.
1901         * integrate.c (integrate_decl_tree): Likewise.
1902         * print-tree.c (print_node): Likewise.
1903         * tree.h (BLOCK_NUMBER): Likewise.
1904         (struct tree_block): Likewise.
1905
1906 2001-03-12  David Edelsohn  <edelsohn@gnu.org>
1907
1908         * rs6000/aix51.h (CPP_SPEC, CPLUSPLUS_CPP_SPEC): Fix typo in
1909         __WCHAR_TYPE__ definition.
1910         (WCHAR_TYPE_SIZE): #undef before #define.
1911
1912 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1913
1914         * cppfiles.c: Update comments.
1915         (destroy_include_file_node): Rename destroy_node.
1916         (find_or_create_entry): New function.
1917         (open_file, _cpp_fake_include): Use it.
1918         (handle_missing_header): New function, broken out of
1919         _cpp_execute include.  Don't segfault if there is no
1920         system or quoted path.
1921         (_cpp_execute_include): Use handle_missing_header.
1922
1923 2001-03-12  Jeffrey Oldham  <oldham@codesourcery.com>
1924
1925         * jump.c (reversed_comparison_code_parts): Reverse Jan Hubricka's
1926         2001-02-28 patch because it breaks arm-linux and mips-sgi-irix6.5.
1927
1928 Mon Mar 12 14:05:32 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1929
1930         * flow.c (insn_dead_p): Don't consider two memrefs equivalent
1931         unless anti_dependence says they are.
1932         * alias.c (objects_must_conflict): If neither has a type specified,
1933         they must conflict.
1934
1935 2001-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
1936             David Billinghurst <David.Billinghurst@riotinto.com>
1937
1938         * config/mips/iris5.h:  Change WCHAR_TYPE to int.
1939
1940 Mon Mar 12 16:32:21 CET 2001  Jan Hubicka  <jh@suse.cz>
1941
1942         * i386.md (trunctfdf2_2): Rename missnamed pattern.
1943         (*_one_bit): Remove type on the match_operand in attributes.
1944
1945 Mon Mar 12 16:27:56 CET 2001  Jan Hubicka  <jh@suse.cz>
1946
1947         * i386.c: Commit forgotten hunk in previous patch.
1948         (regclass_map): Add extended registers.
1949         (dbx_register_map): Add missing frame register.
1950
1951 Mon Mar 12 15:41:08 CET 2001  Jan Hubicka  <jh@suse.cz>
1952
1953         * i386.md (all XFmode patterns except swapxf): Disable for 64bit.
1954
1955         * i386.md (x86_sahf_1): Disable for 64bit.
1956         (popsi*, pophi*): Likewise.
1957         (pushqi, pushhi): Likewise.
1958         (movdi, pushdi): Likewise.
1959         (zero extend DImode splitter): Likewise.
1960         (adddi, minusdi splitter): Likewise.
1961         (umulsidi): Likewise.
1962         (umulsi): New.
1963         (mulsidi): Disable for 64bit
1964         (lshift:DI/ashift:DI): Disable for 64bit.
1965         (loop patterns): Likewise.
1966         (call_pop, call_value_pop expanders and patterns): Likewise.
1967         (prologue_get_pc): Likewise.
1968         (leave): Likewise.
1969         (fcmovDI pattern and splitter): Likewise.
1970         (movdfcc_1_rex64): New.
1971
1972 Mon Mar 12 15:16:36 CET 2001  Jan Hubicka  <jh@suse.cz>
1973
1974         * i386.h (VALID_FP_MODE_P): XFmode is invalid on x86_64.
1975         (MODES_TIEABLE_P): QImodes and DImodes are tiable on x86_64.
1976         (HARD_REGNO_CALLER_SAVE_MODE): Save QImodes as QImodes for x86_64.
1977         (STATIC_CHAIN_REGNUM): Set to r10 for x86_64.
1978         (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM for x86_64.
1979         (LIMIT_RELOAD_CLASS): Avoid limiting of QImodes on x86_64.
1980         (SECONDARY_OUTPUT_RELOAD_CLASS): No need to QImodes.
1981         (PUSH_ROUNDING): x86_64 rounds to 64bits.
1982         (CONSTANT_ADDRESS_P): Accept CONST_DOUBLE.
1983         (REGPARM_MAX): Set to 6 for x86_64.
1984         (SSE_REGPARM_MAX): Set to 16 for x86_64.
1985         * i386.c (hard_regno_mode_ok): QImodes can be in all general purpose
1986         registers.
1987
1988         * (patterns that does use upper halves): Update constraints
1989         'q' to 'Q' and 'r' to 'R'.
1990         (cmpqi_ext_1): Disable for 64bit.
1991         (cmpqi_ext_3_insn): Likewise.
1992         (movqi_extzv_1): Likewsie.
1993         (addqi_ext_1): Liekwsie
1994         (testqi_ext_1): Liekwsie
1995         (andqi_ext_1): Liekwsie
1996         (xorqi_ext_1): Liekwsie
1997         (cmpqi_ext_1_rex64): New.
1998         (cmpqi_ext_3_insn_rex64): Likewise.
1999         (movqi_extzv_1_rex64): Likewsie.
2000         (addqi_ext_1_rex64): Liekwsie
2001         (testqi_ext_1_rex64): Liekwsie
2002         (andqi_ext_1_rex64): Liekwsie
2003         (xorqi_ext_1_rex64): Liekwsie
2004
2005 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
2006
2007         * configure.in: Move check for unsigned enumerated bitfields
2008         to macro in aclocal.m4.  Disable it for now.
2009         * configure, config.in: Regenerate.
2010         * system.h: Don't do anything with ONLY_INT_FIELDS.  Use the
2011         unsigned-int form of ENUM_BITFIELD() unless being compiled by GCC.
2012         * varasm.c (struct rtx_const): Use ENUM_BITFIELD().  Move enum
2013         kind above its first use.
2014
2015         * config/xm-interix.h, config/alpha/xm-alpha.h,
2016         config/i370/xm-linux.h, config/i386/xm-beos.h,
2017         config/i386/xm-mingw32.h, config/mips/xm-mips.h,
2018         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
2019         config/rs6000/xm-beos.h, config/rs6000/xm-sysv4.h,
2020         Don't define ONLY_INT_FIELDS under any circumstances.
2021
2022         * config/pa/xm-pa.h: Don't define __BSD_NET2__.
2023
2024         * config/pa/xm-pahpux.h, config/pa/xm-papro.h,
2025         config/sparc/xm-sysv4.h: Delete - now identical with some
2026         other xm header.
2027         * config.gcc (hppa targets): Replace xm-pahpux.h and
2028         xm-papro.h with implicit xm-pa.h.
2029         (sparc targets): Replace xm-sysv4.h with implicit or explicit
2030         xm-sparc.h.
2031
2032 2001-03-12  Aldy Hernandez  <aldyh@redhat.com>
2033
2034         * reload1.c (reload_cse_simplify): Call reload_cse_simplify_set
2035         before reload_cse_noop_set_p.
2036
2037 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
2038
2039         * config.gcc: Where xm-host.h used to include another
2040         xm-host.h, list the nested header directly in xm_file.  Remove
2041         references to deleted files.  Can now use sparc/xm-sp64.h for
2042         sparcv9-*-solaris*.
2043
2044         * config/xm-linux.h, config/arm/xm-linux.h,
2045         config/i386/xm-dos.h, config/i386/xm-gnu.h,
2046         config/i386/xm-linux.h, config/i386/xm-openbsd.h,
2047         config/i860/xm-fx2800.h, config/m68k/xm-atari.h,
2048         config/m68k/xm-linux.h, config/m68k/xm-sun3.h,
2049         config/sparc/xm-linux.h, config/sparc/xm-sysv4-64.h:
2050         Delete.
2051
2052         * config/alpha/xm-alpha-interix.h: Don't include alpha/xm-alpha.h.
2053         * config/mips/xm-iris5.h: Don't include mips/xm-mips.h.  Don't
2054         bother to wrap #undef in #ifdef.
2055         * config/pa/xm-linux.h, config/rs6000/xm-sysv4.h:
2056         Don't include xm-linux.h.
2057         * config/sparc/xm-sp64.h: Don't include sparc/xm-sparc.h.
2058
2059         * configure.in: Wrap regexps using [] in changequote block.
2060         Use expr : not echo | grep.  Simplify regexps.
2061         * configure: Regenerate.
2062
2063         56 xm-files remain, 22 xm-arch.
2064
2065 2001-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2066
2067         * mips-tfile.c: Cast arg to PTR when specifier is HOST_PTR_PRINTF.
2068         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
2069         (local_index, local_rindex): Delete, use strchr/strrchr instead.
2070         (copy_object): Fix format specifier vs argument mismatch.
2071
2072         * mips-tdump.c: Make local functions static.
2073         (rindex): Don't #undef.
2074         (__proto, PTR_T, CPTR_T): Delete, use PARAMS/PTR instead.
2075         (fatal, fancy_abort): Delete.
2076         (read_seek): Avoid signed/unsigned compare.
2077
2078 Sun Mar 11 17:01:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2079
2080         * combine.c (try_combine): Fix error in change to try original
2081         register.
2082         (gen_rtx_combine): Do same as gen_rtx for now.
2083
2084 2001-03-11  Zack Weinberg  <zackw@stanford.edu>
2085
2086         * configure.in: AC_SUBST xm_defines.
2087         * configure: Regenerate.
2088         * Makefile.in: Set DEFINES=$(xm_defines) when building
2089         tconfig.h.
2090
2091 2001-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2092
2093         * cppfiles.c (INCLUDE_LEN_FUDGE, ENOMEM): Delete.
2094         (cpp_included, find_include_file): Update.
2095         (_cpp_compare_file_date): Make else unconditional.
2096
2097 2001-03-10  kaz Kojima <kkojima@rr.iij4u.or.jp>
2098
2099         * config/sh/sh.h (LEGITIMATE_PIC_OPERAND_P): Defined.
2100
2101 2001-03-10  Toshiyasu Morita  <toshiyasu.morita@hsa.hitachi.com>
2102
2103         * config/sh/sh.md (umulhisi3_i, mulhisi3_i): Fix mnemonics.
2104         * config/sh/lib1funcs.asm (mulsi3): Convert mulu to mulu.w.
2105
2106 Sat Mar 10 22:42:05 2001  Alexandre Oliva  <aoliva@redhat.com>
2107
2108         * tree.c (build_common_tree_nodes_2): Don't copy va_list_type_node
2109         if it's a record type.
2110
2111 Sat Mar 10 17:52:54 2001  Christopher Faylor <cgf@cygnus.com>
2112
2113         * config/i386/cygwin.h: Make ../w32api a system directory.  Reorganize
2114         mingw includes slightly.
2115
2116 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2117
2118         * system.h (malloc, realloc, calloc, strdup, bzero, bcmp, rindex):
2119         #undef token before poisoning it.
2120
2121 2001-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2122
2123         * alpha.c (check_float_value): Use memcpy, not bcopy.
2124
2125         * m32r.c (m32r_sched_reorder): Likewise.
2126
2127         * vax.c (check_float_value): Likewise.
2128
2129 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2130
2131         * toplev.c (file_name_nondirectory): Remove.
2132         * toplev.h: Similarly.
2133         * dwarf2out.c (compute_section_prefix): Use lbasename instead
2134         of file_name_nondirectory.
2135
2136 Sat Mar 10 10:36:45 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2137
2138         * mips-tdump.c (read_seek): Call xmalloc, not malloc.
2139         * mips-tfile.c: Don't #undef rindex; not used.
2140
2141 Sat Mar 10 14:34:59 CET 2001  Jan Hubicka  <jh@suse.cz>
2142
2143         * i386.h (DBX_REGISTER_NUMBER): Return proper values for 64bits.
2144         (dbx64_register_map): Declare.
2145         (RETURN_ADDR_RTX): Fix for 64bit.
2146         (DWARF_FRAME_RETURN_COLUMN): Set to 16 for 64bit.
2147         (INCOMING_FRAME_SP_OFFSET): Set to 8.
2148         * i386.c (dbx64_register_map): New global array.
2149         * beos-elf.h, freebsd.h, i386-interix.h, i386elf.h,
2150         linux.h (DBX_REGISTER_REGNUMBER): Use dbx64_register_map
2151         for 64bits.
2152
2153 2001-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
2154
2155         * cppfiles.c (search_from): Use lbasename.
2156         * mkdeps.c (deps_add_default_target): Use lbasename.
2157
2158 2001-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2159
2160         * fixinc/server.c (load_data, run_shell): Use xmalloc, xrealloc &
2161         xcalloc in lieu of malloc, realloc & calloc.
2162
2163         * gencheck.c (xmalloc): Use really_call_malloc, not malloc.
2164
2165         * gengenrtl.c (xmalloc): Likewise.
2166
2167         * gensupport.c (xcalloc, xrealloc, xmalloc): Use the
2168         really_call_* memory allocation routines.
2169
2170         * stmt.c (check_for_full_enumeration_handling): Use
2171         really_call_calloc, not calloc.
2172
2173         * system.h (really_call_malloc, really_call_calloc,
2174         really_call_realloc): Define.
2175         (malloc, realloc, calloc, strdup, bzero, bcmp, rindex): Poison.
2176
2177 Fri Mar  9 18:39:19 2001  Jeffrey A Law  (law@cygnus.com)
2178
2179         * pa.md (builtin_longjmp): Rework slightly to work for PA64 too.
2180
2181 2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>
2182
2183         * configure: Rebuilt.
2184         * configure.in: Only use `lang_requires' for languages athat are
2185         actually enabled.
2186
2187 2001-03-09  Joseph S. Myers  <jsm28@cam.ac.uk>
2188
2189         * invoke.texi: Fix typo.
2190         * gcc.1: Regenerate.
2191
2192 2001-03-09  Zack Weinberg  <zackw@stanford.edu>
2193
2194         * configure.in: Prune nonexistent files from build_xm_file,
2195         xm_file, and host_xm_file lists.  Warn unless they're
2196         $cpu/xm-$cpu.h.
2197         Don't generate *config.h here.
2198         AC_SUBST all variables needed to generate *config.h.
2199         * configure: Regenerate.
2200         * mkconfig.sh: New helper script, from code removed from
2201         configure.in.
2202         * Makefile.in: Zap all MALLOC variables - no longer used
2203         anywhere, and malloc.c doesn't exist.
2204         Substitute in variables needed to generate *config.h.
2205         Stop lying about the dependencies contained in CONFIG_H and
2206         GCONFIG_H.
2207         (HCONFIG_H, TCONFIG_H, TM_P_H): New variables.
2208         (config.h, hconfig.h, tconfig.h, tm_p.h, cs-config.h,
2209         cs-hconfig.h, cs-tconfig.h, cs-tm_p.h): New rules.
2210         (all .o): Add dependencies on $(HCONFIG_H), $(TCONFIG_H),
2211         $(TM_P_H), etc. as appropriate.
2212
2213         * config.gcc: Zap references to deleted files.
2214         * ggc-none.c: Don't include rtl.h or tm_p.h.
2215
2216         * config/i386/xm-beos.h, config/i386/xm-dgux.h,
2217         config/i386/xm-djgpp.h, config/i386/xm-dos.h,
2218         config/i386/xm-gnu.h, config/i386/xm-i386-interix.h,
2219         config/i386/xm-linux.h, config/i386/xm-linux.h,
2220         config/i386/xm-next.h, config/i386/xm-openbsd.h,
2221         config/i386/xm-sun.h, config/i386/xm-sysv3.h:
2222         Don't include i386/xm-i386.h.
2223
2224         * config/elxsi/xm-elxsi.h, config/i386/xm-bsd386.h,
2225         config/i386/xm-i386.h, config/i860/xm-i860.h,
2226         config/i960/xm-i960.h, config/mcore/xm-mcore.h,
2227         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
2228         config/pj/xm-pj.h, config/sh/xm-sh.h, config/v850/xm-v850.h:
2229         Delete (empty except comments, #includes of other deleted
2230         files, and macros used nowhere).
2231
2232 Fri Mar  9 20:05:27 CET 2001  Jan Hubicka  <jh@suse.cz>
2233
2234         * i386.h (MAX_WCHAR_TYPE_SIZE): New constant to keep tradcpp
2235         independent on TARGET_FLAGS.
2236
2237 Fri Mar  9 19:52:52 CET 2001  Jan Hubicka  <jh@suse.cz>
2238
2239         * i386.h (FIRST_PSEUDO_REGISTER): Set to 53.
2240
2241         (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ONES): Add
2242         extended ones.
2243         (CONDITIONAL_REGISTER_USAGE): Set proper values according to
2244         TARGET_64BIT.
2245         (FIRST_REX_INT_REG, LAST_REX_INT_REG, FIRST_REX_SSE_REG,
2246         LAST_REX_SSE_REG): define.
2247         (enum reg_class): Add 'LEGACY_REGS'
2248         (REG_CLASS_CONTENTS): Likewise; add extended registers.
2249         (SSE_REGNO_P): Recognize extended registers.
2250         (ANY_QI_REG_P, REX_INT_REGNO_P, REX_INT_REG_P): New.
2251         (REG_CLASS_FROM_LETTER): Add 'R' and 'Q'.
2252         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P,
2253         REG_OK_FOR_BASE_NONSTRICT_P): Recognize REX registers.
2254         (REG_OK_FOR_STRREG_NONSTRICT_P, REG_OK_FOR_STRREG_STRICT_P,
2255          REG_OK_FOR_STRREG_P): Remove.
2256         (HI_REGISTER_NAMES): Add extended registers.
2257         (ADDITIONAL_REGISTER_NAMES): Likewise.
2258         (QI_REGISTER_NAMES): Add 8bit extended registers.
2259         (DEBUG_REG): Support extended registers.
2260         * i386.c (regclass_map): Add extended registers.
2261         (dbx_register-map): Likewise.
2262         (svr4_dbx_register_map): Likewise.
2263         (print_reg): Support extended registers.
2264         (print_operand): Support 64bit operands.
2265
2266 Fri Mar  9 19:37:46 CET 2001  Jan Hubicka  <jh@suse.cz>
2267
2268         * i386.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 128bit for x86_64
2269         (BOOL_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE,
2270          FLOAT_TYPE_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE,
2271          DOUBLE_TYPE_SIZE, LONG_LONG_TYPE_SIZE): New constants.
2272         (BITS_PER_WORD, UNITS_PER_WORD, POINTER_SIZE, PARM_BOUNDARY,
2273          STACK_BOUNDARY): Set properly for 64bits.
2274         (MAX_BITS_PER_WORD, MIN_UNITS_PER_WORD): New constants.
2275         (EMPTY_FIELD_BOUNDARY): Define using BITS_PER_WORD.
2276         (BIGGEST_FIELD_ALIGNMENT): Set to 128 for 64bits.
2277         (MOVE_MAX): Set to 16.
2278         (MOVE_MAX_PIECES): 8 for 64bit.
2279         (Pmode): Set to SImode.
2280
2281 Fri Mar  9 09:00:36 2001  Mike Stump  <mrs@wrs.com>
2282
2283         * cselib.c (hash_rtx): Ensure that hash isn't zero upon return.
2284
2285 Fri Mar  9 17:38:08 CET 2001  Jan Hubicka  <jh@suse.cz>
2286
2287         * i386.h (mask_64bit): New constant.
2288         (target_64bit): New macro.
2289         (target_options): Add '64'/'32'
2290         (target_default): Define.
2291         * cygwin.h freebsd-aout.h i386-interix.h i386.h i386elf.h isc.h
2292         isccoff.h netbsd.h next.h openbsd.h p sco.h sco5.h scodbx.h sequent.h
2293         unix.h win32.h (TARGET_DEFAULT): Rename to TARGET_SUBTARGET_DEFAULT.
2294
2295 Thu Mar  8 23:36:56 2001  Jeffrey A Law  (law@cygnus.com)
2296
2297         * config/pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Disable.
2298
2299 Thu Mar  8 23:29:37 2001  John Wehle  (john@feith.com)
2300
2301         * rtlanal.c (rtx_varies_p): Check operand 0 of a
2302         LO_SUM unless for_alias is set.
2303
2304 2001-03-08  Stan Shebs  <shebs@apple.com>
2305
2306         * objc/objc-act.c: Fix old typos in comments, add comments for
2307         various functions.
2308         (hash_init): Fix file name in error message.
2309         (hash_enter): Ditto.
2310         (hash_add_attr): Ditto.
2311         (continue_class): Ditto.
2312
2313 2001-03-08  Bruce Korb  <bkorb@gnu.org>
2314
2315         gcc.c(main): ensure SIGCHLD handling is set to SIG_DFL so that
2316         wait4() can receive the signal.
2317
2318 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2319
2320         * fixinc/inclhack.def (AAB_dgux_int_varargs): Don't use HTML
2321         entities.
2322         * fixinc/fixincl.x: Regenerate.
2323
2324 Thu Mar  8 21:09:10 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2325
2326         * fixinc/inclhack.def (AAA_standards): Undo <standards.h> breakage
2327         on Tru64 UNIX.
2328         * fixinc/fixincl.x: Regenerate.
2329
2330 2001-03-08  Richard Henderson  <rth@redhat.com>
2331
2332         * configure.in (HAVE_AS_LEB128): New assembler check.
2333         * configure, config.in: Rebuilt.
2334
2335 Thu Mar  8 19:54:04 CET 2001  Jan Hubicka  <jh@suse.cz>
2336
2337         * reg-stack.c (move_for_stack_reg): Avoid non-poping fst for
2338         TFmode too.
2339
2340 2001-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2341
2342         * config/ns32k/xm-pc532-min.h, config/we32k/xm-we32k.h: Delete
2343         references to the MAXPATHLEN macro.
2344
2345         * config/alpha/xm-alpha.h, config/arm/xm-arm.h,
2346         config/i386/xm-cygwin.h, config/xm-linux.h: Delete references to
2347         the POSIX macro.
2348
2349         * config/i386/xm-gnu.h, config/xm-gnu.h,
2350         config/alpha/xm-openbsd.h, config/i386/xm-openbsd.h,
2351         config/m68k/xm-openbsd.h, config/mips/xm-openbsd.h,
2352         config/sparc/xm-openbsd.h, config/xm-openbsd.h: Delete empty
2353         and/or unused files.
2354
2355         * config.gcc: Define POSIX in xm_defines as appropriate in lieu of
2356         doing so in various xm-*.h files.
2357
2358 Thu Mar  8 06:32:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2359
2360         * config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.
2361
2362 2001-03-08  Alexandre Oliva  <aoliva@redhat.com>
2363
2364         * configure.in (enable_shared): Support per-package shared-library
2365         enabling.
2366         * configure: Rebuilt.
2367
2368 2001-03-07  David Edelsohn  <edelsohn@gnu.org>
2369
2370         * rs6000.md (cr logic): Add original POWER mnemonic alternative
2371         for crnot.  Set operands[5] in splitter.
2372
2373 2001-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2374
2375         * config/i370/xm-mvs.h, config/i370/xm-oe.h,
2376         config/i386/xm-beos.h, config/i386/xm-mingw32.h,
2377         config/m88k/xm-m88k.h, config/mips/xm-iris6.h,
2378         config/mips/xm-openbsd.h, config/pa/xm-pa64hpux.h,
2379         config/pa/xm-pahpux.h, config/rs6000/xm-beos.h,
2380         config/rs6000/xm-darwin.h, config/rs6000/xm-mach.h,
2381         config/rs6000/xm-rs6000.h, config/xm-interix.h: Delete references
2382         to the USG macro.
2383
2384         * config/vax/xm-vaxv.h, config/a29k/xm-unix.h,
2385         config/i370/xm-i370.h, config/i386/xm-dgux.h,
2386         config/i386/xm-sun.h, config/i386/xm-sysv3.h,
2387         config/m68k/xm-tower.h, config/m68k/xm-aux.h,
2388         config/m68k/xm-hp320.h, config/m68k/xm-amix.h,
2389         config/m68k/xm-altos3068.h, config/m68k/xm-mot3300.h,
2390         config/m68k/xm-m68kv.h, config/m88k/xm-openbsd.h,
2391         config/mips/xm-nws3250v4.h, config/mips/xm-sysv.h,
2392         config/mips/xm-iris3.h, config/mips/xm-iris4.h, config/xm-svr3.h,
2393         config/xm-svr4.h, config/sparc/xm-pbd.h, config/clipper/xm-clix.h:
2394         Delete unused and/or empty files.
2395
2396         * config.gcc: Define USG in xm_defines as appropriate.  Define
2397         POSIX in lieu of xm-svr4.h.  Delete all references to the SVR3
2398         macro.  Remove deleted xm-* files from $xm_files variable.
2399
2400 2001-03-07  Tom Tromey  <tromey@redhat.com>
2401
2402         * configure: Rebuilt.
2403         * configure.in: Allow config-lang.in to set `lang_requires' to list
2404         of other required languages.
2405
2406 2001-03-07  Andrew MacLeod  <amacleod@redhat.com>
2407
2408         * config/a29k/a29k.c (print_operand): Free a29k_last_prologue_insn
2409         after its emitted.
2410         (output_prologue): Use xmalloc not oballoc.
2411         (output_epilog): Free a29k_first_epilogue_insn when finished.
2412         * confif/a29k/a29k.h (PREDICATE_CODES): Remove shift_constant_operand.
2413
2414 2001-03-07  Brad Lucier  <lucier@math.purdue.edu>
2415
2416         * builtins.c (expand_builtin_mathfn): Check
2417         flag_unsafe_math_optimizations, not flag_fast_math.
2418         (expand_builtin): Likewise
2419         * combine.c (combine_simplify_rtx): Likewise.
2420         (simplify_if_then_else): Likewise.
2421         * cse.c (fold_rtx): Likewise.
2422         * flags.h: Remove flag_fast_math.  Add
2423         flag_unsafe_math_optimizations and flag_trapping_math.
2424         * fold-const.c (negate_expr): Check
2425         flag_unsafe_math_optimizations, not flag_fast_math.
2426         (invert_truthvalue): Likewise.
2427         (fold): Likewise.  Before associating operands, check that
2428         code == MULT_EXPR, not code != MULT_EXPR.
2429         * ifcvt.c (noce_try_minmax): Check
2430         flag_unsafe_math_optimizations, not flag_fast_math.
2431         (noce_operand_ok): Check flag_trapping_math, not flag_fast_math.
2432         * invoke.texi: Document -funsafe-math-optimizations and
2433         -fno-trapping-math.  Change documentation for -ffast-math.
2434         * jump.c (reversed_comparison_code_parts): Likewise.
2435         (rtx_equal_for_thread_p): Likewise.
2436         * optabs.c (emit_conditional_move): Likewise.
2437         * simplify-rtx.c (simplify_binary_operation): Likewise.
2438         (simplify_relational_operation): Likewise.
2439         (simplify_ternary_operation): Likewise.
2440         * toplev.c: Remove flag_fast_math.  Add flag_trapping_math and
2441         flag_unsafe_math_optimizations.  Remove fast-math entry from f_options.
2442         Add trapping-math and unsafe-math-optimizations entries to f_options.
2443         (set_fast_math_flags): New, sets flags for -ffast-math.
2444         (set_no_fast_math_flags): New, sets flags for -fno-fast-math.
2445         (decode_f_option): Add code to handle -ffast-math and -fno-fast-math.
2446         * toplev.h: Declare set_fast_math_flags and set_no_fast_math_flags.
2447
2448         * config/alpha/alpha.c (alpha_emit_conditional_branch): Likewise.
2449         (alpha_emit_conditional_move): Initialize local_fast_math to
2450         flag_unsafe_math_optimizations, not flat_fast_math.
2451         * config/c4x/c4x.c (c4x_override_options): Call set_fast_math_flags
2452         instead of setting flag_fast_math to 1.
2453         * config/convex/convex.md: Check flag_unsafe_math_optimizations,
2454         not flag_fast_math.
2455         * config/i386/i386.c (override_options): Likewise
2456         * config/i386/i386.md: Likewise.
2457         * config/m68k/m68k.md: Likewise.
2458         * config/mips/mips.md: Likewise.
2459         * config/rs6000/rs6000.c (validate_condition_mode): Likewise.
2460         (rs6000_generate_compare): Likewise.
2461
2462 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
2463
2464         * Makefile.in: Set RANLIB to @RANLIB@.
2465         Remove RANLIB_TEST.
2466
2467 2001-03-07  Laurynas Biveinis  <lauras@softhome.net>
2468
2469         * fixinc/inclhack.def (djgpp_wchar_h): New test.
2470         * fixinc/fixincl.x: Regenerated.
2471
2472 2001-03-07  Richard Henderson  <rth@redhat.com>
2473
2474         * config/alpha/alpha.md (call_osf_1_noreturn): New pattern.
2475
2476 2001-03-07  Richard Henderson  <rth@redhat.com>
2477
2478         * emit-rtl.c (remove_unnecessary_notes): Verify proper nesting
2479         of block notes and exception handling notes.
2480
2481         * lists.c (init_EXPR_INSN_LIST_cache): Don't check initialized.
2482         * toplev.c (rest_of_compilation): Call init_EXPR_INSN_LIST_cache ...
2483         (compile_file): ... here.
2484
2485 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2486
2487         * fixinc/Makefile.in (FIXINC_DEFS): Add -DHAVE_CONFIG_H.
2488
2489         * fixinc/gnu-regex.c: Don't include auto-host.h since we get
2490         config.h now.  Include libiberty.h to handle alloca.
2491
2492 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
2493
2494         * c-parse.in (yylexname): New function, split out of _yylex.
2495         (objc_rid_sans_at): New table.
2496         (init_reswords): Initialize it.
2497         (_yylex): Give labels clearer names.  Handle CPP_ATSIGN by
2498         retrieving the next token and checking it for significance as
2499         an ObjC keyword or string constant.
2500
2501         * cpplex.c (_cpp_lex_token): Just return CPP_ATSIGN for '@'.
2502         * cpplib.h (TTYPE_TABLE): Add CPP_ATSIGN, drop CPP_OSTRING.
2503
2504         * c-lex.c, c-parse.in, cppmacro.c, cpplex.c: Remove references
2505         to CPP_OSTRING.
2506
2507 2001-03-06  Stephen L Moshier  <moshier@mediaone.net>
2508
2509         * config/m68k/m68k.c (const_uint32_operand): Accept any
2510         const_int on a 32-bit host.
2511
2512 2001-03-06  Nicola Pero  <n.pero@mi.flashnet.it>
2513
2514         * objc/objc-act.c (init_objc): Set save_lang_status,
2515         restore_lang_status, and mark_lang_status.
2516
2517 2001-03-06  Krister Walfridsson  <cato@df.lth.se>
2518
2519         * dwarf2asm.c (dw2_asm_output_delta): Fix smallest_mode_for_size call.
2520
2521 2001-03-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2522
2523         * cppinternals.texi: Update.
2524
2525 2001-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2526
2527         * config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
2528         config/alpha/xm-alpha.h, config/arc/xm-arc.h, config/arm/xm-arm.h,
2529         config/c4x/xm-c4x.h, config/clipper/xm-clix.h,
2530         config/convex/xm-convex.h, config/d30v/xm-d30v.h,
2531         config/dsp16xx/xm-dsp16xx.h, config/elxsi/xm-elxsi.h,
2532         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
2533         config/i370/xm-linux.h, config/i370/xm-mvs.h, config/i370/xm-oe.h,
2534         config/i386/xm-i386.h, config/i860/xm-i860.h,
2535         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
2536         config/m32r/xm-m32r.h, config/m68k/xm-m68k.h,
2537         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
2538         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
2539         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
2540         config/pa/xm-linux.h, config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
2541         config/pa/xm-pahpux.h, config/pa/xm-papro.h, config/pj/xm-pj.h,
2542         config/romp/xm-romp.h, config/rs6000/xm-beos.h,
2543         config/rs6000/xm-lynx.h, config/rs6000/xm-rs6000.h,
2544         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
2545         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
2546         config/v850/xm-v850.h, config/vax/xm-vax.h, config/vax/xm-vms.h,
2547         config/we32k/xm-we32k.h: Delete HOST_BITS_PER_* definitions which
2548         match the defaults provided in hwint.h.
2549
2550         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
2551         config/sparc/xm-lynx.h, config/xm-std32.h: Delete files.
2552
2553         * config.gcc (xm_file): Don't set to files which are deleted.
2554
2555         * hwint.h: Provide default values for HOST_BITS_PER_*.  No longer
2556         guard this file against these macros being undefined.
2557
2558 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
2559
2560         * objc/objc-act.c (objc_add_static_instance): Set DECL_INITIAL
2561         and DECL_DEFER_OUTPUT on the decl we create, before calling
2562         rest_of_decl_compilation.
2563
2564 2001-03-06  Zack Weinberg  <zackw@stanford.edu>
2565
2566         * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE
2567         AC_FUNC_ALLOCA.
2568         * configure, config.in: Regenerate.
2569         * config.gcc: Remove references to deleted files.
2570
2571         * genattr.c, genattrtab.c, genextract.c, genoutput.c,
2572         genrecog.c, rtl.c: Do not use alloca anywhere.
2573
2574         * Makefile.in, build-make, system.h, config/x-interix,
2575         config/x-svr4, config/xm-interix.h, config/xm-openbsd.h,
2576         config/alpha/xm-alpha.h, config/alpha/xm-vms.h,
2577         config/arc/xm-arc.h, config/arm/xm-arm.h,
2578         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
2579         config/h8300/xm-h8300.h, config/i370/x-oe,
2580         config/i370/xm-linux.h, config/i386/x-aix, config/i386/x-beos,
2581         config/i386/x-ncr3000, config/i386/x-sco5,
2582         config/i386/xm-dgux.h, config/i860/x-sysv4,
2583         config/i960/xm-i960.h, config/m32r/xm-m32r.h,
2584         config/m68k/x-crds, config/m68k/x-dpx2, config/m68k/x-hp320,
2585         config/m68k/x-hp320g, config/m69k/x-mot3300,
2586         config/m68k/x-mot3300-gas, config/m68k/xm-amix.h,
2587         config/m68k/xm-hp320.h, config/m68k/xm-m68kv.h,
2588         config/m68k/xm-mot3300.h, config/m88k/x-dolph,
2589         config/m88k/x-sysv4, config/m88k/x-tekXD88,
2590         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
2591         config/mips/x-iris, config/mips/x-iris3,
2592         config/mips/x-sni-svr4, config/mips/x-sysv,
2593         config/mips/xm-iris6.h, config/mips/xm-mips.h,
2594         config/mips/xm-nws3250v4.h, config/pa/x-hpux,
2595         config/pa/x-pa-mpeix, config/pa/xm-pa.h,
2596         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
2597         config/pa/xm-papro.h, config/romp/xm-romp.h,
2598         config/rs6000/x-aix31, config/rs6000/x-aix41,
2599         config/rs6000/x-beos, config/rs6000/x-lynx,
2600         config/rs6000/x-mach, config/rs6000/x-rs6000,
2601         config/rs6000/x-sysv4, config/rs6000/xm-rs6000.h,
2602         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
2603         config/sparc/x-sysv4, config/sparc/xm-linux.h,
2604         config/sparc/xm-pbd.h, config/sparc/xm-sparc.h,
2605         config/vax/xm-vms.h: Eradicate all references to alloca and
2606         related stuff.
2607
2608         * config/xm-alloca.h, config/clipper/x-clix,
2609         config/i386/xm-sysv4.h, config/i860/x-fx2800,
2610         config/i860/x-sysv3, config/m88k/x-sysv3,
2611         config/sparc/xm-sol2.h, config/we32k/x-we32k: Delete
2612         (contained only alloca related hacks).
2613
2614         * config/i386/xm-beos.h, config/rs6000/xm-beos.h: Just define
2615         USE_C_ALLOCA.
2616
2617 2001-03-05  Brad Lucier  <lucier@math.purdue.edu>
2618
2619         * invoke.texi: Document __FAST_MATH__.
2620
2621 2001-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2622
2623         * crtstuff.c: Restore include of auto-host.h.
2624
2625 2001-03-05  Fergus Henderson  <fjh@cs.mu.oz.au>
2626
2627         Put main() in a separate file, so that the language
2628         front-end can use a different main().
2629
2630         * main.c: New.
2631         * toplev.c: (main): Rename as toplev_main.
2632         * toplev.h: Declare toplev_main.
2633         * Makefile.in (OBJS): add toplev.o.
2634           (BACKEND): remove toplev.o, add main.o.
2635
2636 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2637
2638         * cppfiles.c (search_from): Special case the empty string.
2639
2640 2001-03-04  Neil Booth  <neil@daikokuya.demon.co.uk>
2641
2642         * cppfiles.c (_cpp_execute_include): Don't make a null-terminated
2643         copy of the filename.  Don't use CPP_PREV_BUFFER.  Don't call
2644         strlen or strcpy; we already know the length.
2645         (_cpp_compare_file_date): Similarly.
2646         * cpphash.h (struct cpp_reader): Delete done_initialising.
2647         (CPP_PREV_BUFFER): Delete.
2648         * cppinit.c (cpp_start_read): Don't set done_initialising.
2649         * cpplex.c (parse_string): Guarantee null-termination.
2650         (_cpp_equiv_toklists): Remove.
2651         * cpplib.c (glue_header_name): Null-terminate.
2652         (do_line): Don't leak memory.
2653         * cpplib.h (BT_WEAK): Delete.
2654         * cppmain.c (cb_ident): Strings are now null-terminated.
2655
2656 2001-03-04  Laurynas Biveinis  <lauras@softhome.net>
2657
2658         * gcc.c (convert_filename): Append executable suffix
2659         if NO_AUTO_EXE_SUFFIX is not defined.
2660         * gcc.texi: Document NO_AUTO_EXE_SUFFIX.
2661         * config/i386/djgpp.h: Define NO_AUTO_EXE_SUFFIX.
2662
2663 2001-03-03  David O'Brien  <obrien@FreeBSD.org>
2664
2665         from 2000-09-06  Zack Weinberg  <zack@wolery.cumb.org>
2666         * c-parse.gperf, c-gperf.h: Delete.
2667         (c-gperf.h was accidently re-added to the CVS repo in the rev
2668         1.16 commit by tromey)
2669
2670 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2671
2672         * cpplex.c (_cpp_lex_token): Don't warn about directives in
2673         macro arguments when looking for the '('.
2674         * cppmacro.c (funlike_invocation_p): Set parsing_args to
2675         2 when really parsing arguments; 1 when looking for '('.
2676         Always restore the lexer position.
2677
2678 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2679
2680         * longlong.h (umul_ppmm): Don't use a multiline string.
2681
2682 2001-03-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2683
2684         * fixinc/fixlib.h (t_bool): Add identifier `t_bool' in typedef.
2685         * fixinc/server.c (read_pipe_timeout): Use enum t_bool instead of
2686         t_bool in declaration because pcc can't combine volatile with typedef
2687         types.
2688
2689 Sat Mar  3 19:47:13 CET 2001  Jan Hubicka  <jh@suse.cz>
2690
2691         * i386.c (ix86_expand_fp_compare): Delay creating of scratch register
2692         until when it is really needed.
2693         (ix86_expand_compare): Update call of ix86_expand_fp_compare.
2694         * i386.h (PREDICATE_CODES): Add all codes for sse_comparison_operator
2695         * i386.md (float?i?f splitter): Don't force source operand to memory
2696         for SSE.
2697         (sse_movdfcc): Fix constraint.
2698         (sse_movdfcc splitter): Handle properly the second alternative.
2699
2700 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2701
2702         * cpplex.c (parse_string): Unconditionally pedwarn.
2703
2704 2001-03-03  Neil Booth  <neil@daikokuya.demon.co.uk>
2705
2706         * cpp.texi: Update.
2707         * cppexp.c (parse_number): Update.
2708         * cpplex.c (parse_string): Pedwarn if multiline string does not
2709         result from a system header's macro.
2710         * cpplib.h (sys_objmacro_p): Rename sys_macro_p.
2711         * cppmacro.c (sys_objmacro_p): Rename sys_macro_p.  Return true
2712         for function-like macros too.
2713         * c-lex.c (lex_number): Update.
2714
2715 2001-03-03  Richard Henderson  <rth@redhat.com>
2716
2717         * dwarf2out.c (output_call_frame_info): Fix augmentation length.
2718
2719 Sat Mar  3 04:17:17 2001  J"orn Rennecke <amylaar@redhat.com>
2720
2721         * combine.c (try_combine): If split with mode-changed scratch
2722         register didn't work, try the original mode.
2723
2724 Sat Mar  3 03:46:47 2001  J"orn Rennecke <amylaar@redhat.com>
2725
2726         * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
2727         * config/c4x/c4x.h: Likewise.
2728         * stor-layout.c (compute_record_mode): Likewise.
2729         (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK.
2730
2731 2001-03-02  Zack Weinberg  <zackw@stanford.edu>
2732
2733         * configure.in: Kill tm.h.  Include the files in the $tm_file
2734         list in all three of config.h, hconfig.h, tconfig.h, after the
2735         relevant set of xm_files.  Put TARGET_CPU_DEFAULT in all
2736         three, include insn-codes.h in all three (#ifndef GENERATOR_FILE).
2737         * configure: Regenerate.
2738         * Makefile.in (clean): Don't delete tm.h.
2739
2740         * system.h: If SUCCESS_EXIT_CODE and FATAL_EXIT_CODE are not
2741         defined, set them from EXIT_SUCCESS and EXIT_FAILURE.  If
2742         those are not defined, set SEC and FEC to 0 and 1.
2743         * gcc.texi: Update to match.
2744
2745         * crtstuff.c: Include tconfig.h, not auto-host.h and tm.h.
2746         * config/fp-bit.c, config/m68k/aux-crt2.asm,
2747         config/m68k/aux-crtn.asm, config/m68k/aux-mcount.c:
2748         Include tconfig.h, not tm.h.
2749
2750         * config/xm-lynx.h, config/xm-std32.h,
2751         config/a29k/xm-a29k.h, config/a29k/xm-unix.h,
2752         config/alpha/xm-alpha.h, config/arc/xm-arc.h,
2753         config/avr/xm-avr.h, config/c4x/xm-c4x.h,
2754         config/clipper/xm-clix.h, config/convex/xm-convex.h,
2755         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
2756         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
2757         config/h8300/xm-h8300.h, config/i370/xm-linux.h,
2758         config/i386/xm-i386.h, config/i860/xm-i860.h,
2759         config/i960/xm-i960.h, config/ia64/xm-ia64.h,
2760         config/m32r/xm-m32r.h, config/m68hc11/xm-m68hc11.h,
2761         config/m88k/xm-m88k.h, config/mcore/xm-mcore.h,
2762         config/mips/xm-mips.h, config/mn10200/xm-mn10200.h,
2763         config/mn10300/xm-mn10300.h, config/ns32k/xm-ns32k.h,
2764         config/pa/xm-linux.h, config/pa/xm-pa.h,
2765         config/pa/xm-pa64hpux.h, config/pa/xm-pahpux.h,
2766         config/pa/xm-papro.h, config/pdp11/xm-pdp11.h,
2767         config/pj/xm-pj.h, config/romp/xm-romp.h,
2768         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
2769         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
2770         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
2771         config/v850/xm-v850.h, config/vax/xm-vax.h,
2772         config/we32k/xm-we32k.h:
2773         Don't include tm.h.
2774         Don't define SUCCESS_EXIT_CODE or FATAL_EXIT_CODE.
2775
2776         * config/i370/xm-i370.h, config/i370/xm-mvs.h,
2777         config/i370/xm-oe.h: Don't include tm.h.  Don't define
2778         SUCCESS_EXIT_CODE.
2779         * config/vax/xm-vms.h: Don't include tm.h.
2780
2781         * config/xm-lynx.h, config/avr/xm-avr.h,
2782         config/fr30/xm-fr30.h, config/pdp11/xm-pdp11.h,
2783         Delete; made empty by above changes.
2784         * config/i386/xm-lynx.h, config/m68k/xm-lynx.h,
2785         config/rs6000/xm-lynx.h, config/sparc/xm-lynx.h:
2786         Don't include config/xm-lynx.h or tm.h.
2787
2788         * config/xm-gnu.h: Don't include fcntl.h.
2789         * config/sparc/xm-lynx.h: Don't include sys/types.h and
2790         sys/wait.h.
2791         * config/clipper/xm-clix.h, config/vax/xm-vax.h: Don't define isinf.
2792
2793 2001-03-02  Richard Henderson  <rth@redhat.com>
2794
2795         * tm.texi (File Framework): Document UNALIGNED_SHORT_ASM_OP,
2796         UNALIGNED_INT_ASM_OP, and UNALIGNED_DOUBLE_INT_ASM_OP.
2797
2798 2001-03-02  Richard Henderson  <rth@redhat.com>
2799
2800         * Makefile.in (OBJS): Add dwarf2asm.o.
2801         * dwarf2asm.c, dwarf2asm.h: New files.
2802         * dwarf2out.c (*): Use them.
2803         (size_of_uleb128, size_of_sleb128): Remove.
2804         (output_uleb128, output_sleb128): Remove.
2805         (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP): Remove.
2806         (UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Remove.
2807         (UNALIGNED_OFFSET_ASM_OP, UNALIGNED_WORD_ASM_OP): Remove.
2808         (FDE_LABEL, LINE_NUMBER_BEGIN_LABEL, LINE_NUMBER_END_LABEL): New.
2809         (ASM_OUTPUT_DWARF_DATA1, ASM_OUTPUT_DWARF_DELTA1): Remove.
2810         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_DELTA2): Remove.
2811         (ASM_OUTPUT_DWARF_DATA4, ASM_OUTPUT_DWARF_DELTA4): Remove.
2812         (ASM_OUTPUT_DWARF_DATA, ASM_OUTPUT_DWARF_DELTA): Remove.
2813         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_ADDR_DATA): Remove.
2814         (ASM_OUTPUT_DWARF_ADDR_DELTA, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
2815         (ASM_OUTPUT_DWARF_OFFSET4, ASM_OUTPUT_DWARF_OFFSET): Remove.
2816         (ASM_OUTPUT_DWARF_CONST_DOUBLE): Remove.
2817         (ASM_OUTPUT_DWARF_NSTRING, ASM_OUTPUT_DWARF_STRING): Remove.
2818         (dwarf2out_frame_debug): Remove unused variables.
2819         (output_loc_operands): Don't abort on 8 byte constants if
2820         host integers are wide enough.
2821         (output_symbolic_ref): Remove.
2822         (size_of_die): Don't assume 4 byte host integers.
2823         (output_line_info): Use ASM_GENERATE_INTERNAL_LABEL for begin
2824         and end labels.
2825         (add_const_value_attribute) [CONST_INT]: Verify we're not doing
2826         something stupid with HOST_WIDE_INT to long truncation.
2827         [CONST_DOUBLE]: Likewise.
2828
2829         * config/arm/conix-elf.h (UNALIGNED_WORD_ASM_OP): Remove.
2830         (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
2831         * config/arm/unknown-elf.h: Likewise.
2832         * config/rs6000/aix.h (UNALIGNED_SHORT_ASM_OP): New.
2833         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): New.
2834         (ASM_OUTPUT_DWARF_ADDR_VAR, ASM_OUTPUT_DWARF_DELTA_VAR): Remove.
2835         (ASM_OUTPUT_DWARF_DELTA2, ASM_OUTPUT_DWARF_DELTA4): Remove.
2836         (ASM_OUTPUT_DWARF_DELTA, ASM_OUTPUT_DWARF_ADDR_DELTA): Remove.
2837         (ASM_OUTPUT_DWARF_ADDR, ASM_OUTPUT_DWARF_DATA4): Remove.
2838         (ASM_OUTPUT_DWARF_DATA2, ASM_OUTPUT_DWARF_OFFSET4): Remove.
2839         (ASM_OUTPUT_DWARF_OFFSET): Remove.
2840         * config/rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Remove.
2841         * config/sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): New.
2842         (UNALIGNED_LONGLONG_ASM_OP, ASM_OUTPUT_DWARF_ADDR): Remove.
2843         (ASM_OUTPUT_DWARF_ADDR_CONST, ASM_OUTPUT_DWARF_REF): Remove.
2844
2845 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2846
2847         * cselib.c (hash_rtx): Cast enums to unsigned int.
2848
2849 2001-03-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2850
2851         * print-rtl.c (print_rtx): Cast enums to int for comparison.
2852         * c-decl.c (grokdeclarator): Cast enums to int for comparison and
2853         shifts.
2854         * c-format.c (C_STD_VER): Cast to int for comparisons.
2855         (check_function_format): Cast various enums to int for &.
2856         (maybe_read_dollar_number): Likewise.
2857         (check_format_info): Likewise.
2858         (check_format_info_main): Likewise.
2859         * expr.c (emit_move_insn_1): Cast enums to unsigned int for comparison.
2860         (safe_from_p): Likewise.
2861         * varasm.c (const_hash): Cast enum to int for %.
2862         * emit-rtl.c (init_emit_once): Use int loop variable to work around
2863         pcc enum problems with < and ++ operators.
2864         * regclass.c (init_reg_sets_1): Cast enums for comparison.
2865         (choose_hard_reg_mode): Use unsigned int to iterate over CCmodes.
2866         (regclass_init): Change enum class to int to iterate over reg_classes.
2867         * genrecog.c (merge_trees): Cast enums for comparison.
2868         * rtl.h (GET_CODE): Cast to enum rtx_code.
2869         (PUT_CODE): Cast to ENUM_BITFIELD(rtx_code).
2870         (GET_MODE): Cast to enum machine_mode.
2871         (PUT_MODE): Cast to ENUM_BITFIELD(machine_mode).
2872         (GET_NOTE_INSN_NAME): Cast enum to int.
2873         * tree.h (TREE_CODE): Cast to enum tree_code.
2874         (TREE_SET_CODE): Cast VALUE to ENUM_BITFIELD(tree_code).
2875         * timevar.c (timevar_print): Change loop variable id from enum to
2876         unsigned int.
2877         * fixinc/fixincl.c (VLEVEL): Cast enums in comparison to unsigned int.
2878         * config/i386/i386.md: Use PUT_MODE for mode assignment.
2879         * toplev.c (compile_file): Cast enum DFI to int.
2880         (decode_d_option): Likewise.
2881
2882 Fri Mar  2 12:18:13 2001  Christopher Faylor <cgf@cygnus.com>
2883
2884         * cppinit.c (append_include_chain): Mark "after" include file name list
2885         as a system directory.
2886         * cpp.texi: Document new behavior.
2887
2888 Fri Mar  2 11:59:43 CET 2001  Jan Hubicka  <jh@suse.cz>
2889
2890         * ifcvt.c (noce_operand_ok): Handle properly unarry operations.
2891
2892 2001-03-02  Neil Booth  <neil@daikokuya.demon.co.uk>
2893
2894         * cppfiles.c (struct include_file): Update.
2895         (stack_include_file): Use search_from.
2896         (cpp_included, find_include_file): Update.
2897         (cpp_execute_include): Update.  ptr->name may not be
2898         null terminated.  Use the new search_from member variable
2899         of cpp_buffer.
2900         (_cpp_compare_file_date): Similarly.
2901         (search_from): New function, similiar to actual_directory.
2902         (actual_directory): Delete.
2903         (remap_filename): Update.  loc->name may not be null terminated.
2904         (struct file_name_list): Rename search_path.  Update.
2905         * cpphash.h (struct cpp_buffer): Delete actual_dir.  New members
2906         search_from and dir.
2907         (struct cpp_reader): Remove actual_dirs.
2908         * cppinit.c (struct cpp_pending): Update for renamed objects.
2909         (append_include_chain, remove_dup_dir, remove_dup_dirs,
2910         merge_include_chains, cpp_destroy, cpp_start_read): Similarly.
2911         * cpplib.h (struct cpp_options): Similarly.
2912
2913 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2914
2915         * config/xm-lynx.h, config/xm-std32.h, config/a29k/xm-a29k.h,
2916         config/a29k/xm-unix.h, config/alpha/xm-alpha.h,
2917         config/arc/xm-arc.h, config/arm/xm-arm.h, config/c4x/xm-c4x.h,
2918         config/clipper/xm-clix.h, config/convex/xm-convex.h,
2919         config/d30v/xm-d30v.h, config/dsp16xx/xm-dsp16xx.h,
2920         config/elxsi/xm-elxsi.h, config/fr30/xm-fr30.h,
2921         config/h8300/xm-h8300.h, config/i370/xm-i370.h,
2922         config/i370/xm-linux.h, config/i370/xm-mvs.h,
2923         config/i370/xm-oe.h, config/i386/xm-aix.h,
2924         config/i386/xm-i386.h, config/i386/xm-osf.h,
2925         config/i860/xm-i860.h, config/i960/xm-i960.h,
2926         config/ia64/xm-ia64.h, config/m32r/xm-m32r.h,
2927         config/m68k/xm-m68k.h, config/m88k/xm-m88k.h,
2928         config/mcore/xm-mcore.h, config/mips/xm-mips.h,
2929         config/mn10200/xm-mn10200.h, config/mn10300/xm-mn10300.h,
2930         config/ns32k/xm-ns32k.h, config/pa/xm-linux.h,
2931         config/pa/xm-pa.h, config/pa/xm-pa64hpux.h,
2932         config/pa/xm-pahpux.h, config/pa/xm-papro.h,
2933         config/pj/xm-pj.h, config/romp/xm-romp.h,
2934         config/rs6000/xm-beos.h, config/rs6000/xm-rs6000.h,
2935         config/rs6000/xm-sysv4.h, config/sh/xm-sh.h,
2936         config/sparc/xm-sparc.h, config/sparc/xm-sysv4.h,
2937         config/v850/xm-v850.h, config/vax/xm-vax.h,
2938         config/vax/xm-vms.h, config/we32k/xm-we32k.h:
2939         Do not define TRUE or FALSE.
2940
2941         * config/i386/xm-aix.h, config/i386/xm-osf.h: Delete; made
2942         empty by above change.
2943         * config.gcc: Remove references to these files.
2944
2945         * configure.in: Detect stdbool.h.
2946         * configure, config.in: Regenerate.
2947         * system.h: Include stddef.h here if available.
2948         Set HAVE__BOOL based on GCC_VERSION and __STDC_VERSION__.
2949         Then set up a sensible boolean type at the very end.
2950
2951         * combine.c, cse.c, expr.c, fold-const.c, gensupport.c,
2952         config/mcore/mcore.c: Rename variables named 'true' and/or 'false'.
2953
2954         * hash.h: Delete 'boolean' typedef and related #undefs.
2955
2956         * function.c, ggc-common.c, hash.h, hash.c, tlink.c: Replace
2957         all uses of 'boolean' with 'bool'.
2958
2959 2001-03-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2960
2961         * cpplib.c (_cpp_init_stacks): Cast enum for comparison.
2962         * cppexp.c (lex): Cast enums for comparison.
2963         * cppinit.c (parse_option): Cast enum for comparison.
2964         * cpplex.c (cpp_spell_token): Cast enums to int for minus.
2965         (cpp_output_token): Likewise.
2966         (cpp_can_paste): Cast enums for comparsion and plus/minus.
2967         (cpp_avoid_paste): Cast enums for minus and comparison.
2968
2969 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2970
2971         * gcc.c, objc/lang-specs.h: Add zero initializer for cpp_spec
2972         field to all array elements.
2973
2974 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2975
2976         * cpphash.h (struct cpp_reader): Add print_version field.
2977         * cppinit.c (cpp_handle_option): For -v, -version, and --version,
2978         just set print_version and other flags as appropriate.
2979         (cpp_post_options): Print version here if print_version is set.
2980
2981         * toplev.c (exit_after_options): New flag.
2982         (independent_decode_option): Don't exit here; just set
2983         exit_after_options.
2984         (main): Exit after calling lang_hooks.post_options if
2985         exit_after_options is true.
2986
2987         * cppinit.c (append_include_chain): Drop never-used case QUOTE.
2988         (merge_include_chains): Adjust comment to match code.
2989
2990 2001-03-01  Zack Weinberg  <zackw@stanford.edu>
2991
2992         * stringpool.c (set_identifier): New function.
2993         * tree.h: Prototype it.
2994
2995         * c-parse.in: Kill D_YES. If compiled for objc, call
2996         save_and_forget_protocol_qualifiers from init_reswords.
2997         * objc/objc-act.c (remember_protocol_qualifiers,
2998         forget_protocol_qualifiers): Don't diddle C_IS_RESERVED_WORD.
2999         Swap out the non-keyword IDENTIFIER_NODEs for keyword ones, or
3000         vice versa.
3001         (save_and_forget_protocol_qualifiers): New function.
3002         * c-lex.h: Prototype save_and_forget_protocol_qualifiers.
3003
3004 2001-03-01  Diego Novillo  <dnovillo@redhat.com>
3005
3006         * c-semantics.c (prune_unused_decls): Return error_mark_node
3007         instead of (tree) 1 to stop traversing the tree chain.
3008
3009 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
3010
3011         Fix a problem introduced by Kenner's Feb 18 change.
3012         * toplev.c (rest_of_compilation): Disable flag_cse_follow_jumps and
3013         flag_cse_skip_blocks only temporarily, not for ever.
3014
3015 Thu Mar  1 09:49:58 2001  Jeffrey A Law  (law@cygnus.com)
3016
3017         * config/pa/som.h  (ASM_IDENTIFY_GCC): Define.
3018         (ASM_IDENTIFY_GCC_AFTER_SOURCE): Likewise.
3019
3020         * pa.c (emit_move_sequence): Verify operand0 is a hard register
3021         before determining its register class.
3022
3023 2001-03-01  Bernd Schmidt  <bernds@redhat.com>
3024
3025         * config/ia64/ia64.c (ia64_hard_regno_rename_ok): Disallow renaming
3026         from reg 4 if current_function_calls_setjmp.
3027         (gen_nop_type): New function.
3028         (ia64_emit_nops): New function.
3029         (ia64_reorg): Call it.
3030         (ia64_sched_reorder): Move code that rotates bundles up a bit.
3031
3032         * reload1.c (eliminate_regs_in_insn): Restrict the special case
3033         code not to try to optimize adds with anything but a REG destination.
3034
3035         * sched-int.h (struct haifa_insn_data): Add new member priority_known.
3036         (INSN_PRIORITY_KNOWN): New accessor macro.
3037         * haifa-sched.c (priority): Use it instead of testing priority against
3038         zero.
3039
3040 2001-02-28  DJ Delorie  <dj@redhat.com>
3041
3042         * config/m68k/m68k.h (MOVE_BY_PIECES_P): Avoid pushing bytes,
3043         since that doesn't work the way gcc wants on a generic m68k.
3044
3045 2001-02-28  Richard Henderson  <rth@redhat.com>
3046
3047         * caller-save.c (save_call_clobbered_regs): Fix typo in
3048         comparison last change.
3049
3050 Wed Feb 28 19:31:42 CET 2001  Jan Hubicka  <jh@suse.cz>
3051
3052         * i386.c (pentium4_cost): New.
3053         (m_PENT4): New macro.
3054         (x86_push_memory, x86_movx,x86_cmove, x86_deep_branch, x86_use_sahf
3055         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8
3056         x86_integer_DFmode_moves, x86_partial_reg_dependency,
3057         x86_memory_mismatch_stall): Add Pentium4
3058         (x86_use_q_reg, x86_use_any_reg): Kill.
3059         (override_options): Add pentium4.
3060         (incdec_operand): Return 0 for pentium4.
3061         (ix86_issue_rate): Add PROCESSOR_PENTIUM4 and PROCESSOR_ATHLON.
3062         * i386.h (x86_use_q_reg, x86_use_any_reg): Kill.
3063         (TARGET_PENTIUM4): Define.
3064         (enum processor_type): Add PROCESSOR_PENTIUM4.
3065         (CPP_CPU_DEFAULT_SPEC): Add pentium4 support.
3066         * i386.md (attribute "cpu"): Add pentium4.
3067         * invoke.texi (march): Add pentium4.
3068
3069 Wed Feb 28 19:28:06 CET 2001  Jan Hubicka  <jh@suse.cz>
3070
3071         * i386.md (sse_mov?fcc*): New patterns and splitters.
3072         * i386.c (ix86_expand_movcc): Work post-reload; recognize
3073         the SSE based conditional moves.
3074
3075 Wed Feb 28 19:18:23 CET 2001  Jan Hubicka  <jh@suse.cz>
3076
3077         * i386.md (attribute mode): Add "TI".
3078         (movsf_1): Add pxor support; remove constant propagation splitter.
3079         (movdf_integer): Likewise.
3080         (movdf_nointeger): Likewise.
3081         (movxf constant prop splitter): Handle all modes; update for SSE.
3082         * i386.h (CONST_DOUBLE_OK_FOR_LETTER): Add 'H' for SSE constants.
3083         * i386.c (standard_80387_constant_p): Rewrite.
3084         (standard_sse_constant_p): New.
3085         * i386-protos.h (standard_sse_constant_p): New.
3086
3087 Wed Feb 28 19:05:37 CET 2001  Jan Hubicka  <jh@suse.cz>
3088
3089         * i386.md (sse_setccsf, sse_setccdf): New.
3090         (sse_cmp* patterns): Use '%D' instead of outputtting condition
3091         flag directly.
3092         * i386.c (sse_comparison_operator): Accept the supported unordered
3093         comparses; be ready for fast_math.
3094         (print_operand): Support 'D'.
3095
3096 Wed Feb 28 18:54:51 CET 2001  Jan Hubicka  <jh@suse.cz>
3097
3098         * jump.c (reversed_comparison_code): Kill.
3099
3100 Wed Feb 28 18:50:15 CET 2001  Jan Hubicka  <jh@suse.cz>
3101
3102         * toplev.c (rest_of_compilation): Do post-reload splitting unconditionally
3103         for STACK_REGS
3104
3105 Wed Feb 28 18:47:37 CET 2001  Jan Hubicka  <jh@suse.cz>
3106
3107         * i386.md (sse_andti3, sse_nandti_3, sse_xorti3): Add SSE2 versions;
3108         add missing '%' in constraints.
3109
3110 Wed Feb 28 17:24:24 CET 2001  Jan Hubicka  <jh@suse.cz>
3111
3112         * c-common.c (build_common_tree_nodes): Build intTI_type_nodes
3113         for HOST_BITS_PER_WIDE_INT == 32 too.
3114
3115 Wed Feb 28 17:22:35 CET 2001  Jan Hubicka  <jh@suse.cz>
3116
3117         * caller-save.c (reg_save_code, reg_restore_code):  Index by mode, not
3118         NREGS.
3119         (insert_save, insert_restore): New parameter save_mode.
3120         (init_caller_save): Update initialization of reg_save_code
3121         and reg_restore_code.
3122         (save_call_clobbered_regs):  Compute save_modes and update calls to
3123         reg_save_code and reg_restore_code.
3124         (insert_restore):  Unsignetize numbers; use save_modes to choose mode
3125         of spill; update use of reg_restore_code.
3126         (insert_save):  Likewise.
3127         * i386.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
3128         * c4x.h (HARD_REGNO_CALLER_SAVE_MODE): Update.
3129         * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
3130
3131 Wed Feb 28 17:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
3132
3133         * ifcvt.c (noce_emit_store_flag, noce_try_store_flag_constants,
3134         noce_try_store_flag_inc, noce_try_store_flag_mask,
3135         noce_try_cmove_arith):
3136         Use reversed_comparison_code instead of reverse_comparison and
3137         can_reverse_comparison_p.
3138
3139 Wed Feb 28 17:17:29 CET 2001  Jan Hubicka  <jh@suse.cz>
3140
3141         * jump.c (reversed_comparison_code_parts): Allow reversal of
3142         unordered compares in -ffast-math mode; reverse ordered compares
3143         for FP even w/o -ffast-math.
3144
3145 2001-02-27  Richard Henderson  <rth@redhat.com>
3146
3147         * print-rtl.c (print_rtx) [i]: Don't print field five on
3148         NOTEs other than NOTE_INSN_DELETED_LABEL.
3149
3150 2001-02-27  Zack Weinberg  <zackw@stanford.edu>
3151
3152         * mips/xm-iris4.h: Delete #if 0 block (there since before 1997).
3153         * pa/xm-linux.h, pa/xm-pa.h, pa/xm-papro.h: Don't declare errno.
3154
3155 2001-02-27  Diego Novillo  <dnovillo@redhat.com>
3156
3157         * c-common.c (walk_stmt_tree): Visit the chain of the current tree
3158         even if walk_subtrees is 0.
3159         * c-semantics.c (prune_unused_decls): Return a non-null value to
3160         stop traversing the tree chain.
3161
3162 2001-02-27  DJ Delorie  <dj@redhat.com>
3163
3164         * config/m68k/m68k.c (output_function_prologue): Save the new CFA
3165         register, *then* define it as the new CFA.
3166
3167 Tue Feb 27 16:49:13 2001  Jeffrey A Law  (law@cygnus.com)
3168
3169         * pa.c (override_options): Promote -fpic to -fPIC.
3170         (legitimize_pic_address): Simplify due to removal of
3171         small PIC as a code generation option.
3172         (secondary_reload_class): Similarly.
3173         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Similarly.
3174         (PRINT_OPERAND_ADDRESS): Similarly.
3175         * pa.md (various patterns): Similarly.
3176         (small pic lo_sum pattern): Remove.
3177
3178 Tue Feb 27 16:01:13 CET 2001  Jan Hubicka  <jh@suse.cz>
3179                               Fergus Henderson
3180
3181         * md.texi (min, max): Document
3182
3183 Tue Feb 27 15:51:35 CET 2001  Jan Hubicka  <jh@suse.cz>
3184
3185         * i386.md (movsf, movdf): Use movaps for reg-reg moves if
3186         TARGET_PARTIAL_REG_DEPENDENCY.
3187         (truncdfsf2_1_sse, truncdfsf2_2): Penalize the fpreg->mem case.
3188
3189 Tue Feb 27 15:36:48 CET 2001  Jan Hubicka  <jh@suse.cz>
3190
3191         * i386.md (mins*, maxs*): New patterns, expanders and splitters.
3192
3193 2001-02-26  Jeffrey Oldham  <oldham@codesourcery.com>
3194
3195         * mips.c (mips_make_temp_file): Fix thinko in last change.
3196
3197 2001-02-26  Jason Eckhardt  <jle@redhat.com>
3198
3199         * combine.c (known_cond): Do not reverse the condition when
3200         SMAX/UMAX is being considered and the condition is for equality
3201         or inequality.
3202
3203         * testsuite/gcc.c-torture/execute/20010221-1.c: New test.
3204
3205 2001-02-26  Philip Blundell  <philb@gnu.org>
3206
3207         * config.gcc: Remove obsolete targets "arm*-*-linuxoldld" and
3208         "armv2-*-linux".
3209         * config/arm/linux-elf.h: Remove historical relics related to
3210         above configurations.
3211         * config/arm/linux-oldld.h: Delete.
3212         * config/arm/linux-elf26.h: Delete.
3213
3214 2001-02-26  Jason Merrill  <jason@redhat.com>
3215
3216         * c-decl.c (finish_decl): Set DECL_DEFER_OUTPUT on tentative file-scope
3217         definitions.
3218         * toplev.c (rest_of_decl_compilation): Check DECL_DEFER_OUTPUT to
3219         recognize a tentative definition.  Lose obsolete code.
3220
3221         * toplev.c (wrapup_global_declarations): Don't emit DECL_COMDAT
3222         variables unless necessary, either.
3223
3224 2001-02-25  Richard Henderson  <rth@redhat.com>
3225
3226         * ifcvt.c (struct noce_if_info): Add test_bb.
3227         (noce_get_alt_condition): New.
3228         (noce_try_minmax, noce_try_abs): New.
3229         (noce_operand_ok): New.
3230         (noce_process_if_block): Use them.
3231         * rtlanal.c (may_trap_p): NEG and ABS can never trap.
3232
3233 Sun Feb 25 14:26:17 2001  Christopher Faylor <cgf@cygnus.com>
3234
3235         * config/i386/cygwin.h (CPP_SPEC): Add missing space before w32api
3236         include.
3237
3238 2001-02-25  Zack Weinberg  <zackw@stanford.edu>
3239
3240         * config.gcc: Put back pa/t-openbsd and rs6000/t-openbsd.
3241         * config/mips/mips.c (mips_make_temp_file): Set temp_filename
3242         properly.
3243         (mips_asm_file_end): Free temp_filename here.
3244
3245 Sun Feb 25 08:34:23 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3246
3247         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): Move decl.
3248         * config/i386/i386.c (ix86_set_move_mem_attrs_1): Fix typo.
3249
3250         * config/i386/i386.md (movstrsi): Handle FAIL case.
3251
3252 2001-02-25  Neil Booth  <neil@daikokuya.demon.co.uk>
3253
3254         * cppinit.c (builtin_array): Update.
3255         (init_builtins): Flag builtins to warn if redefined or
3256         undefined.  Define __GXX_WEAK as a normal macro.
3257         * cpplib.c (do_undef): Warn if flagged NODE_WARN.
3258         * cpplib.h (NODE_WARN): New flag.
3259         * cppmacro.c (builtin_macro): Remove handling of __GXX_WEAK__.
3260         Handle __STDC__ as a builtin only on Solaris.
3261         (warn_of_redefinition): Renamed from check_macro_definition.
3262         Reverse sense of test.  Always warn if NODE_WARN.
3263         (_cpp_create_definition): Use warn_of_redefinition.  Flag
3264         any macro beginning with "__STDC_" to require a mandatory
3265         warning if redefined or undefined.
3266
3267 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
3268
3269         * xm-interix.h, xm-lynx.h, alpha/xm-vms.h, convex/xm-convex.h,
3270         i370/xm-i370.h, i370/xm-linux.h, i370/xm-mvs.h, i370/xm-oe.h,
3271         i386/xm-beos.h, i386/xm-dos.h, i386/xm-mingw32.h,
3272         i860/xm-i860.h, m68k/xm-3b1.h, m68k/xm-amix.h, m68k/xm-aux.h,
3273         m68k/xm-crds.h, m68k/xm-mot3300.h, m88k/xm-sysv3.h,
3274         mips/xm-mips.h, rs6000/xm-beos.h, vax/xm-vms.h:
3275         Don't define any of:
3276         USE_PROTOTYPES, vfork, mktemp, SVR3, NO_SYS_PARAMS_H,
3277         P_tmpdir, MVS, NO_DBX_FORMAT, USE_STDARGS, STDC_HEADERS,
3278         NO_PRECOMPILES, i860, __PTR_TO_INT, __INT_TO_PTR, rindex,
3279         index, FULL_PROTOTYPES, AUX, R_OK, W_OK, X_OK, F_OK,
3280         STACK_DIRECTION, MIPS, MAX_READ_LEN, MAX_WRITE_LEN.
3281
3282         * alpha/xm-alpha.h, clipper/xm-clix.h, d30v/xm-d30v.h,
3283         fr30/xm-fr30.h, i370/xm-linux.h: Remove commented-out macro
3284         definitions.
3285
3286         * m68k/xm-3b1.h, m68k/xm-crds.h, m88k/xm-sysv3.h:
3287         Delete now-empty file.
3288
3289         * alpha/vms.h: Define NEED_ATEXIT here...
3290         * alpha/xm-vms.h: ...not here.
3291
3292         * i386/cygwin.h: Don't define PARAMS.
3293         * mips/mips.c: Don't prototype mktemp.  Don't define
3294         P_tmpdir.  Use make_temp_file to create temporary files.
3295         Don't be clever and delete temporary files early.
3296         * config.gcc: Drop references to deleted files.  Don't define
3297         FULL_PROTOTYPES.
3298         * gcc.texi: Don't mention USE_PROTOTYPES.
3299
3300 Sat Feb 24 20:25:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3301
3302         * config/i386/i386.c (ix86_set_move_mem_attrs): New function.
3303         (ix86_set_move_mem_attrs_1): Likewise.
3304         * config/i386/i386-protos.h (ix86_set_move_mem_attrs): New declaration.
3305         * config/i386/i386.md (movstrsi): Call it.
3306
3307 2001-02-24  Zack Weinberg  <zackw@stanford.edu>
3308
3309         * config.gcc: Expunge references to alpha/t-pe, pa/t-openbsd,
3310         x-linux-aout, i386/t-go32, t-osf, m68k/x-m68kv,
3311         ns32k/xm-netbsd.h, rs6000/t-openbsd, rs6000/t-xnewas,
3312         rs6000/x-aix41-gld.  These are nonexistent, empty, or obsolete.
3313
3314         (i750a-*-*): Error here if hosting on i750a.
3315         (alpha*-*-winnt*, ix86-*-winnt3*): Remove stanzas entirely.
3316
3317         * x-linux-aout, xm-freebsd.h, i386/beos-pe.h, ns32k/xm-netbsd.h:
3318         Remove (empty modulo comments).
3319
3320         * 1750a/xm-1750a.h, alpha/config-nt.sed, alpha/win-nt.h,
3321         alpha/xm-winnt.h, i386/config-nt.sed, i386/os2.h,
3322         i386/t-winnt, i386/win-nt.h, i386/xm-freebsd.h, i386/xm-os2.h,
3323         i386/xm-winnt.h, m68k/x-alloca-c, m88k/x-dguxbcs,
3324         mips/x-netbsd, mips/x-nws3250v4, rs6000/t-xnewas,
3325         rs6000/t-xrs6000, rs6000/xm-cygwin.h: Remove (obsolete)
3326
3327         * i386/crtdll.h, i386/cygwin.h, i386/mingw32.h:
3328         Remove reference to winnt.h in comment.
3329         * rs6000/t-newas, rs6000/t-rs6000: Override LIBGCC1_TEST to null.
3330
3331 2001-02-24  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3332
3333         * loop.c (check_dbra_loop): A biv has uses besides counting if it is
3334         used to set another biv.
3335
3336 Sat Feb 24 06:45:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3337
3338         * tree.h (BLOCK_DEAD): New macro.
3339         (struct tree_block): New flag, dead_flag.
3340         * print-tree.c (print_node, case 'b'): Print missing fields.
3341         * emit-rtl.c (remove_unnecessary_notes): Set BLOCK_DEAD.
3342         * function.c (identify_blocks): Enable test for misplaced notes.
3343         (all_blocks): Skip BLOCK_DEAD blocks.
3344         * integrate.c (integrate_decl_tree): Likewise.
3345
3346         * errors.c (internal_error, trim_filename): New functions.
3347         (fancy_abort): Call internal_error.
3348         * errors.h (internal_error, trim_filename): New declarations.
3349
3350 2001-02-24  Alexandre Oliva  <aoliva@redhat.com>
3351
3352         * config/mn10300/mn10300.h (DBX_REGISTER_NUMBER): Reverted
3353         2000-08-26's patch.
3354         (EXTRA_CONSTRAINT): Formatting changes.
3355
3356 2001-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3357
3358         * rtl.c (rtl_check_failed_code2): Fix typo in last change.
3359
3360 2001-02-23  Per Bothner  <per@bothner.com>
3361
3362         * gcc.c (record_temp_file, pfatal_with_name, error):  Make non-static,
3363         so they can be called from java/jvspec.c.
3364         * gcc.h (record_temp_file, pfatal_with_name, error):  Declare.
3365
3366 Sat Feb 24 03:32:50 CET 2001  Jan Hubicka  <jh@suse.cz>
3367
3368         * i386.c (ix86_frame): New structure.
3369         (ix86_compute_frame_size): Kill.
3370         (ix86_compute_frame_layout): New.
3371         (ix86_save_reg): New.
3372         (ix86_can_use_return_insn_p): Use frame layout stuff.
3373         (ix86_expand_prologue): Likewise.
3374         (ix86_expand_epilogue): Likewise.
3375         (ix86_initial_elimination_offset): Likewise.
3376         (ix86_nsaved_regs): Use ix86_save_reg.
3377         (ix86_emit_save_regs): Likewise.
3378
3379 Sat Feb 24 03:30:38 CET 2001  Jan Hubicka  <jh@suse.cz>
3380
3381         * flow.c (find_sub_basic_blocks): New function.
3382         (split_block): Be ready for basic block introduced by CODE_LABEL.
3383         (commit_one_edge_insertion): Call find_sub_basic_block.
3384
3385         * flow.c (make_edges): Add edge from entry for blocks starting with
3386         label having ALTERNATE_NAME
3387
3388 Sat Feb 24 03:19:42 CET 2001  Jan Hubicka  <jh@suse.cz>
3389
3390         * function.c (epilogue_done): Be ready for first basic block not
3391         containing PROLOGUE_END note.
3392         (reposition_prologue_and_epilogue_notes): Avoid placing
3393         PROLOGUE_END note between BASIC_BLOCK.
3394
3395 Sat Feb 24 03:17:09 CET 2001  Jan Hubicka  <jh@suse.cz>
3396
3397         * loop.c (canonicalize_condition): Move to reversed_comparison_code.
3398
3399 2001-02-21  DJ Delorie  <dj@redhat.com>
3400
3401         * config/i960/i960.h (FRAME_POINTER_REQUIRED): Revert removal of
3402         check for current_function_has_nonlocal_goto from 1999-11-12.
3403
3404 Fri Feb 23 15:28:39 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3405
3406         * diagnostic.c (trim_filename): No longer static.
3407         * toplev.h (trim_filename): Declare.
3408         * rtl.c (rtl_check_failed_bounds): Call internal_error.
3409         (rtl_check_failed_type1, rtl_check_failed_type2): Likewise.
3410         (rtl_check_failed_code1, rtl_check_failed_code2): Likewise.
3411         (rtvec_check_failed_bounds): Likewise.
3412         * tree.c (tree_check_failed, tree_class_check_failed): Likewise.
3413
3414         * convert.c (convert_to_integer): Don't do unsigned unless result or
3415         both inputs are unsigned.
3416
3417         * fold-const.c (fold_convert): Don't call size_int_type_wide if
3418         input overflows.
3419
3420         * c-decl.c (set_block): Set NAMES and BLOCKS from BLOCK.
3421
3422         * varasm.c (output_constant): Recompute CODE after lang-specific fn.
3423
3424 2001-02-23  Jeffrey Oldham  <oldham@codesourcery.com>
3425
3426         * Makefile.in (resource.o): Add params.h dependence.
3427         * params.def (MAX_DELAY_SLOT_LIVE_SEARCH): New parameter.
3428         * params.h (MAX_DELAY_SLOT_LIVE_SEARCH): Likewise.
3429         * resource.c: Add dependence on params.h.
3430         (current_live_regs): Fix explanatory comment.
3431         (find_basic_block): Add new parameter to permit limiting search
3432         for a BARRIER.
3433         (mark_target_live_regs): Add new argument to find_basic_block call.
3434         (incr_ticks_for_insn): Likewise.
3435
3436 2001-02-23  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
3437
3438         * diagnostic.c (output_to_stream): Rename to
3439         output_buffer_to_stream. Loses the stream parameter.
3440         (init_output_buffer): Set diagnosic_buffer's stream.
3441         (flush_diagnostic_buffer): Adjust.
3442         (default_print_error_function): Likewise.
3443         (finish_diagnostic): Likewise.
3444         (verbatim): Likewise.
3445
3446         * diagnostic.h (struct output_buffer): Add `stream' field.
3447         (output_buffer_attached_stream): New macro.
3448
3449 2001-02-23  Jakub Jelinek  <jakub@redhat.com>
3450
3451         * fold-const.c (extract_muldiv) [case PLUS_EXPR]: If not MULT_EXPR,
3452         check if either operand is divisible by C.
3453         (multiple_of_p): Handle LSHIFT_EXPR with small constant shift.
3454         If type is signed, consider negative numbers as well.
3455
3456 2001-02-22  Richard Henderson  <rth@redhat.com>
3457
3458         * config/ia64/crtbegin.asm (.fini): Use pc-relative relocs to
3459         reach .text instead of gp-relative relocs.
3460         * config/ia64/crtend.asm (.init): Likewise.
3461
3462 2001-02-22  Andreas Jaeger  <aj@suse.de>
3463
3464         * extend.texi (C++ Attributes): Fix typo.
3465
3466 2001-02-21  David Mosberger  <davidm@hpl.hp.com>
3467
3468         * config/ia64/ia64.c (ia64_epilogue_uses): For syscall_linkage
3469         functions, drop current_function_args_info.words test.
3470         (ia64_compute_frame_size): Mark syscall_linkage functions as
3471         using eight input registers.
3472
3473 2001-02-21  Loren J. Rittle  <ljrittle@acm.org>
3474         Bruce Korb  <bkorb@gnu.org>
3475
3476         * fixinc/inclhack.def (freebsd_gcc3_breakage): new fix
3477         * fixinc/README: Document how to convert sed substitutions
3478         to format style c_fix-es.
3479         * fixinc/fixincl.x: regen
3480
3481 2001-02-21  Jeffrey D. Oldham  <oldham@codesourcery.com>
3482
3483         * gcc.c: Add comment explaining how to add a command-line option.
3484         Add title to specs language comment.
3485
3486 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
3487
3488         * gcc.c (cc1_options): Add "-param".
3489         (DEFAULT_WORD_SWITCH_TAKES_ARG): Likewise.
3490         (option_map): Likewise.
3491         * toplev.c (display_help): Add entry for "--param".
3492         (independent_decode_option): Fix typographical error.
3493
3494 Wed Feb 21 18:57:28 CET 2001  Catherine Moore  <clm@redhat.com>
3495                               Bernd Schmidt  <bernds@redhat.com>
3496                               Jan Hubicka  <jh@suse.cz>
3497
3498         * i386.c (function_arg_advance):  Pass SSE arguments in registers.
3499         (function_arg): Likewise.
3500
3501 Wed Feb 21 18:12:41 CET 2001  Jan Hubicka  <jh@suse.cz>
3502
3503         * i386.md (mmx_lshrdi3, mmx_ashldi3): Guard by unspec.
3504
3505 2001-02-21  Kazu Hirata  <kazu@hxi.com>
3506
3507         * config/h8300/h8300.md (iorsi3): Do not output an extra newline
3508         character.
3509         (xorsi3): Likewise.
3510
3511 Wed Feb 21 17:35:24 CET 2001  Jan Hubicka  <jh@suse.cz>
3512
3513         * flow.c (init_propagate_block_info): Canon address and use single_set
3514         for killing dead memory stores.
3515
3516 2001-02-21  Jeffrey Oldham  <oldham@codesourcery.com>
3517
3518         * Makefile.in (reorg.o): Add params.h dependence.
3519         * params.def: Fix typographical error in comment.
3520         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
3521         * params.h: Modify introductory comment.
3522         (MAX_DELAY_SLOT_INSN_SEARCH): New parameter.
3523         * reorg.c: Add dependence on params.h.
3524         (redundant_insn): Add parameterized throttle for search.
3525         (fill_simple_delay_slots): Add a comment explaining a variable.
3526         Move conditional out of loop, simplifying code.
3527         (fill_eager_delay_slots): Fix typographical error in comment.
3528
3529 2001-02-20  Aldy Hernandez  <aldyh@redhat.com>
3530
3531         * tm.texi (REVERSE_CONDEXEC_PREDICATES_P): New macro documentation.
3532
3533         * flow.c (ior_reg_cond): Use REVERSE_CONDEXEC_PREDICATES_P macro.
3534         (REVERSE_CONDEXEC_PREDICATES_P): Define macro.
3535
3536 2001-02-21  Jason Merrill  <jason@redhat.com>
3537
3538         * tree.h (DECL_UNINLINABLE): Move from C++ frontend.
3539         (struct tree_decl): Add uninlinable bitfield.
3540         * c-decl.c (duplicate_decls): Set it.
3541         * integrate.c (function_cannot_inline_p): Check it.
3542
3543         * dwarf2out.c (add_name_and_src_coords_attributes): Don't add
3544         DW_AT_MIPS_linkage_name to abstract methods.
3545         (dwarf2out_abstract_function): Emit class context before calling
3546         set_decl_abstract_flags.  Don't clear DECL_ABSTRACT.
3547         (gen_subprogram_die): Remove obsolete code.
3548         (gen_member_die): Don't include clones in the member list.
3549         (gen_decl_die): Emit abstract info for clone origin.
3550         * dwarfout.c (output_type): Don't include clones in the member list.
3551         * dbxout.c (dbxout_type_methods): Ignore abstract methods.
3552         * toplev.c (note_deferral_of_defined_inline_function): Don't clear
3553         DECL_ABSTRACT on a function that already has it set.
3554
3555         * dwarf2out.c (gen_formal_types_die): Also accept a FUNCTION_DECL.
3556         (get_subprogram_die): Pass it in.
3557
3558 2001-02-21  Richard Earnshaw  <rearnsha@arm.com>
3559
3560         * flow.c (mark_set_1): Make not_dead unsigned long.  For
3561         non-pseudos, use it as a bitmask of the hard regs that
3562         don't die.
3563
3564 2001-02-21  Neil Booth  <neil@daikokuya.demon.co.uk>
3565
3566         * cppfiles.c: Update comments.
3567         (_cpp_read_file): Don't check for NULL filenames any more.
3568         * cppinit.c (cpp_start_read): Don't do canonicalization of
3569         in_fname and out_fname.  Use the passed file name exclusively.
3570         (_cpp_handle_options): Don't treat "-" as a command line option,
3571         but as a normal filename.
3572         (_cpp_post_options): Canonicalize in_fname and out_fname.
3573         * cppmain.c (printer_init): Don't check out_fname for NULL.
3574         * c-lex.c (orig_filename): Rename cpp_filename for clarity.
3575         (init_c_lex): Update, and use "" to represent stdin to CPP.
3576         (yyparse): Update.
3577
3578 2001-02-20  Will Cohen  <wcohen@redhat.com>
3579
3580         * config/pa/quadlib.c (_U_Qfcnvfxt_quad_to_usgl): New function.
3581         * config/pa/long_double.h (FIXUNS_TRUNCTFSI2_LIBCALL): Added.
3582         (INIT_TARGET_OPTABS): Use FIXUNS_TRUNCTFSI2_LIBCALL for
3583         fixunstfsi_libfunc.
3584
3585 2001-02-20  Stan Shebs  <shebs@apple.com>
3586
3587         * config/rs6000/rs6000.c (output_cbranch): Output branches
3588         on separate lines instead of using ';' to separate.
3589
3590 2001-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
3591
3592         * cppinit.c (set_lang):  Move builtin handling to...
3593         (init_builtins): ...here.
3594         (_cpp_create_reader): Move call to set_lang.
3595
3596 2001-02-20  Mark Mitchell  <mark@codesourcery.com>
3597
3598         * stmt.c (expand_return): If an attempt is made to return the
3599         error_mar_node, treat the return like a return without a value.
3600
3601 2001-02-19  Zack Weinberg  <zackw@stanford.edu>
3602
3603         * sibcall.c (skip_copy_to_return_value): Call
3604         identify_call_return_value here, and return orig_insn if it
3605         returns zero.  Hardret and softret arguments now unnecessary.
3606         (call_ends_block_p): Don't call identify_call_return_value here.
3607
3608         * ggc-common.c (ggc_mark_rtx_children): No need to mark 'S' or
3609         's' slots in RTXen.
3610         * ggc-page.c, ggc-simple.c (ggc_mark_if_gcable): Delete function.
3611         * ggc.h (ggc_mark_if_gcable): Delete prototype.
3612
3613 Mon Feb 19 20:30:16 2001  Jeffrey A Law  (law@cygnus.com)
3614
3615         * pa.c (move_operand): Accept code to load the address of a
3616         symbol out of the DLT as a valid move operand.
3617         (print_operand, case 'A'): New to handle generating a DLT
3618         reference for a LO_SUM expression.
3619         * pa.h (EXTRA_CONSTRAINT): Handle 'A' for DLT LO_SUM references.
3620         * pa.md (movsi, movdi patterns): Allow DLT LO_SUM references.
3621
3622 2001-02-19  Joseph S. Myers  <jsm28@cam.ac.uk>
3623
3624         * README, cpp.texi, gcc.texi, version.c: Update version number to
3625         3.1.
3626         * cpp.1, gcov.1, gcc.1: Regenerate.
3627
3628 2001-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
3629
3630         * cppfiles.c (stack_include_file): Generate dependencies
3631         here, and manage include_count here too.
3632         (PRINT_THIS_DEP): Delete.
3633         (_cpp_execute_include): Do not generate dependencies here,
3634         apart from the case of a missing header.  Do not manage
3635         include_count.
3636         (_cpp_read_file): Leave dependency generation to
3637         stack_include_file.
3638
3639 Mon Feb 19 10:17:47 2001  Jeffrey A Law  (law@cygnus.com)
3640
3641         * config.gcc (hppa*64*-*-hpux11*): Add MASK_GAS to
3642         target_cpu_default.  Remove dead assignment to
3643         target_cpu_default.
3644
3645 Mon Feb 19 16:47:39 CET 2001  Jan Hubicka  <jh@suse.cz>
3646
3647         * regclass.c (contains_reg_of_mode): Make global.
3648         (init_reg_sets): Remove contains_reg_of_mode; take into account
3649         CLASS_MAX_NREGS when looking for the proper mode.
3650         (dump_regclass): Dump only classes considered for the pseudo.
3651         (regclass): Use contains_reg_of_mode.
3652
3653 Mon Feb 19 16:45:42 CET 2001  Jan Hubicka  <jh@suse.cz>
3654
3655         * gcc.c (do_spec_1): 'n' for printing notices.
3656         * i386.h (CC1_CPU_SPEC): Notice deprecated options as deprecated.
3657
3658 Mon Feb 19 15:51:30 CET 2001  Jan Hubicka  <jh@suse.cz>
3659
3660         * reg-stack.c (next_flags_user): Use current_block->end
3661         (swap_rtx_condition): Look for next user if flags don't die;
3662         give up on CALL_INSNs; use current_block->end.
3663
3664 Mon Feb 19 08:27:21 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3665
3666         * sibcall.c (call_ends_block_p): New function.
3667         (optimize_sibling_and_tail_recursive_call): Use it.
3668
3669 2001-02-18  Kazu Hirata  <kazu@hxi.com>
3670
3671         * config/h8300/h8300.md: Update copyright.
3672         (andsi3): Do not output an extra newline character.
3673
3674 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3675
3676         * toplev.c (note_deferral_of_defined_inlined_function): Argument
3677         FNDECL may be unused.
3678
3679         * toplev.c (rest_of_compilation): Don't have CSE skip blocks or
3680         follow jumps after first run.
3681         If -fexpensive-optimizations rerun CSE after GCSE and iterate until
3682         it doesn't change any jumps.
3683
3684 Sun Feb 18 17:05:50 2001  Jeffrey A Law  (law@cygnus.com)
3685
3686         * Makefile.in (rtlanal.o): Depend on hard-reg-set.h.
3687         ($HOST_PREFIX_1)rtlanal.o: Remove rules for building
3688         (mostlyclean): Corresponding changes.
3689         * rtlanal.c (hard-reg-set.h): Include.
3690         (rtx_unstable_p): Do not treat the argument pointer specially
3691         if it is not a fixed register.
3692         (rtx_varies_p, rtx_addr_can_trap_p): Similarly.
3693
3694 Sun Feb 18 15:45:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3695
3696         * sibcall.c (optimize_sibling_and_tail_recursive_call): Compare
3697         against last real insn in basic block.
3698         Rework to avoid gotos.
3699
3700         * Makefile.in (gcse.o): Now includes ggc.h.
3701         * gcse.c: Include ggc.h.
3702         (want_to_gcse_p): Verify expression can be in SET as valid insn.
3703         (try_replace_reg): Remove warning of uninitialize variable.
3704         (process_insert_insn): Call invalid_insn_p to validate insn.
3705         * recog.c (insn_invalid_p): Now global.
3706         See if can make valid by adding CLOBBERs of SCRATCH only and do if so.
3707         * recog.h (insn_invalid_p): New declaration.
3708
3709         * jump.c (jump_optimize_1): Only define reversed_code #ifdef HAVE_trap.
3710
3711         * config/sparc/sparc.c (eligible_for_epilogue_delay): Don't put
3712         assignments from FP constants since 'Y' output code can't handle it.
3713         (eligible_for_sibcall_delay): Likewise.
3714
3715         * flow.c (print_rtl_and_abort_fcn): Renamed from print_rtl_and_abort.
3716         Call fancy_abort directly, passing args.
3717         (print_rtl_and_abort): Now a macro, like fancy_abort.
3718
3719         * final.c (output_operand_lossage): Use internal_error, not error.
3720
3721 2001-02-18  Shane Nay  <shane@agendacomputing.com>
3722
3723         * mips.c (mips_expand_prologue) Add REG_MAYBE_DEAD to
3724         structure shift insns.
3725
3726 2001-02-18  Mark Mitchell  <mark@codesourcery.com>
3727
3728         * invoke.texi (-fsquangle): Remove documentation.
3729         (-fname-mangling-version): Likewise.
3730
3731 2001-02-18  Lars Brinkhoff  <lars@nocrew.org>
3732
3733         * optabs.c (expand_abs): Remove reference to
3734         HAVE_contitional_arithmetic.
3735         * combine.c (simplify_set): Likewise.
3736
3737 2001-02-18  Richard Henderson  <rth@redhat.com>
3738
3739         * ifcvt.c (dead_or_predicable): Don't move code if eh regions
3740         would be disrupted.
3741
3742 2001-02-18  Richard Henderson  <rth@redhat.com>
3743
3744         * config/ns32k/ns32k.h (ADJSP): Upcase arguments.
3745
3746         * config/alpha/alpha.md (movsi_fix): Fix typo in pattern name.
3747
3748         * reload1.c (reload_cse_simplify_set): Fix typo.
3749
3750 Sun Feb 18 09:30:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3751
3752         * diagnostic.c (_fatal_insn): Decrement errorcount.
3753
3754         * invoke.texi (-I): Add note avoiding use for system header files.
3755
3756         * rtl.h (add_clobbers): Remove duplicate declaration.
3757         * recog.h (added_clobbers_hard_reg_p): New declaration.
3758         * genemit.c (struct clobber_pat): New field has_hard_reg.
3759         (gen_insn): Record if added clobbers clobber hard reg.
3760         (gen_split): Avoid unused warning if number of operands is 0.
3761         (output_added_clobbers_hard_reg_p): New function.
3762         (main): Call it.
3763
3764 2001-02-18  Alan Modra <alan@linuxcare.com.au>
3765
3766         * pa.c (hppa_expand_prologue): Simplify code storing return
3767         pointer.  For large (>=8k) frames with a post_store, adjust stack
3768         pointer by 8k-64 first rather than by 64.  When testing with
3769         VAL_14_BITS_P, always use the actual value rather than the value
3770         negated.  Add blockage to prevent scheduling of spills before
3771         stack frame has been created.
3772         (hppa_expand_epilogue): Simplify code loading return pointer.
3773         Allow a slightly larger range for merge_sp_adjust_with_load case.
3774         When testing with VAL_14_BITS_P, always use the actual value.
3775
3776         * pa.c (pa_adjust_insn_length): Check that block move
3777         pattern is a set before looking at operands.
3778
3779 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3780
3781         * fold-const.c (fold_binary_op_with_conditional_arg): New
3782         function, split out from ...
3783         (fold): ... here.
3784         * tree.def (COND_EXPR): Document the use of VOID_TYPE for
3785         conditional arms that throw exceptions.
3786
3787         * print-tree.c (print_node): Do not use BLOCK_CHAIN when we're not
3788         looking at a BLOCK.
3789
3790 2001-02-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3791
3792         * aclocal.m4 (gcc_AC_CHECK_DECL): Before attempting the test,
3793         define HAVE_DECL_* to 1 to mask potential backup declarations.
3794         * configure: Regenerated.
3795
3796 2001-02-17  Mark Mitchell  <mark@codesourcery.com>
3797
3798         * invoke.texi (-Woverloaded-virtual): Clarify documentation.
3799
3800 2001-02-17  Richard Henderson  <rth@redhat.com>
3801
3802         * reload1.c (reload_cse_simplify_set): Respect LOAD_EXTEND_OP
3803         when replacing a memory load with a register.
3804
3805 Sat Feb 17 14:48:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3806                           Jan Hubicka  <jh@suse.cz>
3807
3808         * recog.c (validate_replace_src_1): New.
3809         (validate_replace_src_data): Likewise.
3810         (validate_replace_src): Use note_uses.
3811         * rtl.h (note_uses): Declare.
3812         * rtlanal.c (note_uses): New.
3813
3814 Sat Feb 17 10:52:34 CET 2001  Jan Hubicka  <jh@suse.cz>
3815
3816         * reg-stack.c (stack_def): Make field reg unsigned.
3817         (remove_regno_note): Unsignetize parameter.
3818
3819 2001-02-16  Jes Sorensen  <jes@linuxcare.com>
3820
3821         * ia64.c (errata_emit_nops): Add VOIDmode as second argument to
3822         shladd_operand() call.
3823
3824 2001-02-16  Bruce Korb  <bkorb@gnu.org>
3825             Rodney Brown  <RodneyBrown@mynd.com>
3826
3827         * fixinc/mkfixinc.sh: Use C fixincludes for UnixWare 7.
3828         * fixinc/inclhack.def: Add fixinc.svr4 patterns with matching
3829         machine restrictions
3830         * fixinc/fixincl.x: regen
3831
3832 Fri Feb 16 12:41:30 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3833
3834         * gcse.c (hash_scan_set): If cprop, see if REG_EQUAL or REG_EQUIV.
3835         Don't CSE a nop.
3836         (hash_scan_insn): Clean up calls to hash_scan_set.
3837         (compute_kill_rd): REGNO now unsigned.
3838         (try_replace_reg): Rework to use simplify_replace_rtx.
3839         (cprop_jump, cprop_cc0_jump): Likewise.
3840         (cprop_insn): Call find_reg_equal_equiv_note.
3841         Reflect changes to cprop_jump and cprop_cc0_jump.
3842
3843         * recog.c (validate_replace_src): Replace in operands of
3844         ZERO_EXTRACT in SET_DEST.
3845
3846         * cse.c (new_label_ref): New variable.
3847         (insert): Set it instead of recorded_label_ref.
3848         (cse_basic_block): Set recorded_label_ref if new_label_ref use, has
3849         CODE_LABEL for this function, and not already in REG_LABEL note.
3850
3851 2001-02-16  Jeffrey Oldham  <oldham@codesourcery.com>
3852
3853         * resource.c (mark_referenced_resources): Fix typo in introductory
3854         comment.
3855         * config/mips/abi64.h (SUBTARGET_TARGET_OPTIONS): Fix typo in
3856         string constant.
3857
3858 2001-02-16  Jason Merrill  <jason@redhat.com>
3859
3860         * dwarf2out.c (add_bound_info): Don't crash if SAVE_EXPR_RTL is
3861         NULL.
3862         (gen_subprogram_die): Don't abort on seeing a second definition if
3863         the previous one was abstract.  Don't replace an abstract instance
3864         in the lookup table.
3865
3866         * dwarf2out.c (dwarf2out_abstract_function): Rename from
3867         gen_abstract_function.
3868         * dwarf2out.h: Declare it.
3869         * toplev.c (note_outlining_of_inline_function): New fn.
3870         * toplev.h: Declare it.
3871         * integrate.c (output_inline_function): Call it.
3872         * c-decl.c (duplicate_decls): Call it when redefining an extern
3873         inline.  Don't inline the new defn.
3874
3875         * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
3876
3877 2001-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3878
3879         * .gdbinit: Rename to gdbinit.in.
3880         * gdbinit.in: New file,
3881         * configure.in: Generate .gdbinit from gdbinit.in.
3882         * configure: Regenerated.
3883         * Makefile.in (distclean): Always remove .gdbinit.
3884
3885 2001-02-16  Jakub Jelinek  <jakub@redhat.com>
3886
3887         * objc/objc-act.c (start_class): Register implemented_classes with
3888         GC.
3889
3890 2001-02-16  Neil Booth  <neil@daikokuya.demon.co.uk>
3891
3892         * cppfiles.c (_cpp_make_system_header): Generate a file
3893         change callback.
3894
3895 2001-02-15  Jim Meyering  <meyering@lucent.com>
3896
3897         * Makefile.in (install-common): Don't depend on installdirs here.
3898         Instead, make each of the lang.install-common targets (e.g.,
3899         c++.install-common in cp/Make-lang.in) depend on it.
3900         (install-driver): Depend on installdirs.
3901
3902 Thu Feb 15 21:30:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3903
3904         * flow.c (tidy_fallthru_edge): Never end block on line number NOTE.
3905
3906         * function.c (assign_parms): Set RTX_UNCHANGING_P in pseudo when we
3907         do in memory.
3908
3909 2001-02-15  Mark Mitchell  <mark@codesourcery.com>
3910
3911         * invoke.texi (--param): Document.
3912
3913 Thu Feb 15 15:16:38 2001  Alexandre Oliva  <aoliva@redhat.com>
3914
3915         * config/sh/sh.h (BOOL_TYPE_SIZE): Don't define.
3916
3917 Thu Feb 15 10:52:31 CET 2001  Jan Hubicka  <jh@suse.cz>
3918
3919         * i386.md (extendsfdf2_2): Fix constraints.
3920
3921 Thu Feb 15 09:46:21 CET 2001  Jan Hubicka  <jh@suse.cz>
3922
3923         * i386.md (fop_df_3 splitter): Fix operand number.
3924
3925 Wed Feb 14 12:37:37 CET 2001  Jan Hubicka  <jh@suse.cz>
3926
3927         * invoke.texi (-mreg-alloc): Nuke.
3928         * i386.c (ix86_reg_alloc_order, regs_allocated,
3929         order_regs_for_local_alloc): Nuke.
3930         (override_options): Kill reg_alloc code.
3931         * i386.h (TARGET_OPTIONS): Kill reg-alloc.
3932         (REG_ALLOC_ORDER): SSE goes before I387.
3933         (ORDER_REGS_FOR_LOCAL_ALLOC): Kill.
3934         (ix86_reg_alloc_order): Likewise.
3935         * i386-protos.h (ix86_reg_alloc_order): Kill.
3936
3937 2001-02-14  Richard Henderson  <rth@redhat.com>
3938
3939         * toplev.c (f_options): Clarify -fschedule-insns2 documentation.
3940
3941 Wed Feb 14 11:59:58 CET 2001  Jan Hubicka  <jh@suse.cz>
3942
3943         * i386.h (RETURN_IN_MEMORY): Fix formating; reject TFmodes
3944
3945 Wed Feb 14 11:12:38 CET 2001  Jan Hubicka  <jh@suse.cz>
3946
3947         * i386-protos.h (ix86_memory_move_cost): Move offline.
3948         * i386.c (ix86_register_move_cost): Compute properly cost of
3949         SSE, MMX and i387 instructions.
3950         (*_cost): Add costs of SSE/MMX moves.
3951         (ix86_memory_move_cost): Move offline from ....; Likewise.
3952         * i386.h (MEMORY_MOVE_COST): .... here;
3953         (struct processor costs): Add new fields to represent costs
3954         of SSE/MMX moves.
3955
3956 Wed Feb 14 10:08:26 CET 2001  Jan Hubicka  <jh@suse.cz>
3957
3958         * regclass.c (init_reg_sets_1): Reinstall the optimization of
3959         move_cost together with Matt Kraai's fix.
3960
3961 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
3962
3963         * Makefile.in (OBJS): Add params.o.
3964
3965 2001-02-14  Richard Henderson  <rth@redhat.com>
3966             DJ Delorie  <dj@redhat.com>
3967
3968         * jump.c (jump_optimize_1): When we delete a conditional jump
3969         preceeding a non-conditional jump to effectively the same place,
3970         make sure that the combined jump skips any clobber insns between
3971         the two labels.
3972
3973 2001-02-14  Jeffrey Oldham  <oldham@codesourcery.com>
3974
3975         * gcc.c (do_spec_1): Fix off-by-one error for '%M' case.
3976
3977 2001-02-14  Mark Mitchell  <mark@codesourcery.com>
3978
3979         * Makefile.in (toplev.o): Depend on params.h.
3980         (intergate.o): Likewise.
3981         (params.o): New target.
3982         * flags.h (inline_max_insns): Remove.
3983         * integrate.c: Include params.h.
3984         Use MAX_INLINE_INSNS instead of inline_max_insns.
3985         * params.c: New file.
3986         * params.h: Likewise.
3987         * params.def: Likewise.
3988         * toplev.c: Include params.h.
3989         (lang_independent_params): New variable.
3990         (decode_f_option): Use the param machinery instead of setting
3991         max_inline_insns.
3992         (independent_decode_option): Handle "--param name=value".
3993         (main): Register language-independent parameters.
3994
3995 Wed Feb 14 11:13:45 CET 2001  Jan Hubicka  <jh@suse.cz>
3996
3997         * i386.md (pushsf, pushdf_nointeger): Fix constraint.
3998
3999 2001-02-14  Richard Henderson  <rth@redhat.com>
4000
4001         * regclass.c (init_reg_sets_1): Revert last two changes.
4002
4003 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
4004
4005         * stor-layout.c (is_pending_size, put_pending_size): New functions.
4006         (variable_size): Call put_pending_size.
4007         * tree.h (is_pending_size, put_pending_size): Add prototypes.
4008         * fold-const.c (extract_muldiv): If SAVE_EXPR is on the pending
4009         sizes list, put newly created SAVE_EXPR there as well.
4010
4011 2001-02-14  Jakub Jelinek  <jakub@redhat.com>
4012
4013         * config/ia64/ia64.c (last_group): Only 2 entries are needed.
4014         (errata_find_address_regs): load_group has only 2 entries.
4015         (errata_emit_nops): Likewise.  shladd is not problematic.
4016         Clear last_group if nop was emitted.
4017         (fixup_errata): load_group has only 2 entries.
4018         Optimize.
4019
4020 2001-02-14  Neil Booth  <neil@daikokuya.demon.co.uk>
4021
4022         * c-lex.c (lex_number): Only warn traditionally for U suffix
4023         outside system macros.
4024         * cppexp.c (parse_number): Similarly.
4025         * cpplib.h (NODE_SYSHDR, cpp_sys_objmacro_p): New.
4026         * cppmacro.c (struct cpp_macro): New member node.
4027         (parse_args): Only warn about missing rest args if not
4028         a system macro.
4029         (funlike_invocation_p): Similarly for uninvoked funlike macros.
4030         (cpp_sys_objmacro_p): New.
4031         (_cpp_create_definition): Store the node with the macro defn.
4032         Remember if the macro is defined in a system header.
4033
4034 2001-02-13  DJ Delorie  <dj@redhat.com>
4035
4036         * configure.in (check_languages): determine languages to check
4037         * Makefile.in (check-c++): alias for check-g++
4038         (check-f77): alias for check-g77
4039         (CHECK_TARGETS): depend on configured languages
4040
4041 Wed Feb 14 01:13:59 CET 2001  Jan Hubicka  <jh@suse.cz>
4042
4043         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
4044         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
4045         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
4046         (sqrtextendsfdf2): Disable for SSE2.
4047
4048 Wed Feb 14 00:19:28 CET 2001  Jan Hubicka  <jh@suse.cz>
4049
4050         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch again.
4051         (sqrtsf2): Use TARGET_SSE instead of TARGET_SSE2)
4052         (sqrtsf2 patterns): Use 'x' instead of 'Y'.
4053         (sqrtextendsfdf2): Disable for SSE2.
4054
4055 Wed Feb 14 00:11:20 CET 2001  Jan Hubicka  <jh@suse.cz>
4056
4057         * i386.md (movsfcc_1): Support integer cmove instruction.
4058         (movdfcc_1): Likewise; new splitter.
4059
4060 Tue Feb 13 23:19:27 CET 2001  Jan Hubicka  <jh@suse.cz>
4061
4062         * i386.c (output_fp_compare): Support SSE.
4063         (prepare_fp_compare_args): SSE comparisons always support memory.
4064         * i386.h (TARGET_CMOVE): SSE imply cmove.
4065         * i386.md (cmp?f2): Enable for SSE too.
4066         (cmpfp_i*): Support SSE.
4067         (cmpfp_i_sse): New.
4068         (cmpfp_i_sse_only): New.
4069         (s*, b* fp expanters): Enable for SSE too.
4070         (fp_jcc_1_sse, fp_jcc_1_sse_only, fp_jcc_2_sse, fp_jcc_2_sse_only):
4071         New patterns.
4072
4073 Tue Feb 13 23:05:42 CET 2001  Jan Hubicka  <jh@suse.cz>
4074
4075         * regclass.c (init_reg_sets_1): Silence warning.
4076
4077 Tue Feb 13 22:03:07 CET 2001  Jan Hubicka  <jh@suse.cz>
4078
4079         * i386.md (sqrt?f2): Change to expander.
4080         (sqrt?f2_1, sqrt?f2_sse_only, sqrt?f2_i387): New.
4081
4082 Tue Feb 13 15:42:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4083
4084         * rtlanal.c (find_reg_equal_equiv_note): New function.
4085         * simplify-rtx.c (simplify_gen_unary, simplify_gen_ternary): New fns.
4086         (simplify_gen_relational, simplify_replace_rtx): Likewise.
4087         * rtl.h: Add declarations for above functions.
4088
4089 Tue Feb 13 21:09:11 CET 2001  Jan Hubicka  <jh@suse.cz>
4090
4091         * cse.c (cse_main): Converts ifdefs on PIC_OFFSET_TABLE_REGNUM to
4092         conditionals.
4093         * defaults.h (PIC_OFFSET_TABLE_REGNUM): Default to INVALID_REGNUM.
4094         * emit-rtl.c (init_emit_once): Convert ifdefs to conditionals.
4095         * flow.c (mark_regs_live_at_end): Likewise.
4096         (calculate_global_regs_live): Likewise.
4097         * gcse.c (compute_hash_table): Likewise.
4098         (compute_kill_rd): Likewise.
4099         * resource.c (mark_target_live_regs): Likewise.
4100         * rtl.h (INVALID_REGNUM): New macro.
4101
4102 Tue Feb 13 20:59:22 CET 2001  Jan Hubicka  <jh@suse.cz>
4103
4104         * i386.md (fixsfsi2, fixdfdi2): Fix previous patch.
4105
4106 Tue Feb 13 16:32:20 CET 2001  Jan Hubicka  <jh@suse.cz>
4107
4108         * i386.md (fixsfsi2, fixdfdi2): Force operand to register
4109         for SSE.
4110
4111 Tue Feb 13 14:53:16 CET 2001  Jan Hubicka  <jh@suse.cz>
4112
4113         * i386.md (add?f3, sub?f3, mul?f3, dif?f3): Enable for TARGET_SSE(2)
4114         too.
4115         (fop_sf_comm, fop_df_comm, fop_sf_1, fop_df_1): Support SSE.
4116         (fop_sf_comm_sse, fop_df_comm_sse): New patterns.
4117         (fop_sf_1_sse, fop_df_1_sse): New patterns
4118         (fop_*): Disable float_extend and float patterns for SSE compilation.
4119         * i386.c (output_387_binary_op): Support SSE.
4120
4121 Tue Feb 13 14:16:34 CET 2001  Jan Hubicka  <jh@suse.cz>
4122
4123         * i386.md (dummy_extendsfdf2): Support SSE2
4124         (extendsfdf2): Enable if 80387 or SSE2.
4125         (extendsfdf2_1): Support SSE2. Disable if SSE2 is avialble
4126         and no MIX_I387_SSE2
4127         (extendsfdf2_1_sse_only): New pattern.
4128         (truncdfsf2): Enable if SSE2 or 80387; Always use SSE only version
4129         of SSE.
4130         (truncdfsf2_1): Support SSE.
4131         (truncdfsf2_2): Support SSE.
4132         (truncdfsf2_2_1_sse): New pattern.
4133         (fixtruncsfsi2): Always use SSE if available.
4134         (fix_truncsfsi_sse): New pattern.
4135         (fix_truncdfsi_sse): New pattern.
4136         (floatsis?f2): Support SSE.
4137         (floatsidf2_i387): New pattern.
4138         (floatsidf2_sse): Likewise.
4139
4140 Tue Feb 13 07:52:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4141
4142         * configure.in: Use "have_gnat" variable, not "gnat".
4143         * configure: Regenerated.
4144
4145         * config/sparc/sparc.c (function_value): Treat all non-record
4146         aggregate types like used to treat UNION_TYPE.
4147
4148 Tue Feb 13 13:31:33 CET 2001  Jan Hubicka  <jh@suse.cz>
4149
4150         * i386.c (print_reg): Use ANY_FP_REG instead of FP_REG
4151         * i386.h (MASK_128BIT_LONG_DOUBLE): Renumber
4152         (MASK_SSE2): New.
4153         (MASK_MIX_SSE_I387): New.
4154         (TARGET_SSE): SSE2 imply SSE.
4155         (TARGET_SSE2, TARGET_MIX_SSE_I387): New.
4156         (TARGET_SWITCHES): Add "sse2", "mix-sse-i387".
4157         (enum reg_class): Add new classes.
4158         (REG_CLASS_NAMES): Likewise.
4159         (REG_CLASS_CONTENTS): Likewise.
4160         (ANY_FP_REG_P, ANY_FP_REGNO_P, SSE_REG_P, SSE_FLOAT_MODE): New macros.
4161         (REG_CLASS_FROM_LETTER): 'x' and 'y' is SSE_REGS only when SSE is
4162         supported. Add 'Y' to be SSE_REGS when SSE2 is supported.
4163         (CLASS_MAX_NREGS): Use new macros.
4164         (REGISTER_MOVE_COST): Rewrite using SECONDARY_MEMORY_MAYBE_NEEDED.
4165         * i386.md (pushsf, movsf): Support SSE.
4166         (pushdf_nointeger, pushdf_integer, pushdf): Support SSE, update
4167         splitters to use ANY_FP_REGNO_P.
4168         (movdf_nointeger, movdf_integer): Likewise.
4169
4170 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
4171
4172         * combine.c (UWIDE_SHIFT_LEFT_BY_BITS_PER_WORD): New macro.
4173         (try_combine): Use it.
4174
4175 Tue Feb 13 11:37:06 CET 2001  Jan Hubicka  <jh@suse.cz>
4176
4177         * i386.h (SSE_CLASS_P, MMX_CLASS_P, MAYBE_FLOAT_CLASS_P,
4178         MAYBE_SSE_CLASS_P, MAYBE_MMX_CLASS_P): New macros.
4179         (PREFERRED_RELOAD_CLASS, SECONDARY_MEMORY_NEEDED): Move offline.
4180         (REGISTER_MOVE_COST): Likewise.
4181         * i386-protos.h (ix86_secondary_memory_needed,
4182         ix86_preferred_reload_class, ix86_register_move_cost): Declare.
4183         * i386.c (ix86_secondary_memory_needed,
4184         ix86_preferred_reload_class, ix86_register_move_cost): New function.
4185
4186 Die Feb 13 11:04:25 CET 2001  Jan Hubicka  <jh@suse.cz>
4187
4188         * i386.h (VALID_FP_MODE_P, VALID_INT_MODE_P): New.
4189         (HARD_REGNO_MODE_OK): Move offline to ....
4190         * i386.c (ix86_hard_regno_mode_ok) ... here;
4191         refuse all incorrect modes.
4192         * i386-protos.h (ix86_hard_regno_mode_ok): Declare.
4193
4194 2001-02-13  Richard Henderson  <rth@redhat.com>
4195
4196         * sparc.md (cmp_cc_arith_op_set): Don't use match_dup on the
4197         entire operator; replicate that and match_dup the operands.
4198         (cmp_ccx_arith_op_set): Likewise.
4199         (cmp_cc_arith_op_not_set): Likewise.
4200         (cmp_ccx_arith_op_not_set): Likewise.
4201
4202 2001-02-13  Alexandre Oliva  <aoliva@redhat.com>
4203
4204         * explow.c (trunc_int_for_mode): Sign-extend value to mode.
4205
4206 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
4207
4208         * config/rs6000/sysv4.h (MASK_NO_BITFIELD_WORD): New macro.
4209         (TARGET_NO_BITFIELD_WORD): New macro.
4210         (SUBTARGET_SWITCHES): Add -mbit-word, -mno-bit-word options.
4211         (BITFIELD_NBYTES_LIMITED): Define based on TARGET_NO_BITFIELD_WORD.
4212
4213 Mon Feb 12 18:13:26 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4214
4215         * cselib.c: New file, from simplify-rtx.c.
4216         * simplify-rtx.c: Remove cselib parts.
4217         * Makefile.in: Add cselib.o.
4218
4219 2001-02-12  Geoffrey Keating  <geoffk@redhat.com>
4220
4221         * config/rs6000/rs6000.c (rs6000_float_const): Remove warning.
4222         (setup_incoming_varargs): Remove warning.
4223
4224         * config/rs6000/rs6000.c (validate_condition_mode): When
4225         flag_fast_math, allow floating-point conditionals to be reversed.
4226         (rs6000_generate_compare): When flag_fast_math, don't generate
4227         cror operations for FP conditionals.
4228
4229         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Handle
4230         -mcall-i960.
4231         (ASM_SPEC): Likewise.
4232         (CC1_ENDIAN_LITTLE_SPEC): Likewise.
4233         (CC1_SPEC): Likewise.
4234         (LINK_TARGET_SPEC): Likewise.
4235         (CPP_ENDIAN_SPEC): Likewise.
4236         * Makefile.in (check-consistency): New target.
4237
4238 2001-02-12  Joseph S. Myers  <jsm28@cam.ac.uk>
4239
4240         * c-decl.c (grokdeclarator): In C99 mode, give the more specific
4241         "return type defaults" warning for functions with return type
4242         defaulting to int.
4243         * c-lang.c (c_init): In C99 mode, enable warnings for implicit
4244         function declarations by default rather than only when pedantic.
4245
4246 Mon Feb 12 17:28:48 CET 2001  Jan Hubicka  <jh@suse.cz>
4247
4248         * regclass.c (init_reg_sets_1): Optimize calculation of move_cost
4249         arrays.
4250
4251 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4252
4253         * extend.texi (Deprecated): Deprecate new initializer lists.
4254
4255 2001-02-12  Nathan Sidwell  <nathan@codesourcery.com>
4256
4257         * mkdeps.c (deps_add_default_target): Robustify. Add
4258         basename component only.
4259         * cpp.texi (-M): Describe how default target is generated.
4260         * invoke.texi (-M): Likewise.
4261
4262 2001-02-12  Kazu Hirata  <kazu@hxi.com>
4263
4264         * toplev.c (push_float_handler): Remove.
4265         (pop_float_handler): Remove.
4266         * toplev.h: Remove prototypes for the above functions.
4267
4268 2001-02-12  Jakub Jelinek  <jakub@redhat.com>
4269
4270         * c-common.c (constant_fits_type_p): New function.
4271         (convert_and_check): Use it.
4272
4273 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
4274
4275         * Makefile.in (GXX_ABI_FLAG): Don't define.
4276         * configure.in (--enable-new-gxx-abi): Remove option.
4277         * config.in: Regenerated.
4278         * configure: Likewise.
4279
4280 2001-02-12  Alexandre Oliva  <aoliva@redhat.com>
4281
4282         * lcm.c (compute_earliest): Let EXIT_BLOCK be handled as a regular
4283         basic block.
4284         (optimize_mode_switching) [NORMAL_MODE]: Set up EXIT_BLOCK as a
4285         regular basic block, and arrange for all edges into it to switch
4286         to normal mode.
4287
4288 2001-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4289
4290         * Makefile.in (distclean): Do not remove .gdbinit.
4291
4292 2001-02-11  Mark Mitchell  <mark@codesourcery.com>
4293
4294         * Makefile.in (gcc.o): Fix typos.
4295         (protize.o): Likewise.
4296         (unprotoize.o): Likewise.
4297
4298 2001-02-11  Richard Henderson  <rth@redhat.com>
4299
4300         * tree.c (build1): Check for null operand in last change.
4301
4302 2001-02-11  Richard Henderson  <rth@redhat.com>
4303
4304         * fold-const.c (split_tree): Don't assume a constant isn't splittable.
4305         (fold): Don't assume a constant isn't foldable.
4306         * tree.c (build): Set TREE_CONSTANT for an expression with no
4307         side-effects and constant operands.
4308         (build1): Likewise.
4309
4310 2001-02-10  Richard Henderson  <rth@redhat.com>
4311
4312         * jump.c (squeeze_notes): Revert 2000-05-12 change.
4313
4314 2001-02-10  Anthony Green  <green@redhat.com>
4315
4316         * cpp.texi (Standard Predefined): Add documentation for
4317         __OPTIMIZE_SIZE__.
4318
4319         * c-common.c (combine_strings): Improve warning message.
4320
4321 2001-02-10  Geoffrey Keating  <geoffk@redhat.com>
4322
4323         * config/rs6000/sysv4.h (LINK_TARGET_SPEC): Use two dashes for
4324         --oformat.
4325         * config/rs6000/sysv4le.h (LINK_TARGET_SPEC): Likewise.
4326
4327 Fri Feb  9 15:05:27 2001  Christopher Faylor <cgf@cygnus.com>
4328
4329         * config/i386/t-cygwin (T_CPPFLAGS): Use correct location for
4330         CYGWIN_CROSS_DIR.
4331
4332 2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
4333
4334         * config/sh/sh.md (sibcalli, sibcalli_pcrel, sibcalli): Set
4335         fp_mode attribute.
4336
4337 2001-02-09  Nick Clifton  <nickc@redhat.com>
4338
4339         * config/arm/arm.md: Change output contraint on post inc
4340         load/store multiple patterns to be a read/write contraint.
4341
4342 2001-02-09  Neil Booth  <neil@daikokuya.demon.co.uk>
4343
4344         * gcc.c (cpp_options): Delete .d files on error.  Don't delete
4345         .o files when using the -M options.
4346
4347 2001-02-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4348             David Edelsohn  <edelsohn@gnu.org>
4349
4350         * config/rs6000/rs6000.c (output_toc): Allow 32-bit targets to
4351         handle DImode constants.  Use one TOC entry for SImode and smaller
4352         constants, aligned properly.
4353
4354 2001-02-08  Jason Merrill  <jason@redhat.com>
4355
4356         * config/arm/arm.c (arm_expand_prologue): Do tell the dwarf2 backend
4357         about the SP adjustment for saving the static chain pointer.
4358         * dwarf2out.c (dwarf2out_frame_debug_expr): Use the specified
4359         offset when setting a temporary CFA register.
4360
4361 2001-02-08  Chandrakala Chavva  <cchavva@redhat.com>
4362
4363         * config.gcc : New targets, i386-*-chorusos*, sparc-*-chorusos*,
4364         powerpc-*-chorusos* .
4365         * config/rs6000/chorus.h : New file.
4366         * config/i386/chorus.h : New file.
4367         * config/sparc/chorus.h : New file.
4368         * config/sparc/t-chorus-elf : New file.
4369
4370 2001-02-08  David Edelsohn  <edelsohn@gnu.org>
4371
4372         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Move from here ...
4373         * config/rs6000/aix.h (ASM_OUTPUT_SYMBOL_REF): ... to here.
4374         * config/rs6000/aix51.h (CPLUSCPLUS_CPP_SPEC): Define it.
4375         (__WCHAR_TYPE__): Correct macro name.
4376
4377 2001-02-08  Richard Henderson  <rth@redhat.com>
4378
4379         * config/i386/i386.c (ix86_frame_pointer_required): New.
4380         (ix86_setup_frame_addresses): New.
4381         (struct machine_funciton): Add accesses_prev_frame.
4382         * config/i386/i386.h (FRAME_POINTER_REQUIRED): Call
4383         ix86_frame_pointer_required.
4384         (SUBTARGET_FRAME_POINTER_REQUIRED): New.
4385         (SETUP_FRAME_ADDRESSES): New.
4386         * config/i386/i386-protos.h: Update.
4387         * config/i386/sco5.h (SUBTARGET_FRAME_POINTER_REQUIRED): Rename
4388         from FRAME_POINTER_REQUIRED.
4389         * config/i386/svr3gas.h: Likewise.
4390         * config/i386/sysv3.h: Likewise.
4391         * config/i386/v3gas.h: Likewise.
4392
4393 2001-02-08  Richard Henderson  <rth@redhat.com>
4394
4395         * config/sparc/sparc.c (function_arg_record_value_3): Fix
4396         calculation of the number of integer registers required.
4397         (function_arg_record_value): Likewise.
4398
4399 2001-02-08  Jason Merrill  <jason@redhat.com>
4400
4401         * diagnostic.c (internal_error): Say "confused" after 1 error, not
4402         two.  Print file and line with "confused" message.
4403
4404         * dwarf2out.c (dwarf2out_line): Include filename in -dA output.
4405
4406 Thu Feb  8 11:21:28 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4407
4408         * rtlanal.c (remove_node_from_expr_list): Correctly update PREV.
4409
4410 2001-02-08  Bernd Schmidt  <bernds@redhat.com>
4411
4412         * final.c (cleanup_subreg_operands): The address of a MEM can
4413         contain SUBREGs.
4414
4415         * config/ia64/ia64.c (ia64_variable_issue): Call group_barrier_needed_p
4416         for asms, too.
4417
4418 2001-02-08  Joseph S. Myers  <jsm28@cam.ac.uk>
4419
4420         * gcc.texi (Incompatibilities): Update documentation of
4421         preprocessing numbers.
4422
4423 2001-02-07  Jakub Jelinek  <jakub@redhat.com>
4424
4425         * c-decl.c (finish_enum): Revert part of 2000-01-05 change.
4426
4427 2001-02-07  Mark Mitchell  <mark@codesourcery.com>
4428
4429         * config/rs6000/aix43.h (CPLUSCPLUS_CPP_SPEC): Define it.
4430
4431         * defaults.h (CPLUSPLUS_CPP_SPEC): New macro.
4432         * gcc.c (struct compiler): Add cpp_spec field.
4433         (input_file_compiler): New variable.
4434         (do_spec_1): Allow a particular compiler to handle `%C'
4435         specially.
4436         (main): Store the current compiler in input_file_compiler.
4437         * tm.texi (CPLUSPLUS_CPP_SPEC): Document.
4438
4439 2001-02-07  Zack Weinberg  <zack@wolery.stanford.edu>
4440
4441         * cpphash.h (struct spec_nodes): Add n_true and n_false.
4442         * cppinit.c (cpp_create_reader): Initialize them.
4443         (append_include_chain): cxx_aware arg might be unused.
4444         * cppexp.c (lex): In C++ mode, recognize 'true' and 'false'
4445         keywords and give them their phase 7 meaning.  Pedwarn about
4446         this unless '__bool_true_false_are_defined' is defined.
4447
4448 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
4449
4450         * lcm.c (optimize_mode_switching): Emit mode_set before the
4451         JUMP_INSN of an abnormal edge.
4452
4453 2001-02-07  Bernd Schmidt  <bernds@redhat.com>
4454
4455         * builtins.c (expand_builtin_setjmp_receiver): Emit an ASM_INPUT as
4456         a scheduling barrier at the end.
4457
4458         * tm.texi (MD_INIT_BUILTINS, MD_EXPAND_BUILTIN): Document.
4459
4460 2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
4461
4462         * config/sh/sh.md (reload_outsf): Removed.
4463         (movsf_ie): Introduce constraints for FPUL loads and stores.
4464         (reload_insf): Broaden the output constraint.
4465
4466         * config/elfos.h (INT_ASM_OP): Don't define it if it's already
4467         defined.
4468         * config/sh/sh.h (INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
4469         ASM_OUTPUT_DESTRUCTOR): Copy definitions from config/elfos.h.
4470
4471 2001-02-06  Chandrakala Chavva  <cchavva@redhat.com>
4472
4473         * final.c: Revert my previous changes.
4474         * output.h: Make profile_label_no extern.
4475         * config/rs6000/rs6000.c (output_profile_hook): Use standard functions
4476         for generating label.
4477
4478 2001-02-06  Laurynas Biveinis  <lauras@softhome.net>
4479
4480         * config/i386/djgpp.h: Add comments about standard paths.
4481         (MD_EXEC_PREFIX): Undefine before defining.
4482         (MD_STARTFILE_PREFIX): New.
4483
4484 2001-01-30  Bruce Korb  <bkorb@gnu.org>
4485
4486         fixinc/fixincl.c(process):  Emit error message only if appropriate :)
4487         (load_file): do not rely on load_file_data() to close file pointer
4488         fixinc/fixlib.c(load_file_data): do not close passed in file pointer
4489         fixinc/inclhack.def(irix_limits_const): add test_text
4490
4491 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
4492
4493         * cppexp.c (parse_defined): Improve diagnostics for invalid
4494         syntax.
4495
4496 2001-02-06  Neil Booth  <neil@daikokuya.demon.co.uk>
4497
4498         * cppmacro.c (cpp_get_token): Avoid pasting after a builtin.
4499
4500 2001-02-06  Mark Mitchell  <mark@codesourcery.com>
4501
4502         * config/rs6000/rs6000.h (ASM_OUTPUT_SYMBOL_REF): Define.
4503         * config/rs6000/rs6000-protos.h (rs6000_output_symbol_ref): Declare.
4504         * config/rs6000/rs6000.c (VTABLE_NAME_P): New macro.
4505         (rs6000_output_symbol_ref): New function.
4506         (output_toc): Use VTABLE_NAME_P.
4507
4508 Tue Feb  6 07:54:51 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4509
4510         * print-tree.c (print_node, case PARM_DECL):
4511         Print DECL_ARG_TYPE and DECL_ARG_TYPE_AS_WRITTEN.
4512
4513         * stor-layout.c (reference_types_internal): New variable.
4514         (internal_reference_types): New function.
4515         (layout_type, case REFERENCE_TYPE): Make Pmode if internal.
4516         * tree.h (internal_reference_types): New declaration.
4517
4518         * cse.c (find_best_addr): Fix typo in computing cost.
4519
4520 Mon Feb  5 21:56:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4521
4522         * combine.c (nonzero_bits, case PLUS): If pointers extend unsigned
4523         and this is the sum of a pointer and a constant, we know the result
4524         did not overflow.
4525         (num_sign_bit_copies, case PLUS): Likewise.
4526         * explow.c (convert_memory_address): Remove opposite SUBREG.
4527         * function.c (instantiate_new_reg): New function (from common code).
4528         (instantiate_virtual_regs_1): Call it.
4529         For PLUS, handle if (plus (subreg (virt-reg) (const_int))
4530         if pointers sign- or zero-extend.
4531         * simplify-rtx.c (simplify_unary_operation, case ZERO_EXTEND):
4532         If pointers extend unsigned, use inside of SUBREG.
4533         (simplify_unary_operation, case SIGN_EXTEND): Likewise, if sign extend.
4534
4535 2001-02-05  Benjamin Kosnik  <bkoz@redhat.com>
4536
4537         * Makefile.in (-DGPLUSPLUS_TOOL_INCLUDE_DIR): Change to target
4538         subdir of gcc_gxx_include_dir.
4539         (gcc_gxx_target_include_dir): Remove.
4540
4541 2001-02-05  Jeffrey Oldham  <oldham@codesourcery.com>
4542
4543         * dwarf2out.c: Revise DWARF2 Abbreviation Glossary comments.
4544         (dwarf2out_frame_debug_expr): Revise introductory comments to add
4545         a high-level description.
4546
4547 2001-02-05  Chandrakala Chavva  <cchavva@redhat.com>
4548
4549         * final.c: Move the declaration of profile_label_no to ...
4550         * output.h: ... here.
4551         * function.c (expand_function_start): Call PROFILE_HOOK.
4552         * config/rs6000/aix.h: Define PROFILE_HOOK.
4553         * config/rs6000/rs6000-protos.h: output_profile_hook new.
4554         * config/rs6000/rs6000.c (output_profile_hook): Define.
4555         (output_prolog): Do nothing for ABI_AIX as it is taken care by
4556         output_profile_hook.
4557         tm.texi : Explain new macro PROFILE_HOOK.
4558
4559 2001-02-06  Hans-Peter Nilsson  <hp@axis.com>
4560
4561         * extend.texi (Extended Asm): Do not say that semicolon is always
4562         a valid line-breaking character for GNU assemblers.  Use
4563         newline-tab as the most commonly supported syntax.  Use
4564         newline-tab rather than semicolon in multi-insn examples.
4565
4566 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4567
4568         * Makefile.in (gcc_gxx_target_include_dir): Use $(target_alias).
4569
4570 2001-02-05  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4571             David Edelsohn  <edelsohn@gnu.org>
4572
4573         * config/rs6000/rs6000.c (rs6000_return_addr): Use PIC
4574         code for AIX, even without flag_pic.
4575
4576 2001-02-05  Jakub Jelinek  <jakub@redhat.com>
4577
4578         * c-typeck.c (common_type): push and pop binding level around
4579         calling common_type on function parameters.
4580
4581 Mon Feb  5 14:30:37 2001  Christopher Faylor <cgf@cygnus.com>
4582
4583         * config/i386/cygwin.h (CPP_SPEC): Add missing space after -idirafter.
4584
4585 Mon Feb  5 11:23:16 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4586
4587         * config/mips/mips.c (override_options): Fix typo in last change.
4588         (mips_make_temp_file): Call fatal_io_error, not pfatal_with_name.
4589         (mips_asm_file_end): Likewise; also pass more args to fatal_io_error.
4590
4591 2001-02-05  Nathan Sidwell  <nathan@codesourcery.com>
4592
4593         * invoke.texi (-fdump-class-layout): Document.
4594         (-fdump-translation-unit): Use `=' as filename separator.
4595
4596 2001-02-05  Mark Mitchell  <mark@codesourcery.com>
4597
4598         * Makefile.in (s-mlib): Don't build multilibs if
4599         --disable-multilib.
4600         (DRIVER_DEFINES): Adjust accordingly.
4601         (gcc.o): Likewise.
4602         (protoize.o): Likewise.
4603         (unprotoize.o): Likewise.
4604         * configure.in: Recognize --enable-multilib.
4605
4606 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
4607
4608         * Makefile.in (DRIVER_DEFINES): Fix quoting.
4609
4610         * Makefile.in (site.exp): Always set HAVE_LIBSTDCXX_V3.
4611         * configure.in: Remove --enable-libstdcxx_v3 support.
4612         * configure: Regenerated.
4613
4614 Sun Feb  4 15:52:44 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4615
4616         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP):
4617         Call abort instead of fatal.
4618         (TRAMPOLINE_TEMPLATE): Call internal_error instead of fatal.
4619         * config/dsp16xx/dsp16xx.h (FUNCTION_PROFILER): Likewise.
4620         (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Likewise.
4621         (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Likewise.
4622         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Likewise.
4623         * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Likewise.
4624
4625         * diagnostic.h (set_internal_error_function): Renamed.
4626         * toplev.h (internal_error): Renamed from fatal.
4627         (pfatal_with_name): Deleted.
4628         (fatal_io_error): Now has printf-style arguments.
4629         * diagnostic.c (pfatal_with_name): Deleted.
4630         (fatal_io_error): Rework to have args in printf-style.
4631         (set_internal_error_function): Renamed from set_fatal_function.
4632         (internal_error): Renamed from fatal.
4633         (error_recursion, fancy_abort): Call internal_error instead of fatal.
4634         * dwarf2out.c (get_cfa_from_loc_descr): Likewise.
4635         * emit-rtl.c (gen_realpart, gen_imagpart): Likewise.
4636         * expr.c (check_max_integer_computation_mode, expand_expr): Likewise.
4637         * flow.c (verify_flow_info): Likewise.
4638         * config/arm/arm.c (thumb_unexpanded_epilogue): Likewise.
4639         * config/mips/mips.c (save_restore_insns): Likewise.
4640
4641         * except.c (duplicate_eh_handlers): Call abort instead of fatal.
4642         * flow.c (verify_flow_info): Likewise.
4643         * config/arm/arm.c (thumb_load_double_from_address): Likewise.
4644         * config/avr/avr.c (pttreg_to_str, unique_section): Likewise.
4645         (avr_normalize_condition): Likewise.
4646         * config/c4x/c4x.c (c4x_emit_libcall, c4x_valid_operands): Likewise.
4647         * config/dsp16xx/dsp16xx.c (dsp16xx_reg_class_from_letter): Likewise.
4648         (limit_reload_class, double_reg_to_memory): Likewise.
4649         (print_operand_address, emit_1600_code_shift): Likewise.
4650         (gen_tst_reg, gen_compare_reg): Likewise.
4651         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Likewise.
4652         * config/dsp16xx/dsp16xx.c (dsp16xx_invalid_register_for_compare):
4653         Deleted.
4654         * config/dsp16xx/dsp16xx.md (unnamed cmphi): Call abort instead of it.
4655
4656         * c-parse.in (methoddef): Call fatal_error instead of fatal.
4657         * objc/objc-act.c (build_ivar_chain): Likewise.
4658         * dwarfout.c (dwarfout_init): Call fatal_io_error instead of
4659         pfatal_with_name.
4660         * graph.c (clean_graph_dump_file): Likewise.
4661         * profile.c (init_branch_prob): Likewise.
4662         * objc/objc-act.c (objc_init): Likewise.
4663
4664         * config/arm/arm.c (arm_override_options): Make errors non-fatal.
4665         * config/avr/avr.c (avr_override_options): Likewise.
4666         * config/c4x/c4x.c (c4x_expand_prologue): Likewise.
4667         * config/dsp16xx/dsp16xx.c (function_prologue): Likewise.
4668         * config/h8300/h8300.c (h8300_init_once): Likewise.
4669         * config/mips/mips.c (override_options): Likewise.
4670         * config/i386/i386.c (override_options): Likewise, rework.
4671         * config/m68k/m68k.c (override_options): Likewise.
4672
4673         * config/dsp16xx/dsp16xx.c (print_operand): Call output_operand_lossage
4674         instead of fatal.
4675         * config/mips/mips.c (print_operand): Likewise.
4676         * hash.c (hash_allocate): Don't check for failure returns from
4677         obstack functions that can't fail.
4678         (hash_table_init_n, hash_table_init): Likewise; also now return void.
4679         * hash.h (hash_table_init_n, hash_table_init): Now return void.
4680         * objc/objc_act.c (objc_check_decl): Remove unneeded fatal call.
4681         (get_object_reference): Likewise.
4682
4683 2001-02-04  Nick Clifton  <nickc@redhat.com>
4684
4685         * config/arm/arm.c (all_cores): Add 710T, 720T, 740T, 940T, 9e,
4686         StrongARM1110, 10TDMI, and 1020T.
4687
4688 2001-02-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4689
4690         * mips.h (MULTILIB_ISA_DEFAULT): Don't use #elif.
4691
4692 2001-02-04  Alexandre Oliva  <aoliva@redhat.com>
4693
4694         * config/sh/sh.md (movdf load split): Pass register number to
4695         FP_OR_XD_REGISTER_P.
4696
4697 2001-02-04  Mark Mitchell  <mark@codesourcery.com>
4698
4699         * cppinit.c (BC): New macro.
4700         (builtin_array): Add __GXX_WEAK__.
4701         * cpplib.h (builtin_type): Add BT_WEAK.
4702         * cppmacro.c (builtin_macro): Handle BT_WEAK.
4703         * defaults.h (SUPPORTS_ONE_ONLY): Define.
4704         * varasm.c (SUPPORTS_ONE_ONLY): Do not define.
4705
4706 2001-02-03  Jakub Jelinek  <jakub@redhat.com>
4707
4708         * cppinit.c (append_include_chain): Honor NO_IMPLICIT_EXTERN_C.
4709
4710 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4711
4712         * cpphash.h: Rename _ALIGN POOL_ALIGN.
4713         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
4714
4715 2001-02-03  Neil Booth  <neil@daikokuya.demon.co.uk>
4716
4717         * cpphash.h: Rename ALIGN _ALIGN.
4718         * cpplex.c (new_chunk, _cpp_pool_reserve): Update.
4719
4720 Fri Feb  2 23:15:29 2001  Christopher Faylor <cgf@cygnus.com>
4721
4722         * config/i386/cygwin.h (CPP_SPEC): Reorganize YA to better handle cross
4723         compilation environment.
4724         * config/i386/t-cygwin (T_CPPFLAGS): Define CYGWIN_CROSS_DIR to allow
4725         control over location of cygwin includes and libs.
4726
4727 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
4728
4729         * c4x.h (HARD_REGNO_CALL_PART_CLOBBERED): Fix typo.
4730
4731 2001-02-02  lars brinkhoff  <lars@nocrew.org>
4732
4733         * md.texi (Standard Names): remove reference to spur.md.
4734
4735 2001-02-03  Michael Hayes  <m.hayes@elec.canterbury.ac.nz)
4736
4737         * c4x.h (IS_INT_CALL_SAVED_REG, IS_FLOAT_CALL_SAVED_REG): Define.
4738         (HARD_REGNO_CALL_PART_CLOBBERED): Use IS_FLOAT_CALL_SAVED_REG.
4739         (INITIAL_FRAME_POINTER_OFFSET, INITIAL_ELIMINATION_OFFSET): Likewise.
4740         * c4x.c (c4x_hard_regno_rename_ok): Use IS_XXX_CALL_SAVED_REG.
4741         (c4x_expand_prologue, c4x_expand_epilogue): Likewise.
4742
4743 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4744
4745         * c4x.c (group1_reg_operand, group1_mem_operand, arx_reg_operand,
4746         c4x_arn_reg_operand, c4x_arn_mem_operand): Do not check register
4747         number before reload.
4748         (c4x_adjust_cost): Return zero before reload.
4749         * c4x.md (load_immed_address+1, load_immed_address+2): Do not
4750         split before reload.
4751
4752 2001-02-03  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4753
4754         * c4x.c (c4x_hard_regno_rename_ok): New.
4755         * c4x-protos.h (c4x_hard_regno_rename_ok): New.
4756         * c4x.h (HARD_REGNO_RENAME_OK): Define.
4757
4758 Fri Feb  2 20:03:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4759
4760         * diagnostic.h: Add missing "extern" in all declarations.
4761
4762 2001-02-02  Alex Samuel  <samuel@codesourcery.com>
4763
4764         * Makefile.in (gcc_gxx_target_include_dir): Generate dynamically
4765         as for gcc_gxx_include_dir.
4766
4767 2001-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
4768
4769         * cpp.texi, invoke.texi: Update -Wtraditional documentation.
4770
4771 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
4772
4773         * config/sh/sh.c (output_far_jump): Don't use braf on SH1.  Emit
4774         label before alignment to be used as the braf base address.
4775         * config/sh/sh.md (length): Use longer lengths for SH1 PIC far
4776         branches.
4777         (casesi_jump_2): Require at least TARGET_SH2.
4778
4779         * config/float-sh.h (LDBL_EPSILON, LDBL_MIN, LDBL_MAX): Prevent
4780         truncation to 32-bit doubles on -m3e and -m4-single-only.
4781
4782 2001-02-02  Mark Mitchell  <mark@codesourcery.com>
4783
4784         * gcc.c (init_gcc_specs): New function.  Make -shared-libgcc
4785         the default when building a shared object.
4786         (init_spec): Use it.
4787         * testsuite/lib/g++.exp: Include the directory where libgcc
4788         is located to the LD_LIBRARY_PATH list.
4789         * invoke.texi (-shared-libgcc): Document the cases in which
4790         GCC defaults to using the shared libgcc.
4791
4792 2001-02-02  Alexandre Oliva  <aoliva@redhat.com>
4793
4794         * config/fp-bit.h (MAX_USI_INT, MAX_SI_INT): Don't assume
4795         unsigned is wide enough.
4796         (BITS_PER_SI): New.
4797         * config/fp-bit.c (_fpmul_parts): Don't assume 32-bits SI.
4798         (si_to_float): Likewise.
4799         (float_to_si, float_to_usi): Use BITS_PER_SI.
4800
4801 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
4802
4803         * dwarf2out.c: Added explanation of abbreviations.
4804         (def_cfa_1): Added comments listing DWARF2 instructions.
4805         (cfa_temp_reg): Removed in favor of cfa_temp.
4806         (cfa_temp_value): Removed in favor of cfa_temp.
4807         (cfa_temp): New global variable.
4808         (dwarf2out_frame_debug_expr): Added extensive introductory
4809         comments explaining the function's transformations.  Revised to
4810         use cfa_temp.  Added some rtx checking.  Generalize IOR case.
4811         (dwarf2out_frame_debug): Revised to use cfa_temp.
4812         (output_aranges): Cast as "unsigned" to avoid warning.
4813         * rtl.texi (RTX_FRAME_RELATED_P): Revise entry to emphasize better
4814         explain which instructions must be marked.
4815
4816 2001-02-01  Richard Henderson  <rth@redhat.com>
4817
4818         * local-alloc.c (update_equiv_regs): Copy INSN_CODE to the
4819         new instruction.
4820
4821 2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
4822
4823         * config/sh/crt1.asm (main_k): Modified so that start calls
4824         ___setup_argv_and_call_main.
4825
4826 2001-02-01  Neil Booth  <neil@daikokuya.demon.co.uk>
4827
4828         * cpphash.h (struct cpp_buffer): Move saved_flags from cpp_reader.
4829         * cpplex.c (_cpp_lex_token): New token picks up the saved flags,
4830         and AVOID_LPASTE is cleared on meeting an unescaped newline.
4831         * cppmacro.c (builtin_macro): Set builtin flags here.
4832         (paste_all_tokens): Preserve AVOID_LPASTE on pasted token.
4833         (replace_args): Clarify intent.
4834         (cpp_get_token): Macro expansion tokens get the saved flags.
4835         Update.
4836         * cppmain.c (scan_buffer): Remove now-redundant print.printed
4837         check.
4838
4839 2001-02-01  Jeffrey Oldham  <oldham@codesourcery.com>
4840
4841         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Reverse change of
4842         2001-Jan-29.
4843
4844 Thu Feb  1 07:22:41 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4845
4846         * builtins.c (expand_builtin_alloca): allocate_dynamic_stack_space
4847         returns Pmode pseudo, but we need ptr_mode.
4848         * explow.c (allocate_dynamic_stack_space): Use plus_constant.
4849         Remove bogus conversions; use HOST_WIDE_INT for size.
4850         Don't use TARGET if wrong mode.
4851
4852         * config/i386/i386.c (ix86_compute_frame_size): Allow
4853         stack_alignment_needed to be non-default even if size is zero.
4854
4855 2001-01-31  Alan Modra <alan@linuxcare.com.au>
4856
4857         * pa.c (hppa_init_pic_save): New function.
4858         * pa.h (hppa_init_pic_save): Declare.
4859         * pa.md (call, call_value, sibcall, sibcall_value): Use
4860         the above instead of duplicated code.
4861
4862         * pa.c (hppa_encode_label): Correct size of alloca buffer
4863         so we don't overrun it.  Correct leading `*' case.
4864         * pa.h (STRIP_NAME_ENCODING): Simplify now that we don't
4865         need to handle `*@'.
4866         (FUNCTION_NAME_P): Likewise.
4867
4868 2001-01-31  Richard Henderson  <rth@redhat.com>
4869
4870         * config.gcc (alpha-osf5): Use float-i128.h.
4871
4872         * config/float-i128.h (FLT_EVAL_METHOD, DECIMAL_DIG): Define.
4873         * config/float-i32.h: Likewise.
4874         * config/float-i64.h: Likewise.
4875         * config/float-sh.h: Likewise.
4876         * config/float-sparc.h: Likewise.
4877
4878 2001-01-31  DJ Delorie  <dj@redhat.com>
4879
4880         * expmed.c (extract_bit_field): allow non-integral modes if we
4881         want to extract a whole register from itself.
4882
4883 2001-01-31  Jakub Jelinek  <jakub@redhat.com>
4884
4885         * c-typeck.c (set_init_index): If first is equal to last, assume as
4886         if it was not a range at all.
4887
4888 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
4889
4890         * config/fp-bit.c: Include tm.h.
4891         (float_to_si): Don't assume SImode is 32-bits wide.
4892         (float_to_usi): Likewise.
4893
4894 2001-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
4895
4896         * c-parse.in (structsp): Pedwarn when "enum foo" refers to an
4897         incomplete type.
4898         (typename): Call pending_xref_error after parsing typed_typespecs.
4899         * c-decl.c (lookup_tag): Give error immediately rather than
4900         leaving it pending if the tag of the wrong type is in the same
4901         binding level.
4902         (xref_tag): Don't pedwarn for forward declarations of enum types
4903         here.
4904         * gcc.texi (Actual Bugs): Remove entry for misuse of struct, union
4905         and enum tags.
4906
4907 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
4908
4909         * config/float-sparc.h (LDBL_MAX) [sparc32]: Fix typo.
4910
4911 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4912
4913         * cpplib.c (T_ELIF): Move to STDC89, not that it matters.
4914         (_cpp_handle_directive): Suggest not using #elif with -Wtraditional.
4915
4916 2001-01-31  Neil Booth  <neil@daikokuya.demon.co.uk>
4917
4918         * cpphash.h (struct cpp_reader): New saved_flags.
4919         * cppmacro.c (cpp_get_token): Use saved_flags to remember
4920         to avoid a paste after a pasted token.
4921
4922 2001-01-31  Alexandre Oliva  <aoliva@redhat.com>
4923
4924         * libgcc2.h (Wtype_MAX, Wtype_MIN): Define.
4925         * libgcc2.c (__fixunssfSI, __fixunsdfSI, __fixunsxfSI): Use
4926         Wtype_MIN instead of LONG_MIN.
4927
4928 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
4929
4930         * fixinc/fixincl.tpl: Add 2001 to copyright.  Change name of
4931         README file.
4932         * fixinc/fixincl.x: Regenerated.
4933         * fixinc/inclhack.def (irix_limits_const): New definition to
4934         convert "const" to "__const" in limits.h.
4935
4936 2001-01-30  Jeffrey Oldham  <oldham@codesourcery.com>
4937
4938         * fixinc/genfixes (AG): Fix "autogen4" thinko.
4939
4940 2001-01-30  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
4941
4942         * regmove.c (try_auto_increment): Change REG_DEAD into REG_UNUSED
4943         when register dies in the insn.
4944
4945 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
4946
4947         * diagnostic.c (fatal): Fix word wrap.
4948
4949 2001-01-30  Alexandre Oliva  <aoliva@redhat.com>
4950
4951         * combine.c (try_combine): Fix SUBREG setting for
4952         HOST_BITS_PER_WIDE_INT >= 2 * BITS_PER_WORD.
4953
4954 2001-01-30  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4955
4956         * jump.c (comparison_dominates_p): Don't try to handle UNKNOWN
4957         comparison codes.
4958
4959 2001-01-30  Neil Booth  <neil@daikokuya.demon.co.uk>
4960
4961         * c-decl.c (c_expand_body): Check TYPE_SIZE_UNIT (ret_type)
4962         is not NULL.
4963         * toplev.c (decode_W_option): Update warn_larger_than
4964         unconditionally for each processed switch.
4965
4966 2001-01-30  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4967
4968         * pa.c (pa_init_machine_status): Initialize pic_offset_table_save_rtx
4969         to NULL_RTX.
4970         (hppa_expand_prologue): Delete code to save pic offset table register
4971         in the function prologue.
4972         * pa.h (PIC_OFFSET_TABLE_SAVE_RTX): Correct type in comment.
4973         * pa.md (call, call_value, sibcall, sibcall_value): Save the pic offset
4974         table register at the beginning of the function after the prologue.
4975
4976 2001-01-29  lars brinkhoff  <lars@nocrew.org>
4977
4978         * tm.texi (PUSH_ROUNDING): Remove duplicate lines.
4979
4980 2001-01-29  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4981             Jeff Law <law@redhat.com>
4982
4983         * pa.md (return): Revise comment for trivial return.
4984         (return_internal): Non-trivial return pattern for non-PIC code.
4985         (return_internal_pic): Non-trivial return pattern for PIC code.
4986         It uses the PIC register to ensure it is restored after
4987         function calls.
4988         (epilogue): Generate appropriate return for PIC and non-PIC code.
4989
4990 Mon Jan 29 23:53:14 2001  Christopher Faylor <cgf@cygnus.com>
4991
4992         * config/i386/cygwin.h: Fix -mno-cygwin search path for link.
4993
4994 2001-01-29  DJ Delorie  <dj@redhat.com>
4995
4996         * combine.c (if_then_else_cond): Pass the correct mode to
4997         operand_subword() for constants.
4998
4999 Mon Jan 29 20:38:19 2001  Christopher Faylor <cgf@cygnus.com>
5000
5001         * config/i386/cygwin.h: Add w32api to include search.  Search different
5002         directories in a cross-build environment.
5003
5004 2001-11-29  Tim Josling  <tej@melbpc.org.au>
5005
5006         * tree.h (TYPE_STUB_DECL): Add documentation.
5007
5008 2001-11-29  Laurynas Biveinis  <lauras@softhome.net>
5009
5010         * sdbout.c (sdbout_one_type): Skip types with indeterminate size.
5011         (sdbout_field_types): Likwise.  Fix use of host_integerp.
5012
5013 2001-01-29  Thomas Pfaff  <tpfaff@gmx.net>
5014
5015         * mingw32.h: Override STARTFILE_SPEC and LINK_SPEC declared in
5016         cygwin.h.
5017
5018 2001-01-29  Jeffrey Oldham  <oldham@codesourcery.com>
5019
5020         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Revise definition
5021         to use flag_gnu_linker.
5022
5023 2001-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
5024
5025         * cpplib.c (T_BAD_DIRECTIVE): Remove.
5026         (_cpp_init_stacks): Loop from 0 to N_DIRECTIVES - 1.
5027
5028 2001-01-29  Joseph S. Myers  <jsm28@cam.ac.uk>
5029
5030         * tree.c, tree.h (build_parse_node): Remove; was identical to
5031         build_nt.
5032         * c-lang.c (start_cdtor), objc/objc-act.c
5033         (build_module_descriptor): Use build_nt instead of
5034         build_parse_node.
5035
5036 2001-01-29  Jakub Jelinek  <jakub@redhat.com>
5037
5038         * config/i386/i386.md (addqi_1_lea): Fix mode (QI instead of HI).
5039         (testqi_1, andqi_2): If widening to SImode, make sure CONST_INT does
5040         not have any upper bits set.
5041
5042 2001-01-29  Phil Edwards  <pme@sources.redhat.com>
5043
5044         * COPYING.LIB:  Update to LGPL 2.1 from the FSF.
5045
5046 2001-01-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5047
5048         * stmt.c (estimate_case_costs): Use integer_minus_one_node.
5049
5050         * tree.c (build_common_tree_nodes_2): Set integer_minus_one_node.
5051
5052         * tree.h (tree_index): Add new element TI_INTEGER_MINUS_ONE.
5053         (integer_minus_one_node): Define.
5054
5055 2001-01-28  Alexandre Oliva  <aoliva@redhat.com>
5056
5057         * Makefile.in (bootstrap2-lean): Fix typo.
5058
5059 2001-01-28  Neil Booth  <neil@daikokuya.demon.co.uk>
5060
5061         * cpphash.c (_cpp_cleanup_hashtable, _cpp_lookup_with_hash)
5062         : Don't set fe_value.
5063         * cpplib.h (AVOID_LPASTE): New flag.
5064         (struct cpp_hashnode): Remove fe_value.
5065         * cpplex.c (cpp_avoid_paste): Don't paste '.' with a number.
5066         * cppmacro.c (builtin_macro): Don't set flags here.
5067         (replace_args): Set AVOID_LPASTE flag on first token of an
5068         argument, and the token following it.
5069         (cpp_get_token): Set AVOID_LPASTE flag on first token of a
5070         macro expansion, and on the token following it.  Do it for
5071         builtins too.
5072         * cppmain.c (scan_buffer): Avoid pasting only flagged tokens.
5073
5074 2001-01-27  Richard Henderson  <rth@redhat.com>
5075
5076         * config/alpha/t-ieee: Remove multilibbing.
5077         (TARGET_LIBGCC2_CFLAGS): Add -mieee.
5078
5079 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5080
5081         * configure.in: Arrange to include defaults.h in [ht]config.h/tm.h.
5082
5083         * Makefile.in: Remove all dependencies on defaults.h.
5084         * builtins.c: Don't include defaults.h.
5085         * c-common.c: Likewise.
5086         * c-decl.c: Likewise.
5087         * c-pragma.c: Likewise.
5088         * c-typeck.c: Likewise.
5089         * combine.c: Likewise.
5090         * i386.c: Likewise.
5091         * frame-ia64.c: Likewise.
5092         * cppexp.c: Likewise.
5093         * crtstuff.c: Likewise.
5094         * dbxout.c: Likewise.
5095         * dwarf2out.c: Likewise.
5096         * dwarfout.c: Likewise.
5097         * emit-rtl.c: Likewise.
5098         * except.c: Likewise.
5099         * expr.c: Likewise.
5100         * final.c: Likewise.
5101         * frame-dwarf2.c: Likewise.
5102         * libgcc2.c: Likewise.
5103         * optabs.c: Likewise.
5104         * profile.c: Likewise.
5105         * sdbout.c: Likewise.
5106         * toplev.c: Likewise.
5107         * tradcif.y: Likewise.
5108         * tree.c: Likewise.
5109         * varasm.c: Likewise.
5110
5111 2001-01-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5112
5113         * builtins.c (expand_builtin_fputs): Use size_one_node when
5114         transforming into fwrite.
5115
5116 2001-01-27  Joseph S. Myers  <jsm28@cam.ac.uk>
5117
5118         * extend.texi (Attribute Syntax): New section.
5119
5120 2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
5121
5122         * fixproto: Correctly install synthesised unistd.h and stdlib.h when
5123         they didn't need fixing.
5124
5125 2001-01-27  Janis Johnson <janis@us.ibm.com>
5126
5127         * config.gcc (i[34567]86-sequent-{ptx4*,sysv4*}): Use usegas.h
5128         if appropriate.
5129         * config/ptx4.h: Several fixes to build on DYNIX/ptx v4.[456], and
5130         to remove macro definitions that are duplicated from elfos.h.
5131
5132 2001-01-27  Richard Henderson  <rth@redhat.com>
5133
5134         * config/i386/sco5gas.h: Move ...
5135         * config/usegas.h: ... here.
5136         * config.gcc (i[34567]86-*-sco3.2v5) [tm_file]: Update.
5137
5138 2001-01-27  Jakub Jelinek  <jakub@redhat.com>
5139
5140         * c-typeck.c (struct constructor_stack): Add range_stack member.
5141         (really_start_incremental_init): Clear it.
5142         (push_init_level): Save constructor_range_stack and clear it if
5143         pushing explicit braces.
5144         (pop_init_level): abort if constructor_range_stack is non-zero at
5145         explicit closing brace.  Restore saved constructor_range_stack if
5146         not implicit.
5147
5148 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
5149
5150         * expr.c (emit_move_insn): Add REG_EQUAL note when constant loaded
5151         into register was forced into memory.
5152
5153 2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
5154
5155         * Makefile.in: Remove uses of + before $(MAKE).
5156
5157 2001-01-26  Richard Henderson  <rth@redhat.com>
5158
5159         * stmt.c (cost_table): Remove.
5160         (COST_TABLE, cost_table_initialized): New.
5161         (estimate_case_costs): Use the later instead of the former.
5162         (balance_case_nodes): Likewise.
5163
5164 2001-01-26  Richard Henderson  <rth@redhat.com>
5165
5166         * alias.c (objects_must_conflict_p): Read-only slots may not
5167         conflict despite having the same type.
5168
5169 2001-01-27  Michael Hayes  <mhayes@redhat.com>
5170
5171         * loop.c (loop_giv_reduce_benefit): Copy mode size into
5172         int variable.
5173         (check_ext_dependant_givs): Initialise u_start_val and
5174         u_end_val.
5175         (load_mems): Make last_max_reg unsigned.
5176         (try_swap_copy_prop): Use INSN_P and initialise set.
5177
5178 Fri Jan 26 23:22:58 2001  Denis Chertykov  <denisc@overta.ru>
5179
5180         * README.AVR : Removed.
5181
5182 Fri Jan 26 11:37:26 2001  Jeffrey A Law  (law@cygnus.com)
5183
5184         * pa-64.h (text_section): Remove declaration.
5185
5186         * pa.md (return_internal): Remove mode on PIC register use.
5187
5188 2001-01-25  lars brinkhoff  <lars@nocrew.org>
5189
5190         * tm.texi (DATA_ALIGNMENT, LOCAL_ALIGNMENT, ASM_OPEN_PAREN,
5191         ASM_CLOSE_PAREN): fix typos.
5192
5193 2001-01-25  Mark Mitchell  <mark@codesourcery.com>
5194
5195         * acconfig.h: Define `const' to the empty string if neither
5196         __STDC__ nor __cplusplus is defined.
5197         * config.in: Regenerated.
5198
5199 2001-01-25  David Edelsohn  <edelsohn@gnu.org>
5200
5201         * config.gcc (rs6000-ibm-aix[5-9]*): Change to aix51.h.
5202         * collect2.c (main): Delete importf.  Add ".obj" file extension.
5203         (GCC_CHECK_HDR): Handle AIX V5 new magic number.
5204         (aix_std_libs): Add additional AIX libraries to skip.
5205         * config/rs6000/aix.h (MY_ISCOFF): Add AIX V5 new magic number.
5206         * config/rs6000/aix51.h: New file.
5207
5208 2001-01-25  Michael Hayes  <mhayes@redhat.com>
5209
5210         * loop.c (loop_call_insn_emit_before, loop_call_insn_hoist): New.
5211         (loop_insn_emit_before): No longer static.
5212         (move_movables): Replace emit_insn_after with loop_insn_emit_after.
5213         (loop_givs_rescan, load_mems): Likewise.
5214         (check_dbra_loop): Replace emit_insn_before with loop_insn_emit_before.
5215         (maybe_eliminate_biv_1):
5216         (move_movables): Replace emit_call_insn_before with
5217         loop_call_insn_hoist.
5218         * loop.h (loop_insn_emit_before): Add.
5219         * unroll.c (copy_loop_body): Replace emit_insn_before with
5220         loop_insn_emit_before.
5221
5222 2001-01-25  Neil Booth  <neil@daikokuya.demon.co.uk>
5223
5224         * diagnostic.c (fatal): Request preprocessed source.
5225
5226 Thu Jan 25 02:01:16 2001  J"orn Rennecke <amylaar@redhat.com>
5227
5228         * c-decl.c (duplicate_decls): If different_binding_level is nonzero,
5229         olddecl has argument types and newdecl has none, use the argument
5230         types from olddecl.
5231
5232 2001-01-24  Ulrich Drepper  <drepper@redhat.com>
5233
5234         * dwarf2out.c (prefix_of): New function.  Determine longest common
5235         prefix of the two arguments.  The units are whole path components.
5236         (output_file_names): When adding a new directory find the one entry
5237         with the longest common prefix already in the list.  Artificially
5238         generate entry if there is none for this prefix.
5239         Fix test to check whether the zeroth directory entry is used.
5240
5241 Wed Jan 24 23:51:55 2001  J"orn Rennecke <amylaar@redhat.com>
5242
5243         * reload1.c (reload_reg_free_for_value_p): New parameter start_regno.
5244         Changed all callers.  Take it into account when deciding if a
5245         previously loaded value matches.
5246
5247 2001-01-24  Richard Henderson  <rth@redhat.com>
5248
5249         * reload.c (find_reloads_subreg_address): Fail the substitution
5250         if the resulting address is insufficiently aligned.
5251
5252 2001-01-24  DJ Delorie  <dj@redhat.com>
5253
5254         * combine.c (combine_simplify_rtx): If the modes are all VOIDmode,
5255         check the original operand's mode also.
5256         * simplify-rtx.c (simplify_ternary_operation): Ditto.
5257
5258 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5259
5260         * c-parse.in (cast_expr): Move compound literals from here ...
5261         (primary): ... to here.  Use standard terminology "compound
5262         literal" instead of "constructor expression".
5263
5264 2001-01-24  Joseph S. Myers  <jsm28@cam.ac.uk>
5265
5266         * gcc.1, cpp.1: Regenerate.
5267
5268 2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
5269
5270         * calls.c (emit_library_call_value_1): Memory slot for
5271         pass-by-reference argument should have the mode of the argument,
5272         not of the pointer to it.
5273
5274 2001-01-24  Tom Tromey  <tromey@redhat.com>
5275
5276         * gcc.texi (G++ and GCC): Mention gcj manual.
5277         (Standards): Link to section of manual mentioning gcj/Java
5278         compatibility.
5279
5280 2001-01-24  Jakub Jelinek  <jakub@redhat.com>
5281
5282         * cppfiles.c (_cpp_read_file): Add to dependencies if requested.
5283         * cppinit.c (cpp_start_read): Remove deps_add_dep call.
5284         * tradcpp.c (main): Add -imacros or -include'd dependencies
5285         for -M*.
5286         * cpp.texi (-M, -MM): Document -M -include behaviour.
5287
5288 2001-01-24  Roger Collins <roger@ProProject.com>
5289
5290         * config/i386/xm-i386.h: Make __i386__ a boolean macro.
5291
5292 2001-01-24  Will Cohen  <wcohen@redhat.com>
5293
5294         * config/mips/abi64.h (RETURN_IN_MEMORY): Always take into account
5295         whether registers are 32 bits or 64 bits in size.
5296
5297 2001-01-24  Ben Elliston  <bje@redhat.com>
5298
5299         * config/m32r/m32r.h (PREDICATE_CODES): Remove m32r_not_same_reg.
5300
5301 2001-01-24  Richard Henderson  <rth@redhat.com>
5302
5303         * config/alpha/alpha.md (builtin_longjmp_internal): New.
5304         (builtin_longjmp): Use it instead of emit_indirect_jump.
5305
5306 2001-01-23  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5307
5308         * bb-reorder.c (make_reorder_chain_1): Handle case where
5309         jump edge goes to the same block as the fallthru edge.
5310
5311 2001-01-23  Jim Wilson  <wilson@redhat.com>
5312
5313         * dwarf2out.c (dwarf2out_line): Make last_file_num be unsigned.
5314         * frame.h (__ia64_personality_v1): Add prototype.
5315         * libgcc2.c (ia64_throw_helper): Change personality declaration to
5316         prototype form.  Add void * cast to first argument to personality
5317         call.
5318         * real.c (e113toe): Surround with INTEL_EXTENDED_IEEE_FORMAT ifdefs.
5319         (asctoe113): Likewise.
5320         * config/ia64/frame-ia64.c: Include eh-common.h.
5321         * config/ia64/ia64-protos.h (sdata_section, sbbs_section): Add
5322         prototypes.
5323         * config/ia64/ia64.c (emit_insn_group_barriers): Add ATTRIBUTE_UNUSED
5324         to dump parameter.
5325         (itanium_split_issue): Add prototype.
5326         (gen_nop_type): Ifdef out.
5327         (find_best_packet): Initialize best_packet.
5328         (ia64_encode_section_info): New local string.  Use for ggc_alloc_string
5329         result.
5330         * config/ia64/ia64.h (ASM_OUTPUT_LONG_DOUBLE): Use 0L not 0.
5331         * config/ia64/ia64.md (bsp_value): Add explicit stop bit at start.
5332         (flushrs): Add explicit stop bit at end.
5333         * config/ia64/lib1funcs.asm (__ia64_restore_stack_nonlocal): Change
5334         trailing \ to >.
5335
5336 2001-01-23  Chris Demetriou  <cgd@broadcom.com>
5337
5338         * libgcc-std.ver (GCC_3.0): Add __terminate_func_set to list
5339         of EH symbols.
5340         * libgcc2.c (__terminate_func): Make variable static.
5341         (__terminate_set_func): New function to set __terminate_func.
5342         * libgcc2.h (__terminate_func_ptr): New typedef.
5343         (__terminate_set_func): New function.
5344
5345 2001-01-23  Richard Henderson  <rth@redhat.com>
5346
5347         * flow.c (init_propagate_block_info): Don't consider unchanging
5348         memories for dead frame store elimination.
5349
5350 2001-01-23  Richard Henderson  <rth@redhat.com>
5351
5352         * varasm.c (UNIQUE_SECTION): Move default implementation ...
5353         * defaults.h: ... here.
5354
5355 2001-01-24  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5356
5357         * c4x.h (TARGET_LOAD_DIRECT_MEMS): Define.
5358
5359 2001-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
5360
5361         * c-lex.c (lex_charconst): Fix typo: s/p/str.
5362
5363 2001-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5364
5365         * rs6000.h (rs6000_return_addr): Move prototype from here...
5366         * rs6000-protos.h (rs6000_return_addr): ...to here.
5367         (rs6000_init_expanders): Delete prototype.
5368
5369 2001-01-23  Nick Clifton  <nickc@redhat.com>
5370
5371         * invoke.texi: Replace , with \, inside @gccoptlist macros.
5372         (Spec Files): Document %B and %j and %. and %v3 and %M and
5373         %{S*&T} spec switches.
5374
5375 2001-01-24  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5376
5377         * c4x.c (c4x_r11_set_p): Calculate rtx code correctly.
5378
5379 2001-01-23  Chris Demetriou  <cgd@sibyte.com>
5380             Neil Booth  <neil@daikokuya.demon.co.uk>
5381
5382         * cpperror.c: Merge handlers of PEDWARN and WARNING.
5383         Have -Werror make pedantic warnings errors, like the
5384         rest of GCC.
5385
5386 2001-01-23  Phil Edwards  <pme@sources.redhat.com>
5387
5388         * c-tree.texi (IDENTIFIER_LENGTH):  Fix typo.
5389
5390 2001-01-23  Jakub Jelinek  <jakub@redhat.com>
5391
5392         * integrate.h (struct inline_remap): Add compare_src, compare_mode.
5393         * integrate.c (expand_inline_function): Initialize them.
5394         (subst_constants): If changing COMPARE so that both its arguments
5395         will be VOIDmode and the comparison mode will be lost, note
5396         compare_mode.  Use the recorded compare_mode to optimize
5397         IF_THEN_ELSE.
5398
5399 2001-01-23  Jason Merrill  <jason@redhat.com>
5400
5401         * dwarf2out.c (new_die): Use xcalloc.
5402         (output_die): Abort rather than emit a local reference to offset 0.
5403
5404 2001-01-17  Andrew Haley  <aph@redhat.com>
5405
5406         * libgcc2.c (get_reg_addr): Don't abort if we haven't got a copy
5407         of a saved register; return NULL instead.
5408         (copy_reg): Take a pointer to a source register rather than a
5409         frame_state.
5410         (next_stack_level): Remember the address in the stack frame of all
5411         saved registers.
5412         Use the saved register pointer array as the source of the CFA.
5413         (throw_helper): Rewrite.  Unwind once rather than twice and keep
5414         track of saved registers as we go.
5415
5416 2001-01-23  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5417
5418         * c4x-protos.h (c4x_legitimize_reload_address): Remove.
5419         * c4x.c (c4x_legitimize_reload_address): Remove.
5420         * c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Rewrite to generate correct
5421         reload address for ldp(k) insn.
5422
5423 Mon Jan 22 20:53:47 2001  Jeffrey A Law  (law@cygnus.com)
5424
5425         * pa.md (return_internal): Add a USE of the PIC register to ensure
5426         it is restored after each call.
5427         (return expander): Corresponding changes.
5428
5429 2001-01-22  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5430
5431         * rs6000.h (INIT_EXPANDERS): Delete.
5432         (RETURN_ADDR_RTX): Call rs6000_return_addr().
5433         * rs6000.c (rs6000_override_options): Call *_machine_status from
5434         here...
5435         (rs6000_init_expanders): ...instead of here. Delete.
5436         (rs6000_mark_machine_status): New function.
5437         (rs6000_init_machine_status): Use xcalloc.
5438         (rs6000_return_addr): Generate RTX for the return address.
5439         (rs6000_ra_ever_killed): New, check if LR was ever destroyed.
5440         (rs6000_stack_info): Use it.
5441
5442 2001-01-22  Thomas Pfaff  <tpfaff@gmx.net>
5443
5444         * gthr-win32.h: Include errno.h to get a declaration for
5445         EINVAL and _mingw.h if the target is mingw32.
5446
5447 2001-01-22  Andres Felipe Vargas <avargas@teletulua.com.co>
5448
5449         * cpp.texi: Correct typos.
5450
5451 Mon Jan 22 13:59:09 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5452
5453         * explow.c (probe_stack_range): Ensure value passed to
5454         stack_check_libfunc is ptr_mode, not Pmode.
5455
5456 Mon Jan 22 16:53:06 2001  J"orn Rennecke <amylaar@redhat.com>
5457
5458         * recog.c (validate_replace_rtx_1): In ZERO_EXTEND / SIGN_EXTEND
5459         case, don't use operand_subword to calculate a SUBREG that is
5460         wider than a word.
5461
5462         * rtl.texi: Comparisons yield 0 or STORE_FLAG_VALUE.
5463
5464 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5465
5466         * c4x.c (c4x_valid_rptb_p, c4x_label_ref_used_p): New functions.
5467         (c4x_rptb_insert): Call c4x_valid_rptb_p to check if repeat block is
5468         valid.  If not replace it by equivalent insns.
5469
5470 2001-01-22 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
5471
5472         * c4x.c (c4x_check_legit_addr): Only check CONST.  Not if CONST
5473         contains SYMBOL_REF, LABEL_REF and CONST_INT.
5474         (c4x_U_constraint, symbolic_address_operand): Likewise.
5475         (c4x_immed_float_constant): Do not check if CONST_DOUBLE is in
5476         memory.
5477         (c4x_r11_set_p, c4x_check_laj_p): New functions.
5478         * c4x-protos.h (c4x_check_laj_p): Add prototype.
5479         * c4x.md (in_annul_slot_3): Do not allow auto-increment in last
5480         anulling slot because of silicon bug.
5481         (laj, lajv): Call c4x_check_laj_p to check for silicon bug.
5482
5483 2001-01-22  Alan Modra <alan@linuxcare.com.au>
5484
5485         * cppexp.c (parse_charconst):  Change `mask' type to agree
5486         with parse_escape.
5487
5488 2001-01-21  Richard Henderson  <rth@redhat.com>
5489
5490         * config/i386/i386.c (ix86_asm_file_end): Disable putting
5491         pic_label_name in a linkonce section.
5492
5493 2001-01-17  Philipp Thomas  <pthomas@suse.de>
5494
5495         * aclocal.m4 (AM_WITH_NLS): Add -lintl to LIBS if gettext was
5496         found in libintl.
5497         * configure: Regenerate.
5498
5499 Sun Jan 21 02:38:56 2001  J"orn Rennecke <amylaar@redhat.com>
5500
5501         * expmed.c (synth_mult, expand_mult_highpart, expand_divmod): Guard
5502         uses of shift_cost, shiftadd_cost and shiftsub_cost with bound checks.
5503
5504 Sun Jan 21 09:44:17 2001  Denis Chertykov  <denisc@overta.ru>
5505
5506         * config/avr/avr.c (ret_cond_branch): New argument (reverse) added.
5507         If REVERSE nonzero then condition code in X must be reversed.
5508         (encode_section_info): Optimise if/else.
5509         (avr_function_value): Fix formatting.
5510
5511         * config/avr/avr.md (branch): Call to ret_cond_branch changed.
5512         (difficult_branch): Likewise.
5513         (rvbranch): Likewise.
5514         (difficult_rvbranch): Likewise.
5515
5516         * config/avr/avr-protos.h (ret_cond_branch): Prototype changed.
5517
5518         * config/avr/libgcc.S: Fix comment.
5519
5520 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
5521
5522         * sdbout.c (PUT_SDB_DEF): Fix after last bogus change.
5523
5524 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
5525
5526         * cppinit.c (INO_T_EQ): Don't use #elif, fix formatting.
5527
5528 2001-01-20  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
5529
5530         * aclocal.m4 (gcc_AC_FUNC_STRSTR): New macro.
5531         * configure.in (gcc_AC_FUNC_STRSTR): Add invokation.
5532         * configure, config.in: Regenerate.
5533         * Makefile.in (STRSTR, HOST_STRSTR, USE_HOST_STRSTR): New variables.
5534         (LIBDEPS, HOST_LIBDEPS, LIBS, HOST_LIBS): Add strstr handling.
5535         (strstr.o, $(HOST_PREFIX_1)strstr.o): New rules.
5536         (doprint.o): New rule.
5537
5538 2001-01-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5539
5540         * c-typeck.c (digest_init): Handle boolean types as scalars.
5541
5542 Sat Jan 20 12:46:57 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5543
5544         * stmt.c (expand_return): Don't return anything if size is zero.
5545         Delete redundant assignment to BYTES.
5546         * expr.c (move_block_from_reg): Do nothing if NREGS is zero.
5547
5548 2001-01-20  Marek Michalkiewicz  <marekm@linux.org.pl>
5549
5550         * config/avr/avr.h (INIT_TARGET_OPTABS): Remove most of it, was
5551         the same as the default library function names.
5552         * config/avr/avr.md: Document special characters after '%'.
5553         (mulqi3, mulhi3, mulsi3): Call libgcc.S functions ourselves,
5554         knowing which of the call-used registers are really clobbered.
5555         (divmodqi4, udivmodqi4, divmodhi4, udivmodhi4, divmodsi4, udivmodsi4):
5556         New.  Both quotient and remainder from one libgcc.S call.
5557         * config/avr/libgcc.S: Optimize mul/divmod for the new insns above,
5558         clobber as few registers as possible.
5559         * config/avr/t-avr (LIB1ASMFUNCS): Adjust for the above changes.
5560
5561 2001-01-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5562
5563         * cppmacro.c (funlike_invocation_p): Don't move back up to the
5564         context of the top of the stack.
5565
5566 2001-01-20  Jakub Jelinek  <jakub@redhat.com>
5567
5568         * function.c (fixup_var_refs): Move CALL_PLACEHOLDER handling...
5569         (fixup_var_refs_insns): ...here.
5570
5571 2001-01-20  Zack Weinberg  <zack@wolery.stanford.edu>
5572
5573         * function.c (fixup_var_refs_insns): Break up into
5574         fixup_var_refs_insn [body of loop], fixup_var_refs_insns
5575         [loop over entire insn list], and fixup_var_refs_insns_with_hash
5576         [loop over hash table entries].
5577         (fixup_var_refs): Adjust calls to fixup_var_refs_insns and/or
5578         fixup_var_refs_insns_with_hash, to match above changes.
5579
5580 2001-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5581
5582         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Add MAKEOVERRIDES variable.
5583         (libgcc.a): Likewise.
5584         (stmp-multilib): Likewise.
5585         (STAGE2_FLAGS_TO_PASS): Likewise.
5586
5587 2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
5588
5589         * config/sh/sh.c (prepare_move_operands) [PIC]: Use operands[0] as
5590         temporary if no_new_pseudos.
5591
5592 2001-01-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5593
5594         * cppinternals.texi: Update.
5595
5596 2001-01-19  Richard Earnshaw  <rearnsha@arm.com>
5597
5598         * arm.c (arm_init_builtins): Re-enable builtins.
5599
5600 Fri Jan 19 13:02:56 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5601
5602         * rtl.texi (SET, CLOBBER): Document PARALLEL as SET_DEST possibility.
5603         * flow.c (mark_set_1, case PARALLEL): Don't require BLKmode, allow
5604         element to be null, and always expect an EXPR_LIST.
5605         * rtlanal.c (reg_overlap_mentioned_p, note_stores): Likewise.
5606         * sched-deps.c (sched_analyze_1): Likewise.
5607         * sched-rgn.c (check_live_1, update_live_1): Likewise.
5608
5609         * regclass.c (max_set_parallel): New variable.
5610         (reg_scan): Take it into account in computation of max_parallel.
5611         (reg_scan_mark_refs, case SET): Compute it.
5612
5613         * alias.c (rtx_equal_for_memref_p, case ADDRESSOF): Don't assume
5614         args are REG.
5615         * expr.c (store_constructor): Don't look at MEM_ALIAS_SET unless MEM.
5616         * function.c (assign_parms): Use INTVAL for a CONST_INT.
5617
5618 2001-01-19  Jason Merrill  <jason@redhat.com>
5619
5620         * dwarf2out.c (gen_subprogram_die): Don't reuse the in-class decl
5621         for the abstract instance of an inline function.
5622
5623 Fri Jan 19 14:31:35 2001  Alexandre Oliva  <aoliva@redhat.com>
5624                           J"orn Rennecke <amylaar@redhat.com>
5625
5626         * reload1.c (move2add_note_store): Treat all registers directly or
5627         indirectly derived from a base register as members of the same set
5628         of values.
5629         (reload_cse_move2add): Adjust accordingly.  Take mode and offset
5630         of base register into account.
5631
5632 Fri Jan 19 09:18:42 2001  J"orn Rennecke <amylaar@redhat.com>
5633
5634         * alias.c (find_base_value): Recognize TRUNCATE.
5635         (record_set): In PLUS case, invalidate if other summand is also a
5636         base value.
5637
5638 Thu Jan 18 06:43:04 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5639
5640         * flow.c (mark_set_1, case PARALLEL): New case; rework to allow
5641         entry to be EXPR_LIST.
5642         * rtlanal.c (reg_overlap_mentioned_p): Allow PARALLEL in SET to
5643         be an EXPR_LIST (but not null, which other code doesn't allow).
5644         (note_stores): Properly handle PARALLEL in SET.
5645         Recursively call for top-level PARALLEL.
5646         * sched-deps.c (sched_analyze_1): Handle EXPR_LIST in PARALLEL in SET.
5647         * sched-rgn.c (check_live_1, update_live_1): Likewise.
5648
5649         * config.gcc (rs6000-ibm-aix*, rs6000-bull-bosx): Add rs6000/aix.h.
5650
5651 2001-01-18  Neil Booth  <neil@daikokuya.demon.co.uk>
5652
5653         * cpplib.c (_cpp_handle_directive): Use buffer->was_skipping,
5654         not pfile->skipping (== 0).
5655
5656 2001-01-17  Nick Clifton  <nickc@redhat.com>
5657
5658         * config/rs6000/rs6000.c: Add prototypes for {init|free}_
5659         machine_status.
5660
5661 2001-01-17  Jim Wilson  <wilson@redhat.com>
5662
5663         * invoke.texi (IA-64 options): Improve.
5664
5665 2001-01-17  Tom Tromey  <tromey@redhat.com>
5666
5667         * invoke.texi (Optimize Options): Use `{}' to around @samp
5668         argument.
5669
5670 2001-01-17  Aldy Hernandez  <aldyh@redhat.com>
5671
5672         * invoke.texi (-fno-guess-branch-probability): New option.
5673
5674 Wed Jan 17 13:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5675
5676         * combine.c (try_combine): Don't set i3_subst_into_i2 for
5677         case of making new double-word constant.
5678         Revert last change: instead just test i3_subst_into_i2.
5679
5680 2001-01-17  Jakub Jelinek  <jakub@redhat.com>
5681
5682         * config/i386/i386.md (cmpqi_minus_1): Use {b} for QImode operation.
5683         Use q constraints instead of r.
5684
5685 Tue Jan 16 22:23:04 2001  Alan Modra (alan@linuxcare.com.au)
5686
5687         * config/pa/pa.h (PIC_OFFSET_TABLE_REGNUM_SAVED): Remove.
5688         (machine_function): Define.
5689         (PIC_OFFSET_TABLE_SAVE_RTX) : Define.
5690         * config/pa/pa.c (pa_init_machine_status, pa_mark_machine_status,
5691         pa_free_machine_status): New functions.
5692         (override_options): Set {init,mark,free}_machine_status to above.
5693         (hppa_expand_prologue): Use PIC_OFFSET_TABLE_SAVE_RTX instead of
5694         PIC_OFFSET_TABLE_REGNUM_SAVED.
5695         * config/pa/pa.md: Use PIC_OFFSET_TABLE_SAVE_RTX instead of
5696         PIC_OFFSET_TABLE_REGNUM_SAVED throughout.
5697         * config/pa/pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Remove
5698         references to PIC_OFFSET_TABLE_REGNUM_SAVED.
5699         * config/pa/pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
5700
5701 2001-01-15  DJ Delorie  <dj@redhat.com>
5702
5703         * Makefile.in (gcov.1): Protect against texi2pod/pod2man failing.
5704         (cpp.1): Ditto.
5705         (gcc.1): Ditto.
5706
5707 Tue Jan 16 17:20:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5708
5709         * flow.c (propagate_on_insn): Make trying to delete a prologue
5710         or epilogue insn an ICE, not a warning.  Allow doing this if
5711         the current function returns with stack pointer depressed.
5712
5713         * combine.c (try_combine): If i3_subst_into_i2, properly check for
5714         I3 having more than one SET.
5715
5716 2001-01-16  Jim Wilson  <wilson@redhat.com>
5717
5718         * invoke.texi: Document IA-64 options.
5719
5720         * config/ia64/ia64.c (ia64_print_operand_address): Delete 'B' support.
5721         (fixup_errata): Delete TARGET_A_STEP use.
5722         * config/ia64/ia64.h (MASK_A_STEP, TARGET_A_STEP): Delete.
5723         (TARGET_SWITCHES): Delete -ma-step option.
5724         * config/ia64/ia64.md (all FP patterns): Delete %B0.
5725         (movqicc_astep, movqi_internal_astep, movhicc_astep,
5726         movhi_internal_astep, movsicc_astep, movsi_internal_astep, movdi+1,
5727         movdi_internal_astep, movsfcc_astep, movsf_internal_astep,
5728         movdfcc_astep, movdf_internal_astep, movtfcc_astep,
5729         movtf_internal_astep, cmovdi_internal_astep, cmovsi_internal_astep):
5730         Delete.
5731         (movqi_internal, movhi_internal, movsi_internal, movdi_internal,
5732         movsf_internal, movdf_internal, movtf_internal, cmovdi_internal,
5733         cmovsi_internal): Delete ! TARGET_A_STEP check.
5734
5735 2001-01-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5736
5737         * gcc.texi (Bug Lists): Do not mention newsgroups nor the
5738         possibility to report bugs via postal mail. Change a URL and
5739         merge in a nearly duplicate statement...
5740         (Bug Reporting): ...from here.
5741         (Service): Refer to the Bug Reporting section instead of
5742         duplicating an URL.
5743         (Contributing): Remove trivial explanations concerning snapshots.
5744
5745 2001-01-16  Alan Modra <alan@linuxcare.com.au>
5746
5747         * cppmain.c (general_init): Don't use ANSI prototype.
5748
5749 2001-01-16  Tom Tromey  <tromey@redhat.com>
5750
5751         * gcc.c (cpp_options): Added `*' to specs for -MF, -MQ, and -MT.
5752
5753 2001-01-16  Richard Henderson  <rth@redhat.com>
5754
5755         * config/i386/i386.h: Fix comment typo.
5756         * config/i386/i386.md (shift+compare pattern names): s/cmpno/cmp/
5757         (ashr+compare patterns): Match CCGOCmode not CCNOmode.
5758
5759 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
5760
5761         * gcc.c:  Revert previous -fsyntax-only-related change; move
5762         to cp/g++spec.c.
5763
5764 2001-01-16  Jakub Jelinek  <jakub@redhat.com>
5765
5766         * config/i386/i386.c (fcmov_comparison_operator): Only initialize
5767         inmode after checking GET_CODE (op).
5768
5769 2001-01-16  Richard Henderson  <rth@redhat.com>
5770
5771         * flow.c (struct propagate_block_info): Add mem_set_list_len.
5772         (MAX_MEM_SET_LIST_LEN): New.
5773         (propagate_one_insn): Update mem_set_list_len.
5774         (invalidate_mems_from_autoinc): Likewise.
5775         (invalidate_mems_from_set): Likewise.
5776         (mark_used_regs): Likewise.
5777         (init_propagate_block_info): Likewise.  Stop collecting memories
5778         when we reach MAX_MEM_SET_LIST_LEN.
5779         (mark_set_1): Likewise.
5780
5781 2001-01-16  Richard Henderson  <rth@redhat.com>
5782
5783         * unroll.c (precondition_loop_p): Fail if no iteration
5784         variable found.
5785
5786 2001-01-16  Phil Edwards  <pme@sources.redhat.com>
5787
5788         * gcc.c:  When -fsyntax-only is given, do not complain about
5789         unused libraries.
5790
5791 2001-01-15  Richard Henderson  <rth@redhat.com>
5792
5793         * config/i386/i386.c (asm_output_function_prefix): Remove.
5794         (ix86_asm_file_end): New.
5795         (load_pic_register): Generate pic_label_name into a
5796         staticly allocated buffer.
5797         * config/i386/i386-protos.h: Update.
5798         * config/i386/i386.h (ASM_OUTPUT_FUNCTION_PREFIX): Remove.
5799         (ASM_FILE_END): New.
5800         * config/i386/i386afe.h: New file.
5801         * config.gcc (i?86-*-elf) [tm_file]: Use it.
5802         (i?86-*-{freebsd,linux*,moss*}): Likewise.
5803         * config/elfos.h (ASM_FILE_END): Undef before redefinition.
5804         * config/i386/cygwin.h (ASM_FILE_END): Likewise.
5805         * config/i386/osfrose.h (ASM_FILE_END): Invoke ix86_asm_file_end.
5806         * config/i386/sco5.h (ASM_FILE_END): Likewise.
5807         * config/i386/winnt.c (i386_pe_asm_file_end): Likewise.
5808
5809 2001-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
5810
5811         * Makefile.in (install-man): Remove explicit dependency on
5812         $(srcdir)/gcc.1.
5813
5814         * configure.in, configure: Revert previous patch requiring perl
5815         5.6.0.
5816
5817 2001-01-12  Aldy Hernandez  <aldyh@redhat.com>
5818
5819         * toplev.c (flag_guess_branch_prob): New.
5820         (f_options): Add guess-branch-probability option.
5821         (rest_of_decl_compilation): Only estimate branch probability if
5822         flag set.
5823         (main): set flag_guess_branch_prob.
5824
5825         * flags.h (flag_guess_branch_prob): New.
5826
5827 2001-01-15  DJ Delorie  <dj@redhat.com>
5828
5829         * gcc.texi (Makefile): Add documentation for Makefile targets.
5830
5831 2001-01-15  Philip Blundell  <philb@gnu.org>
5832
5833         * config/arm/arm.c (arm_finalize_pic): New arg "prologue".
5834         (is_pic): Delete.
5835         * config/arm/arm-protos.h (arm_finalize_pic): Update prototype.
5836         (is_pic): Delete declaration.
5837         * config/arm/arm.h (FINALIZE_PIC): Update call to arm_finalize_pic.
5838         (OUTPUT_INT_ADDR_CONST): Remove special handling of PIC address.
5839         * config/arm/arm.md (builtin_setjmp_receiver): New.
5840
5841 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
5842
5843         * arm.c (use_return_insn): Don't try to determine the function type
5844         until after reload has completed.
5845         (arm_output_epilogue): Don't adjust the sp value recovered from the
5846         stack.
5847         (emit_multi_reg_push): Don't record dwarf information for the pc.
5848         * arm.md (eh_epilogue): The function type may have changed, so it
5849         needs to be recalculated.
5850         * arm/netbsd.h (DWARF2_UNWIND_INFO): Delete.  Can now use dwarf2
5851         unwind tables on arm/netbsd.
5852
5853 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
5854
5855         * arm.md (cbranchsi4): Correct calculation of branch ranges.
5856         (negated_cbranchsi4): Likewise.
5857
5858 2001-01-15  Richard Earnshaw  <rearnsha@arm.com>
5859
5860         * config/arm/semi.h (SUBTARGET_EXTRA_SPECS): Define.
5861         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
5862         (ASM_SPEC): Call subtarget_extra_asm_spec.  Don't
5863         pass -mapcs-* options to assembler.
5864         * config/arm/elf.h (SUBTARGET_EXTRA_SPECS): Define.
5865         (SUBTARGET_EXTRA_ASM_SPEC): Define to empty string.
5866         (ASM_SPEC): Call subtarget_extra_asm_spec.
5867
5868 2001-01-15  Andreas Jaeger  <aj@suse.de>
5869
5870         * config/i386/i386.c (ix86_init_builtins): Make i size_t to remove
5871         warnings.
5872         (ix86_expand_builtin): Likewise.
5873
5874         * gencodes.c (output_predicate_decls): Make i size_t to avoid
5875         warning about comparison between signed and unsigned.
5876
5877 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
5878
5879         * expr.c (do_jump): Treat VOIDmode CONST_DOUBLEs like CONST_INTs.
5880
5881 2001-01-14  Ralf Baechle <ralf@gnu.org>
5882
5883         * config/mips/linux.h (SUBTARGET_CPP_SPEC): Default ABI is 32; change
5884         SUBTARGET_CPP_SPEC apropriatly.
5885
5886 2001-01-12  Mark Mitchell  <mark@codesourcery.com>
5887
5888         * varasm.c (make_decl_rtl): Fix typo in last change.
5889
5890 2001-01-14  Jeffrey Oldham  <oldham@codesourcery.com>
5891
5892         * defaults.h (SUPPORTS_INIT_PRIORITY): New macro to indicate the
5893         linker supports the init_priority C++ attribute.
5894         * tm.texi (SUPPORTS_INIT_PRIORITY): Documentation for new macro.
5895         * config/mips/iris6.h (SUPPORTS_INIT_PRIORITY): Indicate Irix
5896         linker does not support init_priority C++ attribute.
5897
5898 Sun Jan 14 22:31:30 2001  J"orn Rennecke <amylaar@redhat.com>
5899
5900         * Makefile.in (libgcc1-test.o): Depends on stmp-int-hdrs.
5901
5902 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5903
5904         * c-parse.in (finish_parse): Add comment about cpp_destroy.
5905         * cp/lex.c (finish_parse): Similarly.
5906         * cppinit.c (cpp_cleanup): Rename cpp_destroy for clarity.
5907         Return the number of errors encountered.
5908         * cpplib.h (cpp_cleanup): Rename cpp_destroy, return int.
5909         * cppmain.c (main): Don't call cpp_destroy.
5910
5911 2001-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
5912
5913         * configure.in: Require at least perl 5.6.0 to regenerate
5914         manpages.
5915         * configure: Regenerate.
5916
5917 2001-01-14  Richard Henderson  <rth@redhat.com>
5918
5919         * genrecog.c (DT_veclen_ge): New.
5920         (add_to_sequence) [MATCH_PARALLEL]: Generate one.
5921         (maybe_both_true_2): Simplify DT_veclen vs DT_veclen_ge.
5922         (nodes_identical_1): Handle DT_veclen_ge.
5923         (write_cond, debug_decision_2): Likewise.
5924
5925 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
5926
5927         * arm.md (ldmsi_postinc, ldmsi, stmsi_postinc, smsi): Delete.  Replace
5928         with ...
5929         (ldmsi_postinc[432], ldmsi[432], stmsi_postinc[432], stmsi[432]): New.
5930
5931 2001-01-14  Neil Booth  <neil@daikokuya.demon.co.uk>
5932
5933         * cppmain.c (do_preprocessing): New function; most of the old
5934         main.
5935         (main): Call it to do most of the work.
5936         (cb): Move from global scope to set_callbacks ().
5937         (setup_callbacks): Get the callback pointer.
5938         (general_init, printer_init): Clean up code and comments.
5939
5940 2001-01-14  Richard Earnshaw  <rearnsha@arm.com>
5941
5942         * config/arm/semi.h (ASM_SPEC): Pass -k to the assembler when
5943         compiling PIC.
5944
5945 2001-01-14  Kazu Hirata  <kazu@hxi.com>
5946
5947         * config/h8300/h8300.c (get_shift_alg): Update comments.
5948
5949 Sun Jan 14 06:20:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5950
5951         * ggc-page.c (alloc_annon): Call perror and correctly call exit.
5952         (alloc_page, ggc_alloc): Add casts to remove warnings.
5953
5954 2001-01-14  Geoffrey Keating  <geoffk@redhat.com>
5955
5956         * combine.c (simplify_comparison): Don't change `code' when
5957         can't reverse comparison.
5958
5959 2001-01-14  Richard Henderson  <rth@redhat.com>
5960
5961         * rtlanal.c (computed_jump_p_1): Rename from jmp_uses_reg_or_mem;
5962         update all call sites.  Return true for all non-label constants.
5963
5964 Sun Jan 14 10:09:48 MET 2001  Jan hubicka  <jh@suse.cz>
5965
5966         * i386.c (ix86_expand_compare): Add bypass_test and second_test
5967         parameters.
5968         (ix86_expand_branch): Update.
5969         (ix86_expand_setcc): Update to handle multiple test conditions.
5970         (expand_int_movcc): Likewise.
5971         (expand_fp_movcc): Likewise.
5972         * i386-protos.h (ix86_expand_compare): New.
5973         * i386.md (andqi_?_slp, orqi_?_slp): New.
5974         (conditional trap expander): Update call to ix86_expand_compare.
5975
5976 2001-01-14  Richard Henderson  <rth@redhat.com>
5977
5978         * config/vax/vax.md: Use nonimmediate_operand instead of
5979         general_operand in destinations.
5980
5981         * config/vax/vax.md (indirect_jump): Use register_operand.
5982
5983         * config/vax/vax.h (RETURN_POPS_ARGS): Max at 255 arguments.
5984         * config/vax/vax.md (call_pop): Turn into an expander.
5985         (call_value_pop): Likewise.
5986         (call, call_value): New.
5987
5988 2001-01-14  Andreas Jaeger  <aj@suse.de>
5989
5990         * config/i386/i386.c (ix86_split_fp_branch): Remove unused
5991         variables.
5992         (ix86_fp_compare_mode): Add unused attribute.
5993         (ix86_expand_fp_movcc): Remove unused variable.
5994         (ix86_expand_builtin): Make fcode unsigned.
5995
5996         * expr.c (MOVE_BY_PIECES_P): Cast MOVE_RATIO to unsigned.
5997         (expand_expr): Add cast to avoid signed warning.
5998         (store_field): Likewise.
5999         (store_constructor_field): Likewise.
6000         (store_constructor): Likewise.
6001         (store_expr): Likewise.
6002         (clear_storage): Likewise.
6003         (emit_group_store): Likewise.
6004         (emit_group_load): Likewise.
6005
6006 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
6007
6008         * c-common.c: Move format checking code to ...
6009         * c-format.c: ... here.  New file.  Reorder some functions and
6010         declarations.
6011         (decl_handle_format_attribute, decl_handle_format_arg_attribute):
6012         New functions.
6013         * c-common.h (decl_handle_format_attribute,
6014         decl_handle_format_arg_attribute): Declare.
6015         * Makefile.in (C_AND_OBJC_OBJS): Add c-format.o.
6016         (c-common.o): Adjust dependencies.
6017         (c-format.o): New list of dependencies.
6018
6019 2001-01-13  Jakub Jelinek  <jakub@redhat.com>
6020
6021         * unroll.c (loop_iterations): If we cannot prove iteration variable
6022         is set once in each iteration, punt.
6023
6024 Sun Jan 14 00:23:15 2001  Denis Chertykov  <denisc@overta.ru>
6025
6026         * config/avr/avr.md ("strlenhi"): Remove clobber of input address.
6027         (*strlenhi): Remove clobber (which was buggy) of output address.
6028
6029 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
6030
6031         * Makefile.in (generated-manpages): Add gcc.1
6032         ($(srcdir)/gcc.1): New target.
6033         (maintainer-clean): Delete $(srcdir)/gcc.1.
6034         * gcc.texi: Add macros @gccoptlist and @gol.
6035         * invoke.texi: Include option summary in manpage.  Mark up option
6036         summary with @gccoptlist and @gol.  Use @r in one place where
6037         appropriate.
6038         * texinfo.tex: Update to version 2000-12-11.07 from ftp.gnu.org.
6039         * gcc.1: Generate from invoke.texi.
6040
6041 2001-01-13  Richard Henderson  <rth@redhat.com>
6042
6043         * ggc-page.c (USING_MALLOC_PAGE_GROUPS): New; set if not using mmap.
6044         (struct page_entry): Add group member.
6045         (struct page_group): New.
6046         (struct globals): Add page_groups member.
6047         (alloc_anon): Only define for using mmap; remove valloc call.
6048         (page_group_index): New.
6049         (set_page_group_in_use): New.
6050         (clear_page_group_in_use): New.
6051         (alloc_page): Implement USING_MALLOC_PAGE_GROUPS.
6052         (free_page, release_pages): Likewise.
6053         * configure.in (with-gc): Default to ggc-page always.
6054
6055 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6056
6057         * reload1.c (replace_pseudos_in_call_usage): Use
6058         reg_equiv_constant and reg_equiv_address, and don't try
6059         regno_reg_rtx first.
6060
6061 2001-01-13  Richard Henderson  <rth@redhat.com>
6062
6063         * ggc-page.c (alloc_page): Round up allocation size to one page.
6064         Set e->order on extra pages.
6065
6066 2001-01-13  Richard Henderson  <rth@redhat.com>
6067
6068         * genrecog.c (nodes_identical): Expand commentary.
6069         (write_switch): Watch out for identical nodes.
6070
6071 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6072
6073         * cppfiles.c (_cpp_fake_include): New function.
6074         * cpphash.h (_cpp_fake_include): New.
6075         * cpplib.c (do_line): Call _cpp_fake_include when entering
6076         header files in preprocessed input.
6077         * cppmain.c (cb_pragma_implementation): Remove handling.
6078         (setup_callbacks): Don't register pragmas.
6079
6080 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6081
6082         * extend.texi: Udate for CPP.
6083
6084 2001-01-13  Andreas Jaeger  <aj@suse.de>
6085
6086         * reload1.c: Add prototype for replace_pseudos_in_call_usage.
6087
6088         * regmove.c: Add prototype for replace_in_call_usage.
6089
6090 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6091
6092         * cpplib.h (cpp_pool, mi_state, mi_ind, struct cpp_macro,
6093         struct cpp_chunk, struct htab, struct toklist,
6094         struct cpp_context, CPP_STACK_MAX, struct lexer_state,
6095         struct spec_nodes, struct cpp_reader, CPP_OPTION, CPP_BUFFER,
6096         CPP_BUF_LINE, CPP_BUF_COL, CPP_BUF_COLUMN, U, ustrcmp, ustrncmp,
6097         ustrlen, uxstrdup, ustrchr, ufputs): Move to cpphash.h.
6098         (struct macro_args): Delete.
6099         * cpphash.h: See above.
6100
6101 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6102
6103         * cppmain.c (struct printer): Remove no_line_dirs.
6104         (options, cb): New.
6105         (main, setup_callbacks, scan_buffer, printer_init, cb_define)
6106         : Use options rather than CPP_OPTION.
6107         (setup_callbacks): Use cb rather than pfile->cb.
6108         (main): No need to check for a buffer.  Use cpp_errors.
6109         (printer_init): Don't set no_line_dirs.
6110         (maybe_print_line): Use options not no_line_dirs.
6111         (cb_file_change): Don't call print_line if -P.
6112
6113 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6114
6115         * c-lex.c (init_c_lex): Use cpp_get_callbacks to set
6116         callbacks.
6117         * c-parse.in (finish_parse): Use cpp_errors.
6118         (__yylex): Use return value of cpp_pop_buffer.
6119         * cp/lex.c (finish_parse): Use cpp_errors.
6120         * cp/spew.c (read_token): Use return value of cpp_pop_buffer.
6121
6122 Sat Jan 13 16:57:40 2001  Denis Chertykov  <denisc@overta.ru>
6123
6124         * README.AVR: URLs corrected.
6125
6126 Sat Jan 13 07:30:02 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6127
6128         * c-decl.c (start_function): Don't warn if old prototype is builtin
6129         that's not in C's namespace.
6130         * libgcc2.c (_varargs): Update definition of __builtin_saveregs.
6131         (_bb): Add prototype for ctime.
6132         * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Add missing protos.
6133
6134 Sat Jan 13 09:53:32 MET 2001  Jan Hubicka  <jh@suse.cz>
6135
6136         * i386.c (ix86_fp_comparison_arithmetics_cost,
6137         ix86_fp_comparison_fcomi_cost, ix86_fp_comparison_sahf_cost,
6138         ix86_fp_comparison_cost): New functions.
6139         (ix86_expand_fp_compare): Use the costs to choose best bethod; add
6140         two new parameters SECOND_TEST and BYPASS_TEST; allow generating
6141         two-branch sequences; make static.
6142         (ix86_use_fcomi_compare): Do decision according to the costs.
6143         (split_fp_branch): New.
6144         * i386.md (compare-and-branch patterns): Use split_fp_branch.
6145         * i386-protos.h (ix86_expand_fp_compare): Remove
6146         (ix86_split_fp_branch): Declare.
6147
6148         * i386.h (PREDICATE_CODES): Update codes from fcmov_comparison_operand
6149         and ix86_comparison_operator.
6150
6151         * i386.c (ix86_prepare_fp_compare_args): Try to rearange the comparison
6152         to make it cheaper.
6153
6154         * i386.c (put_condition_code): Output properly the unordered/ordered
6155         compares in fp case.
6156         (ix86_expand_fp_movcc): Use ix86_expand_compare infrastructure.
6157
6158         * tm.texi (REVERSE_CONDITION): Document.
6159         * i386.c (ix86_fp_compare_mode): Simplify; return always CCFPmode
6160         in -ffast-math mode.
6161         * i386.h (REVERSE_CONDITION, REVERSIBLE_CC_MODE): New macro.
6162
6163 2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6164
6165         * config/sh/sh.c (sh_expand_epilogue): Use PR explicitly.
6166
6167         * config/sh/sh.c (sh_expand_prologue): Let the second toggle_sz be
6168         optimized away.
6169
6170         * config/sh/sh.c (mova_p): Fix test for mova_const.
6171
6172 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6173
6174         * fix-header.c (read_scan_file): Use cpp_get_callbacks and
6175         cpp_get_options rather than dereferencing pfile and using
6176         CPP_OPTION.
6177         * scan-decls.c (scan_decls): Use return value of
6178         cpp_pop_buffer rather than CPP_BUFFER.
6179
6180 2001-01-13  Neil Booth  <neil@daikokuya.demon.co.uk>
6181
6182         * cppinit.c (cpp_handle_option): help_only is now part of the
6183         cpp_options structure.
6184         * cpplib.c (cpp_errors, cpp_get_options, cpp_get_callbacks,
6185         cpp_set_callbacks): New functions.
6186         * cpplib.h (cpp_callbacks): Break out as a named structure.
6187         (cpp_options): Move help_only here from cpp_reader.
6188         (CPP_FATAL_ERRORS): Update to use cpp_errors.
6189         (cpp_errors, cpp_get_options, cpp_get_callbacks,
6190         cpp_set_callbacks): New prototypes.
6191         * cppmain.c (main): Update for help_only.
6192
6193 2001-01-13  Joseph S. Myers  <jsm28@cam.ac.uk>
6194
6195         * Makefile.in (info, maintainer-clean, install-info, uninstall):
6196         Also build and remove and install and uninstall c-tree.info and
6197         cppinternals.info.
6198         ($(srcdir)/gcc.info): Add dependency on contrib.texi.
6199         ($(srcdir)/cppinternals.info): New target.
6200         * c-tree.texi: Change file name used when makeinfo used without -o
6201         from ir.info to c-tree.info.  Add info directory entry.
6202         * cppinternals.texi: Add info directory entry.
6203         * .cvsignore: Update.
6204
6205 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
6206
6207         * c-typeck.c (store_init_value): Don't require constant initializer
6208         elements with -pedantic -std=c99.
6209         (digest_init): Change error about non-constant initializer elements
6210         into pedwarn.
6211         (constructor_range_end): Remove.
6212         (constructor_incremental, designator_depth,
6213         designator_errorneous): New variables.
6214         (struct constructor_stack): Remove range_end, add incremental.
6215         (struct constructor_range_stack, constructor_range_stack): New.
6216         (struct initializer_stack): Add constructor_range_stack.
6217         (finish_init): Set it.
6218         (start_init): Likewise.  require_constant_elements for non-static
6219         trees only if not flag_isoc99.
6220         (really_start_incremental_init): Remove constructor_range_end, add
6221         constructor_incremental.
6222         (pop_init_level): Likewise.
6223         (push_init_level): Likewise.  If implicit and the subobject had some
6224         value set already, preinitialize the level with it.
6225         Warn about missing braces only if not pushing due to designators.
6226         (set_designator, push_range_stack): New functions.
6227         (set_init_label): Use them.
6228         (set_init_index): Likewise.  Remove constructor_range_end.
6229         Error if designator index is outside of array bounds.
6230         (add_pending_init): Compare values of purpose index trees, not the
6231         trees themselves.  Allow overwriting of already initialized element.
6232         Issue a warning if it had side-effects.
6233         (set_nonincremental_init, set_nonincremental_init_from_string): New
6234         functions.
6235         (pending_init_member): Rename to...
6236         (find_init_member): ...this function.  Call set_nonincremental_init
6237         if necessary.  Compare values of purpose index trees, not the trees
6238         themselves.  Return the actual value, not just non-zero if something
6239         is found.
6240         (output_init_element): Remove checks for duplicates.
6241         If field has zero size, only check the initializer for correctness.
6242         Call set_nonincremental_init if necessary.  Push RECORD/ARRAY into AVL
6243         if constructor_incremental is zero.  Change error about initializers
6244         not computable at load time into pedwarn.
6245         (output_pending_init_elements): Compare bit positions, not
6246         FIELD_DECLs to take into account zero-sized fields.
6247         (process_init_element): Use constructor_range_stack to fill all
6248         ranges in the designator lists from current level up.
6249         * extend.texi: Update documentation for labeled elements.
6250
6251 2001-01-12  Alexandre Oliva  <aoliva@redhat.com>
6252
6253         * calls.c (emit_library_call_value_1): Add USEs and CLOBBERs
6254         to function usage for arguments passed by reference.  Optimize
6255         callee-copied arguments.
6256         * regmove.c (replace_in_call_usage): New function.
6257         (fixup_match_1): Call it.
6258         * cse.c (cse_insn): Canonicalize registers in function usage.
6259         * reload1.c (replace_pseudos_in_call_usage): New function.
6260         (reload): Call it.
6261
6262         * Makefile.in: Reverted yesterday's wrong patch.  Installed the
6263         right version.
6264
6265 2001-01-12  Jakub Jelinek  <jakub@redhat.com>
6266
6267         * config/alpha/alpha.c (alpha_expand_block_move): GET_MODE of tmp,
6268         not XEXP (tmp, 0).
6269
6270 2001-01-12  DJ Delorie  <dj@redhat.com>
6271
6272         * Makefile.in (bootstrap): rename stages to be mnemonic.  Add
6273         restageN, unstageN, bubblestrap, quickstrap, and cleanstrap
6274         targets.
6275
6276 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6277
6278         * cpp.texi, extend.texi, gcc.texi, install.texi, invoke.texi,
6279         tm.texi: Consistently refer to ISO C instead of ANSI C.  Refer to
6280         -std options alongside references to -ansi.  Update some
6281         documentation for C99.
6282         * cpp.1: Regenerate.
6283
6284 2001-01-12  Andreas Jaeger  <aj@suse.de>
6285
6286         * haifa-sched.c (restore_line_notes): Remove argument block B
6287         since it's unused.
6288         * sched-ebb.c (schedule_ebb): Change caller.
6289         * sched-rgn.c (schedule_region): Likewise.
6290         * sched-int.h (restore_line_notes): Adjust prototype.
6291
6292         * loop.h: Remove wrong declaration of doloop_condition_get.
6293
6294 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
6295
6296         * extend.texi:  Move C++-extension-related node from the C section
6297         into the C++ section.
6298
6299 2001-01-12  Joseph S. Myers  <jsm28@cam.ac.uk>
6300
6301         * extend.texi: Refer to an array of pointers to functions instead
6302         of one of functions.
6303
6304 Fri Jan 12 12:08:12 MET 2001  Andreas Jaeger  <aj@suse.de>
6305                               Jan Hubicka  <jh@suse.cz>
6306
6307         * combine.c (reversed_comparison): Fix typo in last patch.
6308         Check X for NULL.
6309         (combine_reversed_comparison_code): Make static to follow
6310         prototype declaration.
6311
6312 2001-01-12  Phil Edwards  <pme@sources.redhat.com>
6313
6314         * install.texi:  Remove misplaced duplicate entry.
6315
6316 2001-01-11  Ulrich Drepper  <drepper@redhat.com>
6317
6318         * config/float-i386.h: Define FLT_EVAL_METHOD and DECIMAL_DIG for C99.
6319
6320 Thu Jan 11 17:06:30 EST 2001  John Wehle  (john@feith.com)
6321
6322         * final.c: (leaf_function_p): Fix typo.
6323
6324 2001-01-11  Zack Weinberg  <zack@wolery.stanford.edu>
6325
6326         * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE): Completely rewritten.
6327         Now defines HAVE_MMAP_DEV_ZERO and/or HAVE_MMAP_ANON depending
6328         which you have.
6329         (AC_FUNC_MMAP_FILE): Don't AC_REQUIRE AC_FUNC_MMAP_ANYWHERE.
6330         * configure.in: Set GGC to ggc-page if any of mmap_dev_zero,
6331         mmap_anon, and valloc is available.
6332         * ggc-page.c: Restructure ifdef logic to match new autoconf
6333         spec.  Don't throw away the test page in init_ggc.
6334
6335         * configure, config.in: Regenerate.
6336
6337 2001-01-12  Michael Hayes  <mhayes@redhat.com>
6338
6339         * loop.h (total_biv_increment): Constify iv_class pointer.
6340         (struct induction): Replace `mem_mode' with `mem' rtx.
6341         * unroll.c (total_biv_increment): Constify iv_class pointer.
6342         * loop.c (loop_giv_reduce_benefit): Derive mem mode from mem rtx.
6343         (find_mem_givs, combine_givs_p): Likewise.
6344         (debug_ivs, debug_iv_class, loop_ivs_dump, loop_iv_class_dump): New.
6345
6346 2001-01-10  Thomas Pfaff <tpfaff@gmx.net>
6347
6348         * gthr-win32.h (__gthread_objc_thread_get_data): Save and restore Win32
6349         LastError.
6350         (__gthread_getspecific): Ditto.
6351
6352 Fri Jan 12 00:04:00 MET 2001  Jan Hubicka  <jh@suse.cz>
6353
6354         * i386.c (ix86_comparison_operator, fcmov_comparison_operator,
6355         put_condition_code): Convert fp comparison codes to integer
6356         before handling.
6357         (ix86_expand_fp_compare): Postnote the fp comparison code converison
6358         to final.
6359
6360         * i386.c (unsigned_comparison, no_comparison_operator): Kill.
6361         * i386-protos.h (no_comparison_operator): Kill.
6362
6363         * i386.c (ix86_expand_fp_compare): Fix ordered/unordered confussion.
6364
6365         * combine.c (REVERSIBLE_CC_MODE): Remove.
6366         (reversible_comparison_p): Remove.
6367         (combine_reversed_comparison_code): New.
6368         (reversed_comparison): New.
6369         (combine_simplify_rtx): Use
6370         combine_reversed_comparison_code/reversed_comparison instead
6371         of reversible_comparison_p.
6372         (simplify_if_then_else): Likewise.
6373         (simplify_set): Likewise.
6374         (simplify_logical): Likewise.
6375         (if_then_else_cond): Likewise.
6376         (known_cond): Likewise.
6377         (simplify_comparison): Likewise.
6378
6379 2001-01-11  Alan Lehotsky  <lehotsky@tiac.net>
6380
6381         * builtins.c (std_expand_builtin_va_start): Handle varargs when
6382         sizeof (int) is larger than sizeof(__word__).
6383
6384 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6385
6386         * cppinit.c (do_includes): Fix typo.
6387
6388 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6389
6390         * config/m68hc11/m68hc11.md (cmphi_1): Make sure reloading
6391         in S_REGS does not occur because not all sources are possible
6392         when a S_REGS is a destination (sometimes needs a clobber).
6393         (movqi_const0, zero_extendhisi2, zero_extendqisi2): Likewise.
6394         (zero_extendhidi2, extendqisi2, extendqihi2, extendhisi2): Likewise.
6395         (anddi3, iordi3, xordi3, negqi2, one_cmplhi2, one_cmplqi2: Likewise.
6396         (ashldi3_const32, ashldi3_const1, ashlsi3_const16): Likewise.
6397         (ashlsi3_const1, ashlhi3_2, ashlqi3_const1, ashrhi3): Likewise.
6398         (ashrqi3_const1, lshrdi3_const32, lshrdi3_const63): Likewise.
6399         (lshrdi_const1, lshrsi3_const16): Likewise.
6400         (*addhi3, lshrsi3_const1, lshrqi3_const1): Likewise.
6401         (*movhi_68hc12, *movqi_68hc12): Likewise.
6402         (movstrictqi): Make sure reloading in D_REGS as a destination
6403         does not happen.
6404
6405 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6406
6407         * cppspec.c (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
6408
6409 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6410
6411         * cppinit.c (cpp_start_read): If -fpreprocessed, ignore
6412         -D, -U and -A, and don't initialize the builtins.
6413         (do_includes): Error if -include or -imacros with -fpreprocessed.
6414         * cppmain.c (cb_define, cb_undef): Unconditionally process
6415         the callback.
6416         * tradcpp.c (main): Fix typo.
6417
6418 2000-01-11  Mark Elbrecht  <snowball3@bigfoot.com>
6419
6420         * cppfiles.c (cpp_included, find_include_file, _cpp_execute_include)
6421         (read_name_map): Use IS_ABSOLUTE_PATH.
6422         * tradcpp.c (get_filename): Likewise.
6423
6424 2001-01-11  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
6425
6426         * config/m68hc11/m68hc11.md (*adcq, *subcq): Fix operand numbers.
6427         (*ashlsi3_const16_zexthi, *ashlsi3_const1): Likewise.
6428         (*lshrsi3_const, *lshrsi3_const1, *lshrsi3_const16): Likewise.
6429         (*ashrsi3, *ashrsi3_const, *ashlsi3, *ashlsi3_const): Likewise.
6430         (*ashlsi3_const1, *lshrsi3, *ashlsi3_const16): Likewise.
6431         (cmphi_z_used): Don't use '@' for the output.
6432         (tstqi_z_used): Likewise.
6433         (cmpqi_z_used): Likewise.
6434         (one_cmplsi2): Likewise.
6435
6436 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6437
6438         * config/sh/sh.c (barrier_align): Recognize branch around far
6439         branch and redundant insn.
6440
6441 2001-01-11  Neil Booth  <neil@daikokuya.demon.co.uk>
6442
6443         * invoke.texi: Restore documentation of the drivers' switches -MD
6444         and -MMD.
6445
6446 2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6447
6448         * config/sh/sh.h (LABEL_ALIGN): Use UNSPECV_ALIGN instead of 1.
6449
6450         * Makefile.in (check-gcc//%, check-g++//%, check-g77//%,
6451         check-objc//%): Support parallel testing of multilibs.
6452         (TESTSUITEDIR): Set to testsuite by default, but override for
6453         parallel testing.
6454         (check-gcc, check-g++, check-g77, check-objc): Enter
6455         $(TESTSUITEDIR).
6456
6457 2001-01-11  Bernd Schmidt  <bernds@redhat.com>
6458
6459         * alias.c (throughout): Use REGNO, rather than ORIGINAL_REGNO.
6460         * sched-deps.c (deps_may_trap_p): Likewise.
6461         * basic-block.h: Remove a comment.
6462         * flow.c (PROP_POSTRELOAD): Remove.
6463         (update_life_info): Don't add it to prop_flags.
6464         (mark_set_1): Lose the code that was enabled by it.
6465
6466 2001-01-11  Michael Hayes  <mhayes@redhat.com>
6467
6468         * flow.c (flow_call_edges_add): New.
6469         * basic_block.h (flow_call_edges_add): New.
6470
6471 2001-01-11  J"orn Rennecke <amylaar@redhat.com>
6472
6473         * reload1.c (move2add_note_store): Update reg_set_luid even if
6474         base reg remains the same.
6475
6476 2001-01-10  Nick Clifton  <nickc@redhat.com>
6477
6478         * config/d30v/d30v.c (d30v_init_machine_status): Initialise
6479         machine_function structure to zero.
6480         Add prototypes for machine_status functions.
6481
6482 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
6483
6484         * c-common.h (CTI_VOID_LIST): Remove.
6485         (void_list_node): Likewise.
6486         * tree.h (TI_VOID_LIST_NODE): New enumeral.
6487         (void_list_node): New macro.
6488         * config/arm/arm.c (arm_init_builtins): Use void_list_node.
6489         * config/i386/i386.c (ix86_init_builtins): Likewise.
6490         * config/ia64a/ia64.c (ia64_init_builtins): Likewise.
6491
6492 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6493
6494         * Makefile.in (tradcpp0): Depend on mkdeps.h.  Link mkdeps.o
6495         * cppinit.c (cpp_start_read): Update comment, remove unneeded
6496         if statement.
6497         * tradcpp.c: Include mkdeps.h.
6498         (deps, print_deps_phony_targets, deps_append, output_deps,
6499         init_dependency_output, output_deps): New.
6500         (deps_buffer, deps_allocated_size, deps_size, deps_column,
6501         deps_output): Delete.
6502         (print_deps_missing_files): Rename deps_missing_files.
6503         (inhibit_output): Make global.
6504         (main): Delete inhibit_output, deps_stream, deps_target.
6505         Use mkdeps functionality in the same way as cpplib.  Remove
6506         -g3 handling.  Handle -MF, -MP, -MQ, -MT.  Update handling of
6507         -M and -MM.  Remove old handling of deps via deps_out, and
6508         old reading of environment variables.
6509         (get_filename): Update to use deps_add_dep.
6510
6511 2001-01-10  Mark Mitchell  <mark@codesourcery.com>
6512
6513         * output.h (make_function_rtl): Remove prototype.
6514         (make_decl_rtl): Likewise.
6515         * varasm.c (make_function_rtl): Remove.
6516         (make_decl_rtl): Determine top-levelness from DECL_CONTEXT, rather
6517         than from a third parameter.
6518         * tree.h (make_decl_rtl): Remove last parameter.
6519         * c-decl.c (builtin_function): Remove last argument in call to
6520         make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
6521         (start_function): Likewise.
6522         * except.c (call_get_eh_context): Likewise.
6523         * expr.c (emit_block_move): Likewise.
6524         (clear_storage): Likewise.
6525         * profile.c (output_func_start_profiler): Likewise.
6526         * toplev.c (rest_of_decl_compilation): Likewise.
6527         * objc/objc-act.c (create_builtin_decl): Likewise.
6528         (synth_module_prologue): Likewise.
6529         (generate_static_reference): Likewise.
6530         (build_selector_reference_decl): Likewise.
6531         (build_class_reference_decl): Likewise.
6532         (build_objc_string_decl): Likewise.
6533         (build_protocol_reference): Likewise.
6534
6535 2001-01-10  Richard Henderson  <rth@redhat.com>
6536
6537         * hwint.h: Revert yesterday's change.
6538
6539 2001-01-10  Nick Clifton  <nickc@redhat.com>
6540
6541         * function.h (save_machine_status): Delete.
6542         (restore_machine_status): Delete.
6543         Amend comment describing {init|mark|free}_machine_status.
6544
6545         * function.c (save_machine_status): Delete.
6546         (restore_machine_status): Delete.
6547         Amend comment describing {init|mark|free}_machine_status.
6548         (push_function_context_to): Remove invocation of
6549         save_machine_status.
6550         (pop_function_context_from): Remove invocation of
6551         restore_machine_status.
6552
6553         * emit-rtl.c (init_emit_once): Amend comment describing
6554         {init|mark|free}_machine_status.
6555
6556         * tm.texi (Per-Function Data): New node.  Describe the
6557         INIT_EXPANDERS macro and the {init|mark|free}_machine_status
6558         function pointers.
6559
6560 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6561
6562         * cppinit.c (OPT_g): Remove.
6563         (cpp_handle_option): Update for removed -g3.
6564         (print_help): Update.
6565         * cpplib.h (struct cpp_options): Remove debug_output.
6566         * cppmain.c (setup_callbacks, cb_define): Update.
6567         * gcc.c (cpp_options): Translate -g3 to -dD.
6568
6569 2001-01-10  Aldy Hernandez  <aldyh@redhat.com>
6570
6571         * config/i960/i960.md: Change modifier to + on the zero_extract
6572         pattern after the (rotate -2 reg) canonicalization pattern.
6573
6574 2001-01-10  Richard Henderson  <rth@redhat.com>
6575
6576         * config/alpha/alpha.c (alpha_free_machine_status): New.
6577         (override_options): Install it.
6578         (alpha_mark_machine_status): Verify machine non-null.
6579         * config/i386/i386.c (ix86_free_machine_status): New.
6580         (override_options): Install it.
6581         (ix86_init_machine_status): Use xcalloc.
6582         (ix86_mark_machine_status): Verify machine non-null.
6583         * config/ia64/ia64.c (ia64_free_machine_status): New.
6584         (ia64_override_options): Install it.
6585         (ia64_mark_machine_status): Verify machine non-null.
6586
6587 Wed Jan 10 11:34:39 2001  Jeffrey A Law  (law@cygnus.com)
6588
6589         * function.c (instantiate_virtual_regs): Instantiate virtual
6590         registers found in CALL_INSN_FUNCTION_USAGE.
6591
6592 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
6593
6594         * i386.h (CPP_CPU_SPEC): Allow for -std=c* and -std=i* as
6595         equivalent to -ansi in disabling -Di386.
6596
6597 Wed Jan 10 16:38:31 MET 2001  Jan Hubicka  <jh@suse.cz>
6598
6599         * i386.c (ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes):
6600         new functions.
6601         (ix86_expand_fp_compare): Make trivial use of new infrastructure.
6602
6603 2001-01-10  Richard Earnshaw  <rearnsha@arm.com>
6604
6605         * arm.c (arm_init_builtins): Temporarily disable xscale builtins.
6606
6607 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
6608
6609         * invoke.texi: Document that -fcond-mismatch isn't supported for
6610         C++.
6611
6612 2001-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
6613
6614         * gcc.texi: Define macro gcctabopt.
6615         * invoke.texi: Add manpage sections BUGS and AUTHOR.  Use
6616         @command, @env and @option in some places where appropriate.  Use
6617         @gcctabopt where appropriate.  Put URLs and email addresses inside
6618         @w.
6619
6620 2001-01-10  Nathan Sidwell  <nathan@codesourcery.com>
6621
6622         * gcc.c (cpp_options): Set MD file name from output
6623         filename, if specified.
6624         (suffix_subst): New static variable.
6625         (do_spec): Clear it.
6626         (do_spec_1, case '.'): Handle new `%.suffix' spec.
6627         Clear it.
6628         (give_switch): Handle suffix_subst.
6629
6630 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
6631
6632         * invoke.texi:  Fix another typo.
6633
6634 2001-01-10  Phil Edwards  <pme@sources.redhat.com>
6635
6636         * invoke.texi:  Fix typo.
6637
6638 2001-01-10  Neil Booth  <neil@daikokuya.demon.co.uk>
6639
6640         * c-lang.c (lang_hooks): Update.
6641         (lang_decode_option): Remove.
6642         (lang_init_options): Rename c_init_options.
6643         * toplev.c (main): Use lang_hooks for lang_init_options
6644         and lang_decode_option.
6645         * toplev.h (lang_hooks): Add 2 new hooks.
6646         * tree.h: Remove lang_init_options and lang_decode_option.
6647         * cp/cp-tree.h (lang_decode_option): Rename cxx_decode_option.
6648         * cp/decl2.c: Similarly.
6649         * cp/lex.c (lang_init_options): Rename cxx_init_options.
6650         (lang_hooks): Update.
6651         * f/com.c (f_init, f_finish): Rename ffe_init, ffe_finish
6652         for consistency.
6653         (lang_init_options): Rename ffe_init_options.
6654         (lang_hooks): Update.
6655         (lang_decode_option): Remove.
6656         * java/lang.c (lang_init_options): Rename java_init_options.
6657         (lang_decode_option): Rename java_decode_option.
6658         (lang_hooks): Update.
6659         * objc/objc-act.c (lang_init_options): Rename objc_init_options.
6660         (lang_decode_option): Rename objc_decode_option.
6661         (lang_hooks): Update.
6662
6663 2001-01-09  Nick Clifton  <nickc@redhat.com>
6664
6665         * config/d30v/d30v.c (d30v_eh_epilogue_sp_ofs): Delete.
6666         (d30v_return_addr_rtx): Delete.
6667         (d30v_expand_epilogue): Use eh_epilogue_sp_ofs field in the
6668         cfun->machine structure.
6669         (struct machine_function): Move to d30v.h
6670         (d30v_save_machine_status): Delete.
6671         (d30v_restore_machine_status): Delete.
6672         (d30v_init_machine_status): New Function.
6673         (d30v_mark_machine_status): New Function.
6674         (d30v_free_machine_status): New Function.
6675         (d30v_init_expanders): Use new functions.
6676         (d30v_return_addr): Use ra_rtx field in cfun->machine.
6677         (d30v_add_gc_roots): Remove d30v_eh_epilogue_sp_ofs and
6678         d30v_return_addr_rtx.
6679
6680         * config/d30v/d30v.h (struct_machine): Move here.
6681         Add eh_epilogue_sp_ofs field.
6682
6683         *config/d30v/d30v.md (epilogue): Initialise eh_epilogue_sp_ofs
6684         field in cfun->machine structure.
6685
6686 Tue Jan  9 21:34:57 2001  John David Anglin  <dave@hiauly1.hia.nrc.ca>
6687
6688         * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): When generating pic code,
6689         PIC_OFFSET_TABLE_REGNUM_SAVED is a call_used register.
6690         * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise.
6691
6692 Tue Jan  9 21:25:19 2001  Jeffrey A Law  (law@cygnus.com)
6693
6694         * objc/lang-options.h: Remove bogus reference to
6695         Java trademark.
6696
6697 2001-01-09  Kazu Hirata  <kazu@hxi.com>
6698
6699         * config/h8300/h8300.c (get_shift_alg): Use a struct shift_info to
6700         return the result.
6701
6702 2001-01-09  Alan Lehotsky  <lehotsky@tiac.net>
6703
6704         * reload.c (find_reloads_address): Check for eliminable registers
6705         when substituting a constant expression for a pseudo.
6706
6707 2001-01-09  Joseph S. Myers  <jsm28@cam.ac.uk>
6708
6709         * c-common.c (enum format_type): Add format_type_error.
6710         (decode_format_type): New function.
6711         (decl_attributes): Use it.
6712         (format_kind_info): Adjust comment.
6713
6714 2001-01-09  David O'Brien  <obrien@BSDi.com>
6715
6716         * config.gcc (*-*-gnu*, i[34567]86-*-elf*, i[34567]86-*-linux*libc1,
6717         i[34567]86-*-linux*, i[34567]86-*-moss*): Specify needed platform specific
6718         files in tm_file.
6719         * config/i386/gnu.h: Don't include required platform specific .h files,
6720         tm.h will do it instead.
6721         * config/i386/i386elf.h: Likewise.
6722         * config/i386/linux.h: Likewise.
6723         * config/i386/moss.h: Likewise.
6724         * config/mips/gnu.h: Likewise.
6725
6726 2001-01-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6727
6728         * config.gcc (powerpc-*-beos*): Include ${tm_file} and rs6000/aix.h.
6729         (rs6000-ibm-aix3.[01]*): Likewise.
6730         (rs6000-ibm-aix3.2.[456789]*, powerpc-ibm-aix3.2.[456789]*): Likewise.
6731         (rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*): Likewise.
6732         (rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*): Likewise.
6733         (rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*): Likewise.
6734         (powerpc-*-sysv*): Include {tm_file}. svr4.h and rs6000/sysv4.h.
6735         (powerpc-*-eabiaix*): Likewise.
6736         (powerpc-*-eabisim*): Likewise.
6737         (powerpc-*-elf*): Likewise.
6738         (powerpc-*-eabi*): Likewise.
6739         (powerpc-*-rtems*): Likewise.
6740         (powerpc-*-linux*libc1): Likewise.
6741         (powerpc-*-linux*): Likewise.
6742         (powerpc-wrs-vxworks*): Likewise.
6743         (powerpcle-wrs-vxworks*): Likewise.
6744         (powerpcle-*-sysv*): Likewise.
6745         (powerpcle-*-elf*): Likewise.
6746         (powerpcle-*-eabisim*): Likewise.
6747         (powerpcle-*-eabi*): Likewise.
6748         (powerpcle-*-solaris2*): Likewise.
6749         * config/rs6000/aix31.h: Delete includes.
6750         * config/rs6000/aix3newas.h: Likewise.
6751         * config/rs6000/aix41.h: Likewise.
6752         * config/rs6000/aix43.h: Likewise.
6753         * config/rs6000/beos.h: Likewise.
6754         * config/rs6000/rtems.h: Likewise.
6755         * config/rs6000/sysv4.h: Likewise.
6756
6757 2001-01-09  Kazu Hirata  <kazu@hxi.com>
6758
6759         * config/h8300/h8300.c (get_shift_alg): Remove an argument cpu.
6760         Change an argument mode of machine_mode to shift_mode of
6761         shift_mode.  Remove an extra error check.
6762         (emit_a_shift): Adopt to the new calling prototype of
6763         get_shift_alg.
6764         (function_prologue): Fix code for a monitor
6765         function.  Support H8/S.
6766         (function_epilogue): Do not output pop for a monitor function.
6767
6768 2001-01-09  Nick Clifton  <nickc@redhat.com>
6769
6770         * config/rs6000/rs6000.c (rs6000_sysv_varargs_p): Delete.
6771         (setup_incoming_varargs): Use sysv_varargs_p field of the
6772         cfun->machine structure.
6773         (struct machine_function): Move to rs6000.h
6774         (rs6000_save_machine_status): Delete.
6775         (rs6000_restore_machine_status): Delete.
6776         (rs6000_init_machine_status): New Function.
6777         (rs6000_free_machine_status): New Function.
6778         (rs6000_init_expanders): Use new functions.
6779
6780         * config/rs6000/rs6000.h (rs6000_sysv_varargs_p): Delete
6781         export.
6782         (struct machine_function): Move here.
6783
6784         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
6785         sysv_varargs_p field of the cfun->machine structure.
6786
6787         * config/rs6000/rs6000-protos.h (rs6000_save_machine_status):
6788         Remove prototype.
6789         (rs6000_restore_machine_status): Remove prototype.
6790
6791 2001-01-09  Richard Henderson  <rth@redhat.com>
6792
6793         * sched-int.h (struct deps): Add max_reg, reg_last_in_use; merge
6794         reg_last_uses, reg_last_sets, reg_last_clobbers into struct deps_reg.
6795         * sched-deps.c (sched_analyze_1): Update uses of struct deps.
6796         (sched_analyze_2, sched_analyze_insn): Likewise.
6797         (sched_analyze, init_deps): Likewise.
6798         (free_deps): Likewise.  Iterate with EXECUTE_IF_SET_IN_REG_SET.
6799         * sched-rgn.c (propagate_deps): Likewise.  Remove max_reg argument.
6800         (compute_block_backward_dependences): Update propagate_deps call.
6801
6802 2001-01-09  Mark Elbrecht  <snowball3@bigfoot.com>
6803
6804         * gcc.c (process_command): Set switches[n_switches].ordering to 0.
6805
6806 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6807
6808         * cppinit.c (OPT_MD, OPT_MMD): Restore.
6809         (cpp_handle_option): Handle them.
6810         (cpp_post_options): Ensure one of -M or -MM is specified with
6811         any other -M? option.
6812         (init_dependency_output): Suppress output with -MG.
6813
6814 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6815
6816         * cpp.texi: Update.
6817         * invoke.texi: Update.
6818
6819 2001-01-09  Bernd Schmidt  <bernds@redhat.com>
6820
6821         * sh.md (reload_outsf): Generate recognizable patterns for
6822         TARGET_SH3E.
6823
6824 2001-01-09  Neil Booth  <neil@daikokuya.demon.co.uk>
6825
6826         * c-lang.c (lang_hooks): Update.
6827         (lang_init): Rename c_init.
6828         (lang_finish): Remove.
6829         * toplev.c (compile_file): Use lang_hooks for lang_init ()
6830         and lang_finish ().
6831         * toplev.h (lang_hooks): Add init () and finish ().
6832         * tree.h (lang_init, lang_finish): Remove.
6833         * cp/tree.h (lang_init, lang_finish): Remove.
6834         * cp/decl2.c (cxx_post_options, lang_hooks): Move to cp/lex.c.
6835         * cp/lex.c (cxx_init, cxx_finish, cxx_post_options,
6836         lang_hooks): New.
6837         (lang_init, lang_finish): Remove.
6838         * f/com.c (lang_init, lang_finish): Rename f_init, f_finish.
6839         (lang_hooks): Update.
6840         * java/lang.c (lang_init): Rename java_init.
6841         (lang_finish): Remove.
6842         (lang_hooks): Update.
6843         * objc/objc-act.c (lang_init): Rename objc_init.
6844         (lang_finish): Remove.
6845         (lang_hoooks): Update.
6846
6847 20001-01-09  Graham Stott  <grahams@redhat.com>
6848
6849         * cppfiles.c (_cpp_execute_include): Move `len` initialisation
6850         after `ptr` is initialised.
6851
6852 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6853
6854         * config/sh/sh.h (STATIC_CHAIN_REGNUM): Change from r13 to r3.
6855         (INITIALIZE_TRAMPOLINE): Adjust accordingly.
6856         * config/sh/sh.c (sh_expand_prologue): Use r1 as temporary for
6857         stack adjusts, instead of r3.
6858
6859 2001-01-09  Michael Hayes  <mhayes@redhat.com>
6860
6861         * flow.c (flow_loop_scan): Break out of ...
6862         (flow_loops_find) ... here.
6863         * basic-block.h (flow_loop_scan): New.
6864         (LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES): Add.
6865         (LOOP_EDGES, LOOP_EXITS_DOMS, LOOP_ALL): Redefine.
6866
6867 2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6868
6869         * cppinit.c (cpp_cleanup): NULLify macro_buffer and zero
6870         macro_buffer_len.
6871         * cppmacro.c (cpp_macro_definition): Reset macro_buffer_len when
6872         realloc()ing macro_buffer.
6873
6874         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
6875         if it's wider than long and the target's long is wider than the
6876         host's.
6877
6878 2001-01-09  Mark Mitchell  <mark@codesourcery.com>
6879
6880         Remove support for using UWIN as a host machine.
6881         * configure.in: Issue an error message.
6882         * configure: Regenerated.
6883         * config.gcc: Remove xm_* UWIN configury.
6884         * config/i386/xm-uwin.h: Remove.
6885
6886 2001-01-08  Nick Clifton  <nickc@redhat.com>
6887
6888         * config/v850/v850.c (ra_rtx): Delete.
6889         (v850_save_machine_status): Delete.
6890         (v850_restore_machine_status): Delete.
6891         (v850_init_machine_status): New function.
6892         (v850_mark_machine_status): New function.
6893         (v850_free_machine_status): New function.
6894         (v850_return_addr): Use ra_rtx field in machine structure.
6895         (v850_init_expanders): Use new functions.
6896
6897         * config/v850/v850-protos.h: Fix prototypes for v850_output_*
6898         * config/v850/v850.c: Change arguments to v850_output+* functions
6899         to take a const char *, to avoid compile time warning.
6900         * config/v850/v850.h (ASM_OUTPUT_LABELREF): Undefine, not needed.
6901         (USER_LABEL_PREFIX): Redefine.
6902
6903 2000-01-08  Jim Wilson  <wilson@redhat.com>
6904
6905         * sched-rgn.c (BITSET_ADD, BITSET_REMOVE, bitset_member): Cast
6906         1 to unsigned HOST_WIDE_INT before left shift.
6907
6908 2001-01-08  Nick Clifton  <nickc@redhat.com>
6909
6910         * config/arm/arm.c (arm_mark_machine_status): Check to see if
6911         the machine structure has been allocated.
6912         (arm_free_machine_status): New function: Free the machine
6913         specific function structure.
6914
6915 2001-01-08  Richard Henderson  <rth@redhat.com>
6916
6917         * jump.c (simplejump_p): Revert last change.
6918
6919 2001-01-08  Neil Booth  <neil@daikokuya.demon.co.uk>
6920
6921         * cppinit.c (init): Rename init_library.
6922         (cpp_create_reader): Update.
6923         * gcc.c (cpp_options): If -o given, use it as the target of
6924         any -M options.
6925
6926 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
6927
6928         * arm.c (arm_arch5e): New variable.
6929         (all_cores): XScale is a 5TE device.
6930         (arm_override_options): Set arm_arch5e.
6931         (arm_init_builtins): __builtin_prefetch is in arch5e.
6932         * arm.h (arm_arch5e): Declare it.
6933
6934         * arm.h (PREDICATE_CODES): Add arm_hard_register_operand.
6935
6936         * arm.md (define_constants): Add defines for UNSPEC and
6937         UNSPEC_VOLATILE insns.  Update all users.
6938         (define_constants): Add constants for IP_REGNUM, SP_REGNUM, PC_REGNUM.
6939         * arm.c (multi_register_push, note_invalid_constants)
6940         (emit_multi_reg_push, emit_sfm, expand_prologue): Use constants.
6941         * arm.h (SP_REGNUM, IP_REGNUM, PC_REGNUM): Delete defines.
6942         (STACK_POINTER_REGNUM): Define in terms of SP_REGNUM.
6943
6944 Mon Jan  8 16:14:56 MET 2001  Jan Hubicka  <jh@suse.cz>
6945
6946         * jump.c (jump_optimize_1): Use reversed_comparison_code
6947         instead of can_reverse_comparison_p.
6948         (jump_back_p): Likewise.
6949         (invert_exp_1): Likewise.
6950         (thread_jumps): Likewise.
6951         * simplify-rtx.c (simplify_unary_operation): Likewise.
6952         (simplify_ternary_operation): Likewise.
6953         * cse.c (find_comparison_args): Convert to use
6954         can_reverse_comparison_p.
6955         (record_jump_equiv): Likewise.
6956
6957 2001-01-08  Richard Earnshaw  <rearnsha@arm.com>
6958
6959         * arm.h (HARD_REGNO_RENAME_OK): Delete.
6960         (EPILOGUE_USES): Define.
6961         (INITIAL_ELIMINATION_OFFSET): Current prologue code does not
6962         automatically stack the LR if it isn't live.
6963
6964 Mon Jan  8 13:46:02 MET 2001  Jan Hubicka  <jh@suse.cz>
6965
6966         * i386.c (ix86_expand_int_movcc): Take care to reverse fp conditions
6967         properly.
6968
6969 Sun Jan  7 18:37:43 2001  Mark P Mitchell  <mark@codesourcery.com>
6970
6971         * ggc-page.c (max_alignment): New structure.
6972         (MAX_ALIGNMENT): New macro.
6973         (init_ggc): Use it to round up the sizes in the
6974         extra_order_size_table.
6975
6976 2001-01-07  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6977
6978         * config/rs6000/rs6000.h (EPILOGUE_USES): New, mark link register
6979         after reload.
6980
6981 2001-01-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6982
6983         * builtins.def (BUILT_IN_FPRINTF): New entry.
6984
6985         * c-common.c (c_expand_builtin_fprintf): New function.
6986         (init_function_format_info): Handle __builtin_fprintf.
6987         (c_common_nodes_and_builtins): Declare fprintf/__builtin_fprintf.
6988         (c_expand_builtin): Handle BUILT_IN_FPRINTF.
6989
6990         * c-decl.c (duplicate_decls): Adjust comment.
6991
6992         * extend.texi (fprintf): Document new builtin.
6993
6994 2001-01-07  Richard Henderson  <rth@redhat.com>
6995
6996         * jump.c (simplejump_p): Recognize any single_set jump
6997         of the proper form.
6998
6999 2001-01-07  Richard Henderson  <rth@redhat.com>
7000
7001         * configure.in (slibdir): Accept an --with-slibdir option.
7002         Use "test" not "[" in configure.  Default to $(libdir).
7003
7004         * config/t-linux (SHLIB_INSTALL): Double quote slibdir;
7005         fix typo in rm -f.
7006         * config/t-aix43 (SHLIB_INSTALL): Likewise.
7007         * config/alpha/t-osf4 (SHLIB_INSTALL): Likewise.
7008         (SHLIB_LINK): Create links for the soname.
7009         * config/mips/t-iris6: Likewise.
7010         * config/sparc/t-slibgcc: Likewise.
7011         * config/sparc/t-slibgcc-sld: Likewise.
7012
7013 2001-01-07  Jakub Jelinek  <jakub@redhat.com>
7014
7015         * config/i386/i386.c (constant_call_address_operand): Accept
7016         (const (plus (symbol_ref) (const_int))).
7017         * config/i386/i386.h (PREDICATE_CODES): Add CONST for
7018         constant_call_address_operand.
7019
7020 2001-01-08  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7021
7022         * libgcc2.h (W_TYPE_SIZE): Fix case where MIN_UNITS_PER_WORD == 1
7023         and LONG_LONG_TYPE_SIZE > 32.
7024
7025 2001-01-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7026
7027         * jump.c (reversed_comparison_code_parts): Fix typo introduced by
7028         the previous change.
7029
7030 Sun Jan  7 19:37:48 MET 2001  Jan Hubicka  <jh@suse.cz>
7031
7032         * jump.c (reversed_comparison_code_parts, reversed_comparison_code):
7033         New.
7034         (can_reverse_comparison_p): Rewrite to use reversed_comparison_code.
7035         (reverse_condition_maybe_unordered): Abort on unsigned comparisons.
7036         * rtl.h (reversed_comparison_code_parts, reversed_comparison_code):
7037         Declare.
7038
7039 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7040
7041         * fix-header.c (read_scan_file): s/pfile/scan_in/.
7042
7043 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7044
7045         * c-lang.c (c_post_options): Call cpp_post_options.
7046         * objc/objc-act.c (objc_post_options): Similarly.
7047         * cppmain.c (main): Similarly.
7048         * fix-header.c (read_scan_file): Similarly.
7049         * cppinit.c (cpp_start_read): Move option consistency checks
7050         to cpp_post_options.  Don't call init_dependency_output.
7051         If needed, add default target and main file dependency.
7052         (OPT_MD, OPT_MMD): Remove.
7053         (OPT_MF): New.
7054         (cpp_handle_option): Update for OPT_* changes.
7055         (cpp_post_options): New.
7056         (init_dependency_output): Command line -MF overrides environment
7057         variables.  Don't set default target etc.  Suppress output
7058         if dependencies are going to stdout.
7059         (print_help): Update.
7060         * cpplib.h (cpp_post_options): New.
7061         * gcc.c (cpp_options): Update for -MD, -MMD, -MF.
7062
7063 Sun Jan  7 14:44:19 MET 2001  Jan Hubicka  <jh@suse.cz>
7064
7065         * jump.c (comparison_dominates_p): Support unordered compares.
7066
7067 Sun Jan  7 14:39:07 MET 2001  Jan Hubicka  <jh@suse.cz>
7068
7069         * simplify-rtx.c (simplify_relational_operation): Always simplify
7070         ORDERED and UNORDERED when FLAG_FAST_MATH.  Handle properly UNLE
7071         and UNGE.
7072
7073 Sun Jan  7 14:35:13 MET 2001  Jan Hubicka  <jh@suse.cz>
7074
7075         * combine.c (combine_simplify_rtx): Recognize the unordered compares.
7076         (nonzero_bits): Likewise.
7077         (simplify_comparison): Likewise.
7078         (num_sign_bit_copies): Likewise; return more sane value depending
7079         on STORE_FLAG_VALUE.
7080         (known_cond): Do not assume EQ to be always true for equivalent
7081         operands.
7082
7083 Sun Jan  7 14:31:57 MET 2001  Jan Hubicka  <jh@suse.cz>
7084
7085         * cse.c (fold_rtx): Handle unordered comparisons.
7086
7087 Sun Jan  7 13:49:19 MET 2001  Jan Hubicka  <jh@suse.cz>
7088
7089         * rtlanal.c (set_of_1): New static function.
7090         (reg_set_last_1, reg_set_p_1, reg_set_reg, reg_set_flag,
7091          reg_set_last_unknown, reg_set_last_value, reg_set_last_first_regno,
7092          reg_set_last_last_regno): Remove.
7093         (set_of): New global function.
7094         (set_of_data): New structure.
7095         (reg_set_p, reg_set_last): Revamp for set_of.
7096         * rtl.h (set_of): New.
7097
7098 2001-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
7099
7100         * c-common.c (c_common_nodes_and_builtins): Add _Exit builtin.
7101         * extend.texi: Document _Exit builtin.
7102
7103 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7104
7105         * (initialize, initialize_builtins,
7106         initialize_dependency_output, initialize_standard_includes):
7107         Rename s/initialize/init. Update.
7108         (init_dependency_output): Move to after
7109         cpp_handle_options, the correct location temporally at least.
7110         (opt_comp): Move next to init (), its caller.  Fix prototype.
7111         (init): Make "initialized" local scope.
7112         (cpp_create_reader): Always call init ().
7113         (cpp_start_read): Update.
7114         (output_deps): New function, broken out of cpp_finish.
7115         (cpp_finish): Break out output_deps.
7116
7117 2001-01-07  Richard Henderson  <rth@redhat.com>
7118
7119         * collect2.c (COFF specific stuff): Revert 12-06 patch
7120         to prototype system functions.
7121
7122 2001-01-07  Michael Hayes  <mhayes@redhat.com>
7123
7124         * hard-reg-set.h: Add multiple include guard.
7125         * basic-block.h (struct loop): Add `sink' field.
7126         * loop.h: Include sbitmap.h, hard-reg-set.h, and basic-block.h.
7127         (emit_iv_add_mult): Delete.
7128         (loop_iv_add_mult_hoist, loop_iv_add_mult_sink): Define.
7129         (loop_iv_add_mult_emit_before, loop_insn_sink): Define.
7130         (unroll_loop): Remove end_insert_before argument.
7131         * loop.c (loop_givs_rescan): Remove end_insert_before argument.
7132         (maybe_eliminate_biv_1): Likewise.
7133         (emit_iv_add_mult): Delete.
7134         (gen_add_mult, loop_regs_update): New.
7135         (loop_insn_emit_after, loop_insn_emit_before): New.
7136         (loop_insn_sink, loop_insn_sink_or_swim): New.
7137         (emit_iv_add_mult): Delete.
7138         (scan_loop): Set loop->sink.
7139         (loop_givs_reduce): Use loop_insn_sink and its ilk.
7140         (loop_givs_rescan, strength_reduce, check_dbra_loop): Likewise.
7141         (maybe_eliminate_biv_1): Likewise.
7142         (maybe_eliminate_biv_1): Add basic block argument.
7143         * unroll.c (unroll_loop): Remove end_insert_before argument.
7144         (find_splittable_regs): Likewise.
7145         (find_splittable_regs): Use loop_insn_sink and its ilk.
7146         (find_splittable_givs, final_biv_value, final_giv_value): Likewise.
7147
7148 2001-01-07  Michael Hayes  <mhayes@redhat.com>
7149
7150         * loop.h (loop_insn_hoist): New prototype.
7151         * loop.c (loop_insn_hoist, loop_insn_emit_before): New.
7152         (move_movables, loop_givs_rescan): Use loop_insn_hoist.
7153         (check_dbra_loop, load_mems): Likewise.
7154         * unroll.c (unroll_loop, find_splittable_regs): Likewise.
7155         (find_splittable_givs): Likewise.
7156
7157 2001-01-07  Michael Hayes  <mhayes@redhat.com>
7158
7159         * loop.c (emit_iv_add_mult): Use single_set to examine new insn.
7160
7161 2001-01-07  Richard Henderson  <rth@redhat.com>
7162
7163         * sched-rgn.c (is_cfg_nonregular): Fix thinko's last change.
7164
7165 2001-01-07  Richard Henderson  <rth@redhat.com>
7166
7167         * Makefile.in (DRIVER_DEFINES): Define ENABLE_SHARED_LIBGCC and
7168         NO_SHARED_LIBGCC_MULTILIB as required for the target.
7169         * gcc.c (init_spec): Massage the existing libgcc_spec into a
7170         variant that handles a shared libgcc.
7171         (process_command): Always validate -{static,shared}-libgcc.
7172         (do_spec_1): New 'M' case.
7173         * invoke.text (Link Options): Document -{static,shared}-libgcc.
7174
7175 2001-01-07  Richard Henderson  <rth@redhat.com>
7176
7177         * Makefile.in (slibdir): New variable.
7178         (libgcc.mk): Pass SHLIB_INSTALL to mklibgcc.
7179         (installdirs): Create slibdir.
7180         (install-libgcc, install-multilib): Defer to libgcc.mk.
7181         * configure.in (slibdir): Substitute.
7182         * mklibgcc.in (install): New target.
7183
7184         * config/t-linux (SHLIB_LINK): Create links for the soname.
7185         (SHLIB_INSTALL): New.
7186         * config/alpha/t-osf4 (SHLIB_INSTALL): New.
7187         * config/mips/t-iris6 (SHLIB_INSTALL): New.
7188         * config/rs6000/t-aix43 (SHLIB_INSTALL): New.
7189         * config/sparc/t-slibgcc (SHLIB_INSTALL): New.
7190         * config/sparc/t-slibgcc-sld (SHLIB_INSTALL): New.
7191
7192 2001-01-07  Richard Henderson  <rth@redhat.com>
7193
7194         * config/rs6000/aix.h (LINK_LIBGCC_SPECIAL_1): New.
7195         * config/rs6000/rs6000.h (LIBGCC_SPEC): Remove.
7196         * config/rs6000/sysv4.h (LIBGCC_SPEC): Remove.
7197
7198 2001-01-07  Michael Hayes  <mhayes@redhat.com>
7199
7200         * loop.c (count_loop_regs_set): Delete.
7201         (load_mems_and_recount_loop_regs_set): Delete.
7202         (loop_regs_scan): Merge common code from count_loop_regs_set,
7203         scan_loop, and load_mems_and_recount_loop_regs_set.
7204         (scan_loop): Call load_mems directly and loop_regs_scan
7205         again if new registers created.
7206
7207 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7208
7209         * toplev.c (main): Call the front-end specific post_options
7210         hook if one is given.
7211         * toplev.h (struct_lang_hooks, lang_hooks): New.
7212         * c-lang.c (c_post_options, lang_hooks): Implement lang_hooks
7213         for the C front end.
7214         * cp/decl2.c (cxx_post_options, lang_hooks): Implement
7215         lang_hooks for the C++ front end.
7216         * objc/objc-act.c (objc_post_options, lang_hooks): Implement
7217         lang_hooks for the ObjC front end.
7218         * f/com.c (lang_hooks): Hooks for the Fortran front end.
7219         * java/lang.c (lang_hooks): Hooks for the Java front end.
7220
7221 2001-01-07  Neil Booth  <neil@daikokuya.demon.co.uk>
7222
7223         * c-lex.c (init_c_lex): Request #define / #undef callbacks
7224         for verbose DWARF[2] debugging.
7225         (cb_define, cb_undef): The new callbacks.
7226         * toplev.h (debug_define, debug_undef): Make const correct.
7227         * toplev.c (debug_define, debug_undef): Similarly.  Do not
7228         perform the verbosity tests here anymore.
7229
7230 2001-01-07  Alexandre Oliva  <aoliva@redhat.com>
7231
7232         * reload.c (subst_reloads): Take INSN argument.  When
7233         replacing a LABEL_REF in a JUMP_INSN, add a REG_LABEL note.
7234         * reload.h (subst_reloads): Adjust prototype.
7235         * reload1.c (reload_as_needed): Pass INSN to subst_reloads.
7236         * jump.c (mark_all_labels): Canonicalize any REG_LABEL notes
7237         present in JUMP_INSNs and copy them to JUMP_LABEL.
7238         * flow.c (find_label_refs, find_basic_blocks_1): Skip
7239         JUMP_INSNs and insns with REG_LABELs that are followed by
7240         JUMP_INSNs with the same REG_LABEL.
7241         * sched-rgn.c (is_cfg_nonregular): Likewise.
7242         * rtlanal.c (computed_jump_p): Make it false if a REG_LABEL
7243         note is available.
7244         * unroll.c (unroll_loop): Look for REG_LABEL notes in
7245         JUMP_INSNs too.
7246         * rtl.texi (REG_LABEL): Document usage in JUMP_INSNs.
7247
7248 2001-01-06  Richard Henderson  <rth@redhat.com>
7249
7250         * loop.c (scan_loop): Use xcalloc for the regs array.
7251         (load_mems_and_recount_loop_regs_set): Zero the new memory
7252         received from xrealloc.
7253
7254 2001-01-06  Neil Booth  <neil@daikokuya.demon.co.uk>
7255
7256         * mkdeps.c (deps_add_dep): Fix vector re-allocation.
7257
7258 Sat Jan  6 00:09:34 2001  J"orn Rennecke <amylaar@redhat.com>
7259
7260         * integrate.c (copy_rtx_and_substitute): When copying
7261         an ignored return value, strip REG_FUNCTION_VALUE_P.
7262
7263 2001-01-06  Michael Hayes  <mhayes@redhat.com>
7264
7265         * loop.c (debug_biv, debug_giv): New.
7266         (loop_biv_dump): Break out from ...
7267         (record_biv): ... here.
7268         (loop_giv_dump): Break out from ...
7269         (record_giv): ... here.
7270         (loop_bivs_check): Use print_simple_rtl.
7271         * unroll.c (loop_iterations): Use print_simple_rtl.
7272
7273 2000-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7274
7275         * pa.md (return, return_internal): Modify patterns to prevent regrename
7276         mucking with the return pointer.
7277
7278 2001-01-05  Richard Henderson  <rth@redhat.com>
7279
7280         * dwarf2out.c (mem_loc_descriptor) [case MEM]: Revert 10-31 change.
7281
7282 Fri Jan  5 16:34:18 2001  Nick Clifton  <nickc@redhat.com>
7283
7284         * config/v850/lib1funcs.asm: Replace __mulsi3 routine with faster
7285         version supplied by Matteo Frigo.
7286
7287 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7288
7289         * cpp.texi: Update for -MQ.
7290         * cppinit.c (cpp_create_reader): Always create pfile->deps.
7291         (cpp_cleanup): Always free pfile->deps.
7292         (initialize_dependency_output): Don't create pfile->deps.
7293         (cpp_handle_option): Similarly.
7294         (OPT_MQ): New.
7295         * gcc.c (cpp_options): Handle -MQ.
7296         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -MQ.
7297         * mkdeps.c (base_name): Remove.
7298         (deps_init): Don't allocate vector space until it's needed.
7299         (deps_free): Only free vectors if allocated.
7300         (deps_add_target, deps_add_dep): Update for initial allocation.
7301         (deps_add_default_target): Don't strip to the base_name.
7302
7303 2001-01-05  DJ Delorie <dj@redhat.com>
7304
7305         * config/v850/v850.h (RETURN_ADDR_RTX): Define.
7306         (INIT_EXPANDERS): Define.
7307
7308         * config/v850/v850.c (struct machine_function): Define.
7309         (v850_save_machine_status): New function.
7310         (v850_restore_machine_status): New function.
7311         (v850_return_addr): New function.
7312         (v850_init_expanders): New function.
7313
7314         * config/v850/v850-protos.h: Add prototypes for v850_return_addr
7315         and v850_init_expanders.
7316
7317 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
7318
7319         * cpplib.h (struct cpp_reader): Add help_only field.
7320         * cppinit.c (COMMAND_LINE_OPTIONS): Add OPT_version.
7321         (cpp_handle_option): Set pfile->help_only if we see -h,
7322         --help, -target-help, or --version.  Print version string but
7323         do not set help_only if we see -v or -version.  Make text
7324         printed by -v match that printed by (-)-version.
7325
7326         * cppmain.c (main): Exit after option parsing if
7327         pfile->help_only is true.
7328
7329         * toplev.c (independent_decode_option): Call print_version,
7330         then exit, if we see --version (but not -version).
7331         (print_version): Split lengthy message into two lines.
7332
7333 2001-01-05  Nick Clifton  <nickc@redhat.com>
7334
7335         * config/v850/v850.c (v850_encode_data_area): Use alloca to create
7336         temporary string for initialisation before calling ggc_alloc_string.
7337
7338 2001-01-06  Michael Hayes  <mhayes@redhat.com>
7339
7340         * rtl.h (print_simple_rtl): New.
7341         * print-rtl.c (print_simple_rtl): New.
7342         (flag_simple): New.
7343         (print_rtx): Disable printing of flags and modes, etc.,
7344         if `flag_simple` nonzero.
7345
7346 2001-01-05  Zack Weinberg  <zack@wolery.stanford.edu>
7347
7348         * function.c (fixup_var_refs): Use push_to_full_sequence where
7349         possible.
7350
7351 2001-01-05  Michael Meissner  <meissner@redhat.com>
7352
7353         * flags.h (flag_reorder_blocks): Add declaration.
7354         (flag_rename_block): Ditto.
7355
7356 2001-01-05  DJ Delorie  <dj@redhat.com>
7357
7358         * function.c (reorder_blocks): Make sure the flags are all reset
7359         before using them to mark blocks, else a second invocation will
7360         corrupt the block chain.
7361         (reorder_blocks_0): New, resets the flags.
7362
7363 Fri Jan  5 20:34:06 2001  J"orn Rennecke <amylaar@redhat.com>
7364
7365         * cse.c (find_comparison_args): Stop if the argument is known to
7366         be constant.
7367
7368 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
7369
7370         * config/sh/sh.md (movdf): When splitting load into pair of
7371         registers, don't clobber the register used in the address too
7372         early.
7373
7374 2001-01-05  Jeffrey Oldham  <oldham@codesourcery.com>
7375
7376         * varasm.c (mark_constant_pool): Improve initial comments.
7377         (mark_constants): Move marking of constants to mark_constant.
7378         (mark_constant): New function to recursively mark all constants
7379         referred to by a constant.
7380
7381 2001-01-05  Catherine Moore  <clm@redhat.com>
7382
7383         * dbxout.c ((dbxout_parms): Handle invisible ref where decl is a REG.
7384
7385 2001-01-05  Phil Edwards  <pme@sources.redhat.com>
7386
7387         * cp/lang-options.h:  Bring comment in line with reality.
7388         * f/lang-options.h:  Likewise.
7389         * java/lang-options.h:  Likewise.
7390         * objc/lang-options.h:  Likewise.
7391         * ch/lang-options.h:  Likewise.
7392         * f/g77.texi:  And update the manual.
7393
7394 2001-01-05  Marek Michalkiewicz  <marekm@linux.org.pl>
7395             Denis Chertykov  <denisc@overta.ru>
7396
7397         * config/avr/avr-protos.h (avr_peep2_scratch_safe): Prototype.
7398         * config/avr/avr.c (avr_peep2_scratch_safe): New function.
7399         * config/avr/avr.md (all peepholes that request a scratch register):
7400         Call it, FAIL the peephole if not safe (in interrupt functions).
7401
7402 2001-01-05  Mark Mitchell  <mark@codesourcery.com>
7403
7404         * ggc-page.c (NUM_EXTRA_ORDERS): Hardwire to zero for now.
7405
7406 2001-01-05  Joseph S. Myers  <jsm28@cam.ac.uk>
7407
7408         * builtins.def (BUILT_IN_CONJ, BUILT_IN_CREAL, BUILT_IN_CIMAG):
7409         Define.
7410         * builtins.c (expand_builtin): Abort on BUILT_IN_CONJ,
7411         BUILT_IN_CREAL and BUILT_IN_CIMAG.
7412         * c-common.c (c_common_nodes_and_builtins): Create builtin conjf,
7413         conj, conjl, crealf, creal, creall, cimagf, cimag and cimagl.
7414         (expand_tree_builtin): Handle BUILT_IN_CONJ, BUILT_IN_CREAL and
7415         BUILT_IN_CIMAG.
7416         * extend.texi: Document these builtins.
7417
7418 2001-01-05  Daniel Berlin  <dberlin@redhat.com>
7419
7420         * c-common.c (lang_get_alias_set): Say we know nothing of
7421         VECTOR_TYPE aliasing.
7422
7423         * dwarf2out.c (is_base_type): Handle VECTOR_TYPE properly.
7424
7425 2001-01-05  Bruce Korb  <bkorb@gnu.org>
7426
7427         * fixinc/mkfixinc.sh(vax-*-bsd): convert exit and atexit calls to
7428         their x* equivalent versions for atexit-less systems
7429         * fixinc/fixincl.c(main): do not return from main() on atexit-less
7430         systems (or any other system any more).
7431
7432 2001-01-05  Richard Earnshaw  <rearnsha@arm.com>
7433
7434         * arm.md (ldmsi_postinc): Avoid use of match_dup between input and
7435         output operands.  Use arm_hard_register_operand for operand 4.
7436         (stmsi_postinc): Similarly.
7437         (ldmsi): Use arm_hard_register_operand for opernand 2.
7438         (stmsi): Similarly.
7439         * arm.c (arm_hard_register_operand): New function.
7440         * arm-protos.h (arm_hard_register_operand): Prototype it.
7441
7442         * arm.h (HARD_REGNO_RENAME_OK): Define.
7443
7444 Fri Jan  5 16:29:49 MET 2001  Jan Hubicka  <jh@suse.cz>
7445
7446         * simplify-rtx.c (cfc_args): add "unordered" field.
7447         (check_fold_consts): Set unordered field.
7448         (simplify_relational_operation): Simplify the unordered
7449         comparisons.
7450
7451         * reg-stack.c (swap_rtx_condition): Ensure that the transformation
7452         is valid.
7453
7454         * emit-rtl.c (try_split): Fix code to mark labels.
7455         * jump.c (mark_jump_label): Make global.
7456         * rtl.h (mark_jump_label): Declare.
7457
7458         * predict.c (estimate_probability): Handle unordred comparisons.
7459
7460 2001-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
7461
7462         * cpp.texi: Update for -MP.  Clarify behaviour of -MT.
7463         * cppinit.c (initialize_dependency_output):  Update.
7464         (cpp_finish): Output dummy targets for -MP.
7465         (OPT_MP): New.
7466         (cpp_handle_option): Handle -MP.  Don't quote -MT options.
7467         * cpplib.h (struct cpp_options): Add deps_phony_targets.
7468         * gcc.c (cpp_options): Update to handle -MP.
7469         * mkdeps.c (deps_add_target, deps_add_default_target): Update
7470         to quote only the default target.
7471         (deps_phony_targets): Insert a preceding newline.  Rename from
7472         deps_dummy_targets for consistency.
7473         * mkdeps.h: Update
7474
7475 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
7476
7477         * calls.c (emit_library_call_value_1): Support
7478         INIT_CUMULATIVE_LIBCALL_ARGS.
7479         * tm.texi (INIT_CUMULATIVE_LIBCALL_ARGS): Document it.
7480
7481 2001-01-04  Richard Henderson  <rth@redhat.com>
7482
7483         * c-decl.c (finish_struct): Detect flexible array members
7484         used in an inappropriate context.
7485         * c-typeck.c (really_start_incremental_init): Special case
7486         constructor_max_index for zero length arrays.
7487         (pop_init_level): Allow initialization of flexible array
7488         members.  Deprecate initialization of zero length arrays.
7489         Don't issue missing initializer warning for flexible array
7490         members or zero length arrays.
7491         (process_init_element): Don't dereference null DECL_SIZE.
7492         * varasm.c (array_size_for_constructor): Return a HOST_WIDE_INT.
7493         Don't abort for empty constructors.  Use size_binop
7494         (output_constructor): Add commentary regarding zero length
7495         array futures.  Abort if we try to initialize an array of
7496         unspecified length with a non-empty constructor in the middle
7497         of a structure.
7498
7499         * extend.texi (Zero Length): Update and clarify documentation
7500         on static initialization.
7501
7502 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7503
7504         * config/c4x/c4x.c (c4x_expand_prologue): Don't compile an ISR
7505         with more than 32767 words of local storage.
7506
7507 2001-01-05  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7508
7509         * config/c4x/c4x.c (c4x_init_builtins): Remove builtin support
7510         for 'abs', 'labs', and 'fabs'.
7511         (c4x_expand_builtin): Likewise.
7512         * config/c4x/c4x.h (enum c4x_builtins): Likewise.
7513
7514 2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
7515
7516         * config/sh/sh.md (prget, prset): New insn types.
7517         (return delay slot): Dont' allow prset.
7518         (call, sfunc delay slot): Don't allow prget.
7519         (movsi_i, movsi_ie, movsi_i_lowpart): Create separate alternatives
7520         for prset and prget.
7521
7522 2001-01-05  Michael Hayes  <mhayes@redhat.com>
7523
7524         * loop.h (struct loop_reg): New.
7525         (struct loop_regs): Change to use array of `struct loop_reg'.
7526         * loop.c: Replace assortment of varrays with single regs array.
7527         (count_one_set): Delete may_not_move array argument
7528         and use regs array instead.  All caller's changed.
7529         (count_loop_regs_set): Delete may_not_move and single_usage
7530         arguments and use regs array instead.  All caller's changed.
7531         (find_single_use_in_loop): Replace usage array argument with pointer
7532         to regs structure.  All caller's changed.
7533         (loop_optimize): Delete `moved_once' array.
7534
7535 2001-01-05  Michael Hayes  <mhayes@redhat.com>
7536
7537         * loop.c (prescan_loop): Set loop_info->has_nonconst_call.
7538         Use it instead of loop_info->has_call for scanning loop mems.
7539         (check_dbra_loop): Replace loop_info->has_call test with
7540         loop_info->has_nonconst_call.
7541
7542 2000-01-04  Matthew Hiller  <hiller@redhat.com>
7543
7544         * config/sh/sh.h (EPILOGUE_USES): Recognize fpscr as epilogue-used
7545         for TARGET_SH3E.
7546
7547 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7548
7549         * fold-const.c (fold): When folding a CONJ_EXPR of a COMPLEX_CST,
7550         use TREE_REALPART and TREE_IMAGPART instead of TREE_OPERAND.
7551
7552 2001-01-04  Joseph S. Myers  <jsm28@cam.ac.uk>
7553
7554         * c-common.c (SIZE_TYPE, WCHAR_TYPE): Define.
7555         (flag_short_double, flag_short_wchar): Define.
7556         (c_common_nodes_and_builtins): Create many tree nodes shared
7557         between C and C++ here instead of in cp/decl.c and ...
7558         * c-decl.c (init_decl_processing): ... here.
7559         (SIZE_TYPE, WCHAR_TYPE): Don't define.
7560         (flag_short_double, flag_short_wchar): Don't define.
7561         (record_builtin_type): New function.
7562         (build_void_list_node): New function.
7563         * c-common.h (flag_short_double, flag_short_wchar,
7564         record_builtin_type, build_void_list_node): Declare.
7565
7566 Thu Jan  4 21:09:47 2001  J"orn Rennecke <amylaar@redhat.com>
7567
7568         * integrate.c (expand_inline_function): Don't put a virtual
7569         register into the reg map.
7570
7571         * function.c (fixup_var_refs_1): If force_operand didn't put
7572         the address into the target, move it there.
7573
7574 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
7575
7576         Special-case tree_decl/tree_list allocations.
7577         * ggc-page.c (OBJECT_PER_PAGE): Reimplement.
7578         (OBJECT_SIZE): New macro.
7579         (NUM_EXTRA_ORDER): Likewise.
7580         (extra_order_size_table): New variable.
7581         (NUM_ORDERS): New macro.
7582         (objects_per_page_table): New variable.
7583         (object_size_table): New variable.
7584         (G.pages): Use NUM_ORDERS to bound the array.
7585         (G.page_tails): Likewise.
7586         (DIV_ROUND_UP): Remove.
7587         (BITMAP_SIZE): Use CEIL, instead of DIV_ROUND_UP.
7588         (alloc_page): Use OBJECT_SIZE.
7589         (size_lookup): Don't make it const.
7590         (ggc_alloc): Use OBJECT_SIZE.
7591         (ggc_set_mark): Likewise.
7592         (ggc_get_size): Likewise.
7593         (init_ggc): Set up the object_size_table, objects_per_page_table,
7594         and adjust size_lookup.
7595         (ggc_recalculate_in_use_p): Use CEIL, not DIV_ROUND_UP.
7596         (ggc_pop_context): Use NUM_ORDERS.
7597         (clear_marks): Likewise.
7598         (sweep_pages): Likewise.
7599         (poison_pages): Likewise.
7600         (ggc_print_statistics): Use OBJECT_SIZE.
7601
7602 Thu Jan  4 15:54:05 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7603
7604         * varasm.c (output_constructor): Use HOST_WIDE_INT for sizes.
7605         Only call array_size_for_constructor if last field and array type
7606         with no upper bound.
7607
7608 2001-01-04  Philip Blundell  <philb@gnu.org>
7609
7610         * config/arm/arm.c (arm_gen_constant): Prefer to emit constants
7611         from bit 31 downwards, if this requires no more insns.
7612         (count_insns_for_constant): New helper function for above.
7613
7614 2001-01-04  Alexandre Oliva  <aoliva@redhat.com>
7615
7616         * gencodes.c (output_predicate_decls): Remove empty initializer.
7617
7618 2001-01-04  Mark Mitchell  <mark@codesourcery.com>
7619
7620         * tree.c (copy_node): Remove documentation about obstacks.
7621         (buidl1): Check that nobody tries to build 2-argument nodes this
7622         way.
7623
7624 2001-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7625
7626         * sparc.h (PREDICATE_CODES): Delete fp_sethi_p, fp_mov_p and
7627         fp_high_losum_p.
7628
7629         * gencodes.c (output_predicate_decls): Fill empty initializer
7630         braces.
7631
7632 2001-01-04  Jakub Jelinek  <jakub@redhat.com>
7633
7634         * tradcpp.c (deps_file, print_deps_missing_files): New variables.
7635         (main): Handle -MG, -MD, -MMD.  Bail out if -MG is given without -M
7636         or -MM.
7637         (do_include): Handle missing headers like cpp0.
7638         * cppfiles.c (_cpp_execute_include): Don't prefix absolute header
7639         paths with first include pathname.  Don't strcat to uninitialized
7640         string.
7641
7642 2001-01-04  Bernd Schmidt  <bernds@redhat.com>
7643
7644         * regrename.c (regrename_optimize): Don't rename from frame pointer
7645         if frame_pointer_needed.
7646         (do_replace): Don't set ORIGINAL_REGNO to a hard register number.
7647         * config/ia64/ia64.c (emit_all_group_insn_barriers): New function.
7648         (ia64_reorg): Use it instead of scheduling if ! optimize.
7649         (errata_emit_nops): Properly call asm_noperands.
7650         (ia64_sched_reorder): Finish cycle if we see an asm.
7651         (ia64_variable_issue): Clear scheduling state after asms.
7652
7653 2001-01-04  Neil Booth  <neil@daikokuya.demon.co.uk>
7654
7655         * cpp.texi: Update for -MT.
7656         * cppinit.c (initialize_dependency_output): Add a default
7657         target if none has been given already.
7658         (no_tgt, OPT_MT): New.
7659         (cpp_handle_option): Handle -MT.  Update -M etc.
7660         * cpplib.h (struct cpp_options): Remove deps_target.
7661         * gcc.c (cpp_options): Handle -MT.
7662         * mkdeps.c (struct deps): Move from mkdeps.h.
7663         (deps_calc_target): Rename deps_add_default_target.  Add a
7664         default target if none has been specified already.
7665         * mkdeps.h (struct deps): Move to mkdeps.c.
7666         (deps_calc_target): Rename deps_add_default_target.
7667
7668 2000-01-03  Richard Henderson  <rth@redhat.com>
7669
7670         * c-decl.c (grokdeclarator): Give zero-length arrays size zero.
7671         Remove dead code.
7672         * c-typeck.c (push_init_level): Move checks for flexible array
7673         members and zero length arrays ...
7674         (pop_init_level): ... here.  Silently discard empty initializations.
7675         Remove dead code.
7676         * varasm.c (output_constructor): Update for sizeof change to
7677         zero-length arrays.
7678
7679         * extend.texi (Zero Length): Clarify semantics.
7680
7681 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
7682
7683         * configure.in (tm.h): Include isns-codes.h last.
7684         * configure: Rebuilt.
7685
7686 2001-01-03  Richard Henderson  <rth@redhat.com>
7687
7688         * config/alpha/alpha.md (addvsi3, addvdi3): New.
7689         (negvsi2, negvdi2, subvsi3, subvdi3, mulvsi3, mulvdi3): New.
7690
7691 2001-01-03  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
7692
7693         * tradcpp.c (main): Make sure finclude() is called with a valid
7694         indepth value while handling -include.
7695
7696 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
7697
7698         * gencodes.c (output_predicate_decls): New function.
7699         (main): Call it.
7700         * machmode.h (GET_MODE_MASK): Arrange for it to be defined
7701         even if it is not the first time machmode.h is #included.
7702         * config/sh/sh.c (fpul_operand): Declare MODE argument.
7703         * tm.texi (PREDICATE_CODES): Document predicate declarations.
7704         * gcc.texi (Copyright): Added 2001.
7705
7706 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7707
7708         * c-common.c (c_common_lang_init): New function.  Warn if format
7709         warning options which only have effects when used with -Wformat
7710         are used without -Wformat.
7711         * c-common.h (c_common_lang_init): Declare.
7712         * c-lang.c (lang_init): Call c_common_lang_init.
7713         * objc/objc-act.c (lang_init): Call c_common_lang_init.
7714
7715 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7716
7717         * configure.in: Check for the mktemp command.
7718         * configure: Regenerate.
7719         * gccbug.in: Use a separate temporary file $TEMP0 for one use of
7720         $TEMP.  Create temporary files with mktemp, if available at
7721         configure time; otherwise use set -C.  Remove temporary files
7722         before exit.
7723
7724 2001-01-03  Joseph S. Myers  <jsm28@cam.ac.uk>
7725
7726         * configure.in: Require at least texinfo 4.0.  Check for whether
7727         Pod::Man is sufficiently recent to regenerate GCC manpages.
7728         * configure:  Regenerate.
7729         * Makefile.in (TEXI2POD): Call perl explicitly rather than relying
7730         on #!.
7731         (GENERATED_MANPAGES): Define.
7732         (generated-manpages): New target.  Depend on cpp.1 as well as
7733         gcov.1.
7734         (install-man): Depend on $(GENERATED_MANPAGES) (defined by
7735         configure to generated-manpages or empty) rather than on the
7736         manpages directly.  Remove execute permission from installed
7737         gcov.1 as well as cpp.1.
7738         * cpp.1, gcov.1: Regenerate.
7739
7740 2001-01-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7741
7742         * builtins.c (expand_builtin_strncmp): Use host_integerp and
7743         tree_low_cst.  Allow using cmpstrsi in more cases.
7744
7745 Wed Jan  3 10:48:43 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7746
7747         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for variable
7748         sized types.
7749
7750 Wed Jan  3 12:22:32 2001  Alexandre Oliva  <aoliva@redhat.com>
7751
7752         * build-make (HOST_CFLAGS): Added `-DGENERATOR_FILE'.
7753         * Makefile.in (HOST_CFLAGS): Mention build-make.
7754
7755 Wed Jan  3 08:53:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7756
7757         * config/sparc/sparc.md (nonlocal_goto): Emit goto_handler_and_restore
7758         as JUMP_INSN.
7759
7760 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
7761
7762         * builtins.c (expand_builtin_return_addr): Don't use MEM_ALIAS_SET on
7763         a REG rtx.
7764
7765         * cse.c (cse_rtx_varies_p): Accept additional FROM_ALIAS arg.  All
7766         callers changed.
7767
7768         * alias.c (throughout): Use ORIGINAL_REGNO when accessing
7769         reg_base_value and reg_known_value arrays.
7770         (init_alias_analysis): Add more cases to detect known values.
7771         * sched-deps.c (deps_may_trap_p): New function.
7772         (sched_analyze_2): Use it.
7773
7774 2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
7775
7776         * combine.c (simplify_shift_const): Even if we're sign-extracting,
7777         don't discard an ASHIFTRT if we're shifting in a wider mode.
7778
7779 2000-01-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7780
7781         * toplev.c (rest_of_compilation): Don't print basic block information
7782         when CFG isn't up to date.
7783
7784 2001-01-02  Mark Elbrecht  <snowball3@bigfoot.com>
7785
7786         * config/i386/djgpp.h (DWARF2_DEBUGGING_INFO): Define.
7787         (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_ASM_OP): Define.
7788         (UNALIGNED_SHORT_ASM_OP): Define.
7789         (CPP_PREDEFINES): Remove defines for GO32 and DJGPP.
7790
7791 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
7792
7793         * fold-const.c (fold_convert): Fix typo.
7794
7795 2001-01-02  Richard Henderson  <rth@redhat.com>
7796
7797         * c-common.h (ASM_INPUT_P): New.
7798         * c-parse.in (asm): Set it when needed.
7799         * c-semantics.c (genrtl_asm_stmt): Test it instead of the
7800         existance of an operand.
7801
7802 Tue Jan  2 20:27:07 MET 2001  Jan Hubicka  <jh@suse.cz>
7803
7804         * dwarf2out.c (stack_adjust_offset): Handle PRE_MODIFY.
7805         (dwarf2out_frame_debug_expr): Likewise.
7806         (mem_loc_descriptor): Handle PRE and POST_MODIFY.
7807
7808 Tue Jan  2 20:21:31 MET 2001  Jan Hubicka  <jh@suse.cz>
7809
7810         * i386.c (ix86_split_to_parts): Return number of part required;
7811         handle TFmodes.
7812         (print_operand, ix86_expand_branch, ix86_expand_fp_movcc): Handle
7813         TFmodes.
7814         (ix86_split_long_move): Use number of part returned
7815         by ix86_split_to_parts
7816         * i386.h (MASK_128BIT_LONG_DOUBLE, TARGET_128BIT_LONG_DOUBLE):
7817         New macros.
7818         (TARGET_SWITCHES): Add 128bit-long-double and 96bit-long-double
7819         (LONG_DOUBLE_TYPE_SIZE): Change from constant.
7820         (MAX_LONG_DOUBLE_TYPE_SIZE): New macro.
7821         (INTEL_EXTENDED_IEEE_FORMAT): Likewise.
7822         (ALIGN_MODE_128): Add TFmode.
7823         (IS_STACK_MODE): Likewise.
7824         (HARD_REGNO_NREGS): TFmode needs 3 registers.
7825         (HARD_REGNO_OK): Support TFmodes.
7826         (ASM_OUTPUT_LONG_DOUBLE): Handle TFmodes.
7827         * i386.md (scheduler definitions): Use memory operand to determine
7828         fst/fld instructions; use mode attribute to determine real mode of
7829         the instruction.
7830         (*tf): New patterns, expanders and splitters; based on XFmode patterns.
7831         * invoke.texi (128bit-long-double, 96bit-long-double): Document.
7832
7833 2001-01-02  Mark Mitchell  <mark@codesourcery.com>
7834
7835         * tree.def (TRUTH_NOT_EXPR): Improve documentation.
7836
7837 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
7838
7839         * expr.c (store_constructor_field): Update ALIGN before calling
7840         store_constructor.
7841
7842 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
7843
7844         * config/mips/mips.c (function_arg): Don't pass NULL_TREE to
7845         host_integerp.
7846
7847 2001-01-02  Jeffrey Oldham  <oldham@codesourcery.com>
7848
7849         * tm.texi (FUNCTION_ARG): Document that @var{type} can be an
7850         incomplete type.
7851
7852 Tue Jan  2 10:47:38 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.
7853
7854         * c-decl.c (start_function): Don't warn on third parameter to main.
7855
7856 2001-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7857
7858         * tsystem.h: Define HAVE_DECL_GETOPT.
7859
7860 2001-01-02  Philip Blundell  <pb@futuretv.com>
7861
7862         * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Avoid illegal clobber
7863         of input operand.
7864
7865 2001-01-02  Richard Henderson  <rth@redhat.com>
7866
7867         * alpha.md (*ze_and_ne): Duplicate insn condition to split.
7868
7869 2001-01-02  Andreas Jaeger  <aj@suse.de>
7870
7871         * c-decl.c (c_decode_option): Remove support of
7872         -Wmissing-noreturn.
7873
7874         * toplev.c (documented_lang_options): Remove -Wmissing-noreturn.
7875         (W_options): Add -Wmissing-noreturn here.
7876
7877         * flow.c: Define lang_missing_noreturn_ok_p.
7878         (check_function_return_warnings): Use it.
7879
7880         * c-common.h: Declare lang_missing_noreturn_ok_p.
7881
7882         * c-lang.c (c_missing_noreturn_ok_p): New function.
7883         (lang_init): Set lang_missing_noreturn_ok_p.
7884
7885         * invoke.texi (Warning Options): Document this.
7886
7887 2000-12-27  Phil Edwards  <pme@sources.redhat.com>
7888
7889         * extend.texi (C++ Extensions):  New node for C++ attributes;
7890         describe init_priority and com_interface.
7891         * invoke.texi:  Remove -finit-priority as it now has zero effect.
7892         * install.texi:  Fix xref syntax.
7893         * md.texi:  Likewise.
7894
7895 Mon Jan  1 21:28:29 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7896
7897         * config.gcc (sparc64-wrs-vxworks*): New case.
7898         * config/sparc/vxsparc64.h, config/sparc/t-vxsparc64: New files.
7899
7900         * config/sparc/sparc.c (sparc_override_options): Do support different
7901         pointer and architecture size.
7902         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Always 4.
7903         (POINTERS_EXTEND_UNSIGNED): Define.
7904         (Pmode): Test TARGET_ARCH64, not TARGET_PTR64.
7905         (FUNCTION_MODE): Define to be Pmode.
7906         * config/sparc/sparc.md (64-bit call patterns): FUNCTION_MODE now DI.
7907
7908         * function.c (expand_function_end): Properly handle DECL_RESULT
7909         and copy when ptr_mode != Pmode.
7910         * expmed.c (make_tree): Convert X from Pmode to ptr_mode, if needed.
7911
7912 2001-01-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7913
7914         * c-common.c (c_common_nodes_and_builtins): Set prototype
7915         parameters for __builtin_fputs, __builtin_fputc and
7916         __builtin_fwrite.  Don't declare plain fputc as a builtin.
7917
7918 2001-01-01  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7919
7920         * loop.c (add_label_notes): Increment the label usage count when
7921         a note is added to an insn which refers to a CODE_LABEL.
7922         * gcse.c (add_label_notes): Likewise.
7923
7924 2001-01-01  Andreas Jaeger  <aj@suse.de>
7925
7926         * loop.c (scan_loop): Use xmalloc to allocate movables.
7927
7928 2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
7929
7930         * tm.texi (REGISTER_MOVE_COST): Add a mode argument.
7931         * reload.c (REGISTER_MOVE_COST): Likewise.  Adjust all callers.
7932         * reload1.c (REGISTER_MOVE_COST): Likewise.
7933         * regclass.c (REGISTER_MOVE_COST): Likewise.
7934         (move_cost, may_move_in_cost, may_move_out_cost): Add mode
7935         dimension.  Adjust all users.
7936         (init_reg_sets_1): Iterate on all modes.
7937         * config/1750a/1750a.h (REGISTER_MOVE_COST): Adjust.
7938         * config/a29k/a29k.h (REGISTER_MOVE_COST): Adjust.
7939         * config/alpha/alpha.h (REGISTER_MOVE_COST): Adjust.
7940         * config/arc/arc.h (REGISTER_MOVE_COST): Adjust.
7941         * config/arm/arm.h (REGISTER_MOVE_COST): Adjust.
7942         * config/avr/avr.h (REGISTER_MOVE_COST): Adjust.
7943         * config/c4x/c4x.h (REGISTER_MOVE_COST): Adjust.
7944         * config/d30v/d30v.h (REGISTER_MOVE_COST): Adjust.
7945         * config/dsp16xx/dsp16xx.h (REGISTER_MOVE_COST): Adjust.
7946         * config/h8300/h8300.h (REGISTER_MOVE_COST): Adjust.
7947         * config/i386/i386.h (REGISTER_MOVE_COST): Adjust.
7948         * config/ia64/ia64.h (REGISTER_MOVE_COST): Adjust.
7949         * config/m32r/m32r.h (REGISTER_MOVE_COST): Adjust.
7950         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Adjust.
7951         * config/m68k/m68k.h (REGISTER_MOVE_COST): Adjust.
7952         * config/mcore/mcore.h (REGISTER_MOVE_COST): Adjust.
7953         * config/mips/mips.h (REGISTER_MOVE_COST): Adjust.
7954         * config/mn10200/mn10200.h (REGISTER_MOVE_COST): Adjust.
7955         * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Adjust.
7956         * config/ns32k/ns32k.h (REGISTER_MOVE_COST): Adjust.
7957         * config/pa/pa.h (REGISTER_MOVE_COST): Adjust.
7958         * config/pdp11/pdp11.h (REGISTER_MOVE_COST): Adjust.
7959         * config/pj/pj.h (REGISTER_MOVE_COST): Adjust.
7960         * config/romp/romp.h (REGISTER_MOVE_COST): Adjust.
7961         * config/rs6000/rs6000.h (REGISTER_MOVE_COST): Adjust.
7962         * config/sh/sh.h (REGISTER_MOVE_COST): Adjust.
7963         * config/sparc/sparc.h (REGISTER_MOVE_COST): Adjust.
7964
7965 2001-01-01  Bernd Schmidt  <bernds@redhat.com>
7966
7967         * alias.c (fixed_scalar_and_varying_struct): Adjust prototype of
7968         arg VARIES_P.  Call it with extra arg.
7969         (true_dependence): Likewise.
7970         * rtl.h (rtx_addr_can_trap_p): Declare.
7971         (rtx_varies_p, rtx_addr_varies_p, true_dependence): Update
7972         prototypes.
7973         * rtlanal.c (rtx_addr_can_trap_p): No longer static.
7974         (rtx_varies_p): Accept extra arg FOR_ALIAS; only disallow
7975         pic offset table register if it's zero.  All callers changed.
7976         (rtx_addr_varies_p): Accept extra arg FOR_ALIAS; all callers changed.
7977
7978 Mon Jan  1 07:38:33 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7979
7980         * explow.c (convert_memory_address, case SYMBOL_REF): Copy
7981         STRING_POOL_ADDRESS_P.
7982
7983         * config/sparc/sparc.c (input_operand): Properly test for short op.
7984
7985         * config.gcc (sparc-*-elf): Include sparc/sol2.h.
7986         (sparc-*-rtems*): Include sparc/sol2.h and sparc/elf.h.
7987         (sparclite-*-elf*, sparc86x-*-elf*): Likewise.
7988         * config/sparc/elf.h: No longer include sol2.h.
7989         * config/sparc/lifeelf.h: No longer include sparc/elf.h.
7990         * config/sparc/rtemself.h, config/sparc/sp86x-elf.h: Likewise.
7991
7992         * config/sparc/sparc.md: Test TARGET_ARCH64 instead of TARGET_PTR64.
7993
7994 2001-01-01  Michael Hayes  <mhayes@redhat.com>
7995
7996         * loop.c (check_insn_for_bivs): Use ivs->n_regs to check array bounds.
7997         (find_mem_givs, record_biv, maybe_eliminate_biv): Likewise.
7998         (record_initial): Likewise.
7999         * unroll.c (copy_loop_body, loop_iterations): Likewise.
8000         (remap_split_bivs): Likewise.
8001
8002 2001-01-01  Michael Hayes  <mhayes@redhat.com>
8003
8004         * loop.c (loop_ivs_free): New function.
8005         (strength_reduce): Break out from...
8006
8007 2001-01-01  Michael Hayes  <mhayes@redhat.com>
8008
8009         * loop.h (struct iv): New.
8010         (REG_IV_TYPE, REG_IV_CLASS, REG_INFO): Modify to use 'struct iv'.
8011         (struct loop_ivs): Replace 'reg_iv_type', 'reg_iv_info',
8012         'reg_biv_class' fields with 'regs' and 'n_regs'.
8013         (struct ivs): Rename 'loop_iv_list' field to 'list'.
8014         * loop.c (loop_bivs_find, strength_reduce): Use ivs->regs array.
8015         * unroll.c (loop_iterations): Check array bounds with ivs->n_regs.
8016
8017 2000-12-31  Alexandre Oliva  <aoliva@redhat.com>
8018
8019         * resource.c (mark_referenced_resources): Abort() before
8020         attempting to mark a pseudo register.
8021         (mark_set_resources): Likewise.
8022
8023 2001-01-01  Michael Hayes  <mhayes@redhat.com>
8024
8025         * loop.h (REG_IV_CLASS): New accessor macro.
8026         * loop.c (REG_IV_CLASS): Use it instead of reg_iv_class array.
8027         * unroll.c (REG_IV_CLASS): Likewise.
8028
8029 See ChangeLog.4 for earlier changes.