OSDN Git Service

99828fd41c7b42cb68588b5aa59c74f8f0dd41c9
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2002-04-16  Hartmut Penner <hpenner@de.ibm.com>
2
3         PR target/6305
4         * config/s390/s390.md (mulsidi3): Set both subregs of the
5         multiword register. 
6
7 2002-04-16  Aldy Hernandez  <aldyh@redhat.com>
8
9         * config/rs6000/altivec.h (vec_addc): Type check.
10
11 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
12
13         PR middle-end/6279
14         * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target.
15
16         * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET.
17
18 2002-04-15  Richard Henderson  <rth@redhat.com>
19
20         * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set
21         call_really_used_regs too.
22
23 2002-04-15  Richard Henderson  <rth@redhat.com>
24
25         * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd.
26
27 2002-04-15  David S. Miller  <davem@redhat.com>
28
29         * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs
30         as being CLOBBERed.
31
32 2002-04-16  Jakub Jelinek  <jakub@redhat.com>
33
34         PR c/6290
35         * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the
36         CONST_VECTOR is { 0, ... 0 }.
37
38 2002-04-15  Loren J. Rittle  <ljrittle@acm.org>
39
40         * doc/install.texi (Installing GCC: Configuration): Clarify
41         the only supported ways to configure gcc.
42
43 2002-04-15  Roland McGrath  <roland@frob.com>
44  
45         * config.gcc (alpha*-*-gnu*): New target configuration.
46         * config/alpha/gnu.h: New file for it.
47         * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define.
48
49 2002-04-15  Richard Henderson  <rth@redhat.com>
50
51         * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h,
52         config/i386/linux-aout.h, config/i386/linux-oldld.h,
53         config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h,
54         config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h,
55         config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h,
56         config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h,
57         config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES):
58         Define __gnu_linux__, not gnu_linux.
59         * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd.
60
61 2002-04-15  Mark Mitchell  <mark@codesourcery.com>
62
63         Remove Chill front end.
64         * gcc.c (default_compilers): Remove Chill entries.
65         * ch: Remove directory.
66         * doc/frontends.texi: Remove information about Chill.
67         * doc/sourcebuild.texi: Likewise.
68         * doc/standards.texi: Likewise.
69
70 2002-04-15  Douglas B Rupp  <rupp@gnat.com>
71
72         * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include.
73         (LONGLONG_STANDALONE): Define.
74
75 2002-04-15  David S. Miller  <davem@redhat.com>
76
77         * config/sparc/sparc.c (sparc_emit_float_lib_cmp):
78         Call emit_library_call with LCT_NORMAL.
79         (sparc_initialize_trampoline): Use LCT_foo instead of
80         magic constant in emit_library_call invocations.
81         (sparc64_initialize_trampoline): Likewise.
82         (sparc_profile_hook): Likewise.
83         * config/sparc/sparc.md: Likewise.
84
85         * config/sparc/sparc.c (sparc_extra_constraint_check):
86         Fix type of argument 'c'.
87         * config/sparc/sparc-protos.h (sparc_extra_constraint_check):
88         Likewise.
89
90 2002-04-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
91
92         * diagnostic.h (output_buffer_state): Redefine.
93         (output_format_decoder): New macro.
94         (output_prefixing_rule): Likewise.
95         (output_line_cutoff): Likewise.
96         (diagnostic_format_decoder): Adjust.
97         (diagnostic_prefixing_rule): Likewise.
98         (diagnostic_line_cutoff): Likewise.
99         (diagnostic_state): Likewise.
100         (diagnostic_kind_count): Likewise.
101         (diagnostic_buffer): Now a macro.
102
103         * diagnostic.c (diagnostic_buffer): Remove definition.
104         (output_is_line_wrapping): Adjust.
105         (set_real_maximum_length): Likewise.
106         (output_set_maximum_length): Likewise.
107         (init_output_buffer): Likewise.
108         (lhd_print_error_function): Likewise.
109         (output_do_verbatim): Likewise.
110
111 2002-04-14  Neil Booth  <neil@daikokuya.demon.co.uk>
112
113         * cpperror.c (print_location): Don't print include chain
114         if line == 0.
115         (cpp_begin_message): Update to use DL_ macros.
116         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
117         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
118         cpp_notice, cpp_notice_from_errno): Remove.
119         (cpp_error, cpp_error_with_line): Update to take a diagnostic
120         level.
121         (cpp_errno): New.
122         * cppexp.c (CPP_ICE): Remove.
123         (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined,
124         lex, integer_overflow, _cpp_parse_expr): Update.
125         * cppfiles.c (read_include_file, find_include_file,
126         handle_missing_header, _cpp_read_file, remap_filename): Update.
127         * cpphash.h (enum error_type): Remove.
128         (_cpp_begin_message): Update.
129         * cppinit.c (append_include_chain, remove_dup_dirs, output_deps,
130         cpp_handle_option, cpp_post_options): Update.
131         * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment,
132         skip_whitespace, parse_identifier, parse_slow, parse_string,
133         _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape,
134         cpp_interpret_charconst): Update.
135         * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive,
136         lex_macro_node, do_undef, glue_header_name, parse_include,
137         do_include_common, read_flag, do_line, do_linemarker, do_ident,
138         cpp_register_pragma, do_pragma_once, do_pragma_system_header,
139         do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else,
140         do_elif, do_endif, parse_answer, parse_assertion, do_assert,
141         _cpp_pop_buffer, do_diagnostic): Update.
142         * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR,
143         DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New.
144         (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning,
145         cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line,
146         cpp_notice, cpp_notice_from_errno): Remove.
147         (cpp_error, cpp_error_with_line): Update to take a diagnostic
148         level.
149         (cpp_errno): New.
150         * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens,
151         collect_args, enter_macro_context, save_parameter, parse_params,
152         _cpp_create_definition, check_trad_stringification,
153         cpp_macro_definition): Update.
154         * cppmain.c (cpp_preprocess_file): Update.
155         * fix-header.c (read_scan_file): Update.
156
157 2002-04-14  Andreas Schwab  <schwab@suse.de>
158
159         * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash.
160
161 2002-04-14  Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
162
163         * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define.
164
165 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
166
167         * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__,
168         not gnu_hurd.
169
170 2002-04-13  Hans-Peter Nilsson  <hp@axis.com>
171
172         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo.
173
174 2002-04-13      Joel Sherrill <joel@OARcorp.com>
175
176         * config/sparc/t-elf: Enable v8 multilibs.  Impacts
177         sparc-elf and sparc-rtems targets.
178
179 2002-04-13  Mark Mitchell  <mark@codesourcery.com>
180
181         * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is
182         defined, and __gnu_hurd__ wherever __GNU__ is defined.
183         * arm/linux-elf.h: Likewise.
184         * cris/aout.h: Likewise.
185         * cris/linux.h: Likewise.
186         * i370/linux.h: Likewise.
187         * i386/gnu.h: Likewise.
188         * i386/linux-aout.h: Likewise.
189         * i386/linux-oldld.h: Likewise.
190         * i386/linux.h: Likewise.
191         * i386/linux64.h: Likewise.
192         * ia64/linux.h: Likewise.
193         * m68k/linux-aout.h: Likewise.
194         * m68k/linux.h: Likewise.
195         * mips/linux.h: Likewise.
196         * pa/pa-linux.h: Likewise.
197         * pj/linux.h: Likewise.
198         * rs6000/sysv4.h: Likewise.
199         * s390/linux.h: Likewise.
200         * sh/linux.h: Likewise.
201         * sparc/linux-aout.h: Likewise.
202         * sparc/linux.h: Likewise.
203         * sparc/linux64.h: Likewise.
204         * xtensa/linux.h: Likewise.
205
206 2002-04-13  Richard Sandiford  <rsandifo@redhat.com>
207
208         * stmt.c (check_unique_operand_names): Expect operand names to
209         be strings rather than identifiers.  Use simple_cst_equal to
210         compare them.
211         (resolve_operand_name_1): Make same identifier to string change here.
212         * c-parse.in (asm_operand): Convert a named operand into a string.
213         * cp/parse.y (asm_operand): Likewise.
214
215 2002-04-13  Andreas Schwab  <schwab@suse.de>
216
217         * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu).
218
219 2002-04-12  Mark Mitchell  <mark@codesourcery.com>
220
221         Revert these changes:
222
223         2002-04-06  Mark Mitchell  <mark@codesourcery.com>
224
225         PR c++/5571
226         * stor-layout.c (layout_decl): Reset the RTL for the decl.
227
228 2002-04-12  Richard Henderson  <rth@redhat.com>
229
230         * config.gcc (sparcv9-*-solaris2): Default to 32-bit code.
231         (sparc*-*-solaris): Clean up header files.
232         * configure.in (AS_SPARC64_FLAG): Error out if can't find it
233         and plan on generating 64-bit code.
234         * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2.
235         * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code.
236         * config/sparc/sol2-sld-64.h: Rename ...
237         * config/sparc/sol2-bi.h: ... here.  Remove the bits that checked
238         for AS_SPARC64_FLAG not defined.
239         * config/sparc/sol2-gld-bi.h: New.
240         * config/sparc/sol2-sld.h: Remove.
241         * config/sparc/sol26-sld.h: New.
242         * config/sparc/sol2.h: Tidy comments.
243         * doc/install.texi: Document sparc-solaris configury changes.
244
245 2002-04-12  Richard Henderson  <rth@redhat.com>
246
247         * recog.c (offsettable_address_p): Match the logic in adjust_address.
248
249         * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode
250         in 64-bit mode only.  Use only for 32-bit or MEDLOW.
251
252 2002-04-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
253
254         * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings.
255
256 Fri Apr 12 15:42:59 2002  Jeffrey A Law  (law@redhat.com)
257
258         * pa.c (pa_can_combine_p): Call extract_insn before calling
259         constrain_operands.
260
261 2002-04-12  Douglas B Rupp  <rupp@gnat.com>
262
263         * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define.
264         (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define.
265         (DEFAULT_PCC_STRUCT_RETURN): Define as 0.
266         (CPP_PREDEFINES): Handle __declspec.
267         * config/i386/t-interix (USER_H): Remove.
268
269 2002-04-12  DJ Delorie  <dj@redhat.com>
270
271         * integrate.c (compare_blocks): Make comparisons safe for when
272         sizeof(int) < sizeof(char *).
273         (find_block): Likewise.
274
275 2002-04-12  Jan Hubicka  <jh@suse.cz>
276             David Edelsohn  <edelsohn@gnu.org>
277
278         * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT
279         registers.
280         (symbol_ref_operand): New.
281         * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand.
282         * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand.
283
284 2002-04-12  Andreas Schwab  <schwab@suse.de>
285
286         * config/ia64/ia64.h (ASM_SPEC): Moved from here ...
287         * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it
288         overrides the definition in config/svr4.h.
289         
290 2002-04-12      Eric Norum <eric.norum@usask.ca>
291
292         * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h,
293         config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h,
294         config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h,
295         config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h,
296         config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h,
297         config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h,
298         config/v850/rtems.h (*-rtems*): Cleanup pass to move common
299         definitions to config/rtems.h and make the targets more similar.
300
301 Fri Apr 12 08:06:54 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
302
303         * expr.c (expand_assigment): Remove duplicate conversions #ifdef
304         POINTERS_EXTEND_UNSIGNED.
305         (store_constructor, expand_expr, case COMPONENT_REF): Likewise.
306         (store_expr): Use TYPE_MODE (sizetype), not ptr_mode.
307
308         * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET
309         not specified.
310
311 Fri Apr 12 12:11:26 2002  J"orn Rennecke <joern.rennecke@superh.com>
312
313         * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG
314         depends on TARGET_SHMEDIA, not TARGET_SH5.
315
316 2002-04-12  Hans-Peter Nilsson  <hp@bitrange.com>
317
318         * function.c (fixup_var_refs_1) <SET, handling VAR in SET_SRC>:
319         For paradoxical (subreg VAR), replace VAR, don't try the subreg.
320
321 Fri Apr 12 10:51:38 2002  J"orn Rennecke <joern.rennecke@superh.com>
322
323         * sh.c (broken_move): Constant 0. / 1. load is OK if there is
324         no r0 clobber.
325
326 2002-04-12  Andreas Schwab  <schwab@suse.de>
327
328         * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash.
329
330 2002-04-12  Richard Henderson  <rth@redhat.com>
331
332         PR bootstrap/4191
333         * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef.
334
335         * flow.c (mark_used_reg): Manage reg_cond_dead properly for
336         modes spanning multiple hard regs.
337     
338         * recog.c (peephole2_optimize): Rebuild jump labels as needed.
339
340 2002-04-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
341
342         * pa.c (pa_output_function_prologue): Don't accumulate the total
343         number of code bytes when using TARGET_64BIT, or gas, SOM and not
344         the portable runtime.
345         (output_deferred_plabels): Handle 64bit plabels.
346         (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when
347         generating pic code using the GAS assembler for object formats that
348         are not SOM (ie., ELF32 and ELF64).
349         (output_millicode_call): Check attribute type if attribute length is 28.
350         Likewise use $PIC_pcrel$0.  Only call get_attr_length and
351         dbr_sequence_length once.
352         (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and
353         dbr_sequence_length once.
354         * pa.h (TARGET_SOM): Define if not defined.
355         * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0
356         with GAS and not SOM.
357         (jump, call_internal_reg, call_value_internal_reg): Likewise.
358         * som.h (OBJ_SOM): Rename to TARGET_SOM.  Undefine before defining.
359
360 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
361
362         * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value.
363         (DEFAULT_PCC_STRUCT_RETURN) Do not redefine.
364         (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP,
365         DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE):
366         elfos.h and dbxelf.h values are fine now.
367         * config/i386/freebsd.h, config/alpha/freebsd.h
368         (DEFAULT_PCC_STRUCT_RETURN): Define to 0.
369
370 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
371
372         * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__
373         or set Acpu or Amachine.  Reformat.
374         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
375         define.
376         (LINK_SPEC): Do not need to undef.
377         * config/ia64/elf.h (ASM_EXTRA_SPEC): Define.
378         * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef.
379         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
380         define.
381         * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define.
382         (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead.
383         (LINK_SPEC): Do not need to undef.
384         (DONT_USE_BUILTIN_SETJMP): Do not define.
385         * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add.
386         (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine.  Remove -Dia64.
387         (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define.
388         Remove trailing spaces.
389         * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__,
390         __ELF__, or set Acpu or Amachine.  Reformat.
391         (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not
392         define.
393
394 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
395
396         * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match
397         all other *-*-freebsd* targets.
398
399 2002-04-11  Richard Henderson  <rth@redhat.com>
400
401         * config.gcc (alpha*-*-linux*ecoff): Detect and reject.
402
403 2002-04-11  David O'Brien  <obrien@FreeBSD.org>
404
405         * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms):
406         Include {cpu}/{cpu}.h thru tm_file.
407         (alpha*-*-linux*ecoff): Remove target.
408         * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__.
409         (LINK_SPEC): Remove, is not OS independent.
410         * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__.
411         (LINK_SPEC): Do not need to #undef any longer.
412         * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef
413         any longer.
414         * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define
415         __ELF__.
416         (LINK_SPEC): Moved here from alpha/elf.h.
417         * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of
418         SUB_CPP_PREDEFINES.
419         * config/alpha/linux-ecoff.h: Remove.
420         * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__.
421         (CPP_SPEC): Define _POSIX_SOURCE as needed.
422         (CPP_SUBTARGET_SPEC): Do not define.
423         (LINK_SPEC): Do not need to #undef any longer.
424         * config/alpha/openbsd.h: Do not directly include alpha/alpha.h.
425         * config/alpha/vms.h: Likewise.
426
427 2002-04-11  Richard Sandiford  <rsandifo@redhat.com>
428
429         * doc/extend.texi: Remove old claim that typedefs cannot have
430         an alignment attribute.
431
432 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
433
434         PR optimization/6177
435         * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if
436         bitpos is 0 and bitsize CONCAT size.
437
438 2002-04-11  Jakub Jelinek  <jakub@redhat.com>
439
440         PR c/6223
441         * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz.
442
443 2002-04-10  David O'Brien  <obrien@FreeBSD.org>
444
445         * config/alpha/freebsd.h: Minor reformatting.
446         (CPP_SPEC): Define ELF and add cpp_subtarget.
447         (ASM_SPEC): No longer needed.
448
449 2002-04-11  Richard Henderson  <rth@redhat.com>
450
451         * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative.
452         (movdi_insn_sp32_v9): Likewise.  Only allow stx with aligned memory.
453         (dimode mem/zero splitter): New.
454
455 2002-04-11  Hans-Peter Nilsson  <hp@axis.com>
456
457         * config/cris/cris.c (cris_override_options): Tweak error message
458         for PIC not implemented.
459
460         * config/cris/cris.h: Tweak comments related to parameter-passing.
461
462         * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here.
463
464 2002-04-10  Richard Henderson  <rth@redhat.com>
465
466         * except.c (add_ehl_entry): Allow duplicates after landing pad
467         creation.
468
469 2002-04-10  David Edelsohn  <edelsohn@gnu.org>
470
471         * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64.
472
473 2002-04-10  Toon Moene  <toon@moene.indiv.nluug.nl>
474
475         * c-decl.c (c_init_decl_processing): Move generation of
476         decls for g77_integer_type_node and friends from here ...
477         * c-common.c (c_common_nodes_and_builtins): ... to here.
478
479 2002-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
480
481         * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM
482         is only used as frame pointer when frame_pointer_needed is true.
483
484 2002-04-10  Richard Earnshaw  <rearnsha@arm.com>
485
486         PR target/817
487         * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow
488         for the fact that the pool entry uses two words.
489         (movdf_hard_insn): Similarly.  Also, ADR instruction can span
490         1k bytes.
491         (movdf_soft_insn): Similarly.
492         (movxf_hard_insn): Adjust neg_pool_range attribute to allow
493         for the fact that the pool entry uses three words.
494
495 2002-04-10  Richard Sandiford  <rsandifo@redhat.com>
496
497         * config/mips/mips.c (mips_va_arg): When using the struct version
498         of the EABI va_list, allow arguments in the register save area to
499         take up less room than a stack argument.
500
501 2002-04-10  Richard Henderson  <rth@redhat.com>
502
503         * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers
504         if EXPAND_INITIALIZER.
505
506 2002-04-09  Richard Henderson  <rth@redhat.com>
507
508         * config/alpha/alpha.md (movdi_er_maybe_g): New.
509         * config/alpha/alpha.c (alpha_expand_mov): Use it.
510
511 2002-04-10  Alan Modra  <amodra@bigpond.net.au>
512
513         PR optimization/6233
514         * rtlanal.c (pure_call_p): New function.
515         * rtl.h (pure_call_p): Declare.
516         * loop.c (prescan_loop): Use it to set has_nonconst_call.
517         * gcse.c (store_killed_in_insn): Use pure_call_p here too.
518
519 2002-04-09  Eric Christopher  <echristo@redhat.com>
520
521         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional
522         information to .comm directive.
523
524 2002-04-09  Richard Henderson  <rth@redhat.com>
525
526         PR c/5078
527         * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers.
528
529 2002-04-09  Richard Henderson  <rth@redhat.com>
530
531         * basic-block.h (flow_delete_block_noexpunge): Declare.
532         (expunge_block_nocompact): Declare.
533         * cfg.c (expunge_block_nocompact): Split out from ...
534         (expunge_block): ... here.
535         * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels.
536         (flow_delete_block_noexpunge): Split out from ...
537         (flow_delete_block): ... here.
538         * cfgcleanup.c (delete_unreachable_blocks): Compact while
539         removing dead blocks.
540         * except.c (exception_handler_labels): Remove.
541         (exception_handler_label_map): New.
542         (struct eh_region): Add aka member.
543         (mark_ehl_map_entry, mark_ehl_map, free_region): New.
544         (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New.
545         (for_each_eh_label, for_each_eh_label_1): New.
546         (init_eh): Register exception_handler_label_map.
547         (free_eh_status): Use free_region.
548         (find_exception_handler_labels): Use the map, not the list.
549         (remove_exception_handler_label): Likewise.
550         (maybe_remove_eh_handler): Likewise.
551         (remove_eh_handler): Use the region aka bitmap.
552         * except.h (exception_handler_labels): Remove.
553         (for_each_eh_label): Declare.
554         * jump.c (rebuild_jump_labels): Don't check exception_handler_labels.
555         * loop.c (invalidate_loops_containing_label): New.
556         (find_and_verify_loops): Use it.  Use for_each_eh_label.
557         * sched-rgn.c (is_cfg_nonregular): Use
558         current_function_has_exception_handlers.
559
560 2002-04-09  Richard Henderson  <rth@redhat.com>
561
562         * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b,
563         sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c):
564         Do not return changed status.
565         (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg,
566         sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg):
567         New functions that do return changed status.
568         * sbitmap.h: Update decls.
569         * gcse.c, lcm.c: Use _cg functions as needed.
570
571 Tue Apr  9 19:15:57 2002  J"orn Rennecke <joern.rennecke@superh.com>
572
573         * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h.
574         (sh64-*-elf*, sh-*-rtemself*): Likewise.
575         * config/sh/embed_bb.c: New file.
576         * config/sh/embed-elf.h: New file.
577         * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__
578         if -m[12345]* option is given.  Don't use subtarget_cpp_ptr_spec.
579         (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
580         __PTRDIFF_TYPE__ .
581         (SUBTARGET_CPP_PTR_SPEC): Don't define.
582         (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec.
583         Add subtarget_asm_endian_spec.
584         (ASM_SPEC): Use subtarget_asm_endian_spec.
585         (SUBTARGET_ASM_ENDIAN_SPEC): Define.
586         (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5.
587         (WCHAR_UNSIGNED): Define.
588         (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define.
589         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
590         (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5.
591         Fix value.
592         * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5.
593         (sh_adjust_cost): Likewise.
594         sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and
595         __PTRDIFF_TYPE__ .
596         (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define.
597         (WCHAR_TYPE_SIZE): Likewise.
598         (ASM_SPEC): Use subtarget_asm_endian_spec.
599         (SH_ELF_WCHAR_TYPE): #undef/ #define.
600         (MAX_WCHAR_TYPE_SIZE): Don't #undef.
601         * config/sh/elf.h (WCHAR_UNSIGNED): #undef .
602         (MAX_WCHAR_TYPE_SIZE): Don't #define .
603         (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define .
604         (USER_LABEL_PREFIX): Don't #undef /#define .
605         (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER.
606         * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define .
607         (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise.
608         (ASM_SPEC): Likewise.
609         (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define .
610         (CC1_SPEC): don't supply -m3 for -m4*, -m5*.
611         * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE.
612         (LIB2FUNCS_EXTRA): Define.
613         * t-sh64 (LIB2FUNCS_EXTRA): Define.
614         * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine.
615         (LIB1ASMFUNCS_CACHE): Define.
616         (LIB2FUNCS_EXTRA): Redefine empty.
617
618 2002-04-08  Richard Henderson  <rth@redhat.com>
619
620         * reorg.c (get_branch_condition): Use reversed_comparison_code.
621
622 2002-04-09  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
623
624         * config/m68hc11/larith.asm (__map_data_section): Fix condition
625         and optimize for size.
626         (__do_global_ctors): Fix pointer comparison.
627         (__do_global_dtors): Likewise.
628
629 2002-04-09  David S. Miller  <davem@redhat.com>
630
631         * config/sparc/sparc.c (sparc_extra_constraint_check): New
632         function, implementing EXTRA_CONSTRAINTS.  For memory constraints,
633         allow reloading pseudos.
634         * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it.
635         * config/sparc/sparc-protos.h: Declare it.
636
637         * config/sparc/sparc.c (const64_is_2insns): Kill signed vs.
638         unsigned comparison warning.
639         (output_restore_regs): Mark leaf_function as unused.
640
641 Tue Apr  9 09:35:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
642
643         * expr.c (is_aligning_offset): New function.
644         (expand_expr, case COMPONENT_EXPR): Call it.
645
646 2002-04-08  David S. Miller  <davem@redhat.com>
647
648         PR target/6082
649         * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW
650
651         Make init_priority work on Sparc when using GNU ld.
652         * config/sparc/linux.h, config/sparc/linux64.h,
653         config/sparc/netbsd-elf.h, config/sparc/freebsd.h
654         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine.
655         * config/sparc/sol2-gld.h: New file to do the same.
656         * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add
657         sparc/sol2-gld.h to tm_file.
658
659         PR optimization/4328
660         * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'.
661         * doc/md.texi: Document it.
662         * config/sparc/sparc.md (movdi_insn_sp64_novis,
663         movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis,
664         movdf_insn_v9only_vis, movdf_insn_sp64_novis,
665         movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers.
666         * config/sparc/sparc.c (mem_min_alignment): Fix comment.
667
668 2002-04-08  Andreas Jaeger  <aj@suse.de>
669
670         * stmt.c (expand_asm_operands): Revert last patch from Richard
671         Henderson.
672
673 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
674
675         * doc/contrib.texi (Contributors): Add John David Anglin and Loren
676         J. Rittle (the latter also to Testers).  Update David O'Brien's entry.
677
678 2002-04-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
679
680         * doc/contrib.texi (Contributors): Add David O'Brien.
681
682 2002-04-08  Alan Modra  <amodra@bigpond.net.au>
683
684         * configure.in (auto-build.h): Use target_alias and build_alias
685         when running configure.
686         (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too.
687         (gcc_cv_nm, gcc_cv_objdump): Set for build != host too.
688         * configure: Regenerate.
689
690 2002-04-07  David S. Miller  <davem@redhat.com>
691
692         * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file.
693
694 2002-04-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
695
696         PR 5933
697         * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when
698         generating 32-bit pic code.
699
700 2002-04-06  Jason Thorpe  <thorpej@wasabisystems.com>
701
702         * cppinit.c (cpp_create_reader): Initialize
703         discard_comments_in_macro_exp.
704         (COMMAND_LINE_OPTIONS): Add "-CC" option.
705         (cpp_handle_option): Handle "-CC" option.
706         * cpplex.c (save_comment): If saving a C++ comment in
707         a directive, convert it to a C comment.
708         (_cpp_lex_direct): Pass second comment start character to
709         save_comment to indicate comment type.
710         * cpplib.c (_cpp_handle_directive): If processing
711         a "#define" directive and discard_comments_in_macro_exp
712         is false,  re-enable saving of comments.
713         (lex_macro_node): If discard_comments_in_macro_exp is false,
714         discard any comments before the macro identifier.
715         * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp
716         member.
717         * cppmacro.c (cpp_get_token): If expanding a macro while
718         processing a directive, discard any comments we might encounter.
719         (parse_params): If discard_comments_in_macro_exp is false,
720         ignore comments in the macro parameter list.
721         * gcc.c (cpp_unique_options): Add "-CC" option.
722         (option_map): Map "--comments-in-macros" to "-CC".
723         * doc/cppopts.texi: Document "-CC" option.
724         * f/lang-specs.h: Add "-CC" option.
725         * testsuite/gcc.dg/cpp/maccom1.c: New test.
726         * testsuite/gcc.dg/cpp/maccom2.c: New test.
727         * testsuite/gcc.dg/cpp/maccom3.c: New test.
728         * testsuite/gcc.dg/cpp/maccom4.c: New test.
729         * testsuite/gcc.dg/cpp/maccom5.c: New test.
730         * testsuite/gcc.dg/cpp/maccom6.c: New test.
731
732 2002-04-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
733
734         PR middle-end/6180
735         * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes.
736
737 2002-04-06  Mark Mitchell  <mark@codesourcery.com>
738
739         PR c++/5571
740         * stor-layout.c (layout_decl): Reset the RTL for the decl.
741
742         PR opt/5120
743         * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear
744         RTX_UNCHANGING_P for the functions arguments when a tail call
745         is made.
746
747 2002-04-06  Jason Merrill  <jason@redhat.com>
748
749         * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2.
750         (parse_options_and_default_flags): Set them appropriately.
751         * c-common.c (c_common_post_options): Don't set flag_really_no_inline.
752
753 2002-04-06  Hans-Peter Nilsson  <hp@bitrange.com>
754
755         * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc
756         here.
757
758         * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious
759         semicolon.
760
761         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size
762         types come in by-reference.  Fix typo in comment.
763
764 2002-04-05  David S. Miller  <davem@redhat.com>
765
766         * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits.
767         * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos,
768         sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*,
769         {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file.
770
771 2002-04-05  David S. Miller  <davem@redhat.com>
772
773         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we
774         are not going to emit return instructions, emit at least a nop
775         for the sake of sane backtraces.
776
777 2002-04-05  Richard Henderson  <rth@redhat.com>
778
779         * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)).
780
781 2002-04-05  Jakub Jeilnek  <jakub@redhat.com>
782
783         * mklibgcc.in: Use $tmpmapfile, not tmp-$@.
784
785 2002-04-05  Alexandre Oliva  <aoliva@redhat.com>
786
787         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE,
788         ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB,
789         ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16.
790
791 2002-04-05  Andreas Schwab  <schwab@suse.de>
792
793         * c-convert.c: Include c-common.h.
794         * Makefile.in (c-convert.o): Updated.
795
796 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
797
798         * mklibgcc.in: Use separate libgcc.map for each multilib.
799         * Makefile.in (distclean): Don't remove libgcc.map here.
800
801 2002-04-05  Jakub Jelinek  <jakub@redhat.com>
802
803         * Makefile.in (s-mlib): Handle --disable-multilib by separate
804         genmultilib invocation.
805
806 2002-04-04  Richard Sandiford  <rsandifo@redhat.com>
807
808         * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs
809         to avoid clash with Irix header file sys/ucontext.h.  Rename gp_regs
810         to num_gprs for symmetry.
811         * config/mips/mips.c: Adjust accordingly.
812
813 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
814
815         * c-common.c (truthvalue_conversion): Rename, update.
816         * c-common.h (c_common_truthvalue_conversion): New.
817         * c-convert.c (convert): Update.
818         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
819         * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update.
820         * c-typeck.c (build_binary_op, build_unary_op,
821         build_conditional_expr): Update.
822         * fold-const.c (constant_boolean_node, fold): Use langhook.
823         * langhooks-def.h (LANGHOOK_INITIALIZER): Update.
824         * langhooks.h (struct lang_hooks): New hook.
825         * stmt.c (expand_decl_cleanup): Use langhook.
826         * tree.h (truthvalue_conversion): Remove.
827 objc:
828         * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
829
830 2002-04-05  Alan Modra  <amodra@bigpond.net.au>
831
832         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o
833         Add rules to make null object file.
834
835 2002-04-04  Jim Blandy  <jimb@redhat.com>
836
837         * cppmacro.c (cpp_macro_definition): Do not emit spaces after
838         macro formal parameter names.
839
840 2002-04-04  David S. Miller  <davem@redhat.com>
841
842         * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg.
843
844 2002-04-04  Richard Henderson  <rth@redhat.com>
845
846         PR middle-end/5099
847         * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok.
848         Support copies into and out of memory.  Don't accept allows_reg
849         and allows_mem as gospel.
850
851 2002-04-04  Richard Henderson  <rth@redhat.com>
852
853         PR opt/6165
854         * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict.
855         (write_dependence_p): Likewise.
856
857 2002-04-04  Richard Henderson  <rth@redhat.com>
858
859         * predict.c (estimate_bb_frequencies): Do frequency calculation
860         with a volatile temporary.
861
862 2002-04-04  Ulrich Weigand  <uweigand@de.ibm.com>
863
864         * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define.
865
866 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
867
868         PR c++/6119
869         * final.c (final_start_function): Don't bump profile_label_no here...
870         (final_end_function): ...but here.
871
872 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
873
874         * config/sparc/sparc.md (pic): New attribute.
875         (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9
876         into stack slots.
877         (split after do_builtin_setjmp_setup): New.
878
879 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
880
881         PR fortran/6106
882         * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01
883         change.
884
885 2002-04-04  Jakub Jelinek  <jakub@redhat.com>
886
887         * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by
888         UNITS_PER_WORD for zero sized aggregates.
889
890 2002-04-03  David S. Miller  <davem@redhat.com>
891
892         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new
893         one-character spec for this, just use %(link_gcc_c_sequence).
894
895 2002-04-03  David S. Miller  <davem@redhat.com>
896
897         * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian
898         handling.
899
900 2002-04-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
901
902         * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move.
903         (DWARF_FRAME_RETURN_COLUMN): Move.
904         (ASM_PREFERRED_EH_DATA_FORMAT): Define.
905         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define.
906         * pa.c (except.h, predict.h): Include.
907         (FRP): Delete.
908         (store_reg_modify, set_reg_plus_d): Revise prototypes.
909         (output_ascii): Add cast.
910         (store_reg_modify): Revise to add frame notes.
911         (set_reg_plus_d): Likewise.
912         (compute_frame_size): Include space for eh data registers in frame if
913         the current function calls eh_return.
914         (hppa_expand_prologue):  Ensure register %r2 is saved if the current
915         function calls eh_return.  Save eh data registers if the current
916         function calls eh_return.  Fix code to add frame notes.  Emit
917         blockage to prevent insns with frame notes being scheduled in the
918         delay slot of calls.
919         (hppa_expand_epilogue): Restore eh data registers and do final stack
920         adjustment if the current function calls eh_return.  Don't add frame
921         notes.
922         (output_call): Revise for change in length of call insn.  Don't do
923         return pointer adjustment for an unconditional jump in the delay slot
924         of a call when using frame notes.
925         * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility.
926         (EH_RETURN_HANDLER_RTX): Use saved value on stack.
927         (ARG_POINTER_CFA_OFFSET): Define.
928         * pa.md (return_external_pic): New pattern.
929         (prologue): Correct formatting.  Use return_external_pic if current
930         function calls eh_return.
931         (call_internal_symref, call_value_internal_symref,
932         sibcall_internal_symref, sibcall_value_internal_symref): Change default
933         lengths of short, long non-pic, and long pic calls to 8, 68, and 84,
934         respectively.
935         (exception_receiver): Use hppa_pic_save_rtx () to restore pic register.
936
937         * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to
938         list of targets to check using "nop" insn.
939         * configure: Rebuilt.
940
941 2002-04-04  Alan Modra  <amodra@bigpond.net.au>
942
943         * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define.
944
945 2002-04-03  David S. Miller  <davem@redhat.com>
946
947         * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c
948         library sequence passed to the linker.
949         (LINK_COMMAND_SPEC): Use it.
950         * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as
951         a macro a target can use to avoid overriding LINK_COMMAND_SPEC.
952         * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
953
954 2002-04-03  Jason Merrill  <jason@redhat.com>
955
956         * except.c (struct eh_status): Remove protect_list.
957         (begin_protect_partials, end_protect_partials): Remove.
958         (add_partial_entry): Remove.
959         * except.h: Remove prototypes.
960
961         * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use
962         expand_decl_cleanup_eh.
963
964         PR c++/5636
965         * tree.h (CLEANUP_EH_ONLY): New macro.
966         * stmt.c (expand_decl_cleanup_eh): New fn.
967         (expand_cleanups): Check CLEANUP_EH_ONLY.
968         * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT.
969         Use expand_decl_cleanup_eh.
970         (expand_stmt): Adjust.
971         * c-common.h: Adjust prototype.
972
973 2002-04-04  Hans-Peter Nilsson  <hp@axis.com>
974
975         * config/cris/cris.c (cris_target_asm_function_prologue): Cast
976         uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings.
977         (cris_target_asm_function_epilogue): Ditto.
978         (cris_initial_frame_pointer_offset): Ditto.
979         (cris_simple_epilogue): Ditto.
980         (cris_expand_builtin_va_arg): Variable-size types come in
981         by-reference.
982
983 2002-04-03  David S. Miller  <davem@redhat.com>
984
985         * config/sparc/crtfastmath.c (FPRS_NS): Get it right for
986         little-endian.
987         (set_fast_math): Correct 'fsr' type.
988
989 2002-04-03  Richard Henderson  <rth@redhat.com>
990
991         PR opt/3569
992         * langhooks.h (lang_hooks.decls.warn_unused_global): New.
993         * toplev.c (check_global_declarations): Use it.
994         * langhooks-def.h (lhd_warn_unused_global_decl): Declare.
995         (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
996         (LANG_HOOKS_DECLS): Add it.
997         * langhooks.c (lhd_warn_unused_global_decl): New.
998         * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
999         * c-objc-common.c (c_warn_unused_global_decl): New.
1000         * c-tree.h (c_warn_unused_global_decl): Declare.
1001         * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
1002
1003 2002-04-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1004
1005         * langhooks-def.h (lhd_set_decl_assembler_name,
1006         LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New.
1007         (LANG_HOOKS_INITIALIZER): Update.
1008         * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c
1009         * langhooks.h (struct lang_hooks): New hook.
1010         * tree.c (set_decl_assembler_name): Move to langhooks.c.
1011         (lang_set_decl_assembler_name): Remove.
1012         (init_obstacks): Don't set hook.
1013         (decl_assembler_name): New function.
1014         * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call.
1015         (decl_assembler_name): New.
1016         (lang_set_decl_assembler_name): Remove.
1017
1018 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1019
1020         * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32()
1021         works properly with .hidden symbols.
1022         * configure: Rebuilt.
1023         * config.in: Rebuilt.
1024         * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
1025         DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work
1026         properly with .hidden symbols.
1027
1028 2002-04-03  Jakub Jelinek  <jakub@redhat.com>
1029
1030         PR middle-end/6102
1031         * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access
1032         USE argument.
1033
1034 2002-04-03  Richard Henderson  <rth@redhat.com>
1035
1036         PR opt/4120
1037         * sched-rgn.c (sets_likely_spilled): New.
1038         (sets_likely_spilled_1): New.
1039         (add_branch_dependences): Use it.
1040
1041 2002-04-02  Richard Henderson  <rth@redhat.com>
1042
1043         PR opt/4311
1044         * loop.h (LOOP_FIRST_PASS): New.
1045         * loop.c (strength_reduce): Mind it when deciding to unroll.
1046         * toplev.c (rest_of_compilation): Set it.
1047
1048 2002-04-02  David S. Miller  <davem@redhat.com>
1049
1050         * config/sparc/sparc.md (ldd peephole2s): Fix final arg to
1051         mems_ok_for_ldd_peep when the order of the loads being examined
1052         is reversed.
1053         * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon
1054         existing comment to increase comprehension of this situation.
1055
1056 2002-04-02  Zack Weinberg  <zack@codesourcery.com>
1057
1058         * config/sh/sh.md: Don't use union real_extract.
1059
1060 2002-04-02  Richard Henderson  <rth@redhat.com>
1061
1062         * libgcc2.c (__bb_exit_func): Revert 03-31 change.
1063
1064 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1065
1066         * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems,
1067         i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-,
1068         i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1,
1069         i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos,
1070         i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd,
1071         i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf,
1072         i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix,
1073         i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout,
1074         i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32,
1075         i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd,
1076         i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems,
1077         i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv,
1078         i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta,
1079         i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd):
1080         Include as many configury headers via tm_file as possible.  This
1081         includes among others i386/unix.h, i386/bsd.h, i386/gas.h.
1082         * config/openbsd-oldgas.h: New file.
1083         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h,
1084         config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h,
1085         config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h,
1086         config/i386/i386-coff.h, config/i386/i386-interix.h,
1087         config/i386/iscdbx.h, config/i386/linux-aout.h,
1088         config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h,
1089         config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h,
1090         config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h,
1091         config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h,
1092         config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h,
1093         config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h,
1094         config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h,
1095         config/i386/vxi386.h: Do not directly include configury headers.
1096         * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h:
1097         Directly include configury headers that are no longer automatically
1098         included by the above headers.
1099         * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define.
1100         * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h,
1101         config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h,
1102         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h,
1103         config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h,
1104         config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h,
1105         config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h
1106         (TARGET_VERSION): Define.
1107         * config/i386/beos-elf.h, config/i386/freebsd.h,
1108         config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h,
1109         config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1110         config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h,
1111         config/i386/sco5.h, config/i386/sysv4.h
1112         (TARGET_VERSION): Do not need to protect.
1113         * config/i386/freebsd64.h (TARGET_VERSION): Fix style.
1114         * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h,
1115         config/i386/freebsd-aout.h, config/i386/i386-aout.h,
1116         config/i386/i386-interix.h, config/i386/linux-aout.h,
1117         config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h,
1118         config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h
1119         (YES_UNDERSCORES): Do not define - not needed.
1120         * config/i386/bsd.h, config/i386/gas.h (LPREFIX,
1121         ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1122         USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case.
1123         * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h
1124         (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL,
1125         USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case)
1126         * config/i386/isc.h: Preserve comment from config/i386/isccoff.h.
1127         * config/i386/isccoff.h, config/i386/v3gas.h: Remove.
1128
1129 2002-04-02  Eric Botcazou  <ebotcazou@multimania.com>
1130             Richard Henderson  <rth@redhat.com>
1131
1132         PR c/5484
1133         * function.c (assign_temp): Accept either type or decl argument.
1134         Detect variables whose size is too large to fit into an integer.
1135         * stmt.c (expand_decl): Pass the decl, not the type.
1136
1137 2002-04-02  David O'Brien  <obrien@FreeBSD.org>
1138
1139         * protoize.c: Match include directory usage with cppdefault.c.
1140
1141 2002-04-03  Jeffrey A Law  (law@redhat.com)
1142             Hans-Peter Nilsson  <hp@bitrange.com>
1143
1144         * combine.c (simplify_comparison): Avoid narrowing a comparison
1145         with a paradoxical subreg when doing so would drop signficant bits.
1146
1147 2002-04-02  Steve Ellcey  <sje@cup.hp.com>
1148
1149         * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode
1150         if POINTERS_EXTEND_UNSIGNED is defined.
1151
1152 2002-04-02  Richard Henderson  <rth@redhat.com>
1153
1154         PR opt/3967
1155         * local-alloc.c (contains_replace_regs): LO_SUM may contain
1156         replace regs.
1157
1158 2002-04-02  Richard Henderson  <rth@redhat.com>
1159
1160         * doc/standards.texi: Document required freestanding libc entry points.
1161
1162 2002-04-02  Alan Modra  <amodra@bigpond.net.au>
1163
1164         * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and
1165         associated splitter.  Remove MQ constraint.
1166         (ctrdi_internal4): Correct CCmode clobber.
1167
1168 2002-04-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1169
1170         * milli64.S ($$dyncall): New function.
1171         * t-linux (LIB1ASMFUNCS): Revise module list.
1172         (LIB1ASMSRC): Use pa/milli64.S.
1173
1174 2002-04-02  Richard Henderson  <rth@redhat.com>
1175
1176         * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and
1177         rename solaris_sys_varargs_h.
1178
1179 Tue Apr  2 06:47:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1180
1181         * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array
1182         the same mode as its component.
1183
1184 2002-04-02  Richard Henderson  <rth@redhat.com>
1185
1186         PR opt/190
1187         * final.c (this_is_asm_operands): Export.
1188         * output.h (this_is_asm_operands): Declare.
1189         * config/i386/i386.c (print_operand): Error odd asm operands.
1190
1191 2002-04-02  Richard Henderson  <rth@redhat.com>
1192
1193         PR opt/420
1194         * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra.
1195
1196 2002-04-01  Richard Henderson  <rth@redhat.com>
1197
1198         PR target/1538
1199         * fixinc/inclhack.def (solaris_sys_varargs_h): New.
1200         * fixinc/fixincl.x: Rebuild.
1201
1202 2002-04-01  Richard Henderson  <rth@redhat.com>
1203
1204         * config/ia64/unwind-ia64.c: Include ia64intrin.h.
1205         (atomic_alloc, atomic_free): New.
1206         (SIZE, MASK_FOR, PTR_IN): New.
1207         (emergency_reg_state, emergency_reg_state_free): New.
1208         (emergency_labeled_state, emergency_labeled_state_free): New.
1209         (reg_state_alloced, labeled_state_alloced): New.
1210         (alloc_reg_state, free_reg_state): New.
1211         (alloc_label_state, free_label_state, free_label_states): New.
1212         (push, pop, dup_state_stack, free_state_stack): Use them.
1213         (desc_label_state): Likewise.
1214         (uw_frame_state_for): Free label states and state stack.
1215         (uw_update_reg_address): Eliminate warnings.
1216
1217 2002-04-01  Vladimir Makarov  <vmakarov@redhat.com>
1218
1219         * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON,
1220         ASM_OUTPUT_ALIGNED_LOCAL): Redefine them.
1221
1222 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1223
1224         * c-decl.c (grokdeclarator): Update.
1225         * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1226         * c-tree.h (c_mark_addressable): New.
1227         * c-typeck.c (default_function_array_conversion, build_unary_op,
1228         build_array_ref, convert_for_assignment): Update.
1229         (mark_addressable): Rename.
1230         * calls.c (try_to_integrate, expand_call): Use langhook.
1231         * expr.c (expand_expr): Use langhook.
1232         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update.
1233         * langhooks.h (struct lang_hooks): New hook.
1234         * stmt.c (expand_asm_operands): Use langhook.
1235         * tree.h (mark_addressable): Remove.
1236 objc:
1237         * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1238
1239 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1240
1241         * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning
1242         in previous change.
1243
1244 2002-04-01  Bob Wilson  <bob.wilson@acm.org>
1245
1246         * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments
1247         for which MUST_PASS_IN_STACK is true (e.g., variable-sized types).
1248
1249 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1250
1251         * c-common.c (unsigned_conversion_warning, convert_and_check,
1252         unsigned_type, signed_type, shorten_compare,
1253         c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks.
1254         (unsigned_type, signed_type, signed_or_unsigned_type): Rename.
1255         * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type):
1256         New.
1257         * c-decl.c (grokdeclarator): Update.
1258         * c-format.c (check_format_types): Update.
1259         * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1260         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1261         * c-typeck.c (build_binary_op, convert_for_assignment): Update.
1262         * convert.c (convert_to_integer): Use new hooks.
1263         * expmed.c (make_tree): Use new hooks.
1264         * expr.c (store_expr): Use new hooks.
1265         * fold-const.c (operand_equal_for_comparison_p, build_range_check,
1266         all_ones_mask_p, unextend, fold): Use new hooks.
1267         * langhooks.h (struct lang_hooks_for_types): New hooks.
1268         * tree.h (signed_or_unsigned_type, signed_type,
1269         unsigned_type): Remove.
1270 objc:
1271         * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1272         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1273
1274 2002-03-31  Richard Henderson  <rth@redhat.com>
1275
1276         * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset.
1277         (desc_frgr_mem): Fix reference to f16-f31.
1278
1279 2002-03-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1280
1281         * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2,
1282         RTVEC_ELT): Const-ify.
1283         * varray.h (VARRAY_CHECK): Const-ify.
1284         * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree,
1285         ggc_mark_rtvec, ggc_mark): Const-ify.
1286
1287 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1288
1289         * diagnostic.c: Include langhooks-def.h.
1290         * Makefile.in (diagnostic.o): Update.
1291
1292 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1293
1294         * c-common.c (c_unsafe_for_reeval): Rename.
1295         * c-common.h (c_unsafe_for_reeval): Rename.
1296         * c-decl.c (finish_incomplete_decl): Rename.
1297         (c_init_decl_processing): Don't set langhook.
1298         * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1299         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1300         * c-objc-common.c (c_objc_common_init): Don't set langhook.
1301         * c-tree.h (finish_incomplete_decl): Rename.
1302         * langhooks-def.h (lhd_unsafe_for_reeval): New.
1303         (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New.
1304         (LANG_HOOKS_INITIALIZER): Update.
1305         * langhooks.c (lhd_unsafe_For_reeval): New.
1306         * langhooks.h (struct langhooks): New hooks.
1307         * toplev.c (incomplete_decl_finalize_hook): Remove.
1308         (wrapup_global_declarations): Update.
1309         * tree.c (lang_unsafe_for_reeval): Remove.
1310         (unsafe_for_reeval): Update.
1311         * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook):
1312         Remove.
1313 objc:
1314         * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL,
1315         LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1316
1317 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
1318
1319         * diagnostic.c (print_error_function): Remove.
1320         (default_print_error_function): Rename.
1321         (report_error_function): Update.
1322         * diagnostic.h (print_error_function): Remove.
1323         (default_print_error_function): Remove.
1324         * langhooks-def.h (struct diagnostic_context): Predeclare.
1325         (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New.
1326         (LANG_HOOKS_INITIALIZER): Update.
1327         * langhooks.h (struct diagnostic context): Predeclare.
1328         (struct lang_hooks): New hook.
1329
1330 2002-03-31  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1331
1332         * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New.
1333         (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if
1334         !flag_pic.
1335         (CONDITIONAL_REGISTER_USAGE): Adjust accordingly.
1336         * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead
1337         of PIC_OFFSET_TABLE_REGNUM thruout.
1338         * config/rs6000/rs6000.md: Likewise.
1339         * config/rs6000/darwin.h: Likewise.
1340
1341 Sun Mar 31 14:43:24 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1342
1343         * emit-rtl.c (adjust_address_1, offset_address): Cast value to
1344         unsigned HOST_WIDE_INT, not unsigned int.
1345
1346 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1347
1348         PR middle-end/6096, middle-end/6098, middle-end/6099
1349         * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for
1350         CODE_LABELs.
1351         (fill_slots_from_thread): Likewise.
1352
1353 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1354
1355         * config/sparc/sparc.c (function_arg_record_value_1): Pass complex
1356         floating fields in float regs.
1357         (function_arg_record_value_2): Likewise.
1358
1359 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1360
1361         * config/mmix/mmix.md (define_constants): Remove misleading
1362         FIXME.  Add MMIX_fp_rO_OFFSET.
1363         ("nonlocal_goto_receiver"): Don't have stack-frame address of
1364         saved rO as part of the pattern.  Remove FIXME.
1365         ("*nonlocal_goto_receiver_expanded"): Similar.  Generate address
1366         here, at output-time.
1367
1368 2002-03-31  Jakub Jelinek  <jakub@redhat.com>
1369
1370         PR middle-end/6100
1371         * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not
1372         REG_BR_PRED.
1373         (output_v9branch): Likewise.
1374
1375 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1376
1377         * gcc.c: Revert previous patch for now.
1378         * config/i386/djgpp.h: Likewise.
1379
1380 2002-03-31  Hans-Peter Nilsson  <hp@bitrange.com>
1381
1382         * config/mmix/crti.asm (_init): Register _fini with atexit.
1383         * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0".
1384
1385 2002-03-31  Richard Henderson  <rth@redhat.com>
1386
1387         PR target/3997
1388         * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy.
1389         (ASM_OUTPUT_DEF_FROM_DECLS): New.
1390
1391 2002-03-31  Richard Henderson  <rth@redhat.com>
1392
1393         * libgcc2.c (__bb_exit_func): Make static.
1394
1395         * config/alpha/alpha.md (trap): New.
1396
1397 2002-03-31  Richard Henderson  <rth@redhat.com>
1398
1399         * builtins.c (expand_builtin_va_arg): Give warnings not errors for
1400         promoted argument types; build trap.
1401         (expand_builtin_trap): New.
1402         (expand_builtin): Use it.
1403         * stmt.c (expand_nl_goto_receivers): Likewise.
1404         * expr.h (expand_builtin_trap): Declare.
1405         * libfuncs.h (LTI_abort, abort_libfunc): New.
1406         * optabs.c (init_optabs): Init abort_libfunc.
1407
1408 2002-03-31  Alexandre Oliva  <aoliva@redhat.com>
1409
1410         * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here...
1411         (LINK_COMMAND_SPEC): ... from here.
1412         (init_gcc_specs): Duplicate it here too, omitting
1413         shared_name in the second copy.
1414         (init_spec): Test for duplicate
1415         * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'.
1416
1417 2002-03-30  David S. Miller  <davem@redhat.com>
1418
1419         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
1420         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise.
1421
1422 2002-03-30  Roger Sayle <roger@eyesopen.com>
1423             Richard Henderson  <rth@redhat.com>
1424
1425         * regmove.c (combine_stack_adjustments_for_block): Avoid
1426         emitting a stack adjustment of zero bytes.  Let delete_insn
1427         update bb->head.
1428
1429 2002-03-30  Richard Henderson  <rth@redhat.com>
1430
1431         * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE.
1432         (sparc_emitting_epilogue): New.
1433         (leaf_label, output_return, sparc_return_peephole_ok): Remove.
1434         * config/sparc/sparc-protos.h: Update.
1435         * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove.
1436         (TARGET_SWITCHES): Update.
1437         * config/sparc/sparc.md (return): Remove.
1438         (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE.
1439         * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h,
1440         config/sparc/liteelf.h, config/sparc/netbsd-elf.h,
1441         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
1442         config/sparc/sp64-aout.h, config/sparc/sp64-elf.h,
1443         config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h,
1444         config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT):
1445         Remove MASK_EPILOGUE.
1446         * doc/invoke.texi: Update.
1447
1448 2002-03-30  Daniel Berlin  <dan@dberlin.org>
1449
1450         * dwarf2out.c (dwarf2out_define): Remove start_source_file call,
1451         CPP will start the file for us.
1452
1453 2002-03-30  Richard Henderson  <rth@redhat.com>
1454
1455         PR target/5446
1456         * config/ia64/ia64.c (group_barrier_needed_p): Special case
1457         prologue_allocate_stack.
1458         (ia64_single_set): Use insn codes for recognition of special
1459         cases, not rtl matching.
1460         * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out.
1461
1462 Sat Mar 30 23:48:41 CET 2002  Jan Hubicka  <jh@suse.cz>
1463
1464         * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks.
1465
1466 2002-03-30  Richard Henderson  <rth@redhat.com>
1467
1468         PR target/6032
1469         * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic
1470         or -fomit-frame-pointer with profiling.
1471         (SUBTARGET_OVERRIDE_OPTIONS): Remove.
1472         (FUNCTION_PROFILER): Do nothing.
1473         (PROFILE_HOOK): New.
1474         * config/sparc/sparc.c (sparc_override_options): Don't check
1475         code models for profiling.
1476         (sparc_function_profiler): Remove.
1477         (sparc_profile_hook): New.
1478         * config/sparc/sparc-protos.h: Update.
1479
1480 2002-03-30  Jakub Jelinek  <jakub@redhat.com>
1481
1482         PR optimization/6086
1483         * combine.c (combine_simplify_rtx): If simplify_rtx failed because
1484         of SUBREG of volatile MEM or because the MEM was mode dependent,
1485         return CLOBBER instead of unmodified SUBREG.
1486
1487 Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
1488
1489         * local-alloc.c (local_alloc): Avoid call of update_equiv_regs
1490         when not optimizing.
1491
1492         * toplev.c (rest_of_compilation): Cann mark_constant_function
1493         only when optimizing.
1494
1495         * flow.c (calculate_global_regs_live): Ensure that all AUX fields
1496         are NULL.
1497
1498         * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK.
1499         (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it.
1500         (try_optimize_cfg): clear all AUX fields.
1501
1502         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
1503         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
1504         (ix86_address_cost): Be prepared for SUBREGed registers.
1505         (legitimate_address_p): Accept SUBREGed registers.
1506
1507 2002-03-29  Richard Henderson  <rth@redhat.com>
1508
1509         PR target/5672
1510         * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place.
1511
1512 2002-03-29  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1513
1514         * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count
1515         for aggregate and TFmode types.
1516
1517 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1518
1519         * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i].
1520
1521 2002-03-29  Richard Henderson  <rth@redhat.com>
1522
1523         PR target/5886
1524         * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64.
1525         * config/ia64/hpux.h, config/ia64/linux.h: Likewise.
1526
1527 2002-03-29  Richard Henderson  <rth@redhat.com>
1528
1529         PR target/6041
1530         * config/i386/i386.c (x86_arch_always_fancy_math_387): New.
1531         (override_options): Disable NO_FANCY_MATH_387 if the arch allows.
1532         * config/i386/i386.h (x86_arch_always_fancy_math_387): New.
1533         * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix
1534         conditional.
1535         * docs/invoke.texi: Update -mno-fancy-math-387 docs.
1536
1537 2002-03-29  Dale Johannesen <dalej@apple.com>
1538
1539         * loop.c (combine_movables): Do allow combination of pseudos.
1540
1541 2002-03-29  Loren J. Rittle  <ljrittle@acm.org>
1542
1543         * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so.
1544         * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it.
1545         No functional change except ...
1546         * config/t-slibgcc-nolc-override (SHLIB_LC): Override it.  New file.
1547         * doc/install.texi (*-*-freebsd*): Document port configuration.
1548
1549 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1550
1551         * Makefile.in (convert.o, calls.o, expmed.o): Update.
1552         * attribs.c (handle_mode_attribute, handle_vector_size_attribute):
1553         Use new hooks.
1554         * builtin-types.def (BT_PTRMODE): Update.
1555         * c-common.c (type_for_size): Rename c_common_type_for_size.
1556         (type_for_mode): Similarly.
1557         (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins):
1558         Use new hook.
1559         * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New.
1560         * c-decl.c (finish_enum, build_enumerator): Use new hooks.
1561         * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1562         Redefine.
1563         * c-typeck.c (common_type, comptypes, default_conversion):
1564         Use new hooks.
1565         * calls.c: Include langhooks.h.
1566         (emit_library_call_value_1): Use new hooks.  Avoid redundant
1567         calls.
1568         * convert.c: Include langhooks.h
1569         (convert_to_pointer, convert_to_integer): Use new hooks.
1570         * except.c (init_eh): Similarly.
1571         * expmed.c: Include langhooks.h.
1572         (expand_mult_add): Use new hooks.
1573         * expr.c (store_expr, store_constructor, expand_expr, do_jump,
1574         try_casesi): Similarly.
1575         * fold-const.c (optimize_bit_field_compare, make_range,
1576         decode_field_reference, fold_truthop, fold): Similarly.
1577         * function.c (assign_stack_local_1, assign_stack_temp_for_type,
1578         put_var_into_stack): Similarly.
1579         * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE,
1580         LANG_HOOKS_TYPE_FOR_SIZE): New.
1581         (LANG_HOOKS_TYPES_INITIALIZER): Update.
1582         * langhooks.h (lang_hooks_for_types): New hooks.
1583         * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks.
1584         * tree.c (get_unwidened, get_narrower): Similarly.
1585         * tree.h (type_for_mode, type_for_size): Remove.
1586         * varasm.c (force_const_mem): Use new hooks.
1587         * utils2.c (nonbinary_modular_operation): Update.
1588 objc:
1589         * objc-act.c (handle_impent): Update.
1590         * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE):
1591         Redefine.
1592
1593 2002-03-29  Steve Ellcey  <sje@cup.hp.com>
1594
1595         * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New.
1596         * config/ia64/ia64.c (basereg_operand): New.
1597         * config/ia64/ia64-protos.h (basereg_operand): Declare.
1598         * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand.
1599
1600 2002-03-29  Hans-Peter Nilsson  <hp@bitrange.com>
1601
1602         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct
1603         unwind information when frame_pointer_needed.
1604         (mmix_assemble_integer): Tweak wording in comment.
1605
1606 2002-03-29  Neil Booth  <neil@daikokuya.demon.co.uk>
1607
1608         * Makefile.in (except.o): Update.
1609         * except.c: Include langhooks.h.
1610         (init_eh): Use langhook.
1611         * langhooks-def.h (LANG_HOOKS_MAKE_TYPE,
1612         LANG_HOOKS_FOR_TYPES_INITIALIZER): New.
1613         (LANG_HOOKS_INITIALIZER): Update.
1614         * langhooks.h (lang_hooks_for_types): New.
1615         (struct lang_hooks): Add it.
1616         * tree.c (make_lang_type_fn, make_lang_type): Remove.
1617         * tree.h (make_lang_type_fn, make_lang_type): Remove.
1618 config:
1619         * alpha/alpha.c: Include langhooks.h.
1620         (alpha_build_va_list): Use langhook.
1621         * d30v/d30v.c: Include langhooks.h.
1622         (d30v_build_va_list): Use langhook.
1623         * i386/i386.c: Include langhooks.h.
1624         (ix86_build_va_list): Use langhook.
1625         * rs6000/rs6000.c (rs6000_build_va_list): Use langhook.
1626         * s390/s390.c: Include langhooks.h.
1627         (s390_build_va_list): Use langhook.
1628         * stormy16/stormy16.c: Include langhooks.h.
1629         (stormy16_build_va_list): Use langhook.
1630
1631 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1632
1633         PR c++/5964
1634         * config/sparc/sparc.md (empty_delay_slot, branch_type): New
1635         attributes.
1636         (length): Compute variable length for branches/calls/jumps here.
1637         (branch, inverted_branch, normal_fp_branch, inverted_fp_branch,
1638         normal_fpe_branch, inverted_fpe_branch): Remove length attribute,
1639         define branch_type attribute.
1640         (divsi3_sp32): Maximum length is 6 not 7.
1641         (call_address_struct_value_sp32, call_symbolic_struct_value_sp32,
1642         call_address_untyped_struct_value_sp32,
1643         call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2.
1644         * config/sparc/sparc.c (empty_delay_slot): New function.
1645         * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove.
1646         * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype.
1647
1648 2002-03-29  Jakub Jelinek  <jakub@redhat.com>
1649
1650         * combine.c (set_nonzero_bits_and_sign_copies): Don't call
1651         nonzero_bits if not needed.
1652         (nonzero_bits) [XOR]: Likewise.
1653         (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if
1654         reg_last_set_mode and mode are both MODE_INT, but not equal.
1655         (record_value_for_reg): Compute reg_last_set_nonzero_bits
1656         in nonzero_bits_mode for MODE_INT modes.
1657
1658 2002-03-28  Richard Henderson  <rth@redhat.com>
1659
1660         PR target/5715
1661         * config/alpha/osf.h (ASM_SPEC): Don't pass any special options
1662         to GAS.  Correct drift between alternatives.
1663
1664 2002-03-28  Richard Henderson  <rth@redhat.com>
1665
1666         PR target/6087
1667         * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence.
1668
1669 2002-03-28  Alexandre Oliva  <aoliva@redhat.com>
1670
1671         * config/i386/freebsd.h (LINK_SPEC): Don't pass default
1672         emulation to the linker.
1673
1674 2002-03-28  Loren J. Rittle  <ljrittle@acm.org>
1675
1676         * config/alpha/freebsd.h (LINK_SPEC): Likewise.
1677         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
1678
1679 Thu Mar 28 16:35:31 2002  Jeffrey A Law  (law@redhat.com)
1680
1681         * combine.c (simplify_and_const_int): Make sure to apply mask
1682         when force_to_mode returns a constant integer.  PR3311.
1683
1684 2002-03-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1685
1686         * pa-linux.h (LOCAL_LABEL_PREFIX): Define.
1687
1688 2002-03-28  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1689
1690         * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options
1691         and Objective-C Dialect Options.
1692
1693 2002-03-28  Richard Henderson  <rth@redhat.com>
1694
1695         * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE
1696         comparison should be done vs !=0 not >0 return code.  Tidy cases.
1697
1698 2002-03-28  Richard Henderson  <rth@redhat.com>
1699
1700         * c-decl.c (finish_function): New arg can_defer_p.  Pass it
1701         on to c_expand_body.
1702         * c-tree.h (finish_function): Update decl.
1703         * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls.
1704
1705 Thu Mar 28 19:13:36 CET 2002  Jan Hubicka  <jh@suse.cz>
1706
1707         * ifcvt.c (if_convert): Clear aux_for_blocks early enought.
1708
1709 Thu Mar 28 13:21:53 CET 2002  Jan Hubicka  <jh@suse.cz>
1710
1711         * rtlanal.c: Include flags.h
1712         (may_trap_p): Do not mark FP operations if trapping
1713         if !flag_trapping_math
1714         * Makefile.in (rtlanal.o): Add dependency on flag.h
1715         * ifcvt.c (noce_operand_ok): Avoid the lameness.
1716
1717 2002-03-27  Zack Weinberg  <zack@codesourcery.com>
1718
1719         * mips.md: Use dconst1, not 1.0, as first argument of
1720         REAL_VALUE_LDEXP.  Don't use union real_extract.
1721
1722 2002-03-28  Alan Modra  <amodra@bigpond.net.au>
1723
1724         * configure.in (gcc_cv_as): Use $target_alias in directory searchs
1725         rather than $target.  Heed program_prefix and
1726         program_transform_name.  Search for gas in cross-compiler case too.
1727         "test -x" rather than "test -f".
1728         (gcc_cv_ld): Likewise.
1729         (gcc_cv_nm): Heed program_prefix and program_transform_name.
1730         (gcc_cv_objdump): Likewise.
1731         * configure: Regenerate.
1732
1733 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1734
1735         * Makefile.in (attribs.o): Update.
1736         * attribs.c: Include langhooks.h.
1737         (decl_attributes): Use langhook.
1738         * c-decl.c (insert_default_attributes): Rename.
1739         * c-tree.h (c_insert_default_attributes): New.
1740         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New.
1741         (LANG_HOOKS_INITIALIZER): Update.
1742         * langhooks.h (struct lang_hooks): New hook.
1743         * tree.h (insert_default_attributes): Remove.
1744 objc:
1745         * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1746
1747 2002-03-27  Andreas Schwab  <schwab@suse.de>
1748
1749         * config/i386/i386.c (classify_argument): Also check for
1750         QUAL_UNION_TYPE.
1751
1752 2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1753
1754         * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj
1755         any more.
1756
1757 Wed Mar 27 23:19:30 CET 2002  Jan Hubicka  <jh@suse.cz>
1758
1759         * i960.md (ret): Set PC.
1760         (nonlocal_goto): Fix expander.
1761         * builtins.c (epxand_builin_longjmp): Check that we've emitted
1762         some jump or call.
1763
1764 Wed Mar 27 23:11:35 CET 2002  Jan Hubicka  <jh@suse.cz>
1765
1766         * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting
1767         of libcall regions.
1768
1769 Wed Mar 27 22:54:14 CET 2002  Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1770
1771         * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of
1772         assigning to BLOCK_FOR_INSN directly.
1773
1774 Wed Mar 27 22:33:05 CET 2002  Jan Hubicka  <jh@suse.cz>
1775
1776         * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround.
1777
1778 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1779
1780         * c-common.c (c_expand_expr): Fix prototype.
1781         * c-common.h (c_expand_expr): Always declare, update.
1782         * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1783         * c-objc-common.c (c_objc_common_init): No global hook.
1784         * expr.c (expand_expr): Use langhook.
1785         * expr.h (enum expand_modifier): Conditionally declare.
1786         * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New.
1787         (LANG_HOOKS_INITIALIZER): Update.
1788         * langhooks.c (lhd_expand_expr): New.
1789         * langhooks.h (struct lang_hooks): New hook.
1790         * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete.
1791         (lang_independent_init): Don't default hook.
1792 objc:
1793         * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1794
1795 2002-03-27  Richard Henderson  <rth@redhat.com>
1796
1797         PR target/6054
1798         * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for
1799         TARGET_CONST_GP.  Simplify conditions.
1800
1801 2002-03-27  Richard Henderson  <rth@redhat.com>
1802
1803         * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
1804         config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h,
1805         config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define.
1806
1807 2002-03-27  Danny Smith  <dannysmith@users.sourceforge.net>
1808
1809         * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32,
1810         TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches.
1811         (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS):
1812         Remove unnecessary masks.
1813         (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit.
1814         (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin,
1815         -mwindows, -mdll switches and their negations.
1816
1817 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
1818
1819         * gcc-common.c (lang_mark_false_label_stack): Remove.
1820         * ggc.h (lang_mark_false_label_stack): Similarly.
1821
1822 2002-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1823
1824         * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__.
1825
1826         * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__
1827         or __rtems_ is defined.
1828
1829 2002-03-26  Richard Henderson  <rth@redhat.com>
1830
1831         * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note
1832         if a non-trivial load was emitted.
1833         (alpha_emit_set_const_1): Remove obsolete extension.  Fix thinko
1834         in high+extra+low case.
1835
1836 2002-03-26  Richard Henderson  <rth@redhat.com>
1837
1838         * config.gcc (sparc*-solaris): Use float_format=sparc.
1839
1840 2002-03-26  Richard Henderson  <rth@redhat.com>
1841
1842         * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define.
1843         * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef.
1844         * config/sparc/linux.h, config/sparc/linux64.h: Likewise.
1845         * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine.
1846         (WINT_TYPE_SIZE): Fix at 32.
1847
1848 2002-03-26  Richard Henderson  <rth@redhat.com>
1849
1850         * toplev.c (rest_of_compilation): Delay emit_initial_value_sets
1851         until after eh landing pad generation.
1852         * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof.
1853         * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs.
1854
1855 2002-03-26  Richard Henderson  <rth@redhat.com>
1856
1857         * expr.h (ADD_PARM_SIZE): One more convert for INC.
1858
1859 2002-03-26  Phil Edwards  <pme@gcc.gnu.org>
1860
1861         * gcc.c (cpp_options):  Preserve relative ordering of -pedantic
1862         and warning switches.
1863         (cc1_options):  Likewise.
1864
1865 2002-03-26  Hans Boehm <Hans_Boehm@hp.com>
1866
1867         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR):
1868         Restore more of the signal context.  Set no_reg_stack_frame.
1869         * config/ia64/unwind-ia64.c (unw_state_record):
1870         Add no_reg_stack_frame, comments.
1871         (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER.
1872         (uw_update_context): Adjust bsp when unwinding from leaf,
1873         but not signal frame.
1874
1875 2002-03-26  David Edelsohn  <edelsohn@gnu.org>
1876
1877         * config/rs6000/aix51.h (WCHAR_TYPE): Define.
1878
1879 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1880
1881         * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types.
1882
1883 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1884
1885         PR target/5621
1886         * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999:
1887         "Add a pool_range attribute", which was lost during the ARM/Thumb
1888         merge.
1889
1890 2002-03-26  Bob Wilson  <bob.wilson@acm.org>
1891
1892         * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from
1893         a register into the MAC16 accumulator.
1894
1895 2002-03-26  Andrew Cagney  <ac131313@redhat.com>
1896
1897         * doc/invoke.texi (Option Summary): Mention -Wswitch-enum.
1898         (Warning Options): Document -Wswitch-enum.
1899         * toplev.c (W_options): Add -Wswitch-enum.  Update comment on
1900         -Wswitch.
1901         (warn_switch_enum): Define variables.
1902         * flags.h (warn_switch_enum): Declare variables.
1903         * stmt.c (expand_end_case_type): When warn_switch_enum /
1904         -Wswitch-enum, perform switch checks.
1905         Fix PR c/5044.
1906
1907 2002-03-26  Richard Earnshaw  <rearnsha@arm.com>
1908
1909         * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi)
1910         (reload_mulsi_compare0_scratch, reload_muladdsi_compare0)
1911         (reload_muladdsi_compare0_scratch): Delete.
1912
1913 2002-03-26  Loren J. Rittle  <ljrittle@acm.org>
1914
1915         * doc/install.texi (*-*-freebsd*): Update.
1916
1917 2002-03-26  Richard Henderson  <rth@redhat.com>
1918
1919         * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype.
1920         (SUB_PARM_SIZE): Cast DEC to ssizetype.
1921
1922         * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK
1923         types from the normal argument frame.
1924
1925         * config/sparc/sparc.c (function_arg_pass_by_reference): Pass
1926         variable sized objects by reference.
1927         (sparc_va_arg): Receive them by reference too.
1928
1929 2002-03-26  Hartmut Penner  <hpenner@de.ibm.com>
1930
1931         * config/s390/s390.c (s390_emit_epilogue): Change epilogue
1932         code to not restoring global registers.
1933
1934 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1935
1936         * Makefile.in (ggc-common.o): Update.
1937         * c-decl.c (lang_mark_tree): Rename c_mark_tree.
1938         * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1939         * c-tree.h (c_mark_tree): New.
1940         * ggc-common.c: Include langhooks.h.
1941         (gcc_mark_trees): Use new langhook.
1942         * ggc-callbacks.c: Delete file.
1943         * ggc.h (lang_mark_tree): Remove.
1944         * langhooks-def.h (LANG_HOOKS_MARK_TREE): New.
1945         (LANG_HOOKS_INITIALIZER): Update.
1946         * langhooks.h (struct lang_hooks): New hook.
1947 objc:
1948         * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1949
1950 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1951
1952         * doc/cpp.texi: Exclude entire Top node from printed manual.
1953         Move option index after directive index.  Insert page breaks
1954         before GFDL and concept index.  Index environment variables
1955         with command line options.
1956         * doc/cppenv.texi: Use @vtable for environment variable list.
1957         Add paragraph explaining semantics of empty elements in path
1958         variables.  Exclude a cross-reference to Fishkill from the
1959         manpage.  Remove an unnecessary cross-reference of the entry
1960         right above the referer.  Don't use @anchor in text that goes
1961         into manpage.
1962         * doc/cppopts.texi: Cross-reference the environment variables
1963         section, not the specific environment variable, for consistency.
1964
1965 2002-03-25  Richard Henderson  <rth@redhat.com>
1966
1967         * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes
1968         anywhere in the block.  Don't refer to insns that have been
1969         removed from the chain.  Iterate backward through the new insns.
1970         Don't refer to edges that have been removed.
1971
1972 2002-03-26  Alan Modra  <amodra@bigpond.net.au>
1973
1974         * combine.c (simplify_comparison <ASHIFTRT, LSHIFTRT>): Correct
1975         test for overflow of constant.
1976
1977 2002-03-25  Richard Earnshaw  <rearnsha@arm.com>
1978
1979         PR target/2623
1980         * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc)
1981         (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use
1982         these patterns on arm_archv4.
1983
1984 2002-03-25  Danny Smith  <dannysmith@sourceforge.users.net>
1985
1986         * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned
1987         int".
1988
1989 2002-03-25  Zack Weinberg  <zack@codesourcery.com>
1990
1991         * toplev.c: Don't include setjmp.h.  Kill float_handler_set,
1992         float_handled, float_handler, float_signal, set_float_handler,
1993         and do_float_handler.  Set handler for SIGFPE to crash_signal.
1994         * toplev.h: Don't prototype do_float_handler.
1995
1996         * c-lex.c: Fold parse_float into lex_number.  Make warning
1997         about portability of hex float constants more informative, and
1998         don't issue it on top of a syntax error.
1999         * fold-const.c: Fold const_binop_1 and fold_convert_1 into
2000         their callers.
2001         * real.h: Define REAL_VALUE_ABS here...
2002         * simplify-rtx.c: ... not here.  Fold check_fold_consts,
2003         simplify_unary_real, simplify_binary_real, and
2004         simplify_binary_is2orm1 into their callers.
2005         * tree.c: Fold build_real_from_int_cst_1 into caller.
2006
2007         * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE.
2008
2009         * tsystem.h: Include float.h here...
2010         * libgcc2.c: ... not here.
2011
2012 2002-03-25  Nick Clifton  <nickc@cambridge.redhat.com>
2013
2014         Fixes for: PR bootstrap/3591, target/5676
2015         * config/mcore/mcore.h (CC1_SPEC): Define only if not already
2016         defined.  Do not disable exceptions or rtti.
2017         * config/mcore/mcore-pe.h (CC1_SPEC): Define before including
2018         mcore.h.  Disable exceptions and rtti, since they are not
2019         supported by EPOC.
2020
2021 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
2022
2023         * c-decl.c (maybe_build_cleanup): Remove.
2024         * expr.c (expand_expr): Use langhook.
2025         * langhooks-def.h (lhd_return_null_tree,
2026         LANG_HOOKS_MAYBE_BUILD_CLEANUP): New.
2027         (LANGHOOKS_INITIALIZER): Update.
2028         * langhooks.c (lhd_return_null_tree): New.
2029         * langhooks.h (struct lang_hooks): New hook.
2030         * tree-inline.c (initialize_inlined_parameters): Use langhook.
2031         * tree.h (maybe_build_cleanup): Remove.
2032
2033 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2034
2035         * regrename.c (build_def_use): Move recog_memoized
2036         before extract_insn.
2037
2038 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2039
2040         PR target/6043
2041         * expr.c (emit_group_store): Handle storing into CONCAT.
2042
2043 2002-03-25  Jakub Jelinek  <jakub@redhat.com>
2044
2045         * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and
2046         corresponding MATCH_DUP.
2047
2048 2002-03-24  Richard Henderson  <rth@redhat.com>
2049
2050         * unroll.c (unroll_loop): Zero label_map.
2051
2052         * gcse.c: Include except.h.
2053         * Makefile.in (gcse.o): Update.
2054
2055 2002-03-24  Richard Henderson  <rth@redhat.com>
2056
2057         * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change.
2058         Do resolve_unique_section before shared data clause.
2059
2060 2002-03-24  Richard Henderson  <rth@redhat.com>
2061
2062         * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static.
2063
2064 2002-03-24  Richard Henderson  <rth@redhat.com>
2065
2066         * recog.c (peephole2_optimize): Split blocks when EH insns are
2067         generated in the middle of a block.  Do global life update if
2068         zapped EH edges.
2069
2070 2002-03-24  Richard Henderson  <rth@redhat.com>
2071
2072         * mips.c (mips_function_value): Only promote_mode for non-libcalls.
2073
2074 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2075
2076         preprocessor/3951
2077         * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF.
2078         * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD.
2079         (init_dependency_output): Don't make no_output decision here.
2080
2081 2002-03-24  Andrew Cagney  <ac131313@redhat.com>
2082
2083         * stmt.c (check_for_full_enumeration_handling): Remove tests of
2084         warn_switch.  Update description.
2085         (expand_end_case_type): Call check_for_full_enumeration_handling
2086         when warn_switch.
2087
2088 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2089
2090         * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function.
2091         (m68hc11_split_move): Call it to see if the source and destination
2092         operands use the same direction auto inc/dec mode, otherwise make the
2093         source an offsetable memory operand and generate an add.
2094
2095 2002-03-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2096
2097         * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address
2098         register for operand 2.
2099         ("*subsi3_zero_extendqi"): Likewise.
2100         ("*iorhi3_gen"): Do the operation on the upper bits and then lower
2101         bits so that it is compatible with a pop.
2102         ("*andhi3_gen"): Likewise.
2103         ("xorhi3"): Likewise.
2104
2105 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2106
2107         * cppinit.c (cpp_handle_option): Set warn_endif_labels if
2108         -pedantic here...
2109         (cpp_post_options): ... not here.
2110
2111 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
2112             Aldy Hernandez  <aldyh@redhat.com>
2113
2114         Removal of separate preprocessor cpp0.
2115
2116         * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS,
2117         cpp0, install-common): Update.
2118         * c-common.c (flag_preprocess_only): New.
2119         (c_common_init): Preprocess for -E.
2120         * c-common.h (flag_preprocess_only): New.
2121         * c-decl.c (c_decode_option): Handle -E and -std=c++98.
2122         * c-objc-common.c (c_init_decl_processing): Exit quickly
2123         for NULL return from c_common_init.
2124         * cpplib.h (cpp_preprocess_file): New.
2125         * cppmain.c (main, general_init, pfile, progname): Remove.
2126         (do_preprocessing): Rename cpp_preprocess_file, don't call
2127         cpp_finish.  Don't close stdout here.
2128         (setup_callbacks): Update prototype.
2129         * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers):
2130         Update.
2131         * tradcpp.c (main): Ignore -quiet.
2132 objc:
2133         * lang-specs.h (default_compilers): Preprocess with cc1obj.
2134
2135 2002-03-24  Richard Henderson  <rth@redhat.com>
2136
2137         PR optimization/5742
2138         * machmode.def: Add inner mode field to complex modes.
2139         * config/mips/mips.c (mips_function_value): Always define.  Add
2140         new argument to handle libcalls.
2141         * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value.
2142         (FUNCTION_VALUE): Likewise.
2143         * config/mips/abi64.h (FUNCTION_VALUE): Remove.
2144         * config/mips/mips-protos.h: Update.
2145
2146 2002-03-23  Richard Henderson  <rth@redhat.com>
2147
2148         * config/sparc/sparc.c (sparc_emit_floatunsdi): New.
2149         * config/sparc/sparc-protos.h: Update.
2150         * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New.
2151
2152 2002-03-23  Richard Henderson  <rth@redhat.com>
2153
2154         * config/sparc/gmon-sol2.c (internal_mcount): Assume either
2155         _start or _init begins the text segment.
2156
2157 2002-03-23  David Edelsohn  <edelsohn@gnu.org>
2158
2159         * config/rs6000/rs6000.h (RETURN_IN_MEMORY):  Cast to HOST_WIDE_INT
2160         not HOST_WIDEST_INT.
2161         (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes.
2162
2163 2002-03-23  Richard Earnshaw  <rearnsha@arm.com>
2164
2165         PR java/5489
2166         * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the
2167         operand argument to output_return_instruction.
2168         * arm.c (arm_print_operand, case 'd'): If the operand is
2169         const_true_rtx then just return.
2170         (arm_print_operand, case 'D'): If the operand is const_true_rtx
2171         then abort.
2172
2173 2002-03-23  Andrew Cagney  <ac131313@redhat.com>
2174
2175         * doc/invoke.texi (Option Summary): Mention -Wswitch-default.
2176         (Warning Options): Document -Wswitch-default.
2177         * toplev.c (W_options): Add -Wswitch-default.  Update comment on
2178         -Wswitch.
2179         (warn_switch_default): Define variable.
2180         (warn_switch): Update comment.
2181         * flags.h (warn_switch_default): Declare variable.
2182         (warn_switch): Update comment.
2183         * stmt.c (expand_end_case): Check for and, when
2184         warn_switch_no_default, warn of a missing default case.
2185
2186 2002-03-23  Alan Modra  <amodra@bigpond.net.au>
2187
2188         * real.h (N): Special case 128 bit doubles.
2189
2190         * combine.c (simplify_comparison): When widening modes, ignore
2191         sign extension on CONST_INTs.
2192
2193 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2194
2195         * config/xtensa/xtensa.c (print_operand): Fix incorrect mode
2196         passed to adjust_address.  Fix comment formatting.
2197
2198
2199 2002-03-22  Zack Weinberg  <zack@codesourcery.com>
2200
2201         * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE.
2202         Always make REAL_VALUE_TYPE a struct containing an array of
2203         HOST_WIDE_INT, not a double.  Tidy up the code deciding how
2204         big it is.  Don't declare or use union real_extract.
2205
2206         * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1,
2207         decode_rtx_const, output_constant_pool), config/a29k/a29k.c
2208         (print_operand), config/arm/arm.c (output_move_double),
2209         config/arm/arm.md (consttable_4, consttable_8),
2210         config/romp/romp.c (output_fpops), config/s390/s390.h
2211         (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c
2212         (xtensa_output_literal): Don't use union real_extract.
2213
2214         * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c
2215         (sfmode_constant_to_ulong), config/ns32k/merlin.h
2216         (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand),
2217         config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h
2218         (PRINT_OPERAND): Don't use local version of union
2219         real_extract.
2220
2221         * config/convex/convex.c (check_float_value), config/vax/vax.c
2222         (vax_float_literal), config/m88k/m88k.md (divdf3),
2223         config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2),
2224         config/pdp11/pdp11.c (output_move_quad): Don't do host
2225         arithmetic on target floating point quantities.
2226
2227         * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c
2228         (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT.
2229
2230         * fold-const.c (fold), simplify-rtx.c (simplify_binary_real):
2231         Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY.
2232
2233         * real.c (earith): Test INFINITY rather than REAL_INFINITY;
2234         NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef
2235         INFINITY.
2236         * print-rtl.c (print_rtx): Disable code which needs
2237         floating-point emulator.
2238         * libgcc2.c: Include float.h and use DBL_MANT_DIG,
2239         FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than
2240         depending on HOST_FLOAT_FORMAT to be defined properly.
2241
2242         * config/1750a/1750a.c (get_double, float_label): Delete.
2243         (print_operand): Delete huge commented-out chunk.  Use
2244         REAL_VALUE_TO_DECIMAL.
2245         * config/1750a/1750a-protos.h: Delete prototypes of deleted
2246         functions.
2247         * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to
2248         IEEE_FLOAT_FORMAT.
2249         * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]):
2250         Use REAL_VALUE_TO_DECIMAL as ELF version does.
2251         * config/m88k/m88k.c (real_power_of_2_operand,
2252         legitimize_operand): Take the REAL_VALUE_TYPE and/or union
2253         real_extract out of the union; run the input through
2254         REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords
2255         from that into the union.
2256         * config/pdp11/pdp11.c (output_move_double): Rearrange
2257         parentheses to make automatic indenter happy.
2258
2259         * doc/tm.texi (Cross-compilation): Rename node to "Floating
2260         Point" and rewrite to describe current situation.  Also adjust
2261         documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to
2262         match code.
2263         * doc/rtl.texi: Adjust cross reference.
2264
2265 2002-03-22  Bob Wilson  <bob.wilson@acm.org>
2266
2267         * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove.
2268         (xtensa_valid_move, xtensa_preferred_reload_class): Define.
2269         * config/xtensa/xtensa.c (non_acc_reg_operand): Remove.
2270         (xtensa_valid_move, xtensa_preferred_reload_class): Define to
2271         prevent use of sp as a reload register.
2272         (xtensa_emit_move_sequence): Use xtensa_valid_move instead of
2273         non_acc_reg_operand.
2274         * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand.
2275         (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class.
2276         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
2277         movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand.
2278
2279 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2280
2281         * cpphash.h (struct cpp_reader): Remove mls_line and mls_col.
2282         * cpplex.c (unterminated): Delete.
2283         (parse_string): No string literal may extend over multiple
2284         lines.  Suppress the error when preprocessing assembly.
2285         * cppmain.c (scan_translation_unit): Strings are single-line.
2286
2287         * doc/cpp.texi: Update to match.
2288
2289 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2290
2291         PR optimization/5854
2292         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0.
2293         Shut up warnings.
2294         (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0.
2295         (EXTRA_CONSTRAINT): Use S for non-push memory operand.
2296         * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from
2297         const0 if scratch register was not allocated.
2298         (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart,
2299         m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...)
2300         with GEN_INT (...).
2301         (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs.
2302         * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...)
2303         with GEN_INT (...) everywhere.  Remove constraints in define_split
2304         patterns.
2305         (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't
2306         require scratch register for setting 0 into regs/non-pushable memory.
2307
2308 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2309
2310         * config/mips/mips.h (MASK_RETURN_ADDR): Define.
2311         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define.
2312
2313 2002-03-22  Phil Edwards  <pme@gcc.gnu.org>
2314
2315         * cpplib.h (struct cpp_options):  New member, warn_endif_labels.
2316         * cppinit.c (cpp_create_reader):  On by default.
2317         (cpp_handle_option):  Handle -W[no-]endif-labels.
2318         (cpp_post_options):  Also enable if -pedantic.
2319         * cpplib.c (do_else):  Use it.
2320         (do_endif):  Likewise.
2321         * doc/cppopts.texi:  Document new option.
2322         * doc/invoke.texi:  Document new option.
2323
2324 2002-03-22  Lars Brinkhoff  <lars@nocrew.org>
2325
2326         * config/i386/i386.c, config/i386/i386.md: Change all occurences
2327         of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...).
2328
2329 2002-03-22  Alexandre Oliva  <aoliva@redhat.com>
2330
2331         * flow.c (calculate_global_regs_live): Clear aux fields of
2332         ENTRY and EXIT.
2333
2334 2002-03-22  Jakub Jelinek  <jakub@redhat.com>
2335
2336         * config/v850/v850.c (v850_reorg): Only call alter_subreg on
2337         REG or MEM subregs, pass rtx * instead of rtx to it.
2338         * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass
2339         rtx * instead of rtx to alter_subreg.
2340         * config/m32r/m32r.c (gen_split_move_double): Likewise.
2341         * config/pj/pj.c (pj_output_rval): Likewise.
2342
2343 2002-03-22  Richard Henderson  <rth@redhat.com>
2344
2345         PR target/3177
2346         * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs.
2347         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update.
2348         * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs.
2349         (ia64_expand_prologue): Look at int_regs, not words, for number
2350         of incomming int regs.
2351
2352 2002-03-22  Andrew MacLeod  <amacleod@redhat.com>
2353
2354         * expr.c (expand_expr): A RESULT_DECL is part of a call.
2355
2356 Fri Mar 22 16:30:42 CET 2002  Jan Hubicka  <jh@suse.cz>
2357
2358         * toplev.c (flag_loop_optimize, flag_crossjumping):
2359         New static variables.
2360         (rest_of_compilation): Conditionalize crossjumping and
2361         loop optimizer.
2362         (parse_options_and_default_flags): Default loop_optimize and
2363         crossjumping.
2364         (lang_independent_options): Add -fcrossjumping and -floop-optimize
2365         * invoke.texi (crossjumping, loop-optimize): Document.
2366
2367 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2368
2369         * real.c (eiisneg): Move outside #ifdef NANS.
2370
2371 Fri Mar 22 12:08:36 CET 2002  Jan Hubicka  <jh@suse.cz>
2372
2373         * cfgcleanup.c (outgoing_edges_math): Fix condition; relax
2374         frequencies match; avoid match on different loop depths.
2375         (try_crossjump_to_bb): Kill tests that no longer brings time
2376         savings.
2377         * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth
2378         updating code.
2379         (split_edge): Likewise.
2380
2381         * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized
2382         variable.
2383
2384         * Makefile.in (cfgrtl): Add insn-config.h depenendency.
2385         * cfgrtl.c: Include insn-config.h
2386         (split_block) Dirtify block in presence of conditional execution
2387
2388 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2389
2390         * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine.
2391         * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare.
2392         (function_arg): Constify CUMULATIVE_ARGS.
2393         (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise.
2394         * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT.
2395         (UNITS_PER_DOUBLE): New macro.
2396         (SETUP_INCOMING_VARARGS): Define.  Use mips_setup_incoming_varargs.
2397         (CUMULATIVE_ARGS): Reformat.  Remove num_adjusts workaround and
2398         last_arg_fp field.  Replace arg_words and fp_arg_words with gp_regs,
2399         fp_regs and stack_words.
2400         (EABI_FLOAT_VARARGS_P): New macro.
2401         * config/mips/mips.c (struct mips_arg_info): New.
2402         (mips_arg_info): New function.
2403         (function_arg_advance): Use it.  Add adjustment instructions here
2404         rather than in function_arg.
2405         (function_arg): Constify CUMULATIVE_ARGS.  Use mips_arg_info.  Check
2406         for VOIDmode at the beginning of the function.
2407         (function_partial_nregs): Constify CUMULATIVE_ARGS.  Use mips_arg_info.
2408         (function_arg_pass_by_reference): Likewise.
2409         (mips_setup_incoming_varags): New, largely based on old abi64.h code.
2410         (mips_build_va_list): Test EABI_FLOAT_VARARGS_P.
2411         (mips_va_start): Likewise.  Use the new stack_words field of
2412         CUMULATIVE_ARGS to set up overflow area.  Reformat.
2413         (mips_va_arg): Test EABI_FLOAT_VARARGS_P.  Unify EABI handling of
2414         doubles and other types, aligning the overflow pointer for non-doubles
2415         too.  Remove some code duplication.  Replace hard-coded constants.
2416
2417 2002-03-22  Richard Sandiford  <rsandifo@redhat.com>
2418
2419         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify.
2420         (CLASS_UNITS): Undefine.
2421         (CLASS_MAX_NREGS): Use FP_INC.
2422         * config/mips/mips.c (compute_frame_size): Likewise.
2423         (override_options): Use FP_INC and UNITS_PER_FPVALUE.
2424
2425 2002-03-22  Neil Booth  <neil@daikokuya.demon.co.uk>
2426
2427         * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust
2428         prototype, and handle lexing numbers and identifiers.
2429         (parse_identifier): Update to new form of parse_slow.
2430         (parse_number): Fast path only, use parse_slow otherwise.
2431         (_cpp_lex_direct): Update calls to parse_number.
2432
2433 2002-03-21  DJ Delorie  <dj@redhat.com>
2434
2435         * bb-reorder.c (make_reorder_chain_1): Protect against
2436         when redundant edges are omitted.
2437         * predict.c (dump_prediction): Likewise.
2438
2439 2002-03-21  Richard Henderson  <rth@redhat.com>
2440
2441         PR target/5996
2442         * fixinc/inclhack.def (solaris_stdio_tag): New.
2443         * fixinc/fixincl.x: Regenerate.
2444
2445 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2446
2447         PR c/5597
2448         * c-typeck.c (process_init_element): Flag non-static
2449         initialization of a flexible array member as illegal.
2450
2451 2002-03-22  Alan Modra  <amodra@bigpond.net.au>
2452
2453         * config/rs6000/t-linux64: New.
2454         * config.gcc (powerpc64-*-linux* <tmake_file>): Drop t-ppcos and
2455         t-ppccomm.  Use t-rs6000 and t-linux64.
2456         (powerpc64-*-gnu* <tmake_file>): Likewise.
2457         * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable.
2458         * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo.
2459         * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc.
2460
2461 2002-03-21  Aldy Hernandez  <aldyh@redhat.com>
2462
2463         * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check
2464         flag_really_no_inline instead of optimize == 0.
2465
2466         * c-objc-common.c (c_cannot_inline_tree_fn): Same.
2467
2468         * cp/tree.c (cp_cannot_inline_tree_fn): Same.
2469
2470         * flags.h (flag_really_no_inline): New.
2471
2472         * c-common.c (c_common_post_options): Initialize
2473         flag_really_no_inline.
2474
2475         * toplev.c (flag_really_no_inline): New.
2476
2477 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2478
2479         * config/avr/avr.md (length): Fix length computation for
2480         conditional branches.
2481
2482 2002-03-21  Neil Booth  <neil@daikokuya.demon.co.uk>
2483
2484         * Makefile.in (fold-const.o, stor-layout.o, stmt.o,
2485         sdbout.o, profile.o): Update.
2486         * c-common.c (c_common_nodes_and_builtins): Use pushdecl
2487         langhook.
2488         * c-common.h (gettags): Move here from tree.h.
2489         * c-tree.h (pushdecl, pushlevel, poplevel, set_block,
2490         insert_block, getdecls, kept_level_p, global_bindings_p): New.
2491         * dbxout.c (dbxout_init): Use getdecls langhook.
2492         * expr.c (expand_expr): Use insert_block langhook.
2493         * fold-const.c: Include langhooks.h.
2494         (fold_range_test, fold_binary_op_with_conditional_arg,
2495         fold): Use global_bindings_p langhook.
2496         * integrate.c (expand_inline_function): Use insert_block langhook.
2497         * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL,
2498         LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P,
2499         LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL,
2500         LANG_HOOKS_GETDECLS): New.
2501         (LANG_HOOKS_INITIALIZER): Update.
2502         * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p
2503         langhook.
2504         * langhooks.h (struct lang_hooks_for_decls): New.
2505         (struct lang_hooks): Update.
2506         * profile.c: Include langhooks.h.
2507         (output_func_start_profiler): Use new langhooks.
2508         * sdbout.c: Include langhooks.h.
2509         (sdbout_init, sdbout_finish): Use getdecls langhook.
2510         * stmt.c: Include langhooks.h.
2511         (expand_fixup, fixup_gotos): Use new langhooks.
2512         * stor-layout.c: Include langhooks.h.
2513         (variable_size): Use global_bindings_p langhook.
2514         * toplev.c (compile_file): Use getdecls langhook.
2515         * tree-inline.c (remap_block): Use insert_block langhook.
2516         * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags,
2517         insert_block, getdecls, kept_level_p, global_bindings_p): Remove.
2518
2519 2002-03-21  Richard Henderson  <rth@redhat.com>
2520
2521         * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic
2522         constants in .data when -fpic.
2523
2524 2002-03-21  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2525
2526         * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux
2527         where appropriate.
2528
2529 2002-03-21  Tom Tromey  <tromey@redhat.com>
2530
2531         * config/i386/sol2.h (ASM_QUAD): Undef.  Fixes PR bootstrap/5948.
2532
2533 Thu Mar 21 09:50:48 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2534
2535         * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse.
2536
2537         * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT.
2538
2539 2002-03-21  Eric Botcazou <ebotcazou@multimania.com>
2540             Richard Henderson  <rth@redhat.com>
2541
2542         PR c/5354
2543         * c-common.c (c_expand_expr): Preserve result of a statement
2544         expression if needed.
2545
2546 2002-03-21  Jakub Jelinek  <jakub@redhat.com>
2547
2548         PR bootstrap/4195
2549         * genrecog.c (maybe_both_true_mode): Remove.
2550         (maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
2551         * machmode.def (Pmode): Likewise.
2552
2553 Thu Mar 21 01:55:06 EST 2002  John Wehle  (john@feith.com)
2554
2555         * alias.c: (nonlocal_mentioned_p): Use for_each_rtx.
2556         (nonlocal_mentioned_p_1): New function.
2557         (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise.
2558         (nonlocal_set_p, nonlocal_set_p_1): Likewise.
2559         (mark_constant_function): Recognize pure functions.
2560         * rtl.h (global_reg_mentioned_p): New prototype.
2561         * rtlanal.c (global_reg_mentioned_p,
2562         global_reg_mentioned_p_1): New function.
2563
2564 2002-03-21  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2565
2566         * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64
2567         UNIX assert.h.
2568         * fixinc/fixincl.x: Regenerate.
2569
2570 2002-03-20  Jason Merrill  <jason@redhat.com>
2571
2572         * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0.
2573
2574 2002-03-20  Michael Meissner  <meissner@redhat.com>
2575
2576         * doc/invoke.texi (Optimize Options): Document that -O2 sets
2577         -fstrict-aliasing.
2578
2579 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2580
2581         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a
2582         ".literal_position" directive before the constant pool.
2583
2584 2002-03-20  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2585
2586         * doc/contrib.texi (Contributors): Update Geoffrey Keating.
2587         Add Craig Rodrigues.
2588         Add Brad Lucier to testers.
2589
2590 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2591
2592         PR target/4792
2593         * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode
2594         to if_then_else.
2595         (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise.
2596         * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached
2597         instead of insn_extract.
2598
2599 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2600
2601         PR bootstrap/4192
2602         * config/fr30/fr30.md (jump): Remove clobber of fixed register.
2603
2604         * genemit.c (output_added_clobbers_hard_reg_p): Only output return
2605         stmt if some case has been output.
2606
2607 2002-03-20  Jakub Jelinek  <jakub@redhat.com>
2608
2609         PR c/5972
2610         * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc,
2611         movsfcc_1, movdfcc_1): Add %O2.
2612         * config/i386/i386.c (print_operand): Handle %ON.
2613         Print . before float condition codes in Sun as cmov syntax.
2614         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as.
2615         * config.gcc (i[34567]86-*-solaris2*): Remove comment which is
2616         no longer true.
2617
2618 2002-03-20  Philip Blundell  <pb@nexus.co.uk>
2619
2620         * config/arm/arm.c (arm_output_epilogue): Don't generate separate
2621         return instruction if PC was popped.
2622
2623 2002-03-20  Bob Wilson  <bob.wilson@acm.org>
2624
2625         * config/xtensa/xtensa.md: Remove unused type attributes.
2626         (adddi_carry, subddi_carry): Change type attribute to "multi".
2627
2628 2002-03-19  Dale Johannesen  <dalej@apple.com>
2629
2630         PR optimization/5999, middle-end/5731
2631         * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into
2632         multiplications by reciprocals.
2633
2634 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2635
2636         * Makefile.in: Update.
2637         * c-common.c: Include langhooks.h.
2638         (inline_forbidden_p): Use new hook.
2639         * diagnostic.c: Include langhooks.h.
2640         (format_with_decl, announce_function,
2641         default_print_error_function): Use new hook.
2642         * dwarf2out.c (dwarf2_name): Use new hook.
2643         * function.c: Include langhooks.h.
2644         (init_function_start): Use new hook.
2645         * langhooks-def.h (lhd_decl_printable_name): New.
2646         (LANGHOOKS_DECL_PRINTABLE_NAME): New.
2647         (LANGHOOKS_INITIALIZER): Update.
2648         * langhooks.c (lhd_decl_printable_name): New.
2649         * langhooks.h (struct lang_hooks): New hook.
2650         * toplev.c (decl_name, decl_printable_name): Remove.
2651         (open_dump_file): Use new hook.
2652         (process_options): Remove old hook.
2653         * tree.h (decl_printable_name): Remove.
2654 objc:
2655         * objc-act.c (objc_init): Remove old hook.
2656         (objc_printable_name): Export.
2657         * objc-act.h (objc_printable_name): New.
2658         * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
2659
2660 2002-03-19  Jim Blandy  <jimb@redhat.com>
2661
2662         * c-lex.c (cb_file_change): Pass the #inclusion's line number to
2663         the start_source_file debug hook, not the current line number.
2664
2665 2002-03-19  Richard Henderson  <rth@redhat.com>
2666
2667         * flow.c (EH_USES): Provide default.
2668         (calculate_global_regs_live): Use it for EH edges and noreturn calls.
2669         * doc/tm.texi (EH_USES): New.
2670
2671         * config/ia64/ia64.c (ia64_eh_uses): New.
2672         * config/ia64/ia64-protos.h: Update.
2673         * config/ia64/ia64.h (EH_USES): New.
2674
2675 2002-03-19  Richard Henderson  <rth@redhat.com>
2676
2677         * varasm.c (output_constant_def): Fix stupid typo.
2678
2679 2002-03-19  Richard Henderson  <rth@redhat.com>
2680
2681         PR 5879
2682         * except.c (current_function_has_exception_handlers): New.
2683         * except.h: Declare it.
2684         * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it.
2685         Combine tests that disable all sibcalls for the function.
2686
2687 2002-03-19  Olivier Hainque  <hainque@act-europe.fr>
2688
2689         * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO
2690         for INTEGER_CST.
2691
2692 2002-03-19  Richard Henderson  <rth@redhat.com>
2693
2694         PR 5977, 5991
2695         * config/ia64/ia64.c: Revert 2002-03-01 patch.
2696         * config/ia64/ia64.h (INIT_EXPANDERS): New.
2697
2698 2002-03-19  Jim Blandy  <jimb@redhat.com>
2699
2700         * cppmacro.c (cpp_macro_definition): Emit a space after the macro
2701         name, even if the replacement list contains no tokens, as required
2702         by Dwarf.
2703
2704 2002-03-19  Jason Merrill  <jason@redhat.com>
2705
2706         * varasm.c (globalize_decl): Get the name from the RTL, not
2707         DECL_ASSEMBLER_NAME.
2708
2709         * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g.
2710
2711 2002-03-19  Bob Wilson  <bob.wilson@acm.org>
2712
2713         * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3,
2714         subdi_carry): Define.
2715
2716 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2717
2718         * config/rs6000/rs6000.c (rs6000_override_options): Only warn
2719         about -fpic/-fPIC if extra_warnings set.
2720
2721 2002-03-19  David Edelsohn  <edelsohn@gnu.org>
2722
2723         * expr.c (expand_expr): Sign-extend CONST_INT generated from
2724         TREE_STRING_POINTER.
2725         * fold-const.c (fold): Delete #if 0 ARRAY_REF case.
2726
2727 Tue Mar 19 14:12:32 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2728
2729         * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP
2730         in favor of SP if FRAME_POINTER_REQUIRED is false.
2731
2732 2002-03-19  Lars Brinkhoff  <lars@nocrew.org>
2733
2734         * emit-rtl.c (gen_int_mode): New function.
2735         * rtl.h: Prototype for it.
2736         * combine.c (make_extraction, simplify_comparison), expmed.c
2737         (store_bit_field, expand_mult_highpart, expand_divmod), expr.c
2738         (convert_modes, store_field), optabs.c (expand_fix),
2739         simplify-rtx.c (neg_const_int, simplify_unary_real),
2740
2741         * config/rs6000/rs6000.c, config/rs6000/rs6000.md:
2742         Use it instead of GEN_INT (trunc_int_for_mode (...)).
2743
2744 2002-03-19  Jakub Jelinek  <jakub@redhat.com>
2745
2746         PR c/5656
2747         * langhooks.h (struct lang_hooks_for_tree_inlining): Add
2748         convert_parm_for_inlining.
2749         * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2750         Define.
2751         * langhooks-def.h: Likewise.
2752         * objc/objc-lang.c: Likewise.
2753         * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New
2754         function.
2755         * tree-inline.c (initialize_inlined_parameters):
2756         Call convert_parm_for_inlining lang hook if needed.
2757         * c-typeck.c (c_convert_parm_for_inlining): New function.
2758         * c-tree.h (c_convert_parm_for_inlining): Add prototype.
2759
2760 2002-03-18  Mark Mitchell  <mark@codesourcery.com>
2761
2762         * calls.c (precompute_arguments): Do not assume that temporaries
2763         can be destroyed after expanding the argument.
2764         (expand_call): Likewise.
2765
2766 2002-03-15  Eric Christopher  <echristo@redhat.com>
2767
2768         * config/mips/mips.md (movdf_internal2): Add two new move constraints.
2769         Fix register preference on last change.
2770         * config/mips/mips.c (mips_return_in_memory): New function.
2771         * config/mips/mips.h (RETURN_IN_MEMORY): Use.
2772         * config/mips/mips-protos.h: Declare.
2773         * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above.
2774         * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults.
2775
2776 2002-03-18  Alexandre Oliva  <aoliva@redhat.com>
2777
2778         * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to
2779         a register too.
2780         (anddi3, iorsi3): Likewise.
2781
2782         * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't
2783         use %gprel for symbols that are going to be placed in linkonce
2784         sections.
2785
2786         * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate
2787         RETURN_ADDRESS_POINTER_REGNUM to $ra.
2788         (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is
2789         not needed.  Disregard leaf_function_p().
2790         (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to
2791         mips16 frame pointer.
2792         * config/mips/mips.md (store ra): Only to small SP offsets.
2793         2001-08-22  Graham Stott  <grahams@redhat.com>
2794         * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function
2795         return a REG rtx for the return address register.
2796
2797 2002-03-18  Bob Wilson  <bob.wilson@acm.org>
2798
2799         * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat
2800         constant-pool addresses as "mode-dependent".
2801         (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments.
2802
2803 2002-03-18  Jakub Jelinek  <jakub@redhat.com>
2804
2805         PR target/5740
2806         * expr.c (emit_group_load): Use extract_bit_field if
2807         needed for CONCAT arguments.
2808
2809 2002-03-18  Richard Earnshaw  <rearnsha@arm.com>
2810
2811         PR target/4863
2812         * arm.md (tablejump): Make this a define_expand.  For PIC add the
2813         offset to the base of the table.
2814         (thumb_tablejump): Matcher for Thumb tablejump insn.
2815         * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries
2816         as the difference of two labels.
2817         * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
2818         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump
2819         tables in the code.
2820         * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise.
2821         * arm.c (get_jump_table_size): If the table is not in the text
2822         section, return zero.
2823
2824 2002-03-18  Bernd Schmidt  <bernds@redhat.com>
2825
2826         * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead
2827         of gen_rtx_SUBREG.
2828         (arm_reload_out_hi): Use gen_lowpart instead of
2829         gen_rtx_SUBREG to access QImode components.
2830         * config/arm/arm.md: Disable zero_extend split for QImode
2831         subregs in BIG_ENDIAN mode.
2832         (storehi_bigend): Match use of least significant byte.
2833         (storeinthi): Remove extraneous SUBREG.
2834         Add missing construction of operands[2].
2835         (movhi): Use gen_lowpart in place of gen_rtx_SUBREG.
2836         (movqi): Use gen_lowpart in place of gen_rtx_SUBREG.
2837         Replace gen_rtx (SUBREG) with gen_rtx_SUBREG.
2838
2839 2002-03-18  Aldy Hernandez  <aldyh@redhat.com>
2840
2841         * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to
2842         any_operand.
2843
2844 2002-03-17  Richard Henderson  <rth@redhat.com>
2845
2846         * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns
2847         explicitly.
2848
2849 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2850
2851         * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI
2852         (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)).
2853
2854 2002-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2855
2856         * ifcvt.c (dead_or_predicable): Fix uninitialized variable.
2857
2858         * predict.c (estimate_bb_frequencies): Delete unused variables.
2859
2860 2002-03-17  Richard Henderson  <rth@redhat.com>
2861
2862         * config/ia64/ia64.c (ia64_attribute_table): Move before
2863         targetm definition.  Make static.
2864
2865 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
2866
2867         * c-common.h (yyparse, c_common_parse_file): New.
2868         * c-lang.c: Include c-common.h.
2869         (LANG_HOOKS_PARSE_FILE): Redefine.
2870         * c-lex.c: Include c-common.h.
2871         (yyparse): Rename c_common_parse_file.  Call yyparse.
2872         * c-parse.in (yyparse): Remove macro.
2873         * c-tree.h (yyparse_1): Remove.
2874         * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New.
2875         (LANG_HOOKS_INITIALIZER): Update.
2876         * langhooks.h (struct lang_hoooks): New hook parse_file.
2877         * toplev.c (compile_file): Use parse_file hook.
2878         * tree.h (yyparse): Remove.
2879         * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
2880
2881 2002-03-17  Hans-Peter Nilsson  <hp@bitrange.com>
2882
2883         * config/mmix/mmix.md ("truncdfsf2"): Correct operator is
2884         float_truncate, not fix.
2885         ("*truncdfsf2_real"): Ditto.
2886         ("*nonlocal_goto_receiver_expanded"): Fix output template formatting.
2887
2888         * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define.
2889
2890 2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
2891
2892         * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp
2893         (s8), but rather HARD_FRAME_POINTER_REGNUM.  Add parentheses
2894         where appropriate.  Make the second reference to
2895         leaf_function_p a function call, as intended.  Reindented.
2896
2897         * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16.
2898         * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'.
2899
2900         * config/mips/mips.md (addsi3, adddi3): Use scratch register to
2901         add register to non-constant into sp.
2902
2903         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New.
2904         * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose.
2905         (mips16_gp_pseudo_rtx): Lose.
2906         (INIT_EXPANDERS): Deleted.
2907         * config/mips/mips.c (mips_init_machine_status): New.
2908         (mips_free_machine_status): New.
2909         (mips_mark_machine_status): New.
2910         (override_options): Set them.
2911         (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to...
2912         (struct machine_function): ... new.  Replaced all references.
2913         (mips_add_gc_roots): Don't mark them.
2914         (embedded_pic_fnaddr_reg): New, extracted from...
2915         (embedded_pic_offset): ... here.
2916         * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg.
2917         (movsi): Likewise.
2918
2919 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2920
2921         * cppinit.c: Revert -MD removal.
2922
2923 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2924
2925         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use
2926         soft registers by default for 68HC12.
2927         (m68hc11_conditional_register_usage): Don't use Z register for 68HC12
2928         when compiling with -fomit-frame-pointer.
2929         (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12.
2930         (expand_epilogue): Likewise.
2931         (m68hc11_gen_rotate): Use exg when rotating by 8.
2932
2933 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2934
2935         * config/m68hc11/m68hc11-protos.h (ix_reg): Declare.
2936         * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources.
2937         (splits): Remove unused add splits.
2938         ("*addhi3_68hc12"): Tune constraints.
2939         ("addhi_sp"): Try to use X instead of Y in all cases and if the
2940         constant fits in 8-bits and D is dead use abx/aby instructions.
2941         ("*addhi3"): Remove extern declaration of ix_reg.
2942         ("*subsi3"): Optimize and provide new split.
2943         ("subhi3"): Cleanup.
2944         ("*subhi3_sp"): Avoid saving X if we know it is dead.
2945         (arith splits): For 68hc12 save the address register on the stack
2946         and do the arithmetic operation with a pop.
2947
2948 2002-03-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2949
2950         * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid
2951         allocating QImode in address registers.
2952         ("*movqi_m68hc11"): Likewise.
2953
2954 Sat Mar 16 12:57:28 CET 2002  Jan HUbicka  <jh@suse.cz>
2955
2956         * cfgcleanup.c (cleanup_cfg): Fix updating of liveness.
2957
2958 2002-03-16  Neil Booth  <neil@daikokuya.demon.co.uk>
2959
2960         * cppinit.c (print_help): Display -MD and -MMD.
2961         Don't display usage string.  Update assertion syntax and
2962         typo.
2963         (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD.
2964         (cpp_handle_option): Update.
2965
2966 2002-03-15  Chris Demetriou  <cgd@broadcom.com>
2967
2968         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an
2969         MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC,
2970         and define it so that regardless of target CPU size,
2971         __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms
2972         of "int" rather than "long."
2973
2974 2002-03-15  Richard Henderson  <rth@redhat.com>
2975
2976         * config/alpha/alpha.c (alpha_va_arg): Manipulate the type
2977         size as a tree.
2978
2979 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2980
2981         * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst.
2982         ("tstqi" split): Avoid using memory for tstqi on address register.
2983         (splits): Remove constraints.
2984         ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12.
2985         ("cmpdf", "cmpsf"): Remove since not used.
2986         ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2.
2987         (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing.
2988
2989 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2990
2991         * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case.
2992         ("neghi2"): Tighten constraints.
2993         ("one_cmplsi2"): Optimize and simplify split.
2994         * config/m68hc11/larith.asm (__negsi2): Likewise for library.
2995
2996 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
2997
2998         * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints
2999         and split of AND operation to clear the upper bits.
3000         ("*logicalsi3_zextqi"): Likewise.
3001         ("*logicallhi3_zexthi_ashift8"): Likewise.
3002         ("*logicalsi3_silshr16"): Likewise.
3003         ("logicalsi3_silshl16"): Likewise.
3004         ("anddi3", "iordi3", "xordi3" splits): Remove constraints.
3005
3006 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3007
3008         * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function.
3009         (m68hc11_indirect_p): New function.
3010         (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12.
3011         (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of
3012         TARGET_M6812.
3013         (asm_print_register): Likewise.
3014         * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare.
3015         (m68hc11_indirect_p): Declare.
3016         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'.
3017         (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New.
3018         (TARGET_SWITCHES): New option -mrelax.
3019         * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for
3020         destination.
3021         ("iorsi3", "xorsi3"): Likewise.
3022         ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand.
3023         ("*andhi3_mem"): New to handle destination in memory with bclr
3024         and a scratch register.
3025         ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise.
3026         ("*andhi3_const"): New when operand2 is constant.
3027         ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise.
3028         ("*andhi3_gen"): Cleanup of the old "andhi3".
3029         ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise.
3030         ("xorqi3"): Update constraints.
3031
3032 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3033
3034         * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look
3035         for reg_equiv_memory_loc when the operand is a register that does
3036         not get a hard register (stack location).
3037         (tst_operand): After reload, accept all memory operand.
3038         (symbolic_memory_operand): Fix detection of symbolic references.
3039         * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12
3040         accept symbols and any constant.
3041
3042 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3043
3044         * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC
3045         note on the insn that sets the soft frame register.
3046         (must_parenthesize): ix and iy are also reserved names.
3047         (print_operand_address): One more place where parenthesis are required
3048         to avoid confusion with register names.
3049         (m68hc11_gen_movhi): Allow push of stack pointer.
3050         (m68hc11_check_z_replacement): Fix handling of parallel with a
3051         clobber.
3052         (m68hc11_z_replacement): Must update the REG_INC notes to tell what
3053         the replacement register is.
3054         * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS
3055         and D8_REGS classes.
3056         (MODES_TIEABLE_P): All modes are tieable except QImode.
3057
3058 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3059
3060         * config/m68hc11/larith.asm (___adddi3): Optimize saving of result.
3061         (___subdi3): Likewise.
3062         (__mulsi3, __mulhi32): Avoid using _.tmp scratch location.
3063         (__map_data_section): Optimize 68hc11 case.
3064
3065 2002-03-15  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
3066
3067         * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher
3068         than a shift to avoid adding a register with itself.
3069         (m68hc11_memory_move_cost): Take into account NO_REGS.
3070         (m68hc11_register_move_cost): Update and use memory move cost
3071         for soft registers.
3072         (m68hc11_address_cost): Make cost of valid offset not 0 so that
3073         it gives more opportunities to cse to optimize.
3074         * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode.
3075         * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update.
3076
3077 2002-03-15  Mark Mitchell  <mark@codesourcery.com>
3078
3079         * c-common.c (statement_code_p): Handle CLEANUP_STMT.
3080         * c-common.def (CLEANUP_STMT): New tree node.
3081         * c-common.h (CLEANUP_DECL): New macro.
3082         (CLEANUP_EXPR): Likewise.
3083         * c-semantics.c (expand_stmt): Handle CLEANUP_STMT.
3084         * expr.c (expand_expr): Tidy.
3085         * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT.
3086         * tree-inline.c (initialize_inlined_parameters): Clean up
3087         new local variables.
3088
3089 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3090
3091         PR bootstrap/4128
3092         * config/sparc/sparc.c (gen_v9_scc): Move early clobber test
3093         before movrXX only, use reg_overlap_mentioned_p.
3094         Only special case NE if just one insn can be generated.
3095
3096 2002-03-15  Jason Merrill  <jason@redhat.com>
3097
3098         * varasm.c (assemble_variable): Call resolve_unique_section before
3099         checking DECL_SECTION_NAME.  Use zeros for a decl with DECL_INITIAL
3100         of error_mark_node.
3101
3102 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3103
3104         PR target/5170
3105         * arm.md (split pattern for thumb shiftable immediates): Add comment
3106         explaining non-obvious test.
3107
3108 2002-03-15  Richard Earnshaw  <rearnsha@arm.com>
3109
3110         PR target/5712
3111         * arm.md (movaddr, movaddr_insn): Delete.
3112
3113 2002-03-15  Jason Merrill  <jason@redhat.com>
3114
3115         * toplev.c (wrapup_global_declarations): Clarify variable handling.
3116         -fkeep-static-consts doesn't apply to comdats.
3117
3118 2002-03-14  Richard Henderson  <rth@redhat.com>
3119
3120         * c-decl.c: Include c-pragma.h.
3121         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
3122         (finish_function): Tidy.
3123         * c-pragma.c: Include c-common.h.
3124         (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New.
3125         (handle_pragma_weak): Use them.
3126         (init_pragma): Register pending_weaks.
3127         * c-pragma.h (maybe_apply_pragma_weak): Declare.
3128         * print-tree.c (print_node): Print DECL_WEAK.
3129         * varasm.c (mark_weak_decls): Remove.
3130         (remove_from_pending_weak_list): Remove.
3131         (add_weak): Remove.
3132         (asm_emit_uninitialised): Call globalize_decl for weak commons.
3133         (weak_decls): Make a tree_list.
3134         (declare_weak): Cons weak_decls directly.
3135         (globalize_decl): Remove weak_decls elements directly.
3136         (weak_finish): Simplify weak_decls walk.  Don't weaken unused
3137         symbols.  Don't pretend to handle aliases.
3138         (init_varasm_once): Update weak_decls registry.
3139         * Makefile.in: Update dependencies.
3140
3141 2002-03-14  Richard Henderson  <rth@redhat.com>
3142
3143         PR target/5312
3144         * config/ia64/ia64.c: Include tm_p.h last.
3145         (gen_nop_type): Remove duplicate definition.
3146         (cycle_end_fill_slots): Set sched_data for second L slot.
3147         (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots.
3148         (nop_cycles_until): Fix typos.
3149
3150 2002-03-15  Jakub Jelinek  <jakub@redhat.com>
3151
3152         PR optimization/5891
3153         * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag.
3154
3155 2002-03-14  David Mosberger <davidm@hpl.hp.com>, Hans Boehm <Hans_Boehm@hp.com>
3156
3157         * config/ia64/unwind-ia64.c: Handle copy_state and label_state
3158           descriptors correctly.
3159
3160 2002-03-14  Michael Meissner  <meissner@redhat.com>
3161
3162         * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to
3163         100, allowing MAX_UNROLLED_INSNS to be overridden.
3164
3165         * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by
3166         --param.
3167
3168         * unroll.c (params.h): Include.
3169         (MAX_UNROLLED_INSNS): Delete, now in params.h.
3170
3171         * doc/invoke.texi (--param max-unroll-insns): Document.
3172
3173         * Makefile.in (unroll.o): Add $(PARAMS_H) dependency.
3174
3175 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3176
3177         * arm.md: Fix warnings about constraints in peepholes and splits.
3178
3179 2002-03-14  Zack Weinberg  <zack@codesourcery.com>
3180
3181         * cpphash.h (struct lexer_state): Remove line_extension member.
3182         * cpplib.c (dequote_string, do_linemarker): New functions.
3183         (linemarker_dir): New data object.
3184         (DIRECTIVE_TABLE): No longer need to interpret #line in
3185         preprocessed source.  Delete obsolete comment about return
3186         values of handlers.
3187         (end_directive, directive_diagnostics, _cpp_handle_directive):
3188         Don't muck with line_extension.
3189         (directive_diagnostics): No need to issue warnings for
3190         linemarkers here.
3191         (_cpp_handle_directive): Issue warnings for linemarkers here,
3192         when appropriate.  Dispatch linemarkers to do_linemarker, not
3193         do_line.
3194         (do_line): Code to handle linemarkers split out to do_linemarker.
3195         Convert escape sequences in filename argument, both places.
3196
3197         * cppmacro.c (quote_string): Rename cpp_quote_string and
3198         export.  All callers changed.
3199         * cpplib.h (cpp_quote_string): Prototype.
3200         * cppmain.c (print_line): Call cpp_quote_string on to_file
3201         before printing it.
3202
3203         * doc/cpp.texi: Document that escapes are now interpreted in
3204         #line and in linemarkers, and that non-printing characters are
3205         converted to octal escapes when linemarkers are generated.
3206
3207 Thu Mar 14 19:04:29 CET 2002  Jan Hubicka  <jh@suse.cz>
3208
3209         * emit-rtl.c (try_split): Use delete_insns.
3210         * recog.c (split_all_insns): Fix terminating condition.
3211
3212 2002-03-14  Richard Earnshaw  <rearnsha@arm.com>
3213             Jeroen Dobbelaere  <jeroen.dobbelaere@acunia.com>
3214
3215         PR target/5828
3216         * arm.c (arm_output_epilogue): Fix floating-point register save
3217         adjustment when using a frame pointer.
3218
3219 2002-03-14  Richard Sandiford  <rsandifo@redhat.com>
3220
3221         * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros.
3222         * config/mips/mips.c (compute_frame_size): Retrofit them here.
3223         (save_restore_insns, mips_expand_epilogue): And here.
3224         (build_mips16_call_stub): And here.
3225         (mips_function_value): Use the new macros to decide whether a single
3226         or complex float can be returned in floating-point registers.  Return
3227         a parallel rtx in the complex case.
3228
3229 Thu Mar 14 11:03:12 CET 2002  Jan Hubicka  <jh@suse.cz>
3230
3231         * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup
3232         call after liveness analysis.
3233
3234         * recog.c (split_insn): Use delete_insn_and_edges.
3235
3236         * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump
3237         instructions to have branch prediction notes.
3238         * ia64reorg.c (ia64_reorg): Do not rebuild CFG.
3239
3240 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
3241
3242         * configure.in: Don't pass -Wno-long-long to a ADA compiler
3243         that doesn't support it.
3244         * configure: Regenerate.
3245
3246 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3247
3248         PR target/5626
3249         * config/sparc/sparc.md (normal_branch, inverted_branch,
3250         normal_fp_branch, inverted_fp_branch, normal_fpe_branch,
3251         inverted_fp_branch): Adjust calls to output_cbranch.
3252         Set length attribute.
3253         (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to
3254         output_v9branch.  Set length attribute.
3255         * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New
3256         predicates.
3257         (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode.
3258         (output_cbranch): Likewise.  Handle far branches.
3259         (output_v9branch): Handle far branches.
3260         * config/sparc/sparc-protos.h (output_cbranch, output_v9branch):
3261         Adjust prototypes.
3262         * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and
3263         noov_compare64_op predicates.
3264
3265 2002-03-13  Jason Merrill  <jason@redhat.com>
3266
3267         * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr
3268         into the function and constify it.
3269         * gthr-dce.h, gthr-solaris.h: Likewise.
3270
3271 2002-03-13  David Edelsohn  <edelsohn@gnu.org>
3272
3273         * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define.
3274         * config/rs6000/rs6000.c (rs6000_va_arg): Use
3275         std_expand_builtin_va_arg if not ABI_V4.
3276
3277 2002-03-13  Jason Merrill  <jason@redhat.com>
3278
3279         * varasm.c (globalize_decl): New fn.
3280         (assemble_start_function): Use it.
3281         (asm_emit_uninitialized): Use it.
3282         (assemble_alias): Use it.
3283         (assemble_variable): Use it.
3284
3285 2002-03-13  Hans-Peter Nilsson  <hp@axis.com>
3286
3287         * config/cris/cris.c (cris_target_asm_function_prologue): Revert
3288         2002-03-12 internal visibility change.
3289         (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding
3290         visibility into SYMBOL_REF_FLAG.
3291
3292 2002-03-13  Ulrich Weigand  <uweigand@de.ibm.com>
3293
3294         * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with
3295         VOIDmode operand.  Add compile-time optimization for constant results.
3296
3297 2002-03-12  Jason Merrill  <jason@redhat.com>
3298
3299         * c-typeck.c (convert_for_assignment): Don't allow conversions
3300         between pointers and references.  Only allow lvalues to convert to
3301         reference.
3302
3303 2002-03-13  Hartmut Penner  <hpenner@de.ibm.com>
3304
3305         * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code
3306         before prologue, to avoid scheduling problems.
3307
3308 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3309
3310         * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
3311         (ELIMINABLE_REGS): Add sfp->sp.
3312         (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too.
3313
3314 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3315
3316         PR optimization/5892
3317         * config/ia64/ia64.c (rotate_one_bundle): Update current packet.
3318
3319 2002-03-13  Jakub Jelinek  <jakub@redhat.com>
3320
3321         * loop.c (basic_induction_var): Don't call convert_modes if mode
3322         classes are different.
3323
3324 2002-03-12  Richard Henderson  <rth@redhat.com>
3325
3326         PR optimization/5901
3327         * function.c (reposition_prologue_and_epilogue_notes): Position
3328         the markers after/before the last/first insn not deleted.
3329
3330 2002-03-12  Richard Henderson  <rth@redhat.com>
3331
3332         PR optimization/5878
3333         * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h,
3334         config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h
3335         (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
3336
3337         * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h,
3338         config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set
3339         PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic.
3340
3341         * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New.
3342         * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM.
3343         (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK
3344         also.  Don't set it if not flag_pic.
3345         * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM
3346         to be INVALID_REGNUM when not used.
3347
3348 2002-03-13  Aldy Hernandez  <aldyh@redhat.com>
3349
3350         * expmed.c (store_bit_field): Reset alias set for memory.
3351         (extract_bit_field): Same.
3352
3353 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3354
3355         * c-common.c (c_tree_code_type, c_tree_code_length,
3356         c_tree_code_name, add_c_tree_codes): Delete.
3357         * c-common.h (add_c_tree_codes): Delete.
3358         * c-lang.c (tree_code_type, tree_code_length, tree_code_name):
3359         Define.
3360         * c-objc-common.c (c_objc_common_init): Don't call
3361         add_c_tree_codes, instead set lang_unsafe_for_reeval.
3362         * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length,
3363         objc_tree_code_name, add_objc_tree_codes): Delete.
3364         (objc_init): Don't call add_objc_tree_codes.
3365         * objc/objc-lang.c (tree_code_type, tree_code_length,
3366         tree_code_name): Define.
3367         * toplev.c (lang_independent_init): Don't set
3368         tree_code_length[IDENTIFIER_NODE].
3369         * tree.c (tree_code_type, tree_code_length, tree_code_name):
3370         Delete definitions, moved to language front-ends.
3371         * tree.def (IDENTIFIER_NODE): Hardwire the length.
3372         * tree.h (tree_code_type, tree_code_length, tree_code_name):
3373         Const-ify.
3374         (tree_code_length): Change type to unsigned char.
3375
3376 2002-03-12  Richard Henderson  <rth@redhat.com>
3377
3378         * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03
3379         internal visibility change.
3380
3381 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3382
3383         * config/xtensa/xtensa.c (xtensa_expand_block_move): Use
3384         validize_mem() instead of change_address to avoid clobbering
3385         memory attributes.
3386
3387 2002-03-12  Neil Booth  <neil@daikokuya.demon.co.uk>
3388
3389         * c-lex.h (position_after_whitespace): Remove.
3390
3391 2002-03-12  Jakub Jelinek  <jakub@redhat.com>
3392
3393         * c-lex.c (cb_ident, c_lex): Remove unnecessary cast.
3394         (lex_string): Use unsigned char pointers.
3395
3396 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3397
3398         * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent
3399         is not a valid memory_operand.
3400
3401 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3402
3403         * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS.
3404         * config/xtensa/lib1funcs.asm: Fix copyright to include
3405         special case for libgcc files.
3406         (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0.
3407         (__divsi3): Likewise.
3408         (__umodsi3): Likewise.
3409         (__modsi3): Likewise.
3410         * config/xtensa/lib2funcs.S: Fix copyright to include
3411         special case for libgcc files.
3412
3413 2002-03-12  Tom Rix  <trix@redhat.com>
3414
3415         * collect2.c (resolve_lib_name): Move outside of
3416         OBJECT_FORMAT_COFF ifdef.
3417         (ignore_library): Same.
3418
3419 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3420
3421         * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define.
3422
3423 2002-03-12  Bob Wilson  <bob.wilson@acm.org>
3424
3425         * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch
3426         to function_section before writing out the constant pool.
3427
3428 2002-03-12  David Edelsohn  <edelsohn@gnu.org>
3429
3430         * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and
3431         zero_constant.
3432         * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting.
3433
3434 2002-03-12  Alan Modra  <amodra@bigpond.net.au>
3435
3436         * config/rs6000/rs6000.md (addsi3): Optimize sign extension.
3437         (adddi3): Likewise.
3438         (movdf): Likewise.
3439         (movdi): Likewise.
3440         (cmpsi splitter): Likewise.
3441         (modsi3): Fail if <= 0.
3442         * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove
3443         redundant test when HOST_BITS_PER_WIDE_INT != 32.
3444         (reg_or_sub_cint64_operand): Likewise.
3445         (num_insns_constant_wide): Optimize sign extension.
3446         (rs6000_legitimize_address): Likewise.
3447
3448 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3449
3450         * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3451         * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define.
3452
3453 2002-03-12  Andrew MacLeod  <amacleod@redhat.com>
3454
3455         * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in
3456         address calculation.
3457
3458 2002-03-12  Ulrich Weigand  <uweigand@de.ibm.com>
3459
3460         * config/s390/s390.md (reload_insi, reload_indi): Change mode of
3461         scratch register to DImode / TImode.
3462         config/s390/s390.c (s390_expand_plus_operand): Make sure scratch
3463         register used does not overlap the target.
3464
3465 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3466
3467         * Makefile.in (debug.o): Depend on debug.h.
3468         * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify.
3469         * debug.c (do_nothing_debug_hooks): Likewise.
3470         * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks,
3471         sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks,
3472         dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise.
3473         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
3474         * dwarfout.c (dwarf_debug_hooks): Likewise.
3475         * integrate.c (output_inline_function): Likewise.
3476         * objc/objc-act.c (synth_module_prologue): Likewise.
3477         * sdbout.c (sdb_debug_hooks): Likewise.
3478         * toplev.c (debug_hooks): Likewise.
3479         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
3480
3481 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3482
3483         * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h,
3484         dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h,
3485         m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h,
3486         ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h,
3487         v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete.
3488         * defaults.h (POINTER_SIZE): Define.
3489         * doc/tm.texi (POINTER_SIZE): Document default.
3490
3491 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3492
3493         * mn10200.h (PTRDIFF_TYPE): Change it to a signed type.
3494
3495 2002-03-11  Richard Henderson  <rth@redhat.com>
3496
3497         * toplev.c (rest_of_compilation): Call purge_all_dead_edges
3498         if rebuild_label_notes_after_reload.
3499
3500 2002-03-12  Hans-Peter Nilsson  <hp@axis.com>
3501
3502         * config/cris/cris.c (cris_target_asm_function_prologue):  Do not
3503         emit pic register load if "internal" visibility.
3504         (cris_print_operand): Avoid traditional-warning for 0xffffffff.
3505         (cris_expand_builtin_va_arg): Do all computations on trees.
3506
3507 2002-03-11  Richard Henderson  <rth@redhat.com>
3508
3509         * rtlanal.c: Include recog.h.
3510         (keep_with_call_p): Fix thinko.
3511         * Makefile.in (rtlanal.o): Update dependencies.
3512
3513 2002-03-11  Chris Meyer  <cmeyer@gatan.com>
3514
3515         * genflags.c (gen_insn): Use IS_VSPACE.
3516         * genoutput.c (output_insn_data): Likewise.
3517         (process_template): Likewise.
3518
3519 2002-03-11  Richard Henderson  <rth@redhat.com>
3520
3521         * toplev.c (rest_of_compilation): Don't compile if we've had errors.
3522
3523 2002-03-11  Neil Booth  <neil@daikokuya.demon.co.uk>
3524
3525         * Makefile.in: Update.
3526         * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi.
3527         Update documentation.
3528         * doc/gcc.texi: Include cppopts.texi and cppenv.texi.
3529         * doc/cpp.texi: Include cppopts.texi and cppenv.texi.
3530
3531 2002-03-11  Zack Weinberg  <zack@codesourcery.com>
3532
3533         * Makefile.in: Give texi2pod its input file as a command line
3534         argument, not on stdin.
3535
3536 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
3537             Daniel Berlin  <dan@dberlin.org>
3538
3539         C++ alias analysis improvement.
3540         * alias.c (record_component_aliases): Record aliases for base
3541         classes too.
3542
3543 2002-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3544
3545         * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register.
3546
3547 2002-03-11  Douglas B Rupp  <rupp@gnat.com>
3548
3549         * toplev.c (vms_fopen): Remove, not needed.
3550
3551         * vmsdbgout.c (lookup_filename): Adjust creation date for GMT.
3552
3553         * config/alpha/xm-vms.h (__UNIX_FWRITE): Define.
3554
3555         * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space
3556         for FP, already done later.
3557
3558         * toplev.c (debug_args): Add entry for VMS_DEBUG.
3559         * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc.
3560
3561 2002-03-11  Richard Sandiford  <rsandifo@redhat.com>
3562
3563         * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New.
3564         (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if
3565         LARGEST_EXPONENT_IS_NORMAL for the given mode.
3566         (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO.
3567         * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO.
3568         (ediv, emul, eldexp, esqrt): Likewise.
3569         (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise.
3570         (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL.
3571         (saturate): New function.
3572         (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL.
3573         (make_nan): Use a saturation value instead of a NaN if
3574         LARGEST_EXPONENT_IS_NORMAL.  Warn when this happens.
3575         * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing
3576         inputs if LARGEST_EXPONENT_IS_NORMAL.  Represent subnormals as
3577         zero if NO_DENORMALS.  Only round to nearest if !ROUND_TOWARDS_ZERO.
3578         (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL.
3579         (_fpmul_parts, _fpdiv_parts): Only round to nearest if
3580         !ROUND_TOWARDS_ZERO.
3581         * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document.
3582         (ROUND_TOWARDS_ZERO): Document.
3583
3584 2002-03-11  Andreas Jaeger  <aj@suse.de>
3585
3586         * cfg.c (dump_flow_info): Remove unused variable.
3587
3588 2002-03-11  Hans-Peter Nilsson  <hp@bitrange.com>
3589
3590         * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all
3591         computations on trees.
3592
3593 2002-03-10  Richard Henderson  <rth@redhat.com>
3594
3595         PR 5693:
3596         * reload.c (copy_replacements_1): New.
3597         (copy_replacements): Use it to recurse through the rtx.
3598
3599 2002-03-10  Richard Henderson  <rth@redhat.com>
3600
3601         * loop.c (strength_reduce): Compute number of iterations as
3602         unsigned HOST_WIDE_INT.
3603
3604 2002-03-10  Richard Henderson  <rth@redhat.com>
3605
3606         * sched-rgn.c (add_branch_dependences): Don't allow insns that throw
3607         to move away from the end of the block.
3608
3609 2002-03-10  Neil Booth  <neil@daikokuya.demon.co.uk>
3610
3611         PR preprocessor/5899
3612         * cppinit.c (init_dependency_output): Don't ignore -dM etc.
3613
3614 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3615
3616         * mbchar.c (JIS_state_table, JIS_action_table): Const-ify.
3617
3618         * attribs.c (decl_attributes): Fix signed/unsigned warning.
3619
3620 2002-03-10  Hans-Peter Nilsson  <hp@bitrange.com>
3621
3622         * config/mmix/mmix.c: Improve comments.
3623         (mmix_target_asm_function_prologue): Drop variable
3624         empty_stack_frame.  Don't allocate unused slot above fp.
3625         (mmix_target_asm_function_epilogue): Mirror prologue changes.
3626         * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have
3627         brace in first column.
3628         (enum reg_class): Ditto.
3629         (FIRST_PARM_OFFSET): Now 0.
3630         (USER_LABEL_PREFIX): Remove #if 0:d definition.
3631
3632 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3633
3634         * combine.c (make_extraction): Fix error in last change.
3635
3636 2002-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3637
3638         * c4x.c (c4x_fp_reglist): Const-ify.
3639         * cris.c (cris_print_operand): Likewise.
3640         * i386.c (ix86_va_arg): Likewise.
3641         * ia64/unwind-ia64.c (unw_decode_table): Likewise.
3642         * m32r.c (m32r_hard_regno_mode_ok): Likewise.
3643         * m32r.h (m32r_hard_regno_mode_ok): Likewise.
3644         * mcore.c (regno_reg_class, mcore_unique_section): Likewise.
3645         * mcore.h (regno_reg_class): Likewise.
3646         * mips.c (gen_int_relational): Likewise.
3647         * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise.
3648         * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise.
3649         * pdp11.c (move_costs): Likewise.
3650         * pj.h (INITIALIZE_TRAMPOLINE): Likewise.
3651         * s390.c (s390_branch_condition_mnemonic, regclass_map):
3652         Likewise.
3653         * s390.h (regclass_map): Likewise.
3654         * sh.c (shift_amounts): Likewise.
3655         * sh.md (rotlsi3): Likewise.
3656
3657 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3658
3659         * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER.
3660         (ne0+5): Use new clobber to generate proper shift pattern.
3661         Patch by Michael Matz <matz@kde.org>.
3662
3663 2002-03-09  Andreas Schwab  <schwab@suse.de>
3664
3665         * gcc.c (validate_all_switches): Also handle `%W{...}'.
3666
3667 2002-03-09  Geoffrey Keating  <geoffk@redhat.com>
3668
3669         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define.
3670
3671 2002-03-09  Jakub Jelinek  <jakub@redhat.com>
3672
3673         PR middle-end/5877
3674         * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW
3675         even for non-representable constants.
3676
3677 Sat Mar  9 07:20:01 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3678
3679         * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share.
3680         * function.c (fixup_var_refs): Add MAY_SHARE parameter.
3681         (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise.
3682         (fixup_var_refs_insn, fixup_var_refs_1): Likewise.
3683         (pop_function_context): Compute MAY_SHARE parameter for
3684         fixup_var_refs.
3685         (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR.
3686         (gen_mem_addressof): Call fixup_var_refs with new parm.
3687
3688         * combine.c (make_extraction): Don't make extension of CONST_INT.
3689
3690 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3691
3692         * config/mips/mips.c (function_arg_pass_by_reference): Force to 0
3693         in o32 and o64 ABIs.
3694         * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h,
3695         but getting fixed-size structs passed in registers regardless of
3696         padding in o32 and o64 ABIs.
3697
3698         * config/mips/mips.c (mips_va_arg): Apply big-endianness address
3699         offset before loading address of argument passed by transparent
3700         reference.
3701
3702 2002-03-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3703
3704         * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete.
3705
3706 2002-03-09  Alexandre Oliva  <aoliva@redhat.com>
3707
3708         * config/mips/mips.c (mips_expand_prologue): Set regno of vararg
3709         marker such that registers after it are saved.
3710
3711 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3712
3713         * sparc.c (arith_4096_operand): Fix error in last change.
3714
3715 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
3716
3717         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate
3718         defaults for MEABI.
3719
3720 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3721
3722         * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for
3723         vectors.
3724
3725 2002-03-08  Aldy Hernandez  <aldyh@redhat.com>
3726
3727         * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec.
3728
3729 Fri Mar  8 21:27:49 CET 2002  Jan Hubicka  <jh@suse.cz>
3730
3731         * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been
3732         removed; fix return value.
3733         * combine.c (combine_instructions): Dirtify blocks where we failed to
3734         update liveness; purge dead edges; use update_life_info_in_dirty_blocks.
3735         * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine.
3736
3737 2002-03-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3738
3739         * gcse.c (insert_insn_end_bb): Fix typo in last change.
3740
3741 Fri Mar  8 21:08:52 CET 2002  Jan Hubicka  <jh@suse.cz>
3742
3743         * recog.c (peephole2_optimize): Re-distribute EH edges.
3744
3745 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
3746
3747         * expr.c (expand_expr): Use unsave lang hook.
3748         * langhooks-def.h (LANG_HOOKS_UNSAVE): New.
3749         (LANG_HOOKS_INITIALIZER): Update.
3750         * langhooks.h (struct lang_hooks): New hook unsave.
3751         * tree.c (lang_unsave, lang_unsave_expr_now): Remove.
3752         (unsave_expr_1): Remove unused lang_unsave_expr_now.
3753         (unsave_expr_now_r): Rename lhd_unsave.  Update. Return input.
3754         (unsave_expr_now): Remove.
3755         * tree.h (unsave_expr_now, lang_unsave,
3756         lang_unsave_expr_now): Remove.
3757         (lhd_unsave): New.
3758
3759 2002-03-08  Andreas Jaeger  <aj@suse.de>
3760
3761         * flow.c (propagate_block_delete_insn): Remove unused variable.
3762
3763 2002-03-08  Kazu Hirata  <kazu@hxi.com>
3764
3765         * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten
3766         insn length for memory load/store.
3767
3768 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
3769
3770         * doc/install.texi (--with-libiconv-prefix): Document.
3771
3772 2002-03-08  Michael Y. Brukman  <myb2@cornell.edu>
3773
3774         * doc/sourcebuild.texi: Fix typo.
3775
3776 2002-03-08  Jakub Jelinek  <jakub@redhat.com>
3777
3778         PR c/3711
3779         * builtins.c (std_expand_builtin_va_arg): Do all computations on
3780         trees.
3781
3782 Fri Mar  8 06:48:45 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3783
3784         * rtl.c (copy_most_rtx): Move from here ...
3785         * emit-rtl.c (copy_most_rtx): ... to here.
3786
3787 2002-03-08  Alexandre Oliva  <aoliva@redhat.com>
3788
3789         * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with
3790         SUBTARGET_CPP_SIZE_SPEC.
3791         * config/mips/abi64.h (LONG_MAX_SPEC): Delete.
3792
3793         * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify.
3794
3795 2002-03-07  Matt Hiller  <hiller@redhat.com>
3796
3797         * gensupport.c (first_dir_md_include): Renamed from include;
3798         change all references.
3799         (last_dir_md_include): Renamed from last_include; change all
3800         references.
3801         (init_md_reader): Unconditionally initialize base_dir whether or
3802         not filename is a relative path.
3803
3804 2002-03-07  Alexandre Oliva  <aoliva@redhat.com>
3805
3806         * config/fp-bit.c (_unord_f2): Compile it in even if
3807         US_SOFTWARE_GOFAST is enabled.
3808
3809         * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as
3810         NULL_RTX.  Set all HFmode operations as NULL_RTX.
3811         * optabs.c (prepare_float_lib_cmp) <GT, GE, LT, LE>: If libfunc is
3812         NULL_RTX, try reversing the comparison and the operands.
3813
3814 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3815
3816         * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP.
3817         genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP
3818         and MATCH_OP_DUP.
3819
3820 Thu Mar  7 16:54:10 CET 2002  Jan Hubicka  <jh@suse.cz>
3821
3822         * reload1.c (reload_cse_delete_noop_set): Purge dead edges.
3823
3824 Thu Mar  7 16:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
3825
3826         * basic-block.h (fixup_abnormal_edges): Declare.
3827         * reload1.c (fixup_abnormal_edges): New function.
3828         * reg-stack.c (convert_regs): Use it.
3829
3830         * gcse.c (insert_insn_end_bb): Handle trapping insns.
3831
3832         * gcse.c (hash_scan_set): Refuse instructions with EH edges.
3833
3834 2002-03-07  Richard Sandiford  <rsandifo@redhat.com>
3835
3836         * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New.
3837         (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New.
3838         * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New.
3839         (HONOR_SIGN_DEPENDENT_ROUNDING): New.
3840         * builtins.c (expand_builtin_mathfn): Use HONOR_NANS.
3841         * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y
3842         unless x and y could be infinite.
3843         (expand_unordered_cmp): New, mostly split from expand_tree_builtin.
3844         Check that the common type of both arguments is a real, even for
3845         targets without unordered comparisons.  Allow an integer argument
3846         to be compared against a real.
3847         (expand_tree_builtin): Use expand_unordered_cmp.
3848         * combine.c (combine_simplify_rtx): Use the new HONOR_... macros.
3849         * cse.c (fold_rtx): Likewise.  Fix indentation.
3850         * fold-const.c (fold_real_zero_addition_p): New.
3851         (fold): Use it, and the new HONOR_... macros.
3852         * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros.
3853         * jump.c (reversed_comparison_code_parts): After searching for
3854         the true comparison mode, use HONOR_NANS to decide whether it
3855         can be safely reversed.
3856         (reverse_condition_maybe_unordered): Remove IEEE check.
3857         * simplify-rtx.c (simplify_binary_operation): Use the new macros
3858         to decide which simplifications are valid.  Allow the following
3859         simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b),
3860         and (a - -b) to (a + b).
3861         (simplify_relational_operation): Use HONOR_NANS.
3862         * doc/tm.texi: Document the MODE_HAS_... macros.
3863
3864 2002-03-07  Richard Earnshaw  <rearnsha@arm.com>
3865
3866         * combine.c (simplify_comparison): If simplifying a logical shift
3867         right and compare with constant, force the comparison to unsigned.
3868
3869 2002-03-07  Aldy Hernandez  <aldyh@redhat.com>
3870
3871         * doc/invoke.texi: Add documentation for -mabi=no-altivec.
3872
3873         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add
3874         -mabi=no-altivec
3875         (alt_reg_names): Remove % for vrsave.
3876
3877 2002-03-06  Richard Henderson  <rth@redhat.com>
3878
3879         PR optimization/5844
3880         * genemit.c (gen_exp): New argument used.  Invoke copy_rtx
3881         if used indicates we've already emitted one copy of an operand.
3882         (gen_insn, gen_expand, output_add_clobbers): Supply a null used.
3883         (gen_split): Supply a non-null used.
3884
3885 2002-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3886
3887         * reload1.c (reload): Unshare all rtl after reload is done.
3888
3889         * simplify-rtx.c (simplify_plus_minus): Do not abort,
3890         but simply fail if the expression is too complex to simplify.
3891         (simplify_gen_binary): Handle simplify_plus_minus failures.
3892
3893 Wed Mar  6 20:32:09 CET 2002  Jan Hubicka  <jh@suse.cz>
3894
3895         * toplev.c (rest_of_compilation): Do jump threading before SSA path;
3896         consistently call delete_trivially_dead_insns after CSE and GCSE;
3897         fix DFI_life dumping; do jump threading after liveness; do crossjumping
3898         after liveness2; update comment in last crossjumping.
3899         * cfgcleanup.c (try_crossjump_to_edge): Dirtify block.
3900
3901 Wed Mar  6 12:27:10 2002  Jeffrey A Law  (law@redhat.com)
3902
3903         * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains
3904         after completing fast dead code elimination.
3905
3906         * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a
3907         COMPARE operator.
3908
3909 2002-03-06  Phil Edwards  <pme@gcc.gnu.org>
3910
3911         * version.c:  Fix misplaced leading blanks on first line.
3912
3913 Wed Mar  6 19:08:03 CET 2002  Jan Hubicka  <jh@suse.cz>
3914
3915         * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source.
3916
3917 Wed Mar  6 18:14:43 CET 2002  Jan Hubicka  <jh@suse.cz>
3918
3919         * cfgcleanup.c (mentions_nonequal_regs): New function.
3920         (thread_jump): Use it.
3921         * toplev.c (rest_of_compilation): Run jump threading after
3922         liveness.
3923
3924 2002-03-06  Jakub Jelinek  <jakub@redhat.com>
3925
3926         * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05
3927         patch.
3928
3929 Wed Mar  6 11:28:19 CET 2002  Jan Hubicka  <jh@suse.cz>
3930
3931         * predict.c (estimate_bb_frequencies): Do not reload the
3932         frequencies from notes.
3933
3934 Wed Mar  6 10:59:39 CET 2002  Jan Hubicka  <jh@suse.cz>
3935
3936         * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New.
3937         * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare
3938
3939         * basic-block.h (update_life_info, update_life_info_in_dirty_blocks,
3940         delete_noop_moves): Return indeger.
3941         * flow.c (ndead): New variable.
3942         (propagate_block_delete_insn): Use delete_insn_and_edges; remove
3943         BB argument; update callers.
3944         (propagate_block_delete_libcall): Use delete_insn_chain_and_edges.
3945         (life_analysis): Do not call purge_all_dead_edges.
3946         (update_life_info): Return number of deleted insns; print statistics.
3947         (update_life_info_in_dirty_blocks): likewise.
3948         (delete_noop_moves): Use delete_insn_and_edges; print statistics;
3949         return number of insns deleted.
3950
3951         * cse.c: Include timevar.h
3952         (delete_trivially_dead_insns): Kill preserve_basic_blocks argument;
3953         iterate until stabilizes; print statistics; return number of killed
3954         insns.
3955         * Makefile.in: (cse.o): Add timevar.h dependency
3956         * rtl.h (delete_trivially_dead_insns): New.
3957         * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer.
3958         * toplev.c (rest_of_compilation): Update callers.
3959
3960         * cfgcleanup.c (try_optimize_cfg): Kill blocks.
3961         (try_optimize_cfg): Do not update liveness.
3962         (cleanup-cfg): Loop until try_optimize_cfg and dead code
3963         removal stabilizes; use delete_trivially_dead_insns.
3964
3965         * cfgrtl.c (verify_flow_info): Sanity check outgoing edges.
3966
3967 2002-03-05  Zack Weinberg  <zack@codesourcery.com>
3968
3969         * cppmain.c (setup_callbacks): Disable #pragma and #ident
3970         callbacks when processing assembly language.
3971
3972 2002-03-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3973
3974         * pa.h (ASM_FILE_END): Define.
3975         * som.h (ASM_FILE_END): Delete.
3976
3977         * pa.c (function_arg): Don't pass floats in general registers in
3978         indirect calls if TARGET_ELF32.
3979
3980 2002-03-05  Richard Henderson  <rth@redhat.com>
3981
3982         * config/i386/i386.md (floatsidf2): Conditionalize on hard-float.
3983
3984 2002-03-05  Danny Smith  <dannysmith@users.sourceforge.net>
3985
3986         * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define.
3987
3988 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
3989
3990         * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc
3991         -r command line.  Don't hide any symbols if not building
3992         shared libgcc.
3993
3994 Tue Mar  5 18:31:27 CET 2002  Jan Hubicka  <jh@suse.cz>
3995
3996         * cfg.c (dump_flow_info): Warn about profile mismatches.
3997         * cfgrtl.c (verify_flow_info): Few aditional sanity checks.
3998         (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps.
3999
4000 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4001
4002         * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2
4003         wide volatile memory by parts.
4004
4005 2002-03-05  Jakub Jelinek  <jakub@redhat.com>
4006
4007         * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def
4008         is NULL.
4009
4010 2002-03-05  Richard Henderson  <rth@redhat.com>
4011
4012         * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error.
4013
4014 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4015
4016         * toplev.c (documented_lang_options): Document more
4017         language-specific options.
4018         * doc/invoke.texi (Warning Options): Correct documentation for
4019         -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers.
4020         * c-decl.c (c_decode_option): Use a table to handle warning options.
4021
4022 2002-03-05  Hans-Peter Nilsson  <hp@bitrange.com>
4023
4024         * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second
4025         parameter to mmix_encode_section_info.
4026         (LINK_SPEC): Don't defsym __.MMIX.start..text if linking
4027         relocatably.  Always produce ELF, not mmo if linking relocatably.
4028         * config/mmix/mmix.c (mmix_encode_section_info): If new parameter
4029         first is non-zero, don't add symbol prefix.
4030         * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak
4031         prototype accordingly.
4032
4033 2002-03-04  Krister Walfridsson  <cato@df.lth.se>
4034
4035         * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file.
4036
4037 2002-03-05  Joseph S. Myers  <jsm28@cam.ac.uk>
4038
4039         * configure.in: Increase required makeinfo version to 4.1.
4040         * configure: Regenerate.
4041
4042 2002-03-04  Geoffrey Keating  <geoffk@redhat.com>
4043
4044         * .cvsignore: Remove *.info* and genrtl*; these files are generated
4045         elsewhere now.
4046
4047 2002-03-04  Joseph S. Myers  <jsm28@cam.ac.uk>
4048
4049         * doc/include/texinfo.tex: Update to version 2002-03-01.06.
4050         * doc/invoke.texi: Fix @math uses.
4051
4052 Mon Mar  4 15:33:54 CET 2002  Jan Hubicka  <jh@suse.cz>
4053
4054         * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables
4055         removal
4056
4057 2002-03-03  Aldy Hernandez  <aldyh@redhat.com>
4058
4059         * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian.
4060         (powerpc-*-eabisimaltivec*): Same.
4061
4062         * config/rs6000/t-ppcendian: New.
4063
4064 2002-03-04  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
4065
4066         * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions
4067         nonimmediate_src_operand and nonimmediate_lsrc_operand to
4068         disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE.
4069
4070 2002-03-03  Richard Henderson  <rth@redhat.com>
4071
4072         * toplev.c (rest_of_decl_compilation): Revert last two changes.
4073
4074 2002-03-03  Zack Weinberg  <zack@codesourcery.com>
4075
4076         * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c,
4077         print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c,
4078         tree.c, config/m68k/m68k.c:
4079         Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef
4080         REAL_ARITHMETIC blocks unconditional.  Delete some further
4081         #ifdef blocks predicated on REAL_ARITHMETIC.
4082         * flags.h, toplev.c: Delete remaining references to
4083         flag_pretend_float.
4084
4085         * doc/invoke.texi: Remove documentation of -fpretend-float.
4086         * doc/tm.texi: Describe the various REAL_* macros as provided by
4087         real.h, not by the target configuration files.
4088
4089         * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h,
4090         config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h,
4091         config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
4092         config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h,
4093         config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h,
4094         config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h,
4095         config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h,
4096         config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h,
4097         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
4098         config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.h,
4099         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
4100         config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h,
4101         config/sparc/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h,
4102         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h,
4103         config/xtensa/xtensa.h:
4104         Do not define, undefine, or mention in comments any of
4105         REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF,
4106         REAL_VALUE_ISNAN, REAL_VALUE_ISINF,
4107         REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE,
4108         REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL,
4109         REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS,
4110         REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX,
4111         REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT,
4112         REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE,
4113         REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT.
4114
4115 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4116
4117         * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h,
4118         convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h,
4119         i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h,
4120         m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h,
4121         pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h,
4122         stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD):
4123         Delete.
4124         * defaults.h (BITS_PER_WORD): Define.
4125         * doc/tm.texi (BITS_PER_WORD): Document default value.
4126
4127         * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h,
4128         m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c,
4129         stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete.
4130
4131 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4132
4133         * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in
4134         lieu of explicit sizeof/sizeof.
4135         * i386.c (override_options, ix86_init_mmx_sse_builtins,
4136         ix86_expand_builtin): Likewise.
4137         * mips.c (mips_add_gc_roots): Likewise.
4138         * mmix.c (mmix_output_condition): Likewise.
4139         * rs6000.c (rs6000_override_options, altivec_expand_builtin,
4140         altivec_init_builtins): Likewise.
4141         * sparc.c (mark_ultrasparc_pipeline_state): Likewise.
4142         * cppexp.c (Nsuff, parse_number): Likewise.
4143         * cppinit.c (builtin_array_end): Likewise.
4144         * gcc.c (n_default_compilers, process_command): Likewise.
4145         * genpreds.c (output_predicate_decls): Likewise.
4146         * ggc-page.c (NUM_EXTRA_ORDERS): Likewise.
4147         * lcm.c (N_ENTITIES): Likewise.
4148         * stor-layout.c (set_sizetype): Likewise.
4149
4150 2002-03-03  Richard Henderson  <rth@redhat.com>
4151
4152         * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl
4153         for types or labels.
4154
4155 2002-03-03  Richard Henderson  <rth@redhat.com>
4156
4157         * c-decl.c (start_decl): Initialized variables are not common.
4158
4159 2002-03-02  Per Bothner  <per@bothner.com>
4160
4161         * gcc.c (option_map):  Suport new --bootclasspath option.
4162         --CLASSPATH is now just an alias for --classpath.
4163
4164 2002-03-02  Richard Henderson  <rth@redhat.com>
4165
4166         * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register
4167         load if "internal" visibility.
4168         * doc/extend.texi: Document visibility meanings.
4169
4170 2002-03-02  Richard Henderson  <rth@redhat.com>
4171
4172         * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies
4173         to functions as well.
4174
4175 2002-03-02  Richard Henderson  <rth@redhat.com>
4176
4177         * attribs.c (handle_alias_attribute): Don't call assemble_alias.
4178         (handle_visibility_attribute): Don't call assemble_visibility.
4179         * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even
4180         without asmspec.  Invoke assemble_alias when needed.
4181         * varasm.c (maybe_assemble_visibility): New.
4182         (assemble_start_function, assemble_variable, assemble_alias): Use it.
4183
4184 2002-03-02  Richard Henderson  <rth@redhat.com>
4185
4186         * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P;
4187         invoke ENCODE_SECTION_INFO with first call flag.
4188
4189         * config/darwin-protos.h, config/darwin.c, config/darwin.h,
4190         config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c,
4191         config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h,
4192         config/arm/arm.h, config/arm/pe.c, config/arm/pe.h,
4193         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
4194         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
4195         config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h,
4196         config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h,
4197         config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h,
4198         config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c,
4199         config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h,
4200         config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h,
4201         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
4202         config/m68hc11/m68hc11.h, config/m88k/m88k.h,
4203         config/mcore/mcore-protos.h, config/mcore/mcore.c,
4204         config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h,
4205         config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h,
4206         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
4207         config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h,
4208         config/sh/sh.h, config/sparc/sparc.h,
4209         config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
4210         config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h,
4211         config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes
4212         FIRST argument.  As needed, examine it and do nothing.
4213
4214         * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h,
4215         config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
4216         config/mcore/mcore.h: Remove REDO_SECTION_INFO_P.
4217
4218         * config/arm/t-pe (pe.o): Add dependencies.
4219
4220 2002-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4221
4222         * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h,
4223         cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h,
4224         i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h,
4225         mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h,
4226         pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h,
4227         vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete.
4228         * defaults.h (BITS_PER_UNIT): Define.
4229         * doc/tm.texi (BITS_PER_UNIT): Document default value.
4230
4231 2002-03-02  Kazu Hirata  <kazu@hxi.com>
4232
4233         * config/h8300/h8300-protos.h: Add a prototype for
4234         compute_a_shift_length.
4235         * config/h8300/h8300.c (h8300_asm_insn_count): New.
4236         (compute_a_shift_length): Likewise.
4237         (h8300_adjust_insn_length): Do not adjust insn length of shift
4238         insns.
4239         * config/h8300/h8300.md (anonymous shift patterns): Use
4240         compute_a_shift_length.
4241
4242 Sat Mar  2 06:30:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4243
4244         * config/sparc/sparc.c (sparc_initialize_trampoline): Use
4245         trunc_int_for_mode.
4246
4247         * emit-rtl.c (offset_address): Call update_temp_slot_address.
4248
4249 2002-03-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4250
4251         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss.
4252         * doc/invoke.texi (-fno-zero-initialized-in-bss): Document.
4253         * flags.h (flag_zero_initialized_in_bss): Declare.
4254         * toplev.c (flag_zero_initialized_in_bss): New flag.
4255         (lang_independent_options): Add flag_zero_initialized_in_bss.
4256         * tree.c (initializer_zerop): New function.
4257         * tree.h (initializer_zerop): Declare.
4258         * varasm.c (assemble_variable): If we can emit bss, put zero
4259         initializers in the bss section.
4260
4261 2002-03-02  Alan Modra  <amodra@bigpond.net.au>
4262
4263         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't
4264         like more than one symbol per .weak directive.
4265
4266 2002-03-01  Richard Henderson  <rth@redhat.com>
4267
4268         * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not
4269         adjust argument_pointer by pretend_args_size.
4270         (ia64_va_start): Adjust va_start address by -pretend_args_size.
4271
4272 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4273
4274         * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up.
4275
4276 Fri Mar  1 20:59:14 CET 2002  Jan Hubicka  <jh@suse.cz>
4277
4278         * toplev.c (rest_of_compilation): Delete dead jumptables before
4279         loop.
4280         * flow.c (delete_dead_jumptables): Make global.
4281         * rtl.h (delete_dead_jumptables): Declare.
4282
4283 2002-03-01  David Edelsohn  <edelsohn@gnu.org>
4284
4285         * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete.
4286         * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define.
4287         * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete.
4288
4289 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4290
4291         * config/h8300/h8300-protos.h: Fix formatting.
4292         * config/h8300/h8300.c: Likewise.
4293         * config/h8300/h8300.h: Likewise.
4294
4295 2002-03-01  Kazu Hirata  <kazu@hxi.com>
4296
4297         * config/h8300/h8300.c (print_operand): Support 16-bit
4298         constant addresses.
4299         * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New.
4300
4301 2002-02-28  Richard Henderson  <rth@redhat.com>
4302
4303         * expmed.c (store_bit_field): Prevent generation of CONCATs;
4304         pun complex values as integers; use gen_lowpart instead of
4305         gen_rtx_SUBREG.
4306         (extract_bit_field): Likewise.
4307
4308 2002-03-01  Alan Modra  <amodra@bigpond.net.au>
4309             David Edelsohn  <edelsohn@gnu.org>
4310
4311         * doc/tm.texi (ASM_WEAKEN_DECL): Document.
4312         (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL.
4313         (SUPPORTS_WEAK): Likewise.
4314         * output.h (add_weak): Add tree param.
4315         * varasm.c (add_weak): Likewise.  Save decl.
4316         (struct weak_syms): Add decl field.
4317         (mark_weak_decls): New function.
4318         (init_varasm_once): ggc_add_root mark_weak_decls.
4319         (assemble_start_function): Use ASM_WEAKEN_DECL.
4320         (assemble_variable): Likewise.
4321         (assemble_alias): Likewise.
4322         (declare_weak): Pass decl to add_weak.
4323         (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl.
4324         (remove_from_pending_weak_list): Declare and define for
4325         ASM_WEAKEN_DECL.
4326         * c-pragma.c (handle_pragma_weak): Adjust add_weak call.
4327         * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too.
4328         * defaults.h (SUPPORTS_WEAK): Likewise.
4329         * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4330         .weak for code sym.  Do emit .size for descriptor sym.
4331         (ASM_DECLARE_FUNCTION_SIZE): Define.
4332         * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define.
4333         (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here.  Don't output
4334         .lglobl unless TARGET_XCOFF.  Formatting fixes.
4335         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit
4336         .weak for code sym.
4337         (HANDLE_PRAGMA_WEAK): Remove.
4338         (ASM_WEAKEN_LABEL): Remove.
4339         * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define.
4340
4341 2002-03-01  Jason Merrill  <jason@redhat.com>
4342
4343         * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros.
4344         (TARGET_EXPR_CLEANUP): New macro.
4345
4346 2002-02-28  Steve Ellcey  <sje@cup.hp.com>
4347
4348         * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition
4349         to take ptr_extend into account as third type of extension.
4350         (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit
4351         fields used by SUBREG_PROMOTED_UNSIGNED_P.
4352         * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro.
4353         (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1.
4354         * calls.c (precompute_arguments): Use new macro.
4355         (expand_call): Ditto.
4356         * combine.c (nonzero_bits): Ditto.
4357         (record_promoted_value): Ditto.
4358         * expr.c (store_expr): Ditto.
4359         (expand_expr): Ditto.
4360         * function.c (assign_parms): Ditto.
4361
4362 2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
4363
4364         * gcc.c (init_gcc_specs): Get -static and -static-libgcc to
4365         override -shared and -shared-libgcc.
4366
4367 2002-02-28  David O'Brien  <obrien@FreeBSD.org>
4368
4369         * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification
4370         of "ultrasparc".
4371         * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS.  It appears
4372         to be broken.
4373
4374 2002-02-28  Richard Henderson  <rth@redhat.com>
4375
4376         * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have
4377         4 cycle latency from MM producers.
4378         (ia64_internal_sched_reorder): Likewise with pipeline flush.
4379
4380 2002-02-28  Jakub Jelinek  <jakub@redhat.com>
4381
4382         * mklibgcc.in: Don't use GNU make extension.
4383
4384 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4385
4386         * c-parse.in (STATIC): New terminal.
4387         (scspec): New non-terminal.  Update productions accordingly.
4388         (program): Remove bogus ifc / end ifc.
4389         (array_declarator): Simplify production using STATIC.
4390
4391 2002-02-28  Jim Meyering  <meyering@lucent.com>
4392
4393         * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code:
4394         \a still means TARGET_BELL.
4395
4396 2002-02-28  Richard Henderson  <rth@redhat.com>
4397
4398         * haifa-sched.c (sched_emit_insn): New.
4399         (schedule_block): Use last_scheduled_insn to track last insn.
4400         * sched-int.h (sched_emit_insn): Prototype.
4401         * config/ia64/ia64.c (last_issued): Remove.
4402         (ia64_variable_issue): Don't set it.
4403         (nop_cycles_until): Use sched_emit_insn.
4404
4405 2002-02-28  Andrew MacLeod  <amacleod@redhat.com>
4406
4407         * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign
4408         extended constants.
4409
4410 2002-02-28  Kazu Hirata  <kazu@hxi.com>
4411
4412         * config/h8300/h8300.c: Fix formatting.
4413         * config/h8300/h8300.h: Likewise.
4414
4415 2002-02-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
4416
4417         * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
4418         which may overwrite the high byte of the frame pointer.
4419
4420 2002-02-28  Bo Thorsen  <bo@suse.de>
4421
4422         * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
4423         (STARTFILE_SPEC): Add 64 bit files.
4424         (ENDFILE_SPEC): Likewise.
4425
4426 2002-02-28  Jason Merrill  <jason@redhat.com>
4427
4428         * c-decl.c (finish_function): Only warn about missing return
4429         statement with -Wreturn-type.
4430
4431 Don Feb 28 11:24:30 CET 2002  Jan Hubicka  <jh@suse.cz>
4432
4433         * cfgrtl.c (purge_dead_edges): Fix handling of EH edges.
4434
4435         * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to
4436         PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM
4437
4438 Don Feb 28 11:07:36 CET 2002  Jan Hubicka  <jh@suse.cz>
4439
4440         * basic-block.h (BB_REACHABLE): Renumber.
4441         (BB_DIRTY, BB_NEW): New flags.
4442         (clear_bb_flags): Declare.
4443         (update_life_info_in_dirty_blocks): Declare.
4444         * cfg.c (clear_bb_flags): New function.
4445         * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW.
4446         * emit-rtl.c (add_insn_after, add_insn_before, remove_insn,
4447         reorder_insns, emit_insn_after): Mark block as dirty.
4448         * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS.
4449         (update_life_info_in_dirty_blocks): New function.
4450         * recog.c (apply_change_group): Dirtify block.
4451
4452         * cse.c (cse_insn): Reorder emitting of jump insn to keep
4453         cfg consistent.
4454         * gcse.c (delete_null_pointer_checks): Likewise.
4455
4456         * toplev.c (dump_file_index): Move cse2 after bp,
4457         add DFI_null
4458         (dump_file_info): Similary.
4459         (rest_of_compilation): Avoid most of CFG rebuilds;
4460         do first if converision after null pointer checks, do cse2
4461         after branch prediction; avoid full liveness rebuild after
4462         initializing subregs.
4463         * invoke.texi (-d options): Document -du, renumber.
4464
4465         * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE.
4466         (notice_new_block): Do not set BB_UPDATE_LIFE.
4467         (try_forward_edges, merge_blocks_move_predecessor_nojumps,
4468          merge_blocks_move_successor_nojumps, merge_blocks,
4469          try_crossjump_to_edge): Likewise.
4470         (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks.
4471         * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a.
4472         * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill.
4473         (merge_of_block): Do not use life_data_ok.
4474         (find_if_case_1): Do not use SET_UPDATE_LIFE.
4475         (if_convert): Use BB_DIRTY mechanizm to update life.
4476         * lcm.c (optimize_mode_switching): Update
4477         update_life_info_in_dirty_blocks
4478
4479 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
4480
4481         * Makefile.in (integrate.o): Update.
4482         * c-decl.c (copy_lang_decl): Rename.
4483         * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4484         * integrate.c: Include langhooks.h.
4485         (copy_decl_for_inlining): Update to use langhook.
4486         * langhooks-def.h (lhd_do_nothing_t,
4487         LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New.
4488         (LANG_HOOKS_INITIALIZER): Update.
4489         * langhooks.c (lhd_do_nothing_t): New.
4490         * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl.
4491         * tree.h (copy_lang_decl): Remove.
4492 objc:
4493         * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4494
4495 2002-02-27  Andrew MacLeod  <amacleod@redhat.com>
4496
4497         * dwarf2out.c (stack_adjust_offset): Add support for POST_INC,
4498         POST_DEC, and POST_MODIFY.
4499
4500 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4501
4502         * c-typeck.c (digest_init): Remove unused parameter; all
4503         callers changed.
4504
4505 2002-02-27  Geoffrey Keating  <geoffk@redhat.com>
4506
4507         * expmed.c (expand_shift): Correctly test for low part of a
4508         subreg.
4509
4510 2002-02-27  Ulrich Weigand  <uweigand@de.ibm.com>
4511
4512         * config/s390/s390.c (s390_chunkify_pool): Do not confuse
4513         insn UIDs with insn addresses.
4514
4515 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4516
4517         * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in,
4518         c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h,
4519         cppmacro.c, objc/lang-specs.h, objc/objc-act.c,
4520         builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c,
4521         gcc.c, toplev.c: Delete code implementing -traditional mode.
4522
4523         * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi,
4524         doc/invoke.texi, doc/standards.texi, doc/trouble.texi:
4525         Document removal of -traditional mode for compilation, and
4526         remove documentation only relevant to that mode.
4527
4528         * config/nextstep.h, config/ptx4.h, config/svr4.h,
4529         config/convex/convex.h, config/d30v/d30v.h,
4530         config/i386/dgux.h, config/i386/osf1elf.h,
4531         config/i386/osfelf.h, config/i386/osfrose.h,
4532         config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h,
4533         config/m68k/hp310.h, config/m88k/dgux.h,
4534         config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c,
4535         config/m88k/m88k.h, config/m88k/openbsd.h,
4536         config/mips/abi64.h, config/mips/osfrose.h,
4537         config/mips/svr4-5.h, config/mips/svr4-t.h,
4538         config/sparc/sol2-sld-64.h, config/sparc/sol2.h,
4539         config/stormy16/stormy16.h: Remove all references to
4540         -traditional from target specs.  Delete all mention of the
4541         no-longer-necessary TRADITIONAL_RETURN_FLOAT macro.  Also
4542         delete a couple of commented-out definitions of
4543         DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring
4544         to -traditional.
4545
4546         * system.h: Poison TRADITIONAL_RETURN_FLOAT.
4547         * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro.
4548
4549 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
4550
4551         * mklibgcc.in: Don't use \n in a line subject to
4552         interpretation by echo.
4553
4554 2002-02-27  Graham Stott  <grahams@redhat.com>
4555
4556         * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC):
4557         Constify NAME.
4558
4559         * loop.c (prescan_loop): Handle PARALLEL.
4560
4561         * unroll.c (loop_iterations): Return 0 if the add_val for
4562         a BIV is REG.
4563
4564         * final.c (output_operand_lossage): Constify PFX_STR.
4565
4566         * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE.
4567
4568 Wed Feb 27 10:45:19 CET 2002  Jan Hubicka  <jh@suse.cz>
4569
4570         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove.
4571         * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define.
4572
4573 Wed Feb 27 10:39:20 CET 2002  Jan Hubicka  <jh@suse.cz>
4574
4575         * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
4576
4577 2002-02-27  Neil Booth  <neil@daikokuya.demon.co.uk>
4578
4579         * cpplex.c (_cpp_lex_token): Handle directives in macro
4580         arguments.
4581         * cpplib.c (_cpp_handle_directive): Save and restore state
4582         if parsing macro args when entering a directive.
4583         * cppmacro.c (collect_args): No need to handle directives
4584         in macro arguments.
4585         (enter_macro_context, replace_args): Use the original macro
4586         definition in case it was redefined whilst collecting arguments.
4587 doc:
4588         * cpp.texi: Update.
4589
4590 2002-02-26  David Edelsohn  <edelsohn@gnu.org>
4591
4592         * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete.
4593         * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete.
4594         * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient
4595         method on AIX.
4596         * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand.
4597         (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same.
4598         (load_toc_v4_PIC_2): Same.
4599
4600 2002-02-26  Alan Modra  <amodra@bigpond.net.au>
4601
4602         * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE.
4603
4604 2002-02-26  Richard Henderson  <rth@redhat.com>
4605
4606         * config/alpha/alpha.md (ashldi_se): Re-enable.
4607
4608 2002-02-26  Richard Henderson  <rth@redhat.com>
4609
4610         * config/alpha/alpha.c (alpha_encode_section_info): Examine
4611         MODULE_LOCAL_P; improve commentary.
4612
4613 2002-02-26  Zack Weinberg  <zack@codesourcery.com>
4614
4615         * doc/cpp.texi: Clarify documentation of relationship between
4616         #line and #include.
4617
4618 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4619
4620         * config/h8300/h8300-protos.h: Update the prototype for
4621         compute_logical_op_length.  Add the prototype for
4622         compute_logical_op_cc.
4623         * config/h8300/h8300.c (compute_logical_op_length): Figure out
4624         code from operands.
4625         (compute_logical_op_cc): New.
4626         * config/h8300/h8300.md: Combine all the logical op patterns
4627         in HImode and SImode.  Use compute_logical_op_cc.
4628
4629 2002-02-26  Kelley Cook  <kelleycook@comcast.net>
4630
4631         * config/i386/i386.c (print_operand): Don't append ATT-style
4632         length suffixs to x87 opcodes when in Intel mode.
4633
4634 2002-02-26  Ryan T. Sammartino <ryants@shaw.ca>
4635
4636         * emit-rtl.c (gen_const_vector_0): Remove TYPE argument.
4637         (init_emit_once): Update calls.
4638         * fixinc/gnu-regex.c (_GNU_SOURCE): Remove.
4639         (init_syntax_once): Prototype.
4640
4641 2002-02-26  John David Anglin  <dave@hiauly1.hia.nrc.ca>
4642
4643         * pa-linux.h (LIB_SPEC): Update definition.
4644         * pa32-linux.h (LINK_COMMAND_SPEC): Delete.
4645
4646 2002-02-26  Richard Henderson  <rth@redhat.com>
4647
4648         * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers
4649         if we emitted a stop bit.
4650
4651 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4652
4653         * configure.in (libgcc_visibility): Substitute.
4654         * configure: Rebuilt.
4655         * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global
4656         defined symbols .hidden.
4657
4658 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4659
4660         * attribs.c (c_common_attribute_table): Add visibility.
4661         (handle_visibility_attribute): New function.
4662         * varasm.c (assemble_visibility): New function.
4663         * output.h (assemble_visibility): Add prototype.
4664         * tree.h (MODULE_LOCAL_P): Define.
4665         * crtstuff.c (__dso_handle): Use visibility attribute.
4666         * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG
4667         for MODULE_LOCAL_P symbols too.
4668         * config/ia64/ia64.c (ia64_encode_section_info): Handle
4669         MODULE_LOCAL_P symbols the same way as local symbols.
4670         Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced
4671         into .sdata/.sbss by the user.
4672         * doc/extend.texi (Function Attributes): Document visibility
4673         attribute.
4674
4675 2002-02-26  Jakub Jelinek  <jakub@redhat.com>
4676
4677         PR debug/5770
4678         * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for
4679         STRING_CST initializer spanning the whole variable without
4680         embedded zeros.
4681         If expand_expr returned MEM, don't use it.
4682
4683 2002-02-26  Alexandre Oliva  <aoliva@redhat.com>
4684
4685         * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract,
4686         generate a die for the lexical block.
4687
4688 2002-02-26  Kazu Hirata  <kazu@hxi.com>
4689
4690         * config/h8300/h8300-protos.h: Add a prototype for
4691         compute_logical_op_length.
4692         * config/h8300/h8300.c (compute_logical_op_length): New.
4693         * config/h8300/h8300.md (anonymous logical patterns): Use
4694         compute_logical_op_length for length.
4695
4696 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4697
4698         * dwarf2out.c (modified_type_die): Do not call type_main_variant
4699         for vectors.
4700         (gen_type_die): Same.
4701
4702         * attribs.c (handle_vector_size_attribute): Set debug information.
4703
4704 2002-02-26  Daniel Egger  <degger@fhm.edu>
4705
4706         * config/rs6000/rs6000.md: Swap define_insn attributes to
4707         fix incorrect generation of merge high instructions instead
4708         of merge low.
4709
4710 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4711
4712         * c-typeck.c (really_start_incremental_init): Use
4713         bitsize_zero_node for vectors.
4714
4715 2002-02-26  Aldy Hernandez  <aldyh@redhat.com>
4716
4717         * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo.
4718         ("*set_vrsave_internal"): Same.
4719
4720 2002-02-25  Richard Henderson  <rth@redhat.com>
4721
4722         * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law
4723         in EXPAND_SUM case.  Use host_integerp/tree_low_cst.
4724
4725 2002-02-25  Jakub Jelinek  <jakub@redhat.com>
4726
4727         PR target/5755
4728         * config/i386/i386.c (ix86_return_pops_args): Only pop
4729         fake structure return argument if it was passed on the stack.
4730
4731 2002-02-25  Jason Merrill  <jason@redhat.com>
4732
4733         * attribs.c (decl_attributes): Also re-layout PARM_DECL and
4734         RESULT_DECL.
4735
4736 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4737
4738         * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to
4739         link with shared_name only.
4740         * doc/invoke.texi (Link Options): Document new behavior.
4741
4742 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4743
4744         * c-typeck.c (push_init_level): Handle vectors.
4745
4746 2002-02-25  Alexandre Oliva  <aoliva@redhat.com>
4747
4748         * config/sparc/sparc.c (const64_high_operand): Zero-extend
4749         operands of SPARC_SETHI_P.
4750         (input_operand): Likewise.
4751         (sparc_emit_set_const32): Likewise.
4752         * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64.
4753         (SPARC_SETHI32_P): Zero-extend operand from 32 bits.
4754         (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'.  Add `N' as SETHI.
4755         * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'.
4756         (movdi_insn_sp64_vis): Likewise.
4757         (movdi split, movdf split): Use SETHI32.
4758         * doc/md.texi: Document SPARC constraints L, M and N.
4759
4760 2002-02-25  Aldy Hernandez  <aldyh@redhat.com>
4761
4762         * config/rs6000/rs6000.md ("get_vrsave_internal"): New.
4763         ("*set_vrsave_internal"): use mfspr for Darwin.
4764
4765         * config/rs6000/rs6000.c (rs6000_emit_prologue): Call
4766         gen_get_vrsave_internal.
4767
4768 Sun Feb 24 16:38:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4769
4770         * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND.
4771
4772 2002-02-24  Neil Booth  <neil@daikokuya.demon.co.uk>
4773
4774         * cpplex.c (cpp_interpret_charconst): Get signedness or
4775         otherwise of wide character constants correct.
4776         * cppexp.c (lex): Get signedness of wide charconsts correct.
4777
4778 Sun Feb 24 07:41:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4779
4780         * optabs.c (widen_operand): Only call convert_modes for
4781         promoted SUBREG if signedness matches.
4782         * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns.
4783
4784 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4785
4786         * cpplib.c (glue_header_name): Use local buffer to build up
4787         header name.
4788
4789 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4790
4791         * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM.
4792
4793 2002-02-23  Kazu Hirata  <kazu@hxi.com>
4794
4795         * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and
4796         H8/300[HS] separately.
4797         * config/h8300/h8300.md: Remove the early clobber constraint
4798         from bit field patterns.
4799
4800 2002-02-23  Kazu Hirata  <kazu@hxi.com>
4801
4802         * config/h8300/h8300.md (mulqihi3): Tighten predicates to
4803         register_operand.
4804         (mulhisi3): Likewise.
4805         (umulqisi3): Likewise.
4806         (umulhisi3): Likewise.
4807
4808 2002-02-23  Neil Booth  <neil@daikokuya.demon.co.uk>
4809
4810         * cppinit.c (output_deps): Correct test for stdout output.
4811         (init_dependency_output): Cure warning.
4812
4813 Sat Feb 23 08:42:47 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4814
4815         * expr.c (store_expr): When converting expression to promoted
4816         equivalent type, allow using SUBREG_REG of TARGET as the target
4817         of the expansion of EXP.
4818         * loop.c (basic_induction_var, case SUBREG): Always look inside.
4819         * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl.
4820         (alpha_emit_set_const): Handle SImode when can't make new pseudos.
4821         (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos.
4822         * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing.
4823
4824 2002-02-23  Joseph S. Myers  <jsm28@cam.ac.uk>
4825
4826         * doc/contribute.texi, doc/extend.texi, doc/install.texi,
4827         doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi,
4828         doc/standards.texi, doc/tm.texi: Remove trailing whitespace.
4829
4830 2002-02-23  Jakub Jelinek  <jakub@redhat.com>
4831
4832         PR optimization/5747
4833         * loop.c (scan_loop): Update reg info if move_movables created new
4834         pseudos.
4835
4836 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
4837
4838         * gcc.c (init_gcc_spec): Revert last change.
4839
4840 2002-02-23  David Edelsohn  <edelsohn@gnu.org>
4841
4842         * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use
4843         gpc_reg_operand constraint.
4844
4845 2002-02-23  Alan Modra  <amodra@bigpond.net.au>
4846
4847         * config/rs6000/rs6000.c (num_insns_constant): Fix formatting.
4848         Simplify comparison of `low'.
4849         (add_operand): Fix formatting.
4850         (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P.
4851         (mask_operand): Disallow mask to wrap in 64-bit mode.
4852         (rs6000_stack_info): Remove redundant test setting push_p.
4853         (output_toc): Fix formatting.
4854         * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use
4855         cc_reg_not_cr0_operand constraint.
4856         (booldi3, boolcdi3 splitters): Same.
4857
4858 2002-02-23  Aldy Hernandez  <aldyh@redhat.com>
4859
4860         * config/rs6000/altivec.h: Add extra level of parentheses on casts.
4861
4862 2002-02-22  David Edelsohn  <edelsohn@gnu.org>
4863
4864         * gcc.c (init_gcc_spec): Do not link with static libgcc.a if
4865         gcc invoked with -shared-libgcc.
4866
4867 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
4868
4869         PR c++/5748
4870         * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union
4871         decl if any of elements was TREE_USED.
4872
4873 2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
4874
4875         * config/sparc/sol2.h: Don't include sys/mman.h.
4876         * config/sparc/sparc.c (arith_operand): Use SMALL_INT32.
4877         (arith_4096_operand): Don't throw high bits away.
4878         (const64_operand): Take sign extension of CONST_INTs into account.
4879         (const64_high_operand, sparc_emit_set_const32): Likewise.
4880         (GEN_HIGHINT64): Likewise.
4881         (sparc_emit_set_const64_quick1): Likewise.
4882         (const64_is_2insns): Likewise.
4883         (print_operand): Use trunc_int_for_mode for sign extension.
4884         * config/sparc/sparc.h (SMALL_INT32): Likewise.
4885         * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE
4886         chars.  Assume CONST_INT is already properly sign-extended.
4887         (movdi split): Sign-extend each SImode part.
4888         (andsi3 split): Don't mask high bits off, so that result
4889         remains properly sign-extend.
4890         (iorsi3 split): Likewise.
4891         (xorsi3 split): Likewise.
4892
4893 2002-02-22  Richard Sandiford  <rsandifo@redhat.com>
4894
4895         * fold-const.c (fold): Fix typo in comments.
4896
4897 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
4898
4899         * Makefile.in (langhooks.o): Update dependencies.
4900
4901 2002-02-21  Diego Novillo  <dnovillo@redhat.com>
4902
4903         * langhooks.c: Include flags.h.
4904
4905 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
4906
4907         * testsuite/gcc.dg/attr-alwaysinline.c: New.
4908
4909         * c-common.c (c_common_post_options): Set inline trees by
4910         default.
4911
4912         * doc/extend.texi (Function Attributes): Document always_inline
4913         attribute.
4914         Update documentation about inlining when not optimizing.
4915
4916         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
4917
4918         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
4919         unless DECL_ALWAYS_INLINE.
4920
4921         * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0
4922         unless DECL_ALWAYS_INLINE.
4923         (c_disregard_inline_limits): Disregard if always_inline set.
4924
4925         * langhooks.c (lhd_tree_inlining_disregard_inline_limits):
4926         Disregard if always_inline set.
4927         (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0
4928         unless DECL_ALWAYS_INLINE.
4929
4930         * attribs.c (handle_always_inline_attribute): New.
4931         (c_common_attribute_table): Add always_inline.
4932
4933         * config/rs6000/altivec.h: Add prototypes for builtins
4934         requiring the always_inline attribute.
4935
4936 2002-02-21  Eric Christopher  <echristo@redhat.com>
4937
4938         * expmed.c (store_bit_field): Try to simplify the subreg
4939         before generating a new one when when the mode size of
4940         value is less than maxmode.
4941
4942 2002-02-21  Richard Henderson  <rth@redhat.com>
4943
4944         * emit-rtl.c (offset_address): Use simplify_gen_binary rather
4945         than gen_rtx_PLUS to form the sum.
4946         * explow.c (force_reg): Rearrange to not allocate new pseudo
4947         when force_operand returns a register.
4948         * expr.c (expand_assignment): Allow offset_rtx expansion to
4949         return a sum.  Do not force addresses into registers.
4950         (expand_expr): Likewise.
4951         * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus
4952         to canonicalize arithmetic that didn't simpify.
4953         (simplify_plus_minus): New argument force; update
4954         all callers.  Don't split CONST unless we can do something with it,
4955         and wouldn't lose the constness of the operands.
4956
4957         * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs
4958         that we generated earlier.
4959
4960 2002-02-21  Tom Tromey  <tromey@redhat.com>
4961
4962         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
4963         (output_line_info): Use constant `1', with a long explanatory
4964         comment.
4965         * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison.
4966
4967 Thu Feb 21 22:43:44 2002  J"orn Rennecke <joern.rennecke@superh.com>
4968
4969         * jump.c (redirect_jump): If old label has no UID, don't try to
4970         delete it.
4971
4972 Thu Feb 21 21:17:21 2002  J"orn Rennecke <joern.rennecke@superh.com>
4973
4974         * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG.
4975         If input is constant, do shifts at compile time.
4976
4977 2002-02-21  Joseph S. Myers  <jsm28@cam.ac.uk>
4978
4979         * doc/extend.texi: Fix some more overfull hboxes.
4980
4981 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
4982
4983         PR optimization/4994
4984         * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX
4985         register moves.
4986
4987 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
4988
4989         PR c++/4574
4990         * expr.h (expand_and): Add mode argument.
4991         * expmed.c (expand_and): Add mode argument.
4992         (expand_mult_highpart_adjust, emit_store_flag): Adjust callers.
4993         * expr.c (store_field, expand_expr, do_store_flag): Likewise.
4994         * except.c (expand_builtin_extract_return_addr): Likewise.
4995         * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise.
4996         * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise.
4997         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise.
4998         Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x).
4999         * config/c4x/c4x.md: Use GEN_INT (x) instead of
5000         gen_rtx (CONST_INT, VOIDmode, x).
5001
5002 2002-02-21  Jakub Jelinek  <jakub@redhat.com>
5003
5004         PR c/4697:
5005         * stmt.c (warn_if_unused_value): Move side effects test once more.
5006
5007 2002-02-20  Torbjorn Granlund  <tege@swox.com>
5008
5009         * config/avr/avr.md: Add more patterns for mized-mode add and subtract
5010         (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend).
5011
5012 Thu Feb 21 16:20:46 2002  Alexandre Oliva  <aoliva@redhat.com>
5013
5014         * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of
5015         SUBREG or ZERO_EXTEND.
5016
5017 Thu Feb 21 15:35:46 2002  J"orn Rennecke <joern.rennecke@superh.com>
5018
5019         * sh.h (current_function_anonymous_args): Remove.
5020         (SETUP_INCOMING_VARARGS): Don't set it - just check that one
5021         of current_function_varargs and current_function_stdarg is set.
5022         * sh.c (sh_expand_prologue): Check current_function_varargs /
5023         current_function_stdarg / TARGET_SH5 instead of
5024         current_function_anonymous_args.
5025
5026         * sh64.h (TARGET_VERSION): Define.
5027
5028 2002-02-20  David Edelsohn  <edelsohn@gnu.org>
5029
5030         * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize
5031         VRSAVE_REGNO on TARGET_ALTIVEC.
5032
5033 2002-02-20  Alan Modra  <amodra@bigpond.net.au>
5034
5035         * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant
5036         bits of SImode const_int.
5037         (includes_rshift_p): Likewise.
5038         (print_operand): Call mask_operand and mask64_operand with correct
5039         mode.
5040         (rs6000_output_function_epilogue): Pad traceback table to word.
5041         * config/rs6000/rs6000.h (MASK_64BIT): Correct comment.
5042         (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and
5043         mask64_operand with correct mode.
5044         (FUNCTION_ARG_REGNO_P): Correct parentheses.
5045
5046 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5047
5048         PR debug/4461
5049         * varasm.c (get_pool_constant_mark): New.
5050         * rtl.h (get_pool_constant_mark): Add prototype.
5051         * dwarf2out.c (mem_loc_descriptor): A pool constant cannot
5052         be represented if it has not been output.
5053
5054 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5055
5056         * combine.c (do_SUBST): Sanity check substitutions of
5057         CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
5058         (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
5059         CONST_INT into its operand.
5060         (known_cond): Likewise, for ZERO_EXTEND.
5061         * simplify-rtx.c (simplify_unary_operation): Fix condition to
5062         allow for simplification of wide modes.  Reject CONST_INTs in
5063         ZERO_EXTEND when their actual mode is not given.
5064
5065 2002-02-20  Alexandre Oliva  <aoliva@redhat.com>
5066
5067         * c-decl.c (pushdecl): If no global declaration is found for an
5068         extern declaration in block scope, try a limbo one.
5069
5070 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5071
5072         PR c++/4401
5073         * c-common.c (pointer_int_sum): Moved from...
5074         * c-typeck.c (pointer_int_sum): ...here.
5075         * c-common.h (pointer_int_sum): Add prototype.
5076
5077 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
5078
5079         PR c++/5713
5080         * c-decl.c (duplicate_decls): Return 0 if issued error about
5081         redeclaration.
5082
5083 2002-02-20  Roger Sayle  <roger@eyesopen.com>
5084             Jakub Jelinek  <jakub@redhat.com>
5085
5086         PR c/4389
5087         * tree.c (host_integerp): Ensure that the constant integer is
5088         representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT
5089         when pos is zero or non-zero respectively.  Clarify comment.
5090         * c-format.c (check_format_info_recurse): Fix host_integerp
5091         usage; the pos argument should be zero when assigning to a
5092         signed HOST_WIDE_INT.
5093
5094 2002-02-20  Richard Henderson  <rth@redhat.com>
5095
5096         * config/i386/i386.c (ix86_expand_vector_move): Use the mode
5097         of the operand, rather than assuming TImode.
5098         (ix86_expand_binop_builtin): Cope with commutative patterns
5099         using nonimmediate_operand for both operands.
5100         (ix86_expand_timode_binop_builtin): Likewise.
5101         (ix86_expand_store_builtin): Validate operand 1.
5102         (ix86_expand_unop1_builtin): Likewise.
5103
5104 2002-02-20  Philip Blundell  <philb@gnu.org>
5105
5106         PR 5705
5107         * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro.
5108
5109 2002-02-20  Richard Henderson  <rth@redhat.com>
5110
5111         PR c/5615
5112         * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype.
5113
5114 2002-02-20  Tom Tromey  <tromey@redhat.com>
5115
5116         * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5117         * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5118         * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5119         * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed.
5120         * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define
5121         unconditionally.
5122
5123 Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka <alanm@redhat.com>
5124
5125         * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look
5126           for (const_int 0) in X not just INTVAL.
5127
5128 2002-02-20  Joseph S. Myers  <jsm28@cam.ac.uk>
5129
5130         * doc/extend.texi: Avoid or reduce overfull hboxes.
5131
5132 2002-02-20  Diego Novillo  <dnovillo@redhat.com>
5133
5134         * expmed.c (store_bit_field): Do not store bit fields using SUBREG
5135         operations if the field does not start at a mode boundary.
5136
5137 2001-02-20      Joel Sherrill <joel@OARcorp.com>
5138
5139         * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h,
5140         config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem().
5141         Also done for -Acpu and -Amachine.
5142
5143 2002-02-20  Neil Booth  <neil@daikokuya.demon.co.uk>
5144
5145         * cppinit.c (init_dependency_output): Take deps output file
5146         from -o if none given with -MF.  Suppress normal output.
5147         * gcc.c (cpp_unique_options): Have -M and -MM imply -E.
5148         * doc/cpp.texi, doc/invoke.texi: Update.
5149
5150 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5151
5152         * toplev.c (output_quoted_string): Write unprintable
5153         characters with octal escapes.
5154
5155 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5156
5157         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set
5158         really_call_used[VRSAVE_REGNO] if not Altivec.
5159
5160 2002-02-19  Alan Modra  <amodra@bigpond.net.au>
5161
5162         * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with
5163         MODE_MASK.
5164         (constant_pool_expr_1): Fix formatting.
5165         (rs6000_legitimize_reload_address): Likewise.
5166
5167 Tue Feb 19 20:13:57 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5168
5169         * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx
5170         now that we have one.
5171
5172 2002-02-19  Zack Weinberg  <zack@codesourcery.com>
5173
5174         * tree.h (struct tree_common): Remove aux.  Add unused_0 at
5175         end of first block of bitfields (which was only seven bits);
5176         rename dummy to unused_1; remove comment which is no longer true.
5177
5178 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5179
5180         * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo.
5181
5182 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5183
5184         PR 5399
5185         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything
5186         if generating PIC.
5187
5188         PR 5054
5189         * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use
5190         arm_is_longcall_p rather than inspecting call-type cookie
5191         directly.
5192         (call_value_insn) [TARGET_THUMB]: Likewise.
5193
5194 2002-02-19  Graham Stott  <grahams@redhat.com>
5195
5196         * config/i386/i386.c (ix86_expand_builtin): Fix typo.
5197
5198 2002-02-19  David Edelsohn  <edelsohn@gnu.org>
5199
5200         * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64.
5201         ({STARTFILE,ENDFILE}_LINUX_SPEC): Define.
5202         (FP_SAVE_INLINE): Delete.
5203
5204         * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o.
5205         * config/rs6000/eabi.asm: Remove ABI save restore routines.
5206         * config/rs6000/t-ppccomm: Build crtsavres.o.
5207         * config/rs6000/crtsavres.asm: New file.
5208
5209 2002-02-19  Philip Blundell  <philb@gnu.org>
5210
5211         * config/arm/arm.c (use_return_insn): Don't reject interrupt
5212         functions.
5213         (arm_compute_save_reg_mask): Save LR for interrupt functions too.
5214         (output_return_instruction): Allow interrupt functions to return with
5215         ldmfd sp!, {... pc}^.  Use LDR to restore any single register.
5216         (arm_expand_prologue): Subtract 4 before stacking LR in an
5217         interrupt function.
5218
5219 2002-02-19  Philip Blundell  <pb@nexus.co.uk>
5220
5221         * config/arm/arm.c (arm_encode_call_attribute): Operate on any
5222         decl, not just FUNCTION_DECL.
5223         (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF.
5224         (arm_assemble_integer): Likewise.
5225         * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be
5226         marked local.
5227
5228 2002-02-19  matthew green  <mrg@eterna.com.au>
5229
5230         * config.gcc (sparc-*-netbsdelf*): Enable target.
5231         (sparc64-*-netbsd*): New target.
5232         * config/sparc/netbsd-elf.h: New file.
5233         * config/sparc/t-netbsd64: New file.
5234
5235 2002-02-19  Gaute B Strokkenes <gs234@cam.ac.uk>
5236
5237         * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo.
5238
5239 2002-02-19  Ryan T. Sammartino <ryants@shaw.ca>
5240
5241         * doc/invoke.texi: explicitly list the style guidelines that
5242         -Weffc++ checks for.
5243
5244 Tue Feb 19 12:37:23 CET 2002  Jan Hubicka  <jh@suse.cz>
5245
5246         * regmove.c (regmove_optimize): Avoid increasing of register pressure.
5247
5248 2002-02-19  Neil Booth  <neil@daikokuya.demon.co.uk>
5249
5250         PR other/5718
5251         * gcc.c (cpp_unique_options): Treat -o as indicating object file
5252         only if not -E.  If -E, pass -o through to the preprocessor.
5253
5254 2002-02-19  Kazu Hirata  <kazu@hxi.com>
5255
5256         * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal
5257         register number with an appropriate macro.
5258
5259 2002-02-19  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
5260
5261         * doc/rtl.texi (Constants): Close @code tag.
5262
5263 2002-02-19  Aldy Hernandez  <aldyh@redhat.com>
5264
5265         * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector.
5266         ("mmx_uavgv4hi3"): Same.
5267         ("pmulhrwv4hi3"): Same.
5268
5269         * tree-inline.c (walk_tree): Handle vectors.
5270
5271         * c-common.c (constant_expression_warning): Handle vectors.
5272         (overflow_warning): Same.
5273
5274         * sched-deps.c (sched_analyze_2): Handle vectors.
5275
5276         * rtlanal.c (rtx_unstable_p): Handle vectors.
5277         (rtx_varies_p): Same.
5278         (count_occurrences): Same.
5279         (regs_set_between_p): Same.
5280         (modified_between_p): Same.
5281         (modified_in_p): Same.
5282         (volatile_insn_p): Same.
5283         (volatile_refs_p): Same.
5284         (side_effects_p): Same.
5285         (may_trap_p): Same.
5286         (inequality_comparisons_p): Same.
5287         (replace_regs): Same.
5288         (computed_jump_p_1): Same.
5289
5290         * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th
5291         argument.
5292         (inner_mode_array): New.
5293         (copy_rtx): Handle vectors.
5294         (copy_most_rtx): Same.
5295         (rtx_equal_p): Same.
5296         (get_mode_alignment): Adjust for vectors.
5297
5298         * resource.c (mark_referenced_resources): Handle vectors.
5299         (mark_set_resources): Same.
5300
5301         * reload1.c (eliminate_regs): Handle vectors.
5302         (elimination_effects): Same.
5303         (scan_paradoxical_subregs): Same.
5304
5305         * reload.c (subst_reg_equivs): Handle vectors.
5306
5307         * regrename.c (scan_rtx): Handle vectors.
5308
5309         * regclass.c (reg_scan_mark_refs): Handle vectors.
5310
5311         * recog.c (find_single_use_1): Handle vectors.
5312
5313         * local-alloc.c (equiv_init_varies_p): Handle vectors.
5314         (contains_replace_regs): Same.
5315         (memref_referenced_p): Same.
5316
5317         * integrate.c (copy_rtx_and_substitute): Handle vectors.
5318         (subst_constants): Same.
5319
5320         * genattrtab.c (attr_copy_rtx): Handle vectors.
5321         (encode_units_mask): Same.
5322         (clear_struct_flag): Same.
5323         (count_sub_rtxs): Same.
5324
5325         * gcse.c (want_to_gcse_p): Handle vectors.
5326         (oprs_unchanged_p): Same.
5327         (hash_expr_1): Same.
5328         (oprs_not_set_p): Same.
5329         (expr_killed_p): Same.
5330         (compute_transp): Same.
5331         (store_ops_ok): Same.
5332
5333         * function.c (purge_addressof_1): Do not allow paradoxical subregs
5334         of vectors.
5335         (fixup_var_refs_1): Same.
5336         (instantiate_virtual_regs_1): Same.
5337
5338         * fold-const.c (operand_equal_p): Handle vectors.
5339         (fold): Same.
5340         (rtl_expr_nonnegative_p): Same.
5341
5342         * flow.c (mark_used_regs): Handle vectors.
5343
5344         * df.c (df_uses_record): Handle vectors.
5345
5346         * cselib.c (cselib_subst_to_values): Handle vectors.
5347         (cselib_mem_conflict_p): Same.
5348         (hash_rtx): Same.
5349
5350         * cse.c (canon_reg): Handle vectors.
5351         (fold_rt): Same.
5352         (cse_process_notes): Same.
5353         (count_reg_usage): Same.
5354         (canon_hash): Same.
5355
5356         * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR.
5357
5358         * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR.
5359
5360         * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors.
5361         (gen_rtx): Handle CONST_VECTOR.
5362         (gen_const_vector_0): New.
5363         (copy_rtx_if_shared): CONST_VECTORs can be shared.
5364         (reset_used_flags): Same.
5365         (copy_insn_1): Same.
5366         (initializer_constant_valid_p): Handle VECTOR_CST.
5367
5368         * doc/c-tree.texi (Expression trees): Document VECTOR_CST.
5369
5370         * doc/rtl.texi (Constants): Document const_vector.
5371         (CONST0_RTX): Update for vectors.
5372         (RTL sharing): Same.
5373
5374         * print-tree.c (print_node): Add case for VECTOR_CST.
5375
5376         * tree.h (TREE_VECTOR_CST_ELTS): New.
5377         (struct tree_vector): New.
5378         (union tree_node): Add vector node.
5379         (build_vector): Add prototype.
5380
5381         * tree.def (VECTOR_CST): New.
5382
5383         * tree.c (build_vector): New.
5384
5385         * expmed.c (make_tree): Handle CONST_VECTOR.
5386
5387         * rtl.h (CONSTANT_P): CONST_VECTORs are constants too.
5388         (CONST_VECTOR_ELT): New.
5389         (CONST_VECTOR_NUNITS): New.
5390
5391         * machmode.h (GET_MODE_INNER): New.
5392         (DEF_MACHMODE): Accept 8th arg.
5393
5394         * machmode.def: Add 8th argument for vector inner mode.
5395         Add inner vector modes for vectors.
5396
5397         * rtl.def (VEC_CONST): Remove.
5398         (CONST_VECTOR): New.
5399
5400         * expr.c (clear_storage): Allow vectors.
5401         (is_zeros_p): Handle VECTOR_CST.
5402
5403         * varasm.c (output_constant_pool): Handle vectors.
5404         (rtx_const): Add veclo and vechi fields.
5405         (kind): Add RTX_VECTOR.
5406         (decode_rtx_const): Add case for vector.
5407
5408         * config/rs6000/rs6000-protos.h: Add zero_constant.
5409
5410         * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector
5411         constants.  Force easy vector constants into memory.
5412         (easy_vector_constant): New.
5413         (emit_easy_vector_constant): New.
5414         (rs6000_legitimize_reload_address): Do not generate bad reloads on
5415         darwin.
5416
5417         * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what
5418         instruction does.
5419         ("altivec_lvxl"): Same.
5420         (altivec_lvebx): Same.
5421         (altivec_lvehx): Same.
5422         (altivec_lvewx): Same.
5423         ("*movv4si_const0"): New.
5424         ("*movv4sf_const0"): New.
5425         ("*movv8hi_const0"): New.
5426         ("*movv16qi_const0"): New.
5427
5428 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5429
5430         * config/h8300/h8300.c (notice_update_cc): Use
5431         cc_status.value2.
5432
5433 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5434
5435         * config/h8300/h8300.md (divmod patterns): Change the
5436         constraints for operands[1] to register_operand.
5437
5438 2002-02-18  Kazu Hirata  <kazu@hxi.com>
5439
5440         * config/h8300/h8300-protos.h: Remove the prototype for
5441         p_operand.
5442         * config/h8300/h8300.c (p_operand): Remove.
5443         * config/h8300/h8300.md: Replace p_operand with
5444         const_int_operand.
5445
5446 2002-02-18 Philip Blundell <pb@nexus.co.uk>
5447
5448         * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in
5449         comment.
5450         (output_return_instruction): Allow use of LDR to unstack
5451         return addresss even for interrupt handlers or when
5452         interworking.  If compiling for ARMv5, use interworking-safe
5453         return instructions by default.  Remove duplicated code and
5454         lengthy "strcat" sequences.
5455
5456 2002-02-18  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
5457
5458         * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
5459         (LINK_EH_SPEC): Define.
5460         * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
5461
5462 2002-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5463
5464         * config/s390/s390.c (s390_emit_prologue): Do not set the
5465         frame_related flag for call-clobbered registers.
5466
5467 Mon Feb 18 15:07:35 CET 2002  Jan Hubicka  <jh@suse.cz>
5468
5469         * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode.
5470         (construct_container): Fix handling of SSE operands.
5471         (ix86_expand_builtin): Fix handling of 64bit pointers.
5472         (mmx_maskmovq_rex): New pattern.
5473
5474 Mon Feb 18 11:55:55 CET 2002  Jan Hubicka  <jh@suse.cz>
5475
5476         * regrename.c (kill_set_value): Handle subregs properly.
5477
5478 2002-02-18  David Billinghurst <David.Billinghurst@riotinto.com>
5479
5480         * objc/objc-act.c (handle_impent): Remove leading '*'
5481         from objc_class_name.
5482
5483 2002-02-17  Richard Henderson  <rth@redhat.com>
5484
5485         * config/alpha/alpha.c (some_small_symbolic_operand,
5486         some_small_symbolic_operand_1, split_small_symbolic_operand,
5487         split_small_symbolic_operand_1): Rename from *symbolic_mem_op*.
5488         Handle small SYMBOL_REFs anywhere, not just inside memories.
5489         * config/alpha/alpha-protos.h: Update.
5490         * config/alpha/alpha.h (PREDICATE_CODES): Update.
5491         * config/alpha/alpha.md (small symbolic operand splitter): Update.
5492
5493 2002-02-17  Roland McGrath  <roland@frob.com>
5494
5495         * config.gcc (powerpc-*-gnu-gnualtivec*,
5496         powerpc-*-gnu*, powerpc64-*-gnu*): New configurations.
5497         * config/rs6000/gnu.h: New file.
5498         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS):
5499         Grok "gnu" in rs6000_abi_name.
5500         (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC,
5501         CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC):
5502         Grok -mcall-gnu analogous to -mcall-linux et al.
5503         (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC,
5504         LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros.
5505         (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them.
5506
5507 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
5508
5509         PR c/3444:
5510         * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
5511         shortening.
5512
5513 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5514
5515         * config/cris/cris.h: Undefine STARTFILE_SPEC and
5516         ENDFILE_SPEC before (re)defining them.
5517
5518 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5519
5520         * config/h8300/h8300.c: Fix formatting.
5521         * config/h8300/h8300.h: Likewise.
5522
5523 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5524
5525         * doc/tm.texi: Explain why empty strings should not be
5526         marked for translation.
5527
5528 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5529
5530         * final.c (output_operand_lossage): Changed to accept
5531         printf style arguments. Change calls where necessary.
5532         * output.h (output_operand_lossage): Change declaration
5533         accordingly. Update copyright.
5534         * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c
5535         config/m88k/m88k.c : Adapt all calls to output_operand_lossage.
5536         Update copyright date where necessary.
5537
5538         * config/i386/i386.c (print_operand): Likewise. Remove use of
5539         sprintf.
5540
5541         * config/cris/cris.c (cris_operand_lossage): Likewise.
5542         Rename parameter so that exgettext recognizes it as
5543         translatable message.
5544         (LOSE_AND_RETURN): Rename parameter to msgid.
5545
5546 2002-02-17  Kazu Hirata  <kazu@hxi.com>
5547
5548         * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a
5549         hard coded register number with an appropriate macro.
5550         (HARD_REGNO_MODE_OK): Likewise.
5551         (ARG_POINTER_REGNUM): Likewise.
5552         (STATIC_CHAIN_REGNUM): Likewise.
5553         (RETURN_ADDRESS_POINTER_REGNUM): Likewise.
5554         * config/h8300/h8300.md (define_constants): Define more
5555         register numbers.
5556
5557 2002-02-17  Philipp Thomas  <pthomas@suse.de>
5558
5559         * config/i386/i386.h: Don't mark empty strings for translation.
5560
5561 2002-02-16  H.J. Lu <hjl@gnu.org>
5562
5563         * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New.
5564
5565 2002-02-16  Zack Weinberg  <zack@codesourcery.com>
5566
5567         * cppinit.c (merge_include_chains): Check for brack being
5568         NULL before attempting to merge it with qtail.
5569
5570 2002-02-16  Andrew Cagney  <ac131313@redhat.com>
5571
5572         * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to
5573         DBX_DEBUG.
5574
5575 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5576
5577         * pa/t-pa, pa/t-pro, som.h: Revert last patch.
5578
5579 2002-02-16  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5580
5581         * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm.
5582         * pa/t-pro (LIB2FUNCS_EXTRA): Likewise.
5583         * som.h (DO_GLOBAL_DTORS_BODY): Delete define.
5584
5585 Sat Feb 16 13:48:50 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5586
5587         * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms;
5588         now only if !TARGET_FIX.
5589         (*movsi_nt_vms_fix): New pattern.
5590
5591 2002-02-16  Douglas B Rupp  <rupp@gnat.com>
5592
5593         * config/alpha/alpha.c: Implement null frame procedure types on VMS.
5594         (alpha_procedure_type): Replaces alpha_is_stack_procedure.
5595         (alpha_sa_mask, alpha_sa_size): Reflect above change.
5596         (alpha_pv_save_size, alpha_expand_prologue): Likewise.
5597         (alpha_start_function, alpha_expand_epilogue): Likewise.
5598         (unicosmk_gen_dsib): Likewise.
5599
5600 Sat Feb 16 13:39:09 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5601
5602         * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE.
5603
5604 2002-02-16  Ulrich Weigand  <uweigand@de.ibm.com>
5605
5606         * config/s390/s390.c (pool_stop_uid, other_chunk, far_away,
5607         check_and_change_labels, s390_final_chunkify): Delete.
5608         (s390_split_branches, s390_chunkify_pool): New functions.
5609         (s390_function_prologue): Call them.
5610
5611         * config/s390/s390.h (S390_REL_MAX): Delete.
5612         (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values.
5613
5614         * config/s390/s390.md (cjump, icjump, jump): Fix length
5615         attribute calculation.
5616
5617
5618 2002-02-15  David Edelsohn  <edelsohn@gnu.org>
5619
5620         * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete.
5621         * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64.
5622
5623 2002-02-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5624
5625         * gcc.c (init_gcc_specs): Revert patch from 2002-02-15.
5626         * config/pa/pa-linux.h (LIB_SPEC): Likewise.
5627         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise.
5628
5629 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5630
5631         * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls.
5632
5633 2002-02-15  Richard Sandiford  <rsandifo@redhat.com>
5634
5635         * reload.c (find_dummy_reload): Check that an output register
5636         is valid for its mode.
5637
5638 2002-02-14  Alexandre Oliva  <aoliva@redhat.com>
5639
5640         * combine.c (known_cond): After replacing the REG of a SUBREG, try
5641         to simplify it.
5642
5643         * function.c (assign_parms): Demote promoted argument passed by
5644         transparent reference.
5645
5646 2001-02-14      Joel Sherrill <joel@OARcorp.com>
5647
5648         * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant
5649         -Acpu() and -Amachine() to eliminate warnings.
5650
5651 2002-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5652
5653         * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New.
5654
5655 2002-02-14  Kazu Hirata  <kazu@hxi.com>
5656
5657         * config/h8300/h8300-protos.h: Update the prototype for
5658         const_costs.
5659         * config/h8300/h8300.c (const_costs): Treat SET as a little
5660         more expensive operation.
5661         * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the
5662         reference to const_costs.
5663
5664 2002-02-14  Hans-Peter Nilsson  <hp@axis.com>
5665
5666         * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting.
5667
5668 2002-02-14  Jakub Jelinek  <jakub@redhat.com>
5669
5670         PR c/5503:
5671         * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL,
5672         use arguments from newtype.
5673
5674 2002-02-13  Eric Christopher  <echristo@redhat.com>
5675
5676         * config/mips/mips.c (override_options): Add check for march/mipsX
5677         on the same command line. Fix error message in cpu processing.
5678         Remove architecture and ISA checks.
5679
5680 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5681
5682         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors.
5683
5684         * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX.
5685
5686 2002-02-14  Aldy Hernandez  <aldyh@redhat.com>
5687
5688         * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r
5689         alternatives.
5690         ("*movv8hi_internal1"): Same.
5691         ("*movv16qi_internal1"): Same.
5692         ("*movv4sf_internal1"): Same.
5693
5694         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do
5695         not push_reload for altivec modes.
5696
5697 2002-02-13  Joel Sherrill  <joel@OARcorp.com>
5698
5699         * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across
5700         all RTEMS targets including removal of #includes from config/*/rtems*.h
5701         file and adding them to tm_file setting. Added xm_defines=POSIX to
5702         many targets.
5703         * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto.
5704         * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto.
5705         * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto.
5706         * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto.
5707         * config.gcc (m68k-*-rtems*), config/m68k/rtems.h,
5708         config/m68k/rtemself.h: Ditto.
5709         * config.gcc (mips*-*-rtems*), config/mips/rtems.h,
5710         config/mips/rtems64.h: Ditto.
5711         * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto.
5712         * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h:
5713         Ditto.
5714         * config.gcc (sparc-*-rtems*), config/sparc/rtems.h,
5715         config/sparc/rtemself.h: Ditto.
5716         * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto.
5717         * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved
5718         arm-rtems stanza closer to other arm-elf targets and made arm-rtems
5719         more like arm-elf.
5720         * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h,
5721         config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself
5722         target made more similar to i386-elf.
5723         * config/i386/t-rtems-i386: Added soft float support and multilibs.
5724         * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to
5725         be similar to config/m68k/t-m68kelf.
5726         * gthr-rtems.h: Encapsulate with extern "C" for C++.
5727
5728 Wed Feb 13 23:41:15 CET 2002  Jan Hubicka  <jh@suse.cz>
5729
5730         * regmove.c (kill_value): Handle subregs.
5731
5732 Wed Feb 13 23:34:30 CET 2002  Jan Hubicka  <jh@suse.cz>
5733
5734         * i386.md (mul patterns): Allow memory operand to be first;
5735         add expanders where needed; fix constraints.
5736         (min?f_nonieee, max?f_nonieee, SSE TImode patterns):
5737         Allow memory operand to be the first.
5738
5739         * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping
5740         operands.
5741
5742 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5743
5744         PR c/5681:
5745         * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of
5746         GET_MODE (x).
5747
5748 2002-02-13  Jakub Jelinek  <jakub@redhat.com>
5749
5750         PR optimization/5547:
5751         * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify
5752         all valid IA-32 address modes involving non-scaled %ebx and
5753         GOT/GOTOFF as displacement.
5754
5755 2002-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5756
5757         * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches
5758         after emitting ltorg insns.
5759
5760         * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0,
5761         *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3,
5762         *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2,
5763         *abssf2): Fix "op_type" attribute.
5764
5765 2002-02-13  Douglas B Rupp  <rupp@gnat.com>
5766
5767         * mkconfig.sh: Avoid using a subshell redirect.
5768         ($output.T): Change to $(output)T.
5769         (ENABLE_NLS): Remove unneeded undef.
5770
5771         * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define.
5772         * config/alpha/x-vms (libsubdir): Define.
5773
5774         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle
5775         register frame procedures. Optimize retrieving context.
5776
5777         * config/alpha/t-vms (MULTILIB_OPTIONS): Define.
5778         (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise.
5779         * config/alpha/vms.h (ASM_FILE_START): Write .arch directive.
5780
5781 Wed Feb 13 09:45:08 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5782
5783         * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND):
5784         Make same change as for find_base_value.
5785
5786 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5787
5788         * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination
5789         of QImode and SImode.
5790
5791 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5792
5793         * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the
5794         length computation of movsi.
5795         * config/h8300/h8300.md (movsi_h8300hs): Correct the length.
5796
5797 2002-02-13  Kazu Hirata  <kazu@hxi.com>
5798
5799         * config/h8300/h8300.md (subqi3): Tighten the predicate for
5800         operands[2] to register_operand.
5801
5802 Wed Feb 13 10:35:56 CET 2002  Jan Hubicka  <jh@suse.cz>
5803
5804         * i386.md (fop_*_comm_*): allow nonimmediate in the first operand.
5805
5806 2002-02-12  Aldy Hernandez  <aldyh@redhat.com>
5807
5808         * config/rs6000/rs6000.md: Use predicate altivec_register_operand
5809         for altivec_lvx* and altivec_stvx*.
5810         ("*movv4si_internal"): Add constraint for loading from GPRs.
5811         ("*movv8hi_internal1"): Same.
5812         ("*movv16qi_internal1"): Same.
5813         ("*movv4sf_internal1"): Same.
5814
5815         * config/rs6000/rs6000.c (altivec_register_operand): New.
5816
5817         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
5818         altivec_register_operand.
5819
5820 2002-02-13  Hans-Peter Nilsson  <hp@bitrange.com>
5821
5822         * config/mmix/mmix.c (mmix_assemble_integer) <case 4>: Don't
5823         handle SYMBOL_REF.
5824
5825 2002-02-13  Stan Shebs  <shebs@apple.com>
5826
5827         * c-typeck.c (digest_init): Handle vectors.
5828         (really_start_incremental_init): Same.
5829         (pop_init_level): Same.
5830         (process_init_element): Same.
5831
5832         * varasm.c (output_constant): Same.
5833
5834         * expr.c (clear_storage): Same.
5835         (store_constructor): Same.
5836
5837 2002-02-12  Eric Christopher  <echristo@redhat.com>
5838
5839         * explow.c (hard_function_value): Add comment explaining
5840         signed/unsigned comparison.
5841
5842 2002-02-12  Jakub Jelinek  <jakub@redhat.com>
5843
5844         * jump.c (never_reached_warning): Add finish argument.
5845         If finish is NULL, stop on CODE_LABEL, otherwise stop before first
5846         real insn after end.
5847         * rtl.h (never_reached_warning): Adjust prototype.
5848         * cse.c (cse_insn): Pass NULL as finish to never_reached_warning.
5849         * cfgrtl.c (flow_delete_block): Pass b->end as finish to
5850         never_reached_warning.
5851
5852 2002-02-12  Graham Stott  <grahams@redhat.com>
5853
5854         * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos.
5855
5856 2002-02-12  Kazu Hirata  <kazu@hxi.com>
5857
5858         * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit
5859         logical shifts on H8/300.
5860         (shift_alg_si): Improve several shifts on H8/300.
5861         (get_shift_alg): Likewise.
5862
5863 2002-02-12  Graham Stott  <grahams@redhat.com>
5864
5865         * config/pa/pa.c (compute_movstrsi_length): Fix typos.
5866
5867 Tue Feb 12 10:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5868
5869         * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND):
5870         Handle #ifdef POINTERS_EXTEND_UNSIGNED.
5871
5872 2002-02-11  Hans-Peter Nilsson  <hp@bitrange.com>
5873
5874         * config/mmix/mmix.c (mmix_assemble_integer) <case 1, 2>: Handle
5875         non-CONST_INT through default_assemble_integer.
5876         <case 4>: Likewise, for non-CONST_INT, non-SYMBOL_REF.
5877         <case 8>: Abort for CONST_DOUBLE.
5878
5879 2002-02-11  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5880
5881         * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared"
5882         is specified.
5883         * config/pa/pa-linux.h (LIB_SPEC): Delete.
5884         * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete.
5885
5886 2002-02-11  Andrew Haley  <aph@cambridge.redhat.com>
5887
5888         * config/stormy16/stormy16.md (zero_extendqihi2): New.
5889
5890 2002-02-11  Alexandre Oliva  <aoliva@redhat.com>
5891
5892         * regrename.c (regrename_optimize): Don't accept a
5893         part-clobbered register if the replaced register is not part
5894         clobbered.
5895
5896         * calls.c (store_one_arg): In the non-BLKmode non-partial case,
5897         take padding into account when computing the argument value.
5898
5899         * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error.
5900
5901         * combine.c (try_combine): Apply substitutions in
5902         CALL_INSN_FUNCTION_USAGE too.
5903
5904 2002-02-11  Aldy Hernandez  <aldyh@redhat.com>
5905
5906         * config/rs6000/rs6000.c (altivec_init_builtins): Handle
5907         __builtin_altivec_abs*.
5908         (bdesc_abs): New.
5909
5910         * config/rs6000/rs6000.h (rs6000_builtins): Add
5911         ALTIVEC_BUILTIN_ABS*.
5912
5913         * config/rs6000/altivec.h: Use const char for builtins expecting
5914         literals.
5915         (vec_abs): New versions for C and C++.
5916         (vec_abss): Same.
5917
5918 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5919
5920         * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by
5921         using Pmode.
5922
5923 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5924
5925         * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the
5926         constant definition from h8300.md.
5927         (FRAME_POINTER_REGNUM): Likewise.
5928         * config/h8300/h8300.md (define_constants): Add FP_REG.
5929
5930 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5931
5932         * config/h8300/h8300.c (print_operand): Remove redundant code.
5933
5934 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5935
5936         * config/h8300/h8300-protos.h: Remove the prototype for byte_reg.
5937         * config/h8300/h8300.c (byte_reg): Make it static.
5938
5939 2002-02-10  Richard Henderson  <rth@redhat.com>
5940
5941         PR c/5623
5942         * c-typeck.c (incomplete_type_error): Handle flexible array members.
5943
5944 2002-02-10  Richard Henderson  <rth@redhat.com>
5945
5946         PR c++/5624
5947         * tree.c (append_random_chars): Don't abort if main_input_filename
5948         does not exist.
5949
5950 2002-02-10  Hans-Peter Nilsson  <hp@bitrange.com>
5951
5952         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable.
5953
5954 2002-02-10  Kazu Hirata  <kazu@hxi.com>
5955
5956         * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used.
5957         (pushhi1): Likewise.
5958
5959 2002-02-10  John David Anglin  <dave@hiauly1.hia.nrc.ca>
5960
5961         * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand.
5962         * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand.
5963
5964 2002-02-09  David O'Brien  <obrien@FreeBSD.org>
5965
5966         * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and
5967         remove MASK_VIS.
5968         (ASM_CPU_DEFAULT_SPEC): Remove.  Default setting is fine.
5969
5970 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5971
5972         * config/h8300/h8300.c (output_logical_op): Use sub.w to clear
5973         a half of an SImode register on H8/300.
5974
5975 Sat Feb  9 18:28:02 CET 2002  Jan Hubicka  <jh@suse.cz>
5976
5977         * i386.md (movdi_2): Add missing '!'.
5978
5979 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5980
5981         * config/h8300/h8300.h: Fix formatting.  Remove commented-out
5982         definitions.
5983
5984 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5985
5986         * config/h8300/h8300.md (length): Correct the distance valid
5987         for the short branch.
5988
5989 2002-02-09  Kazu Hirata  <kazu@hxi.com>
5990
5991         * config/h8300/h8300.md (iorhi3): Tighten the predicates.
5992
5993 2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
5994
5995         * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered
5996         registers in SImode.
5997         (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as
5998         part-clobbered.
5999
6000         * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's
6001         patch.
6002
6003         Contribute sh64-elf.
6004         2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
6005         * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to...
6006         (sh_cannot_modify_jumps_p): New function.
6007         2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
6008         * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to...
6009         (sh_ms_bitfield_layout_p): New function.
6010         2002-02-04  Alexandre Oliva  <aoliva@redhat.com>
6011                     Zack Weinberg  <zack@codesourcery.com>
6012         * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use
6013         expand_simple_binop instead of expand_binop.
6014         2002-02-03  Alexandre Oliva  <aoliva@redhat.com>
6015         * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable
6016         use of .quad and .uaquad.
6017         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP,
6018         TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above.
6019         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6020         * config/sh/sh.md (movdi_const, movdi_const_32bit,
6021         movdi_const_16bit): Make sure all CONSTs have modes.
6022         (sym2PIC): Ditto, but by adjusting all callers.
6023         * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live
6024         if the prologue calls the SHmedia argument decoder or register
6025         saver.
6026         2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
6027         * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define.
6028         (TARGET_ASM_ALIGNED_DI_OP): Likewise.
6029         (sh_expand_epilogue): Don't emit USE of return target register.
6030         (prepare_move_operands): Legitimize DImode PIC addresses.
6031         (sh_media_register_for_return): Skip tr0, used to initialize the
6032         PIC register.
6033         (sh_expand_prologue): Remove explicit USE of return register.
6034         (nonpic_symbol_mentioned_p): PC is non-PIC.  Don't recurse in
6035         CONST_DOUBLEs.  UNSPEC_GOTPLT is PIC.
6036         * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete.
6037         (OVERRIDE_OPTIONS): Don't disable PIC on SH5.
6038         (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of
6039         EXTRA_CONSTRAINT_T.
6040         (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New.
6041         (MOVI_SHORI_BASE_OPERAND_P): New.
6042         (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New.
6043         (EXTRA_CONSTRAINT_T): Define in terms of them.
6044         (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT.
6045         * config/sh/sh.md (movsi_media, movsi_media_nofpu,
6046         movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to
6047         alternatives supporting TARGET_REGS.
6048         (UNSPEC_GOTPLT): New constant.
6049         (movdi split): Move incrementing of LABEL_NUSES...
6050         (movdi_const, movdi_const_32bit): Here.  Use
6051         MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T.
6052         (movdi_const_16bit): New.
6053         (call, call_value) [flag_pic]: Use GOTPLT.
6054         (call_pop, call_value_pop): New expands.
6055         (call_pop_compact, call_pop_rettramp): New insns.
6056         (call_value_pop_compact, call_value_pop_rettramp): New insns.
6057         (sibcall) [flag_pic]: Use GOT.
6058         (builtint_setjmp_receiver): Remove bogus, unused expand.
6059         (GOTaddr2picreg): Implement for SHcompact and SHmedia.
6060         (*pt, *ptb, ptrel): New insns.
6061         (sym2GOT): Handle DImode GOT.
6062         (sym2GOTPLT, symGOTPLT2reg): New expands.
6063         (sym2PIC): New expand.
6064         (shcompact_return_tramp): Use GOTPLT to return trampoline.
6065         (shcompact_return_tramp_i): Use return register explicitly.
6066         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't
6067         disable flag_reorder_blocks.
6068         2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
6069         * config/sh/sh.md (sibcall_compact): Reorder return, uses and
6070         clobbers, for clarity.
6071         (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and
6072         restoring of r0 in macl as MAYBE_DEAD.
6073         2002-01-18  Alexandre Oliva  <aoliva@redhat.com>
6074         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define.
6075         * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of
6076         alter_subreg all over.
6077         (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after
6078         reload, instead of emitting instructions that would require
6079         reloading.
6080         (casesi_load_media): Add missing modes.
6081         2001-11-09  Alexandre Oliva  <aoliva@redhat.com>
6082         * config/sh/sh.c (sh_expand_prologue): Mark the PIC register
6083         as used if the argument decoder is called.
6084         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6085         * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in
6086         Pmode, then extend it to DImode if necessary.
6087         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6088         * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode
6089         constants in FPU-enabled SHmedia, let them be loaded from memory.
6090         2001-08-28  Alexandre Oliva  <aoliva@redhat.com>
6091         * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media):
6092         Adjust whitespace in assembly output templates.
6093         2001-08-28  Stephen Clarke  <Stephen.Clarke@st.com>
6094         * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust
6095         mode of if_then_else.
6096         2001-08-04  Alexandre Oliva  <aoliva@redhat.com>
6097         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in
6098         sh.h.
6099         2001-07-26  Andrew Haley  <aph@cambridge.redhat.com>
6100                     Joern Rennecke <amylaar@redhat.com>
6101         * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New.
6102         (SUBTARGET_CPP_PTR_SPEC): New.
6103         (SUBTARGET_CPP_SPEC): Remove.
6104         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6105         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6106         Fix typo in previous checkin.
6107         2001-07-11  Chandrakala Chavva  <cchavva@redhat.com>
6108         * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations.
6109         2001-07-10  Chandrakala Chavva  <cchavva@cygnus.com>
6110                     Alexandre Oliva  <aoliva@redhat.com>
6111         * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than
6112         what single FP register can hold for SHmedia target.
6113         2001-07-06  Chandrakala Chavva  <cchavva@redhat.com>
6114                     Alexandre Oliva  <aoliva@redhat.com>
6115         * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1):
6116         Do not split into SUBREG.
6117         2001-06-14  Alexandre Oliva  <aoliva@redhat.com>
6118         * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures
6119         and added new functions as specified in SH5 ABI r9.
6120         2001-06-04  Alexandre Oliva  <aoliva@redhat.com>
6121         * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an
6122         8-byte boundary.
6123         2001-06-03  Alexandre Oliva  <aoliva@redhat.com>
6124         * config/sh/sh.c (dump_table): Add const0_rtx in calls of
6125         gen_consttable_4 and gen_consttable_8.  Emit multiple labels
6126         and consttable_window_ends.
6127         2001-06-03  Graham Stott  <grahams@redhat,com>
6128         * config/sh/sh.md (movdi split): Remove unused variable last_insn.
6129         2001-05-16  Alexandre Oliva  <aoliva@redhat.com>
6130         * config/sh/sh.c (print_operand): Handle floating-point pair,
6131         vector and matrix registers.
6132         * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer
6133         vector modes into account.
6134         * config/sh/sh.md (movv2sf): Split move between registers into
6135         movdf.
6136         (movv4sf, movv16sf): Introduce insns that get split only after
6137         reload.
6138         * config/sh/shmedia.h: Fix Copyright dates.
6139         * config/sh/ushmedia.h: Likewise.  Move loop counter
6140         declarations into conditionals that uses them.
6141         (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in
6142         loop boundary.
6143         * config/sh/sshmedia.h: Fix Copyright dates.
6144         (sh_media_PUTCFG): Fix constraints.
6145         2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
6146         * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to
6147         ptrmemfunc_vbit_in_delta for SH5.
6148         2001-05-08  Alexandre Oliva  <aoliva@redhat.com>
6149         * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*.
6150         * invoke.texi: Likewise.
6151         2001-04-14  Alexandre Oliva  <aoliva@redhat.com>
6152         * config/sh/lib1funcs.asm (GCC_push_shmedia_regs,
6153         GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs,
6154         GCC_pop_shmedia_regs_nofpu): New global symbols.
6155         * config/sh/t-sh64 (LIB1ASMFUNCS): Add them.
6156         * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro.
6157         * config/sh/sh.c (calc_live_regs): Account for PR's saving in
6158         compact function with nonlocal labels.
6159         (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed.
6160         (sh_expand_epilogue) [SHcompact]: Pop them when appropriate.
6161         (initial_elimination_offset): Account for their stack space.
6162         * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn.
6163         * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media,
6164         movhi_media, movdi_media, movdi_media_nofpu, movdf_media,
6165         movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at
6166         least one of the operands to be a register.
6167         (movv2sf): Likewise.  Renamed to movv2sf_i.
6168         (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf):
6169         prepare_move_operands() before emitting SHmedia insns.
6170         2001-04-03  Alexandre Oliva  <aoliva@redhat.com>
6171         * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]:
6172         Don't save nor initialize r12.  Don't mis-align the stack.
6173         Pad the code with a nop.
6174         * config/sh/crti.asm: Don't restore r12.  Don't mis-align the
6175         stack.
6176         2001-03-13  Alexandre Oliva  <aoliva@redhat.com>
6177         * gcc/longlong.h (__umulsidi3, count_leading_zeros)
6178         [__SHMEDIA__]: Implement.
6179         2001-03-11  Alexandre Oliva  <aoliva@redhat.com>
6180         * config/sh/sh.md: Set latency of `pt' closer to reality.
6181         (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu,
6182         movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu):
6183         Set move, load and store type attributes.
6184         * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3.
6185         * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable
6186         profiling.
6187         * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode.
6188         * config/sh/sh-protos.h (sh_media_register_for_return): Declare.
6189         * config/sh/sh.c (sh_media_register_for_return): New function.
6190         (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available
6191         branch-target register.
6192         (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it.
6193         * config/sh/sh.md (return_media_i): Use any call-clobbered
6194         branch-target register.
6195         (return_media): If r18 wasn't copied in the prologue, copy it
6196         here.
6197         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]:
6198         Clear class FP0_REGS.
6199         * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied
6200         from elf.h.
6201         2001-03-08  DJ Delorie  <dj@redhat.com>
6202         * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA.
6203         2001-02-09  Alexandre Oliva  <aoliva@redhat.com>
6204         * config/sh/sh.md (sibcall_compact): Set fp_mode to single.
6205         2001-02-07  Alexandre Oliva  <aoliva@redhat.com>
6206         * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'.
6207         2001-02-03  Alexandre Oliva  <aoliva@redhat.com>
6208         * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode
6209         return value correctly for call_cookie.
6210         2001-02-01  Alexandre Oliva  <aoliva@redhat.com>
6211         * config/sh/crt1.asm (start): Modified so as to call
6212         ___setup_argv_and_call_main.
6213         2001-01-26  Alexandre Oliva  <aoliva@redhat.com>
6214         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in
6215         SHmedia mode.
6216         2001-01-20  Alexandre Oliva  <aoliva@redhat.com>
6217         * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro.
6218         (STRIP_NAME_ENCODING): Use it.
6219         (ASM_OUTPUT_LABELREF): Likewise.  Don't call assemble_name().
6220         2001-01-19  Alexandre Oliva  <aoliva@redhat.com>
6221         * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of
6222         prepare_scc_operands().
6223         * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"...
6224         (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here.
6225         2001-01-17  Alexandre Oliva  <aoliva@redhat.com>
6226         * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'.
6227         2001-01-13  Alexandre Oliva  <aoliva@redhat.com>
6228         * config/sh/sh.md (shcompact_incoming_args): Use R0_REG.
6229         * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants,
6230         used in shcompact_incoming_args.
6231         * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous
6232         change.
6233         * config/sh/crt1.asm (start) [SH5]: Switch to single-precision
6234         mode.
6235         * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr):
6236         Adjust accordingly.
6237         * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue):
6238         Simplify.  Adjust.  Add sanity check.
6239         * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set
6240         FPU_SINGLE_BIT.
6241         * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match
6242         TARGET_SHCOMPACT.
6243         (udivsi3, divsi3): Use them.
6244         (force_mode_for_call): New insn.
6245         (call, call_value, sibcall_value): Emit it before SHcompact
6246         calls.
6247         2001-01-11  Alexandre Oliva  <aoliva@redhat.com>
6248         * config/sh/sh.md (call, call_value, sibcall): Make sure the
6249         call cookie is non-NULL before taking its value.
6250         2001-01-10  Alexandre Oliva  <aoliva@redhat.com>
6251         * config.gcc (sh64): Set target_requires_64bit_host_wide_int.
6252         2001-01-09  Alexandre Oliva  <aoliva@redhat.com>
6253         * config/sh/sh.md (shcompact_incoming_args): Set argument memory
6254         block.
6255         * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1.
6256         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as
6257         temporary for stack adjusts.  Use MACL and MACH to pass
6258         arguments to shcompact_incoming_args.
6259         * config/sh/sh.md (shcompact_incoming_args): Adjust.  Don't
6260         clobber r1.
6261         * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise.
6262         (nested_trampoline): Load static chain address into r1.
6263         * config/sh/sh.md (movdi_media splits): Fix sign-extension.
6264         2001-01-07  Alexandre Oliva  <aoliva@redhat.com
6265         * config/sh/sh.c (fpul_operand) [SHMEDIA]: Just call
6266         fp_arith_reg_operand().
6267         2001-01-06  Alexandre Oliva  <aoliva@redhat.com>
6268         * config/sh/sh.md (casesi): Sign-extend the first two operands,
6269         and use signed compares for them.
6270         * config/sh/sh.c (dump_table): Don't emit 8-byte constants after
6271         4-byte ones.  Instead, inter-leave them, maintaining the 8-byte
6272         ones properly aligned.
6273         (find_barrier): Account for extra alignment needed for 8-byte wide
6274         constants.
6275         (machine_dependent_reorg): Require a label for the second 4-byte
6276         constant after an 8-byte one.
6277         * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's
6278         change.
6279         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6280         * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset
6281         last_float when switching float modes.
6282         * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer
6283         auto-increment for general-purpose registers.
6284         * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the
6285         result.
6286         * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary
6287         for stack adjust.
6288         * config/sh/sh.c (sh_builtin_saveregs): Support using all
6289         registers for varargs.
6290         2001-01-01  Alexandre Oliva  <aoliva@redhat.com>
6291         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify.
6292         * config/sh/sh.h (CALL_COOKIE_STACKSEQ,
6293         CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros.
6294         (CALL_COOKIE_INT_REG_SHIFT): Adjust.
6295         (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK.  Adjust
6296         call_cookie accordingly.
6297         (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK.
6298         (SHCOMPACT_BYREF): Likewise.
6299         (SHCOMPACT_FORCE_ON_STACK): New macro.
6300         * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format.
6301         (sh_builtin_saveregs): Likewise.
6302         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6303         shcompact_incoming_args): Use new shift values.  Support
6304         sequences of consecutive and non-consecutive pushes/pops.
6305         * config/sh/sh.md (return): Don't explicitly use PR_REG.
6306         2001-01-05  Hans-Peter Nilsson  <hpn@cygnus.com>
6307         * config/sh/sh.h (TEXT_SECTION): Define.
6308         * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP.
6309         2001-01-05  Alexandre Oliva  <aoliva@redhat.com>
6310         * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro.
6311         * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for
6312         return values on FPU-enabled SHmedia.
6313         (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on
6314         FPU-enabled SHmedia.
6315         (INIT_CUMULATIVE_ARGS): Set up return trampoline only if
6316         value is returned in a non-FP reg and is not returned by
6317         reference.
6318         * config/sh/sh.md (shcompact_return_tramp_i): Change type to
6319         jump_ind.
6320         2000-01-04  Alexandre Oliva  <aoliva@redhat.com>
6321         * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New.
6322         (FUNCTION_ARG_CALLEE_COPIES): Require argument to be
6323         quad-aligned to be passed by callee-copy reference.
6324         2001-01-03  Alexandre Oliva  <aoliva@redhat.com>
6325         * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define.
6326         * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine.
6327         2001-01-02  Alexandre Oliva  <aoliva@redhat.com>
6328         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in
6329         copying low-numbered FP regs to r7 and r8.
6330         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of
6331         FP regs to general-purpose regs only if the copy was passed on the
6332         stack.
6333         * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in
6334         copying FP reg to r9.
6335         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to
6336         copy FP regs to general-purpose regs only in outgoing calls.
6337         * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect
6338         change from     2000-10-30.  Adjust for 64-bit (or 32-bit)
6339         HOST_WIDE_INT.
6340         * config/sh/sh.h (struct sh_args): Document all fields.
6341         (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments
6342         passed partially on the stack should not consider making
6343         sibcalls.
6344         * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to
6345         stack_regs only for incoming calls.  When passing FP args,
6346         make sure there are FP regs available before modifying
6347         call_cookie.
6348         (SHCOMPACT_BYREF): Pass double args in general-purpose
6349         registers by reference.
6350         2000-12-30  Alexandre Oliva  <aoliva@redhat.com>
6351         * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't
6352         attempt to generate sibcalls if the caller got any arguments
6353         by reference.
6354         * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double.
6355         * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode
6356         to 8-byte boundaries.
6357         * config/sh/sh.md (shcompact_preserve_incoming_args): New insn.
6358         * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro.
6359         * config/sh/sh.c (sh_expand_prologue): Preserve args that will be
6360         stored in the stack.
6361         * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange
6362         for the offsets to have the ISA bit set.
6363         (shcompact_call_trampoline): Document.  Swap r0 and r1, to match
6364         invocation.  Use beq instead of bgt to mark end of sequence of
6365         loads.
6366         (shcompact_incoming_args): Fix store of r2.  Use beq instead of
6367         bgt to mark end of sequence of stores.
6368         * config/sh/sh.c (arith_operand): Don't check whether
6369         CONST_OK_FOR_J for now.
6370         * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT
6371         instead of long for conversion.
6372         2000-12-29  Alexandre Oliva  <aoliva@redhat.com>
6373         * config/sh/sh.c (print_operand_address): Convert INTVAL to int
6374         before passing it to fprintf.
6375         2000-12-28  Alexandre Oliva  <aoliva@redhat.com>
6376         * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit.
6377         Call set_fpscr before reading/writing SR.
6378         * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR.
6379         Call set_fpscr.
6380         * config/sh/lib1funcs.asm: Add `.align 2' directives before
6381         SHmedia code.
6382         (FMOVD_WORKS): Define on SH5 with FPU.
6383         (set_fpscr): Define on SH5.  Remove separate _fpscr_values
6384         setting.
6385         * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of
6386         _fpscr_values.
6387         2000-12-28  Hans-Peter Nilsson  <hpn@cygnus.com>
6388         * config/sh/lib1funcs.asm (ct_main_table): Align contents to even
6389         address.
6390         (ia_main_table): Ditto.
6391         2000-12-27  Alexandre Oliva  <aoliva@redhat.com>
6392         * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define.
6393         * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate
6394         the definitions from sh.h.
6395         * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on
6396         TARGET_SH5.
6397         (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined.
6398         * config/sh/elf.h (PTRDIFF_TYPE): Likewise.
6399         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6400         2000-12-26  Alexandre Oliva  <aoliva@redhat.com>
6401         * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes.
6402         Increment LABEL_NUSES.
6403
6404         * config/sh/sh.h (SIZE_TYPE): Define as conditional on
6405         TARGET_SH5.
6406         (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always
6407         defined.
6408         * config/sh/elf.h (SIZE_TYPE): Likewise.
6409         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise.
6410         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6411         shcompact_incoming_args): Load switch table addresses using
6412         datalabel.
6413         * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6414         (NO_BUILTIN_SIZE_TYPE): Define.
6415         (SIZE_TYPE): Don't define.
6416         * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__.
6417         * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the
6418         definition of __SH5__=32 for -m5-compact-nofpu.
6419         * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after
6420         ADDR_DIFF_VEC.
6421         2000-12-24  Alexandre Oliva  <aoliva@redhat.com>
6422         * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed.
6423         2000-12-23  Alexandre Oliva  <aoliva@redhat.com>
6424         * config/sh/sh.h (TARGET_CACHE32): Enable on SH5.
6425         (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia.
6426         (INSN_LENGTH_ALIGNMENT): Likewise.
6427         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6428         * config/sh/sh.md (call, call_value, sibcall): Simplify
6429         copying of non-branch-target register.
6430         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6431         * glimits.h (__LONG_MAX__): Revert      2000-12-13's patch.
6432         * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia.
6433         2000-12-22  Alexandre Oliva  <aoliva@redhat.com>
6434         * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex
6435         floating-point values as structs.
6436         (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG.
6437         (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before
6438         general-purpose register.
6439         (SH5_PROTOTYPED_FLOAT_ARG): New macro.
6440         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6441         * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia.
6442         * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too.
6443         * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST.
6444         (ENCODE_SECTION_INFO): Enclose variables and constants in
6445         DATALABEL unspecs.
6446         (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define.
6447         (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off.
6448         (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define.
6449         * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL
6450         only for LABEL_REFs.  For SYMBOL_REFs, prepend
6451         SH_DATALABEL_ENCODING to the symbol name.
6452         * config/sh/sh.md (indirect_jump): Use SUBREG instead of
6453         convert_mode().
6454         2000-12-20  Alexandre Oliva  <aoliva@redhat.com>
6455         * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in
6456         UNSPEC_DATALABEL.
6457         * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs.
6458         * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise.
6459         (DATALABEL_REF_P): Don't require CONST.
6460         (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before
6461         REL label.
6462         2000-12-19  Alexandre Oliva  <aoliva@redhat.com>
6463         * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift
6464         right.
6465         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6466         * config/sh/sh.md (movsi_media, call, call_value, sibcall):
6467         Use shallow_copy_rtx and PUT_MODE to change the mode of
6468         SYMBOL_REFs, LABEL_REFs, CONSTs, etc.
6469         * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs
6470         on SHmedia using GENERAL_REGs.
6471         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6472         bltu_media_i): Fix reversion of conditions.
6473         2000-12-18  Alexandre Oliva  <aoliva@redhat.com>
6474         * config/sh/sh.md (zero_extendhidi2): Use logical shift right.
6475         * config/sh/sh.c (output_far_jump): Save r13 in macl.
6476         2000-12-17  Alexandre Oliva  <aoliva@redhat.com>
6477         * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC.
6478         2000-12-16  Alexandre Oliva  <aoliva@redhat.com>
6479         * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5.
6480         (GCC_nested_trampoline): Likewise.
6481         * config/sh/sh-protos.h (gen_datalabel_ref): Declare.
6482         * config/sh/sh.c (gen_datalabel_ref): Define.
6483         * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5.
6484         (INITIALIZE_TRAMPOLINE): Likewise.
6485         (TRAMPOLINE_ADJUST_ADDRESS): Define.
6486         (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define.
6487         (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs.
6488         (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs.
6489         * config/sh/sh.md (UNSPEC_DATALABEL): New constant.
6490         (ic_invalidate): Adjust for SH5.
6491         (ic_invalidate_line_media, ic_invalidate_line_compact): New insns.
6492         * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and
6493         _nested_trampoline.
6494         2000-12-15  Alexandre Oliva  <aoliva@redhat.com>
6495         * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere.
6496         (MOVE_MAX_PIECES): Set to 8 on SHmedia too.
6497         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6498         * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb.
6499         * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
6500         2000-12-14  Alexandre Oliva  <aoliva@redhat.com>
6501         * config/sh/sh.c (target_reg_operand): Match only target-branch
6502         registers and pseudos that aren't virtual registers.
6503         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6504         Copy operands that don't match target_reg_operand to pseudos.
6505         (call_media, call_value_media, sibcall_media): Use
6506         target_reg_operand instead of target_operand.
6507         2000-12-13  Alexandre Oliva  <aoliva@redhat.com>
6508         * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits.
6509         * config/sh/sh.c (target_reg_operand): Match hardware registers
6510         other than branch-target registers.
6511         * config/sh/sh.md (zero_extendqidi2): Input operand is %1.
6512         * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global.
6513         (fpscr_values) [SH5 == 32]: Define.
6514         * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values.
6515         * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]:
6516         Handle function addresses coming in SUBREGs.
6517         2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
6518         * config/sh/lib1funcs.asm (shcompact_call_trampoline,
6519         shcompact_return_trampoline): Use datalabel where appropriate.
6520         2000-12-09  Alexandre Oliva  <aoliva@redhat.com>
6521         * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a
6522         general-purpose register to copy one branch-target register to
6523         another.
6524         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6525         * config/sh/sh.c (target_operand): Accept LABEL_REFs and
6526         SYMBOL_REFs with VOIDmode.
6527         * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i,
6528         bltu_media_i): New insns.
6529         2000-12-06  Alexandre Oliva  <aoliva@redhat.com>
6530         * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI.
6531         (INIT_CUMULATIVE_ARGS): Likewise.
6532         2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
6533         * machmode.def (V16SFmode): New mode.
6534         * c-common.c (type_for_mode): Support V2SF and V16SF.
6535         * tree.c (build_common_tree_nodes_2): Likewise.
6536         * tree.h (tree_index): Likewise.
6537         * calls.c (emit_call_1): Take args_so_far.  Adjust all
6538         callers.  Introduce CALL_POPS_ARGS.
6539         * tm.texi (CALL_POPS_ARGS): Document.
6540         * config/sh/crt1.asm: Implement in SHmedia mode.
6541         * config/sh/crti.asm, config/sh/crtn.asm: Likewise
6542         * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags.
6543         (DBX_REGISTER_NUMBER): Renumber registers for SH5.
6544         * config/sh/lib1funcs.asm: Disable functions unused in SH5.
6545         Implement divsi and udivsi in SHmedia mode.  Introduce
6546         SHcompact trampolines.
6547         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode
6548         only in SHmedia64.
6549         (regno_reg_class): Rewrite.
6550         (fp_reg_names): Remove.
6551         (sh_register_names, sh_additional_register_names): New.
6552         (print_operand): Added `u'.  Support SUBREGs in addresses.
6553         Add parentheses around shifted CONSTs.
6554         (output_file_start): Output .mode and .abi directives.
6555         (shiftcosts, addsubcosts, multcosts): Adjust.
6556         (output_stack_adjust): Compute alignment.  Sanity-check SIZE.
6557         (push_regs): Take array of HOST_WIDE_INTs.  Adjust callers.
6558         (calc_live_regs): Output to array of HOST_WIDE_INTs.  Count
6559         bytes, not registers.  Take into account the need for the
6560         SHcompact incoming args trampoline.  Adjust all callers.
6561         (sh_expand_prologue): Take stack_regs into account.  Call
6562         incoming args trampoline.  Keep stack aligned as per SH5 ABI.
6563         (sh_expand_epilogue): Take stack_regs into accoutn.  Keep
6564         stack aligned as per SH5 ABI.
6565         (sh_builtin_saveregs): Support SH5 ABI.
6566         (sh_build_va_list, sh_va_start): Likewise.
6567         (initial_elimination_offset): Take alignment into account.
6568         Compute location of PR according to the SH5 stack frame.
6569         (arith_reg_operand): Reject branch-target registers.
6570         (shmedia_6bit_operand): New.
6571         (logical_operand): Use CONST_OK_FOR_P on SHmedia.
6572         (target_reg_operand): Match DImode only.  Accept SUBREGs.
6573         (target_operand): New.
6574         * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags.
6575         (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI.  Initialize
6576         SIBCALL_REGS for SHmedia.
6577         (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too.
6578         (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New.
6579         (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New.
6580         (TARGET_SWITCHES): New SH5 flags.
6581         (OVERRIDE_OPTIONS): Set SH5-specific options.  Use
6582         VALID_REGISTER_P to disable unsupported registers.
6583         (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set.
6584         (POINTER_SIZE, PARM_BOUNDARY): Adjust.
6585         (FUNCTION_ARG_PADDING): Define.
6586         (FASTEST_ALIGNMENT): Adjust.
6587         (SH_REGISTER_NAMES_INITIALIZER): New.
6588         (sh_register_names): Declare.
6589         (DEBUG_REGISTER_NAMES): Define.
6590         (REGISTER_NAMES): Define based on sh_register_names.
6591         (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New.
6592         (sh_additional_register_names): Declare.
6593         (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia.
6594         (FIRST_TARGET_REG, LAST_TARGET_REG): Define.
6595         (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define.
6596         (REGISTER_NATURAL_MODE): Define.
6597         (FIRST_PSEUDO_REGISTER): Adjust.
6598         (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust.
6599         (HARD_REGNO_CALL_PART_CLOBBERED): Define.
6600         (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust.
6601         (VECTOR_MODE_SUPPORTED_P): Define.
6602         (REG_CLASS_CONTENTS): Adjust.
6603         (SMALL_REGISTER_CLASSES): Adjust.
6604         (REG_ALLOC_ORDER): Adjust.
6605         (INDEX_REG_CLASS): Adjust.
6606         (CONST_OK_FOR_O, CONST_OK_FOR_P): New.
6607         (CONST_OK_FOR_LETTER_P): Adjust.
6608         (PREFERRED_RELOAD_CLASS): Adjust.
6609         (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust.
6610         (SECONDARY_INPUT_RELOAD_CLASS): Adjust.
6611         (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust.
6612         (FIRST_FP_PARM_REG): Adjust.
6613         (CALL_POPS_ARGS): Define.
6614         (FUNCTION_ARG_REGNO_P): Adjust.
6615         (struct sh_args): New fields.
6616         (GET_SH_ARG_CLASS): Adjust.
6617         (INIT_CUMULATIVE_ARGS): Adjust.
6618         (INIT_CUMULATIVE_INCOMING_ARGS): Define.
6619         (FUNCTION_ARG_ADVANCE): Adjust.
6620         (FUNCTION_ARG): Adjust.
6621         (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define.
6622         (FUNCTION_ARG_CALLEE_COPIES): Define.
6623         (SH5_PROTOTYPELESS_FLOAT_ARG): Define.
6624         (STRICT_ARGUMENT_NAMING): Define.
6625         (PRETEND_OUTGOING_VARARGS_NAMED): Adjust.
6626         (FUNCTION_ARG_PARTIAL_NREGS): Adjust.
6627         (SH5_WOULD_BE_PARTIAL_NREGS): Define.
6628         (SETUP_INCOMING_VARARGS): Adjust.
6629         (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust.
6630         (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust.
6631         (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust.
6632         (SUBREG_OK_FOR_INDEX_P): Adjust.
6633         (EXTRA_CONSTRAINT_S): Update.
6634         (EXTRA_CONSTRAINT_T): New.
6635         (EXTRA_CONSTRAINT): Adjust.
6636         (GO_IF_LEGITIMATE_INDEX): Adjust.
6637         (GO_IF_LEGITIMATE_ADDRESS): Adjust.
6638         (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust.
6639         (MOVE_MAX): Adjust.
6640         (MAX_MOVE_MAX): Define.
6641         (Pmode): Adjust.
6642         (CONST_COSTS): Adjust.
6643         (REGISTER_MOVE_COST): Adjust.
6644         (BRANCH_COST): Adjust.
6645         (TEXT_SECTION_ASM_OP): Adjust.
6646         (DBX_REGISTER_NUMBER): Adjust.
6647         (ASM_OUTPUT_DOUBLE_INT): New.
6648         (UNALIGNED_DOUBLE_INT_ASM_OP): New.
6649         (PREDICATE_CODES): Adjust.
6650         (PROMOTE_MODE): Adjust.
6651         (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia.
6652         * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber.
6653         (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber.
6654         (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New.
6655         (DR0_REG, DR2_REG, DR4_REG): Renumber.
6656         (TR0_REG, TR1_REG, TR2_REG): New.
6657         (XD0_REG): Renumber.
6658         (UNSPEC_COMPACT_ARGS): New.
6659         (type): Added pt and ptabs.
6660         (length): Default to 4 on SHmedia.  Default pt length to 12
6661         and     20 on SHmedia32 and SHmedia64, respectively.
6662         (pt): New function unit.
6663         (movdi, movsi): Add types pt and ptabs.  Don't increment LABEL_NUSES.
6664         Add whitespace between operands of SHmedia instructions.
6665         (movdicc): Fix.
6666         (adddi3_media, addsi3_media): Adjust constraints.
6667         (subsi3) [SHmedia]: Force operand 1 into a register.
6668         (udivsi3_i1_media, udivsi3_i4_media): New.
6669         (udivsi3): Support SHmedia.
6670         (divsi3_i1_media, divsi3_i4_media): New.
6671         (divsi3): Support SHmedia.
6672         (anddi3, iordi3, xordi3): Adjust constraints.
6673         (zero_extendhidi2, zero_extendqidi2): New.
6674         (extendsidi2, extendhidi2, extendqidi2): New.
6675         (push, pop, push_e, push_fpul, push_4): Disable on SH5.
6676         (pop_e, pop_fpul, pop_4): Likewise.
6677         (movsi_media): Support FP and BT registers.
6678         (movsi_media_nofpu): New.  Adjust splits to DImode.
6679         (lduw, ldub): Renamed to zero_extend* above.
6680         (movqi_media): Fix typo.
6681         (movdi_media): Support FP and BT registers.
6682         (movdi_media_nofpu): New.  Adjust splits for SHmedia32.
6683         (movdi_const_32bit): New.
6684         (shori_media): Require immediate operand.  Use `u' for output.
6685         (movdf_media, movsf_media): Simplified.
6686         (movdf_media_nofpu, movsf_media_nofpu): New.
6687         (movdf, movsf): Adjust
6688         (movv2sf, movv2sf, movv16sf): New.
6689         (beq_media, beq_media_i): Adjust constraints.  Don't use
6690         scratch BT register.
6691         (bne_media, bne_media_i): Likewise.
6692         (bgt_media, bgt_media_i): Likewise.
6693         (bge_media, bge_media_i): Likewise.
6694         (bgtu_media, bgtu_media_i): Likewise.
6695         (bgeu_media, bgeu_media_i): Likewise.
6696         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu,
6697         bunordered): Emit jump insn.  Force operands to registers when
6698         needed.
6699         (jump_media, jump): Simplify.
6700         (call_compact, call_compact_rettramp): New.
6701         (call_value_compact, call_value_compact_rettramp): New.
6702         (call_media, call_value_media): Simplify.
6703         (sibcall_compact, sibcall_media): New.
6704         (call, call_value): Adjust for SHmedia and SHcompact.
6705         (sibcall, sibcall_value, untyped_call): Likewise.
6706         (sibcall_epilogue): Preserve r0 across epilogue for SHcompact.
6707         (indirect_jump): Adjust for SHmedia.
6708         (casesi_jump_media): New.
6709         (nop): Re-enable for SHmedia.
6710         (call_site): Restrict to SH1.
6711         (casesi): Adjust for SHmedia.
6712         (casesi_shift_media, casesi_load_media): New.
6713         (return): Explicitly use PR register.  Call return trampoline
6714         on SHcompact.
6715         (return_i): Explicitly use PR register.
6716         (shcompact_return_tramp, shcompact_return_tramp_i): New.
6717         (return_media): Adjust.
6718         (shcompact_incoming_args): New.
6719         (epilogue): Adjust.
6720         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
6721         (movstrsi): Disable on SH5.
6722         (fpu_switch0, fpu_switch1, movpsi): Enable on SH4.
6723         (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU.
6724         (subsf3, subsf3_media): Likewise.
6725         (mulsf3, mulsf3_media, mac_media): Likewise.
6726         (divsf3, divsf3_media): Likewise.
6727         (floatdisf2, floatsisf2_media): Likewise.  Adjust constraints.
6728         (floatsisf2, fux_truncsfsi2): Likewise.
6729         (fix_truncsfdi2, fix_truncsfsi2_media): Likewise.  Adjust
6730         constraints.
6731         (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise.
6732         (cmpunsf_media, cmpsf): Likewise.
6733         (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise.
6734         (abssf2, abssf2_media): Likewise.
6735         (adddf3, adddf3_media, subdf3, subdf3_media): Likewise.
6736         (muldf3, muldf3_media, divdf3, divdf3_media): Likewise.
6737         (floatdidf2, floatsidf2_media): Likewise.  Adjust constraints.
6738         (floatsidf2, fix_truncdfsi2): Likewise.
6739         (fix_truncdfdi2, fix_truncdfsi2_media): Likewise.  Adjust
6740         constraints.
6741         (cmpeqdf_media, cmpgtdf_media): Likewise.
6742         (cmpgedf_media, cmpundf_media, cmpdf): Likewise.
6743         (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise.
6744         (absdf2, absdf2_media): Likewise.
6745         (extendsfdf2, extendsfdf2_media): Likewise.
6746         (truncsfdf2, truncsfdf2_media): Likewise.
6747         * config/sh/sh64.h: New file.
6748         * config/sh/t-sh64: New file.
6749         * config/sh/shmedia.h: New file.
6750         * config/sh/ushmedia.h: New file.
6751         * config/sh/sshmedia.h: New file.
6752         * configure.in: Added sh64-*-elf.
6753         * configure: Rebuilt.
6754         2000-10-10  Alexandre Oliva  <aoliva@redhat.com>
6755         * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros.
6756         (reg_class_from_letter): Use `b' for TARGET_REGS.
6757         (print_operand): Support `%M', `%m', `AND' and
6758         `ASHIFTRT'.  Do not precede constants with `#' on SHmedia.
6759         (andcosts): Adjust for SHmedia.
6760         (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue):
6761         Likewise.
6762         (target_reg_operand): New function.
6763         * config/sh/sh-protos.h (target_reg_operand): Declare.
6764         * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable
6765         FP registers on SH5.
6766         (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable
6767         on SH4.
6768         (TARGET_REGISTER_P): New macro.
6769         (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS.
6770         (FUNCTION_VALUE): Use DImode for promoted types on SHmedia.
6771         (EXTRA_CONSTRAINT_S): New macro.
6772         (EXTRA_CONSTRAINT): Adjust.
6773         (FLOAT_TYPE_SIZE): Define to 32.
6774         (Pmode): DImode on SHmedia.
6775         (CONST_COSTS): Adjust for SHmedia literals.
6776         (PREDICATE_CODES): Added target_reg_operand.
6777         (PROMOTE_MODE): Promote signed types to DImode on SHmedia.
6778         * config/sh/sh.md: Remove all attrs from SHmedia insns.
6779         (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns.
6780         (cmpdi): Accept SHmedia.
6781         (movdicc_false, movdicc_true): New insns.
6782         (movdicc): New expand.
6783         (adddi3): Accept arith_operand for op2, but FAIL on SH1 if
6784         no_new_pseudos.
6785         (addsi3_media): Match `S' constraint.
6786         (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns.
6787         (negdi2): Expand for SHmedia.
6788         (one_cmpldi2): New expand.
6789         (zero_extendsidi2): Change from expand to insn.
6790         (extendsidi2): Add constraints.
6791         (movdi_media, movsi_media): Change `%x' to `%M'.  Use `%m' for
6792         LD/ST address.  Fix SI immediate loading split.
6793         (movhi_media, movqi_media, lduw, ldub): New insns.
6794         (movhi, movqi): Accept SHmedia.
6795         (shori_media, movdi_media): Relax input constraints.  Split
6796         symbolic constants.
6797         (movdf_media, movsf_media): New insn.  New split to movdi.
6798         (movdf, movsf): Match on SHmedia.
6799         (beq_media, bne_media, bgt_media, bge_media, bgtu_media,
6800         bgeu_media): New insns and splits.  New insns with `_i' suffix.
6801         (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust.
6802         (bunordered): New expand.
6803         (jump_compact): Renamed from `jump'.
6804         (jump_media): New insn.
6805         (jump): New expand.
6806         (call_media, call_value_media): New insns.
6807         (call, call_value): Adjust.
6808         (indirect_jump_compact): Renamed from `indirect_jump'.
6809         (indirect_jump_media): New insn.
6810         (indirect_jump): New expand.
6811         (untyped_call, return): Accept SHmedia.
6812         (return_media): New insn.
6813         (prologue, epilogue, blockage): Accept SHmedia.
6814         (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust.
6815         (sunordered): New expand.
6816         (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2,
6817         cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia.
6818         (addsf3_media, subsf3_media, mulsf3_media, mac_media,
6819         divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2,
6820         fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media,
6821         cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media,
6822         abssf2_media): New insns.
6823         (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2,
6824         cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia.
6825         (adddf3_media, subdf3_media, muldf3_media, divdf3_media,
6826         floatdidf2, floatsidf2_media, fix_truncdfdi2,
6827         fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media,
6828         cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media,
6829         absdf2_media): New insns.
6830         (extendsfdf2, truncdfsf2): Adjust for SHmedia.
6831         (extendsfdf2_media, truncdfsf2_media): New insns.
6832         2000-09-14  Alexandre Oliva  <aoliva@redhat.com>
6833         * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now.
6834         * config/sh/sh.h (CONST_OK_FOR_J): Document.
6835         (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia.
6836         * config/sh/sh.md (adddi3): New expand.
6837         (adddi3_media, adddi3z_media): New insns.
6838         (adddi3_compact): Renamed from adddi3.
6839         (addsi3_media): Use add.l r63 to add constant zero.
6840         (subdi3): New expand.
6841         (subdi3_media): New insn.
6842         (subdi3_compact): Renamed from subdi3.
6843         (mulsidi3): New expand.
6844         (mulsidi3_media): New insn.
6845         (mulsidi3_compact): Renamed from mulsidi3.
6846         (umulsidi3): New expand.
6847         (umulsidi3_media): New insn.
6848         (umulsidi3_compact): Renamed from umulsidi3.
6849         (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns.
6850         (ashlsi3, ashrsi3, lshrsi3): Use them.
6851         (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns.
6852         (ashldi3, ashrdi3, lshrdi3): Use them.
6853         (zero_extendsidi2): New expand.
6854         (extendsidi2): New insn.
6855         (movsi_media): New insn.  Split to movdi to load constants.
6856         (movsi): Enable for shmedia.
6857         (movdi_media): New insn.  Use shori_media to load wide constants.
6858         (short_media): New insn.
6859         (movdi): Enable for shmedia.
6860         2000-09-08  Alexandre Oliva  <aoliva@redhat.com>
6861         * config/sh/sh.h (CPP_SPEC): Added `m5'.
6862         (SUBTARGET_CPP_SPEC): Added `!m5'.
6863         (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros.
6864         (TARGET_SWITCHES): Added `5' and `5-compact'.  Added SH1_BIT
6865         to all other SH variants.
6866         (TARGET_DEFAULT): Set to SH1_BIT.
6867         (OVERRIDE_OPTIONS): Recognize sh5 CPU.
6868         (BITS_PER_WORD): Raise to 64 on shmedia.
6869         (MAX_BITS_PER_WORD): Change to 64.
6870         (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD.
6871         (INT_TYPE_SIZE): Keep as 32.
6872         (UNITS_PER_WORD): Raise to 8 on shmedia.
6873         (MIN_UNITS_PER_WORD): Keep as 4.
6874         (POINTER_SIZE): Raise to 64 on shmedia.
6875         (CONST_OK_FOR_J): New macro.
6876         (CONST_OK_FOR_LETTER_P): Use it.
6877         (processor_type): Add PROCESSOR_SH5.
6878         * config/sh/sh.md: Conditionalize all expands, insns and
6879         splits to TARGET_SH1.
6880         (cpu): Added sh5.
6881         (addsi3_compact): Renamed from...
6882         (addsi3): Now an expand.
6883         (addsi3_media, subsi3_media): New insns.
6884         (subsi3): Don't negate constants with SHmedia.
6885
6886         * hooks.c: New file.
6887         * hooks.h: New file.
6888         * Makefile.in (HOOKS_H): New.
6889         (TARGET_DEF_H): Added $(HOOKS_H).
6890         (OBJS): Added hooks.o.
6891         (cfgcleanup.o, bb-reorder.o): Added target.h.
6892         (hooks.o): Added dependencies.
6893         * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to...
6894         (TARGET_INITIALIZER): this.
6895         * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document.
6896         * target.h (struct gcc_target): Added cannot_modify_jumps_p.
6897         * bb-reorder.c: Include target.h.
6898         (reorder_basic_blocks): Skip if cannot modify jumps.
6899         * cfgcleanup.c: Include target.h.
6900         (try_optimize_cfg): Skip merge blocking if cannot modify jumps.
6901
6902 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
6903
6904         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6905         Protect jump delay slot instructions with .set noreorder and
6906         .set nomacro.
6907
6908 2002-02-08  Chris Demetriou  <cgd@broadcom.com>
6909
6910         * config/mips/mips.md (casesi_internal_di): Calculate
6911         the index into the target offset table correctly.
6912
6913 2002-02-08  Richard Henderson  <rth@redhat.com>
6914
6915         * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also.
6916         * final.c (output_addr_const): Accept and discard SUBREG.
6917         * varasm.c (decode_addr_const): Don't abort on unknown expressions --
6918         mark them unknown instead.
6919         (simplify_subtraction): Handle RTX_UNKNOWN.
6920         (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode.
6921
6922 2002-02-08  David Edelsohn  <edelsohn@gnu.org>
6923
6924         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo.
6925
6926 2002-02-08  Richard Henderson  <rth@redhat.com>
6927
6928         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New.
6929
6930 2002-02-08  Andreas Jaeger  <aj@suse.de>
6931
6932         * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment.
6933         * config/i386/t-linux64: New file.
6934
6935 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
6936
6937         * c-common.c (c_expand_expr): Revert 2002-02-06 patch.
6938         * c-parse.in (compstmt): Clear last_expr_type.
6939
6940 2002-02-07  Richard Henderson  <rth@redhat.com>
6941
6942         * loop.c (strength_reduce): Sink final_value when not
6943         eliminating a biv.
6944
6945 2002-02-07  David O'Brien  <obrien@FreeBSD.org>
6946
6947         * config/sparc/freebsd.h: Fix mismatched spec {.
6948
6949 2002-02-07  Richard Henderson  <rth@redhat.com>
6950
6951         * cfgrtl.c: Include recog.h and insn-config.h.
6952         (keep_with_call_p): Fix general_operand invocation.
6953         * Makefile.in (cfgrtl.o): Update dependencies.
6954
6955 2002-02-07  Kazu Hirata  <kazu@hxi.com>
6956
6957         * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a
6958         comment.  Accept HImode only if TARGET_H8300.
6959
6960 2002-02-07  Eric Christopher  <echristo@redhat.com>
6961
6962         * config/mips/crtn.asm: Cleanup #ifdefs.
6963
6964 2002-02-07  Eric Christopher  <echristo@redhat.com>
6965
6966         * config/mips/crti.asm: Add changes for mips16. mips16 uses
6967         register 7 as RA instead of $31.
6968         * config/mips/crtn.asm: Ditto.
6969         * config/mips/mips.c (mips_move_2words): Add case for
6970         TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64.
6971         (compute_frame_size): Fix typo.
6972         (save_restore_insns): Ditto.  Make documentation about using
6973         register $7 as return register more precise.
6974         (mips_expand_epilogue): Fix comment. Add code to work around not
6975         being able to add to the stack pointer directly.
6976         * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number
6977         to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the
6978         epilogue.
6979
6980 2002-02-07  Tom Rix  <trix@redhat.com>
6981
6982         * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For
6983         immediates in ldu and stdu DS opcode field.
6984         * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use.
6985         * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand.
6986         * config/rs6000/rs6000.h (PREDICATE_CODES): Same.
6987
6988 2002-02-07  Jeff Sturm  <jsturm@one-point.com>
6989
6990         * config/sparc/sparc.c (compute_frame_size): Don't correct frame
6991         offset for stack bias.
6992
6993 2002-02-07  H.J. Lu <hjl@gnu.org>
6994
6995         * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined.
6996
6997 2002-02-07  Ulrich Weigand  <uweigand@de.ibm.com>
6998
6999         * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option.
7000
7001 Thu Feb  7 12:14:17 CET 2002  Jan Hubicka  <jh@suse.cz>
7002
7003         * i386-protos.h (x86_order_regs_for_local_alloc): Declare
7004         * i386.c (x86_order_regs_for_local_alloc): New global function.
7005         * i386.h (REG_ALLOC_ORDER): CLeanup.
7006         (ORDER_REGS_FOR_LOCAL_ALLOC): New.
7007
7008 2002-02-07  Richard Henderson  <rth@redhat.com>
7009
7010         PR optimization/2463
7011         * alias.c (find_base_value): Recall base values for fixed hard regs.
7012         * loop.c (loop_regs_update): Don't use single_set on non-insns.
7013
7014 2002-02-07  Alexandre Oliva  <aoliva@redhat.com>
7015
7016         * config/mips/mips.md (define_delay) [mips16]: Adjust required
7017         length.
7018
7019 2002-02-06  Richard Henderson  <rth@redhat.com>
7020
7021         PR c/5609
7022         * stmt.c (resolve_operand_name_1): Take more care with mixed
7023         named and unnamed operands.
7024
7025 2002-02-06  Janis Johnson  <janis187@us.ibm.com>
7026             Jan Hubicka  <jh@suse.cz>
7027
7028         * loop.c (remove_constant_addition): Avoid clobbering a shared
7029         CONST expression.
7030
7031 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7032
7033         * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment.
7034         * config/s390/t-linux64: New file.
7035         * config/s390/libgcc-glibc.ver: New file.
7036
7037 2002-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7038
7039         * config/s390/linux64.h: Delete file.
7040         * config/s390/s390x.h: New file.
7041         * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h
7042         as target header file.
7043         * config/s390/linux.h (TARGET_VERSION): Define depending on
7044         DEFAULT_TARGET_64BIT.
7045         (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise.
7046         (SIZE_TYPE, PTRDIFF_TYPE): Likewise.
7047         (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define.
7048         (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines.
7049         (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines.
7050         (EXTRA_SPEC): New define.
7051         * config/s390/s390.h (TARGET_VERSION): Define depending on
7052         DEFAULT_TARGET_64BIT.
7053         (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT.
7054
7055 2002-02-06  Jason Merrill  <jason@redhat.com>
7056
7057         * c-decl.c (finish_function): Warn about a non-void function with
7058         no return statement and no abnormal exit.
7059         (current_function_returns_abnormally): New variable.
7060         (start_function): Clear it.
7061         (struct c_language_function): Add returns_abnormally.
7062         (push_c_function_context): Save it.
7063         (pop_c_function_context): Restore it.
7064         (builtin_function): Set TREE_THIS_VOLATILE on return fns.
7065         (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without
7066         an explicit return type.
7067         * c-tree.h: Declare current_function_returns_abnormally.
7068         (C_FUNCTION_IMPLICIT_INT): New macro.
7069         * c-typeck.c (build_function_call): Set it.
7070         (c_expand_return): Set current_function_returns_value even if the
7071         value is erroneous.
7072
7073 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7074
7075         PR c/5420:
7076         * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR
7077         unsafe for reevaluation.
7078
7079 2002-02-06  Jakub Jelinek  <jakub@redhat.com>
7080
7081         PR c/5482:
7082         * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not
7083         EXPR_STMT, but COMPOUND_STMT, recurse into it.
7084
7085 2002-02-06  Richard Henderson  <rth@redhat.com>
7086
7087         * cfganal.c (keep_with_call_p): Source for fixed_reg dest must
7088         be a general_operand.  Dest for function value must be a pseudo.
7089
7090 2002-02-06  Nick Clifton  <nickc@cambridge.redhat.com>
7091
7092         * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well
7093         as SYMBOL_REFs from the constant pool.
7094
7095 2002-02-06  Alexandre Oliva  <aoliva@redhat.com>
7096
7097         * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters
7098         passed by invisible reference.
7099
7100 2002-02-05  Richard Henderson  <rth@redhat.com>
7101
7102         * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias.
7103
7104 2002-02-06  Hans-Peter Nilsson  <hp@bitrange.com>
7105
7106         Implement using "base addresses" in insn operands as default.
7107         * config/mmix/mmix.c (mmix_conditional_register_usage): if
7108         -mabi=gnu, modify fixed_regs to fit the GNU ABI.
7109         (mmix_extra_constraint): Use 'R' to indicate that GETA should be
7110         used to read the rtx value.
7111         (mmix_target_asm_function_epilogue): Fix spacing.
7112         (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES.
7113         (mmix_legitimate_address): Ditto.
7114         (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that
7115         should be loaded with a GETA insn.  Don't allocate needless extra
7116         char for nul termination and fix misleading comment.
7117         (mmix_print_operand_address): Handle constants if
7118         TARGET_BASE_ADDRESSES.
7119         (mmix_output_register_setting): Use base addressing if
7120         TARGET_BASE_ADDRESSES and the number of insns is 3.
7121         * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New.
7122         * config/mmix/mmix.md ("movdi"): Change the alternative with GETA
7123         to use R as constraint, add LDA to match s.
7124         * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New.
7125         (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES.
7126         (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses.
7127         (FIXED_REGISTERS): Make registers $231..$246 fixed by default.
7128         (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in
7129         order with other fixed registers.
7130         (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with
7131         other parameter/call-clobbered registers.
7132         * doc/invoke.texi (Option Summary) <MMIX Options>: Add
7133         -mbase-addresses, -mno-base-addresses.
7134         (MMIX Options): Ditto.
7135
7136 2002-02-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7137
7138         * pa.h (PREDICATE_CODES): Add reg_before_reload_operand.
7139
7140 2002-02-06  Aldy Hernandez  <aldyh@redhat.com>
7141
7142         * config/rs6000/altivec.h: Change elem to _S_elem.
7143
7144 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7145
7146         * config/netbsd.h (WCHAR_TYPE): Define.
7147         (WCHAR_TYPE_SIZE): Ditto.
7148         (WINT_TYPE): Ditto.
7149         * config/alpha/netbsd.h (WCHAR_TYPE): Remove.
7150         (WCHAR_UNSIGNED): Ditto.
7151         (WCHAR_TYPE_SIZE): Ditto.
7152         (WINT_TYPE): Ditto.
7153         * config/arm/netbsd.h: Likewise.
7154         * config/i386/netbsd-elf.h: Likewise.
7155         * config/i386/netbsd.h: Likewise.
7156         * config/m68k/netbsd-elf.h: Likewise.
7157         * config/m68k/netbsd.h: Likewise.
7158         * config/ns32k/netbsd.h: Likewise.
7159         * config/sparc/netbsd.h: Likewise.
7160         * config/vax/netbsd.: Likewise.
7161
7162 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
7163
7164         * target.h (struct gcc_target): Added ms_bitfield_layout_p.
7165         * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New.  Added to...
7166         (TARGET_INITIALIZER): this.
7167         * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document.
7168         (BITFIELD_NBYTES_LIMITED): Markup fix.
7169         * tree.h (default_ms_bitfield_layout_p): Declare.
7170         (record_layout_info): Added prev_field.
7171         * tree.c (default_ms_bitfield_layout_p): New fn.
7172         * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and
7173         PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout.
7174         * stor-layout.c: Include target.h.
7175         (start_record_layout): Initialize prev_field.
7176         (place_field): Handle MS bit-field layout, and disregard
7177         EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and
7178         PCC_BITFIELD_TYPE_MATTERS in this case.  Update prev_field.
7179         * Makefile.in (stor-layout.o): Adjust dependencies.
7180
7181 2002-02-05  Jason Merrill  <jason@redhat.com>
7182
7183         * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle.
7184
7185 2002-02-05  Andreas Jaeger  <aj@suse.de>
7186
7187         * crtstuff.c: Fix comments.
7188
7189 2002-02-05  Richard Henderson  <rth@redhat.com>
7190
7191         PR fortran/3393
7192         * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well.
7193         (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise.
7194
7195         PR fortran/3392
7196         * config/mips/mips.c (function_arg): Handle TImode.
7197         (function_arg_advance): Likewise.
7198
7199 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7200
7201         * config/rs6000/altivec.h (vec_step_help): Rename to
7202         __vec_step_help.
7203
7204 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7205
7206         * config/rs6000/altivec.h: Fix typos.
7207
7208 2002-02-05  Jason Thorpe  <thorpej@wasabisystems.com>
7209
7210         * config/arm/netbsd.h: Correct a comment.
7211
7212 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7213
7214         * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo
7215         building void typed builtins.
7216
7217         * config/rs6000/altivec.h (vec_ld*): Fix typos.
7218         (vec_step): Implement for C++.
7219
7220 Mon Feb  4 19:23:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7221
7222         * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND.
7223
7224 2002-02-04  Richard Henderson  <rth@redhat.com>
7225
7226         * combine.c (nonzero_bits): Re-introduce special case for
7227         sp/fp/ap wrt REGNO_POINTER_ALIGN.
7228
7229 2002-02-05  Aldy Hernandez  <aldyh@redhat.com>
7230
7231         * doc/extend.texi: Warn about unsupported usage of altivec
7232         builtins.
7233
7234         * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove.
7235         (altivec_predicate_*): New.
7236
7237         * config/rs6000/altivec.h: Rewrite predicates to use new builtins.
7238         Add C++ version of vec_*() functions.
7239
7240         * config/rs6000/rs6000.c (bdesc_altivec_preds): New.
7241         (bdesc_2arg): Remove altivec predicates.
7242         (altivec_expand_builtin): Handle predicates.
7243         (altivec_init_builtins): Handle predicates.
7244         (altivec_expand_predicate_builtin): New.
7245
7246 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7247
7248         * pa.c (DO_FRAME_NOTES): Move forward.
7249         (store_reg): Revise handling of frame notes.
7250         (load_reg): Likewise.
7251         (set_reg_plus_d): Likewise.
7252         (hppa_expand_prologue): Likewise.
7253         (hppa_expand_epilogue): Likewise.
7254
7255 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7256
7257         * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined.
7258
7259 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7260
7261         PR c/4475, c++/3780:
7262         * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand.
7263         * c-common.h (SWITCH_TYPE): Define.
7264         * c-typeck.c (c_start_case): Set SWITCH_TYPE.
7265         * stmt.c (all_cases_count): Set lastval to thisval at end of loop.
7266         Rename spareness variable to sparseness.
7267         (expand_end_case_type): Renamed from expand_end_case, use orig_type
7268         if non-NULL instead of TREE_TYPE (orig_index).
7269         * tree.h (expand_end_case_type): Renamed from expand_end_case.
7270         (expand_end_case): Define using expand_end_case_type.
7271         * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE
7272         to expand_end_case_type.
7273         * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE.
7274
7275 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7276
7277         * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding.
7278         (BIGGEST_ALIGNMENT): Change to 128.
7279
7280 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7281
7282         * pa32-linux.h (LINK_COMMAND_SPEC): Define.
7283
7284 2002-02-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7285
7286         * pa.md (call_internal_reg_64bit): Remove unused variable.
7287
7288 2002-02-04  Nick Clifton  <nickc@cambridge.redhat.com>
7289
7290         * config/arm/arm.h (machine_function): Add uses_anonymous_args
7291         field.
7292         (SETUP_INCOMING_VARARGS): Set uses_anonymous_args.
7293         * config/arm/arm.c (current_function_anonymous_args): Delete,
7294         replace uses with cfun->machine->uses_anonymous_args.
7295         (arm_reorg): Do not reset uses_anonymous_args.
7296
7297         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in
7298         any geenral register.
7299
7300 2001-02-04  Bernd Schmidt  <bernds@redhat.com>s
7301
7302         * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect
7303         the entry block.
7304
7305 2002-02-04  Richard Henderson  <rth@redhat.com>
7306
7307         * combine.c (force_to_mode): Remove STACK_BIAS code.
7308         (nonzero_bits): Likewise.  Replace sp/fp special case with
7309         REGNO_POINTER_ALIGN.
7310
7311         * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP.
7312         (HARD_FRAME_POINTER_REGNUM): New.
7313         (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update.
7314         (FIXED_REGS, CALL_USED_REGS): Update.
7315         (REG_ALLOC_ORDER, REGISTER_NAMES): Update.
7316         (CONDITIONAL_REGISTER_USAGE): Update for HFP.
7317         (HARD_REGNO_NREGS): Update for SFP.
7318         (STACK_POINTER_OFFSET): Include bias here ...
7319         (FIRST_PARM_OFFSET): ... not here.
7320         (STACK_BIAS): Remove.
7321         (INIT_EXPANDERS): New.
7322         (STARTING_FRAME_OFFSET): Do not include bias.
7323         (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New.
7324         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP.
7325         (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise.
7326         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP.
7327         * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise.
7328         * config/sparc/sparc.c (mem_min_alignment): Update for HFP.
7329         (sparc_nonflat_function_prologue, epilogue_renumber): Likewise.
7330         (MUST_SAVE_REGISTER): Likewise.
7331         (sparc_flat_function_prologue): Likewise.
7332         (sparc_flat_function_epilogue): Likewise.
7333         (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK.
7334         (sparc_init_modes): SFP is GENERAL_REGS.
7335         (sparc_builtin_saveregs): SFP does not have bias applied.
7336
7337 2002-02-04  Richard Henderson  <rth@redhat.com>
7338
7339         * config/alpha/alpha.c (current_function_is_thunk): Don't check
7340         current_function_is_thunk.
7341         (alpha_sa_mask): Distinguish between current_function_is_thunk
7342         called from ASM_OUTPUT_MI_THUNK and not.
7343         (alpha_does_function_need_gp): Thunks always need gp.
7344         (alpha_start_function, alpha_output_function_end_prologue): Likewise.
7345         (alpha_output_mi_thunk_osf): New.
7346         * config/alpha/alpha-protos.h: Update.
7347         * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New.
7348
7349 2002-02-04  Richard Sandiford  <rsandifo@redhat.com>
7350
7351         * c-typeck.c (build_c_cast): Warn when qualifiers are added to
7352         function types, not when they're taken away.
7353
7354 Mon Feb  4 09:05:58 2002  Jeffrey A Law  (law@redhat.com)
7355
7356         * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated
7357         CODE_LABEL and jump table when replacing a table jump with a
7358         simple jump.
7359
7360 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7361
7362         * config/s390/s390-protos.h (legitimize_la_operand,
7363         s390_secondary_input_reload_class, s390_plus_operand,
7364         s390_expand_plus_operand): Add prototypes.
7365
7366         config/s390/s390.c (s390_secondary_input_reload_class,
7367         s390_plus_operand, s390_expand_plus_operand): New functions.
7368
7369         (struct s390_address): New member 'pointer'.
7370         (s390_decompose_address): Compute it.
7371         (legitimate_la_operand_p): Use it.
7372         (legitimize_la_operand): New function.
7373         (movti, movdi, movdf splitters): Call it.
7374
7375         config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define.
7376         (PREDICATE_CODES): Add s390_plus_operand.
7377
7378         config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete.
7379         (la_ccclobber): Allow GENERAL_REGS as output operand.
7380
7381         (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0,
7382         *reload_la_64, *reload_la_31 and splitters): Delete, replace by ...
7383         (*la_64, *la_31, reload_indi, reload_insi): ... these.
7384
7385 2002-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7386
7387         * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed
7388         register names for regular asm () construct.
7389
7390 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7391
7392         * config/i386/i386.md (movsf_1): Allow moving SF values in MMX
7393         registers.
7394
7395 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
7396
7397         * combine.c (recog_for_combine): Create a dummy insn with PATTERN
7398         pat for recog.
7399
7400 2002-02-04  Hartmut Penner  <hpenner@de.ibm.com>
7401
7402         * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in
7403         constant pool to be identical by string address and index.
7404
7405 2002-02-04  Anthony Green  <green@redhat.com>
7406
7407         * output.h (SECTION_OVERRIDE): Define.
7408         * varasm.c (named_section): Obey SECTION_OVERRIDE.
7409
7410 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7411
7412         * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match
7413         by existing arm*-*-netbsd* (a.out) target.
7414         (ns32k-*-netbsdelf*): Likewise.
7415         (sparc-*-netbsdelf*): Likewise.
7416         (vax-*-netbsdelf*): Likewise.
7417
7418 2002-02-03  Danny Smith <dannysmith@users.sourceforge.net>
7419
7420         * gthr-win32.h: Protect against conflicting typedef for BOOL in windows
7421         headers and libobjc headers.
7422
7423 2002-02-03  Mumit Khan  <khan@nanotech.wisc.edu>
7424
7425         * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++.
7426         (_mingw.h): Remove duplicate include.
7427
7428 2002-02-03  Jason Thorpe  <thorpej@wasabisystems.com>
7429
7430         * config.gcc: Set cpu_type to m68k for 68010, as well.
7431         (m68010-*-netbsdelf*): New...
7432         (m68k*-*-netbsdelf*): ...targets.
7433         * config/m68k/netbsd-elf.h: New file.
7434
7435 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7436
7437         * config/h8300/h8300.c (hand_list): Move inside function_arg.
7438
7439 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7440
7441         * config/h8300/h8300.c (h8_push_ops): Move inside
7442         h8300_init_once.
7443         (h8_pop_ops): Likewise.
7444         (h8_move_ops): Likewise.
7445
7446 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7447
7448         * config/h8300/h8300.c (os_task): Make it static.
7449         (monitor): Likewise.
7450         (pragma_saveall): Likewise.
7451
7452 2002-02-02  Alexandre Oliva  <aoliva@redhat.com>
7453
7454         * config/sh/sh.md (ic_invalidate_line): Make sure the immediate
7455         constant is a valid sign-extension for Pmode.
7456
7457 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7458
7459         * config/h8300/h8300.c: Fix formatting.
7460
7461 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7462
7463         * config/h8300/h8300.md: Fix formatting.
7464
7465 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7466
7467         * config/h8300/h8300.md (one_cmpl patterns): Tighten the
7468         predicates of operands[1].  Split the patterns for each
7469         processor variant.
7470
7471 2002-02-02  Kazu Hirata  <kazu@hxi.com>
7472
7473         * config/h8300/h8300.md (xor patterns): Tighten the predicates
7474         of operands[1] to register_operand.
7475
7476 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7477
7478         * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__.
7479         * cpphash.c (_cpp_init_hashtable): Similarly.
7480         * cppinit.c (cpp_create_reader): Default the signed_char flag.
7481         (init_builtins): Define __CHAR_UNSIGNED__ appropriately.
7482         (COMMAND_LINE_OPTIONS): Recognise -f{un,}signed-char.
7483         (cpp_handle_option): Handle the new options.
7484         * cpplex.c (cpp_interpret_charconst): Use new flag.
7485         * cpplib.h (struct cpp_options): New member signed_char.
7486         * gcc.c (cpp_unique_options): Remove %c spec and documentation.
7487         (cpp_options): Handle -fsigned-char and -funsigned-char.
7488         (static_specs): Remove signed_char_spec.
7489         (do_spec1): Don't handle %c.
7490         * system.h: Poison SIGNED_CHAR_SPEC.
7491         * tradcif.y (yylex): Use flag_signed_char.
7492         * tradcpp.h (flag_signed_char): New.
7493         * tradcpp.c (flag_signed_char): New.
7494         (main): Handle new command-line options.
7495         (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate.
7496 config:
7497         * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove.
7498         * avr/avr.h: Remove old comments.
7499         * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*.
7500         (CC1_SPEC): Pass -fsigned-char if -mic*.
7501         (SIGNED_CHAR_SPEC): Remove.
7502 doc:
7503         * tm.texi (SIGNED_CHAR_SPEC): Remove documentation.
7504
7505 2002-02-01  Eric Christopher  <echristo@redhat.com>
7506
7507         From Daniel Jacobowitz <dmj+@andrew.cmu.edu>
7508         * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling.
7509         * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine.
7510         (ASM_OUTPUT_REG_POP): Ditto.
7511
7512 2002-02-02  Neil Booth  <neil@daikokuya.demon.co.uk>
7513
7514         * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield
7515         patch.
7516
7517 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7518
7519         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators.
7520
7521 2002-02-02  Jakub Jelinek  <jakub@redhat.com>
7522
7523         PR c/5304:
7524         * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1
7525         unconditionally.
7526
7527 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7528
7529         * cfganal.c: Include tm_p.h.
7530         (keep_with_call_p): Fix the test that determines if a register holds
7531         the return value of a call.
7532
7533 2002-02-01  DJ Delorie  <dj@redhat.com>
7534
7535         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If
7536         we are given conflicting registers, switch to the other one we
7537         had allocated for us.
7538         * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2]
7539         as TImode so we know when the "other" register is available.
7540
7541 2002-02-01  David O'Brien  <obrien@FreeBSD.org>
7542
7543         * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than
7544         sparc/sparc_bi.h.
7545
7546 2002-02-01  Janis Johnson  <janis187@us.ibm.com>
7547
7548         * cfganal.c (keep_with_call_p): New function.
7549         (flow_call_edges_add): Prevent splitting a block between a call and
7550         a single-set instruction that should be kept in the same block.
7551
7552 2002-02-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7553
7554         * doc/install.texi (avr): Update outdated URL.
7555
7556 2002-01-30  Andrew Haley  <aph@cambridge.redhat.com>
7557
7558         * config/stormy16/stormy16.md (pushqi): New.
7559         (popqi): New.
7560         (pushhi): New.
7561         (pophi): New.
7562         (movhi): Remove stack operands.
7563         (movqi): Likewise.
7564         * config/stormy16/stormy16.h (PREDICATE_CODES): Add
7565         nonimmediate_nonstack_operand.
7566         * config/stormy16/stormy16.c (nonimmediate_nonstack_operand):
7567         New.
7568         * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand)
7569         New.
7570
7571 2002-01-31  Jason Merrill  <jason@redhat.com>
7572
7573         * Makefile.in (c-parse.c): Handle .output file.
7574         * objc/Make-lang.in (objc-parse.c): Likewise.
7575
7576 2002-02-01  Alexandre Oliva  <aoliva@redhat.com>
7577
7578         * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if
7579         the -me[lb] option is given.  Don't output the default flag
7580         twice.
7581
7582 2002-01-31  Zack Weinberg  <zack@codesourcery.com>
7583
7584         * c-lex.c (yyparse): Call debug_hooks->start_source_file for
7585         the primary source file; this has not been done yet.
7586         * c-decl.c (c_expand_body): Reset input_filename from
7587         DECL_SOURCE_FILE (fndecl) before calling init_function_start.
7588
7589 2002-01-31  Kazu Hirata  <kazu@hxi.com>
7590
7591         * rtlanal.c (subreg_regno_offset): Do not use
7592         SUBREG_REGNO_OFFSET.
7593         * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list.
7594         * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove.
7595
7596 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7597
7598         * gccbug.in: Follow GNU Coding Standards for --version.  Use GCC
7599         version rather than GNATS version in --version output.
7600
7601 2002-01-31  Richard Sandiford  <rsandifo@redhat.com>
7602
7603         * ifcvt.c (noce_process_if_block): Make a copy of the destination
7604         when copying back from a temporary.
7605
7606 2002-01-30  Richard Henderson  <rth@redhat.com>
7607
7608         * ifcvt.c (dead_or_predicable): Handling merging when other_bb
7609         and new_dest are the same.
7610
7611 2002-01-30  Richard Henderson  <rth@redhat.com>
7612
7613         PR opt/5076
7614         * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New.
7615         * rtl.c (note_insn_name): Update.
7616         * emit-rtl.c (remove_unnecessary_notes): Kill it.
7617         * stmt.c (expand_end_loop): Kill jump opt code.  Use LOOP_END_TOP_COND
7618         to perform loop rotation.
7619         (expand_exit_loop_top_cond): New.
7620         * tree.h (expand_exit_loop_top_cond): Declare it.
7621         * c-semantics.c (genrtl_while_stmt): Use it.
7622         (genrtl_for_stmt): Likewise.
7623
7624 2002-01-30  Alexandre Oliva  <aoliva@redhat.com>
7625
7626         * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of
7627         arguments to 64-bit boundaries on 64-bit ABIs.
7628
7629 2002-01-30  Steve Ellcey  <sje@cup.hp.com>
7630
7631         * loop.c (loop_invariant_p): Special case pic_offset_table_rtx.
7632
7633 2002-01-31  Joseph S. Myers  <jsm28@cam.ac.uk>
7634
7635         * c-decl.c (grokdeclarator): Handle type being a typedef for an
7636         invalid type.
7637
7638 2002-01-30  David O'Brien  <obrien@FreeBSD.org>
7639
7640         * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h.
7641         * config/sparc/sparc_bi.h: Remove file.
7642         * config/sparc/biarch64.h: New file (rename of sparc_bi.h).
7643
7644 2002-01-30  Richard Henderson  <rth@redhat.com>
7645
7646         * sched-deps.c (sched_analyze): Make a call read the frame pointer.
7647
7648 2002-01-30  Zack Weinberg  <zack@codesourcery.com>
7649
7650         * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1.
7651
7652 2002-01-30  Jason Merrill  <jason@redhat.com>
7653
7654         * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes.
7655         (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended.
7656         (reg_save): Use DW_CFA_offset_extended_sf instead.
7657
7658         * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors.
7659
7660 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7661
7662         * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result
7663         in cselib_lookup.
7664
7665 2002-01-29  Aldy Hernandez  <aldyh@redhat.com>
7666
7667         * rs6000.md ("*call_value_local32"): Remove constraints.
7668         ("*call_value_local64"): Same.
7669         ("*call_value_indirect_nonlocal_aix32"): Same.
7670         ("*call_value_nonlocal_aix32"): Same.
7671         ("*call_value_indirect_nonlocal_aix64"): Same.
7672         ("*call_value_nonlocal_aix64"): Same.
7673         ("*call_value_nonlocal_sysv"): Same.
7674
7675 2002-01-29  Richard Henderson  <rth@redhat.com>
7676
7677         * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef.
7678
7679 2002-01-29  Richard Henderson  <rth@redhat.com>
7680
7681         * expr.c (force_operand): Ignore flag_pic for detecting pic
7682         address loads.
7683         * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic
7684         for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered.
7685         * resource.c (mark_target_live_regs): Use regs_invalidated_by_call
7686         instead of open-coded loop.
7687         * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must
7688         be fixed when in use.
7689
7690 2002-01-29  Richard Henderson  <rth@redhat.com>
7691
7692         * sched-int.h (struct deps_reg): Add uses_length, clobbers_length.
7693         * sched-rgn.c (propagate_deps): Update them.
7694         * sched-deps.c (sched_analyze_insn): Update them.  Flush the
7695         clobbers list when either gets too long.
7696
7697 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7698
7699         * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS
7700         and INDEX_REGS the same as GENERAL_REGS.
7701         (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise.
7702
7703 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7704
7705         * tree.c (build_nonstandard_integer_type): Correct prototype.
7706
7707 2002-01-29  Ulrich Weigand  <uweigand@de.ibm.com>
7708
7709         * config/s390/s390.md (movstrsico, movstrdix_64,
7710         movstrsix_31): Remove, replace by ...
7711         (movstrdi_short, movstrsi_short, movstrdi_long,
7712         movstrsi_long): ... these.  New.
7713         (movstrdi, movstrsi): Adapt.
7714
7715         (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64,
7716         ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3):
7717         Remove unnecessary CC clobber.
7718         (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64,
7719         *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New.
7720
7721         (divmoddi4): Don't partially initialize TImode register.
7722
7723 2002-01-29  Geoffrey Keating  <geoffk@redhat.com>
7724
7725         * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory.
7726
7727 2002-01-29  Richard Henderson  <rth@redhat.com>
7728
7729         * flow.c (print_rtl_and_abort): Remove.
7730         (print_rtl_and_abort_fcn): Remove.
7731         (verify_local_live_at_start): Use dump_bb instead.
7732         (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints.
7733         (verify_wide_reg_1): Return 2 on mode test failure.
7734
7735 2002-01-29  Neil Booth  <neil@daikokuya.demon.co.uk>
7736
7737         PR c/3325, c/3326, c/2511, c/3347
7738         * c-decl.c (enum_decl_context): Remove BITFIELD.
7739         (grokdeclarator): Take bitfield width as an input.
7740         Ensure bitfields are given the correct type.  Perform
7741         bitfield width validation with build_bitfield_integer_type
7742         rather than waiting for finish_struct.
7743         (grok_typename, grok_typename_in_parm_context, start_decl,
7744         push_parmdecl, grokfield, start_function): Update calls to
7745         grokdeclarator.
7746         (build_bitfield_integer_type): New function.
7747         (finish_struct): Move bitfield validation to grokdeclarator
7748         and build_bitfield_integer_type.
7749         * tree.c (build_nonstandard_integer_type): New function.
7750         * tree.h (build_nonstandard_integer_type): New prototype.
7751 objc:
7752         * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge.
7753
7754 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
7755
7756         PR other/1502:
7757         * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero,
7758         don't ignore unrecognized -W* options.
7759         (cpp_handle_options): Pass 1 as last argument to cpp_handle_option.
7760         * cpplib.h (cpp_handle_option): Adjust prototype.
7761         * c-decl.c (c_decode_options): Pass 0 as last argument to
7762         cpp_handle_option.
7763
7764         PR c/2896:
7765         * gcc.c (cpp_unique_options): Split from cpp_options.
7766         (cpp_options): Source cpp_unique_options.
7767         (default_compilers): Use cpp_unique_options instead of cpp_options
7768         when used together with cc1_options.
7769         (static_specs): Add cpp_unique_options.
7770         * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options
7771         when used together with cc1_options.
7772
7773 2002-01-29  Kazu Hirata  <kazu@hxi.com>
7774
7775         * config/h8300/h8300-protos.h: Update the prototype of
7776         output_a_shift.
7777         * config/h8300/h8300.c (output_a_shift): Remove an unused
7778         argument 'insn'.  Remove redundant code.
7779         * config/h8300/h8300.md: Adust to the new prototype of
7780         output_a_shift.
7781
7782 2002-01-29  Kazu Hirata  <kazu@hxi.com>
7783
7784         * config/h8300/h8300-protos.h: Update the prototypes of
7785         emit_a_rotate and expand_a_rotate.
7786         * config/h8300/h8300.c (emit_a_rotate): Change the type of the
7787         first argument to 'enum rtx_code'.
7788         (expand_a_rotate): Likewise.
7789
7790 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7791
7792         * config/h8300/h8300-protos.h: Update the prototype of
7793         output_simode_bld.
7794         * config/h8300/h8300.c (output_simode_bld): Remove an argumen
7795         'log2'.
7796         * config/h8300/h8300.md: Adjust to the new prototype.
7797
7798 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7799
7800         * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove
7801         redundant code.
7802
7803 2002-01-28  John David Anglin  <dave@hiauly1.hia.nrc.ca>
7804
7805         * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM
7806         is a fixed register before returning pic_offset_table_rtx.
7807         * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx
7808         when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined.
7809
7810 2002-01-28  Jason Merrill  <jason@redhat.com>
7811
7812         * dwarf2.h: Sync with src version.
7813
7814 2002-01-28  Paul Koning  <pkoning@equallogic.com>
7815
7816         * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace
7817         BT_FN_VOID_PTR_VAR.
7818         * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const.
7819         * doc/extend.texi (__builtin_prefetch): Update documentation:
7820         first argument is now const void ptr.
7821
7822 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7823
7824         * config/h8300/h8300-protos.h: Remove an unused prototype.
7825
7826 2002-01-28  Roman Zippel  <zippel@linux-m68k.org>
7827
7828         * toplev.c (lang_independent_init): Round up identifier size.
7829
7830 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
7831
7832         * config.gcc: Revert previous change.
7833
7834 2002-01-28  Andris Pavenis  <pavenis@latnet.lv>
7835
7836         * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION
7837
7838 2002-01-28  Richard Earnshaw  <rearnsha@arm.com>
7839
7840         * config.gcc (*-*-netbsdelf*): Set up generic parameters.
7841         (*-*-netbsd*): Always use collect2.  Remove collect2 settings from
7842         other non-elf netbsd config frags.
7843         * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since
7844         collect2 will does that.
7845         * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that
7846         shared-lib frobbing will work.
7847
7848 2002-01-28  Kazu Hirata  <kazu@hxi.com>
7849
7850         * config/h8300/h8300.h: Fix formatting.
7851         * config/h8300/h8300.md: Likewise.
7852
7853 2002-01-28  Loren J. Rittle  <ljrittle@acm.org>
7854
7855         * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on
7856         the old, removed AAA_standards fix.
7857         * fixinc/fixincl.x: Rebuilt.
7858
7859 2002-01-28  Hans-Peter Nilsson  <hp@axis.com>
7860
7861         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit
7862         atexit call in crtbegin, hooked in after call to frame_dummy;
7863         register EH before registering __fini__start.
7864
7865 2002-01-28  Aldy Hernandez  <aldyh@redhat.com>
7866
7867         * config/rs6000/altivec.h: Remove spurious semicolons.
7868
7869 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7870
7871         * config/h8300/h8300.md: Replace dead bit extraction patterns
7872         with ones that work.
7873
7874 Sun Jan 27 13:23:40 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7875
7876         * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode
7877         if not STRICT_ALIGNMENT.
7878         * rtl.h (MEM_ALIGN): Likewise.
7879
7880 2002-01-27  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7881
7882         * doc/invoke.texi (-fdump-translation-unit): Revert this
7883         patch: 2001-10-21  Craig Rodrigues  <rodrigc@gcc.gnu.org>
7884
7885 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7886
7887         * config/h8300/h8300.md (define_constants): New.
7888         (anonymous patterns) Use defined constants appropriately.
7889
7890 2002-01-27  Kazu Hirata  <kazu@hxi.com>
7891
7892         * config/h8300/h8300.c (function_arg): Remove redundant code.
7893
7894 2002-01-26  Richard Henderson  <rth@redhat.com>
7895
7896         * sched-deps.c (reg_pending_uses_head): New.
7897         (reg_pending_barrier): Rename from reg_pending_sets_all.
7898         (find_insn_list): Don't mark inline.
7899         (find_insn_mem_list): Remove.
7900         (add_dependence_list, add_dependence_list_and_free): New.
7901         (flush_pending_lists): Replace only_write param with separate
7902         for_read and for_write parameters.  Update all callers.  Use
7903         add_dependence_list_and_free.
7904         (sched_analyze_1): Do not add reg dependencies here; just set
7905         the pending bits.  Use add_dependence_list.
7906         (sched_analyze_2): Likewise.
7907         (sched_analyze_insn): Replace schedule_barrier_found with
7908         reg_pending_barrier.  Add all dependencies for pending reg
7909         uses, sets, and clobbers.
7910         (sched_analyze): Don't add reg dependencies for calls, just
7911         set pending bits.  Use regs_invalidated_by_call.  Treat
7912         sched_before_next_call as a normal list, not a fake insn.
7913         (init_deps): No funny init for sched_before_next_call.
7914         (free_deps): Free pending mems lists.  Don't zero reg_last.
7915         (init_deps_global): Init reg_pending_uses.
7916         (finish_deps_global): Free it.
7917         * sched-int.h (deps): Make in_post_call_group_p boolean.  Update docs.
7918         (find_insn_mem_list): Remove.
7919         * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New.
7920         (propagate_deps): Use them.  Zero temp mem lists.
7921
7922 2002-01-26  Richard Henderson  <rth@redhat.com>
7923
7924         * Makefile.in (CRTSTUFF_CFLAGS): New.
7925         (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it.
7926         * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain
7927         crtstuff.c instead of alpha assembly version.
7928         * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the
7929         entire dummy function sequence.  Use FORCE_CODE_SECTION_ALIGN
7930         not FORCE_{INIT,FINI}_SECTION_ALIGN.
7931         (__do_global_dtors_aux): Mark used.
7932         (frame_dummy, __do_global_ctors_aux): Mark used.
7933         (fini_dummy, init_dummy): Remove.
7934
7935         * config/alpha/crtbegin.asm: Remove file.
7936         * config/alpha/crtend.asm: Remove file.
7937         * config/alpha/t-crtbe: Remove file.
7938         * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New.
7939         (LINK_EH_SPEC): New.
7940
7941         * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old
7942         FORCE_INIT_SECTION_ALIGN hack.  Register __fini_start before
7943         calling constructors.
7944         * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef.
7945
7946         * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New.
7947         * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old
7948         CRT_END_INIT_DUMMY hack.
7949         * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace
7950         FORCE_{INIT,FINI}_SECTION_ALIGN.
7951
7952         * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace
7953         FORCE_{INIT,FINI}_SECTION_ALIGN.
7954
7955         * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new
7956         invocation sequence.
7957         * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise.
7958
7959         * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update.
7960         (FORCE_CODE_SECTION_ALIGN): New.
7961
7962 2002-01-26  Richard Henderson  <rth@redhat.com>
7963
7964         * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT.
7965
7966 2002-01-26  Richard Henderson  <rth@redhat.com>
7967
7968         * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too.
7969         (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs.
7970
7971 2002-01-26  Kazu Hirata  <kazu@hxi.com>
7972
7973         * config/h8300/h8300.md: Remove bit extraction patterns that
7974         cannot be triggered.
7975         Restrict each bit extraction pattern to a variant on which the
7976         pattern is tested.
7977
7978 2002-01-26  Joseph S. Myers  <jsm28@cam.ac.uk>
7979
7980         * doc/include/texinfo.tex: Update to version 2002-01-04.07.
7981
7982 2002-01-26  Kazu Hirata  <kazu@hxi.com>
7983
7984         * config/h8300/h8300.md: Remove bit test patterns that cannot
7985         be triggered.
7986         Restrict each bit test pattern to a variant on which the
7987         pattern is tested.
7988
7989 2002-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7990
7991         * builtins.c (expand_builtin_strncat): Remove redundant check for
7992         INTEGER_CST.
7993
7994 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
7995
7996         * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide
7997         default setting.
7998         * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override
7999         existing setting.
8000
8001 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8002
8003         * dbxout.c (dbxout_init): Use assemble_name rather than just
8004         stripping off the first character.
8005         (dbxout_source_file): Likewise.
8006
8007 2002-01-25  DJ Delorie  <dj@redhat.com>
8008
8009         * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare
8010         using rtx_equal_p, not by comparing pointers.
8011
8012 2002-01-25  Steve Ellcey  <sje@cup.hp.com>
8013
8014         * emit-rtl.c (gen_rtx_REG): Always return the same rtx
8015         for PIC_OFFSET_TABLE_REGNUM.
8016         (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx.
8017
8018 2002-01-25  David O'Brien  <obrien@FreeBSD.org>
8019
8020         * config.gcc (x86_64-*-freebsd*): New target.
8021         (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
8022         value.
8023         (i[34567]86-*-freebsd*): Don't include svr4.h.
8024         * config/i386/freebsd64.h: New file.
8025
8026 2002-01-25  Douglas B Rupp  <rupp@gnat.com>
8027
8028         * config/alpha/x-vms (version): Make static.
8029
8030         * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error
8031         in previous checkin.
8032
8033         * Makefile.in (install-headers-cp): New target.
8034         * config.gcc (alpha-dec-*vms*): Install headers with
8035         install-headers-cp
8036
8037 Fri Jan 25 22:42:49 CET 2002  Jan Hubicka  <jh@suse.cz>
8038
8039         * unroll.c (unroll_loop): Lower final_value to nonmemory operand;
8040         avoid it's copies.
8041
8042 Fri Jan 25 08:26:19 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8043
8044         * builtins.c (expand_builtin_strncpy): Use integer_zerop instead
8045         of compare_tree_int.
8046         (expand_builtin_strncat): Likewise.
8047         * c-decl.c (finish_struct): Use tree_low_cst.
8048         * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT.
8049         * tree.c (compare_tree_int): Likewise.
8050
8051 2002-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
8052
8053         * reload1.c (eliminate_regs_in_insn): Recognize frame pointer
8054         adjustments even if they are implemented by more than two insns.
8055
8056 Fri Jan 25 20:43:56 CET 2002  Jan Hubicka  <jh@suse.cz>
8057
8058         * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg.
8059         * df.h (struct ref): Kill B.
8060         (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN.
8061
8062         * basic-block.h (PROP_EQUAL_NOTES): New flag.
8063         * flow.c (propagate_one_insn): Use it.
8064         (mark_used_regs): Handle NIL.
8065
8066 2002-01-25  Geoffrey Keating  <geoffk@redhat.com>
8067
8068         * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM
8069         to help folding.
8070
8071 2002-01-25  David Edelsohn  <edelsohn@gnu.org>
8072
8073         * rs6000.md (prefetch): Make address V4SI mode so that the address
8074         is restricted to legitimate form for instruction.
8075
8076 2002-01-25  Bob Wilson  <bob.wilson@acm.org>
8077
8078         * doc/install.texi (xtensa-*-elf): New target.
8079         (xtensa-*-linux*): New target.
8080         * doc/contrib.texi: Add myself.
8081
8082 2002-01-25  Nick Clifton  <nickc@cambridge.redhat.com>
8083
8084         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general
8085         purpose register to hold an SImode (or smaller) value.
8086
8087 2002-01-25  Jakub Jelinek  <jakub@redhat.com>
8088
8089         * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame*
8090         registry only.
8091         * crtstuff.c: Likewise.
8092
8093 2002-01-25  Kazu Hirata  <kazu@hxi.com>
8094
8095         * config/h8300/h8300.md (negation patterns): Tighten
8096         predicates to register_operand.
8097
8098 2002-01-24  Aldy Hernandez  <aldyh@redhat.com>
8099
8100         * loop.c (emit_prefetch_instructions): Use the prefetch insn's
8101         mode, not Pmode.
8102
8103         * builtins.c (expand_builtin_prefetch): Same.
8104
8105 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8106
8107         * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have
8108         modes.
8109
8110 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8111
8112         * config/h8300/h8300.c (print_operand): Remove support for
8113         operand character 'A'.
8114         * config/h8300/h8300.md (three anonymous patterns): Replace
8115         operand character 'A' with either 'T' or 'S'.
8116
8117 2002-01-24  Kazu Hirata  <kazu@hxi.com>
8118
8119         * config/h8300/h8300.c (print_operand): Remove support for
8120         operand character 'U'.
8121
8122 2002-01-24  Andris Pavenis  <pavenis@latnet.lv>
8123
8124         * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR.
8125
8126 2002-01-24  Nick Clifton  <nickc@cambridge.redhat.com>
8127
8128         * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode
8129         values to be assigned to the stack pointer.
8130
8131 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
8132
8133         * emit_rtl.c (gen_lowpart_common): Conversion from const_int
8134         to const_double needs to be done right for big-endian systems.
8135
8136 2002-01-24  Jason Merrill  <jason@redhat.com>
8137
8138         PR c++/2432
8139         * config/sparc/sparc.md (call-jump peepholes): Pass the right insn
8140         to can_throw_internal.
8141
8142 2002-01-23  Richard Henderson  <rth@redhat.com>
8143
8144         * fold-const.c (fold): Change UINT_MAX test to check vs precision
8145         rather than TYPE_MAX_VALUE.  Fix indentation and a bogus negation.
8146
8147 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8148
8149         * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands.
8150         (symGOT2reg): Use them, then set as GOT value as unchanging.
8151         (symGOTOFF2reg): Set REG_EQUAL note.  Use a different pseudo
8152         as a temporary, if possible.
8153         (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC.  Emit
8154         sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2).
8155
8156 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8157
8158         * config/h8300/h8300.md: Fix xorqi and xorqi so that they will
8159         accept to accept 0x80 as operands[2].
8160
8161 2002-01-24  Alexandre Oliva  <aoliva@redhat.com>
8162
8163         * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode.
8164
8165 2002-01-23  Richard Henderson  <rth@redhat.com>
8166
8167         * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo.
8168
8169 2002-01-23  Aldy Hernandez  <aldyh@redhat.com>
8170
8171         * c-parse.in (parmlist_or_identifiers): Add maybe_attribute.
8172         (parmlist_or_identifiers_1): Verify that only a parmlist follows
8173         an attribute.
8174
8175 2002-01-23  Richard Henderson  <rth@redhat.com>
8176
8177         * expr.c (move_by_pieces_1): Extend size before negation.
8178
8179         * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060.
8180         (MULTILIB_MATCHES): Remove 68040 and 68060 aliases.
8181         (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060.
8182         * config/m68k/t-m68kelf: Likewise.
8183
8184 2002-01-23  Bob Wilson  <bob.wilson@acm.org>
8185
8186         * config/xtensa/elf.h: New file.
8187         * config/xtensa/lib1funcs.asm: New file.
8188         * config/xtensa/lib2funcs.S: New file.
8189         * config/xtensa/linux.h: New file.
8190         * config/xtensa/t-xtensa: New file.
8191         * config/xtensa/xtensa-config.h: New file.
8192         * config/xtensa/xtensa-protos.h: New file.
8193         * config/xtensa/xtensa.c: New file.
8194         * config/xtensa/xtensa.h: New file.
8195         * config/xtensa/xtensa.md: New file.
8196         * config.gcc (xtensa-*-elf*): New target.
8197         (xtensa-*-linux*): New target.
8198         * cse.c (canon_hash): Compare rtx pointers instead of register
8199         numbers.  This is required for the Xtensa port.
8200         * integrate.c (copy_insn_list): Handle case where the static
8201         chain is in memory and the memory address has to be copied to
8202         a register.
8203         * doc/invoke.texi (Option Summary): Add Xtensa options.
8204         (Xtensa Options): New node.
8205         * doc/md.texi (Machine Constraints): Add Xtensa machine constraints.
8206
8207 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8208
8209         * diagnostic.c (internal_error): Do ICE suppression only
8210         when ENABLE_CHECKING is not defined.
8211
8212         * c-typeck.c (require_complete_type): Return error_mark_node
8213         if type is error_mark_node.
8214
8215 2002-01-23  Janis Johnson  <janis187@us.ibm.com>
8216
8217         * toplev.c (process_options): Disable -fprefetch-loop-arrays with
8218         -Os and issue a warning.
8219
8220 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
8221
8222         * doc/fragments.texi, doc/hostconfig.texi: Update to reflect
8223         current (lack of) need for host configuration by hand.
8224
8225         * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross
8226         references.  Documentation of some target macros moved from
8227         hostconfig.texi to tm.texi.
8228
8229 2002-01-23  Will Cohen  <wcohen@redhat.com>
8230
8231         * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently
8232         defined.
8233
8234 2002-01-23  Kazu Hirata  <kazu@hxi.com>
8235
8236         * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an
8237         operand[3].
8238
8239 2002-01-23  Jason Merrill  <jason@redhat.com>
8240
8241         * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF.
8242
8243         * function.c (assign_parms): Don't put args of inline functions
8244         into registers when not optimizing.
8245
8246 2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
8247
8248         * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant.
8249         (prologue_use): New pattern.
8250         * config/arm/arm.c (expand_prologue): Use gen_prologue_use in
8251         preference to gen_rtx_USE.
8252         (thumb_expand_prologue): Use gen_prologue_use in preference to
8253         gen_rtx_USE.
8254         (thumb_expand_epilogue): Use gen_prologue_use in preference to
8255         gen_rtx_USE.
8256
8257 2002-01-23  Hans-Peter Nilsson  <hp@bitrange.com>
8258
8259         * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0.
8260
8261 2002-01-23  Neil Booth  <neil@daikokuya.demon.co.uk>
8262
8263         PR c/3504
8264         * doc/extend.texi: Correct documentation of __alignof__.
8265
8266 2002-01-22  Zack Weinberg  <zack@codesourcery.com>
8267
8268         * params.h: Rename arguments of DEFPARAM so that it will be
8269         recognized as a translation keyword.
8270
8271 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8272
8273         * extend.texi: Document altivec functions.
8274         Fix N-bit adjectives in X86 builtin documentation.
8275
8276 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8277
8278         * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and
8279         auto_inc_dec values.
8280
8281 2002-01-22  Richard Earnshaw  <rearnsha@arm.com>
8282
8283         * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space
8284         after backslash.
8285         (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line.
8286
8287 2002-01-22  Alexandre Oliva  <aoliva@redhat.com>
8288
8289         * config/i386/freebsd-aout.h (ASM_QUAD): Undefine.
8290
8291 2002-01-22  Richard Henderson  <rth@redhat.com>
8292
8293         * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use
8294         copy_insn not copy_rtx.
8295
8296 2002-01-23  Alan Modra  <amodra@bigpond.net.au>
8297
8298         * combine.c (simplify_and_const_int): Don't trunc_int_for_mode
8299         "nonzero" as that might add "1" bits.  Ensure "constop" is
8300         properly sign extened.
8301         (force_to_mode): Tweak for sign extended constop.
8302
8303 2002-01-22  Richard Henderson  <rth@redhat.com>
8304
8305         * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use
8306         for_each_rtx instead of assuming we're already looking at the MEM.
8307         (split_small_symbolic_mem_operand): Likewise.
8308         * config/alpha/alpha.h (PREDICATE_CODES): Update.
8309         * config/alpha/alpha.md (small symbolic memory splitters): Update.
8310
8311 2002-01-22  Richard Henderson  <rth@redhat.com>
8312
8313         * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse
8314         sequence number for the literal.
8315         (divmoddi_internal_er): Likewise.
8316
8317 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8318
8319         PR java/4972
8320         * aclocal.m4 (AM_ICONV): Put linking flags for libiconv
8321         in LIBICONV variable.
8322         * configure: Regenerated.
8323
8324 2002-01-22  Krister Walfridsson  <cato@df.lth.se>
8325
8326         * dependence.c (build_def_use): Remove array_idx.
8327
8328         * dwarfout.c (last_filename): Remove.
8329         (output_compile_unit_die): Remove last_filename.
8330
8331 2002-01-22  Roger Sayle  <roger@eyesopen.com>
8332             Richard Henderson  <rth@redhat.com>
8333
8334         PR opt/3640
8335         * fold-const.c (fold): Optimize unsigned comparisons against
8336         UINT_MAX (and similar unsigned constants).
8337
8338 2002-01-22  Janis Johnson  <janis187@us.ibm.com>
8339
8340         * Makefile.in (loop.o): Depend on OPTABS_H.
8341         * loop.c (emit_prefetch_instructions): Check the prefetch operand
8342         against the predicate.
8343
8344         PR target/5379
8345         * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint
8346         for the address operand.
8347
8348 2002-01-22  Richard Henderson  <rth@redhat.com>
8349
8350         * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove.
8351
8352 2002-01-22  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8353
8354         PR other/5450
8355         * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU
8356         preprocessor flags.
8357
8358 2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com>
8359
8360         * config.gcc (x86_64-*-netbsd*): New target.
8361         * config/i386/netbsd64.h: New file.
8362
8363 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8364
8365         * regrename.c (kill_value): Fix typo.
8366
8367 2002-01-22  Aldy Hernandez  <aldyh@redhat.com>
8368
8369         * doc/tm.texi: Remove STARTING_FRAME_PHASE.
8370
8371         * config/rs6000/rs6000.h: Same.
8372
8373         * function.c (instantiate_virtual_regs): Remove
8374         STARTING_FRAME_PHASE.
8375         (assign_stack_local_1): Same.
8376         Calculate frame phase.
8377
8378 2002-01-22  Nick Clifton  <nickc@redhat.com>
8379
8380         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno'
8381         variable declaration to outer scope in order to simplify
8382         future extensions.
8383         (HARD_REGNO_MODE_OK): Replace macro body with a with a call to
8384         arm_hard_regno_mode_ok.
8385         * config/arm/arm-protos.h: Add a prototype for
8386         arm_hard_regno_mode_ok.
8387         * config/arm/arm.c (soft_df_operand): Remove now redundant
8388         check for DImode values using IP_REGNUM.
8389         (nonimmediate_soft_df_operand): Remove now redundant check for
8390         DImode values using IP_REGNUM.
8391         (arm_hard_regno_mode_ok): New function. New check: make sure
8392         that DImode values are not stored in IP_REGNUM.
8393
8394         * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD
8395         note with a USE.
8396         (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE.
8397
8398 2002-01-22  Jason Merrill  <jason@redhat.com>
8399
8400         * c-semantics.c (genrtl_compound_stmt): Only check nesting
8401         consistency if this COMPOUND_STMT is scoped.
8402
8403 2002-01-22  Kazu Hirata  <kazu@hxi.com>
8404
8405         * predict.c: Fix formatting.
8406         * print-tree.c: Likewise.
8407         * protoize.c: Likewise.
8408         * real.h: Likewise.
8409         * rtl.h: Likewise.
8410         * sbitmap.h: Likewise.
8411         * scan.c: Likewise.
8412         * sched-deps.c: Likewise.
8413         * sched-vis.c: Likewise.
8414         * sdbout.c: Likewise.
8415         * sibcall.c: Likewise.
8416         * ssa.c: Likewise.
8417         * ssa-ccp.c: Likewise.
8418         * ssa-dce.c: Likewise.
8419         * stmt.c: Likewise.
8420         * stor-layout.c: Likewise.
8421         * system.h: Likewise.
8422
8423 Tue Jan 22 06:26:33 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8424
8425         * tree.c (int_fits_type_p): If bounds of a subtype are variable, see
8426         if fits in bounds of base type.
8427
8428         * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls.
8429         (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New.
8430         (add_bound_info, default): If can't find a context, make a
8431         SAVE_EXPR.
8432         (dwarf2out_finish): Check for SAVE_EXPR in node->created_for.
8433
8434 2002-01-22  Hans-Peter Nilsson  <hp@axis.com>
8435
8436         * c-typeck.c (parser_build_binary_op): If result from
8437         build_binary_op is ERROR_MARK just return error_mark_node without
8438         further processing.
8439
8440 2002-01-21  Jason Thorpe  <thorpej@wasabisystems.com>
8441
8442         * config/netbsd.h (TARGET_HAS_F_SETLKW): define.
8443         Split a.out-specific bits into...
8444         * config/netbsd-aout.h: ...this.
8445         * config/netbsd-elf.h: New file.
8446         * config/alpha/netbsd-elf.h: Remove.
8447         * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target.
8448         * config/i386/netbsd-elf.h (LIB_SPEC): Remove.
8449         (STARTFILE_SPEC): Remove redundant definition.
8450         (ENDFILE_SPEC): Likewise.
8451         (LINK_SPEC): Likewise.
8452         (CPP_SPEC): Likewise.
8453         (ASM_SPEC): Likewise.
8454         (LIB_SPEC): Likewise.
8455         (SWITCH_TAKES_ARG): Likewise.
8456         (TARGET_MEM_FUNCTIONS): Likewise.
8457         (CPP_PREDEFINES): Redefine.
8458         (ASM_FINAL_SPEC): Remove redefinition.
8459         (ASM_COMMENT_START): Redefine.
8460         (FUNCTION_PROFILER): Define.
8461         (TARGET_VERSION): Redefine.
8462         Comment and formatting cleanup.
8463         * config/i386/netbsd.h: Include <netbsd-aout.h>.
8464         * config/m68k/netbsd.h: Include <netbsd-aout.h>.
8465         * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target,
8466         big- or little-endian.
8467         * config/ns32k/netbsd.h: Include <netbsd-aout.h>.
8468         * config.gcc (*-*-netbsd*): Add definitions common to all
8469         NetBSD configs.
8470         (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and
8471         gnu_ld definitions.  Add netbsd-elf.h to and remove
8472         alpha/netbsd-elf.h from tm_file.  Remove alpha/t-crtfm from
8473         tmake_file, and don't lose previous tmake_file contents.
8474         (arm*-*-netbsd*): Add netbsd-aout.h to tm_file.
8475         (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and
8476         gnu_ld definitions.  Add netbsd-elf.h to tm_file.
8477         (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*.
8478         (mipsel-*-netbsd*): Rename this to...
8479         (mips*-*-netbsd*): ...this.  Add elfos.h to tm_file.  Add
8480         mips/little.h to tm_file for mips*el-*.
8481         (powerpc-*-netbsd*): Remove redundant xm_defines definition.
8482         (sparc-*-netbsd*): Add netbsd-aout.h to tm_file.
8483         (vax-*-netbsd*): Add netbsd-aout.h to tm_file.
8484
8485 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8486
8487         * pa-protos.h (reg_before_reload_operand): New function prototype.
8488         * pa.c (reg_before_reload_operand): New function implementation.
8489         * pa.md (decrement_and_branch_until_zero, movb): Use it.  Change "!*m"
8490         contraints to "*m".
8491
8492 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8493
8494         * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP.
8495
8496 2002-01-21  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8497
8498         * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin".
8499         (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/".
8500         (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/".
8501         (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections.
8502         (ENDFILE_SPEC): Undefine.
8503         (STARTFILE_SPEC): Redefine for PA.
8504
8505 2002-01-21  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8506
8507         * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC.
8508
8509 2002-01-21  Daniel Jacobowitz  <drow@mvista.com>
8510
8511         * config.gcc: Add entries to supported PowerPC --with-cpu
8512         types.
8513
8514 2002-01-21  Jakub Jelinek  <jakub@redhat.com>
8515
8516         * config/i386/i386.c (ix86_function_arg_regno_p): Never return
8517         true for 64-bit mode only SSE registers in 32-bit mode.
8518
8519 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8520
8521         * unwind-dw2.c: Fix formatting.
8522         * unwind-dw2-fde.c: Likewise.
8523         * unwind-dw2-fde.h: Likewise.
8524         * unwind-pe.h: Likewise.
8525         * varasm.c: Likewise.
8526         * varray.h: Likewise.
8527
8528 2002-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
8529
8530         Remove workaround for register stack overwrite bug in mmix.
8531         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove
8532         support for TARGET_REG_STACK_FILL_BUG.
8533         * config/mmix/mmix.h: Remove member has_call_without_parameters.
8534         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG):
8535         Delete.
8536         (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG.
8537         (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and
8538         -mno-reg-stack-fill-bug-workaround.
8539         * config/mmix/mmix.md ("call", "call_value"): Don't set struct
8540         machine member has_call_without_parameters.
8541         * doc/invoke.texi (Option Summary) <MMIX Options>: Remove
8542         -mreg-stack-fill-bug-workaround and
8543         -mno-reg-stack-fill-bug-workaround.
8544         (MMIX Options): Ditto.
8545
8546 2002-01-21  Kazu Hirata  <kazu@hxi.com>
8547
8548         * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX
8549         as appropriate.
8550         Remove redundant code.
8551
8552 2002-01-21  Joseph S. Myers  <jsm28@cam.ac.uk>
8553
8554         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
8555         config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
8556         config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h,
8557         config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h,
8558         config/stormy16/stormy16.h, config/v850/v850.h: Remove commented
8559         out target macro definitions and non-target-specific comments
8560         mostly taken from old versions of the manual.
8561
8562 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8563
8564         * config/h8300/h8300.h: Fix comment formatting.
8565         * config/ia64/aix.h: Likewise.
8566         * config/ia64/ia64-protos.h: Likewise.
8567         * config/ia64/ia64.c: Likewise.
8568         * config/ia64/ia64.h: Likewise.
8569         * config/ia64/ia64intrin.h: Likewise.
8570         * config/ia64/linux.h: Likewise.
8571         * config/ia64/unwind-aix.c: Likewise.
8572         * config/ia64/unwind-ia64.c: Likewise.
8573
8574 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8575
8576         * config/h8300/h8300.c: Revise comments about shift code.
8577
8578 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8579
8580         * config/h8300/h8300.c (function_arg): Update a comment.
8581
8582 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8583
8584         * config/h8300/h8300.md: Update the comments at the beginning
8585         of the file.
8586
8587 2002-01-20  Kazu Hirata  <kazu@hxi.com>
8588
8589         * config/i370/i370.c: Fix comment formatting.
8590         * config/i370/i370.h: Likewise.
8591         * config/i370/i370.md: Likewise.
8592         * config/i370/linux.h: Likewise.
8593
8594 Sun Jan 20 18:40:14 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8595
8596         * reg-stack.c (subst_stack_regs): Properly check for deleted insn.
8597
8598         * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases.
8599         (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL
8600         in incomplete case.
8601
8602 2002-01-20  Graham Stott  <grahams@redhat.com>
8603
8604         * cfgloop.c (flow_loop_preheader_scan): Fix typo.
8605
8606 2002-01-19  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8607
8608         * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file.
8609
8610 2002-01-19  Tom Rix  <trix@redhat.com>
8611
8612         * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts.
8613
8614 2002-01-18  Aldy Hernandez  <aldyh@redhat.com>
8615
8616         * doc/tm.texi (STARTING_FRAME_PHASE): Document.
8617
8618         * function.c (assign_stack_local_1): Adjust x_frame_offset with
8619         STARTING_FRAME_PHASE.
8620         (STARTING_FRAME_PHASE): New.
8621         (instantiate_virtual_regs): Check saneness of
8622         STARTING_FRAME_PHASE.
8623
8624         * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New.
8625
8626 2002-01-19  Alexandre Oliva  <aoliva@redhat.com>
8627
8628         * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls.
8629
8630 2002-01-18  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8631
8632         * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot
8633         be used for bootstrapping GCC 3.0.
8634
8635 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8636
8637         * config/h8300/h8300.md: Fix an insn length.
8638
8639 2002-01-18  Kazu Hirata  <kazu@hxi.com>
8640
8641         * bitmap.h: Fix comment formatting.
8642         * combine.c: Likewise.
8643         * cppfiles.c: Likewise.
8644         * c-pragma.h: Likewise.
8645         * c-typeck.c: Likewise.
8646         * df.c: Likewise.
8647         * dwarf2out.c: Likewise.
8648         * function.c: Likewise.
8649         * gcc.c: Likewise.
8650         * genattrtab.c: Likewise.
8651         * gthr-win32.h: Likewise.
8652         * haifa-sched.c: Likewise.
8653         * predict.c: Likewise.
8654         * rtlanal.c: Likewise.
8655         * rtl.h: Likewise.
8656         * unwind-dw2-fde.h: Likewise.
8657         * unwind-pe.h: Likewise.
8658         * vmsdbgout.c: Likewise.
8659
8660 Thu Jan 17 15:28:26 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8661
8662         * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE
8663         if type_required and passed decl.
8664
8665 2002-01-17  Aldy Hernandez  <aldyh@redhat.com>
8666
8667         * config.gcc (cpu_type): Include altivec.h in powerpc
8668         extra_headers.
8669         Same for darwin.
8670
8671         * config/rs6000/altivec.h: New.
8672
8673 2002-01-17  David Edelsohn  <edelsohn@gnu.org>
8674
8675         * doc/install.texi (*-ibm-aix*): Update assembler and exception
8676         handling information.
8677         * doc/trouble.texi (Interoperation): Add libstdc++ information
8678         for AIX.
8679         (Misunderstandings): Add template instantiation and static template
8680         member information for AIX.
8681
8682 2002-01-17  Jason Merrill  <jason@redhat.com>
8683
8684         * dbxout.c (dbxout_type): Support const and volatile.
8685
8686         * except.c (add_partial_entry): Remove backwards compatibility code.
8687         (end_protect_partials): Likewise.
8688
8689 2002-01-17  Jakub Jelinek  <jakub@redhat.com>
8690
8691         * config/ia64/ia64.md (prologue_use): New.
8692         * config/ia64/ia64.c (ia64_expand_prologue): Use
8693         gen_prologue_use instead of gen_rtx_USE.
8694         (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way
8695         as CODE_FOR_pred_rel_mutex.
8696         (ia64_sched_reorder2): Likewise.
8697
8698 2002-01-16  Eric Christopher  <echristo@redhat.com>
8699
8700         * config/mips/r3900.h: Reformat.
8701         (SUBTARGET_CPP_SIZE_SPEC): Remove.
8702         * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto.
8703         * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "".
8704         (SUBTARGET_CPP_SIZE_SPEC): Rewrite.
8705         * config/mips/t-elf: Remove mips3 multilib.
8706
8707 2002-01-16  H.J. Lu <hjl@gnu.org>
8708
8709         * config/mips/linux.h: Include "mips/abi64.h".
8710
8711 2002-01-16  H.J. Lu <hjl@gnu.org>
8712
8713         * config/mips/t-linux: New.
8714
8715         * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*.
8716
8717         * config/mips/linux.h: Don't include "gofast.h".
8718         (INIT_SUBTARGET_OPTABS): Removed.
8719
8720 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8721
8722         * config/h8300/h8300-protos.h: Replace emit_a_shift with
8723         output_a_shift.
8724         * config/h8300/h8300.c: Likewise.
8725         * config/h8300/h8300.md: Likewise.
8726
8727 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8728
8729         * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of
8730         spaces after an opcode name.
8731         (pushqi1_h8300hs): Likewise.
8732         (pushhi1_h8300hs): Likewise.
8733
8734 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8735
8736         * doc/extend.texi: Replace "option" with "attribute"
8737         appropriately.
8738
8739 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8740
8741         * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into
8742         (and:DI () (const_int -8)).
8743         (split_small_symbolic_mem_operand): Split
8744         (mem (and:DI () (const_int -8)).
8745
8746 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8747
8748         PR target/5309:
8749         * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the
8750         same way as TYPE_IMUL.
8751         (ultrasparc_sched_reorder): Likewise.
8752         * config/sparc/sparc.md (type): Add comment to update
8753         ultrasparc_sched_reorder when making changes.
8754
8755 2002-01-16  Kazu Hirata  <kazu@hxi.com>
8756
8757         * doc/invoke.texi: Change the dump file name of block
8758         reordering pass from 28.bbro to 29.bbro.
8759         Mention -dk option.
8760
8761 Wed Jan 16 17:54:22 CET 2002  Jan Hubicka  <jh@suse.cz>
8762
8763         * i386.md (minsf splitter): Fix pasto.
8764
8765 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
8766
8767         * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note
8768         to frame pointer initialisation instruction.
8769         (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer
8770         initialisation instruction.
8771         (soft_df_operand): Do not accept the IP register.
8772         (nonimmediate_soft_df_operand): Do not accept the IP register.
8773
8774 2002-01-16  Jakub Jelinek  <jakub@redhat.com>
8775
8776         PR target/5357:
8777         * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and
8778         MASK_V8 being both set.
8779
8780 2002-01-16  Ulrich Weigand  <uweigand@de.ibm.com>
8781
8782         * config/s390/s390.c (s390_emit_prologue): Do not emit USE
8783         insn for GOT register; add REG_MAYBE_DEAD notes instead.
8784         config/s390/s390.md (call, call_value): Add GOT register to
8785         CALL_INSN_FUNCTION_USAGE where needed.
8786         (call_exp, call_value_exp): New.
8787
8788 2002-01-16  Nick Clifton  <nickc@cambridge.redhat.com>
8789
8790         * config/arm/arm.c: General formatting tidy up.
8791
8792 2002-01-16  Graham Stott  <grahams@redhat.com>
8793
8794         * calls.c (try_to_integrate): Use "(size_t)" intermediate
8795         cast and when casting an integer literal to "rtx" pointer.
8796         (expand_call): Likewise.
8797         * flow.c (try_pre_increment): Likewise.
8798         (find_use_as_address): Likewise.
8799         * integrate.c (expand_iline_function): Likewise.
8800         * regmove.c (try_auto_increment): Likewise.
8801
8802 2002-01-16  Graham Stott  <grahams@redhat.com>
8803
8804         * sched-rgn.c (passed): Use sbitmap_free.
8805         (header): Likewise.
8806         (inner): Likewise.
8807         (in_queue): Likewise.
8808         (in_stack): Likewise.
8809
8810 2002-01-15  Eric Christopher  <echristo@redhat.com>
8811
8812         * flow.c (propagate_one_insn): Change to use fatal_insn.
8813
8814 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8815
8816         * expmed.c (extract_fixed_bit_field): Remove unused code.
8817         * system.h: Poison SLOW_ZERO_EXTEND.
8818         * doc/tm.texi: Remove.
8819         * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove.
8820         * config/arm/arm.h: Likewise.
8821         * config/avr/avr.h: Likewise.
8822         * config/clipper/clipper.h: Likewise.
8823         * config/convex/convex.h: Likewise.
8824         * config/d30v/d30v.h: Likewise.
8825         * config/dsp16xx/dsp16xx.h: Likewise.
8826         * config/elxsi/elxsi.h: Likewise.
8827         * config/fr30/fr30.h: Likewise.
8828         * config/h8300/h8300.h: Likewise.
8829         * config/i370/i370.h: Likewise.
8830         * config/i386/i386.h: Likewise.
8831         * config/m68k/m68k.h: Likewise.
8832         * config/mips/mips.h: Likewise.
8833         * config/ns32k/ns32k.h: Likewise.
8834         * config/pdp11/pdp11.h: Likewise.
8835         * config/pj/pj.h: Likewise.
8836         * config/s390/s390.h: Likewise.
8837         * config/sh/sh.h: Likewise.
8838         * config/stormy16/stormy16.h: Likewise.
8839         * config/v850/v850.h: Likewise.
8840         * config/vax/vax.h: Likewise.
8841         * config/we32k/we32k.h: Likewise.
8842
8843 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
8844
8845         * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx.
8846         (altivec_lvsl): Change constraint to b.
8847         (altivec_lvsr): Same.
8848         (altivec_lvebx): Same.
8849         (altivec_lvehx): Same.
8850         (altivec_lvewx): Same.
8851         (altivec_lvxl): Same.
8852         (altivec_lvx): Same.
8853         (altivec_stvx): Add parallel.
8854         (altivec_stvxl): Same.
8855         (altivec_stvehx): Same.
8856         (altivec_stvebx): Same.
8857         (altivec_stvebx): Same.
8858
8859 2002-01-15  Aldy Hernandez  <aldyh@redhat.com>
8860
8861         * config.gcc: Change altivec.h to altivec-defs.h.
8862
8863         * config/rs6000/altivec.h: Delete.
8864
8865         * config/rs6000/altivec-defs.h: Add.
8866
8867 2002-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8868
8869         * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV
8870         and UMOD modes.
8871
8872         * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size
8873         less than or equal to eight bytes.
8874
8875         * vax.md (andsi3): Remove constraints and change SET destination
8876         operand type to nonimmediate_operand.
8877         (andhi3, andqi3): Likewise.  Don't clear high order bits of operand 1
8878         when it is a CONST_INT.
8879
8880 2002-01-15  Jason Merrill  <jason@redhat.com>
8881
8882         * c-common.def (FILE_STMT): New code.
8883         * c-common.c (statement_code_p): It's a statement.
8884         * c-common.h (stmt_tree_s): Add x_last_filename.
8885         (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros.
8886         (last_expr_filename): New macro.
8887         * c-semantics.c (begin_stmt_tree): Initialize it.
8888         (add_stmt): If the filename changed, also insert a
8889         FILE_STMT.
8890         (expand_stmt): Handle seeing one.
8891
8892 2002-01-15  Eric Christopher  <echristo@redhat.com>
8893
8894         * flow.c (propagate_one_insn): Add error message and print out
8895         insn for debugging.
8896
8897 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8898
8899         * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN,
8900         ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison.
8901         * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to
8902         TRAMPOLINE_ALIGNMENT.
8903         * config/arm/arm.h, config/mcore/mcore.h: Likewise.  Change value
8904         to be in bits.
8905         * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to
8906         PCC_BITFIELD_TYPE_MATTERS.
8907         * config/interix.h (STDC_VALUE): Remove.  Use
8908         STDC_0_IN_SYSTEM_HEADERS.
8909         * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h
8910         (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC,
8911         ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove.
8912
8913 2002-01-15  Craig Rodrigues  <rodrigc@gcc.gnu.org>
8914
8915         * doc/install.texi (hppa*-hp-hpux11): --enable-threads does
8916         not work on this platform currently.
8917
8918 2002-01-15  Joseph S. Myers  <jsm28@cam.ac.uk>
8919
8920         * c-typeck.c (build_unary_op): Don't wrap msgid argument of
8921         readonly_warning in _().
8922
8923 2002-01-15  Douglas B Rupp  <rupp@gnat.com>
8924
8925         * gcc.c (delete_if_ordinary): Backout previous change.
8926
8927 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8928
8929         * config/h8300/h8300.c (print_operand): Remove support for
8930         unused operand characters.
8931
8932         * read-rtl.c: Fix formatting.
8933         * real.c: Likewise.
8934         * recog.c: Likewise.
8935         * regclass.c: Likewise.
8936         * regmove.c: Likewise.
8937         * reg-stack.c: Likewise.
8938         * reload1.c: Likewise.
8939         * rtlanal.c: Likewise.
8940
8941 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8942
8943         * config/i386/i386.c: Fix formatting.
8944
8945 2002-01-15  Jakub Jelinek  <jakub@redhat.com>
8946
8947         * c-typeck.c (process_init_element): Don't save_expr
8948         COMPOUND_LITERAL_EXPR if just its initializer will be used.
8949
8950 2002-01-15  David Edelsohn  <edelsohn@gnu.org>
8951
8952         * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not
8953         emit optional traceback table if optimize_size or TARGET_ELF.
8954         * config/rs6000/rs6000.md (prefetch): New.
8955
8956 2002-01-15  Andreas Jaeger  <aj@suse.de>
8957
8958         * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h.
8959
8960 2002-01-15  Kazu Hirata  <kazu@hxi.com>
8961
8962         * mips-tfile.c: Fix formatting.
8963
8964 Tue Jan 15 00:56:11 CET 2002  Jan Hubicka  <jh@suse.cz>
8965
8966         * unroll.c (final_reg_note_copy): Fix previous commit.
8967
8968 2002-01-14  Kazu Hirata  <kazu@hxi.com>
8969
8970         * config/h8300/h8300-protos.h: Remove the prototype for
8971         eq_operator.
8972         * config/h8300/h8300.c (eq_operator): Remove.
8973
8974 2002-01-14  Richard Henderson  <rth@redhat.com>
8975
8976         * config/i386/i386.md (prefetch): Tidy.
8977         (prefetch_3dnow): Fix locality operand.
8978
8979 2002-01-14  Richard Henderson  <rth@redhat.com>
8980
8981         * config/mips/mips.h (HI_AND_FP_REGS): New register class.
8982         (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode.
8983
8984 2002-01-14  Hans-Peter Nilsson  <hp@bitrange.com>
8985
8986         * reload1.c (reload_combine): Pass reg_sum replacement through
8987         copy_rtx in loop performing multiple changes.
8988
8989 2002-01-14  Jakub Jelinek  <jakub@redhat.com>
8990
8991         * except.c (remove_unreachable_regions): New.
8992         (free_eh_status): Clear exception_handler_labels.
8993         (convert_from_eh_region_ranges): Call remove_unreachable_regions.
8994         (find_exception_handler_labels): Don't add the same label more than
8995         once.
8996         (remove_exception_handler_label): Don't die if
8997         find_exception_handler_labels hasn't been called for the current
8998         function yet.
8999
9000 Mon Jan 14 21:26:13 CET 2002  Jan Hubicka  <jh@suse.cz>
9001
9002         * toplev.c (rest_of_compilation): Rebuild jump labels after
9003         gcse.
9004
9005 2002-01-14  Joseph S. Myers  <jsm28@cam.ac.uk>
9006
9007         * doc/extend.texi: Move documentation of X86 built-in functions
9008         here.
9009         * doc/invoke.texi: From here.
9010         * doc/sourcebuild.texi: Document location of documentation for
9011         machine built-in functions.
9012
9013 2002-01-13  Christopher Faylor  <cgf@redhat.com>
9014
9015         * cppfiles.c (TEST_THRESHOLD): New macro.
9016         (SHOULD_MMAP): Ditto.
9017         (read_include_file): Use SHOULD_MMAP macro to decide when mmap should
9018         be used.
9019
9020 Mon Jan 14 20:23:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9021
9022         * unroll.c (final_reg_note_copy): Properly handle
9023         REG_LABEL
9024         (unroll_loops): Fix LOOP_CONDITION heuristics.
9025
9026 2002-01-14  Geoffrey Keating  <geoffk@redhat.com>
9027
9028         * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option.
9029         * doc/md.texi (Machine Constraints): Use @minus{} where appropriate.
9030
9031 Mon Jan 14 20:18:19 CET 2002  Jan Hubicka  <jh@suse.cz>
9032
9033         * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite
9034         threaded loop.
9035
9036 2002-01-14  Tom Rix  <trix@redhat.com>
9037
9038         * config/rs6000/rs6000.md: Fix typo with sradi.
9039
9040 2002-01-14  Ulrich Weigand  <uweigand@de.ibm.com>
9041
9042         * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64,
9043         movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates.
9044         (clrstrdi, clrstrsi): Adapt callers.
9045
9046         (extendsidi2, zero_extendsidi2): Remove no-conflict blocks.
9047
9048         (movti splitter): Never use register 0 as base register.
9049
9050 2002-01-14  Hartmut Penner  <hpenner@de.ibm.com>
9051
9052         * combine.c (simplify_shift_const): Always generate new rtx
9053         for shift expression instead of reusing given expression.
9054
9055 Mon Jan 14 07:08:55 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9056
9057         * config/alpha/alpha.c (alpha_expand_mov): Don't call
9058         alpha_legitimize_address unless mode is Pmode.
9059
9060 2002-01-13  Geoffrey Keating  <geoffk@redhat.com>
9061
9062         * doc/md.texi (Modifiers): Document the '*' constraint for the
9063         user.
9064
9065         * doc/md.texi (Machine Constraints): Add constraints for xstormy16.
9066         * doc/extend.texi (Function Attributes): 'interrupt' is valid
9067         for xstormy16 too.
9068
9069 2002-01-13  Richard Henderson  <rth@redhat.com>
9070
9071         * reload.c (find_reloads): Use a hard reg destination as reload reg
9072         for an input reload of the source.
9073
9074 2002-01-13  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9075
9076         * doc/install.texi (Binaries): Make link to ftp.writtenword.com
9077         more generic.
9078
9079 Sun Jan 13 07:23:01 2002  Douglas B Rupp  <rupp@gnat.com>
9080
9081         * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9082         * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2.
9083
9084         * config/alpha/x-vms (USE_COLLECT2): Set to empty.
9085
9086 Sun Jan 13 06:55:31 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9087
9088         * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case.
9089
9090 2002-01-12  Tom Rix  <trix@redhat.com>
9091
9092         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for
9093         TARGET_POWERPC64.
9094
9095 2002-01-12  Richard Henderson  <rth@redhat.com>
9096
9097         * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A.
9098
9099         * doc/invoke.texi: Update Alpha options.
9100
9101         * doc/invoke.texi: Update i386 built-in function lists.
9102
9103 Sat Jan 12 17:38:11 CET 2002  Jan Hubicka  <jh@suse.cz>
9104
9105         * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note
9106         referencing outside.
9107
9108 Sat Jan 12 08:54:51 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9109
9110         * diagnostic.c (warn_deprecated_use): Rework to lower indentation.
9111         * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for
9112         offsets, and change line folding.
9113         * optabs.c (expand_binop): Remove warnings.
9114         * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning.
9115
9116 2002-01-12  Graham Stott <grahams@redhat.com>
9117
9118         * attribs.c (handle_deprecated_attribute): constify WHAT.
9119         * diagnostic.c (warn_deprecated_use): Add braces, fixes
9120         dangling else warning and constify WHAT.
9121         * except.h (struct function, struct inline_remap): Move
9122         struct tag forward defs before all prototypes.
9123         (duplicate_eh_regions): Whitespace.
9124
9125 2002-01-12  Nick Clifton  <nickc@cambridge.redhat.com>
9126
9127         * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use
9128         MODE_BASE_REG_CLASS.
9129         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS.
9130
9131 2002-01-12  Richard Henderson  <rth@redhat.com>
9132
9133         * config/i386/i386.c (override_options): If SSE, enable sse prefetch.
9134         (ix86_expand_vector_move): New.
9135         (bdesc_2arg): Remove andps, andnps, orps, xorps.
9136         (ix86_init_mmx_sse_builtins): Make static.  Remove composite builtins.
9137         Remove old prefetch builtins.  Special case the logicals removed above.
9138         (ix86_expand_builtin): Likewise.
9139         (safe_vector_operand): Use V4SFmode, not TImode.
9140         (ix86_expand_store_builtin): Remove shuffle arg.  Update callers.
9141         (ix86_expand_timode_binop_builtin): New.
9142         * config/i386/i386-protos.h: Update.
9143         * config/i386/i386.h (enum ix86_builtins): Update.
9144         * config/i386/i386.md: Correct predicates on MMX/SSE patterns.
9145         Use ix86_expand_vector_move in vector move expanders.
9146         (movti_internal, movti_rex64): Add xorps alternative.
9147         (sse_clrv4sf): Rename and adjust from sse_clrti.
9148         (prefetch): Don't work so hard.
9149         (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC.
9150         * config/i386/xmmintrin.h (__m128): Use V4SFmode.
9151         (_mm_getcsr, _mm_setcsr): Fix typo in builtin name.
9152
9153 2002-01-11  Richard Henderson  <rth@redhat.com>
9154
9155         * config/i386/mmintrin.h: New file.
9156         * config/i386/xmmintrin.h: New file.
9157         * config.gcc (i?86-*-*): Add extra_headers.
9158         * simplify-rtx.c (simplify_unary_operation): Handle saturating
9159         truncation codes.
9160         (simplify_binary_operation): Handle saturating arithmetic codes.
9161         * config/i386/i386.c (ix86_expand_sse_comi): Return the full result,
9162         not the lowpart subreg.
9163         (ix86_expand_builtin): Return a TImode dummy register instead of 0
9164         on error.
9165         * config/i386/i386.md (mmx_clrdi): Override memory attribute.
9166
9167 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9168
9169         * conflict.c (conflict_graph_compute): Free regsets when finished.
9170         * ssa.c (compute_coalesced_reg_partition): Likewise.
9171
9172 2002-01-12  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9173
9174         * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED
9175         every where we allocate a register.
9176
9177 2002-01-12  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9178
9179         * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free.
9180         * lcm.c (compute_earliest, compute_farthest): Likewise.
9181
9182 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9183
9184         * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET.
9185
9186 2002-01-11  Janis Johnson  <janis187@us.ibm.com>
9187
9188         * doc/rtl.texi (Insns): Fix 2 typos.
9189
9190 2002-01-11  Joseph S. Myers  <jsm28@cam.ac.uk>
9191
9192         * doc/invoke.texi: Avoid overfull hboxes.  Add summary of D30V
9193         options.  Use @table @gcctabopt for MMIX options.  Add index
9194         entries for MMIX options.  Start new paragraph with first
9195         heading of the machine-dependent options.
9196
9197 2002-01-11  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9198
9199         PR other/5299
9200         * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments.
9201         * combine.c (force_to_mode): Same.
9202         * reload1.c (clear_reload_reg_in_use): Same.
9203
9204 2002-01-11  Nick Clifton  <nickc@cambridge.redhat.com>
9205
9206         * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder'
9207         and 'subtargets'.
9208
9209 2002-01-11  Andreas Jaeger  <aj@suse.de>,
9210             Brad Lucier <lucier@math.purdue.edu>
9211
9212         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong
9213         mcpu.
9214
9215 Fri Jan 11 07:35:12 2002  Douglas B Rupp  <rupp@gnat.com>
9216
9217         * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors.
9218         Protect with IN_LIBGCC.
9219         (LINK_EH_SPEC): Add required trailing space.
9220
9221 Fri Jan 11 09:25:05 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9222
9223         * c-tree.h: Move function declarations so that they are listed
9224         under the filename which contains them.
9225         (check_identifier, finish_decl_top_level,
9226         lookup_name_current_level_global, shadow_record_fields): Remove.
9227
9228 2002-01-11  Andreas Jaeger  <aj@suse.de>
9229
9230         * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated
9231         march.
9232
9233 2002-01-10  Richard Henderson  <rth@redhat.com>
9234
9235         * config/alpha/alpha.c (print_operand): Add 'J'.
9236         * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a
9237         new operand with the sequence number for the lituse.  When splitting
9238         the insns, use gen_movdi_er_high_g and generate a sequence number.
9239         (gen_movdi_er_high_g): Print the sequence number if non-zero.
9240
9241 2002-01-10  Aldy Hernandez  <aldyh@redhat.com>
9242
9243         * config/rs6000/rs6000.c (altivec_init_builtins): Add support for
9244         lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx,
9245         stvxl.
9246         (altivec_expand_builtin): Same.
9247         (altivec_expand_stv_builtin): New.
9248
9249         * config/rs6000/rs6000.h (rs6000_builtins): Same.
9250
9251         * config/rs6000/rs6000.md ("altivec_lvebx"): New.
9252         ("altivec_lvehx"): New.
9253         ("altivec_lvewx"): New.
9254         ("altivec_lvxl"): New.
9255         ("altivec_lvx"): New.
9256         ("altivec_stvx"): New.
9257         ("altivec_stvebx"): New.
9258         ("altivec_stvehx"): New.
9259         ("altivec_stvewx"): New.
9260         ("altivec_stvxl"): New.
9261
9262 2002-01-10  Richard Henderson  <rth@redhat.com>
9263
9264         * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
9265         * reload1.c (delete_output_reload): Zap spill_reg_store.  Take
9266         care not to delete instructions twice.
9267
9268 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9269
9270         * toplev.c: Don't declare environ (it's not used anywhere).
9271         * configure.in: Don't check for declaration of environ.
9272         * config/i386/xm-mingw32.h: Don't #define environ.
9273         * config.in, configure: Regenerate.
9274
9275 2002-01-10  Zack Weinberg  <zack@codesourcery.com>
9276
9277         * configure.in: Set stage1_cflags for powerpc-*-darwin*.
9278         * configure: Regenerate.
9279
9280         * config/interix.h: Set DO_GLOBAL_CTORS_BODY and
9281         DO_GLOBAL_DTORS_BODY here, not in xm-interix.h.
9282         * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in
9283         alpha/xm-vms.h.
9284         * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and
9285         LIMITS_H_TEST here, not in m68k/x-next.
9286         * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and
9287         SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h.
9288
9289         * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL,
9290         LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR.
9291         * config/alpha/x-vms: Don't set USE_COLLECT2.  Add comments.
9292
9293         * config/i386/x-djgpp: Renamed i386/t-djgpp.
9294         * config/m88k/x-dolph: Renamed m88k/t-dolph.
9295         * config/m88k/x-texXD88: Renamed m88k/t-texXD88.
9296         * config/pa/x-pa-mpeix: Renamed pa/t-mpeix.  Update for
9297         replacement of quadlib.asm with quadlib.c.
9298
9299         * config/x-interix3, config/xm-interix.h, config/i386/x-beos,
9300         config/i386/xm-osf1elf.h, config/rs6000/x-darwin,
9301         config/rs6000/xm-beos.h: Delete file.
9302
9303         * config.gcc: Update to match above changes.
9304
9305 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9306
9307         * config/h8300/h8300.h: Fix comment typos.
9308         * config/h8300/h8300.md: Likewise.
9309         * config/h8300/lib1funcs.asm: Likewise.
9310
9311 2002-01-10  Dale Johannesen  <dalej@apple.com>
9312
9313         PR optimization/5269
9314         * unroll.c (precondition_loop_p): Make *increment be the correct
9315         sign when n_iterations known, to avoid confusing caller.
9316
9317 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9318
9319         * doc/extend.texi (deprecated): Fix a typo.
9320
9321 Thu Jan 10 22:35:54 CET 2002  Jan Hubicka  <jh@suse.cz>
9322
9323         * basic-block.h (update_br_prob_note): Declare.
9324         * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note.
9325         (try_forward_edges): Care negative frequencies and update note.
9326         (outgoing_edges_match): Tweek conditional merging heuristics.
9327         (try_crossjump_to_edge): use update_br_prob_note.
9328         * cfglayout.c (fixup_reorder_chain): Likewise.
9329         * cfrtl.c (update_br_prob_note): New.
9330         * ifcvt.c (dead_or_predicable): Call update_br_prob_note.
9331
9332         * i386.c (ix86_decompose_address): Return -1 if address contains
9333         shift.
9334         (legitimate_address_p): Require ix86_decompose_address to return 1.
9335
9336         * gcse.c (hash_scan_set): Use CONSTANT_INSN_P.
9337         (cprop_insn): Likewise.
9338
9339 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9340
9341         * toplev.c: Fix formatting.
9342         * tree.c: Likewise.
9343         * tree-dump.c: Likewise.
9344         * unroll.c: Likewise.
9345         * unwind-dw2.c: Likewise.
9346         * unwind-dw2-fde.c: Likewise.
9347         * unwind-dw2-fde-glibc.c: Likewise.
9348         * unwind-sjlj.c: Likewise.
9349
9350 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9351
9352         * doc/invoke.texi: Document PDP-11 options.
9353
9354 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9355
9356         * config/h8300/h8300.h: Fix formatting.
9357
9358 2002-01-10  Ira Ruben   <ira@apple.com>
9359
9360         Add __attribute__ ((deprecated)).
9361         * extend.texi: Document __attribute__ ((deprecated)).
9362         * invoke.texi: Document -Wno-deprecated-declarations.
9363         * testsuite/g++.dg/other/deprecated.C: New C++ test.
9364         * testsuite/gcc.dg/deprecated.c: New C test.
9365         * attribs.c (enum attrs): Declare handle_deprecated_attribute().
9366         (c_common_attribute_table): Add "deprecated" entry.
9367         (handle_deprecated_attribute): New function.
9368         * c-decl.c (deprecated_states): New enum.
9369         deprecated_state: State of "deprecated" handling.
9370         (start_decl): Set deprecated_state based on attributes.
9371         (grokdeclarator): Test for deprecated uses, propagate attribute.
9372         * c-typeck.c (build_component_ref): Test for deprecated fields.
9373         (build_external_ref): Test for deprecated primaries.
9374         * diagnostic.c (warn_deprecated_use) New function to issue
9375         warnings about __attribute__ ((depricated)) references.
9376         * flags.h (warn_deprecated_decl): Extern declared for
9377         -W[no-]deprecated-declarations option.
9378         * print-tree.c (print_node): Show deprecated flag status.
9379         * toplev.c (warn_deprecated_decl): Defined.
9380         (W_options): Added "deprecated-declaration".
9381         * toplev.h (warn_deprecated_use): Extern declared.
9382         * tree.h (struct tree_common): Define deprecated_flag.
9383         (TREE_DEPRECATED): New macro to access flag.
9384         * cp/call.c (build_call): Test for deprecated calls.
9385         * cp/class.c (add_implicitly_declared_members): Set global
9386         flag to tell grokdeclarator to not issue deprecated warnings.
9387         * cp/cp-tree.h: Add extern for adding_implicit_members.
9388         * cp/decl.c (deprecated_states): New enum.
9389         (start_decl): Set deprecated_state based on attributes.
9390         (grokdeclarator): Test for deprecated uses, propagate attribute.
9391         * cp/lex.c (do_identifier): Test for deprecated primaries.
9392         * cp/typeck.c (build_component_ref): Test for deprecated fields.
9393
9394 2002-01-10  Ira Ruben   <ira@apple.com>
9395
9396         Fix to assign attributes to inline member functions.
9397         * cp/decl.c (start_method): Handle attrlist.
9398
9399 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9400
9401         * combine.c (expand_field_assignment): Use subreg_lsb().
9402
9403 2002-01-10  David Edelsohn  <edelsohn@gnu.org>
9404
9405         * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC,
9406         POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY.
9407         (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY.
9408         Recurse for any operand of AND as long as constant is non-zero.
9409
9410 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9411
9412         * config/h8300/h8300.md: Remove constraints from expanders.
9413
9414 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9415
9416         * varasm.c: Fix formatting.
9417         * varray.c: Likewise.
9418         * vmsdbgout.c: Likewise.
9419         * xcoffout.c: Likewise.
9420
9421 Thu Jan 10 17:19:12 CET 2002  Jan Hubicka  <jh@suse.cz>
9422
9423         * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges;
9424         update edge probabilities to match.
9425
9426 2002-01-10  Joseph S. Myers  <jsm28@cam.ac.uk>
9427
9428         * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional
9429         dependencies.
9430         * doc/languages.texi, doc/sourcebuild.texi: New files.
9431         * doc/configfiles.texi: Make a subsubsection.  Update.
9432         * doc/configterms.texi: Add @node.  Remove warning that this isn't
9433         instructions for building GCC.
9434         * doc/makefile.texi: Make a subsection.
9435         * doc/gccint.texi: Update.
9436
9437 Thu Jan 10 16:39:58 CET 2002  Jan Hubicka  <jh@suse.cz>
9438
9439         * i386.md (sse_mov?fcc_const0_?): Fix constraints.
9440
9441 Thu Jan 10 12:45:50 2002  Nicola Pero  <n.pero@mi.flashnet.it>
9442
9443         * doc/cpp.texi: Document the __OBJC__ preprocessor macro.
9444
9445 Thu Jan 10 11:19:18 CET 2002  Jan Hubicka  <jh@suse.cz>
9446
9447         * optabs.c (expand_fix): Look for wider integer modes first.
9448
9449         * i386.md (mov?f): Avoid the fake const double trick for medium
9450         memory model.
9451         (min?f*/max?f*): Prohibit memory operands for i387 variant.
9452         (fop_df_4): Disable for SSE compilation.
9453
9454 2002-01-10  Graham Stott  <grahams@redhat.com>
9455
9456         * dwarf2out.c (indirect_string_alloc, output_indirect_string):
9457         Move prototype into DWARF2_DEBUGGING_INFO conditional block.
9458
9459 2002-01-10  Richard Henderson  <rth@redhat.com>
9460
9461         * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative.
9462
9463 2002-01-10  Richard Henderson  <rth@redhat.com>
9464
9465         * regrename.c (find_oldest_value_reg): Fix typo in mode change check.
9466         (copyprop_hardreg_forward_1): Likewise.  Use mode_change_ok.
9467
9468 2002-01-10  Kazu Hirata  <kazu@hxi.com>
9469
9470         * combine.c (can_combine_p): Fix a comment typo.
9471
9472 2002-01-09  Zack Weinberg  <zack@codesourcery.com>
9473
9474         * Makefile.in (s-gencheck, s-options, s-specs): Handle an
9475         empty list correctly.  Change loop index $t to $f for
9476         consistency with rest of Makefile.
9477
9478 2002-01-08  Aldy Hernandez  <aldyh@redhat.com>
9479
9480         * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall,
9481         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9482
9483         * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for
9484         mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt.
9485         (altivec_init_builtins): Same.
9486         (altivec_expand_unop_builtin): Return NULL_RTX on error.
9487         (altivec_expand_binop_builtin): Same.
9488         (altivec_expand_ternop_builtin): Same.
9489         (bdesc_dst): New.
9490
9491         * config/rs6000/rs6000.md ("altivec_mtvscr"): New.
9492         ("altivec_vctuxs"): Fix typo.
9493         ("altivec_vnmsubfp"): Same.
9494         ("altivec_dssall"): New.
9495         ("altivec_mfvscr"): New.
9496         ("altivec_dss"): New.
9497         ("altivec_lvsl"): New.
9498         ("altivec_lvsr"): New.
9499         ("altivec_dstt"): New.
9500         ("altivec_dstst"): New.
9501         ("altivec_dststt"): New.
9502         ("altivec_dst"): New.
9503
9504         * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall,
9505         mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst.
9506
9507 2002-01-09  Richard Henderson  <rth@redhat.com>
9508
9509         * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc.
9510
9511 2002-01-10  Hans-Peter Nilsson  <hp@bitrange.com>
9512
9513         * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused
9514         function.
9515         * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't
9516         prototype.
9517         * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro.
9518
9519 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9520
9521         * read-rtl.c: Fix formatting.
9522         * real.c: Likewise.
9523         * regclass.c: Likewise.
9524         * regrename.c: Likewise.
9525         * reg-stack.c: Likewise.
9526         * reload1.c: Likewise.
9527         * reload.c: Likewise.
9528         * rtl.c: Likewise.
9529
9530 2002-01-09  Kazu Hirata  <kazu@hxi.com>
9531
9532         * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST
9533         to extract items in the expr_list chain.
9534
9535 2002-01-09  Richard Henderson  <rth@redhat.com>
9536
9537         * config/vax/vax.c (vax_rtx_cost): Never abort.
9538
9539         * config/vax/vax.h (REAL_ARITHMETIC): Define.
9540
9541 2002-01-09  Jan Hubicka  <jh@suse.cz>
9542
9543         * gcse.c (cprop_jump): Delete insn if simplified jump is no-op.
9544
9545 2002-01-09  Richard Henderson  <rth@redhat.com>
9546
9547         * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode.
9548         Unify code from various alternatives.
9549
9550 2002-01-09  Richard Henderson  <rth@redhat.com>
9551
9552         * regrename.c (copy_value): Ignore the copy if the source register
9553         is present in the value chain with a narrower mode.
9554
9555 2002-01-09  Herman A.J. ten Brugge  <Haj.Ten.Brugge@net.HCC.nl>
9556
9557         * real.c (c4xtoe, toc4x): Do some special conversion on long doubles
9558         for the c4x target. Also improve layout.
9559
9560 2002-01-09  Richard Henderson  <rth@redhat.com>
9561
9562         * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test.
9563         * config/m32r/m32r.md (and ior xor splitters): Swap operands
9564         to match insn patterns.
9565
9566 2002-01-09  Richard Henderson  <rth@redhat.com>
9567
9568         * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG.
9569         (copyprop_hardreg_forward_1): Likewise.
9570
9571 2002-01-09  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9572
9573         * pa.md (decrement_and_branch_until_zero): Change predicate for
9574         operand 0 from register_operand to reg_or_nonsymb_mem_operand.
9575
9576 2002-01-09  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
9577
9578         * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_
9579         gets undefined. For Darwin.
9580
9581 2002-01-09  Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
9582
9583         * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing.
9584
9585 2002-01-09  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9586
9587         * config/c4x/c4x/md: Remove extraneous constraints from define_splits.
9588
9589 2002-01-08  Richard Henderson  <rth@redhat.com>
9590
9591         * regrename.c (copy_value): Ignore overlapping copies.
9592
9593 2002-01-08  Richard Henderson  <rth@redhat.com>
9594
9595         * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx
9596         as needed to avoid shared structure.
9597
9598 2002-01-08  Kazu Hirata  <kazu@hxi.com>
9599
9600         * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on
9601         H8/300H and H8/S.
9602
9603 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9604
9605         * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR,
9606         LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove
9607         documentation of obsolete macros.
9608         * system.h: Poison these macros.
9609         * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h,
9610         config/arc/arc.h, config/arm/arm.h, config/avr/avr.h,
9611         config/c4x/c4x.h, config/clipper/clipper.h,
9612         config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h,
9613         config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h,
9614         config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h,
9615         config/i386/i386.h, config/i860/i860.h, config/i960/i960.h,
9616         config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
9617         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
9618         config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h,
9619         config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h,
9620         config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h,
9621         config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.h,
9622         config/sparc/sparc.h, config/stormy16/stormy16.h,
9623         config/v850/v850.h, config/vax/vax.h, config/we32k/we32k.h: Remove
9624         definitions and commented out definitions of obsolete macros.
9625         * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms
9626         of MAX_INT_TYPE_SIZE.
9627
9628 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9629
9630         * config/s390/s390.c (s390_preferred_reload_class): Never
9631         return ADDR_REGS if it isn't a subset of the given class.
9632         * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just
9633         FP_REGS, but all superclasses as well.
9634
9635         * config/s390/s390.c (s390_function_profiler): Fix thinko.
9636
9637         * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem,
9638         cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare
9639         must not be a const_int.
9640
9641 2002-01-08  Richard Henderson  <rth@redhat.com>
9642
9643         * Makefile.in (toplev.o): Depend on options.h.
9644         (gcc.o): Depend on specs.h.
9645
9646 2002-01-08  Jakub Jelinek  <jakub@redhat.com>
9647
9648         * expr.c (store_expr): Convert VOIDmode constants back to target's
9649         mode.
9650
9651 2002-01-08  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9652
9653         * doc/invoke.texi: Markup gcc as @command.  Refer to
9654         http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead
9655         of http://gcc.gnu.org/thanks.html.
9656
9657 2002-01-08  Dale Johannesen  <dalej@apple.com>
9658
9659         * config/rs6000/rs6000.md: Add missing int register
9660         target case to movdf_low.
9661
9662 2002-01-08  Zack Weinberg  <zack@codesourcery.com>
9663
9664         * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or
9665         except.h.  Remove commands to define USING_SJLJ_EXCEPTIONS.
9666         (cppinit.o): Depend on except.h.
9667         (gencheck.h, options.h, specs.h, s-gencheck, s-options,
9668         s-specs): New rules.
9669
9670         * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION.
9671         Don't create specs.h/options.h/gencheck.h here.  Remove
9672         unnecessary variable settings from last argument of AC_OUTPUT.
9673         * config.in, configure: Regenerate.
9674         * intl.c: Hardcode package name as "gcc".
9675
9676         * cppinit.c: Include except.h.
9677         (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when
9678         appropriate.
9679         * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c:
9680         Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if
9681         (!)USING_SJLJ_EXCEPTIONS.
9682         * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__.
9683
9684 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9685
9686         * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END,
9687         ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP,
9688         OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove
9689         documentation of obsolete macros.
9690         * system.h: Poison these macros.
9691         * config/d30v/d30v.h, config/ns32k/encore.h,
9692         config/stormy16/stormy16.h: Remove definitions and commented out
9693         definitions of obsolete macros.
9694
9695 Tue Jan  8 15:56:41 2002  Nicola Pero  <nicola@brainstorm.co.uk>
9696
9697         * objc/objc-act.c (handle_class_ref): Mark the declaration of
9698         %sobjc_class_ref_%s as used - to prevent unwanted compiler
9699         warnings.
9700
9701 2002-01-08  Ulrich Weigand  <uweigand@de.ibm.com>
9702
9703         * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove.
9704         * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR
9705         to insn adjusting stack/frame pointer.
9706         * config/s390/s390.md (reload_la_64, reload_la_31): Do not
9707         accept operands that cause the insn to be non-splittable.
9708
9709 2002-01-08  Graham Stott  <grahams@redhat.com>
9710
9711         * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter.
9712         (C_TYPE_FIELDS_VOLATILE): Likewise.
9713         (C_TYPE_BEING_DEFINED): Likewise.
9714         (C_IS_RESERVED_WORD): Likewise.
9715         (C_TYPE_VARIABLE_SIZE): Likewise.
9716         (C_DECL_VARIABLE_SIZE): Likewise.
9717         (C_MISSING_PROTOTYPE_WARNED): Likewise.
9718         (C_SET_EXP_ORIGINAL_CODE): Likewise.
9719         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove
9720         parenthesis.
9721         (C_DECL_ANTICIPATED): Likewise.
9722         (c_build_type_variant): Add parenthesis.
9723
9724 2002-01-08  Joseph S. Myers  <jsm28@cam.ac.uk>
9725
9726         * gcc.c (option_map): Remove --version.
9727         (process_command): Handle -fversion following the GNU Coding
9728         Standards.  Partially addresses PR other/704.
9729
9730 2002-01-08  Graham Stott  <grahams@redhat.com>
9731
9732         * combine.c (combine_instructions): Fix typo.
9733
9734 2002-01-08  Graham Stott  <grahams@redhat.com>
9735
9736         * debug.h: Use "tree" and "rtx" throughout.
9737
9738         * debug.c: Likewise.
9739
9740 2002-01-08  Nick Clifton  <nickc@cambridge.redhat.com>
9741
9742         * dbxout.c (dbxout_symbol_location): If a symbol ref is in the
9743         constant pool, use the pool's version of the symbol instead.
9744
9745 2002-01-07  Richard Henderson  <rth@redhat.com>
9746
9747         * regrename.c (find_oldest_value_reg): Ignore the value chain if
9748         the original register was copied in a mode with a fewer number of
9749         hard registers than the desired mode.
9750         (copyprop_hardreg_forward_1): Likewise.
9751         (debug_value_data): Fix loop test.
9752         * toplev.c (parse_options_and_default_flags): Reenable
9753         -fcprop-registers at -O1.
9754
9755 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9756
9757         * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates.
9758         (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi.
9759
9760         * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec
9761         predicates.
9762
9763         * config/rs6000/rs6000.md: Add altivec predicate patterns.
9764
9765 2002-01-07  John David Anglin  <dave@hiauly1.hia.nrc.ca>
9766
9767         * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define.
9768         (pa_output_function_prologue): Output local label at the beginning of
9769         the prologue when profiling.
9770         (hppa_profile_hook): Use the local label rather than the function label.
9771         * pa.h (PROFILE_BEFORE_PROLOGUE): Define.
9772
9773 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9774
9775         * config/rs6000/rs6000.c (print_operand): Remove extra space.
9776         (altivec_expand_unop_builtin): Fix thinko.
9777         (altivec_expand_binop_builtin): Same.
9778         (altivec_expand_ternop_builtin): Same.
9779         (altivec_expand_builtin): Same.
9780
9781 2002-01-07  Richard Henderson  <rth@redhat.com>
9782
9783         * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag.
9784
9785 2002-01-07  Jason Merrill  <jason@redhat.com>
9786
9787         * unwind-dw2.c (execute_cfa_program): Use < again.
9788
9789 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
9790
9791         * predict.c (combine_predictions_for_insn): Avoid division by zero.
9792
9793 2002-01-07  Jakub Jelinek  <jakub@redhat.com>
9794
9795         * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT.
9796         Don't allow -1 - x -> ~x simplifications in the first pass.
9797
9798 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
9799
9800         * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid
9801         arguments.
9802         (altivec_expand_binop_builtin): Same.
9803         (altivec_expand_unop_builtin): Same.
9804         (print_operand): Fix typo.
9805         (bdesc_1arg): Add vupk* variants.
9806
9807         * rs6000.h (rs6000_builtins): Add vupk* enums.
9808
9809         * rs6000.md: Add altivec_vupk* variants.
9810
9811 2002-01-07  Joseph S. Myers  <jsm28@cam.ac.uk>
9812
9813         * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi,
9814         doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright
9815         and last update dates.
9816
9817 2002-01-07  Janis Johnson  <janis187@us.ibm.com>
9818
9819         * doc/rtl.texi (Flags): Clean up documentation of RTL flags
9820
9821 2002-01-07  Marek Michalkiewicz  <marekm@amelek.gda.pl>
9822
9823         * config/avr/avr.c (avr_mcu_types): Add new MCU types.
9824         * config/avr/avr.h (CPP_SPEC): Likewise.
9825         (LINK_SPEC): Likewise.
9826         (CRT_BINUTILS_SPECS): Likewise.
9827         * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
9828         * doc/invoke.texi (AVR Options): Document them.
9829
9830 Mon Jan  7 11:59:34 CET 2002  Jan Hubicka  <jh@suse.cz>
9831
9832         * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and
9833         LABEL_NUSES.
9834
9835 2002-01-07  Graham Stott  <grahams@redhat.com>
9836
9837         * config/i386/i386.h: Update copyright date.
9838         (HALF_PIC_PTR): Add parenthesis.
9839         (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap.
9840         (CONSTANT_ALIGNMENT): Add parenthesis.
9841         (DATA_ALIGNMENT): Likewise.
9842         (LOCAL_ALIGNMENT): Likewise.
9843         (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap.
9844         (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap.
9845         (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0).
9846         (HARD_REGNO_NREGS): Add paranethesis.
9847         (VALID_SSE_REG_MODE): Whitespace.
9848         (VALID_MMX_REG_MODE): Whitespace.
9849         (VALID_FP_MODE_P): Uppercase macros parameter and whitespace.
9850         (ix86_hard_regno_mode_ok): Add parenthesis.
9851         (HARD_REGNO_CALLER_SAVE_MODE): Whitespace.
9852         (RETURN_IN_MEMORY): Whitespace.
9853         (N_REG_CLASSES): Add parenthesis.
9854         (INTEGER_CLASS_P): Add parenthesis and wrap.
9855         (FLOAT_CLASS_P): Likewise.
9856         (SSE_CLASS_P): Likewise.
9857         (MMX_CLASS_P): Likewise.
9858         (MAYBE_INTEGER_CLASS_P): Likewise.
9859         (MAYBE_FLOAT_CLASS_P): Likewise.
9860         (MAYBE_SSE_CLASS_P): Likewise.
9861         (MAYBE_MMX_CLASS_P): Likewise.
9862         (Q_CLASS_P): Likewise.
9863         (GENERAL_REGNO_P): Uppercase macro parameter.
9864         (REX_INT_REGNO_P): Uppercase macro parameter and wrap.
9865         (FP_REGNO_P): Likewise.
9866         (ANY_FP_REGNO_P): Uppercase macro parameter.
9867         (SSE_REGNO_P): Likewise.
9868         (SSE_REGNO): Likewise.
9869         (SSE_REG_P): Likewise.
9870         (SSE_FLOAT_MODE_P): Likewise.
9871         (MMX_REGNO_P): Likewise.
9872         (MMX_REG_P):Likewise.
9873         (STACK_REG_P): Likewise.
9874         (NON_STACK_REG_P): Likewise.
9875         (STACK_TOP_P): Likewise.
9876         (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis.
9877         (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace.
9878         (SECONDARY_MEMORY_NEEDED): Likewise.
9879         (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace.
9880         (MD_ASM_CLOBBERS): Whitespace and wrap.
9881         (MUST_PASS_IN_STACK): Whitespace and wrap.
9882         (RETURN_POPS_ARGS): Add parenthesis.
9883         (INIT_CUMULATIVE_ARGS): Likewise.
9884         (FUNCTION_ARG): Likewise.
9885         (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace.
9886         (SETUP_INCOMING_VARARGS): Likewise.
9887         (BUILD_VA_LIST_TYPE):  Add parenthesis.
9888         (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add
9889         parenthsis.
9890         (EXPAND_BUILTIN_VA_ARG): Likewise.
9891         (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis.
9892         (INITIALIZE_TRAMPOLINE): Add parenthesis.
9893         (INITIAL_ELIMINATION_OFFSET): Likewise.
9894         (REGNO_OK_FOR_INDEX_P): Add parenthesis.
9895         (REGNO_OK_FOR_BASE_P): Likewise.
9896         (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap.
9897         (REGNO_OK_FOR_DIREG_P): Likewise.
9898         (REG_OK_FOR_INDEX_P): Whitespace.
9899         (REG_OK_FOR_BASE_P): Whitespace.
9900         (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add
9901         parenthesis.
9902         (FIND_BASE_TERM): Fix typo.
9903         (LEGITIMIZE_ADDRESS): Wrap in  { .. } while (0) and add parenthesis.
9904         (REWRITE_ADDRESS): Uppercase macro parameter and whitespace.
9905         (SYMBOLIC_CONST; Whitespace.
9906         (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in  { .. } while (0) and wrap.
9907         (ENCODE_SECTION_INFO): Whitespace.
9908         (FINALIZE_PIC): Remove do { ... } while (0).
9909         (PROMOTE_MODE): Wrap in do { ... } while (0).
9910         (CONST_COSTS): Whitespace.
9911         (RTX_COSTS): Add paramethesis, whitespace and wrap.
9912         (REGISTER_MOVE_COST): Add parenthesis.
9913         (MEMORY_MOVE_COST): Likewise.
9914         (EXTRA_CC_MODES): Whitespace.
9915         (SELECT_CC_MODE): Add parenthesis and whitespace.
9916         (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis.
9917         (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace.
9918         (ASM_OUTPUT_LABEL): Add paramethesis.
9919         (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace.
9920         (ASM_OUTPUT_REG_POP): Likewise.
9921         (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis.
9922         (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
9923
9924         * config/i386/i386.c: Update copyright.
9925         (CHECK_STACK_LIMIT): Add parenthesis.
9926         (AT_BP): Uppercase macro parameter.
9927         (x86_64_int_parameter_registers): Constify.
9928         (x86_64_int_return_registers): Likewise.
9929         (ix86_compare_op0): Use rtx.
9930         (construct_container): Constify INTREG parameter.
9931         (function_arg): Use rtx.
9932
9933         * diagnostic.h: Update copyright date.
9934         (output_buffer_state): Add parenthesis.
9935         (output_buffer_format_args): Likewise.
9936
9937         * combine.c (combine_instructions): Replace XEXP (links, 0)
9938         with link.
9939
9940 2002-01-06  H.J. Lu <hjl@gnu.org>
9941
9942         * cfgcleanup.c (thread_jump): Fix 2 typos.
9943
9944 2002-01-06  Aldy Hernandez  <aldyh@redhat.com>
9945
9946         * config.gcc: Add support for --enable-altivec.
9947
9948 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9949
9950         * emit-rtl.c (gen_highpart): Add check for NULL_RTX.
9951
9952 2002-01-06  Jakub Jelinek  <jakub@redhat.com>
9953
9954         * objc/objc-act.c (handle_impent): Use assemble_variable to emit
9955         __objc_class_name_*.
9956
9957 2002-01-06  Craig Rodrigues  <rodrigc@gcc.gnu.org>
9958
9959         * doc/install.texi (sparcv9-*-solaris2*): Add documentation.
9960
9961 2002-01-06  Richard Henderson  <rth@redhat.com>
9962
9963         * reorg.c (emit_delay_sequence): Remove death notes, not merely
9964         nop them out.  Increment label reference count for REG_LABEL.
9965         (fill_slots_from_thread): Frob label reference count around
9966         delete_related_insns.
9967
9968 2002-01-05  Richard Henderson  <rth@redhat.com>
9969
9970         * cfgcleanup.c (try_forward_edges): Detect infinite loops while
9971         jump threading.
9972
9973 2002-01-05  Richard Henderson  <rth@redhat.com>
9974
9975         * c-decl.c (c_expand_body): Don't call outlining_inline_function.
9976         * integrate.c (output_inline_function): Likewise.
9977         * toplev.c (rest_of_compilation): Do it here instead.  Move call
9978         to remove_unnecessary_notes after emitting abstract instance.
9979         Force an emitted nested function to have its parent emited as well.
9980         * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking
9981         for null.
9982         (rtl_for_decl_location): Do not look at reload data structures
9983         before reload has run.
9984
9985 2002-01-05  Kazu Hirata  <kazu@hxi.com>
9986
9987         * cse.c: Fix formatting.
9988         * dwarf2asm.c: Likewise.
9989         * dwarf2out.c: Likewise.
9990         * explow.c: Likewise.
9991         * expmed.c: Likewise.
9992         * function.c: Likewise.
9993         * gcov.c: Likewise.
9994         * gencheck.c: Likewise.
9995         * genrecog.c: Likewise.
9996         * ggc-common.c: Likewise.
9997         * ggc-page.c: Likewise.
9998         * global.c: Likewise.
9999
10000 2002-01-05  Kazu Hirata  <kazu@hxi.com>
10001
10002         * combine.c: Fix formatting.
10003
10004 2002-01-05  Craig Rodrigues  <crodrigu@bbn.com>
10005
10006         PR middle-end/1557
10007         * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove.
10008
10009 2002-01-05  David Edelsohn  <edelsohn@gnu.org>
10010
10011         * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define
10012         as 1 for __powerpc64__ as well.
10013
10014         * config/rs6000/t-aix43 (T_ADAFLAGS): Define.
10015
10016         * alias.c (find_base_value, PLUS/MINUS): If we found a base,
10017         return it.
10018
10019 2002-01-05  Daniel Berlin  <dan@dberlin.org>
10020
10021         * lcm.c: Revert change, due to performance regression it causes on
10022         SPEC because it's slightly more conservative (sigh, I hate
10023         edge-based LCM).
10024
10025 Sat Jan  5 11:52:05 CET 2002  Jan Hubicka  <jh@suse.cz>
10026
10027         * cfgcleanup.c (try_forward_edges): Allow multiple jump threading.
10028
10029 2002-01-05  Neil Booth  <neil@daikokuya.demon.co.uk>
10030
10031         * doc/cppinternals.texi: Update.
10032
10033 2002-01-05  Hans-Peter Nilsson  <hp@bitrange.com>
10034
10035         * doc/invoke.texi (Option Summary) <MMIX Options>: Document
10036         -mbranch-predict, -mreg-stack-fill-bug-workaround and their
10037         negatives.
10038         (MMIX Options): Ditto.  Fix item/itemx typo for -mno-zero-extend.
10039         * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework
10040         kludge for pre-october-14th mmix versions to handle new-found bug
10041         with PUSHJ/PUSHGO and the register stack.
10042         * config/mmix/mmix.h (struct machine_function): Rename member
10043         has_call_value_without_parameters to has_call_without_parameters.
10044         All referers changed.
10045         (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT
10046         TARGET_MASK_BRANCH_PREDICT): New macros.
10047         (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround,
10048         -mno-reg-stack-fill-bug-workaround.
10049         * config/mmix/mmix.md ("call"): Set struct machine member
10050         has_call_without_parameters.
10051
10052 Sat Jan  5 02:20:22 CET 2002  Jan Hubicka  <jh@suse.cz>
10053
10054         * cfgcleanup.c (thread_jump): Fix handling of reversed branches.
10055
10056 Sat Jan  5 01:35:29 CET 2002  Jan Hubicka  <jh@suse.cz>
10057
10058         * cfgcleanup.c: Include tm_p.h
10059         (mark_effect): Fix handling of hard register; fix handling of SET
10060
10061 2002-01-04  Kazu Hirata  <kazu@hxi.com>
10062
10063         * config/h8300/h8300.md (anonymous patterns): Check that
10064         operands are registers before using REGNO on them.
10065
10066 2002-01-03  Roland McGrath  <roland@frob.com>
10067
10068         * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu.
10069
10070 2002-01-04  Jakub Jelinek  <jakub@redhat.com>
10071
10072         * tree.h (expand_expr_stmt_value): Add maybe_last argument.
10073         * c-common.h (genrtl_expr_stmt_value): Likewise.
10074         * stmt.c (expand_expr_stmt): Pass 1 as maybe_last.
10075         (expand_expr_stmt_value): Add maybe_last argument.
10076         Don't warn about statement with no effect if it is the last statement
10077         in expression statement.
10078         * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last.
10079         (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to
10080         expand_expr_stmt_value.
10081         (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to
10082         genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope.
10083         * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1
10084         as maybe_last to expand_expr_stmt_value.
10085
10086 Fri Jan  4 11:45:05 2002  Jeffrey A Law  (law@redhat.com)
10087
10088         * c-common.c (c_expand_start_cond): Expect the IF_STMT node to
10089         be passed in, do not build it.
10090         (c_begin_if_stmt): New function.
10091         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10092         * c-common.h (c_expand_start_cond): Update prototype.
10093         (c_begin_if_stmt): Prototype new function.
10094         (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise.
10095         * c-parse.in (if_prefix): Use c_begin_if_stmt,
10096         c_begin_while_stmt and c_finish_while_stmt_cond.
10097
10098 2002-01-04  William Cohen  <wcohen@redhat.com>
10099
10100         * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag.
10101         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10102         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10103         * config/pa/som.h (ASM_FILE_START): Likewise.
10104
10105 2002-01-04  Daniel Berlin  <dan@cgsoftware.com>
10106
10107         * lcm.c: Include df.h.
10108         Add available_transfer_function prototype.
10109         (compute_available): Rework to use iterative dataflow framework.
10110         (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict
10111         with bb_info in df.h
10112         (available_transfer_function): New function.
10113
10114         * Makefile.in (lcm.o): add df.h to dependencies.
10115
10116 2002-01-04  Richard Henderson  <rth@redhat.com>
10117
10118         * config/alpha/alpha.c (some_operand): Accept HIGH.
10119         (input_operand): Likewise; accept simple references to globals.
10120         (alpha_const_ok_for_letter_p): New, outlined from alpha.h.
10121         (alpha_const_double_ok_for_letter_p): Likewise.
10122         (alpha_extra_constraint): Likewise.
10123         (alpha_preferred_reload_class): Likewise.  Do not force
10124         symbolic constants to memory.
10125         (alpha_legitimate_address_p): Accept simple references
10126         to small_symbolic_operand.
10127         (alpha_legitimize_address): New arg scratch.  Be prepared to be
10128         called when no_new_pseudos.  Emit simple symbolic references.
10129         Split integers into low, high, and rest.
10130         (alpha_expand_mov): Use alpha_legitimize_address.
10131         (some_small_symbolic_mem_operand): New.
10132         (split_small_symbolic_mem_operand): New.
10133         * config/alpha/alpha-protos.h: Update.
10134         * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line.
10135         (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise.
10136         (EXTRA_CONSTRAINT): Likewise.
10137         (PREFERRED_RELOAD_CLASS): Likewise.
10138         (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change.
10139         (PREDICATE_CODES): Update.
10140         * config/alpha/alpha.md: New post-reload splitters to convert
10141         simplfied symbolic operands to the form that references $29.
10142         (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g.
10143         (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand.
10144
10145 2002-01-03  Richard Henderson  <rth@redhat.com>
10146
10147         * local-alloc.c (function_invariant_p): Update commentary.
10148
10149 2002-01-04  H.J. Lu <hjl@gnu.org>
10150
10151         * toplev.c (rest_of_compilation): Fix a typo when calling
10152         cleanup_cfg.
10153
10154 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10155
10156         * c-common.c: Fix formatting.
10157         * diagnostic.c: Likewise.
10158         * doloop.c: Likewise.
10159         * dwarf2out.c: Likewise.
10160
10161 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10162
10163         * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead
10164         of 'neg.w' when xoring with 0x0000ffff or 0xffff0000.
10165
10166 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10167
10168         * cpperror.c: Update comments and copyright.
10169         * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c,
10170         cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly.
10171
10172 2002-01-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10173
10174         * collect2.c (main): Use strcmp when testing for "-shared".
10175
10176 2002-01-03  Neil Booth  <neil@daikokuya.demon.co.uk>
10177
10178         * cppmacro.c: Don't include intl.h.  Update comments.
10179         (new_number_token): Allocate enough buffer for 64-bit unsigned
10180         integers; update prototype.
10181         * cppmain.c: Update comments.
10182
10183 2002-01-03  William Cohen  <wcohen@redhat.com>
10184
10185         * function.h (struct function): Add profile.
10186         (current_function_profile): New.
10187         doc/extend.texi: Update documentation.
10188         * final.c (final_start_function): Use current_function_profile
10189         instead of profile_flag.
10190         (profile_after_prologue): Likewise.
10191         * function.c (expand_function_start): Likewise.
10192         (expand_function_start): Likewise.
10193         * config/alpha/alpha.c (direct_call_operand):
10194         (alpha_does_function_need_gp): Likewise.
10195         (alpha_expand_prologue): Likewise.
10196         * config/arm/arm.c (arm_expand_prologue): Likewise.
10197         thumb_expand_prologue: Likewise.
10198         * config/d30v/d30v.c (d30v_stack_info): Likewise.
10199         * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise.
10200         (fr30_expand_prologue): Likewise.
10201         * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise.
10202         * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise.
10203         * config/i386/i386.h (FINALIZE_PIC): Likewise.
10204         * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise.
10205         * config/i960/i960.c (i960_output_function_prologue): Likewise.
10206         * config/ia64/ia64.c (ia64_compute_frame_size): Likewise.
10207         * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise.
10208         (m32r_expand_prologue): Likewise.
10209         * config/m88k/m88k.c (m88k_layout_frame): Likewise.
10210         (m88k_expand_prologue): Likewise.
10211         * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise.
10212         * config/mips/mips.c (compute_frame_size): Likewise.
10213         (mips_expand_prologue): Likewise.
10214         (mips_can_use_return_insn): Likewise.
10215         * config/pa/elf.h (ASM_FILE_START): Likewise.
10216         * config/pa/pa-linux.h (ASM_FILE_START): Likewise.
10217         * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise.
10218         * config/pa/som.h (ASM_FILE_START): Likewise.
10219         * config/romp/romp.c (romp_using_r14): Likewise.
10220         * config/rs6000/rs6000.c (first_reg_to_save): Likewise.
10221         (rs6000_stack_info): Likewise.
10222         * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
10223         * config/rs6000/xcoff.h (ASM_FILE_START): Likewise.
10224         * config/v850/v850.c (compute_register_save_size): Likewise.
10225
10226 2002-01-03  Jakub Jelinek  <jakub@redhat.com>
10227
10228         * simplify-rtx.c (simplify_binary_operation) [DIV]: If
10229         gen_lowpart_common fails, use gen_lowpart_SUBREG.
10230
10231 2002-01-03  Turly O'Connor  <turly@apple.com>
10232
10233         * darwin.c (machopic_output_possible_stub_label): Don't generate
10234         stub routines for pseudo-stubs which we've just defined.
10235
10236 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10237
10238         * builtins.c: Fix formatting.
10239         * c-typeck.c: Likewise.
10240         * combine.c: Likewise.
10241         * expr.c: Likewise.
10242         * loop.c: Likewise.
10243
10244 2002-01-03  Andreas Schwab  <schwab@suse.de>
10245
10246         * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool
10247         and return true if _cpp_push_next_buffer pushed a new include
10248         file.
10249         * cpplib.c (_cpp_pop_buffer): Only call obstack_free if
10250         _cpp_pop_file_buffer did not push a new file.
10251         * cpphash.h (_cpp_pop_file_buffer): Update declaration.
10252
10253 2002-01-02  Eric Christopher  <echristo@redhat.com>
10254
10255         * final.c (final_scan_insn): Change 0 -> NULL_RTX in
10256         FIND_REG_INC_NOTE call. Update copyright.
10257         * loop.c (canonicalize_condition): Ditto.
10258         * reorg.c (delete_scheduled_jump): Ditto.
10259
10260 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10261
10262         * gcse.c: Fix formatting.
10263
10264 2002-01-03  Graham Stott  <grahams@redhat.com>
10265
10266         * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h
10267         forward defs for struct tags rtx_def, union_tree, rtvec_def
10268         also output corresponding typedefs for rtx, tree, and rtvec.
10269
10270         * system.h: Move forward defs for struct tags rtx_def, union_tree,
10271         rtvec_def along with corresponding typedefs for rtx, tree, and
10272         rtvec to config.h, hconfig.h, tconfig.h.
10273
10274 2002-01-03  Graham Stott  <grahams@redhat.com>
10275
10276         * tree.h: Update copyright date.
10277         (IS_EXPR_CODE_CLASS): Add parenthesis.
10278         (TREE_SET_CODE): Add whitespace.
10279         (TREE_CHECK): Add parenthesis.
10280         (TREE_CLASS_CODE): Add parenthesis and wrap long line.
10281         (CST_OR_CONSTRUCTOR_CHECK):
10282         (EXPR_CHECK): Add parenthis, whitespace and wrap line.
10283         (TREE_SYMBOL_REFERENCED): Whitespace.
10284         (INT_CST_LT): Likewise.
10285         (INT_CST_LT_UNSIGNED): Likewise.
10286         (tree_real_cst): Unwrap comment.
10287         (tree_string): Likewise.
10288         (tree_complex): Likewise.
10289         (IDENTIFIER_POINTER): correct cast.
10290         (SAVE_EXPR_CONTEXT): Whitespace.
10291         (EXPR_WFL_FILENAME_NODE): Likewise.
10292         (EXPR_WFL_FILENAME): Remove parenthesis.
10293         (DECL_ORIGIN): Add parenthesis.
10294         (DECL_FROM_INLINE): Use NULL_TREE.
10295         (build_int_2): Whitespace.
10296         (build_type_variant): Add parenthesis.
10297
10298         * gcc/jcf-parse.c: Update copyright date.
10299         (yyparse): Constify resource_filename.
10300
10301 2002-01-03  Graham Stott  <grahams@redhat.com>
10302
10303         * rtl.h: Update copyright date.
10304         (RTL_CHECK1): Wrap long line.
10305         (RTL_CHECK2): Likewise.
10306         (RTL_CHECKC1): Wrap long line and whitespace.
10307         (RTL_CHECKC2): Likewise.
10308         (XWINT): Whitespace.
10309         (XINT): Likewise.
10310         (XSTR): Likewise.
10311         (XEXP): Likewise.
10312         (XVEC): Likewise.
10313         (XMODE): Likewise.
10314         (XBITMAP): Likewise.
10315         (XTREE): Likewise.
10316         (XBBDEF): Likewise.
10317         (XTMPL): Likewise.
10318         (X0WINT): Likewise.
10319         (X0INT):Likewise.
10320         (X0UINT): Likewise.
10321         (X0STR): Likewise.
10322         (X0EXP): Likewise.
10323         (X0VEC): Likewise.
10324         (X0MODE): Likewise.
10325         (X0BITMAP): Likewise.
10326         (X0TREE): Likewise.
10327         (X0BBDEF): Likewise.
10328         (X0ADVFLAGS): Likewise.
10329         (X0CSELIB): Likewise.
10330         (X0MEMATTR): Likewise.
10331         (XCWINT): Likewise.
10332         (XCINT): Likewise.
10333         (XCUINT): Likewise.
10334         (XCSTR): Likewise.
10335         (XCEXP): Likewise.
10336         (XCVEC): Likewise.
10337         (XCMODE): Likewise.
10338         (XCBITMAP): Likewise.
10339         (XCTREE): Likewise.
10340         (XCBBDEF): Likewise.
10341         (XCADVFLAGS): Likewise.
10342         (XCCSELIB): Likewise.
10343         (XC2EXP): Likewise.
10344         (INSN_UID): Likewise.
10345         (PREV_INSN): Likewise.
10346         (PATTERN): Likewise.
10347         (INSN_CODE): Likewise.
10348         (PUT_REG_NOTE_KIND): Likewise.
10349         (CODE_LABEL_NUMBER): Likewise.
10350         (NOTE_SOURCE_FILE): Likewise.
10351         (NOTE_BLOCK): Likewise.
10352         (NOTE_EH_HANDLER): Likewise.
10353         (NOTE_RANGE_INFO): Likewise.
10354         (NOTE_LIVE_INFO): Likewise.
10355         (NOTE_BASIC_BLOCK): Likewise.
10356         (NOTE_EXPECTED_VALUE): Likewise.
10357         (NOTE_LINE_NUMBER): Likewise.
10358         (LABEL_NAME): Likewise.
10359         (LABEL_NUSES): Likewise.
10360         (LABEL_ALTERNATE_NAME): Likewise.
10361         (ADDRESSOF_DECL): Likewise.
10362         (JUMP_LABEL): Likewise.
10363         (LABEL_NEXTREF): Likewise.
10364         (REGNO): Likewise.
10365         (ORIGINAL_REGNO: Likewise.
10366         (HARD_REGISTER_NUM_P): Add parenthesis.
10367         (SUBREG_REG): Whitespace.
10368         (SUBREG_BYTE): Likewise.
10369         (ASM_OPERANDS_TEMPLATE): Remove parenthesis.
10370         (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise.
10371         (ASM_OPERANDS_OUTPUT_IDX): Likewise.
10372         (ASM_OPERANDS_INPUT_VEC): Likewise.
10373         (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise.
10374         (ASM_OPERANDS_INPUT): Likewise.
10375         (ASM_OPERANDS_INPUT_LENGTH): Likewise.
10376         (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise.
10377         (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise.
10378         (ASM_OPERANDS_INPUT_MODE): Likewise.
10379         (ASM_OPERANDS_SOURCE_FILE): Likewise.
10380         (ASM_OPERANDS_SOURCE_LINE): Likewise.
10381         (MEM_SET_IN_STRUCT_P): Minor reformat.
10382         (TRAP_CONDITION): Whitespace.
10383         (TRAP_CODE): Likewise.
10384         (COND_EXEC_TEST): Likewise.
10385         (COND_EXEC_CODE): Likewise.
10386         (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis.
10387         (PHI_NODE_P): Add parenthesis.
10388         (plus_constant): Whitespace and add parenthesis.
10389
10390 2002-01-03  Kazu Hirata  <kazu@hxi.com>
10391
10392         * config/avr/avr.c: Fix comment typos.
10393         * config/c4x/c4x.md: Likewise.
10394         * config/dsp16xx/dsp16xx.h: Likewise.
10395         * config/dsp16xx/dsp16xx.md: Likewise.
10396         * config/i386/i386.md: Likewise.
10397         * config/ia64/ia64.c: Likewise.
10398         * config/m32r/m32r.h: Likewise.
10399         * config/m68hc11/m68hc11.md: Likewise.
10400         * config/mmix/mmix.c: Likewise.
10401         * config/mn10200/mn10200.c: Likewise.
10402         * config/romp/romp.c: Likewise.
10403         * config/sh/sh.c: Likewise.
10404         * config/stormy16/stormy16.c: Likewise.
10405         * config/stormy16/stormy16.h: Likewise.
10406         * config/stormy16/stormy16.md: Likewise.
10407
10408 2002-01-03  Graham Stott  <grahams@redhat.com>
10409
10410         * loop.h: Update copyright date.
10411         (LOOP_MOVABLES): Fix typo.
10412         (LOOP_REGS): Likewise.
10413         (LOOP_IVS): Likewise.
10414
10415 2002-01-03  Graham Stott  <grahams@redhat.com>
10416
10417         * cppinit.c: Update copyright date.
10418         Don't include output.h
10419         * Makefile.in: Update copyright date.
10420         Update dependency.
10421
10422 2002-01-02  Craig Rodrigues  <rodrigc@gcc.gnu.org>
10423
10424         PR c/5226
10425         * invoke.texi (-mthreads): Remove from documented RS/6000 options.
10426         (-pthread) Add to RS/6000 options.
10427
10428 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10429
10430         * except.c: Fix comment typos.
10431         * loop.c: Likewise.
10432         * varasm.c: Likewise.
10433         * doc/tm.texi: Fix a typo.
10434
10435 2002-01-02  Jakub Jelinek  <jakub@redhat.com>
10436
10437         * c-typeck.c (output_init_element): Allow initializing static storage
10438         duration objects with compound literals.
10439
10440 2002-01-02  Richard Henderson  <rth@redhat.com>
10441
10442         * objc/objc-act.c (hack_method_prototype): Clear current_function_decl
10443         after abusing it.
10444
10445 2002-01-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10446
10447         * gcc.c (default_compilers): Const-ify.
10448         * mips-tdump.c (stab_names): Likewise.
10449         * mips-tfile.c (map_coff_types, map_coff_storage,
10450         map_coff_sym_type, map_coff_derived_type, stabs_symbol,
10451         pseudo_ops_t, pseudo_ops): Likewise.
10452         * protoize.c (default_include): Likewise
10453
10454         * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness.
10455         (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify.
10456         Add array size in declaration.
10457         (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi,
10458         emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm,
10459         esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe,
10460         etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe,
10461         eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc,
10462         efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm,
10463         c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens,
10464         emtens, make_nan): Const-ify.
10465         (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan,
10466         DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify.
10467
10468 2002-01-02  Joseph S. Myers  <jsm28@cam.ac.uk>
10469
10470         * config.gcc (ia64-*-*): Set extra_headers.
10471         (alpha*-dec-osf*): Likewise.  Don't use alpha/t-osf.
10472         * config/alpha/t-osf: Remove.
10473         * config/ia64/t-ia64 (EXTRA_HEADERS): Remove.
10474
10475 2002-01-02  David Edelsohn  <edelsohn@gnu.org>
10476
10477         * config/rs6000/t-aix43: Revert previous change.
10478
10479 2002-01-02  Jason Merrill  <jason@redhat.com>
10480
10481         * c-decl.c (c_expand_body): Call outlining_inline_function when
10482         emitting an inline function out of line.
10483
10484 2002-01-02  Richard Henderson  <rth@redhat.com>
10485
10486         * dwarf2out.c (limbo_die_node): Add created_for member.
10487         (new_die): New argument created_for.  Update all callers.
10488         (mark_limbo_die_list): New.
10489         (dwarf2out_init): Register limbo_die_list as a root.
10490         (dwarf2out_finish): Force insert limbo dies into their function
10491         context.
10492
10493 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
10494
10495         PR c++/5089
10496         * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts.
10497
10498 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10499
10500         * config/h8300/fixunssfsi.c: Update copyright.
10501         Fix comment typos.
10502         Fix formatting.
10503         * config/h8300/h8300.c: Update copyright.
10504         Eliminate warnings.
10505
10506 2002-01-02  Kazu Hirata  <kazu@hxi.com>
10507
10508         * config/romp/romp.c: Fix comment formatting.
10509         * config/romp/romp.h: Likewise.
10510         * config/romp/romp.md: Likewise.
10511         * config/s390/s390.c: Likewise.
10512         * config/stormy16/stormy16.c: Likewise.
10513         * config/stormy16/stormy16.h: Likewise.
10514
10515 2002-01-02  Alexandre Oliva  <aoliva@redhat.com>
10516
10517         * c-common.h (genrtl_expr_stmt_value): Declare.
10518         * c-semantics.c (genrtl_goto_stmt): Redirect to...
10519         (genrtl_goto_stmt_value): ... this new function.  Pass new
10520         argument down to expand_expr_stmt_value, taking
10521         TREE_ADDRESSABLE into account.
10522         * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a
10523         STMT_EXPR as addressable, i.e., one whose result we want.
10524         * expr.c (expand_expr): Don't save expression statement value
10525         of labeled_blocks or loop_exprs.
10526         * stmt.c (expand_expr_stmt): Redirect to...
10527         (expand_expr_stmt_value): ... this new function.  Use new
10528         argument to tell whether to save expression value.
10529         (expand_end_stmt_expr): Reset last_expr_type and
10530         last_expr_value if we don't have either.
10531         * tree-inline.c (declare_return_variable): Mark its use
10532         statement as addressable.
10533         * tree.h: Document new use of TREE_ADDRESSABLE.
10534         (expand_expr_stmt_value): Declare.
10535
10536 2002-01-01  Tom Rix  <trix@redhat.com>
10537
10538         * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by
10539         rs6000_emit_allocate_stack.
10540
10541 2002-01-01  Joseph S. Myers  <jsm28@cam.ac.uk>
10542
10543         * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of
10544         ${srcdir}/ginclude/ to every entry in extra_headers.
10545         * configure: Regenerate.
10546         * ginclude/math-3300.h: Rename to config/m68k/math-3300.h.
10547         * ginclude/math-68881.h: Rename to config/m68k/math-68881.h.
10548         * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h.
10549         * ginclude/proto.h: Rename to config/convex/proto.h.
10550
10551 Tue Jan  1 17:12:56 2002  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10552
10553         * attribs.c (handle_vector_size_attribute): Use host_integerp
10554         and tree_int_cst; remove warnings.
10555         * caller-save.c (insert_restore): Add cast to get rid of warning.
10556         (insert_save): Likewise.
10557         * emit-rtl.c (adjust_address_1, offset_address): Likewise.
10558         * regmove.c (find_matches): Add temporary var to kill a warning.
10559
10560 2002-01-01  Douglas B Rupp  <rupp@gnat.com>
10561
10562         * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX,
10563         LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define.
10564         * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o
10565         (vms-dwarf2eh.o): Add Makefile rule.
10566         * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o.
10567         * config/alpha/vms-dwarf2eh.asm: New file.
10568
10569         * gcc.c (delete_if_ordinary): Delete all versions.
10570
10571 2002-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
10572
10573         * config/mmix/mmix.md: Update FIXME to not mention
10574         define_constants.
10575         (MMIX_rJ_REGNUM): New define_constants constant.
10576         ("movqi", "movsi", "movdi", "*movdicc_real_foldable",
10577         "*movdicc_real"): Adjust contraints formatting.
10578         ("*bCC_foldable"): Add %+ for P in output format and delete FIXME
10579         for branch prediction.
10580         ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in
10581         output template.
10582         ("*call_real", "*call_value_real", "nonlocal_goto_receiver",
10583         "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of
10584         number.  Delete related FIXMEs.
10585         * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change
10586         from number to MMIX_rJ_REGNUM.
10587         (TARGET_MASK_BRANCH_PREDICT): New.
10588         (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT.
10589         (TARGET_SWITCHES): Update comment.  Correct -mno-toplevel-symbols
10590         value.  Add -mbranch-predict and -mno-branch-predict.
10591         (TARGET_VERSION): Drop date.
10592         (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number.
10593         * config/mmix/mmix.c (mmix_encode_section_info): Correct condition
10594         for finding out global symbols.
10595         (mmix_asm_output_labelref): Revert condition for global symbol.
10596         (mmix_print_operand): <case '+'>: Emit P for a likely branch.
10597         (mmix_print_operand_punct_valid_p): A '+' is valid.
10598
10599 See ChangeLog.6 for earlier changes.