OSDN Git Service

2002-04-13 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-13      Joel Sherrill <joel@OARcorp.com>
2
3         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
4         sparc-elf and sparc-rtems targets.
5
6 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
7
8         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
9         defined, and __gnu_hurd__ wherever __GNU__ is defined.
10         * arm/linux-elf.h: Likewise.
11         * cris/aout.h: Likewise.
12         * cris/linux.h: Likewise.
13         * i370/linux.h: Likewise.
14         * i386/gnu.h: Likewise.
15         * i386/linux-aout.h: Likewise.
16         * i386/linux-oldld.h: Likewise.
17         * i386/linux.h: Likewise.
18         * i386/linux64.h: Likewise.
19         * ia64/linux.h: Likewise.
20         * m68k/linux-aout.h: Likewise.
21         * m68k/linux.h: Likewise.
22         * mips/linux.h: Likewise.
23         * pa/pa-linux.h: Likewise.
24         * pj/linux.h: Likewise.
25         * rs6000/sysv4.h: Likewise.
26         * s390/linux.h: Likewise.
27         * sh/linux.h: Likewise.
28         * sparc/linux-aout.h: Likewise.
29         * sparc/linux.h: Likewise.
30         * sparc/linux64.h: Likewise.
31         * xtensa/linux.h: Likewise.
32
33 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
34
35         * stmt.c (check_unique_operand_names): Expect operand names to
36         be strings rather than identifiers.  Use simple_cst_equal to
37         compare them.
38         (resolve_operand_name_1): Make same identifier to string change here.
39         * c-parse.in (asm_operand): Convert a named operand into a string.
40         * cp/parse.y (asm_operand): Likewise.
41
42 2002-04-13  Andreas Schwab  <schwab@suse.de>
43
44         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
45
46 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
47
48         Revert these changes:
49
50         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
51
52         PR c++/5571
53         * stor-layout.c (layout_decl): Reset the RTL for the decl.
54
55 2002-04-12  Richard Henderson  <rth@redhat.com>
56
57         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
58         (sparc*-*-solaris): Clean up header files.
59         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
60         and plan on generating 64-bit code.
61         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
62         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
63         * config/sparc/sol2-sld-64.h: Rename ...
64         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
65         for AS_SPARC64_FLAG not defined.
66         * config/sparc/sol2-gld-bi.h: New.
67         * config/sparc/sol2-sld.h: Remove.
68         * config/sparc/sol26-sld.h: New.
69         * config/sparc/sol2.h: Tidy comments.
70         * doc/install.texi: Document sparc-solaris configury changes.
71
72 2002-04-12  Richard Henderson  <rth@redhat.com>
73
74         * recog.c (offsettable_address_p): Match the logic in adjust_address.
75
76         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
77         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
78
79 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
80
81         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
82
83 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
84
85         * pa.c (pa_can_combine_p): Call extract_insn before calling
86         constrain_operands.
87
88 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
89
90         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
91         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
92         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
93         (CPP_PREDEFINES): Handle __declspec.
94         * config/i386/t-interix (USER_H): Remove.
95
96 2002-04-12  DJ Delorie  <dj@redhat.com>
97
98         * integrate.c (compare_blocks): Make comparisons safe for when
99         sizeof(int) < sizeof(char *).
100         (find_block): Likewise.
101
102 2002-04-12  Jan Hubicka  <jh@suse.cz>
103             David Edelsohn  <edelsohn@gnu.org>
104
105         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
106         registers.
107         (symbol_ref_operand): New.
108         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
109         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
110
111 2002-04-12  Andreas Schwab  <schwab@suse.de>
112
113         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
114         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
115         overrides the definition in config/svr4.h.
116         
117 2002-04-12      Eric Norum <eric.norum@usask.ca>
118
119         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
120         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
121         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
122         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
123         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
124         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
125         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
126         definitions to config/rtems.h and make the targets more similar.
127
128 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
129
130         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
131         POINTERS_EXTEND_UNSIGNED.
132         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
133         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
134
135         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
136         not specified.
137
138 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
139
140         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
141         depends on TARGET_SHMEDIA, not TARGET_SH5.
142
143 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
144
145         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
146         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
147
148 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
149
150         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
151         no r0 clobber.
152
153 2002-04-12  Andreas Schwab  <schwab@suse.de>
154
155         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
156
157 2002-04-12  Richard Henderson  <rth@redhat.com>
158
159         PR bootstrap/4191
160         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
161
162         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
163         modes spanning multiple hard regs.
164     
165         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
166
167 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
168
169         * pa.c (pa_output_function_prologue): Don't accumulate the total
170         number of code bytes when using TARGET_64BIT, or gas, SOM and not
171         the portable runtime.
172         (output_deferred_plabels): Handle 64bit plabels.
173         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
174         generating pic code using the GAS assembler for object formats that
175         are not SOM (ie., ELF32 and ELF64).
176         (output_millicode_call): Check attribute type if attribute length is 28.
177         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
178         dbr_sequence_length once.
179         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
180         dbr_sequence_length once.
181         * pa.h (TARGET_SOM): Define if not defined.
182         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
183         with GAS and not SOM.
184         (jump, call_internal_reg, call_value_internal_reg): Likewise.
185         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
186
187 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
188
189         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
190         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
191         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
192         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
193         elfos.h and dbxelf.h values are fine now.
194         * config/i386/freebsd.h, config/alpha/freebsd.h
195         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
196
197 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
198
199         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
200         or set Acpu or Amachine.  Reformat.
201         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
202         define.
203         (LINK_SPEC): Do not need to undef.
204         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
205         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
206         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
207         define.
208         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
209         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
210         (LINK_SPEC): Do not need to undef.
211         (DONT_USE_BUILTIN_SETJMP): Do not define.
212         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
213         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
214         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
215         Remove trailing spaces.
216         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
217         __ELF__, or set Acpu or Amachine.  Reformat.
218         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
219         define.
220
221 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
222
223         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
224         all other *-*-freebsd* targets.
225
226 2002-04-11  Richard Henderson  <rth@redhat.com>
227
228         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
229
230 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
231
232         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
233         Include {cpu}/{cpu}.h thru tm_file.
234         (alpha*-*-linux*ecoff): Remove target.
235         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
236         (LINK_SPEC): Remove, is not OS independent.
237         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
238         (LINK_SPEC): Do not need to #undef any longer.
239         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
240         any longer.
241         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
242         __ELF__.
243         (LINK_SPEC): Moved here from alpha/elf.h.
244         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
245         SUB_CPP_PREDEFINES.
246         * config/alpha/linux-ecoff.h: Remove.
247         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
248         (CPP_SPEC): Define _POSIX_SOURCE as needed.
249         (CPP_SUBTARGET_SPEC): Do not define.
250         (LINK_SPEC): Do not need to #undef any longer.
251         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
252         * config/alpha/vms.h: Likewise.
253
254 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
255
256         * doc/extend.texi: Remove old claim that typedefs cannot have
257         an alignment attribute.
258
259 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
260
261         PR optimization/6177
262         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
263         bitpos is 0 and bitsize CONCAT size.
264
265 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
266
267         PR c/6223
268         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
269
270 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
271
272         * config/alpha/freebsd.h: Minor reformatting.
273         (CPP_SPEC): Define ELF and add cpp_subtarget.
274         (ASM_SPEC): No longer needed.
275
276 2002-04-11  Richard Henderson  <rth@redhat.com>
277
278         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
279         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
280         (dimode mem/zero splitter): New.
281
282 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
283
284         * config/cris/cris.c (cris_override_options): Tweak error message
285         for PIC not implemented.
286
287         * config/cris/cris.h: Tweak comments related to parameter-passing.
288
289         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
290
291 2002-04-10  Richard Henderson  <rth@redhat.com>
292
293         * except.c (add_ehl_entry): Allow duplicates after landing pad
294         creation.
295
296 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
297
298         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
299
300 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
301
302         * c-decl.c (c_init_decl_processing): Move generation of
303         decls for g77_integer_type_node and friends from here ...
304         * c-common.c (c_common_nodes_and_builtins): ... to here.
305
306 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
307
308         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
309         is only used as frame pointer when frame_pointer_needed is true.
310
311 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
312
313         PR target/817
314         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
315         for the fact that the pool entry uses two words.
316         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
317         1k bytes.
318         (movdf_soft_insn): Similarly.
319         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
320         for the fact that the pool entry uses three words.
321
322 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
323
324         * config/mips/mips.c (mips_va_arg): When using the struct version
325         of the EABI va_list, allow arguments in the register save area to
326         take up less room than a stack argument.
327
328 2002-04-10  Richard Henderson  <rth@redhat.com>
329
330         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
331         if EXPAND_INITIALIZER.
332
333 2002-04-09  Richard Henderson  <rth@redhat.com>
334
335         * config/alpha/alpha.md (movdi_er_maybe_g): New.
336         * config/alpha/alpha.c (alpha_expand_mov): Use it.
337
338 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
339
340         PR optimization/6233
341         * rtlanal.c (pure_call_p): New function.
342         * rtl.h (pure_call_p): Declare.
343         * loop.c (prescan_loop): Use it to set has_nonconst_call.
344         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
345
346 2002-04-09  Eric Christopher  <echristo@redhat.com>
347
348         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
349         information to .comm directive.
350
351 2002-04-09  Richard Henderson  <rth@redhat.com>
352
353         PR c/5078
354         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
355
356 2002-04-09  Richard Henderson  <rth@redhat.com>
357
358         * basic-block.h (flow_delete_block_noexpunge): Declare.
359         (expunge_block_nocompact): Declare.
360         * cfg.c (expunge_block_nocompact): Split out from ...
361         (expunge_block): ... here.
362         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
363         (flow_delete_block_noexpunge): Split out from ...
364         (flow_delete_block): ... here.
365         * cfgcleanup.c (delete_unreachable_blocks): Compact while
366         removing dead blocks.
367         * except.c (exception_handler_labels): Remove.
368         (exception_handler_label_map): New.
369         (struct eh_region): Add aka member.
370         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
371         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
372         (for_each_eh_label, for_each_eh_label_1): New.
373         (init_eh): Register exception_handler_label_map.
374         (free_eh_status): Use free_region.
375         (find_exception_handler_labels): Use the map, not the list.
376         (remove_exception_handler_label): Likewise.
377         (maybe_remove_eh_handler): Likewise.
378         (remove_eh_handler): Use the region aka bitmap.
379         * except.h (exception_handler_labels): Remove.
380         (for_each_eh_label): Declare.
381         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
382         * loop.c (invalidate_loops_containing_label): New.
383         (find_and_verify_loops): Use it.  Use for_each_eh_label.
384         * sched-rgn.c (is_cfg_nonregular): Use
385         current_function_has_exception_handlers.
386
387 2002-04-09  Richard Henderson  <rth@redhat.com>
388
389         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
390         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
391         Do not return changed status.
392         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
393         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
394         New functions that do return changed status.
395         * sbitmap.h: Update decls.
396         * gcse.c, lcm.c: Use _cg functions as needed.
397
398 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
399
400         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
401         (sh64-*-elf*, sh-*-rtemself*): Likewise.
402         * config/sh/embed_bb.c: New file.
403         * config/sh/embed-elf.h: New file.
404         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
405         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
406         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
407         __PTRDIFF_TYPE__ .
408         (SUBTARGET_CPP_PTR_SPEC): Don't define.
409         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
410         Add subtarget_asm_endian_spec.
411         (ASM_SPEC): Use subtarget_asm_endian_spec.
412         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
413         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
414         (WCHAR_UNSIGNED): Define.
415         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
416         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
417         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
418         Fix value.
419         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
420         (sh_adjust_cost): Likewise.
421         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
422         __PTRDIFF_TYPE__ .
423         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
424         (WCHAR_TYPE_SIZE): Likewise.
425         (ASM_SPEC): Use subtarget_asm_endian_spec.
426         (SH_ELF_WCHAR_TYPE): #undef/ #define.
427         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
428         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
429         (MAX_WCHAR_TYPE_SIZE): Don't #define .
430         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
431         (USER_LABEL_PREFIX): Don't #undef /#define .
432         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
433         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
434         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
435         (ASM_SPEC): Likewise.
436         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
437         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
438         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
439         (LIB2FUNCS_EXTRA): Define.
440         * t-sh64 (LIB2FUNCS_EXTRA): Define.
441         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
442         (LIB1ASMFUNCS_CACHE): Define.
443         (LIB2FUNCS_EXTRA): Redefine empty.
444
445 2002-04-08  Richard Henderson  <rth@redhat.com>
446
447         * reorg.c (get_branch_condition): Use reversed_comparison_code.
448
449 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
450
451         * config/m68hc11/larith.asm (__map_data_section): Fix condition
452         and optimize for size.
453         (__do_global_ctors): Fix pointer comparison.
454         (__do_global_dtors): Likewise.
455
456 2002-04-09  David S. Miller  <davem@redhat.com>
457
458         * config/sparc/sparc.c (sparc_extra_constraint_check): New
459         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
460         allow reloading pseudos.
461         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
462         * config/sparc/sparc-protos.h: Declare it.
463
464         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
465         unsigned comparison warning.
466         (output_restore_regs): Mark leaf_function as unused.
467
468 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
469
470         * expr.c (is_aligning_offset): New function.
471         (expand_expr, case COMPONENT_EXPR): Call it.
472
473 2002-04-08  David S. Miller  <davem@redhat.com>
474
475         PR target/6082
476         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
477
478         Make init_priority work on Sparc when using GNU ld.
479         * config/sparc/linux.h, config/sparc/linux64.h,
480         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
481         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
482         * config/sparc/sol2-gld.h: New file to do the same.
483         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
484         sparc/sol2-gld.h to tm_file.
485
486         PR optimization/4328
487         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
488         * doc/md.texi: Document it.
489         * config/sparc/sparc.md (movdi_insn_sp64_novis,
490         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
491         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
492         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
493         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
494
495 2002-04-08  Andreas Jaeger  <aj@suse.de>
496
497         * stmt.c (expand_asm_operands): Revert last patch from Richard
498         Henderson.
499
500 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
501
502         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
503         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
504
505 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
506
507         * doc/contrib.texi (Contributors): Add David O'Brien.
508
509 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
510
511         * configure.in (auto-build.h): Use target_alias and build_alias
512         when running configure.
513         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
514         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
515         * configure: Regenerate.
516
517 2002-04-07  David S. Miller  <davem@redhat.com>
518
519         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
520
521 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
522
523         PR 5933
524         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
525         generating 32-bit pic code.
526
527 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
528
529         * cppinit.c (cpp_create_reader): Initialize
530         discard_comments_in_macro_exp.
531         (COMMAND_LINE_OPTIONS): Add "-CC" option.
532         (cpp_handle_option): Handle "-CC" option.
533         * cpplex.c (save_comment): If saving a C++ comment in
534         a directive, convert it to a C comment.
535         (_cpp_lex_direct): Pass second comment start character to
536         save_comment to indicate comment type.
537         * cpplib.c (_cpp_handle_directive): If processing
538         a "#define" directive and discard_comments_in_macro_exp
539         is false,  re-enable saving of comments.
540         (lex_macro_node): If discard_comments_in_macro_exp is false,
541         discard any comments before the macro identifier.
542         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
543         member.
544         * cppmacro.c (cpp_get_token): If expanding a macro while
545         processing a directive, discard any comments we might encounter.
546         (parse_params): If discard_comments_in_macro_exp is false,
547         ignore comments in the macro parameter list.
548         * gcc.c (cpp_unique_options): Add "-CC" option.
549         (option_map): Map "--comments-in-macros" to "-CC".
550         * doc/cppopts.texi: Document "-CC" option.
551         * f/lang-specs.h: Add "-CC" option.
552         * testsuite/gcc.dg/cpp/maccom1.c: New test.
553         * testsuite/gcc.dg/cpp/maccom2.c: New test.
554         * testsuite/gcc.dg/cpp/maccom3.c: New test.
555         * testsuite/gcc.dg/cpp/maccom4.c: New test.
556         * testsuite/gcc.dg/cpp/maccom5.c: New test.
557         * testsuite/gcc.dg/cpp/maccom6.c: New test.
558
559 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
560
561         PR middle-end/6180
562         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
563
564 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
565
566         PR c++/5571
567         * stor-layout.c (layout_decl): Reset the RTL for the decl.
568
569         PR opt/5120
570         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
571         RTX_UNCHANGING_P for the functions arguments when a tail call
572         is made.
573
574 2002-04-06  Jason Merrill  <jason@redhat.com>
575
576         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
577         (parse_options_and_default_flags): Set them appropriately.
578         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
579
580 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
581
582         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
583         here.
584
585         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
586         semicolon.
587
588         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
589         types come in by-reference.  Fix typo in comment.
590
591 2002-04-05  David S. Miller  <davem@redhat.com>
592
593         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
594         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
595         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
596         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
597
598 2002-04-05  David S. Miller  <davem@redhat.com>
599
600         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
601         are not going to emit return instructions, emit at least a nop
602         for the sake of sane backtraces.
603
604 2002-04-05  Richard Henderson  <rth@redhat.com>
605
606         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
607
608 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
609
610         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
611
612 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
613
614         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
615         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
616         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
617
618 2002-04-05  Andreas Schwab  <schwab@suse.de>
619
620         * c-convert.c: Include c-common.h.
621         * Makefile.in (c-convert.o): Updated.
622
623 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
624
625         * mklibgcc.in: Use separate libgcc.map for each multilib.
626         * Makefile.in (distclean): Don't remove libgcc.map here.
627
628 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
629
630         * Makefile.in (s-mlib): Handle --disable-multilib by separate
631         genmultilib invocation.
632
633 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
634
635         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
636         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
637         to num_gprs for symmetry.
638         * config/mips/mips.c: Adjust accordingly.
639
640 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
641
642         * c-common.c (truthvalue_conversion): Rename, update.
643         * c-common.h (c_common_truthvalue_conversion): New.
644         * c-convert.c (convert): Update.
645         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
646         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
647         * c-typeck.c (build_binary_op, build_unary_op,
648         build_conditional_expr): Update.
649         * fold-const.c (constant_boolean_node, fold): Use langhook.
650         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
651         * langhooks.h (struct lang_hooks): New hook.
652         * stmt.c (expand_decl_cleanup): Use langhook.
653         * tree.h (truthvalue_conversion): Remove.
654 objc:
655         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
656
657 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
658
659         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
660         Add rules to make null object file.
661
662 2002-04-04  Jim Blandy  <jimb@redhat.com>
663
664         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
665         macro formal parameter names.
666
667 2002-04-04  David S. Miller  <davem@redhat.com>
668
669         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
670
671 2002-04-04  Richard Henderson  <rth@redhat.com>
672
673         PR middle-end/5099
674         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
675         Support copies into and out of memory.  Don't accept allows_reg
676         and allows_mem as gospel.
677
678 2002-04-04  Richard Henderson  <rth@redhat.com>
679
680         PR opt/6165
681         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
682         (write_dependence_p): Likewise.
683
684 2002-04-04  Richard Henderson  <rth@redhat.com>
685
686         * predict.c (estimate_bb_frequencies): Do frequency calculation
687         with a volatile temporary.
688
689 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
690
691         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
692
693 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
694
695         PR c++/6119
696         * final.c (final_start_function): Don't bump profile_label_no here...
697         (final_end_function): ...but here.
698
699 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
700
701         * config/sparc/sparc.md (pic): New attribute.
702         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
703         into stack slots.
704         (split after do_builtin_setjmp_setup): New.
705
706 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
707
708         PR fortran/6106
709         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
710         change.
711
712 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
713
714         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
715         UNITS_PER_WORD for zero sized aggregates.
716
717 2002-04-03  David S. Miller  <davem@redhat.com>
718
719         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
720         one-character spec for this, just use %(link_gcc_c_sequence).
721
722 2002-04-03  David S. Miller  <davem@redhat.com>
723
724         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
725         handling.
726
727 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
728
729         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
730         (DWARF_FRAME_RETURN_COLUMN): Move.
731         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
732         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
733         * pa.c (except.h, predict.h): Include.
734         (FRP): Delete.
735         (store_reg_modify, set_reg_plus_d): Revise prototypes.
736         (output_ascii): Add cast.
737         (store_reg_modify): Revise to add frame notes.
738         (set_reg_plus_d): Likewise.
739         (compute_frame_size): Include space for eh data registers in frame if
740         the current function calls eh_return.
741         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
742         function calls eh_return.  Save eh data registers if the current
743         function calls eh_return.  Fix code to add frame notes.  Emit
744         blockage to prevent insns with frame notes being scheduled in the
745         delay slot of calls.
746         (hppa_expand_epilogue): Restore eh data registers and do final stack
747         adjustment if the current function calls eh_return.  Don't add frame
748         notes.
749         (output_call): Revise for change in length of call insn.  Don't do
750         return pointer adjustment for an unconditional jump in the delay slot
751         of a call when using frame notes.
752         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
753         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
754         (ARG_POINTER_CFA_OFFSET): Define.
755         * pa.md (return_external_pic): New pattern.
756         (prologue): Correct formatting.  Use return_external_pic if current
757         function calls eh_return.
758         (call_internal_symref, call_value_internal_symref,
759         sibcall_internal_symref, sibcall_value_internal_symref): Change default
760         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
761         respectively.
762         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
763
764         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
765         list of targets to check using "nop" insn.
766         * configure: Rebuilt.
767
768 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
769
770         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
771
772 2002-04-03  David S. Miller  <davem@redhat.com>
773
774         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
775         library sequence passed to the linker.
776         (LINK_COMMAND_SPEC): Use it.
777         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
778         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
779         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
780
781 2002-04-03  Jason Merrill  <jason@redhat.com>
782
783         * except.c (struct eh_status): Remove protect_list.
784         (begin_protect_partials, end_protect_partials): Remove.
785         (add_partial_entry): Remove.
786         * except.h: Remove prototypes.
787
788         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
789         expand_decl_cleanup_eh.
790
791         PR c++/5636
792         * tree.h (CLEANUP_EH_ONLY): New macro.
793         * stmt.c (expand_decl_cleanup_eh): New fn.
794         (expand_cleanups): Check CLEANUP_EH_ONLY.
795         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
796         Use expand_decl_cleanup_eh.
797         (expand_stmt): Adjust.
798         * c-common.h: Adjust prototype.
799
800 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
801
802         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
803         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
804         (cris_target_asm_function_epilogue): Ditto.
805         (cris_initial_frame_pointer_offset): Ditto.
806         (cris_simple_epilogue): Ditto.
807         (cris_expand_builtin_va_arg): Variable-size types come in
808         by-reference.
809
810 2002-04-03  David S. Miller  <davem@redhat.com>
811
812         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
813         little-endian.
814         (set_fast_math): Correct 'fsr' type.
815
816 2002-04-03  Richard Henderson  <rth@redhat.com>
817
818         PR opt/3569
819         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
820         * toplev.c (check_global_declarations): Use it.
821         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
822         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
823         (LANG_HOOKS_DECLS): Add it.
824         * langhooks.c (lhd_warn_unused_global_decl): New.
825         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
826         * c-objc-common.c (c_warn_unused_global_decl): New.
827         * c-tree.h (c_warn_unused_global_decl): Declare.
828         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
829
830 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
831
832         * langhooks-def.h (lhd_set_decl_assembler_name,
833         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
834         (LANG_HOOKS_INITIALIZER): Update.
835         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
836         * langhooks.h (struct lang_hooks): New hook.
837         * tree.c (set_decl_assembler_name): Move to langhooks.c.
838         (lang_set_decl_assembler_name): Remove.
839         (init_obstacks): Don't set hook.
840         (decl_assembler_name): New function.
841         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
842         (decl_assembler_name): New.
843         (lang_set_decl_assembler_name): Remove.
844
845 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
846
847         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
848         works properly with .hidden symbols.
849         * configure: Rebuilt.
850         * config.in: Rebuilt.
851         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
852         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
853         properly with .hidden symbols.
854
855 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
856
857         PR middle-end/6102
858         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
859         USE argument.
860
861 2002-04-03  Richard Henderson  <rth@redhat.com>
862
863         PR opt/4120
864         * sched-rgn.c (sets_likely_spilled): New.
865         (sets_likely_spilled_1): New.
866         (add_branch_dependences): Use it.
867
868 2002-04-02  Richard Henderson  <rth@redhat.com>
869
870         PR opt/4311
871         * loop.h (LOOP_FIRST_PASS): New.
872         * loop.c (strength_reduce): Mind it when deciding to unroll.
873         * toplev.c (rest_of_compilation): Set it.
874
875 2002-04-02  David S. Miller  <davem@redhat.com>
876
877         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
878         mems_ok_for_ldd_peep when the order of the loads being examined
879         is reversed.
880         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
881         existing comment to increase comprehension of this situation.
882
883 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
884
885         * config/sh/sh.md: Don't use union real_extract.
886
887 2002-04-02  Richard Henderson  <rth@redhat.com>
888
889         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
890
891 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
892
893         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
894         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
895         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
896         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
897         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
898         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
899         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
900         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
901         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
902         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
903         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
904         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
905         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
906         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
907         Include as many configury headers via tm_file as possible.  This
908         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
909         * config/openbsd-oldgas.h: New file.
910         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
911         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
912         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
913         config/i386/i386-coff.h, config/i386/i386-interix.h,
914         config/i386/iscdbx.h, config/i386/linux-aout.h,
915         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
916         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
917         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
918         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
919         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
920         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
921         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
922         config/i386/vxi386.h: Do not directly include configury headers.
923         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
924         Directly include configury headers that are no longer automatically
925         included by the above headers.
926         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
927         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
928         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
929         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
930         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
931         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
932         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
933         (TARGET_VERSION): Define.
934         * config/i386/beos-elf.h, config/i386/freebsd.h,
935         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
936         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
937         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
938         config/i386/sco5.h, config/i386/sysv4.h
939         (TARGET_VERSION): Do not need to protect.
940         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
941         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
942         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
943         config/i386/i386-interix.h, config/i386/linux-aout.h,
944         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
945         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
946         (YES_UNDERSCORES): Do not define - not needed.
947         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
948         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
949         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
950         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
951         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
952         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
953         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
954         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
955
956 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
957             Richard Henderson  <rth@redhat.com>
958
959         PR c/5484
960         * function.c (assign_temp): Accept either type or decl argument.
961         Detect variables whose size is too large to fit into an integer.
962         * stmt.c (expand_decl): Pass the decl, not the type.
963
964 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
965
966         * protoize.c: Match include directory usage with cppdefault.c.
967
968 2002-04-03  Jeffrey A Law  (law@redhat.com)
969             Hans-Peter Nilsson  <hp@bitrange.com>
970
971         * combine.c (simplify_comparison): Avoid narrowing a comparison
972         with a paradoxical subreg when doing so would drop signficant bits.
973
974 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
975
976         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
977         if POINTERS_EXTEND_UNSIGNED is defined.
978
979 2002-04-02  Richard Henderson  <rth@redhat.com>
980
981         PR opt/3967
982         * local-alloc.c (contains_replace_regs): LO_SUM may contain
983         replace regs.
984
985 2002-04-02  Richard Henderson  <rth@redhat.com>
986
987         * doc/standards.texi: Document required freestanding libc entry points.
988
989 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
990
991         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
992         associated splitter.  Remove MQ constraint.
993         (ctrdi_internal4): Correct CCmode clobber.
994
995 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
996
997         * milli64.S ($$dyncall): New function.
998         * t-linux (LIB1ASMFUNCS): Revise module list.
999         (LIB1ASMSRC): Use pa/milli64.S.
1000
1001 2002-04-02  Richard Henderson  <rth@redhat.com>
1002
1003         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1004         rename solaris_sys_varargs_h.
1005
1006 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1007
1008         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1009         the same mode as its component.
1010
1011 2002-04-02  Richard Henderson  <rth@redhat.com>
1012
1013         PR opt/190
1014         * final.c (this_is_asm_operands): Export.
1015         * output.h (this_is_asm_operands): Declare.
1016         * config/i386/i386.c (print_operand): Error odd asm operands.
1017
1018 2002-04-02  Richard Henderson  <rth@redhat.com>
1019
1020         PR opt/420
1021         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1022
1023 2002-04-01  Richard Henderson  <rth@redhat.com>
1024
1025         PR target/1538
1026         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1027         * fixinc/fixincl.x: Rebuild.
1028
1029 2002-04-01  Richard Henderson  <rth@redhat.com>
1030
1031         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1032         (atomic_alloc, atomic_free): New.
1033         (SIZE, MASK_FOR, PTR_IN): New.
1034         (emergency_reg_state, emergency_reg_state_free): New.
1035         (emergency_labeled_state, emergency_labeled_state_free): New.
1036         (reg_state_alloced, labeled_state_alloced): New.
1037         (alloc_reg_state, free_reg_state): New.
1038         (alloc_label_state, free_label_state, free_label_states): New.
1039         (push, pop, dup_state_stack, free_state_stack): Use them.
1040         (desc_label_state): Likewise.
1041         (uw_frame_state_for): Free label states and state stack.
1042         (uw_update_reg_address): Eliminate warnings.
1043
1044 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1045
1046         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1047         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1048
1049 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1050
1051         * c-decl.c (grokdeclarator): Update.
1052         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1053         * c-tree.h (c_mark_addressable): New.
1054         * c-typeck.c (default_function_array_conversion, build_unary_op,
1055         build_array_ref, convert_for_assignment): Update.
1056         (mark_addressable): Rename.
1057         * calls.c (try_to_integrate, expand_call): Use langhook.
1058         * expr.c (expand_expr): Use langhook.
1059         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1060         * langhooks.h (struct lang_hooks): New hook.
1061         * stmt.c (expand_asm_operands): Use langhook.
1062         * tree.h (mark_addressable): Remove.
1063 objc:
1064         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1065
1066 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1067
1068         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1069         in previous change.
1070
1071 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1072
1073         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1074         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1075
1076 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1077
1078         * c-common.c (unsigned_conversion_warning, convert_and_check,
1079         unsigned_type, signed_type, shorten_compare,
1080         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1081         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1082         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1083         New.
1084         * c-decl.c (grokdeclarator): Update.
1085         * c-format.c (check_format_types): Update.
1086         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1087         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1088         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1089         * convert.c (convert_to_integer): Use new hooks.
1090         * expmed.c (make_tree): Use new hooks.
1091         * expr.c (store_expr): Use new hooks.
1092         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1093         all_ones_mask_p, unextend, fold): Use new hooks.
1094         * langhooks.h (struct lang_hooks_for_types): New hooks.
1095         * tree.h (signed_or_unsigned_type, signed_type,
1096         unsigned_type): Remove.
1097 objc:
1098         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1099         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1100
1101 2002-03-31  Richard Henderson  <rth@redhat.com>
1102
1103         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1104         (desc_frgr_mem): Fix reference to f16-f31.
1105
1106 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1107
1108         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1109         RTVEC_ELT): Const-ify.
1110         * varray.h (VARRAY_CHECK): Const-ify.
1111         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1112         ggc_mark_rtvec, ggc_mark): Const-ify.
1113
1114 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1115
1116         * diagnostic.c: Include langhooks-def.h.
1117         * Makefile.in (diagnostic.o): Update.
1118
1119 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1120
1121         * c-common.c (c_unsafe_for_reeval): Rename.
1122         * c-common.h (c_unsafe_for_reeval): Rename.
1123         * c-decl.c (finish_incomplete_decl): Rename.
1124         (c_init_decl_processing): Don't set langhook.
1125         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1126         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1127         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1128         * c-tree.h (finish_incomplete_decl): Rename.
1129         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1130         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1131         (LANG_HOOKS_INITIALIZER): Update.
1132         * langhooks.c (lhd_unsafe_For_reeval): New.
1133         * langhooks.h (struct langhooks): New hooks.
1134         * toplev.c (incomplete_decl_finalize_hook): Remove.
1135         (wrapup_global_declarations): Update.
1136         * tree.c (lang_unsafe_for_reeval): Remove.
1137         (unsafe_for_reeval): Update.
1138         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1139         Remove.
1140 objc:
1141         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1142         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1143
1144 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1145
1146         * diagnostic.c (print_error_function): Remove.
1147         (default_print_error_function): Rename.
1148         (report_error_function): Update.
1149         * diagnostic.h (print_error_function): Remove.
1150         (default_print_error_function): Remove.
1151         * langhooks-def.h (struct diagnostic_context): Predeclare.
1152         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1153         (LANG_HOOKS_INITIALIZER): Update.
1154         * langhooks.h (struct diagnostic context): Predeclare.
1155         (struct lang_hooks): New hook.
1156
1157 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1158
1159         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1160         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1161         !flag_pic.
1162         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1163         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1164         of PIC_OFFSET_TABLE_REGNUM thruout.
1165         * config/rs6000/rs6000.md: Likewise.
1166         * config/rs6000/darwin.h: Likewise.
1167
1168 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1169
1170         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1171         unsigned HOST_WIDE_INT, not unsigned int.
1172
1173 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1174
1175         PR middle-end/6096, middle-end/6098, middle-end/6099
1176         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1177         CODE_LABELs.
1178         (fill_slots_from_thread): Likewise.
1179
1180 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1181
1182         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1183         floating fields in float regs.
1184         (function_arg_record_value_2): Likewise.
1185
1186 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1187
1188         * config/mmix/mmix.md (define_constants): Remove misleading
1189         FIXME.  Add MMIX_fp_rO_OFFSET.
1190         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1191         saved rO as part of the pattern.  Remove FIXME.
1192         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1193         here, at output-time.
1194
1195 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1196
1197         PR middle-end/6100
1198         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1199         REG_BR_PRED.
1200         (output_v9branch): Likewise.
1201
1202 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1203
1204         * gcc.c: Revert previous patch for now.
1205         * config/i386/djgpp.h: Likewise.
1206
1207 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1208
1209         * config/mmix/crti.asm (_init): Register _fini with atexit.
1210         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1211
1212 2002-03-31  Richard Henderson  <rth@redhat.com>
1213
1214         PR target/3997
1215         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1216         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1217
1218 2002-03-31  Richard Henderson  <rth@redhat.com>
1219
1220         * libgcc2.c (__bb_exit_func): Make static.
1221
1222         * config/alpha/alpha.md (trap): New.
1223
1224 2002-03-31  Richard Henderson  <rth@redhat.com>
1225
1226         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1227         promoted argument types; build trap.
1228         (expand_builtin_trap): New.
1229         (expand_builtin): Use it.
1230         * stmt.c (expand_nl_goto_receivers): Likewise.
1231         * expr.h (expand_builtin_trap): Declare.
1232         * libfuncs.h (LTI_abort, abort_libfunc): New.
1233         * optabs.c (init_optabs): Init abort_libfunc.
1234
1235 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1236
1237         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1238         (LINK_COMMAND_SPEC): ... from here.
1239         (init_gcc_specs): Duplicate it here too, omitting
1240         shared_name in the second copy.
1241         (init_spec): Test for duplicate
1242         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1243
1244 2002-03-30  David S. Miller  <davem@redhat.com>
1245
1246         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1247         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1248
1249 2002-03-30  Roger Sayle <roger@eyesopen.com>
1250             Richard Henderson  <rth@redhat.com>
1251
1252         * regmove.c (combine_stack_adjustments_for_block): Avoid
1253         emitting a stack adjustment of zero bytes.  Let delete_insn
1254         update bb->head.
1255
1256 2002-03-30  Richard Henderson  <rth@redhat.com>
1257
1258         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1259         (sparc_emitting_epilogue): New.
1260         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1261         * config/sparc/sparc-protos.h: Update.
1262         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1263         (TARGET_SWITCHES): Update.
1264         * config/sparc/sparc.md (return): Remove.
1265         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1266         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1267         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1268         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1269         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1270         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1271         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1272         Remove MASK_EPILOGUE.
1273         * doc/invoke.texi: Update.
1274
1275 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1276
1277         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1278         CPP will start the file for us.
1279
1280 2002-03-30  Richard Henderson  <rth@redhat.com>
1281
1282         PR target/5446
1283         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1284         prologue_allocate_stack.
1285         (ia64_single_set): Use insn codes for recognition of special
1286         cases, not rtl matching.
1287         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1288
1289 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1290
1291         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1292
1293 2002-03-30  Richard Henderson  <rth@redhat.com>
1294
1295         PR target/6032
1296         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1297         or -fomit-frame-pointer with profiling.
1298         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1299         (FUNCTION_PROFILER): Do nothing.
1300         (PROFILE_HOOK): New.
1301         * config/sparc/sparc.c (sparc_override_options): Don't check
1302         code models for profiling.
1303         (sparc_function_profiler): Remove.
1304         (sparc_profile_hook): New.
1305         * config/sparc/sparc-protos.h: Update.
1306
1307 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1308
1309         PR optimization/6086
1310         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1311         of SUBREG of volatile MEM or because the MEM was mode dependent,
1312         return CLOBBER instead of unmodified SUBREG.
1313
1314 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1315
1316         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1317         when not optimizing.
1318
1319         * toplev.c (rest_of_compilation): Cann mark_constant_function
1320         only when optimizing.
1321
1322         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1323         are NULL.
1324
1325         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1326         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1327         (try_optimize_cfg): clear all AUX fields.
1328
1329         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1330         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1331         (ix86_address_cost): Be prepared for SUBREGed registers.
1332         (legitimate_address_p): Accept SUBREGed registers.
1333
1334 2002-03-29  Richard Henderson  <rth@redhat.com>
1335
1336         PR target/5672
1337         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1338
1339 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1340
1341         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1342         for aggregate and TFmode types.
1343
1344 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1345
1346         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1347
1348 2002-03-29  Richard Henderson  <rth@redhat.com>
1349
1350         PR target/5886
1351         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1352         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1353
1354 2002-03-29  Richard Henderson  <rth@redhat.com>
1355
1356         PR target/6041
1357         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1358         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1359         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1360         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1361         conditional.
1362         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1363
1364 2002-03-29  Dale Johannesen <dalej@apple.com>
1365
1366         * loop.c (combine_movables): Do allow combination of pseudos.
1367
1368 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1369
1370         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1371         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1372         No functional change except ...
1373         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1374         * doc/install.texi (*-*-freebsd*): Document port configuration.
1375
1376 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1377
1378         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1379         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1380         Use new hooks.
1381         * builtin-types.def (BT_PTRMODE): Update.
1382         * c-common.c (type_for_size): Rename c_common_type_for_size.
1383         (type_for_mode): Similarly.
1384         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1385         Use new hook.
1386         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1387         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1388         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1389         Redefine.
1390         * c-typeck.c (common_type, comptypes, default_conversion):
1391         Use new hooks.
1392         * calls.c: Include langhooks.h.
1393         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1394         calls.
1395         * convert.c: Include langhooks.h
1396         (convert_to_pointer, convert_to_integer): Use new hooks.
1397         * except.c (init_eh): Similarly.
1398         * expmed.c: Include langhooks.h.
1399         (expand_mult_add): Use new hooks.
1400         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1401         try_casesi): Similarly.
1402         * fold-const.c (optimize_bit_field_compare, make_range,
1403         decode_field_reference, fold_truthop, fold): Similarly.
1404         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1405         put_var_into_stack): Similarly.
1406         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1407         LANG_HOOKS_TYPE_FOR_SIZE): New.
1408         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1409         * langhooks.h (lang_hooks_for_types): New hooks.
1410         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1411         * tree.c (get_unwidened, get_narrower): Similarly.
1412         * tree.h (type_for_mode, type_for_size): Remove.
1413         * varasm.c (force_const_mem): Use new hooks.
1414         * utils2.c (nonbinary_modular_operation): Update.
1415 objc:
1416         * objc-act.c (handle_impent): Update.
1417         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1418         Redefine.
1419
1420 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
1421
1422         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1423         * config/ia64/ia64.c (basereg_operand): New.
1424         * config/ia64/ia64-protos.h (basereg_operand): Declare.
1425         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1426
1427 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1428
1429         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
1430         unwind information when frame_pointer_needed.
1431         (mmix_assemble_integer): Tweak wording in comment.
1432
1433 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1434
1435         * Makefile.in (except.o): Update.
1436         * except.c: Include langhooks.h.
1437         (init_eh): Use langhook.
1438         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
1439         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
1440         (LANG_HOOKS_INITIALIZER): Update.
1441         * langhooks.h (lang_hooks_for_types): New.
1442         (struct lang_hooks): Add it.
1443         * tree.c (make_lang_type_fn, make_lang_type): Remove.
1444         * tree.h (make_lang_type_fn, make_lang_type): Remove.
1445 config:
1446         * alpha/alpha.c: Include langhooks.h.
1447         (alpha_build_va_list): Use langhook.
1448         * d30v/d30v.c: Include langhooks.h.
1449         (d30v_build_va_list): Use langhook.
1450         * i386/i386.c: Include langhooks.h.
1451         (ix86_build_va_list): Use langhook.
1452         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
1453         * s390/s390.c: Include langhooks.h.
1454         (s390_build_va_list): Use langhook.
1455         * stormy16/stormy16.c: Include langhooks.h.
1456         (stormy16_build_va_list): Use langhook.
1457
1458 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1459
1460         PR c++/5964
1461         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
1462         attributes.
1463         (length): Compute variable length for branches/calls/jumps here.
1464         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
1465         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
1466         define branch_type attribute.
1467         (divsi3_sp32): Maximum length is 6 not 7.
1468         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1469         call_address_untyped_struct_value_sp32,
1470         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
1471         * config/sparc/sparc.c (empty_delay_slot): New function.
1472         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
1473         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
1474
1475 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1476
1477         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
1478         nonzero_bits if not needed.
1479         (nonzero_bits) [XOR]: Likewise.
1480         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
1481         reg_last_set_mode and mode are both MODE_INT, but not equal.
1482         (record_value_for_reg): Compute reg_last_set_nonzero_bits
1483         in nonzero_bits_mode for MODE_INT modes.
1484
1485 2002-03-28  Richard Henderson  <rth@redhat.com>
1486
1487         PR target/5715
1488         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1489         to GAS.  Correct drift between alternatives.
1490
1491 2002-03-28  Richard Henderson  <rth@redhat.com>
1492
1493         PR target/6087
1494         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
1495
1496 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
1497
1498         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
1499         emulation to the linker.
1500
1501 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
1502
1503         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
1504         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1505
1506 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
1507
1508         * combine.c (simplify_and_const_int): Make sure to apply mask
1509         when force_to_mode returns a constant integer.  PR3311.
1510
1511 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1512
1513         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
1514
1515 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1516
1517         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
1518         and Objective-C Dialect Options.
1519
1520 2002-03-28  Richard Henderson  <rth@redhat.com>
1521
1522         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
1523         comparison should be done vs !=0 not >0 return code.  Tidy cases.
1524
1525 2002-03-28  Richard Henderson  <rth@redhat.com>
1526
1527         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
1528         on to c_expand_body.
1529         * c-tree.h (finish_function): Update decl.
1530         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
1531
1532 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1533
1534         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
1535
1536 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
1537
1538         * rtlanal.c: Include flags.h
1539         (may_trap_p): Do not mark FP operations if trapping
1540         if !flag_trapping_math
1541         * Makefile.in (rtlanal.o): Add dependency on flag.h
1542         * ifcvt.c (noce_operand_ok): Avoid the lameness.
1543
1544 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
1545
1546         * mips.md: Use dconst1, not 1.0, as first argument of
1547         REAL_VALUE_LDEXP.  Don't use union real_extract.
1548
1549 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
1550
1551         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
1552         rather than $target.  Heed program_prefix and
1553         program_transform_name.  Search for gas in cross-compiler case too.
1554         "test -x" rather than "test -f".
1555         (gcc_cv_ld): Likewise.
1556         (gcc_cv_nm): Heed program_prefix and program_transform_name.
1557         (gcc_cv_objdump): Likewise.
1558         * configure: Regenerate.
1559
1560 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1561
1562         * Makefile.in (attribs.o): Update.
1563         * attribs.c: Include langhooks.h.
1564         (decl_attributes): Use langhook.
1565         * c-decl.c (insert_default_attributes): Rename.
1566         * c-tree.h (c_insert_default_attributes): New.
1567         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
1568         (LANG_HOOKS_INITIALIZER): Update.
1569         * langhooks.h (struct lang_hooks): New hook.
1570         * tree.h (insert_default_attributes): Remove.
1571 objc:
1572         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1573
1574 2002-03-27  Andreas Schwab  <schwab@suse.de>
1575
1576         * config/i386/i386.c (classify_argument): Also check for
1577         QUAL_UNION_TYPE.
1578
1579 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1580
1581         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
1582         any more.
1583
1584 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1585
1586         * i960.md (ret): Set PC.
1587         (nonlocal_goto): Fix expander.
1588         * builtins.c (epxand_builin_longjmp): Check that we've emitted
1589         some jump or call.
1590
1591 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
1592
1593         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
1594         of libcall regions.
1595
1596 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1597
1598         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
1599         assigning to BLOCK_FOR_INSN directly.
1600
1601 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
1602
1603         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
1604
1605 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1606
1607         * c-common.c (c_expand_expr): Fix prototype.
1608         * c-common.h (c_expand_expr): Always declare, update.
1609         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1610         * c-objc-common.c (c_objc_common_init): No global hook.
1611         * expr.c (expand_expr): Use langhook.
1612         * expr.h (enum expand_modifier): Conditionally declare.
1613         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
1614         (LANG_HOOKS_INITIALIZER): Update.
1615         * langhooks.c (lhd_expand_expr): New.
1616         * langhooks.h (struct lang_hooks): New hook.
1617         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
1618         (lang_independent_init): Don't default hook.
1619 objc:
1620         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1621
1622 2002-03-27  Richard Henderson  <rth@redhat.com>
1623
1624         PR target/6054
1625         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
1626         TARGET_CONST_GP.  Simplify conditions.
1627
1628 2002-03-27  Richard Henderson  <rth@redhat.com>
1629
1630         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1631         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
1632         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
1633
1634 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
1635
1636         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
1637         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
1638         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
1639         Remove unnecessary masks.
1640         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
1641         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
1642         -mwindows, -mdll switches and their negations.
1643
1644 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1645
1646         * gcc-common.c (lang_mark_false_label_stack): Remove.
1647         * ggc.h (lang_mark_false_label_stack): Similarly.
1648
1649 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1650
1651         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
1652
1653         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
1654         or __rtems_ is defined.
1655
1656 2002-03-26  Richard Henderson  <rth@redhat.com>
1657
1658         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
1659         if a non-trivial load was emitted.
1660         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
1661         in high+extra+low case.
1662
1663 2002-03-26  Richard Henderson  <rth@redhat.com>
1664
1665         * config.gcc (sparc*-solaris): Use float_format=sparc.
1666
1667 2002-03-26  Richard Henderson  <rth@redhat.com>
1668
1669         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1670         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
1671         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
1672         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
1673         (WINT_TYPE_SIZE): Fix at 32.
1674
1675 2002-03-26  Richard Henderson  <rth@redhat.com>
1676
1677         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
1678         until after eh landing pad generation.
1679         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
1680         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
1681
1682 2002-03-26  Richard Henderson  <rth@redhat.com>
1683
1684         * expr.h (ADD_PARM_SIZE): One more convert for INC.
1685
1686 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
1687
1688         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
1689         and warning switches.
1690         (cc1_options):  Likewise.
1691
1692 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
1693
1694         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
1695         Restore more of the signal context.  Set no_reg_stack_frame.
1696         * config/ia64/unwind-ia64.c (unw_state_record):
1697         Add no_reg_stack_frame, comments.
1698         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
1699         (uw_update_context): Adjust bsp when unwinding from leaf,
1700         but not signal frame.
1701
1702 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
1703
1704         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
1705
1706 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1707
1708         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
1709
1710 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1711
1712         PR target/5621
1713         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
1714         "Add a pool_range attribute", which was lost during the ARM/Thumb
1715         merge.
1716
1717 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1718
1719         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
1720         a register into the MAC16 accumulator.
1721
1722 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
1723
1724         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
1725         (Warning Options): Document -Wswitch-enum.
1726         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
1727         -Wswitch.
1728         (warn_switch_enum): Define variables.
1729         * flags.h (warn_switch_enum): Declare variables.
1730         * stmt.c (expand_end_case_type): When warn_switch_enum /
1731         -Wswitch-enum, perform switch checks.
1732         Fix PR c/5044.
1733
1734 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1735
1736         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
1737         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
1738         (reload_muladdsi_compare0_scratch): Delete.
1739
1740 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
1741
1742         * doc/install.texi (*-*-freebsd*): Update.
1743
1744 2002-03-26  Richard Henderson  <rth@redhat.com>
1745
1746         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
1747         (SUB_PARM_SIZE): Cast DEC to ssizetype.
1748
1749         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
1750         types from the normal argument frame.
1751
1752         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
1753         variable sized objects by reference.
1754         (sparc_va_arg): Receive them by reference too.
1755
1756 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
1757
1758         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
1759         code to not restoring global registers.
1760
1761 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1762
1763         * Makefile.in (ggc-common.o): Update.
1764         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
1765         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1766         * c-tree.h (c_mark_tree): New.
1767         * ggc-common.c: Include langhooks.h.
1768         (gcc_mark_trees): Use new langhook.
1769         * ggc-callbacks.c: Delete file.
1770         * ggc.h (lang_mark_tree): Remove.
1771         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
1772         (LANG_HOOKS_INITIALIZER): Update.
1773         * langhooks.h (struct lang_hooks): New hook.
1774 objc:
1775         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1776
1777 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1778
1779         * doc/cpp.texi: Exclude entire Top node from printed manual.
1780         Move option index after directive index.  Insert page breaks
1781         before GFDL and concept index.  Index environment variables
1782         with command line options.
1783         * doc/cppenv.texi: Use @vtable for environment variable list.
1784         Add paragraph explaining semantics of empty elements in path
1785         variables.  Exclude a cross-reference to Fishkill from the
1786         manpage.  Remove an unnecessary cross-reference of the entry
1787         right above the referer.  Don't use @anchor in text that goes
1788         into manpage.
1789         * doc/cppopts.texi: Cross-reference the environment variables
1790         section, not the specific environment variable, for consistency.
1791
1792 2002-03-25  Richard Henderson  <rth@redhat.com>
1793
1794         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
1795         anywhere in the block.  Don't refer to insns that have been
1796         removed from the chain.  Iterate backward through the new insns.
1797         Don't refer to edges that have been removed.
1798
1799 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
1800
1801         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
1802         test for overflow of constant.
1803
1804 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
1805
1806         PR target/2623
1807         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
1808         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
1809         these patterns on arm_archv4.
1810
1811 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
1812
1813         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
1814         int".
1815
1816 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1817
1818         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
1819         float_handled, float_handler, float_signal, set_float_handler,
1820         and do_float_handler.  Set handler for SIGFPE to crash_signal.
1821         * toplev.h: Don't prototype do_float_handler.
1822
1823         * c-lex.c: Fold parse_float into lex_number.  Make warning
1824         about portability of hex float constants more informative, and
1825         don't issue it on top of a syntax error.
1826         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
1827         their callers.
1828         * real.h: Define REAL_VALUE_ABS here...
1829         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
1830         simplify_unary_real, simplify_binary_real, and
1831         simplify_binary_is2orm1 into their callers.
1832         * tree.c: Fold build_real_from_int_cst_1 into caller.
1833
1834         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
1835
1836         * tsystem.h: Include float.h here...
1837         * libgcc2.c: ... not here.
1838
1839 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
1840
1841         Fixes for: PR bootstrap/3591, target/5676
1842         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
1843         defined.  Do not disable exceptions or rtti.
1844         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
1845         mcore.h.  Disable exceptions and rtti, since they are not
1846         supported by EPOC.
1847
1848 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
1849
1850         * c-decl.c (maybe_build_cleanup): Remove.
1851         * expr.c (expand_expr): Use langhook.
1852         * langhooks-def.h (lhd_return_null_tree,
1853         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
1854         (LANGHOOKS_INITIALIZER): Update.
1855         * langhooks.c (lhd_return_null_tree): New.
1856         * langhooks.h (struct lang_hooks): New hook.
1857         * tree-inline.c (initialize_inlined_parameters): Use langhook.
1858         * tree.h (maybe_build_cleanup): Remove.
1859
1860 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1861
1862         * regrename.c (build_def_use): Move recog_memoized
1863         before extract_insn.
1864
1865 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1866
1867         PR target/6043
1868         * expr.c (emit_group_store): Handle storing into CONCAT.
1869
1870 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
1871
1872         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
1873         corresponding MATCH_DUP.
1874
1875 2002-03-24  Richard Henderson  <rth@redhat.com>
1876
1877         * unroll.c (unroll_loop): Zero label_map.
1878
1879         * gcse.c: Include except.h.
1880         * Makefile.in (gcse.o): Update.
1881
1882 2002-03-24  Richard Henderson  <rth@redhat.com>
1883
1884         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
1885         Do resolve_unique_section before shared data clause.
1886
1887 2002-03-24  Richard Henderson  <rth@redhat.com>
1888
1889         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
1890
1891 2002-03-24  Richard Henderson  <rth@redhat.com>
1892
1893         * recog.c (peephole2_optimize): Split blocks when EH insns are
1894         generated in the middle of a block.  Do global life update if
1895         zapped EH edges.
1896
1897 2002-03-24  Richard Henderson  <rth@redhat.com>
1898
1899         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
1900
1901 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1902
1903         preprocessor/3951
1904         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
1905         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
1906         (init_dependency_output): Don't make no_output decision here.
1907
1908 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
1909
1910         * stmt.c (check_for_full_enumeration_handling): Remove tests of
1911         warn_switch.  Update description.
1912         (expand_end_case_type): Call check_for_full_enumeration_handling
1913         when warn_switch.
1914
1915 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1916
1917         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
1918         (m68hc11_split_move): Call it to see if the source and destination
1919         operands use the same direction auto inc/dec mode, otherwise make the
1920         source an offsetable memory operand and generate an add.
1921
1922 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
1923
1924         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
1925         register for operand 2.
1926         ("*subsi3_zero_extendqi"): Likewise.
1927         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
1928         bits so that it is compatible with a pop.
1929         ("*andhi3_gen"): Likewise.
1930         ("xorhi3"): Likewise.
1931
1932 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1933
1934         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
1935         -pedantic here...
1936         (cpp_post_options): ... not here.
1937
1938 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
1939             Aldy Hernandez  <aldyh@redhat.com>
1940
1941         Removal of separate preprocessor cpp0.
1942
1943         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
1944         cpp0, install-common): Update.
1945         * c-common.c (flag_preprocess_only): New.
1946         (c_common_init): Preprocess for -E.
1947         * c-common.h (flag_preprocess_only): New.
1948         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
1949         * c-objc-common.c (c_init_decl_processing): Exit quickly
1950         for NULL return from c_common_init.
1951         * cpplib.h (cpp_preprocess_file): New.
1952         * cppmain.c (main, general_init, pfile, progname): Remove.
1953         (do_preprocessing): Rename cpp_preprocess_file, don't call
1954         cpp_finish.  Don't close stdout here.
1955         (setup_callbacks): Update prototype.
1956         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
1957         Update.
1958         * tradcpp.c (main): Ignore -quiet.
1959 objc:
1960         * lang-specs.h (default_compilers): Preprocess with cc1obj.
1961
1962 2002-03-24  Richard Henderson  <rth@redhat.com>
1963
1964         PR optimization/5742
1965         * machmode.def: Add inner mode field to complex modes.
1966         * config/mips/mips.c (mips_function_value): Always define.  Add
1967         new argument to handle libcalls.
1968         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
1969         (FUNCTION_VALUE): Likewise.
1970         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
1971         * config/mips/mips-protos.h: Update.
1972
1973 2002-03-23  Richard Henderson  <rth@redhat.com>
1974
1975         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
1976         * config/sparc/sparc-protos.h: Update.
1977         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
1978
1979 2002-03-23  Richard Henderson  <rth@redhat.com>
1980
1981         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
1982         _start or _init begins the text segment.
1983
1984 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
1985
1986         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
1987         not HOST_WIDEST_INT.
1988         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
1989
1990 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
1991
1992         PR java/5489
1993         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
1994         operand argument to output_return_instruction.
1995         * arm.c (arm_print_operand, case 'd'): If the operand is
1996         const_true_rtx then just return.
1997         (arm_print_operand, case 'D'): If the operand is const_true_rtx
1998         then abort.
1999
2000 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2001
2002         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2003         (Warning Options): Document -Wswitch-default.
2004         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2005         -Wswitch.
2006         (warn_switch_default): Define variable.
2007         (warn_switch): Update comment.
2008         * flags.h (warn_switch_default): Declare variable.
2009         (warn_switch): Update comment.
2010         * stmt.c (expand_end_case): Check for and, when
2011         warn_switch_no_default, warn of a missing default case.
2012
2013 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2014
2015         * real.h (N): Special case 128 bit doubles.
2016
2017         * combine.c (simplify_comparison): When widening modes, ignore
2018         sign extension on CONST_INTs.
2019
2020 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2021
2022         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2023         passed to adjust_address.  Fix comment formatting.
2024
2025
2026 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2027
2028         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2029         Always make REAL_VALUE_TYPE a struct containing an array of
2030         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2031         big it is.  Don't declare or use union real_extract.
2032
2033         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2034         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2035         (print_operand), config/arm/arm.c (output_move_double),
2036         config/arm/arm.md (consttable_4, consttable_8),
2037         config/romp/romp.c (output_fpops), config/s390/s390.h
2038         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2039         (xtensa_output_literal): Don't use union real_extract.
2040
2041         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2042         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2043         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2044         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2045         (PRINT_OPERAND): Don't use local version of union
2046         real_extract.
2047
2048         * config/convex/convex.c (check_float_value), config/vax/vax.c
2049         (vax_float_literal), config/m88k/m88k.md (divdf3),
2050         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2051         config/pdp11/pdp11.c (output_move_quad): Don't do host
2052         arithmetic on target floating point quantities.
2053
2054         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2055         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2056
2057         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2058         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2059
2060         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2061         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2062         INFINITY.
2063         * print-rtl.c (print_rtx): Disable code which needs
2064         floating-point emulator.
2065         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2066         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2067         depending on HOST_FLOAT_FORMAT to be defined properly.
2068
2069         * config/1750a/1750a.c (get_double, float_label): Delete.
2070         (print_operand): Delete huge commented-out chunk.  Use
2071         REAL_VALUE_TO_DECIMAL.
2072         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2073         functions.
2074         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2075         IEEE_FLOAT_FORMAT.
2076         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2077         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2078         * config/m88k/m88k.c (real_power_of_2_operand,
2079         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2080         real_extract out of the union; run the input through
2081         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2082         from that into the union.
2083         * config/pdp11/pdp11.c (output_move_double): Rearrange
2084         parentheses to make automatic indenter happy.
2085
2086         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2087         Point" and rewrite to describe current situation.  Also adjust
2088         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2089         match code.
2090         * doc/rtl.texi: Adjust cross reference.
2091
2092 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2093
2094         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2095         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2096         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2097         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2098         prevent use of sp as a reload register.
2099         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2100         non_acc_reg_operand.
2101         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2102         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2103         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2104         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2105
2106 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2107
2108         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2109         * cpplex.c (unterminated): Delete.
2110         (parse_string): No string literal may extend over multiple
2111         lines.  Suppress the error when preprocessing assembly.
2112         * cppmain.c (scan_translation_unit): Strings are single-line.
2113
2114         * doc/cpp.texi: Update to match.
2115
2116 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2117
2118         PR optimization/5854
2119         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2120         Shut up warnings.
2121         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2122         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2123         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2124         const0 if scratch register was not allocated.
2125         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2126         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2127         with GEN_INT (...).
2128         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2129         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2130         with GEN_INT (...) everywhere.  Remove constraints in define_split
2131         patterns.
2132         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2133         require scratch register for setting 0 into regs/non-pushable memory.
2134
2135 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2136
2137         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2138         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2139
2140 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2141
2142         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2143         * cppinit.c (cpp_create_reader):  On by default.
2144         (cpp_handle_option):  Handle -W[no-]endif-labels.
2145         (cpp_post_options):  Also enable if -pedantic.
2146         * cpplib.c (do_else):  Use it.
2147         (do_endif):  Likewise.
2148         * doc/cppopts.texi:  Document new option.
2149         * doc/invoke.texi:  Document new option.
2150
2151 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2152
2153         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2154         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2155
2156 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2157
2158         * flow.c (calculate_global_regs_live): Clear aux fields of
2159         ENTRY and EXIT.
2160
2161 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2162
2163         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2164         REG or MEM subregs, pass rtx * instead of rtx to it.
2165         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2166         rtx * instead of rtx to alter_subreg.
2167         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2168         * config/pj/pj.c (pj_output_rval): Likewise.
2169
2170 2002-03-22  Richard Henderson  <rth@redhat.com>
2171
2172         PR target/3177
2173         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2174         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2175         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2176         (ia64_expand_prologue): Look at int_regs, not words, for number
2177         of incomming int regs.
2178
2179 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2180
2181         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2182
2183 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2184
2185         * toplev.c (flag_loop_optimize, flag_crossjumping):
2186         New static variables.
2187         (rest_of_compilation): Conditionalize crossjumping and
2188         loop optimizer.
2189         (parse_options_and_default_flags): Default loop_optimize and
2190         crossjumping.
2191         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2192         * invoke.texi (crossjumping, loop-optimize): Document.
2193
2194 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2195
2196         * real.c (eiisneg): Move outside #ifdef NANS.
2197
2198 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2199
2200         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2201         frequencies match; avoid match on different loop depths.
2202         (try_crossjump_to_bb): Kill tests that no longer brings time
2203         savings.
2204         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2205         updating code.
2206         (split_edge): Likewise.
2207
2208         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2209         variable.
2210
2211         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2212         * cfgrtl.c: Include insn-config.h
2213         (split_block) Dirtify block in presence of conditional execution
2214
2215 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2216
2217         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2218         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2219         (function_arg): Constify CUMULATIVE_ARGS.
2220         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2221         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2222         (UNITS_PER_DOUBLE): New macro.
2223         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2224         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2225         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2226         fp_regs and stack_words.
2227         (EABI_FLOAT_VARARGS_P): New macro.
2228         * config/mips/mips.c (struct mips_arg_info): New.
2229         (mips_arg_info): New function.
2230         (function_arg_advance): Use it.  Add adjustment instructions here
2231         rather than in function_arg.
2232         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2233         for VOIDmode at the beginning of the function.
2234         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2235         (function_arg_pass_by_reference): Likewise.
2236         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2237         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2238         (mips_va_start): Likewise.  Use the new stack_words field of
2239         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2240         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2241         doubles and other types, aligning the overflow pointer for non-doubles
2242         too.  Remove some code duplication.  Replace hard-coded constants.
2243
2244 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2245
2246         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2247         (CLASS_UNITS): Undefine.
2248         (CLASS_MAX_NREGS): Use FP_INC.
2249         * config/mips/mips.c (compute_frame_size): Likewise.
2250         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2251
2252 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2253
2254         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2255         prototype, and handle lexing numbers and identifiers.
2256         (parse_identifier): Update to new form of parse_slow.
2257         (parse_number): Fast path only, use parse_slow otherwise.
2258         (_cpp_lex_direct): Update calls to parse_number.
2259
2260 2002-03-21  DJ Delorie  <dj@redhat.com>
2261
2262         * bb-reorder.c (make_reorder_chain_1): Protect against
2263         when redundant edges are omitted.
2264         * predict.c (dump_prediction): Likewise.
2265
2266 2002-03-21  Richard Henderson  <rth@redhat.com>
2267
2268         PR target/5996
2269         * fixinc/inclhack.def (solaris_stdio_tag): New.
2270         * fixinc/fixincl.x: Regenerate.
2271
2272 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2273
2274         PR c/5597
2275         * c-typeck.c (process_init_element): Flag non-static
2276         initialization of a flexible array member as illegal.
2277
2278 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2279
2280         * config/rs6000/t-linux64: New.
2281         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2282         t-ppccomm.  Use t-rs6000 and t-linux64.
2283         (powerpc64-*-gnu* <tmake_file>): Likewise.
2284         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2285         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2286         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2287
2288 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2289
2290         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2291         flag_really_no_inline instead of optimize == 0.
2292
2293         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2294
2295         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2296
2297         * flags.h (flag_really_no_inline): New.
2298
2299         * c-common.c (c_common_post_options): Initialize
2300         flag_really_no_inline.
2301
2302         * toplev.c (flag_really_no_inline): New.
2303
2304 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2305
2306         * config/avr/avr.md (length): Fix length computation for
2307         conditional branches.
2308
2309 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2310
2311         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2312         sdbout.o, profile.o): Update.
2313         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2314         langhook.
2315         * c-common.h (gettags): Move here from tree.h.
2316         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2317         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2318         * dbxout.c (dbxout_init): Use getdecls langhook.
2319         * expr.c (expand_expr): Use insert_block langhook.
2320         * fold-const.c: Include langhooks.h.
2321         (fold_range_test, fold_binary_op_with_conditional_arg,
2322         fold): Use global_bindings_p langhook.
2323         * integrate.c (expand_inline_function): Use insert_block langhook.
2324         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2325         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2326         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2327         LANG_HOOKS_GETDECLS): New.
2328         (LANG_HOOKS_INITIALIZER): Update.
2329         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2330         langhook.
2331         * langhooks.h (struct lang_hooks_for_decls): New.
2332         (struct lang_hooks): Update.
2333         * profile.c: Include langhooks.h.
2334         (output_func_start_profiler): Use new langhooks.
2335         * sdbout.c: Include langhooks.h.
2336         (sdbout_init, sdbout_finish): Use getdecls langhook.
2337         * stmt.c: Include langhooks.h.
2338         (expand_fixup, fixup_gotos): Use new langhooks.
2339         * stor-layout.c: Include langhooks.h.
2340         (variable_size): Use global_bindings_p langhook.
2341         * toplev.c (compile_file): Use getdecls langhook.
2342         * tree-inline.c (remap_block): Use insert_block langhook.
2343         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2344         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2345
2346 2002-03-21  Richard Henderson  <rth@redhat.com>
2347
2348         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2349         constants in .data when -fpic.
2350
2351 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2352
2353         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2354         where appropriate.
2355
2356 2002-03-21  Tom Tromey  <tromey@redhat.com>
2357
2358         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2359
2360 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2361
2362         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2363
2364         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2365
2366 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2367             Richard Henderson  <rth@redhat.com>
2368
2369         PR c/5354
2370         * c-common.c (c_expand_expr): Preserve result of a statement
2371         expression if needed.
2372
2373 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2374
2375         PR bootstrap/4195
2376         * genrecog.c (maybe_both_true_mode): Remove.
2377         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2378         * machmode.def (Pmode): Likewise.
2379
2380 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2381
2382         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2383         (nonlocal_mentioned_p_1): New function.
2384         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2385         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2386         (mark_constant_function): Recognize pure functions.
2387         * rtl.h (global_reg_mentioned_p): New prototype.
2388         * rtlanal.c (global_reg_mentioned_p,
2389         global_reg_mentioned_p_1): New function.
2390
2391 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2392
2393         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2394         UNIX assert.h.
2395         * fixinc/fixincl.x: Regenerate.
2396
2397 2002-03-20  Jason Merrill  <jason@redhat.com>
2398
2399         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2400
2401 2002-03-20  Michael Meissner  <meissner@redhat.com>
2402
2403         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2404         -fstrict-aliasing.
2405
2406 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2407
2408         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2409         ".literal_position" directive before the constant pool.
2410
2411 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2412
2413         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2414         Add Craig Rodrigues.
2415         Add Brad Lucier to testers.
2416
2417 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2418
2419         PR target/4792
2420         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2421         to if_then_else.
2422         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2423         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2424         instead of insn_extract.
2425
2426 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2427
2428         PR bootstrap/4192
2429         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2430
2431         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2432         stmt if some case has been output.
2433
2434 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2435
2436         PR c/5972
2437         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
2438         movsfcc_1, movdfcc_1): Add %O2.
2439         * config/i386/i386.c (print_operand): Handle %ON.
2440         Print . before float condition codes in Sun as cmov syntax.
2441         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
2442         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
2443         no longer true.
2444
2445 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
2446
2447         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2448         return instruction if PC was popped.
2449
2450 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2451
2452         * config/xtensa/xtensa.md: Remove unused type attributes.
2453         (adddi_carry, subddi_carry): Change type attribute to "multi".
2454
2455 2002-03-19  Dale Johannesen  <dalej@apple.com>
2456
2457         PR optimization/5999, middle-end/5731
2458         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2459         multiplications by reciprocals.
2460
2461 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2462
2463         * Makefile.in: Update.
2464         * c-common.c: Include langhooks.h.
2465         (inline_forbidden_p): Use new hook.
2466         * diagnostic.c: Include langhooks.h.
2467         (format_with_decl, announce_function,
2468         default_print_error_function): Use new hook.
2469         * dwarf2out.c (dwarf2_name): Use new hook.
2470         * function.c: Include langhooks.h.
2471         (init_function_start): Use new hook.
2472         * langhooks-def.h (lhd_decl_printable_name): New.
2473         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
2474         (LANGHOOKS_INITIALIZER): Update.
2475         * langhooks.c (lhd_decl_printable_name): New.
2476         * langhooks.h (struct lang_hooks): New hook.
2477         * toplev.c (decl_name, decl_printable_name): Remove.
2478         (open_dump_file): Use new hook.
2479         (process_options): Remove old hook.
2480         * tree.h (decl_printable_name): Remove.
2481 objc:
2482         * objc-act.c (objc_init): Remove old hook.
2483         (objc_printable_name): Export.
2484         * objc-act.h (objc_printable_name): New.
2485         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2486
2487 2002-03-19  Jim Blandy  <jimb@redhat.com>
2488
2489         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
2490         the start_source_file debug hook, not the current line number.
2491
2492 2002-03-19  Richard Henderson  <rth@redhat.com>
2493
2494         * flow.c (EH_USES): Provide default.
2495         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
2496         * doc/tm.texi (EH_USES): New.
2497
2498         * config/ia64/ia64.c (ia64_eh_uses): New.
2499         * config/ia64/ia64-protos.h: Update.
2500         * config/ia64/ia64.h (EH_USES): New.
2501
2502 2002-03-19  Richard Henderson  <rth@redhat.com>
2503
2504         * varasm.c (output_constant_def): Fix stupid typo.
2505
2506 2002-03-19  Richard Henderson  <rth@redhat.com>
2507
2508         PR 5879
2509         * except.c (current_function_has_exception_handlers): New.
2510         * except.h: Declare it.
2511         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
2512         Combine tests that disable all sibcalls for the function.
2513
2514 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
2515
2516         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
2517         for INTEGER_CST.
2518
2519 2002-03-19  Richard Henderson  <rth@redhat.com>
2520
2521         PR 5977, 5991
2522         * config/ia64/ia64.c: Revert 2002-03-01 patch.
2523         * config/ia64/ia64.h (INIT_EXPANDERS): New.
2524
2525 2002-03-19  Jim Blandy  <jimb@redhat.com>
2526
2527         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
2528         name, even if the replacement list contains no tokens, as required
2529         by Dwarf.
2530
2531 2002-03-19  Jason Merrill  <jason@redhat.com>
2532
2533         * varasm.c (globalize_decl): Get the name from the RTL, not
2534         DECL_ASSEMBLER_NAME.
2535
2536         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
2537
2538 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
2539
2540         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
2541         subdi_carry): Define.
2542
2543 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2544
2545         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
2546         about -fpic/-fPIC if extra_warnings set.
2547
2548 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2549
2550         * expr.c (expand_expr): Sign-extend CONST_INT generated from
2551         TREE_STRING_POINTER.
2552         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
2553
2554 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2555
2556         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
2557         in favor of SP if FRAME_POINTER_REQUIRED is false.
2558
2559 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
2560
2561         * emit-rtl.c (gen_int_mode): New function.
2562         * rtl.h: Prototype for it.
2563         * combine.c (make_extraction, simplify_comparison), expmed.c
2564         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
2565         (convert_modes, store_field), optabs.c (expand_fix),
2566         simplify-rtx.c (neg_const_int, simplify_unary_real),
2567
2568         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
2569         Use it instead of GEN_INT (trunc_int_for_mode (...)).
2570
2571 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
2572
2573         PR c/5656
2574         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
2575         convert_parm_for_inlining.
2576         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2577         Define.
2578         * langhooks-def.h: Likewise.
2579         * objc/objc-lang.c: Likewise.
2580         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
2581         function.
2582         * tree-inline.c (initialize_inlined_parameters):
2583         Call convert_parm_for_inlining lang hook if needed.
2584         * c-typeck.c (c_convert_parm_for_inlining): New function.
2585         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
2586
2587 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
2588
2589         * calls.c (precompute_arguments): Do not assume that temporaries
2590         can be destroyed after expanding the argument.
2591         (expand_call): Likewise.
2592
2593 2002-03-15  Eric Christopher  <echristo@redhat.com>
2594
2595         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
2596         Fix register preference on last change.
2597         * config/mips/mips.c (mips_return_in_memory): New function.
2598         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
2599         * config/mips/mips-protos.h: Declare.
2600         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
2601         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
2602
2603 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
2604
2605         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
2606         a register too.
2607         (anddi3, iorsi3): Likewise.
2608
2609         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
2610         use %gprel for symbols that are going to be placed in linkonce
2611         sections.
2612
2613         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
2614         RETURN_ADDRESS_POINTER_REGNUM to $ra.
2615         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
2616         not needed.  Disregard leaf_function_p().
2617         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
2618         mips16 frame pointer.
2619         * config/mips/mips.md (store ra): Only to small SP offsets.
2620         2001-08-22  Graham Stott  <grahams@redhat.com>
2621         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
2622         return a REG rtx for the return address register.
2623
2624 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
2625
2626         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
2627         constant-pool addresses as "mode-dependent".
2628         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
2629
2630 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
2631
2632         PR target/5740
2633         * expr.c (emit_group_load): Use extract_bit_field if
2634         needed for CONCAT arguments.
2635
2636 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
2637
2638         PR target/4863
2639         * arm.md (tablejump): Make this a define_expand.  For PIC add the
2640         offset to the base of the table.
2641         (thumb_tablejump): Matcher for Thumb tablejump insn.
2642         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
2643         as the difference of two labels.
2644         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2645         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
2646         tables in the code.
2647         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2648         * arm.c (get_jump_table_size): If the table is not in the text
2649         section, return zero.
2650
2651 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
2652
2653         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
2654         of gen_rtx_SUBREG.
2655         (arm_reload_out_hi): Use gen_lowpart instead of
2656         gen_rtx_SUBREG to access QImode components.
2657         * config/arm/arm.md: Disable zero_extend split for QImode
2658         subregs in BIG_ENDIAN mode.
2659         (storehi_bigend): Match use of least significant byte.
2660         (storeinthi): Remove extraneous SUBREG.
2661         Add missing construction of operands[2].
2662         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
2663         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
2664         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
2665
2666 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
2667
2668         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
2669         any_operand.
2670
2671 2002-03-17  Richard Henderson  <rth@redhat.com>
2672
2673         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
2674         explicitly.
2675
2676 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2677
2678         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
2679         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
2680
2681 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2682
2683         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
2684
2685         * predict.c (estimate_bb_frequencies): Delete unused variables.
2686
2687 2002-03-17  Richard Henderson  <rth@redhat.com>
2688
2689         * config/ia64/ia64.c (ia64_attribute_table): Move before
2690         targetm definition.  Make static.
2691
2692 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2693
2694         * c-common.h (yyparse, c_common_parse_file): New.
2695         * c-lang.c: Include c-common.h.
2696         (LANG_HOOKS_PARSE_FILE): Redefine.
2697         * c-lex.c: Include c-common.h.
2698         (yyparse): Rename c_common_parse_file.  Call yyparse.
2699         * c-parse.in (yyparse): Remove macro.
2700         * c-tree.h (yyparse_1): Remove.
2701         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
2702         (LANG_HOOKS_INITIALIZER): Update.
2703         * langhooks.h (struct lang_hoooks): New hook parse_file.
2704         * toplev.c (compile_file): Use parse_file hook.
2705         * tree.h (yyparse): Remove.
2706         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2707
2708 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2709
2710         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
2711         float_truncate, not fix.
2712         ("*truncdfsf2_real"): Ditto.
2713         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
2714
2715         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
2716
2717 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
2718
2719         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
2720         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
2721         where appropriate.  Make the second reference to
2722         leaf_function_p a function call, as intended.  Reindented.
2723
2724         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
2725         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
2726
2727         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
2728         add register to non-constant into sp.
2729
2730         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
2731         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
2732         (mips16_gp_pseudo_rtx): Lose.
2733         (INIT_EXPANDERS): Deleted.
2734         * config/mips/mips.c (mips_init_machine_status): New.
2735         (mips_free_machine_status): New.
2736         (mips_mark_machine_status): New.
2737         (override_options): Set them.
2738         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
2739         (struct machine_function): ... new.  Replaced all references.
2740         (mips_add_gc_roots): Don't mark them.
2741         (embedded_pic_fnaddr_reg): New, extracted from...
2742         (embedded_pic_offset): ... here.
2743         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
2744         (movsi): Likewise.
2745
2746 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2747
2748         * cppinit.c: Revert -MD removal.
2749
2750 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2751
2752         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
2753         soft registers by default for 68HC12.
2754         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
2755         when compiling with -fomit-frame-pointer.
2756         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
2757         (expand_epilogue): Likewise.
2758         (m68hc11_gen_rotate): Use exg when rotating by 8.
2759
2760 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2761
2762         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
2763         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
2764         (splits): Remove unused add splits.
2765         ("*addhi3_68hc12"): Tune constraints.
2766         ("addhi_sp"): Try to use X instead of Y in all cases and if the
2767         constant fits in 8-bits and D is dead use abx/aby instructions.
2768         ("*addhi3"): Remove extern declaration of ix_reg.
2769         ("*subsi3"): Optimize and provide new split.
2770         ("subhi3"): Cleanup.
2771         ("*subhi3_sp"): Avoid saving X if we know it is dead.
2772         (arith splits): For 68hc12 save the address register on the stack
2773         and do the arithmetic operation with a pop.
2774
2775 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2776
2777         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
2778         allocating QImode in address registers.
2779         ("*movqi_m68hc11"): Likewise.
2780
2781 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
2782
2783         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
2784
2785 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2786
2787         * cppinit.c (print_help): Display -MD and -MMD.
2788         Don't display usage string.  Update assertion syntax and
2789         typo.
2790         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
2791         (cpp_handle_option): Update.
2792
2793 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
2794
2795         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
2796         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
2797         and define it so that regardless of target CPU size,
2798         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
2799         of "int" rather than "long."
2800
2801 2002-03-15  Richard Henderson  <rth@redhat.com>
2802
2803         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
2804         size as a tree.
2805
2806 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2807
2808         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
2809         ("tstqi" split): Avoid using memory for tstqi on address register.
2810         (splits): Remove constraints.
2811         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
2812         ("cmpdf", "cmpsf"): Remove since not used.
2813         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
2814         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
2815
2816 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2817
2818         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
2819         ("neghi2"): Tighten constraints.
2820         ("one_cmplsi2"): Optimize and simplify split.
2821         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
2822
2823 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2824
2825         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
2826         and split of AND operation to clear the upper bits.
2827         ("*logicalsi3_zextqi"): Likewise.
2828         ("*logicallhi3_zexthi_ashift8"): Likewise.
2829         ("*logicalsi3_silshr16"): Likewise.
2830         ("logicalsi3_silshl16"): Likewise.
2831         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
2832
2833 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2834
2835         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
2836         (m68hc11_indirect_p): New function.
2837         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
2838         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
2839         TARGET_M6812.
2840         (asm_print_register): Likewise.
2841         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
2842         (m68hc11_indirect_p): Declare.
2843         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
2844         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
2845         (TARGET_SWITCHES): New option -mrelax.
2846         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
2847         destination.
2848         ("iorsi3", "xorsi3"): Likewise.
2849         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
2850         ("*andhi3_mem"): New to handle destination in memory with bclr
2851         and a scratch register.
2852         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
2853         ("*andhi3_const"): New when operand2 is constant.
2854         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
2855         ("*andhi3_gen"): Cleanup of the old "andhi3".
2856         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
2857         ("xorqi3"): Update constraints.
2858
2859 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2860
2861         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
2862         for reg_equiv_memory_loc when the operand is a register that does
2863         not get a hard register (stack location).
2864         (tst_operand): After reload, accept all memory operand.
2865         (symbolic_memory_operand): Fix detection of symbolic references.
2866         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
2867         accept symbols and any constant.
2868
2869 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2870
2871         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
2872         note on the insn that sets the soft frame register.
2873         (must_parenthesize): ix and iy are also reserved names.
2874         (print_operand_address): One more place where parenthesis are required
2875         to avoid confusion with register names.
2876         (m68hc11_gen_movhi): Allow push of stack pointer.
2877         (m68hc11_check_z_replacement): Fix handling of parallel with a
2878         clobber.
2879         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
2880         the replacement register is.
2881         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
2882         and D8_REGS classes.
2883         (MODES_TIEABLE_P): All modes are tieable except QImode.
2884
2885 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2886
2887         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
2888         (___subdi3): Likewise.
2889         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
2890         (__map_data_section): Optimize 68hc11 case.
2891
2892 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2893
2894         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
2895         than a shift to avoid adding a register with itself.
2896         (m68hc11_memory_move_cost): Take into account NO_REGS.
2897         (m68hc11_register_move_cost): Update and use memory move cost
2898         for soft registers.
2899         (m68hc11_address_cost): Make cost of valid offset not 0 so that
2900         it gives more opportunities to cse to optimize.
2901         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
2902         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
2903
2904 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
2905
2906         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
2907         * c-common.def (CLEANUP_STMT): New tree node.
2908         * c-common.h (CLEANUP_DECL): New macro.
2909         (CLEANUP_EXPR): Likewise.
2910         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
2911         * expr.c (expand_expr): Tidy.
2912         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
2913         * tree-inline.c (initialize_inlined_parameters): Clean up
2914         new local variables.
2915
2916 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
2917
2918         PR bootstrap/4128
2919         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
2920         before movrXX only, use reg_overlap_mentioned_p.
2921         Only special case NE if just one insn can be generated.
2922
2923 2002-03-15  Jason Merrill  <jason@redhat.com>
2924
2925         * varasm.c (assemble_variable): Call resolve_unique_section before
2926         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
2927         of error_mark_node.
2928
2929 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
2930
2931         PR target/5170
2932         * arm.md (split pattern for thumb shiftable immediates): Add comment
2933         explaining non-obvious test.
2934
2935 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
2936
2937         PR target/5712
2938         * arm.md (movaddr, movaddr_insn): Delete.
2939
2940 2002-03-15  Jason Merrill  <jason@redhat.com>
2941
2942         * toplev.c (wrapup_global_declarations): Clarify variable handling.
2943         -fkeep-static-consts doesn't apply to comdats.
2944
2945 2002-03-14  Richard Henderson  <rth@redhat.com>
2946
2947         * c-decl.c: Include c-pragma.h.
2948         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
2949         (finish_function): Tidy.
2950         * c-pragma.c: Include c-common.h.
2951         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
2952         (handle_pragma_weak): Use them.
2953         (init_pragma): Register pending_weaks.
2954         * c-pragma.h (maybe_apply_pragma_weak): Declare.
2955         * print-tree.c (print_node): Print DECL_WEAK.
2956         * varasm.c (mark_weak_decls): Remove.
2957         (remove_from_pending_weak_list): Remove.
2958         (add_weak): Remove.
2959         (asm_emit_uninitialised): Call globalize_decl for weak commons.
2960         (weak_decls): Make a tree_list.
2961         (declare_weak): Cons weak_decls directly.
2962         (globalize_decl): Remove weak_decls elements directly.
2963         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
2964         symbols.  Don't pretend to handle aliases.
2965         (init_varasm_once): Update weak_decls registry.
2966         * Makefile.in: Update dependencies.
2967
2968 2002-03-14  Richard Henderson  <rth@redhat.com>
2969
2970         PR target/5312
2971         * config/ia64/ia64.c: Include tm_p.h last.
2972         (gen_nop_type): Remove duplicate definition.
2973         (cycle_end_fill_slots): Set sched_data for second L slot.
2974         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
2975         (nop_cycles_until): Fix typos.
2976
2977 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
2978
2979         PR optimization/5891
2980         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
2981
2982 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
2983
2984         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
2985           descriptors correctly.
2986
2987 2002-03-14  Michael Meissner  <meissner@redhat.com>
2988
2989         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
2990         100, allowing MAX_UNROLLED_INSNS to be overridden.
2991
2992         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
2993         --param.
2994
2995         * unroll.c (params.h): Include.
2996         (MAX_UNROLLED_INSNS): Delete, now in params.h.
2997
2998         * doc/invoke.texi (--param max-unroll-insns): Document.
2999
3000         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
3001
3002 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3003
3004         * arm.md: Fix warnings about constraints in peepholes and splits.
3005
3006 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
3007
3008         * cpphash.h (struct lexer_state): Remove line_extension member.
3009         * cpplib.c (dequote_string, do_linemarker): New functions.
3010         (linemarker_dir): New data object.
3011         (DIRECTIVE_TABLE): No longer need to interpret #line in
3012         preprocessed source.  Delete obsolete comment about return
3013         values of handlers.
3014         (end_directive, directive_diagnostics, _cpp_handle_directive):
3015         Don't muck with line_extension.
3016         (directive_diagnostics): No need to issue warnings for
3017         linemarkers here.
3018         (_cpp_handle_directive): Issue warnings for linemarkers here,
3019         when appropriate.  Dispatch linemarkers to do_linemarker, not
3020         do_line.
3021         (do_line): Code to handle linemarkers split out to do_linemarker.
3022         Convert escape sequences in filename argument, both places.
3023
3024         * cppmacro.c (quote_string): Rename cpp_quote_string and
3025         export.  All callers changed.
3026         * cpplib.h (cpp_quote_string): Prototype.
3027         * cppmain.c (print_line): Call cpp_quote_string on to_file
3028         before printing it.
3029
3030         * doc/cpp.texi: Document that escapes are now interpreted in
3031         #line and in linemarkers, and that non-printing characters are
3032         converted to octal escapes when linemarkers are generated.
3033
3034 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
3035
3036         * emit-rtl.c (try_split): Use delete_insns.
3037         * recog.c (split_all_insns): Fix terminating condition.
3038
3039 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3040             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
3041
3042         PR target/5828
3043         * arm.c (arm_output_epilogue): Fix floating-point register save
3044         adjustment when using a frame pointer.
3045
3046 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
3047
3048         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
3049         * config/mips/mips.c (compute_frame_size): Retrofit them here.
3050         (save_restore_insns, mips_expand_epilogue): And here.
3051         (build_mips16_call_stub): And here.
3052         (mips_function_value): Use the new macros to decide whether a single
3053         or complex float can be returned in floating-point registers.  Return
3054         a parallel rtx in the complex case.
3055
3056 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3057
3058         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
3059         call after liveness analysis.
3060
3061         * recog.c (split_insn): Use delete_insn_and_edges.
3062
3063         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
3064         instructions to have branch prediction notes.
3065         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
3066
3067 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
3068
3069         * configure.in: Don't pass -Wno-long-long to a ADA compiler
3070         that doesn't support it.
3071         * configure: Regenerate.
3072
3073 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3074
3075         PR target/5626
3076         * config/sparc/sparc.md (normal_branch, inverted_branch,
3077         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3078         inverted_fp_branch): Adjust calls to output_cbranch.
3079         Set length attribute.
3080         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
3081         output_v9branch.  Set length attribute.
3082         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
3083         predicates.
3084         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
3085         (output_cbranch): Likewise.  Handle far branches.
3086         (output_v9branch): Handle far branches.
3087         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
3088         Adjust prototypes.
3089         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
3090         noov_compare64_op predicates.
3091
3092 2002-03-13  Jason Merrill  <jason@redhat.com>
3093
3094         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
3095         into the function and constify it.
3096         * gthr-dce.h, gthr-solaris.h: Likewise.
3097
3098 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
3099
3100         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
3101         * config/rs6000/rs6000.c (rs6000_va_arg): Use
3102         std_expand_builtin_va_arg if not ABI_V4.
3103
3104 2002-03-13  Jason Merrill  <jason@redhat.com>
3105
3106         * varasm.c (globalize_decl): New fn.
3107         (assemble_start_function): Use it.
3108         (asm_emit_uninitialized): Use it.
3109         (assemble_alias): Use it.
3110         (assemble_variable): Use it.
3111
3112 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
3113
3114         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
3115         2002-03-12 internal visibility change.
3116         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3117         visibility into SYMBOL_REF_FLAG.
3118
3119 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
3120
3121         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3122         VOIDmode operand.  Add compile-time optimization for constant results.
3123
3124 2002-03-12  Jason Merrill  <jason@redhat.com>
3125
3126         * c-typeck.c (convert_for_assignment): Don't allow conversions
3127         between pointers and references.  Only allow lvalues to convert to
3128         reference.
3129
3130 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
3131
3132         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3133         before prologue, to avoid scheduling problems.
3134
3135 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3136
3137         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3138         (ELIMINABLE_REGS): Add sfp->sp.
3139         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3140
3141 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3142
3143         PR optimization/5892
3144         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3145
3146 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3147
3148         * loop.c (basic_induction_var): Don't call convert_modes if mode
3149         classes are different.
3150
3151 2002-03-12  Richard Henderson  <rth@redhat.com>
3152
3153         PR optimization/5901
3154         * function.c (reposition_prologue_and_epilogue_notes): Position
3155         the markers after/before the last/first insn not deleted.
3156
3157 2002-03-12  Richard Henderson  <rth@redhat.com>
3158
3159         PR optimization/5878
3160         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3161         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3162         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3163
3164         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3165         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3166         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3167
3168         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3169         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3170         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3171         also.  Don't set it if not flag_pic.
3172         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3173         to be INVALID_REGNUM when not used.
3174
3175 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
3176
3177         * expmed.c (store_bit_field): Reset alias set for memory.
3178         (extract_bit_field): Same.
3179
3180 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3181
3182         * c-common.c (c_tree_code_type, c_tree_code_length,
3183         c_tree_code_name, add_c_tree_codes): Delete.
3184         * c-common.h (add_c_tree_codes): Delete.
3185         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3186         Define.
3187         * c-objc-common.c (c_objc_common_init): Don't call
3188         add_c_tree_codes, instead set lang_unsafe_for_reeval.
3189         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3190         objc_tree_code_name, add_objc_tree_codes): Delete.
3191         (objc_init): Don't call add_objc_tree_codes.
3192         * objc/objc-lang.c (tree_code_type, tree_code_length,
3193         tree_code_name): Define.
3194         * toplev.c (lang_independent_init): Don't set
3195         tree_code_length[IDENTIFIER_NODE].
3196         * tree.c (tree_code_type, tree_code_length, tree_code_name):
3197         Delete definitions, moved to language front-ends.
3198         * tree.def (IDENTIFIER_NODE): Hardwire the length.
3199         * tree.h (tree_code_type, tree_code_length, tree_code_name):
3200         Const-ify.
3201         (tree_code_length): Change type to unsigned char.
3202
3203 2002-03-12  Richard Henderson  <rth@redhat.com>
3204
3205         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3206         internal visibility change.
3207
3208 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3209
3210         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3211         validize_mem() instead of change_address to avoid clobbering
3212         memory attributes.
3213
3214 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3215
3216         * c-lex.h (position_after_whitespace): Remove.
3217
3218 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
3219
3220         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3221         (lex_string): Use unsigned char pointers.
3222
3223 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3224
3225         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3226         is not a valid memory_operand.
3227
3228 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3229
3230         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3231         * config/xtensa/lib1funcs.asm: Fix copyright to include
3232         special case for libgcc files.
3233         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3234         (__divsi3): Likewise.
3235         (__umodsi3): Likewise.
3236         (__modsi3): Likewise.
3237         * config/xtensa/lib2funcs.S: Fix copyright to include
3238         special case for libgcc files.
3239
3240 2002-03-12  Tom Rix  <trix@redhat.com>
3241
3242         * collect2.c (resolve_lib_name): Move outside of
3243         OBJECT_FORMAT_COFF ifdef.
3244         (ignore_library): Same.
3245
3246 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3247
3248         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3249
3250 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3251
3252         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3253         to function_section before writing out the constant pool.
3254
3255 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3256
3257         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3258         zero_constant.
3259         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3260
3261 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3262
3263         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3264         (adddi3): Likewise.
3265         (movdf): Likewise.
3266         (movdi): Likewise.
3267         (cmpsi splitter): Likewise.
3268         (modsi3): Fail if <= 0.
3269         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3270         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3271         (reg_or_sub_cint64_operand): Likewise.
3272         (num_insns_constant_wide): Optimize sign extension.
3273         (rs6000_legitimize_address): Likewise.
3274
3275 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3276
3277         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3278         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3279
3280 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3281
3282         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3283         address calculation.
3284
3285 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3286
3287         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3288         scratch register to DImode / TImode.
3289         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3290         register used does not overlap the target.
3291
3292 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3293
3294         * Makefile.in (debug.o): Depend on debug.h.
3295         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3296         * debug.c (do_nothing_debug_hooks): Likewise.
3297         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3298         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3299         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3300         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3301         * dwarfout.c (dwarf_debug_hooks): Likewise.
3302         * integrate.c (output_inline_function): Likewise.
3303         * objc/objc-act.c (synth_module_prologue): Likewise.
3304         * sdbout.c (sdb_debug_hooks): Likewise.
3305         * toplev.c (debug_hooks): Likewise.
3306         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3307
3308 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3309
3310         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3311         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3312         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3313         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3314         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3315         * defaults.h (POINTER_SIZE): Define.
3316         * doc/tm.texi (POINTER_SIZE): Document default.
3317
3318 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3319
3320         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3321
3322 2002-03-11  Richard Henderson  <rth@redhat.com>
3323
3324         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3325         if rebuild_label_notes_after_reload.
3326
3327 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3328
3329         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3330         emit pic register load if "internal" visibility.
3331         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3332         (cris_expand_builtin_va_arg): Do all computations on trees.
3333
3334 2002-03-11  Richard Henderson  <rth@redhat.com>
3335
3336         * rtlanal.c: Include recog.h.
3337         (keep_with_call_p): Fix thinko.
3338         * Makefile.in (rtlanal.o): Update dependencies.
3339
3340 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3341
3342         * genflags.c (gen_insn): Use IS_VSPACE.
3343         * genoutput.c (output_insn_data): Likewise.
3344         (process_template): Likewise.
3345
3346 2002-03-11  Richard Henderson  <rth@redhat.com>
3347
3348         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3349
3350 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3351
3352         * Makefile.in: Update.
3353         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3354         Update documentation.
3355         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3356         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3357
3358 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3359
3360         * Makefile.in: Give texi2pod its input file as a command line
3361         argument, not on stdin.
3362
3363 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3364             Daniel Berlin  <dan@dberlin.org>
3365
3366         C++ alias analysis improvement.
3367         * alias.c (record_component_aliases): Record aliases for base
3368         classes too.
3369
3370 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3371
3372         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3373
3374 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3375
3376         * toplev.c (vms_fopen): Remove, not needed.
3377
3378         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3379
3380         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3381
3382         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3383         for FP, already done later.
3384
3385         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3386         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3387
3388 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3389
3390         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3391         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3392         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3393         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3394         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3395         (ediv, emul, eldexp, esqrt): Likewise.
3396         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3397         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3398         (saturate): New function.
3399         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3400         (make_nan): Use a saturation value instead of a NaN if
3401         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3402         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3403         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3404         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3405         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3406         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3407         !ROUND_TOWARDS_ZERO.
3408         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3409         (ROUND_TOWARDS_ZERO): Document.
3410
3411 2002-03-11  Andreas Jaeger  <aj@suse.de>
3412
3413         * cfg.c (dump_flow_info): Remove unused variable.
3414
3415 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
3416
3417         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3418         computations on trees.
3419
3420 2002-03-10  Richard Henderson  <rth@redhat.com>
3421
3422         PR 5693:
3423         * reload.c (copy_replacements_1): New.
3424         (copy_replacements): Use it to recurse through the rtx.
3425
3426 2002-03-10  Richard Henderson  <rth@redhat.com>
3427
3428         * loop.c (strength_reduce): Compute number of iterations as
3429         unsigned HOST_WIDE_INT.
3430
3431 2002-03-10  Richard Henderson  <rth@redhat.com>
3432
3433         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
3434         to move away from the end of the block.
3435
3436 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3437
3438         PR preprocessor/5899
3439         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
3440
3441 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3442
3443         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
3444
3445         * attribs.c (decl_attributes): Fix signed/unsigned warning.
3446
3447 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
3448
3449         * config/mmix/mmix.c: Improve comments.
3450         (mmix_target_asm_function_prologue): Drop variable
3451         empty_stack_frame.  Don't allocate unused slot above fp.
3452         (mmix_target_asm_function_epilogue): Mirror prologue changes.
3453         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
3454         brace in first column.
3455         (enum reg_class): Ditto.
3456         (FIRST_PARM_OFFSET): Now 0.
3457         (USER_LABEL_PREFIX): Remove #if 0:d definition.
3458
3459 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3460
3461         * combine.c (make_extraction): Fix error in last change.
3462
3463 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3464
3465         * c4x.c (c4x_fp_reglist): Const-ify.
3466         * cris.c (cris_print_operand): Likewise.
3467         * i386.c (ix86_va_arg): Likewise.
3468         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
3469         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
3470         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
3471         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.