OSDN Git Service

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