OSDN Git Service

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