OSDN Git Service

Upgrade to AutoGen 5 Template
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2001-05-17  Bruce Korb <bkorb@gnu.org>
2
3         * fixinc/fixincl.tpl: rewritten as an AutoGen version 5 template
4         * fixinc/genfixes: emit a warning if AutoGen is out of date
5
6 2001-05-17  Brendan Conoboy <blc@cygnus.com>
7             Bruce Korb <bkorb@gnu.org>
8
9         * fixinc/fixincl.sh(FIXINC): accept local directory if fixincl not
10         found in fixinc directory.  Facilitates binary distributions.
11
12 2001-05-17  Jeffrey Oldham  <oldham@codesourcery.com>
13
14         * dbxout.c (dbxout_symbol_location): For CONCAT, skip types not
15         COMPLEX_TYPE.
16
17 Thu May 17 19:42:39 2001  Mark Kettenis  <kettenis@wins.uva.nl>
18
19         * dwarf2out.c (modified_type_die): Equate qualified type to die.
20
21 Thu May 17 23:19:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
22
23         * integrate.c (copy_rtx_and_substitute): Use simplify_gen_subreg.
24         (simplify_subreg): Handle complex types represented as CONCAT.
25
26         * recog.c (validate_replace_rtx_1): Properly canonicalize expression
27         * rtl.h (swap_commutative_operands_p): Declare.
28         * rtlanal.c (swap_commutative_operands_p): New.
29         (operand_preference): New static function.
30
31         * combine.c (combine_simplify_rtx): Use swap_commutative_operands_p.
32         (gen_binary): Likewise.
33         * optabs.c (emit_cmp_and_jump_insns, emit_conditional_move): Likewise.
34         * simplify-rtx.c (simplify_gen_binary,
35         simplify_gen_relational): Likewise.
36
37 Thu May 17 20:43:36 CEST 2001  Jan Hubicka  <jh@suse.cz>
38
39         * cse.c (fold_rtx): Use simplify_subreg.
40
41         * simplify-rtx.c (simplify_replace_rtx): Use simplify_gen_subreg.
42         (simplify_gen_subreg): New.
43         (simplify_rtx): Use simplify_subreg.
44         * rtl.h (simplify_gen_subreg): Declare.
45
46 2001-05-17  Mark Mitchell  <mark@codesourcery.com>
47
48         * doc/install.texi: Update Solaris information.
49
50         * except.h (protect_cleanup_actions): Remove it.
51         (lang_protect_cleanup_actions): Declare it.
52         * except.c (protect_cleanup_actions): Remove it.
53         (lang_protect_cleanup_actions): New variable.
54         (init_eh): Don't make protect_cleanup_actions a GC root.
55         (expand_eh_region_and_cleanup): Call
56         lang_protect_cleanup_actions.
57         (output_function_exception_table): Remove unused `align'
58         variable.
59         * varasm.c (assemble_external): Abort if we have not yet
60         opened the assembly output file.
61         
62 Thu May 17 11:54:50 2001  Jeffrey A Law  (law@cygnus.com)
63
64         * except.c (sjlj_emit_function_enter): Call assemble_external_libcall
65         for eh_personality_libfunc.
66
67 Thu May 17 19:48:00 CEST 2001  Jan Hubicka  <jh@suse.cz>
68
69         * recog.c (validate_replace_rtx_1): Use "TO" mode if not VOIDmode
70         when calling simplify_subreg.  This is needed to allow replacing
71         of expression of one mode by expression of different mode.
72
73 Thu May 17 19:40:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
74
75         * simplify-rtx.c  (simplify_subreg): Avoid creating of incorrect subregs.
76
77 2001-05-17  Bernd Schmidt  <bernds@redhat.com>
78
79         * expr.c (protect_from_queue): Protect against subsequent calls to
80         emit_queue.
81         (expand_expr, case ADDR_EXPR): Prevent protect_from_queue from being
82         too clever.
83
84 Thu May 17 18:17:34 CEST 2001  Jan Hubicka  <jh@suse.cz>
85
86         * simplify_rtx.c (simplify_subreg): Fix simplification of nested subregs.
87
88 2001-05-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
89
90         * gccbug.in (CATEGORIES): Add "bootstrap".
91
92 Thu May 17 16:59:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
93
94         * simplify-rtx.c (simplify_subreg): Break out from ...
95         * combine.c (combine_splify_rtx) ... here and ...
96         * recog.c (validate_replace_rtx_1): ... here;
97         * rtl.h (subreg_lowpart_parts_p, simplify_subreg): Declare.
98         * emit-rtl.c (subreg_lowpart_parts_p): Break out from ...
99         (subreg_lowpart_p): ... here.
100
101 2001-05-17  Bernd Schmidt  <bernds@redhat.com>
102
103         * stmt.c (expand_asm_operands): For inout operands, make sure
104         the substitution of '=' for '+' makes it into the rtl.
105
106         * reload1.c (delete_output_reload): Call eliminate_regs on substed.
107         (reload_as_needed): Call update_eliminable_offsets a bit later.
108
109 2001-05-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
110
111         * gcc.texi (gccbug): Refer to the web pages for detailed information
112         on GNATS.
113
114 2001-05-16  Zack Weinberg  <zackw@stanford.edu>
115
116         * libgcc1-test.c, libgcc1.c, config/i386/perform.h: Delete file.
117
118         * Makefile.in: Delete variables: OLDCC, CCLIBFLAGS, OLDAR,
119         OLDAR_FLAGS, LIBGCC1, LIBGCC1_TEST, CROSS_LIBGCC1,
120         LIB1FUNCS, and LIB1FUNCS_EXTRA.  Delete rules: libgcc1-test,
121         libgcc1-test.o.  Clarify commentary now that libgcc1 no longer exists.
122         * cross-make: Don't set LIBGCC1.
123         * mklibgcc.in: Delete all code for building from libgcc1.c.
124         Always honor LIB1ASMFUNCS if set.
125
126         * crtstuff.c, floatlib.c, longlong.h, config/fp-bit.c,
127         config/arc/lib1funcs.asm, config/arm/lib1funcs.asm,
128         config/d30v/libgcc1.asm, config/fr30/lib1funcs.asm,
129         config/h8300/lib1funcs.asm, config/i386/cygwin.asm,
130         config/i386/uwin.asm, config/m68hc11/larith.asm,
131         config/m68k/lb1sf68.asm, config/mcore/lib1.asm,
132         config/mn10200/lib1funcs.asm, config/sh/lib1funcs.asm,
133         config/sparc/lb1spc.asm, config/sparc/lb1spl.asm,
134         config/v850/lib1funcs.asm, config/c4x/libgcc.S:
135         Delete or update references to libgcc1 in commentary.
136
137         * config/t-libc-ok, config/t-linux, config/t-linux-aout,
138         config/t-netbsd, config/a29k/t-a29kbare, config/a29k/t-vx29k,
139         config/alpha/t-interix, config/alpha/t-osf, config/alpha/t-vms,
140         config/arc/t-arc, config/arm/t-arm-aout, config/arm/t-arm-coff,
141         config/arm/t-arm-elf, config/arm/t-linux, config/arm/t-pe,
142         config/arm/t-semi, config/arm/t-strongarm-coff,
143         config/arm/t-strongarm-elf, config/arm/t-strongarm-pe,
144         config/arm/t-xscale-coff, config/arm/t-xscale-elf, config/avr/t-avr,
145         config/c4x/t-c4x, config/d30v/t-d30v, config/fr30/t-fr30,
146         config/h8300/t-h8300, config/i386/t-beos, config/i386/t-cygwin,
147         config/i386/t-i386elf, config/i386/t-interix, config/i386/t-netware,
148         config/i386/t-next, config/i386/t-rtems-i386, config/i386/t-sol2,
149         config/i960/t-960bare, config/i960/t-vxworks960, config/ia64/t-ia64,
150         config/m32r/t-m32r, config/m68hc11/t-m68hc11-gas, config/m68k/t-lynx,
151         config/m68k/t-m68kbare, config/m68k/t-m68kelf,
152         config/m68k/t-mot3300-gald, config/m68k/t-mot3300-gas,
153         config/m68k/t-next, config/m68k/t-vxworks68, config/m88k/t-bug,
154         config/m88k/t-dgux, config/m88k/t-dgux-gas, config/m88k/t-dguxbcs,
155         config/m88k/t-luna, config/m88k/t-luna-gas, config/m88k/t-m88k,
156         config/m88k/t-m88k-gas, config/m88k/t-sysv4, config/mcore/t-mcore,
157         config/mcore/t-mcore-pe, config/mips/t-bsd, config/mips/t-bsd-gas,
158         config/mips/t-cross64, config/mips/t-ecoff, config/mips/t-elf,
159         config/mips/t-iris6, config/mips/t-r3900, config/mips/t-svr3,
160         config/mips/t-svr3-gas, config/mips/t-svr4, config/mips/t-svr4-gas,
161         config/mips/t-ultrix, config/mn10200/t-mn10200,
162         config/mn10300/t-mn10300, config/pa/t-linux, config/pa/t-linux64,
163         config/pa/t-pa, config/pa/t-pa64, config/pa/t-pro,
164         config/pdp11/t-pdp11, config/pj/t-pj, config/rs6000/t-aix43,
165         config/rs6000/t-beos, config/rs6000/t-darwin, config/rs6000/t-newas,
166         config/rs6000/t-ppccomm, config/rs6000/t-rs6000, config/sh/t-linux,
167         config/sh/t-sh, config/sparc/t-chorus-elf, config/sparc/t-elf,
168         config/sparc/t-sol2, config/sparc/t-sp86x, config/sparc/t-sparcbare,
169         config/sparc/t-sparclite, config/sparc/t-splet,
170         config/sparc/t-sunos41, config/sparc/t-vxsparc,
171         config/sparc/t-vxsparc64, config/v850/t-v850:
172         Don't set any of LIBGCC1, CROSS_LIBGCC1, or LIBGCC1_TEST.
173
174         * config/alpha/alpha.h, config/i386/i386.h, config/i860/i860.h: 
175         Don't set FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, INTIFY, or FLOATIFY.
176         * config/d30v/d30v.h: Don't mention LIBGCC_NEEDS_DOUBLE,
177         FLOAT_VALUE_TYPE, FLOAT_ARG_TYPE, FLOATIFY, INTIFY,
178         nongcc_SI_type, nongcc_word_type, or perform_*
179         * config/i860/fx2800: Don't define perform_umodsi3 or perform_modsi3.
180
181         * config/i386/386bsd.h, config/i386/beos-elf.h,
182         config/i386/linux-aout.h, config/i386/linux-oldld.h,
183         config/i386/linux.h, config/i386/mach.h, config/i386/netbsd.h,
184         config/i386/openbsd.h, config/i386/osfrose.h, config/i386/rtemself.h:
185         Don't include i386/perform.h.
186
187         * config/a29k/t-a29k, config/arm/t-semiaof, config/i370/t-i370,
188         config/i370/t-linux, config/i370/t-mvs, config/i370/t-oe,
189         config/i386/t-djgpp, config/i386/t-i386bare, config/i386/t-vsta,
190         config/ia64/t-hpux, config/mips/t-mips, config/mips/t-mips-gas,
191         config/mips/t-osfrose, config/sparc/t-sp64, config/sparc/t-sunos40,
192         config/vax/t-openbsd, config/vax/t-vax: Delete.
193
194         * config.gcc: Remove references to deleted files.
195         (arm-semi-aof): Use arm/t-semi for tmake_file.
196
197         * gcc.texi, install.texi, invoke.texi, tm.texi:
198         Delete or rewrite text which is no longer relevant now that
199         libgcc1 no longer exists.
200
201         * config/t-openbsd, config/alpha/t-interix, config/i386/t-interix:
202         No need to set INSTALL_ASSERT_H.  (Missed in previous sweep.)
203
204 2001-05-16  Wolfgang Bangerth <wolfgang.bangerth@iwr.uni-heidelberg.de>
205         Bruce Korb <bkorb@gnu.org>
206
207         * fixinc/inclhack.def(solaris27_mutex_init):  Fix broken mutex
208         initializer
209
210 2001-05-16  Zack Weinberg  <zackw@stanford.edu>
211
212         * i386.md: Add two peepholes to clean up code generated by
213         cmpstr* expanders.
214
215 2001-05-16  Richard Henderson  <rth@redhat.com>
216
217         * dwarf2asm.c (eh_data_format_name): Add names for "pointer size" 
218         variants of non-absolute encodings.
219
220         * config/i386/i386.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
221
222         * libgcc-std.ver (_Unwind_Find_FDE, __register_frame_info_bases,
223         __register_frame_info_table_bases): Export.
224
225 2001-05-16  Richard Henderson  <rth@redhat.com>
226
227         * except.c (eh_data_format_name): Move to ...
228         * dwarf2asm.c: ... here.  Use designated initializers if available.
229         (dw2_asm_output_encoded_addr_rtx): Accept varargs commentary.
230         * dwarf2asm.h: Update declarations.
231         * dwarf2out.c (output_cfi) [DW_CFA_set_loc]: If for_eh, mind
232         ASM_PREFERRED_EH_DATA_FORMAT.
233         (output_call_frame_info): Likewise.  Use 'L' augmentation for
234         the LSDA encoding.
235
236         * unwind-dw2-fde.h (struct fde_vector): New.
237         (struct old_object): Rename from struct object.
238         (struct object): New.
239         (__register_frame_info_bases): Declare.
240         (__register_frame_info_table_bases): Declare.
241         (struct dwarf_fde): Remove explicit pc_begin/pc_range members.
242         * unwind-dw2-fde.c (objects): Remove.
243         (unseen_objects, seen_objects): New.
244         (__register_frame_info_bases): New.
245         (__register_frame_info): Use it.
246         (__register_frame_info_table_bases): New.
247         (__register_frame_info_table): Use it.
248         (__deregister_frame_info): Rewrite for changed object struct.
249         (base_from_object, get_cie_encoding, get_fde_encoding): New.
250         (fde_unencoded_compare): Rename from fde_compare; uninline.
251         (fde_single_encoding_compare, fde_mixed_encoding_compare): New.
252         (start_fde_sort): Adjust for new definition of fde_vector.
253         (fde_insert): Likewise.
254         (end_fde_sort): Likewise.  Select comparison function based
255         on properties of the object.
256         (fde_split): Take object and fde_compare_t arguments.
257         (frame_heapsort, fde_merge): Likewise.
258         (classify_object_over_fdes): Rename from count_fdes.  Handle
259         encoded pointers.  Collect encoding, mixed_encoding, and pc_begin
260         for the object.
261         (add_fdes): Handle encoded pointers.
262         (init_object): Rename from frame_init.  Update for new struct object.
263         (linear_search_fdes): Rename from search_fdes.  Handle encoded
264         pointers.
265         (binary_search_unencoded_fdes): Broken out from _Unwind_Find_FDE.
266         (binary_search_single_encoding_fdes): New.
267         (binary_search_mixed_encoding_fdes): New.
268         (search_object): New.
269         (_Unwind_Find_FDE): Update for new struct object.  Fill in
270         the dwarf_eh_bases.
271         * unwind-dw2.c: Include unwind-pe.h.  Constify all pointers
272         iterating over EH data.
273         (_Unwind_FrameState): Remove saw_lsda, addr_encoding.  Add
274         fde_encoding, lsda_encoding.
275         (read_uleb128, read_sleb128): Remove.
276         (read_encoded_pointer): Remove.  All callers use read_encoded_value.
277         (extract_cie_info): Set lsda_encoding from 'L' augmentation.
278         (uw_frame_state_for): Don't set bases.func.  Handle encoded fde
279         pointers.
280         * unwind-pe.h: Add "struct" to _Unwind_Context references.
281
282 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
283
284         * cppexp.c (lex): Use NODE_NAME and NODE_LEN.
285         * cpphash.c (_cpp_lookup_with_hash): Similarly.
286         * cpplex.c (cpp_ideq, parse_identifier, cpp_token_len,
287         cpp_spell_token, cpp_output_token): Similarly.
288         * cpplib.c (lex_macro_node, do_undef, do_pragma,
289         do_pragma_poison, parse_assertion, do_assert): Similarly.
290         * cppmacro.c (builtin_macro, parse_args, funlike_invocation_p,
291         save_parameter, _cpp_create_definition, check_trad_stringification,
292         cpp_macro_definition): Similarly.
293         * cppmain.c (cb_define, cb_undef, dump_macro): Similarly.
294         * c-lex.c (cb_undef, c_lex): Similarly.
295         * fix-header.c (recognized_function): Similarly.
296         * cpplib.h (NODE_LEN, NODE_NAME): New.
297         (cpp_hashnode): Rename length len.
298
299 Wed May 16 13:41:10 2001  Jeffrey A Law  (law@cygnus.com)
300
301         * pa32-regs.h (HARD_REGNO_MODE_OK): Allow TI/TFmode values in
302         GPRs.
303
304 2001-05-16  Andreas Jaeger  <aj@suse.de>
305
306         * Makefile.in (toplev.o): Add dependency on dwarf2asm.h.
307
308         * toplev.c: Include dwarf2asm.h for prototype of
309         dw2_output_indirect_constants.
310
311 Wed May 16 19:53:53 CEST 2001  Jan Hubicka  <jh@suse.cz>
312
313         * stmt.c (expand_asm_operands): Be able to offload addressof
314         expression to memory. (PR optimization/185)
315
316 Wed May 16 18:53:23 CEST 2001  Jan Hubicka  <jh@suse.cz>
317
318         * combine.c (combine_simplify_rtx): Set op0_mode to VOIDmode after
319         applying distributive law.
320
321 2001-05-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
322
323         * pa-hpux10.h (THREAD_MODEL_SPEC): Define.
324
325         * gthr-dce.h (UNUSED): Attribute unused macro.
326         (__gthread_key_dtor): Make arguments UNUSED.
327         (__gthread_key_delete): Revise for compatibility with DRAFT4
328         implementation.
329
330 2001-05-16  David Edelsohn  <edelsohn@gnu.org>
331
332         * doc/install.texi: Update AIX information.
333         * README.RS6000: Remove obsolete file.
334
335 2001-05-16  Jakub Jelinek  <jakub@redhat.com>
336             Nathan Sidwell  <nathan@codesourcery.com>
337
338         * gcc.c (give_switch): Don't write before start of string.
339         Always append suffix.
340
341 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
342
343         * cpplex.c (_cpp_lex_token, '/' case): Comments can't appear
344         after stage3.
345
346 2001-05-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
347
348         * README.ALTOS: Remove obsolete file.
349
350 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
351
352         * c-lex.h (save_and_forget_protocol_qualifiers,
353         forget_protocol_qualifiers, remember_protocol_qualifiers):
354         Remove deleted functions' prototypes.
355
356 2001-05-16  Neil Booth  <neil@daikokuya.demon.co.uk>
357
358         * c-parse.in (methodtype): New production.
359         (methoddef, methodproto): Collapse separate '-' and '+'
360         handlers into 1.
361
362 2001-05-16  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
363
364         * c-common.h (RID_FIRST_PQ): New.
365         * c-parse.in (objc_pq_context): New.
366         (objc parser): Set objc_pq_context rather than calling
367         remember_protocol_qualifiers and forget_protocol_qualifiers.
368         Don't call save_and_forget_protocol_qualifiers.
369         (yylexname): Handle objc protocol qualifiers here.
370         * stringpool.c (struct str_header): Replace with sp_hashnode.
371         (SP_EMPTY, SP_LEN, SP_TREE, SP_STR, SP_VALID): New.
372         (alloc_string): Rename alloc_ident.  Use the SP_ accessors.
373         Allocate an IDENTIFIER_NODE for each identifier.
374         (FORALL_STRINGS, set_identifier): Delete.
375         (FORALL_IDS, expand_string_table, stringpool_statistics): Update.
376         (ggc_alloc_string): Use an obstack.
377         (get_identifier, maybe_get_identifier, mark_string_hash): Update.
378         * tree.h: Update comments.
379         (set_identifier): Delete.
380         * objc/objc-act.c (N_PQ, saved_pq, saved_not_pq,
381         save_and_forget_protocol_qualifiers, forget_protocol_qualifiers,
382         remember_protocol_qualifiers): Delete.
383
384 Tue May 15 22:14:09 2001  Jeffrey A Law  (law@cygnus.com)
385
386         * flow.c (life_analysis): After life analysis is complete, do
387         an optional scan over insns looking for REG_LABEL notes that
388         reference a deleted label.
389         (propagate_block_delete_insn): Verify INOTE is a CODE_LABEL
390         before peeking at LABEL_NUSES.
391
392 2001-05-15  Richard Henderson  <rth@redhat.com>
393
394         * unwind-sjlj.c (_Unwind_GetDataRelBase): New.
395         (_Unwind_GetTextRelBase): New.
396
397 2001-05-15  Mark Mitchell  <mark@codesourcery.com>
398
399         * config/sparc/sol2.h (CPLUSPLUS_CPP_SPEC): Define.
400
401 2001-05-15  Geoffrey Keating  <geoffk@redhat.com>
402
403         * objc/objc-act.c (handle_class_ref): Use rest_of_decl_compilation
404         so that CHOOSE_SECTION gets used.
405
406         * config/rs6000/sysv4.h (ASM_PREFERRED_EH_DATA_FORMAT): Treat
407         TARGET_RELOCATABLE like flag_pic for now.
408
409 2001-05-15  David Edelsohn  <edelsohn@gnu.org>
410
411         * rs6000.md (movdi splitter): Sign extend more efficiently.
412         * rs6000.c (reg_or_arith_cint_operand): Redefine 64-bit constant
413         to "long long" valid on 32-bit and 64-bit hosts.
414         (logical_operand): Cast trunc_int_for_mode return value.
415         (rs6000_emit_move): Shift macro to encapsulate variable.
416         (rs6000_va_start): Use HOST_WIDE_INT_PRINT_DEC.
417         (rs6000_emit_{prologue,epilogue}): EH regno is unsigned but
418         plus_constant requires signed argument.
419
420 2001-05-15  Loren J. Rittle  <ljrittle@acm.org>
421
422         * gthr-posix.h: Make additional pthread-* functions weak.
423
424 Tue May 15 13:51:32 CEST 2001  Jan Hubicka  <jh@suse.cz>
425
426         * recog.c (apply_change_group): Avoid unneeded validating.
427
428 2001-05-14  David Edelsohn  <edelsohn@gnu.org>
429
430         * rs6000.c (num_insns_constant_wide): Constants are sign-extended.
431         (num_insns_constant): CONST_INT can be 64-bits.
432
433 2001-05-14  Stan Shebs  <shebs@apple.com>
434
435         * config/darwin.h (LIB_SPEC): Just use -lSystem.
436         (LIBGCC_SPEC): Don't define.
437
438 2001-05-14  Richard Henderson  <rth@redhat.com>
439
440         * configure.in (gcc_cv_as_eh_frame): New test.
441         * config.in, configure: Rebuild.
442         * gcc.c (init_spec): Honor USE_AS_TRADITIONAL_FORMAT.
443
444 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
445
446         * config/ia64/lib1funcs.asm (__divtf3): Fix incorrect bits in
447         extended precision divide.
448
449 2001-05-14  Andrew MacLeod  <amacleod@redhat.com>
450
451         * config/ia64/ia64.c (rtx_needs_barrier): Call rtx_needs_barrier
452         for RETURNS as well.
453
454 Mon May 14 17:34:48 CEST 2001  Jan Hubicka  <jh@suse.cz>
455
456         * i386.h (TARGET_64BIT): Define to constant if !TARGET_BI_ARCH
457         (CPP_CPU??_SIZE_TYPE): New.
458         (CPP_CPU??_SPEC, CPP_CPUCOMMON_SPEC): Break out from...
459         (CPP_CPU_SPEC): ... here; support choosing of CPU.
460         (EXTRA_SPECS): Add cpp_cpu??, cpp_cpu??sizet, cpp_cpucommon.
461         (MAX_LONG_TYPE_SIZE, MAX_BITS_PER_WORD): Define to 32 for 32bit-only
462         compiler.
463         * i386.c (override_options): Add sorry about not suported modes.
464
465 Mon May 14 08:56:47 2001  Jeffrey A Law  (law@cygnus.com)
466
467         * config/pa/som.h (NM_FLAGS): Remove.
468         (ASM_OUTPUT_FUNCTION_PREFIX): No longer truncate subspace names.
469         (ASM_OUTPUT_SECTION_NAME): Remove.
470         (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Likewise.
471
472 2001-05-14  Mark Mitchell  <mark@codesourcery.com>
473
474         * regrename.c (regrename_optimize): Do not rename registers to
475         leaf registers.
476
477 2001-05-14  Alexandre Oliva  <aoliva@redhat.com>
478
479         * rtl.texi (CALL_INSN_FUNCTION_USAGE): Note that (and when) it may
480         contain MEMs.  Remove useless distinction about clobbering
481         registers.
482
483 2001-05-13  Geoff Keating  <geoffk@redhat.com>
484
485         * config/rs6000/rs6000.h (EXCEPTION_SECTION): Move to...
486         * config/rs6000/aix.h (EXCEPTION_SECTION): ... here.
487         * config/rs6000/sysv4.h (CONST_SECTION_ASM_OP): Delete.
488         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
489         (EXCEPTION_SECTION): Define.
490
491 2001-05-13  Zack Weinberg  <zackw@stanford.edu>
492
493         * libgcc2.c, libgcc2.h: Restore __eprintf.  Label as used for
494         binary backward compat only.
495         * Makefile.in (LIB2FUNCS_ST): New.  Put _eprintf here, not
496         in LIB2FUNCS.  Pass it to mklibgcc.
497         * mklibgcc.in: Handle LIB2FUNCS_ST.
498
499         * Makefile.in (installdirs): Don't create $(gcc_tooldir).
500
501 2001-05-13  Alexandre Oliva  <aoliva@redhat.com>
502
503         * tm.texi (THREAD_MODEL_SPEC): Document it.
504         * gcc.c (main): Use it.
505         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Define it.
506         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Likewise.
507
508 2001-05-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
509
510         * rtl.h (SYMBOL_REF_WEAK): New macro.
511         * rtlanal.h (rtx_addr_can_trap): Use it, a weak SYMBOL_REF can trap.
512         * varasm.c (make_decl_rtl): Mark SYMBOL_REF weak if necessary.
513         * rtl.texi (SYMBOL_REF_WEAK): Document it.
514         * gcc.texi: Remove wrong description.
515
516 2001-05-13  Mark Mitchell  <mark@codesourcery.com>
517
518         * Makefile.in (STAMP): New macro.
519         Replace all uses of `touch' with $(STAMP).
520         * fixinc/Makefile.in: Likewise.
521
522 Sun May 13 07:26:34 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
523
524         * configure.in: ldopen is never in -lexc, so don't test for it.
525         Add test for exc_resume in -lexc for Ada.
526         * configure: Regenerated.
527
528 2001-05-12  Richard Henderson  <rth@redhat.com>
529
530         * dwarf2asm.c (size_of_encoded_value): New function.
531         * dwarf2asm.h: Declare it.
532         * except.c (output_function_exception_table): Align the TType
533         array only as wide as the encoding.
534
535 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
536
537         * extend.texi: Document #pragma GCC java_exceptions.
538
539 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
540
541         * c-parse.in (bison parser, init_reswords): Remove uses of
542         doing_objc_thang.
543         * c-tree.h (doing_objc_thang): Remove.
544
545 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
546
547         * cpplex.c (_cpp_lex_token): Ensure we warn at most once
548         about files not ending in newlines.
549
550 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
551
552         * dwarfout.c (dwarfout_init): Add cast.
553         * sched-deps.c (sched_analyze_insn): Remove unused vars.
554         * unwind-dw2-fde.c (_Unwind_Find_FDE): Flag unused parameter so.
555 cp:
556         * method.c (build_mangled_C99_name): Remove unused prototype.
557
558 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
559
560         * config/arm/arm.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Use delta.
561
562 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
563
564         * defaults.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
565         * tm.texi (TARGET_PRTMEMFUNC_VBIT_LOCATION): Document.
566
567 2001-05-11  Richard Henderson  <rth@redhat.com>
568
569         * defaults.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
570         * dwarf2asm.c (dw2_force_const_mem, dw2_output_indirect_constant_1,
571         dw2_output_indirect_constants, dw2_asm_output_encoded_addr_rtx): New.
572         * dwarf2asm.h (dw2_asm_output_encoded_addr_rtx): Prototype.
573         (dw2_output_indirect_constants): Prototype.
574         * dwarf2out.c (dwarf2out_begin_prologue): Generate
575         current_function_func_begin_label if we'll need it for EH.  Exit
576         early for IA64_UNWIND_INFO.
577         * except.c: Get DW_EH_PE_* defines from dwarf2.h.
578         (eh_data_format_name): Update for indirect references.
579         (output_function_exception_table): Care for IA64_UNWIND_INFO.
580         Handle ASM_PREFERRED_EH_DATA_FORMAT.
581         * except.h (MUST_USE_SJLJ_EXCEPTIONS): IA64_UNWIND_INFO needn't
582         define HAVE_eh_return etc.
583         * final.c (final_start_function): Always call dwarf2out_begin_prologue.
584         (final_end_function): Don't call output_function_exception_table.
585         * toplev.c (compile_file): Call dw2_output_indirect_constants.
586         (rest_of_compilation): Invoke output_function_exception_table
587         for ia64 before assemble_end_function.
588         * tm.texi (ASM_PREFERRED_EH_DATA_FORMAT): Document.
589         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Document.
590
591         * unwind-dw2.c (_Unwind_GetTextRelBase, _Unwind_GetDataRelBase): New.
592         * unwind.h: Declare them.
593         * libgcc-std.ver: Export them.
594         * unwind-pe.h: New file.
595
596         * config/alpha/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
597
598         * config/ia64/fde-glibc.c: Use "struct unw_table_entry"
599         instead of "fde".
600         (find_fde_for_dso): Extract DT_PLTGOT.
601         (_Unwind_FindTableEntry): Rename from __ia64_find_fde; return
602         the segment and gp as well.
603         * config/ia64/frame-ia64.c: Remove file.
604         * config/ia64/frame-ia64.h: Remove file.
605         * config/ia64/unwind-ia64.c: New file.
606         * config/ia64/unwind-ia64.h: New file.
607         * config/ia64/ia64.h (ASM_OUTPUT_EH_CHAR): Remove.
608         (ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT): Remove.
609         (ASM_OUTPUT_EH_DOUBLE_INT): Remove.
610         (ASM_PREFERRED_EH_DATA_FORMAT): New.
611         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New.
612         (IA64_UNWIND_INFO): Re-enable.
613         (HANDLER_SECTION): Remove.
614         (EH_RETURN_DATA_REGNO): New.
615         * config/ia64/ia64.md (exception_receiver): Remove.
616         * config/ia64/t-glibc (LIB2ADDEH): Re-enable.
617         * config/ia64/t-ia64 (LIB2ADDEH): Re-enable.
618
619 2001-05-11  Richard Henderson  <rth@redhat.com>
620
621         * config/ia64/ia64.c (group_barrier_needed_p): Don't allow
622         calls and jumps to be bundled together.
623         (ia64_reorg): Emit a break after a noreturn call that ends
624         a function.
625         * config/ia64/ia64.md (break_f): New.
626
627 2001-05-12  Neil Booth  <neil@daikokuya.demon.co.uk>
628
629         * c-lex.c (lex_charconst): Convert into a simple wrapper
630         around cpp_interpret_charconst, to which most of the code
631         body is moved.
632         * cppexp.c (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE,
633         MAX_LONG_TYPE_SIZE, MAX_INT_TYPE_SIZE, MAX_CHAR_TYPE_MASK,
634         MAX_WCHAR_TYPE_MASK, parse_escape, parse_charconst): Remove.
635         (lex): Use cpp_interpret_charconst.
636         * cpplex.c (parse_escape, read_ucs, cpp_interpret_charconst,
637         hex_digit_value): New functions.
638         (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): New macros.
639         * cpplib.h (cpp_interpret_charconst): New prototype.
640         * Makefile.in: Update.
641
642 2001-05-12  Dean Wakerley  <dean@wakerley.com>
643
644         * doc/install.texi: New file. Converted to texinfo from the HTML
645         documentation in wwwdocs/htdocs/install.
646
647 Fri May 11 15:50:13 2001  Jeffrey A Law  (law@cygnus.com)
648
649         * gcse.c (insert_insn_end_bb): Do not search for assignments to
650         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
651
652         * toplev.c (compile_file): Move comment for opening output
653         file to just before the code that opens the output file.
654
655 2001-05-11  Jakub Jelinek  <jakub@redhat.com>
656
657         * regmove.c (regmove_optimize): Suppress the optimization for
658         unchanging destination register.  Add comment above function.
659
660 2001-05-11  Zack Weinberg  <zackw@stanford.edu>
661
662         * Makefile.in: Exterminate all references to assert.h.
663         * cross-make: Likewise.
664         * assert.h: Delete.
665         * configure.in: Correct commentary.
666         * configure: Regenerate.
667
668         * libgcc-std.ver, libgcc2.c, libgcc2.h, sys-protos.h:
669         Remove __eprintf.
670
671         * config/t-freebsd, config/t-linux, config/t-linux-aout,
672         config/t-netbsd, config/t-rtems, config/x-linux,
673         config/i386/t-beos, config/mcore/t-mcore, config/mcore/t-mcore-pe:
674         No need to override INSTALL_ASSERT_H.
675
676         * fixinc/fixinc.dgux, fixinc/fixinc.interix, fixinc/fixinc.ptx,
677         fixinc/fixinc.svr4, fixinc/fixinc.winnt, fixinc/fixinc.wrap,
678         fixinc/fixincl.sh: Don't install assert.h into objdir/include.
679
680 2001-05-11  Graham Stott  <grahams@redhat.com>
681
682         * combine.c (simplify_comparison): Fix typo.
683
684 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
685
686         * loop.h (struct movables): Remove `num'.
687         * loop.c (scan_loop): Don't set it.  Use count_insns_in_loop.
688         Adjust call to strength_reduce.
689         (num_unmoved_movables): New function.
690         (move_movables): Don't set movables->num.
691         (strength_reduce): Compute the number of instructions in the loop
692         here, rather than in the caller.
693         (check_dbra_loop): Always clear reversible_mem_store if there
694         are any memory sets.
695         (loop_regs_scan): Don't count instructions here.
696         (count_insn_in_loop): New function.
697
698 2001-05-11  Mark Mitchell  <mark@codesourcery.com>
699
700         * optabs.c (emit_libcall_block): Don't mark calls as CONST_CALL_P.
701
702 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
703
704         * c-common.c (finish_label_expr): New function, lifted from
705         from cp/semantics.c.
706         * c-common.h (finish_label_expr, lookup_label): New prototypes.
707         * c-parse.in: Move 3 blocks of parser code into new functions.
708         * c-typeck.c (simple_asm_stmt, c_cast_expr): New functions.
709         * c-tree.h (simple_asm_stmt, c_cast_expr): New prototypes.
710         (lookup_label): Remove.
711
712 2001-05-11  Alexandre Oliva  <aoliva@redhat.com>
713
714         * config/mn10300/t-mn10300 (dp-bit.c, fp-bit.c): Don't define
715         FLOAT_BIT_ORDER_MISMATCH.
716
717 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
718
719         * expr.c (emit_push_insn): Convert PUSH_ROUNDING argument to
720         bytes.  Reported by Kazu Hirata <kazu@hxi.com>.
721
722 2001-05-10  David Edelsohn  <edelsohn@gnu.org>
723
724         * expr.c (emit_group_load): extract_bit_field requires a REG or
725         MEM as an argument.
726
727 Thu May 10 14:45:44 2001  Jeffrey A Law  (law@cygnus.com)
728
729         * cse.c (cse_insn): Mostly remove first hunk of code which collapsed
730         a computed jump into an unconditional jump.
731         In second hunk of code for collapsing computed and conditional jumps
732         into unconditional jumps, reemit the jump in additional cases.
733
734         * jump.c (jump_optimize_1): Do not wrap the new jump target
735         inside a LABEL_REF; gen_jump will do that automatically.
736
737 2001-05-10  Toon Moene  <toon@moene.indiv.nluug.nl>
738
739         * dwarf2out.c (mem_loc_descriptor): Do not pass constant pool
740         contents for a SYMBOL_REF in case of floating point constants.
741
742 2001-05-10  DJ Delorie  <dj@redhat.com>
743
744         * c-common.c (combine_strings): Widen strings in a
745         host-endian-independent way.
746
747 2001-05-10  Joseph S. Myers  <jsm28@cam.ac.uk>
748
749         * c-parse.in: Remove many shift/reduce conflicts.  Update
750         %expect values.
751         (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea,
752         declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea,
753         declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea,
754         declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea,
755         declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea,
756         declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea,
757         declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea,
758         declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts,
759         declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa,
760         declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs,
761         maybe_type_quals_setattrs, typespec_nonattr, typespec_attr,
762         typespec_reserved_nonattr, typespec_reserved_attr,
763         typespec_nonreserved_nonattr, maybe_setattrs, structsp_attr,
764         structsp_nonattr, components_notype, component_notype_declarator,
765         absdcl1_ea, absdcl1_noea, direct_absdcl1, absdcl_maybe_attribute,
766         firstparm, setspecs_fp): New
767         (typed_declspecs, reserved_declspecs, typed_typespecs,
768         reserved_typespecquals, declmods, typespec, typespecqual_reserved,
769         typed_declspecs_no_prefix_attr reserved_declspecs_no_prefix_attr
770         declmods_no_prefix_attr, nonempty_type_quals, structsp,
771         type_quals): Remove.  Users updated.
772         (initdecls, notype_initdecls, after_type_declarator,
773         parm_declarator, notype_declarator, absdcl1, components, ivars):
774         Don't allow attributes at the start of a declarator; include them
775         in the production containing the declarator instead.  Always
776         require type specifiers before trying to redeclare a typedef name.
777         (typename): Allow for attributes but warn that they are ignored.
778         (parmlist, firstparm, setspecs_fp): Include attributes in
779         parmlist; suck them off the parser stack in firstparm using
780         setspecs_fp.
781
782 Thu May 10 09:17:42 2001  Jeffrey A Law  (law@cygnus.com)
783
784         * ifcvt.c (merge_if_block): Use any_uncondjump_p, not simplejump_p
785         to determine if a block has an unconditional jump at its end.
786
787         * jump.c (jump_optimize_1): When converting a conditional jump
788         to an unconditional jump, build the jump using gen_jump instead
789         of just modify operands in-place.
790
791 2001-05-09  Zack Weinberg  <zackw@stanford.edu>
792
793         * cppinit.c (cpp_post_options): Shut off macro expansion if
794         -fpreprocessed.
795         * cpplib.c (_cpp_handle_directive): If -fpreprocessed, accept
796         IN_I directives only if the # is in column 1 and the directive
797         name begins in column 2.
798         * cppmain.c (scan_buffer): Insert a space between # and an
799         identifier, when that identifier is a directive name.
800
801         * tradcpp.c (struct file_buf): Add a pointer to the next entry
802         in the header search path.
803         (enum node_type): Add T_INCLUDE_NEXT.
804         (directive_table): Add entry for include_next.
805         (do_include_next): New function.
806         (process_include): New routine, broken out of do_include.
807         (finclude): Insert 'nhd' argument, to be copied into
808         next_header_dir of the new buffer.
809         (main): Adjust to match.
810         * gsyslimits.h, limity.h: Un-indent #include_next.
811
812 2001-05-09  Joseph S. Myers  <jsm28@cam.ac.uk>
813
814         * objc.texi: Move from ../libobjc/objc-features.texi.  Adjust for
815         inclusion as a chapter of the GCC manual.
816         * gcc.texi: Include objc.texi.
817         * fdl.texi: Use @unnumberedsec for the addendum.
818         * Makefile.in ($(srcdir)/gcc.info, gcc.dvi): Update dependencies.
819
820 Wed May  9 16:01:41 CEST 2001  Jan Hubicka  <jh@suse.cz>
821
822         * i386.md (DImode move splitters): Use !MMX and !SSE for the condition.
823
824 Wed May  9 10:40:25 2001  Alexandre Oliva  <aoliva@redhat.com>
825
826         * regclass.c (scan_one_insn): Update REG_N_REFS when optimizing
827         handling of two-address insns.
828
829 Wed May  9 10:36:18 2001  Alexandre Oliva  <aoliva@redhat.com>
830
831         * Makefile.in (NM_FOR_TARGET): Look for ./nm, then
832         ../binutils/nm-new instead of ../binutils/nm.
833
834 Wed May  9 12:15:46 CEST 2001  Jan Hubicka  <jh@suse.cz>
835
836         * i386.md (movdi splitter): Fix the splitting condition
837         (float_extenddftf splitter): Fix mode.
838
839 Wed May  9 12:05:39 CEST 2001  Jan Hubicka  <jh@suse.cz>
840
841         * genrecog.c (write_switch): Avoid outputting of switch for
842         types wider than int.
843
844 2001-05-03  Andrew Haley  <aph@cambridge.redhat.com>
845
846         * reload1.c (copy_eh_notes): New function.
847         (emit_input_reload_insns): Call it.
848         (emit_output_reload_insns): Call it.
849
850 2001-05-07  Zack Weinberg  <zackw@stanford.edu>
851
852         * config.gcc (i[34567]86-*-sco3.2v4*, i[34567]86-*-sco*):
853         Delete stanzas.
854         * config/i386/sco.h, config/i386/sco4.h, config/i386/scodbx.h,
855         config/i386/sco4dbx.h, config/i386/x-sco4: Delete file.
856
857         * optabs.c: Delete #ifdef BROKEN_LDEXP block.
858
859 2001-05-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
860
861         * pa.md (interspace_jump): Revise comment.
862         (builtin_longjmp): Block initial setup insns from delay slot of
863         interspace branch.
864         (builtin_setjmp_receiver): New expander to save and restore PIC
865         register.
866
867         * som.h (NM_FLAGS): Remove `-n' sort option.  Revise comment.
868
869 Mon May  7 09:30:14 2001  Jeffrey A Law  (law@cygnus.com)
870
871         * toplev.c (compile_file): Set up the output file before we call
872         the various initializers for the compiler.
873
874         * except.c (sjlj_mark_call_sites): Do not search for assignments to
875         non-argumment registers that are mentioned in CALL_INSN_FUNCTION_USAGE.
876
877         * pa.h (MAX_LONG_TYPE_SIZE): Should be 32, not 64.
878         * pa-64.h (*_TYPE_SIZE): Undefine before redefining.
879
880 2001-05-06  Zack Weinberg  <zackw@stanford.edu>
881
882         * Makefile.in (tradcpp0): Correct typo in dependency list.
883
884 2001-05-06  Geoff Keating  <geoffk@redhat.com>
885
886         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't save
887         the link register if we're not going to use it.
888
889         * config/rs6000/rs6000.c (output_profile_hook): Fix a warning.
890         (output_function_profiler): Likewise.
891
892 2001-05-07  Alan Modra  <amodra@one.net.au>
893
894         * pa.c (compute_frame_size): 64-bit frame marker is 16 bytes.
895
896 2001-05-06  Alexandre Oliva  <aoliva@redhat.com>
897
898         * unroll.c (loop_iterations): Don't sign-extend abs_diff;
899         zero-extend it.  Make abs_inc unsigned.
900
901         * optabs.c (expand_binop): Sign-extend xop0 and xop1 from the
902         widest mode in narrowing and widening operations.
903
904         * config/mips/mips.md: Sign extend CONST_INTs.
905
906 2001-05-06  Andreas Jaeger  <aj@suse.de>
907
908         * invoke.texi (Option Summary): Add -momit-leaf-frame-pointer
909         (i386 Options): Document -momit-leaf-frame-pointer.
910
911 2001-05-06  Neil Booth  <neil@daikokuya.demon.co.uk>
912
913         * c-typeck.c (internal_build_compound_expr): Check for
914         array to pointer conversion just once.
915
916 2001-05-05  Richard Henderson  <rth@redhat.com>
917
918         * integrate.c (copy_insn_list): Substitute NOTE_EXPECTED_VALUE.
919
920 2001-05-05  Richard Henderson  <rth@redhat.com>
921
922         * except.c (remove_fixup_regions): Adjust REG_EH_REGION notes
923         to the parent of the fixup region.
924
925 2001-05-05  Jakub Jelinek  <jakub@redhat.com>
926
927         * gcc.c (cpp_options): Define __NO_INLINE__ unless we are honoring
928         "inline" keyword.
929         * cpp.texi (__NO_INLINE): Document it.
930
931 2001-05-05  Neil Booth  <neil@daikokuya.demon.co.uk>
932
933         * cppfiles.c (struct include_file): New member err_no.
934         (find_or_create_entry): Set it.
935         (open_file): Don't set fds to -2.  Instead, use err_no to
936         remember previous errors, if any.
937
938 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
939
940         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Optimize moves
941         between X and Y by using sequences of xgdx and xgdy.
942
943 2001-05-05  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
944
945         * config/m68hc11/m68hc11.md ("*logicalsi3_silshr16"): Use '?' instead
946         of '!' for the 'D' alternative ('!' is too strong).
947         ("*logicalsi3_silshl16"): Likewise.
948         ("movstricthi"): Accept 'A' when 'd' constraint, remove spurious '+'.
949         ("movstrictsi"): Remove spurious '+'.
950         ("movstrictqi"): Don't accept 'A' and remove spurious '+'.
951         ("tstqi_1", "*lshrqi3_const1"): Put 'm' constraint before 'd'.
952         ("subqi3"): Disparage with '!' the 'x' and 'y' registers to avoid
953         a reload to them.
954
955 2001-05-04  David Edelsohn  <edelsohn@gnu.org>
956
957         * calls.c (store_one_arg): Don't divide align by BITS_PER_UNIT.
958
959 2001-05-04  Lars Brinkhoff  <lars@nocrew.org>
960
961         * simplify-rtx.c (simplify_binary_operation): Simplify ~a + 1
962         into -a.
963
964 2001-05-04  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
965
966         * config/rs6000/rs6000.md (ashldi3 splits): Guard with
967         TARGET_POWERPC64.
968
969 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
970
971         * config/m68hc11/m68hc11.md (lshrhi3_const1): Fix shift of
972         soft register, use ror instead of rol.
973
974 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
975
976         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Take
977         into account pre/post increment decrement for 68HC12.
978         Fix other problems in replacement and fix call to reg_mentioned_p.
979
980 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
981
982         * config/m68hc11/larith.asm (L_regs_frame): New for _.frame.
983         Put the soft registers in bss for 68HC12.
984         (L_regs_d3_4): New for _.d3 and _.d4.
985         (L_regs_d5_6): Likewise.
986         (L_regs_d1_2): Likewise.
987         * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Compile new parts.
988
989 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
990
991         * config/m68hc11/m68hc11.h (CPP_SPEC): Pass -D__HAVE_SHORT_DOUBLE__
992         to the pre-processor when -fshort-double is specified.
993         * config/m68hc11/m68hc11.2 (CPP_SPEC): Likewise.
994
995 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
996
997         * config/m68hc11/larith.asm (divmodhi4): Empty for 68HC12.
998         (__mulsi3): Rewrite for 68HC12.
999         * config/m68hc11/m68hc11.md (divmodhi4): Use idivs for 68HC12.
1000         Mark 'x' constraint with earlyclobber to prevent a
1001         RELOAD_FOR_OTHER_ADDRESS to go in it.
1002         (mulhi3_m68hc12): New pattern.
1003         (mulhi3_m68hc11): Rename of mulhi3.
1004         (mulhi3): New expand for 68HC12 optimisation.
1005         (umulhisi3, mulhisi3): New patterns for 68HC12.
1006
1007 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1008
1009         * config/m68hc11/m68hc11.md (*tbne, *tbeq): New patterns for 68HC12.
1010         (extendqisi2, extendqihi2, extendhisi2): Use sex for 68HC12.
1011         (uminqi3, umaxqi3, uminhi3, umaxhi3): New pattern for 68HC12.
1012
1013 2001-05-04  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1014
1015         * config/m68hc11/m68hc11.h (CONST_COSTS): Make the cost of
1016         constants cheap after reload.
1017         * config/m68hc11/m68hc11.c (m68hc11_shift_cost): Shift by 16 and 32
1018         are cheap.
1019         (m68hc11_rtx_costs): Cost of multiplication by 65536 is expensive
1020         so that gcc prefers a shift by 16.
1021         (m6811_cost, m6812_cost): Make the shift cheap compared to an add.
1022
1023 2001-05-04  Nick Clifton  <nickc@cambridge.redhat.com>
1024
1025         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Define.
1026
1027 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1028
1029         * alpha.h: NULL_PTR -> NULL.
1030         * arm.c: Likewise.
1031         * arm.h: Likewise.
1032         * avr.h: Likewise.
1033         * c4x.c: Likewise.
1034         * c4x.h: Likewise.
1035         * i386.c: Likewise.
1036         * i386.md: Likewise.
1037         * i860.c: Likewise.
1038         * ia64.c: Likewise.
1039         * m68hc11.h: Likewise.
1040         * rs6000.h: Likewise.
1041         * sh.c: Likewise.
1042         * sh.h: Likewise.
1043         * sparc.h: Likewise.
1044         * v850.c: Likewise.
1045
1046         * expr.c: Likewise.
1047         * final.c: Likewise.
1048         * gcc.c: Likewise.
1049         * recog.c: Likewise.
1050
1051 2001-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1052
1053         * i386.c (ix86_emit_restore_regs_using_mov, ix86_save_reg): Change
1054         `bool' parameter to `int'.
1055
1056         * hash.c (hash_lookup): Likewise.
1057
1058         * hash.h (hash_lookup): Likewise.
1059
1060         * tlink.c (symbol_hash_lookup, demangled_hash_lookup): Likewise.
1061
1062 Fri May  4 13:10:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
1063
1064         * i386.c (x86_initialize_trampoline): Fix mode of constant.
1065
1066 2001-05-03  Geoff Keating  <geoffk@redhat.com>
1067
1068         * invoke.texi (i386 Options): Delete references to -malign-jumps,
1069         -malign-loops, -malign-functions.
1070         * i386.c (ix86_align_funcs): Delete.
1071         (ix86_align_loops): Delete.
1072         (ix86_align_jumps): Delete.
1073         (override_options): Mark -malign-* as obsolete.  Emulate their
1074         behaviour with the -falign-* options.  Default -falign-* from
1075         the processor table.
1076         * i386.h (FUNCTION_BOUNDARY): Define to 16; revert Richard Kenner's
1077         patch of Wed May 2 13:09:36 2001.
1078         (LOOP_ALIGN): Delete.
1079         (LOOP_ALIGN_MAX_SKIP): Delete.
1080         (LABEL_ALIGN_AFTER_BARRIER): Delete.
1081         (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Delete.
1082
1083 2001-05-04  Andreas Jaeger  <aj@suse.de>
1084
1085         * except.h: Add prototype declaration for
1086         expand_builtin_init_dwarf_reg_sizes.
1087
1088 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
1089
1090         * Makefile.in (site.exp): Set TESTING_IN_BUILD_TREE.
1091
1092 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1093
1094         * config/m68hc11/m68hc11.md ("bitcmpqi"): New pattern for bitb
1095         instruction.
1096         ("bitcmpqi2"): New pattern for bit-extract and test.
1097         ("bitcmphi"): New pattern for bitb/bita instructions.
1098
1099 2001-05-03  Joseph S. Myers  <jsm28@cam.ac.uk>
1100
1101         * gccbug.in: Use a temporary directory when the mktemp command is
1102         not available.
1103
1104 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1105
1106         * config/m68hc11/m68hc11.h (STATIC_CHAIN_REGNUM): Use soft z register
1107         instead of _.d1.
1108         (INITIALIZE_TRAMPOLINE): Call it.
1109         (TRAMPOLINE_SIZE): Define according to 68HC11/68HC12.
1110         (TRAMPOLINE_TEMPLATE): Remove.
1111         * config/m68hc11/m68hc11.c (m68hc11_initialize_trampoline): New.
1112         * config/m68hc11/m68hc11-protos.h (m68hc11_initialize_trampoline):
1113         Declare.
1114
1115 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
1116
1117         * config/t-freebsd: Don't install "assert.h" in gcc.  Compile crtbeginS.o
1118         and crtendS.o with PIC.
1119
1120 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1121
1122         * config/m68hc11/larith.asm (__mulqi3): Fix multiplication of two
1123         negative numbers.
1124         (___subdi3, ___adddi3): Use x instead of y as index register.
1125         (__init_bss_section, __map_data_section): Optimize for 68HC12.
1126         (__memset, __memcpy): Likewise.
1127         (regs): Put the soft registers in bss for 68HC12.
1128         (abort): Use trap to abort for 68hc12.
1129         (__mulhi3, __mulhi32): Use emul for 68hc12.
1130         (__mulsi3): Avoid to use the tmp soft register for 68hc12.
1131
1132 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1133
1134         * config/m68hc11/m68hc11.h (LIMIT_RELOAD_CLASS): Don't define.
1135         * config/m68hc11/m68hc11-protos.h (limit_reload_class): Remove.
1136         * config/m68hc11/m68hc11.c (limit_reload_class): Remove.
1137         (m68hc11_override_options): Remove setting of flag_no_nonansi_builtin.
1138         Set 68HC12 min offset to -65536.
1139         (print_operand): Put parenthesis arround the operand if it refers
1140         to a symbol having the same name as a register.
1141         (m68hc11_z_replacement): When z register is replaced by its
1142         equivalent soft register, force the insn to be re-recognized.
1143         (m68hc11_check_z_replacement): Fix the test when destination is
1144         the index register and z dies in the insn.
1145         (m68hc11_reorg): Remove the REG_DEAD notes beforce recomputing them.
1146
1147 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1148
1149         * config/m68hc11/m68hc11.c (m68hc11_override_options): Initialize
1150         costs according to processor variant.
1151         (m68hc11_shift_cost): New function to compute shift costs.
1152         (m68hc11_rtx_costs): Define costs according to processor variant.
1153         (m6811_cost): Costs for 68HC11.
1154         (m6812_cost): Costs for 68HC12.
1155         (COSTS_N_INSNS): Remove.
1156
1157         * config/m68hc11/m68hc11.h (RTX_COSTS): New.
1158         (DEFAULT_RTX_COSTS): Remove.
1159         (CONST_COSTS): Define costs according to OUTER_CODE.
1160         (processor_costs): New struct to define costs.
1161         (m68hc11_cost): Pointer to current costs.
1162
1163 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1164
1165         * config/m68hc11/m68hc11.md (*addhi3_68hc12): Fix generation
1166         and use m68hc11_notice_keep_cc when using leax/leay.
1167         (addhi3 split): Reject split if the insn is handled by
1168         leax/leay above.
1169         * config/m68hc11/m68hc11.c (m68hc11_split_move): For 68HC12 the
1170         push must be handled in a special way if the source operand uses
1171         sp as index register.
1172         (m68hc11_notice_keep_cc): New function.
1173         (m68hc11_gen_movhi): Use it when an insn changes a register but
1174         not the flags.
1175         (m68hc11_gen_movqi): Fix move for 68HC12.
1176         * config/m68hc11/m68hc11-protos.h (m68hc11_notice_keep_cc): Declare.
1177
1178 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1179
1180         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use LCT_CONST
1181         and don't pass operands[0] to emit_library_call_value.
1182
1183 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1184
1185         * config/m68hc11/m68hc11.md (tsthi_1): Use cpd for 68HC12.
1186         (zero_extendsi split): Simplify and use (zero_extendhi).
1187         (*addhi3): Remove 'w' constraint since stack pointer is handled
1188         by (addhi3_sp).
1189         (*ashlhi3_2): Operand 2 is clobbered use '+' for its constraint.
1190         (*ashlhi3, *ashrhi3, *lshrhi3): Likewise.
1191         (*ashrhi3_const): Fix shift by 7.
1192         (*lshrsi3_const16): Fix template.
1193         (call, call_value): Fix constraint and predicate.
1194
1195 2001-05-03  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1196
1197         * config/m68hc11/m68hc11.md (X_REGNUM, D_REGNUM): New constant.
1198         (Y_REGNUM, SP_REGNUM, PC_REGNUM, A_REGNUM, B_REGNUM): Likewise.
1199         (CC_REGNUM): Likewise.
1200         (*unnamed splits): Use above constants instead of hard coded numbers.
1201         (*adcq, *subcq, *addsi_carry, *rotlqi3_with_carry): Likewise.
1202         (*rotlhi3_with_carry, *rotrhi3_with_carry): Likewise.
1203         (*return_16bit, *unnamed peepholes): Likewise.
1204
1205 2001-05-03  David O'Brien  <obrien@FreeBSD.org>
1206
1207         * config.gcc(rs6000-ibm-aix|powerpc-ibm-aix):  Do not include
1208         rs6000/rs6000.h twice.
1209
1210 2001-05-03  Mark Elbrecht  <snowball3@bigfoot.com>
1211
1212         * config/i386/djgpp.h (CPP_PREDEFINES): Define __GO32__.
1213         (CPP_SPEC): Conditionally define MSDOS and GO32.
1214         (SUBTARGET_SWITCHES): Ignore -mbnu210 and -mno-bnu210.
1215         (SUBTARGET_OVERRIDE_OPTIONS): Warn that -mbnu210 and -mno-bnu210 are
1216         ignored.
1217         (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Remove.
1218
1219 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1220
1221         * config/mn10300/mn10300.md: Sign-extend GEN_INT operands.
1222
1223 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1224
1225         * integrate.h (struct inline_remap): Add leaf_reg_map table.
1226         * integrate.c (expand_inline_function): Use xcalloc to allocate
1227         memory.
1228         (copy_rtx_and_substitute): Use the leaf_reg_map for leaf
1229         registers.
1230
1231 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
1232
1233         * c-dump.c (dequeue_and_dump): Don't look at DECL_ASSEMBLER_NAME
1234         if it is not set.
1235
1236 2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
1237
1238         * config/mn10300/mn10300.h (LINK_SPEC): Pass --relax to the
1239         linker if -mrelax is given.
1240         (TARGET_SWITCHES): Document -mrelax.
1241
1242         Re-installed 2001-01-09's patch:
1243         * hwint.h (HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT): Use long long
1244         if it's wider than long and the target's long is wider than the
1245         host's.
1246
1247 2001-05-02  David O'Brien  <obrien@FreeBSD.org>
1248
1249         * config.gcc, config/rs6000/aix51.h, config/rs6000/mach.h:  Do not
1250         directly include rs6000/rs6000.h.  Instead do it in tm.h.
1251
1252 2001-05-02  Stan Shebs  <shebs@apple.com>
1253
1254         * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Default to
1255         NSConstantString for NeXT-style runtimes.
1256         (STRING_OBJECT_GLOBAL_NAME): New macro.
1257         (enum objc_tree_index): Add values OCTI_CNST_STR_GLOB_ID and
1258         OCTI_STRING_CLASS_DECL.
1259         (constant_string_global_id): New macro.
1260         (string_class_decl): Ditto.
1261         (setup_string_decl): New function.
1262         (build_objc_string_object): Use it to build a NeXT runtime
1263         compatible string initializer.
1264
1265 2001-05-02  Jakub Jelinek  <jakub@redhat.com>
1266
1267         * tradcpp.c (do_define): Make sure we don't walk past limit.
1268
1269 2000-05-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1270
1271         * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow any stack
1272         offsets if not REG_OK_STRICT.
1273
1274         * config/rs6000/rs6000.h (REG_OK_STRICT_FLAG): New macro.
1275         (INT_REG_OK_FOR_INDEX_P): Likewise.
1276         (INT_REG_OK_FOR_BASE_P): Likewise.
1277         (REG_OK_FOR_INDEX_P): Use INT_REG_OK_FOR_INDEX_P.
1278         (REG_OK_FOR_BASE_P): Use INT_REG_OK_FOR_BASE_P.
1279         (LEGITIMATE_OFFSET_ADDRESS_P): Use INT_REG_OK_FOR_INDEX_P and
1280         INT_REG_OK_FOR_BASE_P instead of REG_OK_FOR_INDEX_P and
1281         REG_OK_FOR_BASE_P. Take an additional parameter.
1282         (LEGITIMATE_INDEXED_ADDRESS_P): Likeewise.
1283         (LEGITIMATE_INDIRECT_ADDRESS_P): Likewise.
1284         (LEGITIMATE_LO_SUM_ADDRESS_P): Likewise.
1285         (GO_IF_LEGITIMATE_ADDRESS): Move code into new function
1286         rs6000_legitimate_address() and use it.
1287         * config/rs6000/rs6000.c: Update all callers.
1288         (rs6000_legitimate_address): New function.
1289
1290 2001-05-02  David Edelsohn  <edelsohn@gnu.org>
1291
1292         * config/rs6000/rs6000.c (rs6000_emit_move): Merge
1293         special_constant conditional blocks together.
1294
1295 2001-05-02  Dale Johannesen  <dalej@apple.com>
1296
1297         * config/rs6000/rs6000.h (RS6000_ARG_SIZE): Remove unused NAMED
1298         parameter.
1299         (STRICT_ARGUMENT_NAMING): Define.
1300         * config/rs6000/rs6000.c (function_arg_advance, function_arg,
1301         function_arg_partial_nregs, setup_incoming_varargs): Remove
1302         args logic which depends on "named" now that STRICT_ARGUMENT_NAMING
1303         is defined.
1304
1305 Wed May  2 13:09:36 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1306
1307         * config/i386/i386.h (FUNCTION_BOUNDARY): Result is unsigned.
1308
1309         * function.c (fixup_var_regs_1, case SUBREG): Use promoted mode
1310         for replacement.
1311
1312         * expr.c (store_field): Do nothing except elaborate side-effects if
1313         zero-bit field.
1314
1315 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1316
1317         * c-lex.c: NULL_PTR -> NULL.
1318         * cse.c: Likewise.
1319         * emit-rtl.c: Likewise.
1320         * gcse.c: Likewise.
1321         * genpeep.c: Likewise.
1322         * jump.c: Likewise.
1323         * mips-tdump.c: Likewise.
1324         * reload1.c: Likewise.
1325         * rtlanal.c: Likewise.
1326         * stmt.c: Likewise.
1327         * stor-layout.c: Likewise.
1328         * toplev.c: Likewise.
1329
1330 2001-05-01  Per Bothner  <per@bothner.com>
1331
1332         * expr.c (expand_expr):  When compiling LABELED_BLOCK_EXPR,
1333         call do_pending_stack_adjust before emiting label.
1334
1335 2001-05-01  Mark Mitchell  <mark@codesourcery.com>
1336
1337         * extend.texi: Fix typo.
1338
1339 2001-05-01  Stan Shebs  <shebs@apple.com>
1340
1341         * objc/objc-act.c (build_module_descriptor): Clear DECL_CONTEXT
1342         of UOBJC_MODULES_decl.
1343         (generate_strings): Clear DECL_CONTEXT of new decl nodes.
1344         (generate_descriptor_table): Ditto.
1345         (generate_protocols): Ditto.
1346         (generate_protocol_list): Ditto.
1347         (generate_classref_translation_entry): Ditto.
1348
1349 2001-05-01  Jeffrey Oldham  <oldham@codesourcery.com>
1350
1351         * invoke.texi (Optimize Options): Add documentation for `--param
1352         max-delay-slot-insn-search' and `--param
1353         max-delay-slot-live-search' and reorder --param section.
1354         * params.def: Modify initial comment.
1355         * params.h (param_info): Add `help' member.
1356         * toplev.c (lang_independent_params): Include `help' description.
1357         (display_help): Print --param parameters.
1358
1359 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1360
1361         * config.gcc: Don't default xmake_file to ${cpu_type}/x-${cpu_type}.
1362         Remove references to deleted files.
1363         (*-*-openbsd): No need to override xmake_file.
1364         (*-*-sysv4): Treat like *-*-sysv.
1365
1366         * configure.in: Probe for ldopen in various places, and set up
1367         collect2 to be linked with them if found.
1368         Don't dink with Windows registry stuff unless $host_os is a
1369         Win32 os name.  Check to see if we need -ladvapi32.
1370         * configure: Regenerate.
1371
1372         * Makefile: Get rid of CLIB and HOST_CLIB.
1373         Substitute in COLLECT2_LIBS and link collect2 against its contents.
1374         * build-make: Get rid of HOST_CLIB.
1375
1376         * config/a29k/x-unix, config/alpha/x-osf, config/i386/x-aix,
1377         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
1378         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
1379         config/mips/x-sysv, config/rs6000/x-aix31, config/rs6000/x-aix41,
1380         config/rs6000/x-rs6000: Delete.
1381
1382         * config/i386/x-cygwin, config/m68k/t-aux, config/mips/x-iris:
1383         Don't set CLIB.
1384
1385         24 x-host fragments remain, 0 x-cpu, 3 top level.
1386
1387 2001-05-01  Zack Weinberg  <zackw@stanford.edu>
1388
1389         * aclocal.m4 (gcc_AC_C_CHAR_BIT): Correct test program.
1390         * configure: Regenerate.
1391
1392 2001-05-01  Angela Marie Thomas <angela@cygnus.com>
1393
1394         * Makefile.in (install-headers): Remove redundant dependency.
1395
1396 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
1397
1398         * c-tree.texi (USING_STMT): Document.
1399
1400 2001-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1401
1402         * bitmap.c: Change NULL_PTR to NULL or "(rtx*)0".
1403         * c-common.c: Likewise.
1404         * c-decl.c: Likewise.
1405         * combine.c: Likewise.
1406         * rs6000.c: Likewise.
1407         * except.c: Likewise.
1408         * explow.c: Likewise.
1409         * expr.c: Likewise.
1410         * fold-const.c: Likewise.
1411         * function.c: Likewise.
1412         * gcc.c: Likewise.
1413         * gcse.c: Likewise.
1414         * integrate.c: Likewise.
1415         * loop.c: Likewise.
1416         * objc/objc-act.c: Likewise.
1417         * recog.c: Likewise.
1418         * reg-stack.c: Likewise.
1419         * reload.c: Likewise.
1420         * reload1.c: Likewise.
1421         * simplify-rtx.c: Likewise.
1422         * stmt.c: Likewise.
1423         * varasm.c: Likewise.
1424
1425 2001-05-01  Gabriel Dos Reis  <gdr@codesourcery.com>
1426
1427         * diagnostic.def: New file.
1428         * diagnostic.h (diagnostic_t): New enum.
1429         * Makefile.in (diagnostic.o): Depend on diagnostic.def
1430
1431 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1432
1433         * tsystem.h: Test only POSIX for availability of string.h
1434         and time.h.
1435         * config.gcc (all systems): If USG appeared in xm_defines,
1436         change it to POSIX.  If both USG and POSIX appeared, just
1437         delete USG. Remove unnecessary quotes around xm_defines
1438         settings.
1439         (m68k-crds-unos*): Don't #define unos - tested nowhere.
1440         (m68k-apple-aux*): Don't #define AUX - tested nowhere.
1441         (alpha*-*-linux*ecoff*, powerpc-*-linux*libc1,
1442         powerpc-*-linux*): No need to set xm_defines - handled by
1443         global settings for *-*-linux*.
1444
1445 2001-04-30  Zack Weinberg  <zackw@stanford.edu>
1446
1447         * dbxout.c, mips-tfile.c, config/mips/mips.c, xcoffout.c:
1448         Always include gstab.h, not system stab.h.  Don't provide
1449         default definitions of N_CATCH or N_OPT.  Always use the
1450         gstab.h variant of STAB_CODE_TYPE.
1451         * final.c: Don't include stab.h/gstab.h at all, or provide
1452         defaults for N_SLINE and N_SOL.
1453
1454         * xcoffout.c: Can assume N_MAIN, N_DSLINE, N_BSLINE, N_BINCL,
1455         N_EINCL, N_EXCL, N_M2C, N_SCOPE, N_CATCH, and N_OPT are
1456         available.
1457         * sdbout.c: Always include gsyms.h instead of system syms.h.
1458
1459         * configure.in: No need to check for stab.h.
1460         * configure, config.in: Regenerate.
1461         * Makefile.in (final.o): Don't depend on gstab.h.
1462
1463 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1464             Richard Henderson  <rth@redhat.com>
1465
1466         * extend.texi: Improve documentation of volatile asms.
1467
1468 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1469
1470         * c-tree.texi: Fix thinko.
1471         * gcc.texi: Likewise.
1472
1473 2001-04-30  Richard Henderson  <rth@redhat.com>
1474
1475         * c-common.c (c_promoting_integer_type_p): New function, from the
1476         corpse of old macro.  Properly promote too-small enumerations and
1477         booleans.  Adjust all callers.
1478         * c-common.h (C_PROMOTING_INTEGER_TYPE_P): Remove.
1479         (c_promoting_integer_type_p): Declare.
1480         * c-decl.c: Adjust C_PROMOTING_INTEGER_TYPE_P invocations.
1481         * c-typeck.c: Likewise.
1482         (default_conversion): Remove now redundant boolean check.
1483
1484 2001-04-30  Jan Hubicka  <jh@suse.cz>
1485             Richard Henderson  <rth@redhat.com>
1486
1487         * regmove.c (try_apply_stack_adjustment): Remove now redundant
1488         sanity checks.
1489         (combine_stack_adjustments_for_block): Don't combine stack
1490         allocation followed by deallocations.  Handle grow-up stacks.
1491
1492 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1493
1494         * fdl.texi: New file.
1495         * c-tree.texi: Use the GFDL.
1496         * gcc.texi: Likewise.
1497
1498 2001-04-30  Stan Shebs  <shebs@apple.com>
1499
1500         * invoke.texi: Add a section documenting Objective-C options.
1501
1502 2001-04-27  Andrew Haley  <aph@cambridge.redhat.com>
1503
1504         * emit-rtl.c (try_split):  Copy EH notes to sequence.
1505
1506 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
1507
1508         * regmove.c (record_stack_memrefs): Catch all references to the
1509         stack pointer.
1510
1511 2001-04-29  Toomas Rosin <toomas at ns dot tklabor dot ee>
1512
1513         * Makefile.in(stmp-fixinc): quote shell assignment values
1514
1515 2001-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1516
1517         * c-aux-info.c: NULL_PTR->NULL in calls to `concat'.
1518
1519         * gcc.c: Likewise.
1520
1521         * prefix.c: Likewise.
1522
1523 2001-04-28  Stan Shebs  <shebs@apple.com>
1524
1525         * objc/objc-act.c (handle_class_ref): Rewrite to flush target
1526         specific code and use new macro ASM_DECLARE_UNRESOLVED_REFERENCE.
1527         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Define.
1528         * tm.texi (ASM_DECLARE_UNRESOLVED_REFERENCE): Document.
1529
1530         * config/darwin.h (STANDARD_EXEC_PREFIX): Don't define.
1531         (NEXT_OBJC_RUNTIME): Define.
1532
1533 Sat Apr 28 21:02:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
1534
1535         * rtl.h (simplify_gen_relational): Add cmp_mode parameter.
1536         * simplify-rtx.c (simplify_gen_relational): Likewise.
1537
1538         * simplify-rtx.c (simplify_replace_rtx): Handle relationals and MEMs.
1539
1540         * i386.h (VALID_SSE_REG_MODE): Accept MMX modes if SSE2
1541         * i386.md (movsi_1, movdi2, movdi_1_rex64): Handle SSE2 moves.
1542
1543         * i386.md (negsf2, negdf2, abssf2, absdf2): Force operands to
1544         registers in SSE case; fix handling of the immediates.
1545         (negsf2_ifs, abssf2_ifs): Tweak constraints; require
1546         operands to be in regsiters before reload.
1547         (negdf2_ifs, absdf2_ifs): Likewise; disable for 64bit
1548         (negdf2_ifs_rex64, absdf2_ifs_rtx64): New.
1549         (abstf,absxf,negtf,negxf splitters): Compute
1550         properly the regnum for x86_64.
1551         (avsdf2_if_rex64): New.
1552
1553 Sat Apr 28 10:36:23 2001  Jeffrey A Law  (law@cygnus.com)
1554
1555         * flow.c (propagate_block_delete_insn): Handle deletion of ADDR_VEC
1556         and ADDR_DIFF_VEC insns when the proceeding CODE_LABEL was put
1557         into the constant pool.
1558         * jump.c (jump_optimize_1): Remove barrier successors after all
1559         the LABEL_NUSES counds have been computed.
1560         (delete_barrier_successors): When deleting a tablejump insn, also
1561         delete the jump table it uses.
1562         * varasm.c (force_const_mem): Set LABEL_PRESERVE_P when forcing a
1563         label into memory.
1564
1565 2001-04-28  Martin Kalen  <martin.kalen@todaysystems.com.au>
1566
1567         * pa.c (FRP): Remove erroneous white space in macro definition.
1568
1569 2001-04-28  Andreas Jaeger  <aj@suse.de>
1570
1571         * invoke.texi: Use XX-bit instead of XXbit or XX bit where
1572         appropriate.
1573         * extend.texi: Likewise.
1574         * tm.texi: Likewise.
1575
1576 2001-04-28  Andreas Jaeger  <aj@suse.de>
1577
1578         * md.texi: Use XX-bit instead of XXbit or XX bit where
1579         appropriate.
1580
1581 2001-04-28  Jens Schweikhardt <schweikh@schweikhardt.net>
1582
1583         * gcc.c (process_command): Allow -l lib in addition to -llib
1584         for POSIX compliance. This fixes PR c/2347.
1585
1586         * invoke.texi: Update section on Link Options accordingly.
1587
1588 2001-04-27  Zack Weinberg  <zackw@stanford.edu>
1589
1590         * function.c (purge_addressof_1): Remove the duplicate
1591         if (code == SET) block.  Fold the two if (code == ADDRESSOF)
1592         blocks together.
1593
1594 2001-04-28  Jason Merrill  <jason_merrill@redhat.com>
1595
1596         * except.c (expand_eh_region_start): Don't start a new block.
1597         (expand_eh_region_end): Don't end a block.
1598         * stmt.c (expand_end_bindings): Don't end EH blocks.
1599         (expand_decl_cleanup): Starting an EH region won't change the block.
1600         (mark_block_as_eh_region, mark_block_as_not_eh_region): Lose.
1601         (is_eh_region): Lose.
1602         * tree.h: Adjust.
1603
1604 2001-04-27  Jeffrey Oldham  <oldham@codesourcery.com>
1605
1606         * except.c (expand_eh_region_end_cleanup): word_mode, not Pmode.
1607
1608         * collect2.c (main): Add `-L' case to remove duplicate entries.
1609         (is_in_args): New function to check for a duplicate argument.
1610         * defaults.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New macro.
1611         * tm.texi (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES): New documentation.
1612         * config/mips/iris6.h (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES):
1613         Define to be nonzero.
1614
1615 2001-04-27  Andreas Jaeger  <aj@suse.de>
1616             Richard Henderson  <rth@redhat.com>
1617
1618         * md.texi (Machine Constraints): Document additional i386
1619         constraints and fix description of "A".
1620
1621 Fri Apr 27 10:43:49 2001  Jeffrey A Law  (law@cygnus.com)
1622
1623         * tm.texi (TARGET_MEM_FUNCTIONS): Update text.
1624
1625 2001-04-27  Jason Merrill  <jason_merrill@redhat.com>
1626
1627         * except.c (get_exception_filter): word_mode, not Pmode.
1628
1629 2001-04-26  Geoffrey Keating  <geoffk@redhat.com>
1630
1631         * config/sparc/sparc.md (movsf_no_f_insn): Add more alternatives
1632         common to other movsf patterns.  Move up so that in future
1633         people who change the other patterns will change it too.
1634         (movsf_lo_sum): Allow even for soft-float; add appropriate
1635         constraints.
1636         (movsf_high): Likewise.
1637         (movsf_high+1): Allow even for soft-float.
1638
1639         * function.c (expand_function_end): Always clobber the
1640         return registers, even if there is no return label.
1641
1642 Thu Apr 26 20:28:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
1643
1644         * (ix86_expand_fp_movcc): Re-enable SSE conditional move generation.
1645
1646 Thu Apr 26 19:20:28 CEST 2001  Jan Hubicka  <jh@suse.cz>
1647
1648         * i386.md (abs/neg splitter): Fix calculation of sign bit for TFmodes
1649         (pushqi2_rex64, pushhi2_rex64): Add.
1650
1651 2001-04-26  Andrew Haley  <aph@cambridge.redhat.com>
1652
1653         * except.c (expand_eh_region_end_cleanup): Force pending stack
1654         adjust before emitting label that branches around cleanup code.
1655
1656 2001-04-26  H.J. Lu  (hjl@gnu.org)
1657
1658         * config.gcc (mips*-*-linux*): Add elfos.h to tm_file.
1659
1660         * config/mips/ecoff.h (STARTFILE_SPEC): Undefine before
1661         define.
1662         * config/mips/elf64.h (MAX_OFILE_ALIGNMENT): Likewise.
1663         (ASM_OUTPUT_SECTION_NAME): Likewise.
1664         (ASM_WEAKEN_LABEL): Likewise.
1665         (UNIQUE_SECTION): Likewise.
1666         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1667         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1668         * config/mips/elf.h (MAX_OFILE_ALIGNMENT): Likewise.
1669         (ASM_OUTPUT_SECTION_NAME): Likewise.
1670         (ASM_WEAKEN_LABEL): Likewise.
1671         (UNIQUE_SECTION): Likewise.
1672         (ASM_OUTPUT_CONSTRUCTOR): Likewise.
1673         (ASM_OUTPUT_DESTRUCTOR): Likewise.
1674         * config/mips/linux.h (HANDLE_SYSV_PRAGMA): Likewise.
1675         * config/mips/mips.h (DBX_CONTIN_LENGTH): Likewise.
1676         (ASM_FILE_START): Likewise.
1677         (ASM_OUTPUT_SOURCE_LINE): Likewise.
1678         (ASM_DECLARE_OBJECT_NAME): Likewise.
1679         (ASM_FILE_END): Likewise.
1680         (ASM_DECLARE_FUNCTION_NAME): Likewise.
1681         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
1682         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
1683         (ASM_OUTPUT_CASE_LABEL): Likewise.
1684         (ASM_OUTPUT_SKIP): Likewise.
1685         (ASM_OUTPUT_ASCII): Likewise.
1686         (ASM_OUTPUT_IDENT): Likewise.
1687         (READONLY_DATA_SECTION): Likewise.
1688         (EXTRA_SECTIONS): Likewise.
1689         (EXTRA_SECTION_FUNCTIONS): Likewise.
1690         (SELECT_RTX_SECTION): Likewise.
1691         (SELECT_SECTION): Likewise.
1692
1693         * config/mips/linux.h (INVOKE__main): Undefine.
1694         (CTOR_LIST_BEGIN): Likewise.
1695         (CTOR_LIST_END): Likewise.
1696         (DTOR_LIST_BEGIN): Likewise.
1697         (DTOR_LIST_END): Likewise.
1698         (SET_ASM_OP): Defined it to ".dummy".
1699         (ASM_OUTPUT_DEF): Defined.
1700         (ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL): Defined.
1701
1702 2001-04-26  Nick Clifton  <nickc@cambridge.redhat.com>
1703
1704         * config/arm/arm.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define, if the
1705         assembler supports .p2align.
1706
1707 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
1708
1709         * c-lex.c (c_lex): Remove # from %o diagnostic formatting.
1710
1711 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1712
1713         * integrate.c (expand_inline_function): Check for error_mark_node
1714         in actual argument.
1715
1716 2001-04-26  Jakub Jelinek  <jakub@redhat.com>
1717
1718         * config/i386/i386.h (CC1_CPU_SPEC): Fix deprecation warnings for
1719         -m386 and -m486.
1720
1721 2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
1722
1723         * configure.in (configargs.h): Define thread_model.
1724         * configure: Rebuilt.
1725         * gcc.c (main): Print it with -v.
1726
1727 2001-04-25  Joseph S. Myers  <jsm28@cam.ac.uk>
1728
1729         * invoke.texi: Document -Wmissing-braces, -dumpspecs,
1730         -dumpmachine, -dumpversion, -fmem-report and -ftime-report.
1731         * gcc.1: Regenerate.
1732
1733 2001-04-25  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1734
1735         * dwarfout.c (is_pseudo_reg, type_main_variant, is_tagged_type,
1736         is_redundant_typedef): Use static inline instead of inline static.
1737
1738 Wed Apr 25 18:21:01 2001  Christopher Faylor <cgf@cygnus.com>
1739
1740         * config/i386/cygwin.h: Move W32API search to LINK_SPEC to ensure that
1741         this directory is always searched.
1742
1743 2001-04-25  Richard Henderson  <rth@redhat.com>
1744
1745         * config/i386/i386.c (ix86_expand_epilogue): Properly compute size
1746         of registers to restore along non eh_return path.
1747
1748 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1749
1750         * c-format.c (check_format_info_recurse): Handle
1751         PLUS_EXPR for format string.
1752
1753 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1754
1755         * config/ia64/ia64.h (CC1_SPEC): Define.
1756         * config/ia64/linux.h (CC1_SPEC): Define.
1757
1758 Wed Apr 25 17:09:50 2001  J"orn Rennecke <amylaar@redhat.com>
1759
1760         * emit-rtl.c (constant_subword): Also do sign extension in
1761         BITS_PER_WORD == 16 case.
1762
1763 2001-04-25  Jason Merrill  <jason_merrill@redhat.com>
1764
1765         * loop.c (try_swap_copy_prop): Go back to checking insn.
1766
1767 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1768
1769         * emit-rtl.c (subreg_hard_regno): Only do HARD_REGNO_MODE_OK check
1770         if check_mode is non-zero.
1771
1772 2001-04-25  Jakub Jelinek  <jakub@redhat.com>
1773
1774         * config/i386/i386.c (ix86_expand_int_movcc): If overlap between
1775         out and comparison sequence has been detected, put result into
1776         proper temporary pseudo.
1777
1778 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1779
1780         * Makefile.in (LIB2FUNCS): Remove _varargs and __dummy.
1781         * libgcc-std.ver: Remove __builtin_saveregs, __dummy, and __empty.
1782         * libgcc2.c: Remove __dummy and __builtin_saveregs.
1783         * libgcc2.h: Don't prototype __builtin_saveregs or __dummy.
1784         * config/i860/varargs.asm: New file - preserve i860 __builtin_saveregs
1785         for future reference.
1786
1787 2001-04-24  Jason Merrill  <jason_merrill@redhat.com>
1788
1789         * except.c (reachable_handlers): Step out one level from a RESX.
1790
1791         * except.c (struct eh_region): Rename 'last' to 'resume'.
1792         (mark_eh_region, duplicate_eh_region_1): Adjust.
1793         (expand_eh_region_end_cleanup): Remember the jump, not the barrier.
1794         (build_post_landing_pads): Likewise.
1795         (expand_end_catch, expand_eh_region_end_allowed): Don't set it.
1796         (expand_eh_region_end_must_not_throw): Likewise.
1797         (connect_post_landing_pads): Thread (only) regions with non-deleted
1798         resume insns.
1799
1800         * except.c (expand_eh_region_end_cleanup): Save the EH return data
1801         registers around the cleanup.
1802         (get_exception_filter): New fn.
1803         (finish_eh_generation): Use it.
1804
1805 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
1806
1807         * c-semantics.c (add_scope_stmt): Don't call
1808         current_scope_stmt_stack multiple times.
1809
1810 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
1811             Nathan Sidwell <nathan@codesourcery.com>
1812
1813         Lazy __FUNCTION__ generation.
1814         * c-common.h (RID_FUNCTION_NAME, RID_PRETTY_FUNCTION_NAME,
1815         RID_C99_FUNCTION_NAME): New _RIDs.
1816         (CTI_FUNCTION_ID, CTI_PRETTY_FUNCTION_ID, CTI_FUNC_ID): Remove.
1817         (CTI_FUNCTION_NAME_DECL, CTI_PRETTY_FUNCTION_NAME_DECL,
1818         CTI_C99_FUNCTION_NAME_DECL, CTI_SAVED_FUNCTION_NAME_DECLS): New
1819         global tree slots.
1820         (function_id_node, pretty_function_id_node, func_id_node): Remove.
1821         (c99_function_name_decl_node, function_name_decl_node,
1822         pretty_function_name_decl_node, saved_function_name_decls):
1823         Declare.
1824         (struct language_function): Remove x_function_name_declared_p.
1825         (make_fname_decl): Remove a parameter.
1826         (declare_function_names): Remove prototype.
1827         (start_fname_decls, finish_fname_decls): Prototype.
1828         (fname_as_string): Likewise.
1829         (fname_string, fname_decl): Likewise.
1830         * c-common.c (make_fname_decl): Adjust.
1831         (struct fname_var_t): New struct.
1832         (fname_vars): New static array.
1833         (declare_function_name): Remove.
1834         (start_fname_decls, finish_fname_decls): New functions.
1835         (fname_as_string): New function from remnants of
1836         declare_function_name.
1837         (fname_string, fname_decl): New functions.
1838
1839         * c-decl.c (c_function_name_declared_p): Remove.
1840         (init_decl_processing): Don't generate __FUNCTION__ et al ids,
1841         don't call declare_function_name. Call start_fname_decls.
1842         (c_make_fname_decl): Adjust parameters. Generate the name. Don't
1843         clobber the line number. Call finish_decl.
1844         (start_function): Call start_fname_decls.
1845         (finish_function): Call finish_fname_decls.
1846         Remove c_function_name_declared_p.
1847         (push_c_function_context): Don't push c_function_name_declared_p.
1848         (pop_c_function_context): Don't pop c_function_name_declared_p.
1849         (c_begin_compound_stmt): Don't check c_function_name_declared_p.
1850         * c-parse.in (STRING_FUNC_NAME, VAR_FUNC_NAME): New tokens.
1851         (program): Call finish_fname_decls for C.
1852         (primary): Add VAR_FUNC_NAME.
1853         (reswords): Add slots for __FUNCTION__ et al.
1854         (rid_to_yy): Add mappings for __FUNCTION__ et al.
1855         (yylexname): If it's a STRING_FUNC_NAME generate the function name
1856         now. Don't look for VAR_DECLs containing __FUNCTION__ et al.
1857         * c-semantics.c (prune_unused_decls): Remove.
1858         (finish_stmt_tree): Don't call prune_unused_decls.
1859         (genrtl_decl_stmt): Don't prune unused decls here.
1860
1861 2001-04-24  Nick Clifton  <nickc@cambridge.redhat.com>
1862
1863         * dwarf2out.c (mem_loc_descriptor): If a SYMBOL_REF is in the
1864         constant pool, use the pool's SYMBOL_REF instead.
1865
1866         * config/v850/v850.h (STRICT_ALIGNMENT): Always set, even for the
1867         v850e.
1868
1869 2001-04-23  Joseph S. Myers  <jsm28@cam.ac.uk>
1870
1871         * c-convert.c (convert): When converting to a BOOLEAN_TYPE, avoid
1872         passing nested NOP_EXPRs to fold.
1873
1874 Mon Apr 23 14:32:12 CEST 2001  Jan Hubicka  <jh@suse.cz>
1875
1876         * reg-stack.c (emit_swap_insn): Do not get pass CALL_INSNs.
1877
1878 2001-04-22  Mark Mitchell  <mark@codesourcery.com>
1879
1880         * loop.c (loop_delete_insns): Add prototype.
1881
1882 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
1883
1884         * configure.in:  Remove ENABLE_STD_NAMESPACE.
1885         * config.in:  Regenerated.
1886         * configure:  Regenerated.
1887
1888 2001-04-22  Stan Shebs  <shebs@apple.com>
1889
1890         * config.gcc (powerpc-*-darwin*): Move the flag in xm-darwin.h
1891         into xm_defines.
1892         * config/rs6000/xm-darwin.h: Remove file.
1893
1894 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1895
1896         * collect2.c (main): Use concat in lieu of xmalloc/sprintf.
1897         (write_c_file_stat): Likewise.
1898
1899         * dbxout.c (dbxout_init): Likewise.
1900
1901         * profile.c (output_func_start_profiler): Likewise.
1902
1903 2001-04-22  Philipp Thomas  <pthomas@suse.de>
1904
1905         * ABOUT-GCC-NLS: Now that gettext 0.10.37 is out,
1906         require it instead of the CVS version.
1907         * cpperror.c (v_message): Put a blank before the macro
1908         body to not confuse exgettext.
1909
1910 2001-04-21  Mark Mitchell  <mark@codesourcery.com>
1911
1912         * flow.c (proagate_one_insn): Remove useless assignment.
1913         * jump.c (delete_insn): Tidy.
1914         * loop.c (try_copy_prop): When deleting an instruction with a
1915         REG_RETVAL note, delete the entire libcall sequence.
1916         (loop_delete_insns): New function.
1917         * unroll.c (initial_reg_note_copy): Copy INSN_LIST notes, even if
1918         we're not substituting into them yet.
1919
1920 2001-04-21  Kazu Hirata  <kazu@hxi.com>
1921
1922         * config/h8300/h8300.c (general_operand_src): Fix a comment typo.
1923
1924         * config/sparc/sparc.c (sparc_flat_eligible_for_epilogue_delay):
1925         Fix a comment typo.
1926         * config/i960/i960.c (signed_arith_operand): Likewise.
1927
1928         * calls.c (expand_call): Fix a comment typo.
1929
1930 2001-04-20  Zack Weinberg  <zackw@stanford.edu>
1931
1932         * configure.in: Probe for times, clock, struct tms, and clock_t.
1933         * configure, config.in: Regenerate.
1934         * timevar.c: Replace ifdef forest in get_time with (relatively)
1935         straightforward series of checks based on autoconf's probes.
1936
1937 Fri Apr 20 12:24:50 2001  Jeffrey A Law  (law@cygnus.com)
1938
1939         * config/pa/som.h (NM_FLAGS): Define.
1940
1941 2001-04-20  Bernd Schmidt  <bernds@redhat.com>
1942
1943         * ia64.h (MD_SCHED_REORDER, MD_SCHED_REORDER2): Pass CLOCK to called
1944         function.
1945         * ia64-protos.h (ia64_sched_reorder): Additional arg for clock.
1946         * ia64.c (nop_cycles_until): New function.
1947         (prev_cycle, prev_first, last_issued): New static variables.
1948         (ia64_sched_reorder): Additional arg for clock.
1949         On final scheduling pass, emit extra NOPs as needed.
1950         Set prev_first and prev_cycle.
1951         (ia64_sched_reorder2): Pass clock arg down to ia64_sched_reorder.
1952         (ia64_variable_issue): Set last_issued.
1953
1954 2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
1955
1956         * config/i386/i386.c (ix86_expand_int_movcc,
1957         ix86_expand_strlensi_unroll_1): Sign-extend CONST_INTs.
1958
1959 2001-04-20  Geoff Keating  <geoffk@redhat.com>
1960
1961         * config/rs6000/rs6000.md (ctrsi_internal1, ctrsi_internal2,
1962         ctrsi_internal3, ctrsi_internal4, ctrsi_internal5,
1963         ctrsi_internal6, ctrdi_internal1, ctrdi_internal2,
1964         ctrdi_internal3, ctrdi_internal4, ctrdi_internal5,
1965         ctrdi_internal6): In the short-branch case, this insn is only 4
1966         bytes long.  Reported by Reza Yazdani <reza@apple.com>.
1967
1968 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1969
1970         * reg-stack.c (check_asm_stack_operands): Issue error if "=t" resp.
1971         "=u" is used together with "st" resp. "st(1)" clobber.
1972
1973 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
1974
1975         * gcse.c (gcse_main): Fix comment typo.
1976         (delete_null_pointer_check): Likewise.
1977         (hash_scan_set): Don't consider sets with REG_EQUIV MEM notes.
1978         * cse.c (cse_insn): Likewise.
1979         * function.c (fixup_var_refs_insns_with_hash): The sequence is
1980         toplevel.
1981
1982 2001-04-19  Zack Weinberg  <zackw@stanford.edu>
1983
1984         * toplev.c: Excise all code for the undocumented -dm option.
1985         (float_signal): Call signal just once, unconditionally.
1986
1987 2001-04-19  Geoff Keating  <geoffk@redhat.com>
1988
1989         * fold-const.c (fold): Use first_rtl_op rather than
1990         TREE_CODE_LENGTH when looping over parameters of a tree.
1991         Correct strange grouping in test for evaluated SAVE_EXPR.
1992
1993 Thu Apr 19 19:15:26 2001  Jeffrey A Law  (law@cygnus.com)
1994
1995         * config/pa/pa-linux.h (CPLUSPLUS_CPP_SPEC): Undefine.
1996         * config/pa/pa.h (CPLUSPLuS_CPP_SPEC): Define.
1997
1998         * config/pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Truncate subspace
1999         name at 32 total characters.
2000         (ASM_OUTPUT_SECTION_NAME): Similarly.  Also, only support placing
2001         functions in named sections -- data items can still go into unique
2002         sections, but they have normal names (ie $LIT$ and $DATA$).
2003
2004         * config/pa/som.h (SUPPORTS_INIT_PRIORITY): SOM does not support
2005         INIT_PRIORITY.
2006
2007 2001-04-19 DJ Delorie  <dj@redhat.com>
2008
2009         * config/alpha/vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
2010         to TARGET_OBJECT_SUFFIX and TARGET_EXECUTABLE_SUFFIX.
2011         * config/i386/cygwin.h: Likewise.
2012         * config/i386/mingw32.h: Likewise.
2013         * config/vax/vms.h: Likewise.
2014         * config/i386/djgpp.h: Remove NO_AUTO_EXE_SUFFIX.
2015
2016         * config/alpha/xm-vms.h: Change OBJECT_SUFFIX and EXECUTABLE_SUFFIX
2017         to HOST_OBJECT_SUFFIX and HOST_EXECUTABLE_SUFFIX.
2018         * config/i386/xm-cygwin.h: Likewise.
2019         * config/i386/xm-djgpp.h: Likewise.
2020         * config/i386/xm-mingw32.h: Likewise.
2021         * config/vax/xm-vms.h: Likewise.
2022
2023         * mkdeps.c (deps_add_default_target): Use TARGET_OBJECT_SUFFIX
2024         instead of OBJECT_SUFFIX.
2025         * collect2.c (find_a_file): Look for files matching the extension
2026         HOST_EXECUTABLE_SUFFIX instead of EXECUTABLE_SUFFIX.
2027         * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Depend on
2028         TARGET_EXECUTABLE_SUFFIX.
2029         (find_a_file): Use HOST_EXECUTABLE_SUFFIX.
2030         (make_relative_prefix): Likewise.
2031         (convert_filename): Use TARGET_ suffixes throughout.  Remove
2032         NO_AUTO_EXE_SUFFIX.
2033         (process_command): Likewise.
2034         (do_spec_1): Likewise.
2035         * java/lang.c (init_parse): Likewise.
2036
2037         * gcc.texi : Document four new options matching the pattern
2038         (HOST|TARGET)_(OBJECT|EXECUTABLE)_SUFFIX.  Remove documentation
2039         for deleted macros OBJECT_SUFFIX and EXECUTABLE_SUFFIX.  Remove
2040         documentation for NO_AUTO_EXE_SUFFIX.
2041
2042 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
2043
2044         * toplev.h (struct lang_hooks): Allow decode_option to indicate
2045         that language-independent processing should not be done.
2046         * toplev.c (main): Adjust accordingly.
2047
2048         * rtl.texi (jump_insn): Expand on JUMP_LABEL documentation.
2049         * loop.c (load_mems): Handle a NULL JUMP_LABEL for a JUMP_INSN.
2050
2051         * mips.md (reload_outputdi): Require that operand0 be a
2052         general_operand.
2053
2054 2001-04-19  Jakub Jelinek  <jakub@redhat.com>
2055
2056         * invoke.texi (-Wshadow): Clarify.
2057
2058 2001-04-18  Mark Mitchell  <mark@codesourcery.com>
2059
2060         * loop.c (load_mems): Examine all the instructions in the loop
2061         before concluding that all jumps branch to the first instruction
2062         after the loop.
2063
2064 Wed Apr 18 20:32:03 2001  Christopher Faylor <cgf@cygnus.com>
2065
2066         * config/i386/xm-cygwin.h (CPP_SPEC): Fix typo.
2067
2068 2001-04-18  Jakub Jelinek  <jakub@redhat.com>
2069
2070         * cpp.texi (-Wwhite-space): Remove.
2071         (-Wall): -Wall does not imply -Wwhite-space.
2072
2073 2001-04-17  Zack Weinberg  <zackw@stanford.edu>
2074
2075         * dbxout.c (dbxout_init): If DBX_OUTPUT_GCC_MARKER is defined,
2076         use it instead of blindly generating a .stabs.
2077         * xcoffout.h: Define DBX_OUTPUT_GCC_MARKER so we put the type
2078         in the right place.
2079         * xcoffout.c: Don't bother defining default for N_CATCH.
2080         (UNKNOWN_STAB): Use internal_error.
2081         (stab_to_sclass): Remove now-unnecessary aborts.
2082         Remove #if 0'ed case N_BROWS.  Add #ifdef N_OPT block.
2083
2084 Tue Apr 17 21:41:11 2001  Jeffrey A Law  (law@cygnus.com)
2085
2086         * jump.c (mark_all_labels): Canonicalize the tail recursion
2087         label attached to CALL_PLACEHOLDER insns.
2088
2089 2001-04-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2090
2091         * output.h (dump_flow_info, free_basic_block_vars,
2092         which_alternative): Delete redundant prototypes.
2093
2094         * rtl.h (bss_section): Likewise.
2095
2096 2001-04-17  Loren J. Rittle  <ljrittle@acm.org>
2097
2098         * dbxout.c (N_OPT): Define if not available from <stab.h>
2099
2100 2001-04-17  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2101
2102         * vax.h (PROMOTE_PROTOTYPES): Define for compatibility with system
2103         libraries and native K&R compilers.
2104
2105 2001-04-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2106
2107         * c-typeck.c (convert_arguments): Don't check for width changes
2108         with -Wtraditional.
2109
2110         * invoke.texi (-Wtraditional): Update documentation.
2111
2112 2001-04-16  Zack Weinberg  <zackw@stanford.edu>
2113
2114         * toplev.c (output_lang_identify): Delete.
2115         (compile_file): Don't call ASM_IDENTIFY_GCC or ASM_IDENTIFY_LANGUAGE.
2116         Don't generate gcc2_compiled. label.  Don't emit a nop if profiling.
2117         If IDENT_ASM_OP is defined, emit an .ident "GCC (GNU) <version>"
2118         after calling ASM_FILE_END.
2119
2120         * dbxout.c (dbxout_init): Don't call ASM_IDENTIFY_GCC_AFTER_SOURCE.
2121         Instead, unconditionally emit an N_OPT stab with string equal
2122         to STABS_GCC_MARKER, which defaults to "gcc2_compiled."
2123
2124         * defaults.h: Don't provide default for ASM_IDENTIFY_LANGUAGE.
2125
2126         * config/dbxelf.h, config/freebsd.h, config/nextstep.h,
2127         config/psos.h, config/ptx4.h, config/1750a/1750a.h,
2128         config/alpha/alpha.h, config/alpha/elf.h, config/arc/arc.h,
2129         config/arm/aof.h, config/arm/coff.h, config/arm/elf.h,
2130         config/arm/linux-elf.h, config/avr/avr.h, config/d30v/d30v.h,
2131         config/dsp16xx/dsp16xx.h, config/h8300/h8300.h,
2132         config/i370/i370.h, config/i386/beos-elf.h,
2133         config/i386/osf1elf.h, config/i386/osfrose.h,
2134         config/ia64/sysv4.h, config/m68k/3b1.h, config/m68k/auxgas.h,
2135         config/m68k/crds.h, config/m68k/hp320.h, config/m68k/m68kv4.h,
2136         config/m68k/mot3300.h, config/m68k/news.h, config/m68k/sgs.h,
2137         config/m68k/tower-as.h, config/mcore/mcore-elf.h,
2138         config/mips/iris6.h, config/mips/osfrose.h,
2139         config/mips/sni-svr4.h, config/pa/som.h, config/pdp11/pdp11.h,
2140         config/sparc/sp64-elf.h:
2141         Delete definitions of any or all of: ASM_IDENTIFY_GCC,
2142         ASM_IDENTIFY_GCC_AFTER_SOURCE, and ASM_IDENTIFY_LANGUAGE.
2143
2144         * config/elfos.h, config/freebsd.h, config/linux.h,
2145         config/alpha/elf.h, config/arm/linux-elf.h, config/i386/i386elf.h,
2146         config/i386/ptx4-i.h, config/mips/gnu.h, config/mips/linux.h,
2147         config/sparc/linux.h, config/sparc/linux64.h: Delete definitions
2148         of ASM_FILE_START which merely emit a .version directive.  Delete
2149         definitions of ASM_FILE_END which merely emit an .ident directive.
2150
2151         * config/avr/avr.h, config/vax/vax.h: Delete definition of
2152         ASM_IDENTIFY_GCC and move part of its logic into
2153         ASM_FILE_START.
2154
2155         * config/i386/att.h, config/i386/gas.h, config/i386/linux.h,
2156         config/sparc/linux-aout.h: Don't emit .version directive in
2157         ASM_FILE_START.
2158
2159         * config/i386/dgux.c, config/m88k/m88k.c, config/sh/sh.c
2160         (output_file_start): Correct comment.
2161
2162         * config/i386/osfrose.h: Don't emit trailing .ident directive.
2163         * config/m68k/mot3300.h: Override STABS_GCC_MARKER to "gcc2_compiled%"
2164         to match gdb.
2165         * config/pa/lib2funcs.asm: Delete gcc_compiled. label.
2166         * config/rs6000/aix.h: Correct comment.
2167
2168         * config/i386/i386afe.h: Delete.
2169         * config.gcc: Remove references to i386afe.h.
2170
2171         * tm.texi: Delete documentation of ASM_IDENTIFY_GCC.  The
2172         other macros deleted by this patch were undocumented.
2173
2174 Mon Apr 16 08:03:48 2001  Jeffrey A Law  (law@cygnus.com)
2175
2176         * pa.md (reload_outdi): Operand 0 must be a non hard register.
2177
2178         * pa.c (secondary_reload_class): SAR<->FP copies require a
2179         secondary register.
2180
2181         * install.texi (mips-mips-bsd): Update list of functions
2182         required to include memmove.
2183         * tm.texi (TARGET_MEM_FUNCTIONS): Update list of implicitly
2184         used functions to include memmove.
2185
2186 2001-04-15  Toon Moene  <toon@moene.indiv.nluug.nl>
2187
2188         * i386.md (sqrtdf2): SFmode should be DFmode.
2189
2190 2001-04-15  Alexandre Oliva  <aoliva@redhat.com>
2191
2192         * gcse.c (compute_ld_motion_mems): ASM outputs aren't moveable.
2193         (find_moveable_store): Likewise.
2194
2195 2001-04-15  Jim Wilson  <wilson@redhat.com>
2196
2197         * function.c (expand_function_end): Handle PARALLEL real_decl_rtl.
2198
2199 Sat Apr 14 16:24:19 CEST 2001  Jan Hubicka  <jh@suse.cz>
2200
2201         * i386.md (ashldi3_1_rex64): Add 'J' to the constraints
2202         (ashrdi3_1_rex64): Change 'n' constraint to 'J'.
2203
2204 2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
2205
2206         * config/mn10300/mn10300.md (cmpsi): Tell reload to disregard the
2207         first alternative.
2208
2209 2001-04-14  Alan Modra  <amodra@one.net.au>
2210
2211         * pa.c (force_mode): New function.
2212         (emit_move_sequence): Use it instead of generating new rtx_REGs.
2213
2214 2001-04-13  Jim Wilson  <wilson@redhat.com>
2215
2216         * config/ia64/ia64.c (ia64_expand_epilogue): Emit alloc if sibcall_p.
2217         (first_instruction): New static variable.
2218         (rtx_needs_barrier): Return 1 for alloc.
2219         (init_insn_group_barriers): Set first_instruction.
2220         (rws_sum): Delete duplicate definition.
2221         (group_barrier_needed_p): Return 0 when first_instruction true.
2222         (safe_group_barrier_needed_p): Save and restore first_instruction
2223         around group_barrier_needed_p call.
2224
2225 Fri Apr 13 21:40:28 2001  Loren J. Rittle  <ljrittle@acm.org>
2226
2227         * expr.h (enum libfunc_index): Add LTI_memmove.
2228         (memmove_libfunc): Define macro.
2229         * optabs.c (init_optabs): Initialize memmove_libfunc.
2230         * expr.c (expand_assignment): Use memmove_libfunc instead of
2231         memcpy_libfunc.
2232
2233 2001-04-13  Alan Modra  <alan@linuxcare.com.au>
2234
2235         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Disallow PIC LO_SUM
2236         fp mode addresses.
2237
2238 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2239
2240         * Makefile.in (reg-stack.o): Depend on reload.h.
2241         (insn-attrtab.o): Depend on flags.h.
2242
2243         * genattrtab (main): Include flags.h in insn-attrtab.c.
2244
2245         * reg-stack.c: Include reload.h.
2246
2247         * sparc.h (flag_pic): Delete redundant declaration.
2248
2249         * output.h (flag_pic): Likewise.
2250
2251         * tree.h (pedantic): Likewise.
2252
2253 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2254
2255         * Makefile.in (toplev.o, jump.o, regmove.o): Depend on reload.h
2256
2257         * jump.c, regmove.c, toplev.c: Include reload.h.
2258
2259         * reload.h (reload_cse_regs): Declare.
2260
2261         * rtl.h (find_equiv_reg, operands_match_p, safe_from_earlyclobber,
2262         reload_cse_regs, init_reload, mark_home_live, reload,
2263         init_caller_save): Delete redundant prototypes.
2264
2265 2001-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2266
2267         * Makefile.in (ssa.o, regclass.o): Depend on $(EXPR_H).
2268
2269         * regclass.c, ssa.c: Include expr.h.
2270
2271         * rtl.h (memory_address, force_reg, emit_queue, emit_move_insn,
2272         gen_move_insn): Delete redundant declarations.
2273
2274 2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2275
2276         * Makefile.in (CFLAGS, BOOT_CFLAGS): Partly revert 2000-10-27 patch.
2277         (stage1_build): Instead pass down STAGE1_CFLAGS here. Pass down
2278         MAKEINFO and MAKEINFOFLAGS too.
2279         (stage4_build): Correctly order -B flags.
2280
2281 2001-04-13  Alan Modra  <amodra@one.net.au>
2282
2283         * pa.c (hppa_init_pic_save): Set rtx_unchanging for
2284         PIC_OFFSET_TABLE_SAVE_RTX.
2285         (zdepi_cint_p): Describe zdepi insn.
2286         Formatting and white space fixes throughout file.
2287
2288         * pa.c (uint32_operand): Don't use long constant >= 2^32.
2289         (emit_move_sequence): Use HOST_WIDE_INT constants.  Don't worry
2290         about 32->64 bit sign extension if 32 bit HOST_WIDE_INTs.
2291         (compute_movstrsi_length): Make `align' unsigned to avoid warning.
2292         (output_64bit_and): Use plain `int's for shift counts.
2293         (output_64bit_ior): Likewise.
2294         (function_arg_partial_nregs): Use unsigned vars to avoid warnings.
2295         * pa.h (CONST_OK_FOR_LETTER_P): Use HOST_WIDE_INT constants for case
2296         `N', and simplify.
2297
2298         * pa-hpux10.h (NEW_HP_ASSEMBLER): Define to 1.
2299         * pa-hpux11.h (NEW_HP_ASSEMBLER): Likewise.
2300         * pa.h (LEGITIMATE_CONSTANT_P) Collapse two defines depending on
2301         NEW_HP_ASSEMBLER into one.  Kill warnings.
2302
2303         * pa-gas.h: Delete file.
2304         * config.gcc: Match `parisc' as well as `hppa' for cpu_type=pa.
2305         Add new targets hppa*64*-*-linux* and parisc*64*-*-linux*.  Update
2306         hppa*-*-linux*.  For all pa targets, remove pa/gas.h from tm_file,
2307         instead setting MASK_GAS | MASK_JUMP_IN_DELAY in target_cpu_default2.
2308
2309         * config/pa/mill32.S: New file.
2310         * config/pa/mill64.S: New file.
2311         * config/pa/t-linux (LIBGCC1, CROSS_LIBGCC1, LIB1ASMFUNCS,
2312         LIB1ASMSRC, CRTSTUFF_T_CFLAGS_S, TARGET_LIBGCC2_CFLAGS): Define.
2313         * config/pa/t-linux64: New file.
2314         * config/pa/t-pa64 (CROSS_LIBGCC1): Change to libgcc1-asm.a
2315         (LIB1ASMFUNCS, LIB1ASMSRC): Define.
2316         (TARGET_LIBGCC2_CFLAGS): Add -Dpa64=1 -DELF=1.
2317
2318         * elfos.h (SELECT_SECTION): Undef before defining.
2319         * pa-linux.h (LINUX_DEFAULT_ELF, PTRDIFF_TYPE, CPP_SPEC): Remove.
2320         (LIB_SPEC): Remove -lmilli.
2321         (DBX_REGISTER_NUMBER): Remove.
2322         (PREFERRED_DEBUGGING_TYPE, DWARF2_ASM_LINE_DEBUG_INFO,
2323         (DWARF2_UNWIND_INFO, ASM_SPEC, LINK_SPEC, FUNCTION_OK_FOR_SIBCALL,
2324         NO_PROFILE_COUNTERS, SELECT_RTX_SECTION, INCOMING_RETURN_ADDR_RTX,
2325         DWARF_FRAME_RETURN_COLUMN, STRING_ASM_OP, TEXT_SECTION_ASM_OP,
2326         DATA_SECTION_ASM_OP, BSS_SECTION_ASM_OP, ASM_FILE_START,
2327         ASM_OUTPUT_DEF, ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT,
2328         ASM_OUTPUT_LABEL, ASM_GLOBALIZE_LABEL, ASM_DECLARE_FUNCTION_NAME,
2329         TARGET_GAS): Define.
2330         * pa.c (output_arg_descriptor): Disable for TARGET_ELF32.
2331         (function_arg): If TARGET_ELF32, pass fp args in both general and fp
2332         regs if we don't have a prototype.
2333         * pa.md (canonicalize_funcptr_for_compare): Not for TARGET_ELF32.
2334         * pa.h (TARGET_ELF32): Default to 0 if undefined.
2335         (EH_RETURN_DATA_REGNO, EH_RETURN_STACKADJ_RTX,
2336         EH_RETURN_HANDLER_RTX): Define.
2337         * pa32-regs.h (DBX_REGISTER_NUMBER): Remove unnecessary test.
2338         (DWARF_FRAME_REGNUM): Define.
2339         * pa64-regs.h (DWARF_FRAME_REGNUM): Define.
2340         * pa32-linux.h: New file.
2341         * pa64-linux.h: New file.
2342
2343         * pa-64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2344         (ASM_OUTPUT_DOUBLE_INT): Format, protect macro with do..while.
2345         (LINK_SPEC, LIB_SPEC, MD_EXEC_PREFIX, MD_STARTFILE_PREFIX,
2346         NEW_HP_ASSEMBLER, ASM_FILE_START, OBJECT_FORMAT_ELF,
2347         DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_FORMAT,
2348         DWARF2_ASM_LINE_DEBUG_INFO, USE_CONST_SECTION, CONST_SECTION_ASM_OP,
2349         CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP,
2350         FINI_SECTION_ASM_OP, EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2351         READONLY_DATA_SECTION, CONST_SECTION_FUNCTION, CTORS_SECTION_FUNCTION,
2352         DTORS_SECTION_FUNCTION, ASM_OUTPUT_SECTION_NAME, MAKE_DECL_ONE_ONLY,
2353         UNIQUE_SECTION_P, UNIQUE_SECTION, INT_ASM_OP, ASM_OUTPUT_CONSTRUCTOR,
2354         ASM_OUTPUT_DESTRUCTOR, TYPE_ASM_OP, SIZE_ASM_OP, ASM_WEAKEN_LABEL,
2355         TYPE_OPERAND_FMT, ASM_DECLARE_RESULT): Move to..
2356         * pa64-hpux.h: New file.
2357         (ASM_FILE_START): Correct typo.
2358         (PREFERRED_DEBUGGING_FORMAT): Rename to PREFERRED_DEBUGGING_TYPE.
2359         * config.gcc: Modify for above.
2360
2361 Fri Apr 13 00:09:22 EDT 2001  John Wehle  (john@feith.com)
2362
2363         * jump.c (jump_optimize_1): Don't delete dead stores here.
2364         * toplev.c (rest_of_compilation): Call delete_trivially_dead_insns
2365         prior to running jump optimize before cse2.
2366
2367 2001-04-12  Richard Henderson  <rth@redhat.com>
2368
2369         * Makefile.in (regmove.o): Depend on except.h.
2370         * regmove.c: Include it.
2371
2372 2001-04-12  Stan Shebs  <shebs@apple.com>
2373
2374         * objc/objc-act.c: Remove all code ifdefed with the never-used
2375         macro OBJC_INT_SELECTORS.
2376         * config/d30v/d30v.h: Remove commented-out ref to OBJC_INT_SELECTORS.
2377         * tm.texi: Remove doc for OBJC_INT_SELECTORS.
2378
2379 Thu Apr 12 18:13:37 2001  Rodney Brown  <RodneyBrown@mynd.com>
2380
2381         * config/pa/quadlib.c: Add prototypes.
2382
2383 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2384
2385         * bitmap.h (debug_bitmap): Delete redundant prototype.
2386
2387         * rtl.h (get_frame_size): Likewise.
2388
2389 2001-04-12  Jim Wilson  <wilson@redhat.com>
2390
2391         * config/ia64/ia64.md (extendsfdf2, extendsftf2, extenddftf2): Simplify
2392         to just emit an fnorm.
2393
2394 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2395
2396         * c-common.h (truthvalue_conversion, type_for_mode,
2397         type_for_size): Delete redundant declarations.
2398
2399         * c-lex.h (is_class_name): Likewise.
2400
2401         * c-tree.h (pedantic, convert, getdecls, gettags,
2402         global_bindings_p, init_decl_processing, insert_block,
2403         maybe_build_cleanup, poplevel, print_lang_decl,
2404         print_lang_identifier, print_lang_type, pushdecl, pushlevel,
2405         set_block, incomplete_type_error, build_function_call,
2406         lvalue_or_else, mark_addressable): Likewise.
2407
2408         * expr.h (expand_tree_builtin): Likewise.
2409
2410 2001-04-12  Mark Mitchell  <mark@codesourcery.com>
2411
2412         * invoke.texi: Document --param max-gcse-memory.
2413
2414 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2415
2416         * configure.in (errno): Check for declaration.
2417         * configure, config.in: Regenerated.
2418
2419         * system.h (errno): Only declare if not already done.
2420
2421 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2422
2423         * recog.c (general_operand, immediate_operand,
2424         nonmemory_operand): Require CONST_INTs to be sign-extended
2425         values for their modes.
2426
2427 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2428
2429         * expmed.c (store_bit_field): Truncate CONST_INTs.
2430         (expand_mult_highpart, expand_divmod): Likewise.
2431         * expr.c (convert_modes, store_field): Likewise.
2432         * integrate.c (expand_inline_function): Use promote_mode() to
2433         determine whether to convert_modes() an argument as signed
2434         or unsigned.
2435         * optabs.c (expand_binop): Get CONST_INT operands
2436         sign-extended for their appropriate modes.
2437         * stmt.c (emit_case_nodes): Convert node values to the
2438         appropriate mode.
2439         (expand_end_case): Convert minval and range to the appropriate
2440         mode.
2441         * unroll.c (loop_iterations): Truncate abs_diff to the mode of
2442         the iteration variable.
2443         * varasm.c (immed_double_const): Don't require words to be
2444         narrower than host wide ints to properly sign-extend
2445         CONST_INTs.
2446
2447 2001-04-12  kaz Kojima  <kkojima@rr.iij4u.or.jp>
2448
2449         * sh.md (builtin_setjmp_receiver): New expander.
2450
2451 2001-04-12  David Edelsohn  <dje@watson.ibm.com>
2452
2453         * config/rs6000/rs6000.c (rs6000_emit_move): Do not
2454         special-case HOST_BITS_PER_WIDE_INT != 32.  Use same criteria
2455         for generating CONST_INT and CONST_DOUBLE.
2456
2457 2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
2458
2459         * config/rs6000/rs6000.c (logical_operand): CONST_INTs are
2460         already sign-extended.
2461         (rs6000_emit_prologue): Make register iterator signed.
2462         (rs6000_emit_epilogue): Likewise.
2463         * config/rs6000/rs6000.md (addsi3, adddi3): Sign-extend high
2464         and low.
2465         (movsf split, movdf split): Sign-extend CONST_INTs.
2466         (movdi splits): Likewise.
2467
2468 2001-04-12  Kelley Cook <kelley.cook@home.com>
2469
2470         * config-lang.in (lang_dirs): Add in zlib.
2471
2472 2001-04-11  Alexandre Oliva  <aoliva@redhat.com>
2473
2474         * config/i386/i386.md: Apply trunc_int_for_mode() to GEN_INT
2475         operands that make it to RTL.
2476
2477 2001-04-11  Stan Shebs  <shebs@apple.com>
2478
2479         Add Darwin (Mac OS X kernel) native support.
2480         * config.gcc (powerpc-*-darwin*): Add native bits.
2481         * config/darwin.c: New file, generic Darwin support functions.
2482         * config/darwin.h: New file, generic Darwin definitions.
2483         * config/darwin-protos.h: New file, generic Darwin prototypes.
2484         * rs6000/darwin.h: New file, Darwin for PowerPC.
2485         * rs6000/t-darwin: New file, Darwin makefile fragment.
2486         * rs6000/rs6000.h (OBJECT_MACHO): New macro.
2487         (TARGET_MACHO): Ditto.
2488         (rs6000_abi): Add ABI_DARWIN.
2489         (RS6000_REG_SAVE): Add ABI_DARWIN case.
2490         (RS6000_SAVE_AREA): Ditto.
2491         (FP_ARG_MAX_REG): Ditto.
2492         (RETURN_ADDRESS_OFFSET): Ditto.
2493         * rs6000/rs6000.c (rs6000_legitimize_address): Add TARGET_MACHO
2494         cases.
2495         (rs6000_emit_move): Add ABI_DARWIN cases.
2496         (print_operand): Ditto.
2497         (first_reg_to_save): Ditto.
2498         (rs6000_stack_info): Ditto, also align stack by 16 instead of 8.
2499         (debug_stack_info): Ditto.
2500         (rs6000_emit_prologue): Ditto.
2501         (rs6000_emit_epilogue): Ditto.
2502         (output_profiler_hook): Ditto.
2503         (output_function_profiler): Ditto.
2504         (rs6000_add_gc_roots): Call machopic_add_gc_roots if TARGET_MACHO.
2505         (output_mi_thunk): Add TARGET_MACHO case.
2506         (add_compiler_stub): Ditto.
2507         (output_compiler_stub): Ditto.
2508         (no_previous_def): Ditto.
2509         (output_call): Ditto.
2510         (machopic_output_stub): Ditto.
2511         (rs6000_machopic_legitimize_pic_address): Ditto.
2512         (toc_section): Ditto.
2513         * rs6000/rs6000.md (addsi3_high): New TARGET_MACHO pattern.
2514         (macho_high): Ditto.
2515         (macho_low): Ditto.
2516         (movsi_low): Ditto.
2517         (load_macho_picbase): Ditto.
2518         (call): Add TARGET_MACHO case to modify function.
2519         (call_value): Ditto.
2520         (call_nonlocal_sysv): Add ABI_DARWIN case.
2521         (call_value_nonlocal_sysv): Ditto.
2522         * rs6000/rs6000-protos.h (rs6000_machopic_legitimize_pic_address):
2523         Add prototype.
2524         (machopic_output_stub): Ditto.
2525         * ginclude/stddef.h: Test _BSD_WCHAR_T_DEFINED_.
2526
2527 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2528
2529         * dwarf2out.c (modified_type_die): Don't create new types here.
2530         * tree.h (get_qualified_type): New function.
2531         (build_qualified_type): Adjust comment.
2532         * tree.c (get_qualified_type): New function.
2533         (build_qualified_type): Use it.
2534
2535 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2536
2537         * cpp.texi (-Wtraditional): Update description.
2538
2539         * invoke.texi (-Wtraditional): Likewise.
2540
2541 2001-04-11  Jim Wilson  <wilson@redhat.com>
2542
2543         * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Return 128 if argument
2544         requires more than 64 bits of alignment.
2545
2546 2001-04-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2547
2548         * cpplib.c (do_line): Sanity check iff enable checking.
2549
2550 2001-04-11  Richard Henderson  <rth@redhat.com>
2551
2552         * Makefile.in (insn-recog.o): Depend on toplev.h.
2553         (insn-emit.o, doloop.o): Likewise.
2554         * genrecog.c, genemit.c: Include toplev.h in generated file.
2555         * doloop.c: Include toplev.h.
2556
2557 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
2558
2559         * Makefile.in (gcse.o): Depend on params.h.
2560         * gcse.c: Include params.h.
2561         (gcse_main): Don't do GCSE if doing so will take inordinate
2562         amounts of memory.
2563         * params.def (PARAM_MAX_GCSE_MEMORY): New  parameter.
2564         * params.h (MAX_GCSE_MEMORY): New macro.
2565
2566 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2567
2568         * Makefile.in (insn-output.o): Depend on $(EXPR_H).
2569
2570         * genoutput.c (output_prologue): Include expr.h in insn-output.c.
2571
2572 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2573
2574         * output.h (assemble_real): Declare if REAL_VALUE_TYPE is defined.
2575
2576         * real.h (ereal_atof, real_value_truncate, target_isnan,
2577         target_isinf, target_negative, assemble_real, debug_real): Delete
2578         redundant prototypes.
2579
2580         * Makefile.in (ifcvt.o): Depend on toplev.h.
2581
2582         * c-semantics.c: Include expr.h.
2583
2584         * ifcvt.c: Include toplev.h.
2585
2586         * expr.h (rtx_equal_p): Delete prototype.
2587
2588         * rtl.h (exact_log2_wide, floor_log2_wide, permalloc,
2589         protect_from_queue, gen_jump, gen_beq, gen_bge, gen_ble,
2590         eliminate_constant_term, expand_complex_abs, find_single_use,
2591         make_tree, init_expr_once, init_optabs, supports_one_only):
2592         Likewise.
2593
2594         * tree.h (exact_log2_wide, floor_log2_wide, expand_null_return,
2595         rest_of_type_compilation, emit_queue, do_pending_stack_adjust,
2596         expand_assignment, store_expr, emit_line_note_after,
2597         emit_line_note_force, split_specs_attrs, label_rtx): Likewise.
2598
2599         * toplev.h (exact_log2_wide, floor_log2_wide): Add prototype.
2600
2601         * sparc-protos.h: Delete redundant prototypes.
2602
2603 2001-04-11  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
2604
2605         * reload.c (push_reload): Add condition missed in SUBREG byte
2606         offset patch.
2607
2608 Wed Apr  4 00:28:23 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2609
2610         * sparc/sol2-sld-64.h (STARTFILE_SPEC): Added missing blank.
2611
2612 Wed Apr 11 14:06:10 CEST 2001  Jan Hubicka  <jh@suse.cz>
2613
2614         * i386.md (floatsisf_sse): Fix output template
2615         * i386.c (ix86_expand_fp_movcc)
2616
2617         * reg-stack.c (emit_pop_insn): Handle complex modes.
2618         (move_for_stack_reg): Emit proper move mode.
2619         (subst_stack_regs_pat): Handle complex modes.
2620
2621 2001-04-11  Jakub Jelinek  <jakub@redhat.com>
2622
2623         * cpplex.c (_cpp_lex_token): Only warn if -Wcomment.
2624
2625 2001-04-10  Richard Henderson  <rth@redhat.com>
2626
2627         * libgcc2.h (__terminate_func_ptr): Remove typedef.
2628         (__pure_virtual, __terminate, __terminate_set_func,
2629         __default_terminate, __throw_type_match, __empty,
2630         __get_eh_context, __get_eh_info, __get_dynamic_handler_chain,
2631         __eh_rtime_match, __unwinding_cleanup, __rethrow,
2632         __sjthrow, __sjpopnthrow, __eh_alloc, __eh_free):
2633         Remove prototypes of deleted functions.
2634
2635 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2636
2637         * c-typeck.c (convert_arguments): -Wtraditional now activates
2638         -Wconversion warnings, except for changes in signed-ness.
2639         Detect complex<->int & int<->complex conversions as well.
2640
2641         * invoke.texi (-Wtraditional): Document it.
2642
2643 Tue Apr 10 17:45:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2644
2645         * gcse.c (update_ld_motion_stores): Don't use variable I for an insn.
2646         * flow.c (set_block_for_new_insns): Remove needless cast and
2647         properly check for unset block number.
2648
2649 2001-04-10  Andrew MacLeod  <amacleod@redhat.com>
2650
2651         * function.c (purge_single_hard_subreg_set): Only check REGNO if
2652         the subreg was a hard register. Pseudos are left as subregs.
2653
2654 2001-04-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2655
2656         * Makefile.in (LIB2FUNCS_STATIC_EXTRA): New macro.
2657         (LIB2ADD_ST): New macro, pass it to mklibgcc.
2658         * mklibgcc.in (libgcc2_st_objs): New variable, set it from LIB2ADD_ST.
2659         (libgcc_st_objs): New, set from libgcc2_st_objs. Use it for libgcc.a.
2660         * config/rs6000/t-ppccomm (LIB2FUNCS_STATIC_EXTRA): New macro.
2661
2662 2001-04-09  Bo Thorsen  <bo@suse.co.uk>
2663
2664         * config/i386/i386.md: "TARGET_64BIT && TARGET_64BIT": Removed one.
2665
2666 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2667
2668         * output.h (set_block_num): Missed it earlier, remove deprecated
2669         prototype.
2670
2671 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2672
2673         * gcse.c (oprs_unchanged_p): Pass basic_block to load_killed_in_block_p.
2674         (load_killed_in_block_p): Change bb parameter from int to basic_block.
2675         (oprs_not_set_p): Pass basic_blocks instead of ints as parameters.
2676         (handle_rd_kill_set): Change bb parameter from int to basic_block.
2677         (compute_kill_rd): Pass basic_blocks instead of ints as parameters.
2678         (expr_killed_p): Change bb parameter from int to basic_block, pass
2679         basic_blocks instead of ints as parameters.
2680         (compute_ae_kill): Pass basic_blocks instead of ints as parameters.
2681         (expr_reaches_here_p_work, expr_reaches_here_p): Change bb parameter
2682         from int to basic_block, pass basic_blocks instead of ints as parms.
2683         (pre_expr_reaches_here_p_work, pre_expr_reaches_here_p): Change bb
2684         parameter from int to basic_block, pass basic_blocks instead of ints.
2685         (process_insert_insn): Pass basic_blocks instead of ints as parameters.
2686         (insert_insn_end_bb): Change bb parameter from int to basic_block,
2687         pass basic_blocks instead of ints.
2688         (pre_edge_insert, pre_insert_copy_insn, pre_insert_copies): Pass
2689         basic_blocks instead of ints as parameters.
2690         (pre_delete): Pass basic_blocks instead of ints as parameters.
2691         (hoist_expr_reaches_here_p): Change bb parameter from int to
2692         basic_block, pass basic_blocks instead of ints.
2693         (hoist_code): Pass basic_blocks instead of ints as parameters.
2694         (reg_set_info, store_ops_ok, store_killed_after, store_killed_before):
2695         Change bb parameter from int to basic_block.
2696         (build_store_vectors): Pass basic_blocks instead of ints as parameters.
2697         (insert_insn_start_bb): Change bb parameter from int to basic_block,
2698         pass basic_blocks instead of ints.
2699         (insert_store): Pass basic_blocks instead of ints as parameters.
2700         (replace_store_insn, delete_store): Change bb parameter from int to
2701         basic_block, pass basic_blocks instead of ints.
2702         (store_motion): Pass basic_blocks instead of ints as parameters.
2703
2704 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2705
2706         * basic-block.h (set_new_block_for_insns): New Prototype.
2707         (set_block_num): Delete prototype.
2708         * flow.c (set_block_num): Remove obsolete function.
2709         (set_block_for_new_insns): Set BB for single or multiple insns.
2710         * gcse.c (handle_avail_expr): Use set_block_for_new_insns.
2711         (process_insn_end_bb): Use set_block_for_new_insns or
2712         set_block_for_insn instead of set_block_num.
2713         (pre_insert_copy_insn): Use set_block_for_new_insns.
2714         (update_ld_motion_stores): Use set_block_for_new_insns.
2715         (insert_insn_start_bb): Use set_block_for_new_insns.
2716         (replace_store_insn): Use set_block_for_new_insns.
2717
2718 2001-04-09  Andrew MacLeod  <amacleod@redhat.com>
2719             Jeff Law  <law@redhat.com>
2720
2721         * alias.c (get_addr): Externalize.
2722         (canon_true_dependence): New function. Behaves like true_dependance
2723         except it already assumes a MEM has been canonicalized.
2724         * flags.h (flag_gcse_lm, flag_gcse_sm): New optimization flags.
2725         * gcse.c (struct ls_expr): Add load/store expressions structure.
2726         (modify_mem_list, canon_modify_mem_list): New variable.
2727         (gcse_main): Initialize & finalize alias analysis. Use enhanced
2728         load motion and store motion if requested.
2729         (alloc_gcse_mem): Allocate space for modify_mem_list array.
2730         (free_gcse_mem): Free the modify_mem_list array.
2731         (oprs_unchanged_p): Use load_killed_in_block_p.
2732         (gcse_mems_conflict_p, gcse_mem_operand): New variables.
2733         (mems_conflict_for_gcse_p): New function.  Don't kill loads
2734         with stores to themselves if its in the load/store expression list.
2735         (load_killed_in_block_p): New function.
2736         (canon_list_insert): New Function.
2737         (record_last_mem_set_info): Keep a list of all instructions which
2738         can modify memory for each basic block.
2739         (compute_hash_table, reset_opr_set_tables): Clear modify_mem_list.
2740         (oprs_not_set_p): Use load_killed_in_block_p.
2741         (mark_call, mark_set, mark_clobber): Use record_last_mem_set_info.
2742         (expr_killed_p): Use load_killed_in_block_p.
2743         (compute_transp): Do not pessimize memory references.
2744         (pre_edge_insert): Update stores for a load motion expression.
2745         (one_pre_gcse_pass): Check loads/stores for extra load motion.
2746         (ldst_entry): Find or create a ldst_expr structure.
2747         (free_ldst_entry): Free memory for an individual item.
2748         (free_ldst_mems): Free entire load/store expression list.
2749         (print_ldst_list): Print debug info.
2750         (find_rtx_in_ldst): Try to find an rtx expression in the ldst list.
2751         (enumerate_ldsts): Assign integer values to each entry in list.
2752         (first_ls_expr): First expression in the list.
2753         (next_ls_expr): Next expression in the list.
2754         (simple_mem): Check if expression qualifies for ld/st expression list.
2755         (invalidate_any_buried_refs): Remove from expression list if its
2756         used in some other way we dont understand.
2757         (compute_ld_motion_mems): Find all potential enhanced load motion
2758         expression.
2759         (trim_ld_motion_mems): Remove any expressions which are invalid.
2760         (update_ld_motion_stores): Copy store values to registers for loads
2761         which have been moved.
2762         (regvec, st_antloc, num_store): New global statics.
2763         (reg_set_info): Marks registers as set.
2764         (store_ops_ok): Verfies registers expressions are valid in a block.
2765         (find_moveable_store): Look for moveable stores in a pattern.
2766         (compute_store_table): Find stores in a function worth moving, maybe.
2767         (load_kills_store): Check dependance of a load and store.
2768         (find_loads): Find any loads in a pattern.
2769         (store_killed_in_insn): Check if a store is killed in an insn.
2770         (store_killed_after): Check is store killed after an insn in a block.
2771         (store_killed_before): Check is store killed before an insn in a block.
2772         (build_store_vectors): Generate the antic and avail vectors.
2773         (insert_insn_start_bb): Insert at the start of a BB, update BLOCK_HEAD.
2774         (insert_store): Add a store to an edge.
2775         (replace_store_insn): Replace a store with a SET insn.
2776         (delete_store): Delete a store insn.
2777         (free_store_memory): Free memory.
2778         (store_motion): Perform store motion.
2779         * invoke.texi: Add documentation for -fcse-lm and -fgcse-sm.
2780         * rtl.h (get_addr, canon_true_dependence): Add prototypes.
2781         * toplev.c (flag_gcse_lm, flag_gcse_sm): New Variables.
2782         (f_options): Add gcse-lm and gcse-sm.
2783
2784 Mon Apr  9 16:18:03 CEST 2001  Jan Hubicka  <jh@suse.cz>
2785
2786         * i386.c (expand_fp_movcc): Fix condition reversal code.
2787
2788         * i386.c (ix86_register_move_cost): Fix handling of reformating penalty
2789         * i386.h (INTEGER_CLASS_P, MAYBE_INTEGER_CLASS_P): New.
2790         (CLASS_MAX_NREGS): Use it.
2791
2792         * i386.h (HARD_REGNO_NREGS): Handle properly TF and TCmodes on 64bit;
2793         handle properly complex values.
2794         (CLASS_MAX_NREGS): Likewise; update comment.
2795
2796 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2797
2798         * ia64.c (ia64_flag_schedule_insns2): New variable.
2799         (ia64_override_options): Initialize it.  Clear
2800         flag_schedule_insns_after_reload.
2801         (ia64_reorg): Only do scheduling if ia64_flag_schedule_insns2.
2802
2803 Mon Apr  9 15:09:13 CEST 2001  Jan Hubicka  <jh@suse.cz>
2804
2805         * i386.md (truncdfsf2_*): Add i387->int/sse reg alternatives;
2806         Do not require source to match destination anymore;
2807         Add abort to the nontrivial cases that should be handled by split.
2808         (fix_trunc?fdi): Add SSE case for x86_64.
2809         (floatdi?f): Likewise.
2810         (floatdi?f_sse): New.
2811         (fix_trunc?fdi_sse): New.
2812
2813 2001-04-09  Richard Sandiford   <rsandifo@redhat.com>
2814
2815         * dwarfout.c (DEBUG_ARANGES_BEGIN_LABEL): New label.
2816         (DEBUG_ARANGES_END_LABEL): Ditto.
2817         (dwarfout_init): Generate length and version fields at the start
2818         of the .debug_aranges info.  Insert DEBUG_ARANGES_BEGIN_LABEL
2819         after the length field.
2820         (dwarfout_finish): Insert DEBUG_ARANGED_END_LABEL at the end of
2821         the .debug_aranges info.
2822
2823 Sun Apr  8 00:43:27 CEST 2001  Jan Hubicka  <jh@suse.cz>
2824
2825         * i386.c (call, call_value): Make sure that resulting call_insn
2826         does have proper second operand.
2827
2828 Sun Apr  8 22:50:49 2001  Christopher Faylor <cgf@cygnus.com>
2829
2830         * config/i386/xm-cygwin.h (GET_ENV_PATH_LIST): Eliminate obsolete
2831         function.  Remove include of sys/cygwin.h.
2832
2833 Sun Apr  8 22:20:27 2001  Christopher Faylor <cgf@cygnus.com>
2834
2835         * config/i386/cygwin.h (STARTFILE_SPEC): search */lib/w32api by default.
2836         (CPP_SPEC): Always search */include/w32api for header files.
2837         (ASM_OUTPUT_SECTION_NAME): Avoid testing NULL DECL.
2838         (LINK_SPEC): Add "cyg" to the library search prefixes.
2839
2840 2001-04-08  Philip Blundell  <philb@gnu.org>
2841
2842         * config/arm/arm.h (ASM_OUTPUT_LABELREF): Use asm_fprintf.
2843
2844 2001-04-08  Neil Booth  <neil@daikokuya.demon.co.uk>
2845
2846         * cpperror.c (print_location): Don't special case <stdin>.
2847         (_cpp_begin_message): Handle WARNING_SYSHDR the same as
2848         WARNING, but we don't check if we're in system headers.
2849         * cpplib.h (enum error_type): WARNING_SYSHDR: New.
2850         * cpplib.c (do_warning): Warn in system headers.
2851
2852 2001-04-07  Mumit Khan <khan@NanoTech.Wisc.EDU>
2853
2854         * mbchar.c: Include config.h first.
2855
2856 2001-04-07  Zack Weinberg  <zackw@stanford.edu>
2857
2858         * config.gcc: Set default for xmake_file at top, not bottom.
2859         Change places that set xmake_file to "none" to set to the
2860         empty string instead, or remove them entirely if there is no
2861         default xmake_file for this cpu_type.  Remove references to
2862         deleted files.
2863
2864         * config/x-lynx, config/convex/x-convex, config/elxsi/x-elxsi,
2865         config/i386/x-isc, config/i386/x-isc3, config/i386/x-ncr3000,
2866         config/i386/x-next, config/i386/x-sco, config/i386/x-sysv3,
2867         config/i386/x-vsta, config/i860/x-sysv4, config/m68k/x-amix,
2868         config/m68k/x-apollo68, config/m68k/x-ccur, config/m68k/x-crds,
2869         config/m68k/x-hp2bsd, config/m68k/x-mot3300, config/m68k/x-mot3300-gas,
2870         config/m68k/x-tower, config/m88k/x-sysv4, config/mips/x-dec-osf1,
2871         config/mips/x-sni-svr4, config/mips/x-ultrix, config/romp/x-mach,
2872         config/romp/x-romp, config/rs6000/x-beos, config/rs6000/x-lynx,
2873         config/rs6000/x-mach, config/rs6000/x-sysv4, config/sparc/x-sysv4:
2874         Delete.
2875
2876         * config/a29k/x-unix, config/i386/x-aix, config/i386/x-osf1elf,
2877         config/i386/x-osfrose, config/m68k/x-dpx2, config/mips/x-iris3,
2878         config/mips/x-mips, config/mips/x-osfrose, config/mips/x-sony,
2879         config/mips/x-sysv, config/rs6000/x-aix31:
2880         Just set CLIB to -lld or -lmld, as appropriate.
2881
2882         * config/arm/x-riscix, config/i370/x-oe, config/i386/x-dgux,
2883         config/i386/x-sco4, config/i386/x-sco5, config/m68k/x-hp320,
2884         config/m68k/x-hp320g, config/m68k/x-next, config/m88k/x-dgux,
2885         config/mips/x-iris, config/pa/x-pa:
2886         Just set (some of) FIXPROTO_DEFINES, STMP_FIXPROTO,
2887         OTHER_FIXINCLUDES_DIRS.
2888
2889         * config/i386/x-djgpp: Don't set LN or LN_S.
2890         * config/m88k/x-dolph: Don't define __m88k__.
2891         * config/m88k/x-tekXD88: Don't set AR_FLAGS.
2892         * config/pa/x-pa-mpeix: Just set up quadlib.asm.
2893         * config/i860/fx2800.h: No need to #undef SVR4.
2894
2895         38 x-host fragments remain, 2 x-cpu.
2896
2897 2001-04-07  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
2898
2899         * c4x.h (HARD_REGNO_NREGS): HCmode mode uses 2 regs not 4.
2900
2901 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2902
2903         * cpplib.c (cpp_push_buffer): Give stdin buffers the name <stdin>.
2904
2905 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2906
2907         * configure.in: Add check for lstat.
2908         * configure, config.in: Regenerate.
2909         * cppinit.c (append_include_chain): Make empty path ".".
2910         * cpplib.c (do_line): Don't simplify #line paths.
2911         * cppfiles.c (remove_component_p): New function.
2912         (find_or_create_entry): Acknowledge stat () errors during
2913         path simplification.
2914         (handle_missing_header): Don't simplify paths.
2915         (_cpp_simplify_pathname): Don't simplify VMS paths.  Return
2916         the empty path untouched.  Don't leave a trailing '/'.
2917
2918 2001-04-06  Benjamin Kosnik  <bkoz@redhat.com>
2919
2920         * cppdefault.c (GPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2921         * Makefile.in (-DGPLUSPLUS_BACKWARD_INCLUDE_DIR): Add.
2922
2923 2001-04-06  Neil Booth  <neil@daikokuya.demon.co.uk>
2924
2925         * cppfiles.c (open_file): Fail directories silently, but
2926         with an errno of NOENT set.
2927         (read_include_file): Move the common exit code to the sole
2928         caller.  Return an int indicating success or failure.  Let
2929         open_file handle directories.
2930         (stack_include_file): If read_include_file fails,
2931         push a "null" buffer.
2932
2933 2001-04-05  DJ Delorie  <dj@redhat.com>
2934
2935         * function.h (virtuals_instantiated): Declare.
2936         * function.c: (virtuals_instantiated): Make global.
2937         * calls.c (emit_library_call_value_1): Use
2938         virtual_outgoing_args_rtx only if it hasn't been instantiated.
2939         Otherwise, use the stack pointer directly.
2940
2941 Thu Apr  5 19:13:33 CEST 2001  Jan Hubicka  <jh@suse.cz>
2942
2943         * i386.c (x86_initialize_trampoline): New global function.
2944         * i386.h (TRAMPOLINE_SIZE): Size is 23 for x86_64.
2945         (INITIALIZE_TRAMPOLINE): Move offline.
2946         * i386-protos.h (x86_initialize_trampoline): Declare.
2947
2948 Thu Apr  5 19:02:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2949
2950         * i386.md (movdi_1_rex64): Allow SSE->SSE reg move.
2951         (lea_0): Rename to lea_1.
2952         (lea_1_zext, lea_1_rex64, lea_2_rex64): New patterns.
2953         (lea_general_?): Allow SImodes on TARGET_64BIT
2954         (lea_general_?_zext): New patterns.
2955         (call_1, call_1_rex64): Fix.
2956
2957 Thu Apr  5 19:00:15 CEST 2001  Jan Hubicka  <jh@suse.cz>
2958
2959         * i386.c (ix86_split_long_move): Use PUT_MODE instead of change_address.
2960
2961 Thu Apr  5 18:25:56 CEST 2001  Jan Hubicka  <jh@suse.cz>
2962
2963         * i386.c (function_arg): Return constm1_rtx for last argument.
2964         (ix86_expand_prologue): Update gen_call calls.
2965         * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Likewise.
2966         * i386.md (call_pop): Likewise.
2967         (call): Second operand is VOIDmode.
2968         (call_0): Likewise; Support 64bits.
2969         (call_exp): New expander.
2970         (call_1): Get to the sync.
2971         (call_1_exp): New pattern.
2972         (call_value): Support 64bit.
2973         (call_value_exp): New pattern.
2974         (untyped_call): Update gen_call call.
2975         (call_value_pop): Disable for 64bit.
2976         (call_value_0_rex64): New pattern.
2977         (call_value_1_rex64): Likewise.
2978
2979 2001-04-05  Bo Thorsen  <bo@suse.de>
2980
2981         * i386.md: Don't allow "builtin_setjmp_receiver" for TARGET_64BIT.
2982
2983 Thu Apr  5 13:44:17 2001  J"orn Rennecke <amylaar@redhat.com>
2984
2985         * i386.md (*andsi_1+3): If used after reload, make sure the operand
2986         satisfies ANY_QI_REG_P.
2987
2988 2001-04-05  Bernd Schmidt  <bernds@redhat.com>
2989
2990         * config/ia64/ia64.c (rtx_needs_barrier): A PARALLEL can contain
2991         ASM_OPERAND.
2992
2993         * sched-deps.c (sched_analyze_insn): Revert more of the March 27
2994         change.
2995
2996 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
2997
2998         * config.gcc: Remove default for xm_file.  Clean up local
2999         machine type handling.  Remove settings of xm_file to
3000         something that doesn't exist.  In the big switch, set xm_file,
3001         don't append to it (the value before the big switch is always
3002         null).  Don't force build_xm_file or host_xm_file to have a value.
3003         * configure.in: Remove default for xm_file.  Do not special
3004         case $cpu/xm-$cpu.h not existing.
3005         * configure: Regenerate.
3006
3007 2001-04-04  Diego Novillo  <dnovillo@redhat.com>
3008
3009         * simplify-rtx.c (simplify_binary_operation): Check for overflow
3010         when folding integer division and modulo operations.
3011
3012 2001-04-04  Andrew MacLeod  <amacleod@redhat.com>
3013
3014         * dwarf2out.c (output_cfi): Add 'for_eh' parameter, use PTR_SIZE
3015         instead of DWARF2_ADDR_SIZE for EH addresses.
3016         (output_call_frame_info): Use PTR_SIZE instead of DWARF2_ADDR_SIZE for
3017         EH addresses.
3018
3019 2001-04-04  Richard Henderson  <rth@redhat.com>
3020
3021         * config/ia64/ia64.h (IA64_UNWIND_INFO): Disable.
3022         * config/ia64/t-glibc (LIB2ADDEH): Disable.
3023         * config/ia64/t-ia64 (LIB2ADDEH): Disable.
3024
3025 2001-04-04  Richard Henderson  <rth@redhat.com>
3026
3027         * configure.in (gcc_cv_as_leb128): Escape "." in regexp.
3028         * configure: Rebuilt.
3029
3030 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
3031
3032         * gcse.c (delete_null_pointer_checks_1): Add delete_list argument,
3033         push insns to delete to it instead of deleting them.
3034         (delete_null_pointer_checks): Delete insns from delete_list after
3035         all delete_null_pointer_checks_1 passes are done.
3036
3037 2001-04-04  Richard Henderson  <rth@redhat.com>
3038
3039         * configure.in (gcc_cv_as_leb128): Tweek minor number extraction.
3040         * configure: Rebuilt.
3041
3042 2001-04-04  Zack Weinberg  <zackw@stanford.edu>
3043
3044         * expr.h: Remove #ifdef FUNCTION_CONVERSION_BUG logic.
3045         * config/romp/xm-romp.h: Delete.
3046
3047 2001-04-04  Bernd Schmidt  <bernds@redhat.com>
3048
3049         * sched-deps.c (sched_analyze_insn): Partially revert March 27
3050         change.
3051
3052 2001-04-04 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
3053
3054         * emit-rtl.c (mark_label_nuses) Increment the label uses for
3055         all labels present in rtx.
3056         (try_split) Call new function for all split insns.
3057
3058 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
3059
3060         * recog.c (validate_replace_rtx_1): Instead of aborting just make
3061         sure the change won't be validated.
3062
3063 Wed Apr  4 00:45:38 EDT 2001  John Wehle  (john@feith.com)
3064
3065         * rtl.h (set_noop_p): Declare.
3066         * flow.c (set_noop_p): Move from here ...
3067         * rtlanal.c (set_noop_p): ... to here and enhance.
3068         * cse.c (delete_trivially_dead_insns): Use it.
3069         * gcse.c (hash_scan_set): Likewise.
3070         * jump.c (delete_noop_moves): Likewise.
3071         * recog.c (split_all_insns): Likewise.
3072
3073 2001-04-04  Alan Modra  <alan@linuxcare.com.au>
3074
3075         * dwarf2out.c (dwarf2out_frame_debug_expr): Support adjusting
3076         stack pointer via a LO_SUM.  Ditto for setting a temp register
3077         used to save to the stack.  Set cfa_temp when setting fp, and
3078         allow matches to cfa_temp in addition to cfa_store when saving
3079         regs.  Handle POST_INC and LO_SUM register stores.  Document the
3080         changes and errors in rule 12 doco.
3081
3082         * pa.c (set_reg_plus_d, store_reg, load_reg): Return last insn.
3083         (actual_fsize, local_fsize, save_fregs): Move for store_reg to see.
3084         (load_reg): Move closer to epilogue code.
3085         (DO_FRAME_NOTES): Define to control the following..
3086         (FRP): Define to set RTX_FRAME_RELATED_P on insns.
3087         (hppa_expand_prologue): Use FRP and REG_FRAME_RELATED_EXPR
3088         notes as necessary.
3089         (hppa_expand_epilogue): Likewise.
3090
3091 2001-04-03  Richard Henderson  <rth@redhat.com>
3092
3093         * configure.in (gcc_cv_as_leb128): Reject gas before 2.11.
3094         * configure: Rebuild.
3095
3096 2001-04-03  Richard Henderson  <rth@redhat.com>
3097
3098         * rtl.h (LCT_THROW): New.
3099         * calls.c (emit_library_call_value_1): Handle it.
3100         * except.c (connect_post_landing_pads): Use it.
3101
3102 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
3103
3104         * gansidecl.h: Delete file.
3105         * configure.in: Change all refs to gansidecl.h to use
3106         ansidecl.h.  Adjust *_file_list so they know where ansidecl.h
3107         lives.
3108         * configure: Regenerate.
3109
3110         * Makefile.in (intl.o): Don't depend on gansidecl.h.
3111         * defaults.h: s/gansidecl.h/ansidecl.h/ in comment.
3112         * ggc.h, config/fr30/fr30.h, config/mcore/mcore.c:
3113         Don't include gansidecl.h.
3114         * intl.c, main.c, version.c, fixinc/fixlib.h,
3115         fixinc/procopen.c, fixinc/server.c: Include ansidecl.h not
3116         gansidecl.h.
3117
3118 Tue Apr  3 19:41:21 CEST 2001  Jan Hubicka  <jh@suse.cz>
3119
3120         * i386.c (ix86_force_to_memory, ix86_free_from_memory):
3121         Update for 64bit.
3122
3123 2001-04-03  Zack Weinberg  <zackw@stanford.edu>
3124
3125         * config/i386/xm-beos.h, config/i386/xm-isc.h,
3126         config/i386/xm-next.h, config/i386/xm-sco.h,
3127         config/i386/xm-sco5.h, config/m68k/xm-plexus.h,
3128         config/m88k/xm-m88k.h: Delete.
3129
3130         * config/i386/xm-djgpp.h: Don't define __MSDOS__.
3131         * config/romp/xm-romp.h: Don't define bcopy.
3132         * config/rs6000/xm-beos.h: Don't define bcopy, HAVE_VPRINTF,
3133         HAVE_PUTENV, HAVE_RENAME, or USE_C_ALLOCA.
3134
3135         * config.gcc: Remove references to deleted files.
3136
3137         14 xm-host.h remain, 1 xm-cpu.h.
3138
3139 2001-04-03  Jakub Jelinek  <jakub@redhat.com>
3140             David S. Miller  <davem@pierdol.cobaltmicro.com>
3141             Andrew MacLeod  <amacleod@redhat.com>
3142
3143         Use byte offsets in SUBREGs instead of words.
3144
3145         * alias.c (nonlocal_mentioned_p): Use subreg_regno function.
3146         * caller-save.c (mark_set_regs): Change callers of subreg_hard_regno
3147         to pass new argument.
3148         (add_stored_regs): Use subreg_regno_offset function.
3149         * calls.c (expand_call): For non-paradoxical SUBREG take endianess
3150         into account.
3151         (precompute_arguments): Use gen_lowpart_SUBREG.
3152         * combine.c (try_combine): Replace explicit XEXP with SUBREG_REG.
3153         (combine_simplify_rtx): Rework to use SUBREG_BYTE.
3154         (simplify_set): Rework to use SUBREG_BYTE.
3155         (expand_field_assignment): Use SUBREG_BYTE.
3156         (make_extraction): Use SUBREG_BYTE.
3157         (if_then_else_cond): Use SUBREG_BYTE.
3158         (apply_distributive_law): Use SUBREG_BYTE and fixup subreg comments.
3159         (gen_lowpart_for_combine): Compute full byte offset.
3160         * cse.c (mention_regs): Use SUBREG_BYTE.
3161         (remove_invalid_subreg_refs): Rework to use SUBREG_BYTE.
3162         (canon_hash): Use SUBREG_BYTE.
3163         (fold_rtx): Pass SUBREG_BYTE div UNITS_PER_WORD to operand_subword.
3164         (gen_lowpart_if_possible): Formatting.
3165         * dbxout.c (dbxout_symbol_location): Compute SUBREG hard regnos
3166         correctly.
3167         * dwarf2out.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
3168         (mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3169         (loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3170         * dwarfout.c (is_pseudo_reg): Fixup explicit XEXP into SUBREG_REG
3171         (output_mem_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3172         (output_loc_descriptor): Fixup explicit XEXP into SUBREG_REG
3173         * emit-rtl.c (gen_rtx_SUBREG): New function, used to verify
3174         certain invariants about SUBREGs the compiler creates.
3175         (gen_lowpart_SUBREG): New function.
3176         (subreg_hard_regno): New function to get the final register number.
3177         (gen_lowpart_common): Use SUBREG_BYTE.
3178         (gen_imagpart): Spacing nits.
3179         (subreg_realpart_p): Use SUBREG_BYTE.
3180         (gen_highpart): Use SUBREG_BYTE.
3181         (subreg_lowpart_p): Always compute endian corrected goal offset,
3182         even at the byte level, then compare against that.
3183         (constant_subword): New function, pulled out all constant cases
3184         from operand_subword and changed second argument name to offset.
3185         (operand_subword): Detect non REG/SUBREG/CONCAT/MEM cases early
3186         and call constant_subword to do the work.  Return const0_rtx if
3187         looking for a word outside of OP.
3188         (operand_subword_force): Change second arg name to offset.
3189         * expmed.c (store_bit_field): Use SUBREG_BYTE.
3190         (store_split_bit_field): Use SUBREG_BYTE.
3191         (extract_bit_field): Use SUBREG_BYTE.
3192         (extract_split_bit_field): Use SUBREG_BYTE.
3193         (expand_shift): Use SUBREG_BYTE.
3194         * expr.c (store_expr, expand_expr): Use gen_lowpart_SUBREG.
3195         * final.c (alter_subreg) Use subreg_hard_regno and SUBREG_BYTE.
3196         * flow.c (set_noop_p): Use SUBREG_BYTE.
3197         (mark_set_1): Remove ALTER_HARD_SUBREG. Use subreg_regno_offset instead.
3198         * function.c (fixup_var_refs_1): Fixup explicit XEXP into a SUBREG_REG.
3199         (fixup_memory_subreg): Use SUBREG_BYTE and remove byte endian
3200         correction code.
3201         (optimize_bit_field): Use SUBREG_BYTE.
3202         (purge_addressof_1): Use SUBREG_BYTE.
3203         (purge_single_hard_subreg_set): Use subreg_regno_offset function.
3204         (assign_params): Mark arguments SUBREG_PROMOTED_VAR_P if they are
3205         actually promoted by the caller and PROMOTE_FOR_CALLS_ONLY is true.
3206         * gengenrtl.c (special_rtx): Add SUBREG.
3207         * global.c (mark_reg_store): Use SUBREG_BYTE.
3208         (set_preference): Rework to use subreg_regno_offset and SUBREG_BYTE.
3209         * ifcvt (noce_emit_move_insn): Use SUBREG_BYTE.
3210         * integrate.c (copy_rtx_and_substitute): Use SUBREG_BYTE and make sure
3211         final byte offset is congruent to subreg's mode size.
3212         (subst_constants): Use SUBREG_BYTE.
3213         (mark_stores): Use subreg_regno_offset function.
3214         * jump.c (rtx_renumbered_equal_p, true_regnum): Use subreg_regno_offset
3215         function and SUBREG_BYTE.
3216         * local-alloc.c (combine_regs): Use subreg_regno_offset function.
3217         (reg_is_born): Use subreg_hard_regno.
3218         * recog.c (valid_replace_rtx_1): Use SUBREG_BYTE and remove byte
3219         endian correction code.  Don't combine subregs unless resulting
3220         offset aligns with type.  Fix subreg constant extraction for DImode.
3221         Simplify SUBREG of VOIDmode CONST_DOUBLE.
3222         (general_operand): Remove dead mode_altering_drug code.
3223         (indirect_operand): Use SUBREG_BYTE.
3224         (constrain_operands): Use subreg_regno_offset function.
3225         * reg-stack.c (get_true_reg): Use subreg_regno_offset function.
3226         * regmove.c (regmove_optimize): Use SUBREG_BYTE.
3227         (optimize_reg_copy_3): Use gen_lowpart_SUBREG.
3228         * regs.h (REG_SIZE): Allow target to override.
3229         (REGMODE_NATURAL_SIZE): New macro which target can override.
3230         * reload.c (reload_inner_reg_of_subreg): subreg_regno should be used
3231         on the entire subreg rtx.
3232         (push_reload): Use SUBREG_BYTE in comments and code.
3233         (find_dummy_reload): Use subreg_regno_offset.  Only adjust offsets
3234         for hard registers inside subregs.
3235         (operands_match_p): Use subreg_regno_offset.
3236         (find_reloads): Use SUBREG_BYTE and only advance offset for subregs
3237         containing hard regs.
3238         (find_reload_toplev): Use SUBREG_BYTE.  Remove byte endian
3239         corrections when fixing up MEM subregs.
3240         (find_reloads_address_1): Use SUBREG_BYTE, subreg_regno, and
3241         subreg_regno_offset where appropriate.
3242         (find_reloads_subreg_address): Use SUBREG_BYTE.  Remove
3243         byte endian corrections when fixing up MEM subregs.
3244         (subst_reloads): When combining two subregs, make sure final
3245         offset is congruent to subreg's mode size.
3246         (find_replacement): Use SUBREG_BYTE and subreg_regno_offset.
3247         (refers_to_regno_for_reload_p): Use subreg_regno.
3248         (reg_overlap_mentioned_for_reload_p): Use subreg_regno_offset.
3249         * reload1.c (eliminate_regs) Use SUBREG_BYTE. Remove byte endian
3250         correction code for memory subreg fixups.
3251         (forget_old_reload_1): Use subreg_regno_offset.
3252         (choose_reload_regs): Use subreg_regno.
3253         (emit_input_reload_insns): Use SUBREG_BYTE.
3254         (reload_combine_note_store): Use subreg_regno_offset.
3255         (move2add_note_store): Use subreg_regno_offset.
3256         * resource.c (update_live_status, mark_referenced_resources): Use
3257         subreg_regno function.
3258         (mark_set_resources): Use subreg_regno function.
3259         * rtl.h (SUBREG_WORD): Rename to SUBREG_BYTE.
3260         (subreg_regno_offset, subreg_regno): Define prototypes.
3261         (subreg_hard_regno, constant_subword, gen_rtx_SUBREG): Newi functions.
3262         (gen_lowpart_SUBREG): Add prototype.
3263         * rtl.texi (subreg): Update to reflect new byte offset representation.
3264         Add mentioning of the effect that BYTES_BIG_ENDIAN has on subregs now.
3265         * rtlanal.c (refers_to_regno_p): Use subreg_regno.
3266         (reg_overlap_mentioned_p): Use subreg_regno.
3267         (replace_regs); Make sure final offset of combined subreg is
3268         congruent to size of subreg's mode.
3269         (subreg_regno_offset): New function.
3270         (subreg_regno): New function.
3271         * sched-vis.c (print_value): Change SUBREG_WORD to SUBREG_BYTE.
3272         * sdbout.c (sdbout_symbol): Compute offset using alter_subreg.
3273         * stmt.c (expand_anon_union_decl): Use gen_lowpart_SUBREG.
3274         * tm.texi (ALTER_HARD_SUBREG): Remove, it is now dead.
3275         (SUBREG_REGNO_OFFSET): Describe SUBREG_REGNO_OFFSET overrides.
3276         * config/a29k/a29k.c (gpc_reg_operand): Use subreg_regno.
3277         (a29k_get_reloaded_address): Use SUBREG_BYTE.
3278         (print_operand): Use SUBREG_BYTE.
3279         * config/alpha/alpha.c (print_operand_address): Use SUBREG_BYTE.
3280         * config/arm/arm.c (arm_reload_in_hi): Use SUBREG_BYTE.
3281         (arm_reload_out_hi): Use SUBREG_BYTE.
3282         * config/d30v/d30v.c (d30v_split_double): Use subreg_regno_offset
3283         instead of SUBREG_WORD.
3284         (d30v_print_operand_memory_reference): Use subreg_regno_offset.
3285         * config/dsp16xx/dsp16xx.md (extendqihi2, zero_extendqihi2): Fix
3286         SUBREG creation to use byte offset.
3287         * config/h8300/h8300.md (Unnamed HImode zero extraction and 16bit
3288         inverted load insns): Fix explicit rtl subregs to use byte
3289         offsets.
3290         * config/i370/i370.md (cmpstrsi, movstrsi, mulsi3, divsi3,
3291         udivsi3, umodsi3): Generate SUBREGs with byte offsets.
3292         * config/i860/i860.c (single_insn_src_p): Use SUBREG_BYTE.
3293         * config/i860/i860.md (mulsi3_big): Fixup explicit SUBREGs in rtl
3294         to use byte offsets.
3295         (unnamed fmlow.dd insn): Fixup SUBREGS to use byte offsets.
3296         * config/i960/i960.md (extendhisi2): Generate SUBREGs with byte
3297         offsets, also make sure it is congruent to SUBREG's mode size.
3298         (extendqisi2, extendqihi2, zero_extendhisi2, zero_extendqisi2,
3299         unnamed ldob insn): Generate SUBREGs with byte offset.
3300         (zero_extendqihi2): SUBREG's are byte offsets.
3301         * config/m68hc11/m68hc11.c (m68hc11_gen_lowpart): Use SUBREG_BYTE.
3302         (m68hc11_gen_highpart): Use SUBREG_BYTE.
3303         * config/m68k/m68k.md (zero_extendhisi2, zero_extendqihi2,
3304         zero-extendqisi2): Generate SUBREGs with byte offset.
3305         (umulsidi3, mulsidi3, subreghi1ashrdi_const32,
3306         subregsi1ashrdi_const32, subreg1lshrdi_const32): Fixup explicit
3307         subregs in rtl to use byte offsets.
3308         * config/m88k/m88k.md (extendsidi2): fixup subregs to use byte offset.
3309         * config/mips/mips.c (mips_move_1word): Use subreg_regno_offset.
3310         (mips_move_2words): Use subreg_regno_offset.
3311         (mips_secondary_reload_class): Use subreg_regno_offset.
3312         * config/mips/mips.md (DImode plus, minus, move, and logical op
3313         splits): Fixup explicit subregs in rtl to use byte offsets.
3314         * config/mn10200/mn10200.c (print_operand): Use subreg_regno function.
3315         * config/mn10300/mn10300.c (print_operand): Use subreg_regno function.
3316         * config/ns32k/ns32k.md (udivmoddisi4): Fix explicit subregs in
3317         rtl to use byte offsets.
3318         * config/pa/pa.c (emit_move_sequence): Use SUBREG_BYTE.
3319         * config/pa/pa.md (floatunssisf2, floatunssidf2, mulsi3): fix explicit
3320         subregs to use byte offsets.
3321         * config/pdp11/pdp11.md (zero_extendhisi2, modhi3, modhi3+1):
3322         Fixup explicit subregs in rtl to use byte offsets.
3323         * config/romp/romp.c (memory_offset_in_range_p): Use SUBREG_BYTE
3324         and remove byte endian correction code.
3325         * config/sh/sh.c (output_movedouble): Use subreg_regno.
3326         (gen_ashift_hi): Use SUBREG_BYTE.
3327         (regs_used): Use subreg_regno_offset.
3328         (machine_dependent_reorg): Use subreg_regno_offset.
3329         * config/sh/sh.h (INDEX_REGISTER_RTX_P): Use SUBREG_BYTE.
3330         * config/sh/sh.md (DImode and DFmode move splits): Use subreg_regno.
3331         (movdf_i4): Subregs are byte offsets now.
3332         * config/sparc/sparc.c (ultra_find_type): Use SUBREG_BYTE.
3333         * config/sparc/sparc.h (ALTER_HARD_SUBREG): Removed.
3334         (REGMODE_NATURAL_SIZE): Override.
3335         (REG_SIZE): For SUBREG check float mode on SUBREG_REG's mode.
3336         * config/sparc/sparc.md (TFmode move splits): Generate SUBREGs
3337         with byte offsets.
3338         (zero_extendhisi2, zero_extendqidi2_insn, extendhisi2,
3339         extendqihi2, sign_extendqihi2_insn, sign_extendqisi2_insn,
3340         extendqidi2): Generate SUBREGs with byte offsets, also make sure
3341         it is congruent to SUBREG's mode size.
3342         (smulsi3_highpart_v8plus): Fix explicit subregs in rtl to use byte
3343         offsets.
3344         (cmp_siqi_trunc, cmp_siqi_trunc_set, cmp_diqi_trunc,
3345         cmp_diqi_trunc_set, lshrdi3_v8plus+1, lshrdi3_v8plus+2,
3346         lshrdi3_v8plus+3, lshrdi3_v8plus+4): Use proper
3347         SUBREG_BYTE offset for non-paradoxical subregs in patterns.
3348         * config/v850/v850.c (print_operand, output_move_double): Use
3349         subreg_regno function.
3350
3351 2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
3352
3353         * configure.in (target_subdir): Use target_alias, not target.
3354         * configure: Rebuilt.
3355
3356         * config/sh/crtn.asm (init, fini): Restore r15 from r14, not the
3357         other way round.
3358         * config/sh/crti.asm: Fix typos in comments.
3359
3360 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3361
3362         * pa.h: Revise comments for TARGET_NO_SPACE_REGS and
3363         TARGET_FAST_INDIRECT_CALLS.
3364         * pa.c (override_options): TARGET_NO_SPACE_REGS is now OK with
3365         -fPIC.  Don't warn.
3366         (return_addr_rtx): Short circuit export stub matching when
3367         TARGET_NO_SPACE_REGS.
3368         (output_millicode_call): For out of range calls, make -fPIC
3369         take precedence, then TARGET_PORTABLE_RUNTIME, then ble.  Don't
3370         return before delay slot checks when TARGET_PORTABLE_RUNTIME.
3371         * pa.md: Modify length attr calculation of all millicode insns to
3372         match above.
3373
3374 2001-04-02  Geoffrey Keating  <geoffk@redhat.com>
3375
3376         * configure.in (gcc_cv_as_leb128): Correct name of cache variable.
3377         Require at least 2.11 in the version test.  Specifically check
3378         for and reject GAS version 2.10.90.
3379         * configure: regenerate.
3380
3381 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3382
3383         * pa.c (override_options): Remove PIC profiling warning.
3384         (hp_profile_labelno): Delete.
3385         (hp_profile_label_rtx): Delete.
3386         (hp_profile_label_name): Delete.
3387         (pa_add_gc_roots): Remove reference to hp_profile_label_rtx.
3388         (output_function_prologue): Remove profiling code and all tests on
3389         profile_flag.  Move store of PIC_OFFSET_TABLE_REGNUM now that
3390         merge_sp_adjust_with_store can work for PIC and profiling.
3391         (hppa_expand_epilogue): Remove profile_flag test.
3392         (hppa_can_use_return_insn_p): Likewise.
3393         (hppa_init_pic_save): Emit before tail_recursion_reentry, and
3394         cater for PROFILE_HOOK.
3395         (hppa_profile_hook): New function.
3396         * pa.h (FUNCTION_PROFILER): Now does nothing.
3397         (PROFILE_HOOK): Define.
3398         (hppa_profile_hook): Declare.
3399         (PROFILE_BEFORE_PROLOGUE): Delete.
3400         (ASM_OUTPUT_REG_PUSH): Delete.
3401         (ASM_OUTPUT_REG_POP): Delete.
3402         * pa.md (call_profiler): Turn it into a call insn, and don't `use'
3403         r24.  Accept function name operand, and use this and a locally
3404         generated label to calculate pc-rel offset to func start.
3405
3406 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3407
3408         * $(HOST_PREFIX_1)errors.o, $(HOST_PREFIX_1)ggc-none.o,
3409         ggc-common.o, ggc-simple.o, ggc-page.o, ggc-none.o: Depend on
3410         $(SYSTEM_H).
3411
3412 2001-04-03  Alan Modra  <alan@linuxcare.com.au>
3413
3414         * dwarf2out.c (dwarf2out_frame_debug_expr): Move errant HIGH and
3415         LO_SUM cases to where they belong.
3416
3417 2001-04-02  Richard Henderson  <rth@redhat.com>
3418
3419         * except.h (lang_eh_type_covers): Mark extern.
3420         (lang_eh_runtime_type): Likewise.
3421
3422 2001-04-02  Zack Weinberg  <zackw@stanford.edu>
3423
3424         * genattr.c, gencheck.c, gencodes.c, genconfig.c, genflags.c,
3425         gengenrtl.c:  Wrap generated header in multiple-include guard.
3426         Improve error checking.
3427
3428 2001-04-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3429
3430         * configure.in: Don't check for putenv.
3431         * configure: Regenerate.
3432         * gcc.c (putenv): Don't define.
3433         * vax/xm-vms.h: Handle putenv.
3434
3435 2001-04-02  Jakub Jelinek  <jakub@redhat.com>
3436
3437         * ifcvt.c (noce_emit_move_insn): New.
3438         (noce_try_store_flag, noce_try_store_flag_constants,
3439      &nb