OSDN Git Service

* config/xtensa/xtensa.c: Formatting.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-05-09  Bob Wilson  <bob.wilson@acm.org>
2
3         * config/xtensa/xtensa.c: Formatting.
4
5 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
6
7         * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS,
8         instead of TREE_OPERAND to access the operand of a
9         CONSTRUCTOR node.
10
11 2003-05-09  Diego Novillo  <dnovillo@redhat.com>
12
13         * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only
14         one operand.
15
16 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
17
18         * toplev.h (warning_with_file_and_line): Don't declare.
19         (error_with_file_and_line): Likewise.
20         * diagnostic.c (error_with_file_and_line): Remove.
21         (warning_with_file_and_line): Likewise.
22
23 2003-05-09  Gabriel Dos Reis <gdr@integrable-solutions.net>
24
25         * c-parse.in (if_stmt_locus): New object.
26         (if_prefix rule): Use it.  Don't use warning_with_file_and_line.
27         (select_or_iter_stmt rule): Likewise.
28         (if_stmt_file): Remove.
29         (if_stmt_line): Likewise.
30         * jump.c: include "diagnostic.h"
31         (never_reached_warning): Don't use warning_with_file_and_line. 
32         * Makefile.in (jump.o): Add dependce on diagnostic.h
33
34 2003-05-09  Alan Modra  <amodra@bigpond.net.au>
35
36         * expr.c (move_block_from_reg): Remove "size" parm.  Localize vars.
37         Move code handling pieces not larger than a word to..
38         * function.c (assign_parms): ..here, but use change_address instead
39         of adjust_address and operand_subword, and expand_binop instead of
40         expand_shift.  Adjust calls to move_block_from_reg.
41         * expr.h (move_block_from_reg): Update declaration.
42         (copy_blkmode_from_reg): Formatting.
43         * Makefile.in (function.o): Add $(OPTABS_H) to deps.
44         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust
45         move_block_from_reg calls.
46         * config/arc/arc.c (arc_setup_incoming_varargs): Likewise.
47         * config/i960/i960.c (i960_setup_incoming_varargs): Likewise.
48         * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise.
49         * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise.
50         * config/mips/mips.c (mips_setup_incoming_varargs): Likewise.
51         * config/pa/pa.c (hppa_builtin_saveregs): Likewise.
52         * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise.
53         * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise.
54         * config/sh/sh.c (sh_builtin_saveregs): Likewise.
55
56 2003-05-08  DJ Delorie  <dj@redhat.com>
57
58         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix
59         to handle arguments for which MUST_PASS_IN_STACK is true (e.g.,
60         variable-sized types).
61         (xstormy16_function_arg): New.  Pass them that way too.
62         * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New.
63         * config/stormy16/stormy16.h (FUNCTION_ARG): Call it.
64
65 2003-05-08  Aldy Hernandez  <aldyh@redhat.com>
66
67         * mklibgcc.in: Use mkinstalldirs when installing multilib
68         directories.
69
70 2003-05-08  J"orn Rennecke <joern.rennecke@superh.com>
71
72         * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact
73         instead of CODE_FOR_jump
74
75 2003-05-08  Gabriel Dos Reis <gdr@integrable-solutions.net>
76
77         * objc/objc-act.c (error_with_ivar): Don't use
78         error_with_file_and_line. 
79         (warn_with_method): Don't use warning_with_file_and_line.
80
81 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
82
83         * stmt.c (emit_locus): New macro.
84         (emit_filename): Remove.
85         (emit_lineno): Likewise.
86         (struct stmt_status): Replace members x_emit_filename and
87         x_emit_lineno with x_emit_locus.
88         (set_file_and_line_for_stmt): Adjust.
89         (expand_expr_stmt_value): Don't use warning_with_file_and_line.
90         (warn_if_unused_value): Likewise.
91         (check_seenlabel): Likewise.
92
93 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
94
95         * c-decl.c (define_label): Tidy.  Don't use any of
96         error_with_file_and_line or warning_with_file_and_file.
97         (pending_xref_error): Likewise.
98         (store_parm_decls): Likewise.
99         (current_function_prototype_locus): New object.  Package from
100         current_function_prototype_file and current_function_prototype_line.
101         (start_function): Use it.
102         (current_function_prototype_file): Remove.
103         (current_function_prototype_line): Remove;
104
105 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
106
107         * builtins.c (readonly_data_expr): New function.
108         (expand_builtin_memmove): Optimize any rodata source, not just
109         strings.
110
111 2003-05-07  David Mosberger <davidm@hpl.hp.com>
112
113         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
114
115 2003-05-07  Richard Henderson  <rth@redhat.com>
116
117         * config/i386/i386.c (ix86_split_long_move): Fix base register
118         mode for XFmode splits for TARGET_64BIT.
119
120 2003-05-07  Richard Henderson  <rth@redhat.com>
121
122         * sched-ebb.c (schedule_ebb): Supply the correct starting
123         block number to save_line_notes.
124
125 2003-05-07  Richard Henderson  <rth@redhat.com>
126
127         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
128         (dump_file): Likewise.
129
130 2003-05-07  David Mosberger <davidm@hpl.hp.com>
131
132         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
133         forget to preserve gp.
134         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
135
136         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
137         .prologue directive.
138         Use .skip instead of data8 for .bss section to make Intel
139         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
140         explicit in the .mib bundles and remove the unnecessary stop
141         bits.  Replace local labels with normal labels, to make ias
142         happy.  Don't register __do_global_ctors_aux here, do it in
143         crtend.asm instead.
144
145         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
146         __do_global_ctors_aux in .init_array section instead of
147         declaring it as a hidden global.  Replace local labels with
148         ordinary labels to make ias happy.
149
150 2003-05-07  Richard Henderson  <rth@redhat.com>
151
152         PR c++/10570
153         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
154         * flags.h, toplev.c, doc/invoke.texi: Likewise.
155
156         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
157         * unwind.inc (_Unwind_DeleteException): Check for null
158         exception_cleanup.
159
160         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
161         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
162         * unwind.h: Declare them.
163         * libgcc-std.ver (GCC_3.3): Export them.
164
165 2003-05-07  Richard Henderson  <rth@redhat.com>
166
167         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
168         not _Unwind_Word.
169
170 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
171
172         * stmt.c (force_label_rtx): New function, based on logic
173         formerly found in expand_expr.
174         * expr.h: Prototype it.
175         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
176         appropriate.
177         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
178
179         * print-tree.c (debug_tree): Free the table after we're done
180         with it.  Use putc.
181
182 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
183
184         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
185         Unreverse arguments for __ev_subw.
186
187         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
188
189 2003-05-07  Nick Clifton  <nickc@redhat.com>
190
191         * config/stormy16/stormy-abi: Update to include
192         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
193         R_XSTORMY16_12 relocs.
194
195 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
196
197         * function.c (assign_parms): Correct reversed reg_parm_stack_space
198         test.  Add partial in-regs size to stack_args_size.
199
200 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
201
202         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
203         as a C only option.
204
205 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
206
207         * gcov-io.h (GCOV_LOCKED): New #define.
208         (GCOV_LINKAGE): Make sure it is #defined.
209         (gcov_write_string, gcov_write_tag, gcov_write_length,
210         gcov_read_string, gcov_time): Poison in libgcov.
211         (gcov_seek_end): Remove.
212         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
213         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
214         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
215         GCOV_TAG_SUMMARY_LENGTH): New #defines.
216         (gcov_write_tag, gcov_write_length): Not in libgcov.
217         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
218         (gcov_write_tag, gcov_write_length): Not in libgcov.
219         (gcov_write_tag_length): New.
220         (gcov_write_summary): Use gcov_write_tag_length.
221         * libgcov.c: Always #include gcov-io.h.
222         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
223         (GCOV_LINKAGE): Define to nothing for L_gcov.
224         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
225         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
226         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
227         (read_count_file): Likewise.
228         * gcov-dump.c (dump_file): Likewise.
229         * coverag.c (read_counts_file): Likewise.
230
231 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
232
233         PR other/10658
234         * gcc.c (process_command): Update copyright date.
235
236 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
237
238         * doc/install.texi (mips-*-*):  Add note about libstdc++.
239
240 2003-05-06  DJ Delorie  <dj@redhat.com>
241
242         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
243         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
244         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
245
246 2003-05-06    <neil@cat.daikokuya.co.uk>
247
248         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
249         and -Wstrict-prototypes if C++.
250
251 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
252
253         * config/rs6000/linuxspe.h: New file.
254
255         * config.gcc: Add powerpc-*-linux-gnuspe* target.
256
257 2003-05-06  Richard Henderson  <rth@redhat.com>
258
259         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
260         previous frame didn't save sp.  Clear sp for next frame.
261         (uw_install_context_1): Honor saved sp from frame.
262
263 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
264
265         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
266         (mips_move_1word, mips_move_2words): Remove declaration.
267         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
268         (mips_restore_gp): Remove insn argument.
269         * config/mips/mips.h (FP_REG_RTX_P): New macro.
270         * config/mips/mips.c (volatile_buffer): Remove.
271         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
272         (mips_move_1word, mips_move_2words): Remove, replacing with...
273         (mips_output_move): ...this new function.
274         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
275         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
276         handling of floating-point constants.  Handle zero CONST_DOUBLE
277         arguments.
278         (mips_annotate_frame_insn): Replace with...
279         (mips_set_frame_expr): ...this, which just takes one argument.
280         (mips_frame_set): Change the register argument to an rtx.
281         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
282         check whether moves should be split.  Use mips_split_64bit_move
283         to split them.  Use mips_subword to generate the high and low
284         parts of a paired FPR.  Adjust calls to frame_set and
285         mips_set_frame_expr.
286         (mips_expand_prologue): Simplify due to above changes.
287         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
288         targets, replacing xisting register-only versions.
289         (UNSPEC_STORE_DF_HIGH): New unspec.
290         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
291         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
292         (*paradoxical_extendhidi2): Remove.
293         (movdi_internal, movdi_internal2): Use mips_output_move.
294         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
295         (movsf_internal1, movsf_internal2): Likewise.
296         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
297         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
298         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
299         Add m <- G alternative.
300         (load_df_low, load_df_high, store_df_low): New patterns.
301         (movhi_internal): Use @ template instead of calling a function.
302         Remove unnecessary 'z' alternatives.
303         (movqi_internal): Likewise.
304         (exception_receiver): Update call to mips_restore_gp.
305
306 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
307
308         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
309         (mips_delegitimize_address): Declare.
310         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
311         (FIND_BASE_TERM): Define.
312         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
313         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
314         Handle small-data addresses.
315
316 2003-05-05  Roger Sayle  <roger@eyesopen.com>
317
318         * real.c (real_powi): New function to calculate the value of
319         a real raised to an integer power, i.e. pow(x,n) for int n.
320         (real_sqrt): Convert to using the faster do_add, do_multiply
321         and do_divide API for consistency with the rest of real.c.
322         * real.h (real_powi): Prototype here.
323         * builtins.c (fold_builtin):  Avoid local variable mode when
324         evaluating sqrt at compile time.  Attempt to evaluate pow at
325         compile-time, by checking for an integral exponent.
326
327 2003-05-05  Richard Henderson  <rth@redhat.com>
328
329         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
330
331 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
332
333         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
334         other FreeBSD ports.
335         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
336         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
337
338 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
339
340         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
341         expanded variables.
342         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
343
344 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
345
346         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
347         * varasm.c (struct varasm_status): Add deferred_constants field.
348         (n_deferred_strings): Delete variable.
349         (n_deferred_constants): New #define.
350         (struct constant_descriptor_tree): Kill next and label fields.
351         (const_hash_table, MAX_HASH_TABLE): Delete.
352         (const_desc_htab): New static variable.
353         (const_hash): Rename const_desc_hash, and make it fit the
354         hashtab.h interface.
355         (const_desc_eq): New.
356         (const_hash_1, compare_constant): Const-ify arguments.
357         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
358         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
359         (output_constant_def): Do the lookup/insert using the
360         hashtab.h interface.  Don't muck with n_deferred_constants or
361         DEFERRED_CONSTANT_P here.
362         Always call maybe_output_constant_def_contents.
363         (maybe_output_constant_def_contents): Take a pointer to the
364         descriptor, not the EXP and RTL separately.  Return
365         immediately if this constant is not deferred.  Defer output of
366         everything, except writable string constants.  Update
367         n_deferred_constants here.
368         (output_constant_def_contents): Now takes just one argument,
369         an rtx.  Clear DEFERRED_CONSTANT_P here.
370         (mark_constant_pool): Update for rename of n_deferred_strings.
371         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
372
373         (init_varasm_status): Clear p->deferred_constants.
374         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
375
376 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
377
378         * builtins.c (expand_builtin_stpcpy): Only expand when the length
379         of the source string can be evaluated at compile-time.
380
381 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
382
383         * testsuite/gcc.c-torture/compile/simd-6.c: New.
384
385         * c-typeck.c (digest_init): Handle arrays of vector constants.
386
387 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
388
389         * builtins.c (expand_builtin_mempcpy): New function.
390         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
391         ignored into strcpy no matter what arguments it has.
392         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
393         expand_builtin_mempcpy.
394
395 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
396
397         * testsuite/gcc.dg/20030505.c: New.
398
399         * c-typeck.c (convert_for_assignment): Opaque pointers can
400         interconvert.
401
402         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
403         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
404         (spe_init_builtins): Rename all pv2si_type_node to
405         opaque_p_V2SI_type_node.
406         Remove declaration of pv2si_type_node.
407         (is_ev64_opaque_type): Accept opaque pointers.
408
409 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
410
411         * config/rs6000/rs6000.c (validate_condition_mode): Use
412         flag_finite_math_only.
413         (rs6000_reverse_condition): Never return UNKNOWN; use
414         flag_finite_math_only.
415         (rs6000_generate_compare): Use flag_finite_math_only.
416         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
417         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
418         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
419
420         * toplev.c (check_global_declarations): Suppress not-used warning
421         for volatile variables.
422
423 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
424
425         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
426         usage of bitfield instructions for mode1 != BLKmode, only ignoring
427         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
428         (store_field): Likewise.
429
430 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
431
432         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
433         evsubifw to builtins accepting 5-bit unsigned constants.
434         (easy_vector_constant): Return if V1DImode.  Fix typo.
435
436 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
437
438         * config/rs6000/spe.h: Revert licensing change from last patch.
439
440 2003-05-05  DJ Delorie  <dj@redhat.com>
441
442         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
443         before reload, but defer the split until after.
444         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
445         to match.
446
447 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
448
449         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
450         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
451
452 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
453
454         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
455         is defined.
456
457 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
458
459         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
460         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
461         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
462
463         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
464         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
465         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
466         New.
467
468         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
469         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
470
471         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
472         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
473         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
474         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
475         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
476         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
477         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
478         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
479         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
480         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
481         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
482         BUILT_IN_STRDUP): Add "nonnull" attribute.
483
484 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
485
486         * expr.c (store_field): Don't clobber TEMP in shift: it might be
487         a variable.
488         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
489         whose purpose is to step up the alignment.
490         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
491
492         * stor-layout.c (compute_record_mode): Relax restriction
493         on fields crossing word boundaries forcing BLKmode.
494
495 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
496
497         * cppinit.c (cpp_create_reader, post_options): Warn about
498         trigraphs unless explicity set or -trigraphs.
499         * cpplex.c (warn_in_comment): New.
500         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
501         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
502         * doc/cppopts.texi, doc/cpp.texi: Update.
503
504 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
505
506         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
507         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
508         namespace clash.
509         (GCOV_MERGE_FUNCTIONS): New.
510         (gcov_merge_fn): Declare.
511         (struct gcov_ctr_info): New field "merge".
512         (__gcov_merge_add): Declare.
513         * coverage.c (ctr_merge_functions): New.
514         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
515         of gcov_ctr_info type.
516         * libgcov.c (__gcov_merge_add): New.
517         (gcov_exit): Call a hook to merge values of counters.
518
519 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
520
521         * toplev.h (pedwarn_with_file_and_line): Don't declare.
522         * diagnostic.c (pedwarn_with_file_and_line): Remove.
523
524 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
525
526         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
527
528 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
529
530         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
531         expand_builtin_frame_address): Update prototypes.
532         (expand_builtin_constant_p, expand_builtin_strlen,
533         expand_builtin_strcpy, expand_builtin_memset,
534         expand_builtin_bzero, expand_builtin_args_info,
535         expand_builtin_frame_address): Pass in just the argument(s)
536         needed, not the entire expression `exp'.
537         (expand_builtin): Update all calls to these functions.
538
539 2003-05-03  Richard Henderson  <rth@redhat.com>
540
541         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
542         <BUILT_IN_DWARF_SP_COLUMN>: New.
543         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
544         (BUILT_IN_DWARF_SP_COLUMN): New.
545         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
546         (expand_builtin_dwarf_sp_column): New.
547         * except.h: Update to match.
548         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
549         (execute_cfa_program): Record location expression address
550         before extracting length.
551         (uw_update_context_1): Install old CFA into stack pointer column.
552         (uw_init_context_1): Set cfa_reg to stack pointer column.
553
554 2003-05-03  Richard Henderson  <rth@redhat.com>
555
556         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
557         return bool.
558         (toc_relative_expr_p): Likewise.
559         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
560         (legitimate_constant_pool_address_p): Move from rs6000.h, change
561         into a function, downcase all users.
562         (legitimate_small_data_p): Likewise.
563         (legitimate_offset_address_p): Likewise.
564         (legitimate_indexed_address_p): Likewise.
565         (legitimate_indirect_address_p): Likewise.
566         (legitimate_lo_sum_address_p): Likewise.
567         (rs6000_mode_dependent_address): Likewise.
568         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
569         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
570         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
571         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
572         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
573         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
574         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
575         * config/rs6000/rs6000-protos.h: Update.
576
577 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
578
579         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
580         (REVERSE_CONDITION): Define.
581
582         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
583         to branch_positive_comparison_operator.
584         (ccr_bit): Check that sCOND conditions are actually a positive bit.
585         (print_operand): Remove %D substitution.
586         (rs6000_emit_sCOND): Generate complement operation to ensure that
587         sCOND input is a positive bit.
588         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
589         same order as bCOND, and add the missing ones.  Remove the %D
590         substitutions from the scc patterns.
591
592         * simplify-rtx.c (simplify_relational_operation): Add case for
593         ! (fabs(x) < 0.0).
594
595 2003-05-03  Bruce Korb  <bkorb@gnu.org>
596
597         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
598         in fixincl.x
599         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
600
601 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
602
603         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
604
605 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
606
607         PR c/10604
608         * c-common.c (warn_sign_compare): Initialize to -1.
609         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
610         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
611         for C++ only.
612         (c_common_post_options): Set warn_sign_compare from extra_warnings
613         if it's still -1 at this point.
614
615         * toplev.c (maybe_warn_unused_parameter): New static variable.
616         (set_Wextra): New static function.
617         (W_options): Remove "extra".
618         (decode_W_option): Call set_Wextra.
619         (independent_decode_option): Likewise.
620         (set_Wunused): Cooperate with set_Wextra in setting
621         warn_unused_parameter.
622         (rest_of_compilation): No need to check extra_warnings as
623         well as warn_uninitialized.
624
625         * c-typeck.c (build_binary_op, build_conditional_expr):
626         No need to check extra_warnings as well as warn_sign_compare.
627         (internal_build_compound_expr): No need to check extra_warnings
628         as well as warn_unused_value.
629         * function.c (expand_function_end): No need to check extra_warnings
630         as well as warn_unused_parameter.
631         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
632         as well as warn_unused_value.
633
634         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
635
636         * Makefile.in: Disable -Werror for gengtype-lex.o.
637
638 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
639
640         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
641         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
642         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
643         * calls.c (emit_call_1): Likewise.
644         (expand_call): For calls initializing constant memory, replace
645         emission of standalone mem /u clobber with function usage entry.
646         * expr.c (emit_block_move_via_libcall): Likewise.
647         * cse.c (count_reg_usage, case EXPR_LIST): New case.
648         * flow.c (propagate_one_insn): Pass entire operand of
649         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
650         * integrate.c (try_constants): For CALL_INSNs, substitute constants
651         within the FUNCTION_USAGE also.
652         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
653         FUNCTION_USAGE lists.
654         * reload1.c (replace_pseudos_in): Renamed.
655         (reload): Use it for clobbers surviving until the end of the reload.
656
657 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
658
659         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
660         gen_lowpart on non-integer modes.
661
662         * stor-layout.c (place_field): When adjusting offset_align, use
663         desired_align, not DECL_ALIGN.
664
665 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
666
667         * c-decl.c (pending_invalid_xref_file): Remove.
668         (pending_invalid_xref_line): Remove.
669         (pending_invalid_xref_location): New.
670         (lookup_label): Use location_t and input_location directly.
671         (lookup_tag): Likewise.
672         (pending_xref_error): Likewise.
673         (c_expand_body_1): Likewise.
674         * c-common.c (x_expand_start_cond): Likewise.
675         * c-semantics.c (genrtl_for_stmt): Likewise.
676         (find_reachable_label): Likewise.
677         * expr.c (expand_expr): Likewise.
678         * integrate.c (output_inline_function): Likewise.
679         * tree-inline.c (find_alloca_call): Likewise.
680         (find_builtin_longjmp_call): Likewise.
681         * gcc.c (input_filename): Make static.
682
683 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
684
685         * config/mips/mips.md: Fix comment typo.
686
687         * config/mips/mips.c (mips_integer_op): New structure.
688         (MIPS_MAX_INTEGER_OPS): Define.
689         (mips_const_insns): Use mips_build_integer to determine the number
690         of instructions needed to load a CONST_INT.
691         (move_operand): Reject compound CONST_INTs.
692         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
693         (mips_move_integer): New fn.
694         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
695         (mips_legitimize_move): Only legitimize constants when moving
696         word or subword values.
697
698 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
699
700         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
701
702 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
703
704         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
705         modifying it.
706
707 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
708             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
709
710         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
711         Hernandez, and Kazu Hirata.  Update Richard Henderson.
712
713 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
714
715         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
716         to tentative declaration.
717
718         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
719         (SYMBOL_FLAG_SMALL_V4): Delete.
720         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
721         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
722         (rs6000_elf_in_small_data_p): Add extra section names.  Add
723         comment about TREE_PUBLIC test.
724
725         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
726         expand_stmt on result of expand_unreachable_stmt.
727
728 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
729
730         * doc/contrib.texi (Contributors): Add Daniel Berlin.
731
732 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
733
734         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
735         number of automata.
736
737         * config/rs6000/rs6000.c (symbol_ref_operand): Check
738         SYMBOL_REF_FUNCTION_P on AIX.
739         (current_file_function_operand): Same.
740         * config/rs6000/rs6000.md (call,call_value): Force non-function
741         symbol_ref into register on AIX.
742
743 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
744
745         * calls.c (struct arg_data): Move offset, slot_offset, size and
746         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
747         (initialize_argument_information): Adjust call to locate_and_pad_parm.
748         Delete alignment_pad var.  Don't calculate slot_offset here.
749         (emit_library_call_value_1): Delete alignment_pad, offset and size
750         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
751         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
752         partial in-regs here.  Formatting fixes.
753         * expr.h (struct locate_and_pad_arg_data): New struct.
754         (locate_and_pad_parm): Adjust declaration.
755         * function.c (assign_parms): Localize vars.  Use "locate" instead of
756         other arg location vars.  Don't invoke FUNCTION_ARG or
757         FUNCTION_INCOMING_ARG unless pretend_named is different from
758         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
759         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
760         Use slot_offset for stack home of reg parms.  Correct test for
761         parm passed in memory.  Formatting fixes.
762         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
763         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
764         Correct initial_offset_ptr handling.  Localize vars.  Always pad
765         locate->offset even when in_regs.
766
767 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
768
769         * Makefile.in (TREE_H): Replace location.h with input.h.
770         (GTFILES) Remove location.h
771         (gt-lists.h): Replace gt-location.h with gt-input.h
772         * input.h (input_filename, input_line): Remove variables.
773         (location_s, location_t): Move from location.h.
774         (input_location): New.
775         (input_filename, input_line): New #defines.
776         * location.h: Remove.
777         * tree.h: Replace location.h with input.h.
778         (input_filename, input_line): Remove.
779         * diagnostic.h: Replace location.h with input.h.
780         * gcc.h (input_filename, input_filename_length): Remove declarations.
781         * toplev.c (input_filename, input_line): Remove.
782         (input_location): Define.
783         (push_srcloc, pop_srcloc): Adjust.
784         * diagnostic.c (diagnostic_report_current_module): Adjust.
785
786 2003-05-02  Nick Clifton  <nickc@redhat.com>
787
788         * configure.in: Add xstormy16 to list of targets that has a nop
789         instruction and hence which can be tested to see if the
790         assembler supports the --gdwarf2 switch.
791         * configure: Regenerate.
792
793 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
794
795         PR target/8257
796         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
797         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
798         Avoid undefined shifts by making the shift operand unsigned.
799
800 2003-05-01  DJ Delorie  <dj@redhat.com>
801
802         * reload.c (find_reloads): Also check that all of a multi-reg
803         value is in the class.
804
805 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
806
807         * scan.h (lineno): Revert the rename here.
808
809 2003-05-01  Stan Shebs  <shebs@apple.com>
810
811         * config/darwin.c (darwin_encode_section_info): Call
812         default_encode_section_info.
813
814 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
815
816         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
817         (movsi_internal1): Use new mfjmpr attribute.
818         (movhi_internal): Same.
819         (movqi_internal): Same.
820         (movcc_internal1): Same.
821         (movdi_internal64): Same.
822         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
823         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
824         * config/rs6000/40x.md: Add fpu_405.
825         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
826         into power4misc automata.  Remove extraneous parentheses.
827         * config/rs6000/440.md: New file.
828         * config/rs6000/rs6000.c (processor_target_table): Add 440,
829         440fp.  Rename 405f to 405fp.
830         (function_arg_padding): Correct formatting.
831         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
832
833 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
834
835         * input.h (lineno): Rename to ...
836         (input_line): ... here.
837         * tree.h (lineno): Rename to ...
838         (input_line): ... here.
839         * scan.h (lineno): Rename to ...
840         (input_line): ... here.
841         * toplev.c (lineno): Rename to ...
842         (input_line): ... here.
843         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
844         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
845         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
846         store_parm_decls, c_expand_body_1): Likewise.
847         * c-errors.c (pedwarn_c99): Likewise.
848         * c-format.c (status_warning): Likewise.
849         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
850         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
851         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
852         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
853         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
854         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
855         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
856         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
857         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
858         * coverage.c (create_coverage): Likewise.
859         * diagnostic.c (pedwarn, sorry, error, fatal_error,
860         internal_error, warning, diagnostic_report_current_module,
861         inform): Likewise.
862         * expr.c (expand_expr): Likewise.
863         * integrate.c (expand_inline_function,
864         output_inline_function): Likewise.
865         * rtl-error.c (file_and_line_for_asm): Likewise.
866         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
867         walk_tree): Likewise.
868         * tree.c (make_node): Likewise.
869         * ada, cp, f, java, objc, treelang: Likewise.
870         * objc/objc-act.c (objc_init): Rename lineno to input_line.
871         (build_module_descriptor, build_selector_translation_table,
872         build_protocol_template, build_method_prototype_list_template,
873         build_category_template, build_selector_table,
874         build_class_template, build_super_template, build_ivar_template,
875         build_ivar_list_template, build_method_list_template,
876         build_method_template, add_instance_variable): Likewise.
877
878         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
879         name from input_filename.
880
881 2003-04-30  Eric Christopher  <echristo@redhat.com>
882             Richard Sandiford <rsandifo@redhat.com>
883
884         * configure: Regenerate from patches below.
885         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
886         for all symbolic operands.
887         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
888         to function.
889         * config/mips/linux.h: Fix typo.
890         * Merge from mips-3_4-rewrite branch:
891
892         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
893
894                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
895                 handling local labels when TARGET_ABICALLS.
896
897         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
898
899                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
900                 integer argument.
901                 (mips_expand_call): Likewise.
902                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
903                 (FIXED_REGISTERS): Clear $31 entry.
904                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
905                 (EPILOGUE_USES): Define.
906                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
907                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
908                 (override_options): Add a 'j' register class.
909                 (mips_expand_call): Handle sibcalls
910                 (mips_expand_epilogue): Handle epilogues for sibcalls.
911                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
912                 (sibcall_epilogue): New pattern.
913                 (call, call_value): Adjust calls to mips_expand_call.
914                 (sibcall, sibcall_value): New expanders.
915                 (sibcall_internal, sibcall_value_internal): New patterns.
916                 (sibcall_value_multiple_internal): New pattern.
917
918         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
919
920                 * config/mips/mips.md (extended_mips16): New attribute.
921                 (define_attr length): Default to 8 if extended_mips16 == yes.
922                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
923                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
924                 (call_internal): Set extended_mips16 to yes for direct jumps.
925                 Remove redundant mode attribute.
926                 (call_value_internal, call_value_multiple_internal): Likewise.
927                 (call_split): Remove redundant mode attribute.
928                 (call_value_split, call_value_multiple_split): Likewise.
929
930                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
931                 of unaligned offsets.
932
933                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
934                 of SYMBOL_GENERAL.
935
936         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
937
938                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
939                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
940                 for mips16 code.
941
942         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
943
944                 * config/mips/mips.h (ADDRESS_COST): Define.
945
946         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
947
948                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
949                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
950                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
951
952         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
953
954                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
955                 of a two-instruction sequence.  Add register->memory alternative.
956                 (truncdihi2, truncdiqi2): Likewise.
957                 Rework shift/truncate instructions so that they only handle right
958                 shifts of 32 (or more, in the case of arithmetic shifts).
959                 Add patterns for truncate/sign-extend.
960
961         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
962
963                 * configure.in (mips*-*-*): Check for explicit relocation support.
964                 * configure: Regenerate.
965
966         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
967
968                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
969                 and -mno-explicit-relocs.
970                 (MASK_EXPLICIT_RELOCS): Define.
971                 (TARGET_EXPLICIT_RELOCS): Use it.
972                 (mips_split_addresses): Remove declaration.
973                 * config/mips/mips.c (override_options): Update comment for
974                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
975
976         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
977
978                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
979                 a CONST as identity.  Check the return value of gen_lowpart_common.
980
981         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
982
983                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
984                 references for TARGET_EXPLICIT_RELOCS.
985                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
986                 !TARGET_MIPS16.
987
988         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
989
990                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
991                 (addsi3): Remove redundant constraints.
992                 (addsi3_internal): Use separate register & constant alternatives.
993                 Use a 'Q' constraint and "addiu" insn for the latter.
994                 (adddi3_internal_3, addsi3_internal_2): Likewise.
995
996         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
997
998                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
999                 (mips_expand_unaligned_store): Declare.
1000                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
1001                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
1002                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
1003                 (UNSPEC_ULD, UNSPEC_USD): Remove.
1004                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
1005                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
1006                 (extv, extzv): Use mips_expand_unaligned_load.
1007                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
1008                 predicate for operand 3.
1009                 (movsi_ulw, movsi_usw): Replace with...
1010                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
1011                 (movdi_uld, movdi_usd): Likewise replace with...
1012                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
1013
1014         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
1015
1016                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
1017                 * config/mips/mips.h (LEA_REGS): New register class.
1018                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
1019                 (GR_REG_CLASS_P): Include LEA_REGS.
1020                 (DANGEROUS_FOR_LA25_P): New macro.
1021                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
1022                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
1023                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
1024                 entries to LEA_REGS.
1025                 (mips_global_pic_constant_p): New function.
1026                 (override_options): Add 'e' register constraint.
1027                 (mips_secondary_reload_class): Return LEA_REGS when reloading
1028                 a dangerous constant into a class containing $25.
1029                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
1030                 (movsi_internal): Likewise.
1031
1032         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
1033
1034                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
1035                 * config/mips/mips.md (call_split): New insn.
1036                 (call_value_split, call_value_multiple_split): New insns.
1037                 (call_internal): Turn into a define_insn_and_split.  Split the
1038                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
1039                 (call_value_internal, call_value_multiple_internal): Likewise.
1040
1041         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
1042
1043                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
1044                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
1045                 (mips_encode_section_info): Don't take symbol visibility into
1046                 account if TARGET_ABICALLS.  Add more commentary.
1047                 * config/mips/mips.md: Add commentary above reloc constants.
1048
1049         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
1050
1051                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
1052                 from mips_legitimize_move.  Legitimize constant pool references.
1053                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
1054                 a REG_EQUAL note to the last instruction.
1055
1056         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
1057
1058                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
1059                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
1060                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
1061                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
1062                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
1063                 (UNSPEC_RELOC_GPREL16): Rename to...
1064                 (RELOC_GPREL16): ...this.
1065                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
1066                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
1067                 (macro_calls): New attribute.
1068                 (length): Use it to set the default length of calls.  Don't allow
1069                 calls to have delay slots if macro_calls is "yes".
1070                 (luisi, luidi): New patterns.
1071                 (lowsi, lowdi): Use '%R' to print the relocation.
1072                 (lowdi_extend): Remove.
1073                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
1074                 (call_internal): Merge alternatives.  Always use "jal".
1075                 (call_value_internal, call_value_multiple_internal): Likewise.
1076                 (reloc_gprel16): Remove.
1077                 * config/mips/mips.c (mips_got_alias_set): New variable.
1078                 (mips_classify_constant): Handle the new relocation constants.
1079                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
1080                 (mips_symbolic_address_p): Return false if generating explicit relocs.
1081                 Otherwise allow local PIC symbols to have an offset.
1082                 (mips_splittable_symbol_p): New function.
1083                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
1084                 (mips_const_insns): Always accept HIGH.
1085                 (call_insn_operand): Don't accept global symbols if using explicit
1086                 relocs.
1087                 (move_operand): Don't accept HIGH when generating PIC.
1088                 (mips_reloc, mips_lui_reloc): New functions.
1089                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
1090                 be a valid right-hand-side for a SET pattern.
1091                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
1092                 (mips_emit_high): New function.
1093                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
1094                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
1095                 address should be used.  Use mips_emit_high to generate the
1096                 high part of such an address.  Adjust the global symbol + offset
1097                 case to match the change to mips_force_temprorary.
1098                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
1099                 If generating explicit-reloc PIC, load the address of global
1100                 symbols from the GOT.  Use mips_emit_high to emit the high part
1101                 of an address.
1102                 (mips_simplify_dwarf_addr): New function.
1103                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
1104                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
1105                 (mips_expand_call): Load the addresses of global functions using
1106                 %call* relocs if generating explicit-reloc PIC.  Don't generate
1107                 an exception_receiver pattern.
1108                 (override_options): Initialize mips_got_alias_set.
1109                 (print_relocation): Remove in favour of...
1110                 (mips_reloc_string): ...this new function.
1111                 (print_operand): Handle '%R'.  Use mips_reloc_string.
1112                 (print_operand_address): Use print_operand to print the symbolic
1113                 part of a LO_SUM address.
1114                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
1115                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
1116                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
1117                 for local symbols.
1118
1119         2003-02-02  Eric Christopher  <echristo@redhat.com>
1120
1121                 * config/mips/mips.c (mips_sign_extend): Remove.
1122                 * config/mips/mips-protos.h: Ditto.
1123                 * config/mips/mips.md (movdi_internal2_extend): Remove.
1124                 (extendsidi2): Fix mode of convert_memory_address.
1125
1126         2003-01-24  Eric Christopher  <echristo@redhat.com>
1127
1128                 * config/mips/mips.md: Rewrite zero_extend* and extend*
1129                 patterns. Use explicit instructions and split after reload
1130                 for register extensions.
1131                 (ashlsi3_internal1_extend): New combiner pattern for
1132                 shift and extend combinations.
1133                 * config/mips/mips.h: Change Pmode back to ptr_mode
1134                 for performance enhancement.
1135                 * combine.c (expand_compound_operation): Make sure
1136                 that zero_extend operation is profitable.
1137
1138         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
1139
1140                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
1141                 addresses depend on ptr_mode rather than Pmode.
1142                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
1143                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
1144                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
1145                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
1146                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
1147                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
1148                 (tablejump_internal1): Remove condition.
1149                 (tablejump_internal2): Change condition to TARGET_64BIT.
1150                 (cpaddsi): Rename to...
1151                 (cpadd): ...this.
1152                 (cpadddi): Remove.
1153
1154         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
1155
1156                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
1157                 mips_address_cost, mips_check_split, double_memory_operand,
1158                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
1159                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
1160                 (mips_legitimate_address_p): Return bool.
1161                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
1162                 mips_legitimize_address, mips_legitimize_move,
1163                 mips_expand_call): Declare.
1164                 (mips_return_addr): Move outside #ifdef RTX_CODE.
1165
1166                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
1167                 (PIC_FN_ADDR_REG): New reg_class.
1168                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
1169                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
1170                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
1171                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
1172                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
1173                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
1174                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
1175                 (LEGITIMATE_PIC_OPERAND): Undefine.
1176                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
1177                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
1178                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
1179                 (FUNCTION_MODE): Change to SImode.
1180                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
1181                 most constants.  Treat const_artih_operands specially if they
1182                 occur in a PLUS or MINUS.
1183                 (CONSTANT_POOL_COST): New macro.
1184                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
1185                 Add LO_SUM handling.
1186                 (ADDRESS_COST): Undefine.
1187                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
1188                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
1189                 to call_insn_operand and remove CONST_INT.
1190
1191                 * config/mips/mips.c: Include integrate.h.
1192                 (SINGLE_WORD_MODE_P): New macro.
1193                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
1194                 (mips_constant_info, mips_address_info): New structs.
1195                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
1196                 (mips_classify_constant, mips_classify_symbol,
1197                 mips_valid_base_register_p, mips_symbolic_address_p,
1198                 mips_classify_address, mips_symbol_insns,
1199                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
1200                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
1201                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
1202                 mips_print_relocation): New functions.
1203                 (const_arith_operand): New operand predicate.
1204                 (arith_operand): Use it.
1205                 (mips_const_double_ok, mips16_simple_memory_operand,
1206                 simple_memory_operand, double_memory_operand, mips_check_split,
1207                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
1208                 mips16_gp_offset_p, mips16_output_gp_offset,
1209                 mips16_constant_after_function_p, mips16_constant): Remove.
1210                 (call_insn_operand): Be more fussy about symbolic constants.
1211                 Use register_operand.
1212                 (move_operand): Use mips_symbolic_address_p to check symbolic
1213                 operands and general_operand to check the rest.
1214                 (symbolic_operand): Use mips_classify_constant.
1215                 (mips_legitimate_address_p): Use mips_classify_address.
1216                 (mips_move_1word): Combine handling of symbolic addresses.
1217                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
1218                 (move_move_2words): Likewise.  Assume addresses are offsettable
1219                 if they need to refer to more than one word.  Add HIGH handling.
1220                 (mips_restore_gp): Use ptr_mode for the GP save slot.
1221                 (mips_expand_call): New function, combining the old mips.md
1222                 call and call_internal define_expands.  If the address isn't
1223                 a call_insn_operand, force it into a register.  For SVR4 PIC,
1224                 emit an exception_receiver instruction after the call.
1225                 (override_options): Only override flag_pic for TARGET_ABICALLS
1226                 if it is currently zero.  Allow mips_split_addresses when
1227                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
1228                 Add new register class letter, 'c'.
1229                 (print_operand): Use mips_classify_constant for constant operands.
1230                 (print_operand_address): Use mips_classify_address.
1231                 (mips_output_function_prologue): Don't use .cprestore.
1232                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
1233                 via the frame pointer if current_function_calls_eh_return.
1234                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
1235                 to mark whether a symbol is local or global.
1236                 (build_mips16_call_stub): Expect the address of the function rather
1237                 than a MEM reference to it.  Update call generation sequences.
1238                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
1239                 small-data adjustments.
1240
1241                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
1242                 length for loads and stores.
1243                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
1244                 (define_attr type): Add const and prefetch.
1245                 (define_attr length): Use mips_const_insns for const instructions.
1246                 Use mips_fetch_insns for load and store instructions.
1247                 (define_attr single_insn): New.
1248                 (define_attr can_delay): Use it.
1249                 (define_attr abicalls): Remove.
1250                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
1251                 (addsi3_internal_2): Add 'Q' constraint.
1252                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
1253                 (high): Remove.
1254                 (lowsi): Renamed from low.
1255                 (lowdi): New pattern.
1256                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
1257                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
1258                 (loadgp): Change operand 0 to an immediate_operand.
1259                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
1260                 beforehand.
1261                 (cpaddsi, cpadddi): New patterns.
1262                 (tablejump_internal3, tablejump_internal4): Remove define_expands
1263                 and associated define_splits.
1264                 (call, call_value): Use mips_expand_call.
1265                 (call_internal): New, replacing all existing call_internal* insns.
1266                 (call_value_internal): Likewise call_value_internal*.
1267                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
1268                 (untyped_call): Remove if (operands[0]) magic.
1269                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
1270                 (prefetch_di_address, prefetch_di): Likewise.
1271                 (leasi, leadi): Remove.
1272                 (reloc_gprel16): New.
1273
1274                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
1275                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
1276                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
1277
1278         2003-01-08  Eric Christopher  <echristo@redhat.com>
1279
1280                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
1281                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
1282                 configure check for libgloss.
1283                 * config/mips/elf64.h: Ditto.
1284                 * config/mips/mips.c: Remove ABI_MEABI.
1285                 * config/mips/mips.h: Ditto.
1286
1287         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
1288
1289                 Fix merge fallout.
1290                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
1291                 (muldi3_internal): Remove outdated comment.
1292                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
1293                 (*smsac_di, *umsac_di): Likewise.  Reformat.
1294                 (umulsi3_highpart): Minor formatting tweaks.
1295                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
1296                 redundant scratch operand.  Minor formatting tweak.
1297                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
1298                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
1299                 (smulsi3_highpart): As for the unsigned version.
1300                 (smulsi3_highpart_internal): Likewise.
1301                 (smulsi3_highpart_mulhi_internal): Likewise.
1302                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
1303                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
1304                 (*smul_acc_di): Remove duplicated pattern.
1305                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
1306                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
1307                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
1308
1309         2002-10-22  Eric Christopher  <echristo@redhat.com>
1310
1311                 * config/mips/mips-protos.h (mips_return_addr): New.
1312                 * config/mips/mips.c (mips_return_addr): New.
1313                 (movdi_operand): Remove.
1314                 (se_register_operand): Ditto.
1315                 (se_reg_or_0_operand): Ditto.
1316                 (se_uns_arith_operand): Ditto.
1317                 (se_arith_operand): Ditto.
1318                 (se_nonmemory_operand): Ditto.
1319                 (extend_operator): Ditto.
1320                 (highpart_shift_operator): Ditto.
1321                 (mips_initial_elimination_offset): Remove return address pointer
1322                 elimination.
1323                 (mips_reg_names): Remove $ra.
1324                 (mips_regno_to_class): Ditto.
1325                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
1326                 and TARGET_64BIT.
1327                 (POINTER_BOUNDARY): Remove.
1328                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
1329                 (PROMOTE_MODE): Promote to Pmode.
1330                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
1331                 (Pmode): Define to TARGET_64BIT.
1332                 (FUNCTION_MODE): Define as Pmode.
1333                 (mips_args): Remove deleted functions.
1334                 (SIZE_TYPE): Depend on POINTER_SIZE.
1335                 (PTRDIFF_TYPE): Ditto.
1336                 (FIXED_REGISTERS): Fix extra registers.
1337                 (CALL_USED_REGISTERS): Ditto.
1338                 (CALL_REALLY_USED_REGISTERS): Ditto.
1339                 (RAP_REG_NUM): Remove.
1340                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
1341                 (RETURN_ADDR_RTX): Define to mips_return_addr.
1342                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
1343                 (CAN_ELIMINATE): Ditto.
1344                 * config/mips/mips.md: For DImode patterns, take into account
1345                 deletions above. Split mulsidi patterns into sign_extend and
1346                 zero_extend.
1347
1348         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
1349                     Michael Meissner  <meissner@redhat.com>
1350
1351                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
1352                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
1353                 mop up unnecessarly moves through LO.
1354                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
1355                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
1356                 change mtlo/macc sequences into mul/add sequences when a three-
1357                 address mul is available.
1358                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
1359                 (*mul_sub_si): Fix contraint for operand 5.
1360                 (*muls): Use in 32-bit code as well.
1361                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
1362                 if the destination is LO.  Remove duplicate define_split.
1363                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
1364                 (*msac_di): Likewise.  Fix formatting.
1365                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
1366                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
1367                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
1368                 (*xmulsi3_neg_highpart_mulhi): Likewise.
1369                 (*mul_acc_64bit_di): Remove.
1370                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
1371
1372         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
1373
1374                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
1375                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
1376                 (MULTILIB_DIRNAMES): Remove long32.
1377                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
1378                 (MULTILIB_REDUNDANT_DIRS): Remove.
1379
1380         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
1381
1382                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
1383                 * gcc.c (driver_self_specs): New variable.
1384                 (do_self_spec): New function.
1385                 (main): Use it to process driver_self_specs.
1386
1387         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
1388
1389                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
1390                 Remove DImode define_split for !TARGET_64BIT.
1391                 (anddi3): Remove !TARGET_64BIT support from here as well.
1392                 Change operand 2's predicate to se_uns_arith_operand.
1393                 Add constant alternatives to define_insn.
1394                 (iordi3, xordi3, *nordi3): Likewise.
1395                 (anddi3_internal1, xordi3_immed): Remove.
1396
1397         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1398
1399                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
1400                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
1401                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
1402                 * config/mips/mips.md: Apply same renaming here.
1403
1404         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1405
1406                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
1407                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
1408                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
1409                 * config/mips/mips.md (define_attr cpu): Remove r4320.
1410                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
1411
1412         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1413
1414                 * config/mips/mips.c (mips16_strings): New variable.
1415                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
1416                 symbol in mips16_strings.  Free the list.
1417                 (mips_encode_section_info): Keep track of local strings.
1418
1419         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1420
1421                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
1422                 (sordered_df, sordered_sf): Remove.
1423                 * config/mips/mips.c (get_float_compare_codes): New fn.
1424                 (gen_int_relational, gen_conditional_move): Use it.
1425
1426         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1427
1428                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
1429                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
1430                 * config/mips/mips.c (fcc_register_operand): New function.
1431                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
1432                 (override_options): Allow TFmode values in float registers
1433                 if ISA_HAS_8CC.
1434                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
1435                 to fcc_register_operand.  Remove misleading source constraint.
1436                 Use mips_emit_fcc_reload.
1437                 (reload_outcc): Duplicate reload_incc.
1438
1439
1440 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
1441
1442         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
1443
1444 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
1445
1446         * tree-inline.c (inlinable_function_p): Back out last change, it's
1447         unnecessary.
1448
1449 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1450
1451         * ggc-page.c (TREE_EXP_SIZE): Define.
1452         (extra_order_size_table): New entry for expr trees with
1453         two operands.
1454
1455 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1456
1457         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
1458         (c_expand_start_cond): Adjust.
1459         (c_expand_end_cond): Don't use warning_with_file_and_file.
1460         (shadow_warning): Likewise.
1461
1462 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
1463
1464         * tree.h (DECL_POINTER_DEPTH): Remove.
1465         (struct tree_decl): Remove pointer_depth.
1466
1467 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
1468
1469         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
1470         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
1471         (rs6000_xcoff_encode_section_info): Remove.
1472         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
1473         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
1474         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
1475         Use SYMBOL_REF_FLAGS.
1476         (rs6000_elf_encode_section_info): Call default_encode_section_info for
1477         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
1478         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
1479         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
1480         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
1481         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
1482
1483 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1484
1485         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
1486
1487 2003-04-30  Andreas Schwab  <schwab@suse.de>
1488
1489         * doc/extend.texi (Other Builtins): Enclose multiple word data
1490         type in braces for @deftypefn.
1491
1492 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1493
1494         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
1495
1496         * doc/install.texi (--enable-threads): Document "gnat" option.
1497
1498 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1499
1500         * diagnostic.h (output_formatted_scalar): Tweak.
1501         * diagnostic.c (output_long_decimal): Likewise.
1502         (output_unsigned_decimal): Likewise.
1503         (output_long_unsigned_decimal): Likewise.
1504         (output_octal): Likewise.
1505         (output_long_octal): Likewise.
1506         (output_hexadecimal): Likewise.
1507         (output_long_hexadecimal): Likewise.
1508         (output_pointer): New function.
1509         (output_format): Use it.  Recognize "%p" format specifier.
1510
1511 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1512
1513         * function.c (purge_addressof_1): Postpone insn in fewer cases.
1514
1515 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1516
1517         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
1518         call abort() after running out of stack space.
1519
1520         * c-typeck.c (function_types_compatible_p): Ignore incompatible
1521         'volatile' qualifiers on a function's return type in GNU mode.
1522
1523 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
1524
1525         * expr.c (emit_group_load): Dump parallels of simd types to
1526         memory.
1527
1528 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
1529
1530         * genautomata.c (add_vect): Check undefined value for range type
1531         too.
1532
1533 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
1534
1535         * configure.in:  More general test for cmp --ignore-initial.
1536         * configure:  Regenerate.
1537
1538 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1539
1540         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
1541         (layout_decl, place_field): Likewise.
1542         Also make minor type and whitespace changes.
1543
1544         * tree.c (save_expr): Don't fold a COMPONENT_REF.
1545
1546 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
1547
1548         * calls.c (expand_call): When modes of target and valreg match, force
1549         sibcall failure when target is a MEM.
1550
1551 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1552
1553         * tree-inline.c (inlinable_function_p): Don't support inlining
1554         functions using varargs.
1555
1556         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
1557
1558         * dwarf2out.c (output_call_frame_info): No need to output EH
1559         unwind information if all_throwers_are_sibcalls.
1560
1561         * c-semantics.c (expand_unreachable_stmt): Return a tree.
1562         (expand_stmt): Update for change to expand_unreachable_stmt.
1563         (expand_unreachable_if_stmt): Likewise.
1564
1565         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
1566
1567 2003-04-29  Jason Merrill  <jason@redhat.com>
1568
1569         PR middle-end/10336
1570         * jump.c (never_reached_warning): Really stop looking if we reach
1571         the beginning of the function.
1572
1573 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
1574
1575         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
1576         Remove redundant macros.
1577         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
1578         (LOCAL_LABEL_PREFIX): Define unconditionally.
1579         (NO_DOT_IN_LABEL): Clarify comment.
1580         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
1581         definition to "long int".
1582
1583 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
1584
1585         bootstrap/10452
1586         * gengtype-yacc.y: Improve portability.
1587
1588 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1589
1590         * config.gcc: Install obsolete target list for GCC 3.3.
1591         * doc/install.texi: Mention in specific-target instructions
1592         that certain configurations are deprecated.
1593
1594 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1595
1596         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
1597
1598 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1599
1600         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
1601         * gcc.c (display_help): Likewise.
1602         * toplev.c (f_options): Likewise.
1603         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
1604         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
1605         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
1606         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
1607         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
1608
1609 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
1610
1611         * varasm.c (default_assemble_visibility): Use assemble_name.
1612
1613 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
1614
1615         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
1616         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
1617         (SIZE_TYPE): New macro.
1618         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
1619         (SET_ASM_OP): New macro.
1620         (HANDLE_SYSV_PRAGMA): New macro.
1621         (ASM_WEAKEN_LABEL): New macro.
1622
1623 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
1624
1625         PR c++/10180
1626         * tree-inline.c (expand_call_inline): Call push_srcloc when
1627         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
1628
1629 2003-04-28  Mike Stump  <mrs@apple.com>
1630
1631         * gdbinit.in: Update to reflect new identifier structure.
1632
1633 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
1634
1635         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
1636         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
1637         struct tree_complex, struct tree_vector): Remove RTL field.
1638         (CONSTRUCTOR_ELTS): Use elt 0.
1639         * tree.def (CONSTRUCTOR): Delete first of its two operands.
1640         * varasm.c (output_constant_def): Remove early exit if
1641         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
1642         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
1643         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
1644         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
1645
1646 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1647
1648         * c-decl.c (finish_decl): When prototype with asmspec is found
1649         for built-in, adjust built_in_decls as well as expr.c decls.
1650         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
1651         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
1652         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
1653
1654 2003-04-28  Richard Henderson  <rth@redhat.com>
1655
1656         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
1657         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
1658         integral constant mult operand.
1659         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
1660         (const_smulsi3_highpart_v8plus): Likewise.
1661         (const_smulsi3_highpart): Likewise.
1662         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
1663         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
1664         (const_umulsi3_highpart_v8plus): Likewise.
1665         (const_umulsi3_highpart): Likewise.
1666
1667 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1668
1669         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
1670         Define as 1.
1671
1672 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1673
1674         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
1675
1676 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1677
1678         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
1679         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
1680         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
1681         functions.
1682         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
1683
1684 2003-04-28  Nick Clifton  <nickc@redhat.com>
1685
1686         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
1687
1688 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1689
1690         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
1691         output_constant_def, use its result instead of TREE_CST_RTL (exp).
1692         Can assume it has the form (mem (symbol_ref ".LCxxx")).
1693         (expand_expr <COMPONENT_REF>): Can always just extract the
1694         relevant field of a CONSTRUCTOR.
1695         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
1696         ARRAY_RANGE_REF>): Make control flow explicit.
1697         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
1698         an INTEGER_CST.
1699
1700 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1701
1702         * reload1.c (reg_set_luid): Fix a comment typo.
1703
1704 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1705
1706         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
1707         struct deferred_string, const_str_htab): Kill.
1708         (n_deferred_strings): New static variable.
1709         (build_constant_desc): Set SYMBOL_REF_DECL of the new
1710         symbol_ref to point to the constant.
1711         (output_constant_def): When a deferred string is forced out,
1712         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
1713         (mark_constant): Likewise.
1714         (maybe_output_constant_def_contents): When deferring a string
1715         constant, just set STRING_POOL_ADDRESS_P and increment
1716         n_deferred_strings.
1717         (mark_constant_pool): Check n_deferred_strings, not the size
1718         of const_str_htab.
1719         (init_varasm_once): No need to create const_str_htab.
1720
1721         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
1722         SYMBOL_REF_DECL points to a constant.
1723
1724 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
1725
1726         * varasm.c (output_constant_def): Split out two new static
1727         functions, build_constant_desc and maybe_output_constant_def_contents.
1728         Restructure for comprehensibility.  Don't call
1729         output_addressed_constants.  Treat defstr being non-NULL for
1730         STRING_POOL_ADDRESS_P constants as an invariant.
1731         (struct deferred_string): Remove labelno field.
1732         (output_constant_def_contents): Kill labelno argument. Call
1733         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
1734         asm_out.internal_label.
1735         (mark_constant): Update call to output_constant_def_contents.
1736         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
1737         constants as an invariant.
1738
1739 2003-04-26  Richard Henderson  <rth@redhat.com>
1740
1741         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
1742         (ix86_expand_call, ix86_rtx_consts): Likewise.
1743
1744 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1745
1746         * doc/md.texi (cmpstr): Document additional restrictions.
1747
1748 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1749
1750         * flags.h (time_report): Remove.
1751         * timevar.c (timevar_enable): New.
1752         (TIMEVAR_ENABLE): Remove, use timevar_enable.
1753         (timevar_init): Rename from init_timevar.
1754         * timevar.h (timevar_init): Rename from init_timevar.
1755         * toplev.c (time_report): Make static.
1756         (do_compile): Conditionally call init_timevar first.
1757         (preprocess_options): Move some code to do_compile.
1758
1759 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
1760
1761         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
1762
1763 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1764
1765         * _cpp_lex_direct: Remove pointless code.
1766
1767 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
1768
1769         * doc/extend.texi (Function Attributes): Document "near" and "far"
1770         for 68HC11 and 68HC12.
1771
1772 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1773
1774         * expr.c (store_field): When making temporary for store, don't
1775         make it TYPE_QUAL_CONST.
1776
1777 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1778
1779         * toplev.c (read_integral_parameter):  Use "argument" in error
1780         message to distinguish it from actual invalid options.
1781
1782 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1783
1784         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
1785         addition of __PIC__ and __pic__ macros.
1786         * config/xtensa/xtensa.h: Clean up indentation.
1787
1788 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1789
1790         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
1791         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
1792         (SUBTARGET_CPP_SPEC): Define.
1793         (LIB_SPEC): Delete.
1794         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
1795         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
1796         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
1797         Define.
1798         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1799         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
1800
1801 2003-04-25  H.J. Lu <hjl@gnu.org>
1802
1803         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
1804         for return mode.
1805         (ia64_expand_builtin): Set rmode to SImode for
1806         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
1807         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
1808         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
1809         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
1810
1811 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1812
1813         * configure.in (make_compare_target):  Test for GNU cmp and set this
1814         variable appropriately.
1815         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
1816         compare4-lean): Rename actual targets to slowcompare*.  New compare*
1817         targets depend on names based on make_compare_target.
1818         * configure:  Regenerated.
1819
1820 2003-04-25  Richard Henderson  <rth@redhat.com>
1821
1822         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
1823         to clobber ar.pfs and ar.unat.
1824         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
1825         fix test for spilling ar.pfs to the stack.
1826
1827 2003-04-25  Richard Henderson  <rth@redhat.com>
1828
1829         PR opt/10315
1830         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
1831         checks during reload; use validize_mem instead of adjust_address.
1832
1833 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
1834
1835         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
1836         return values from recog_memoized().
1837
1838 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1839
1840         PR opt/8705
1841         * gcse.c (try_replace_reg): On a successful substitution of a constant
1842         into a single set, try to simplify the source of the set.
1843         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
1844         constant source.
1845
1846 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
1847
1848         * cpplex.c (cpp_token_len): Tighten up.
1849         (cpp_token_as_text): Need extra byte now.
1850         * cpplib.c (glue_header_name): Need extra 2 bytes.
1851         * cppmacro.c (cpp_macro_definition): Need extra byte.
1852
1853 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
1854
1855         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
1856         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
1857         where they might be not present. Use their _sp64 equivalent
1858         instead.
1859
1860 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
1861
1862         * i386.md (cvtsi2sdq): Fix typo in previous patch.
1863
1864 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
1865
1866         * configure.in: Check whether mbstowcs works.
1867         * configure, config.in: Regenerate.
1868         * intl.c: Use HAVE_WORKING_MBSTOWCS.
1869
1870 2003-04-24  H.J. Lu <hjl@gnu.org>
1871
1872         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
1873         for __sync_bool_compare_and_swap_di for int return type.
1874
1875         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
1876         Change return type to int.
1877         (__sync_bool_compare_and_swap): Likewise.
1878
1879 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
1880
1881         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
1882         looking for fallthru edge.
1883
1884         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
1885         Fix.
1886         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
1887         athlon-fvector): New.
1888         (athlon_*): Revisit to match new optimization guide.
1889         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
1890         * i386.md (cvt??2?? patterns): Fix modes.
1891         (fistp patterns): Set modes.
1892
1893         Accidentaly commited with my earlier reload patch:
1894         PR c/10308
1895         * reload.c (find_reloads_address_1): Reload plus at the place of
1896         index register.
1897
1898 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1899
1900         New GCOV_TAG_FUNCTION layout
1901         * coverage.c (struct function_list): Replace name with ident.
1902         (struct counts_entry): Likewise.
1903         (fn_ident): New.
1904         (htab_counts_entry_hash, htab_counts_entry_eq,
1905         htab_counts_entry_del): Adjust.
1906         (reads_count_file, get_coverage_counts,
1907         coverage_begin_output, coverage_end_function): Adjust.
1908         (build_fn_info_type, build_fn_info_value): Likewise.
1909         * gcov-dump.c (tag_function): Adjust.
1910         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1911         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1912         * gcov.c (struct function_info): Add ident.
1913         (read_graph_file, read_count_file): Adjust.
1914         * libgcov.c (gcov_exit): Adjust.
1915
1916 2003-04-23  Richard Henderson  <rth@redhat.com>
1917
1918         PR opt/8300
1919         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
1920         after initialize_uninitialized_subregs; update reg info assuming
1921         new pseudos were created.
1922
1923 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
1924
1925         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
1926         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
1927         (lex_string): Take cpp_string with full spelling.
1928         (cb_ident): Update.
1929         (c_lex): Update diagnostics.
1930         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
1931         (create_literal): New.
1932         (lex_string): Unterminated literals have type CPP_OTHER.
1933         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
1934         for CPP_OTHER.
1935         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
1936         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
1937         * cpplib.c (parse_include, do_line, do_linemarker,
1938         destringize_and_run): Update for token storing full spelling.
1939         * cpplib.h: Update token spelling types.
1940         * cppmacro.c (stringify_arg, check_trad_stringification):
1941         Update for token storing full spelling.
1942
1943 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
1944
1945         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
1946
1947 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
1948
1949         * arm.h (TARGET_OPTIONS): Add value field.
1950
1951 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
1952
1953         * doc/extend.texi: Remove duplicate 2003 copyright date.
1954
1955 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1956
1957         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
1958         (libgcov.a): Depends on LIBGCC_DEPS.
1959         * basic-block.h (profile_info): Moved here from coverage.h. Made
1960         a pointer.
1961         * coverage.c (struct function_list): Fixed array of counter types.
1962         (struct counts_entry): Keyed by counter type, contains summary.
1963         (profile_info): Moved to profile.c.
1964         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
1965         vars.
1966         (profiler_label): Remove.
1967         (ctr_labels): New.
1968         (set_purpose, label_for_tag, build_counter_section_fields,
1969         build_counter_section_value, build_counter_section_data_fields,
1970         build_counter_section_data_values, build_function_info_fields,
1971         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
1972         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
1973         build_ctr_info_value, build_gcov_info): New.
1974         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
1975         (reads_counts_file): Adjust.
1976         (get_coverage_counts): Takes counter number. Add summary
1977         parameter. Adjust.
1978         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
1979         create counter array labels.
1980         (coverage_end_function): Adjust.
1981         (create_coverage): Adjust.
1982         (find_counters_section): Remove.
1983         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
1984         (struct section_info, struct profile_info): Remove.
1985         (profile_info): Moved to basic-block.h.
1986         (coverage_counter_ref): Takes a counter number.
1987         (get_coverage_counts): Takes a counter number. Added summary
1988         parameter.
1989         (find_counters_section): Remove.
1990         * gcov-dump.c (tag_arc_counts): Rename to ...
1991         (tag_counters): ... here. Adjust.
1992         (tag_table): Move tag_counters to 3rd entry. Remove
1993         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
1994         (dump_file): Check for counter tag values here.
1995         (tag_summary): Adjust.
1996         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
1997         * gcov-io.h (GCOV_LOCKED): New.
1998         (GCOV_TAG_ARC_COUNTS): Rename to ...
1999         (GCOV_TAG_COUNTS_BASE): ... here.
2000         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
2001         Remove.
2002         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
2003         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
2004         GCOV_TAG_IS_COUNTER): New.
2005         (struct gcov_ctr_summary): New.
2006         (struct gcov_summary): Adjust.
2007         (struct gcov_counter_section): Remove.
2008         struct gcov_counter_section_data): Remove.
2009         (struct gcov_function_info): Rename to ...
2010         (struct gcov_fn_info): ... here. Adjust.
2011         (struct gcov_ctr_info): New.
2012         (struct gcov_info): Adjust.
2013         * gcov.c (read_count_file): Adjust.
2014         (output_lines): Adjust.
2015         * libgcov.c (gcov_exit): Adjust.
2016         (__gcov_flush): Adjust.
2017         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
2018         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
2019         probably_never_executed_bb_p, compute_frequency_function): Adjust
2020         profile_info use.
2021         * profile.c (struct counts_entry): Remove.
2022         (profile_info): Define here.
2023         (get_exec_counts): Adjust get_coverage_counts call.
2024         (compute_branch_probablilities): Remove find_counters_section
2025         call.
2026         (gen_edge_profiler): Adjust coverage_counter_ref call.
2027         * tracer.c (tail_duplicate): Adjust profile_info use.
2028
2029 2003-04-23  Roger Sayle  <roger@eyesopen.com>
2030
2031         PR optimization/10339
2032         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
2033         directly instead of unsafely transforming call into a memcmp.
2034         (expand_builtin_strncmp): Likewise.
2035
2036 2003-04-22  Roger Sayle  <roger@eyesopen.com>
2037
2038         * alias.c (mark_constant_function):  Check for constancy and
2039         purity even of void functions.  Update both the function decl
2040         and the cgraph RTL info with the results.
2041
2042 2003-04-22  Roger Sayle  <roger@eyesopen.com>
2043
2044         * real.c (do_add): Change to return a bool indicating that the
2045         result of the operation may be inexact due to loss of precision.
2046         (do_multiply): Likewise.
2047         (do_divide): Likewise.
2048
2049 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
2050             Loren James Rittle  <ljrittle@acm.org>
2051
2052         * dwarf2out.c (fde_table_allocated): Mark with GTY.
2053         (decl_die_table_allocated): Likewise.
2054         (abbrev_die_table_allocated): Likewise.
2055         (line_info_table_allocated): Likewise.
2056         (separate_line_info_table_allocated): Likewise.
2057         (pubname_table_allocated): Likewise.
2058         (arange_table_allocated): Likewise.
2059         (ranges_table_allocated): Likewise.
2060         (decl_die_table_in_use): Unconditionalize; mark with GTY.
2061         (abbrev_die_table_in_use): Likewise.
2062         (line_info_table_in_use): Likewise.
2063         (separate_line_info_table_in_use): Likewise.
2064         (pubname_table_in_use): Likewise.
2065         (arange_table_in_use): Likewise.
2066         (ranges_table_in_use): Likewise.
2067         (have_location_lists): Likewise.
2068         (emitcount): New GTY-marked static, moved...
2069         (maybe_emit_file): ...from here.
2070         (label_num): New GTY-marked static, moved...
2071         (gen_internal_sym): ...from here.
2072
2073 2003-04-22  Richard Henderson  <rth@redhat.com>
2074
2075         PR 8866
2076         * rtl.h (MEM_NOTRAP_P): New.
2077         (MEM_COPY_ATTRIBUTES): Copy it.
2078         * rtlanal.c (may_trap_p): Check it.
2079         * expr.c (do_tablejump): Set it.
2080         * doc/rtl.texi (Flags): Document it.
2081
2082         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
2083
2084 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
2085
2086         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
2087         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
2088
2089 2003-04-22  Vincent Celier <celier@gnat.com>
2090
2091         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
2092         --enable-threads=gnat.
2093         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
2094         * configure.in: Add gnat to the list of thread packages
2095         * configure: Rebuild.
2096         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
2097
2098 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
2099
2100         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
2101
2102 2003-04-22  Devang Patel  <dpatel@apple.com>
2103
2104         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
2105         parameter count.
2106         (_cpp_copy_replacement_text): Same.
2107
2108 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
2109
2110         * c-lex.c (c_lex): Handle CPP_OTHER differently.
2111         * cppexp.c (_cpp_parse_expr): Similarly.
2112         * cpplex.c (SPELL_CHAR): Remove.
2113         (_cpp_lex_direct): Stray chars are saved as byte strings.
2114         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
2115         handle SPELL_CHAR.
2116         (cpp_avoid_paste): Update handling of CPP_OTHER.
2117         * cpplib.h: Spell CPP_OTHER like a number.
2118         (struct cpp_token): Remove member c.
2119         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
2120
2121 2003-04-22  David Turner <novalis@gnu.org>
2122
2123         * gbl-ctors.h: Add special license exception.
2124         * libgcc2.h: Likewise.
2125         * tsystem.h: Likewise.
2126         * gcov-io.h: Likewise.
2127
2128 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
2129
2130         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
2131         macro defaulting to original BRANCH_COST heuristic.
2132         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
2133
2134         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
2135
2136 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
2137
2138         * config/rs6000/t-spe: Merge in t-fprules into file.
2139
2140         * config.gcc: Add t-spe to powerpc-eabispe.
2141
2142 2003-04-22  Kean Johnston  <jkj@sco.com>
2143
2144         * tlink.c (recompile_files): Add missing '=' to putenv calls
2145
2146 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2147
2148         * ginclude/stddef.h: Provide C++ safe offsetof.
2149
2150 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
2151
2152         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
2153         for reg notes, if there are no substitutions, just use a SUBREG.
2154
2155 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2156
2157         * Makefile.in (calls.o): Depend on except.h.
2158         * calls.c: Include except.h.
2159         (emit_call_1): Call note_eh_region_may_contain_throw if
2160         appropriate.
2161         * except.c (eh_region): Add may_contain_throw.
2162         (expand_eh_region_end_cleanup): Do not include handler code when
2163         it cannot be reached.
2164         (note_eh_region_may_contain_throw): New function.
2165         * except.h (note_eh_region_may_contain_throw): New function.
2166
2167 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2168
2169         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
2170         changes.
2171
2172 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
2173
2174         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
2175         64-bit long doubles.
2176
2177 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
2178
2179         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
2180         a number of conversions required for type consistency and previously
2181         stripped off by STRIP_NOPS.
2182
2183         * calls.c (expand_call): Prevent sibcall optimization for calls to
2184         nested subprograms.
2185
2186         * expmed.c (extract_bit_field): Reverse operands of && condition to
2187         prevent a potential division by zero in the previously first branch.
2188         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
2189
2190 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
2191
2192         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
2193         (subrange_type_die): Likewise.
2194         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
2195         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
2196
2197 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2198
2199         Break out coverage routines to new file.
2200         * Makefile.in (COVERAGE_H): New variable
2201         (C_OBJS): Add coverage.o
2202         (coverage.o): New target.
2203         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
2204         dependencies.
2205         (GTFILES): Adjust.
2206         (gt-coverage.h): New target.
2207         (gt-profile.h): Remove.
2208         * profile.h: Remove. Move to ...
2209         * coverage.h: ... here. New. #include gcov-io.h.
2210         * gcov-io.h: Move function definitions to ...
2211         * gcov-io.c: ... here. New.
2212         * profile.c: Move coverage routines to coverage.c.
2213         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
2214         end_branch_prob): Adjust.
2215         * coverage.c: New. Coverage routines from profile.c
2216         (coverage_counter_ref, coverage_init, coverage_finish,
2217         coverage_end_function, coverage_begin_output,
2218         coverage_counter_ref, get_coverage_counts): Define.
2219         * gcov-dump.c, gcov.c: #include gcov-io.c.
2220         * libgcov.c: Likewise. Adjust.
2221         * loop-init.c: Don't #include profile.h
2222         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
2223         * rtl.h: Add coverage prototypes.
2224         * toplev.c (compile_file): Init coverage, not branch_prob.
2225         Always call coverage_finish.
2226         (rest_of_compilation): Call coverage_end_function.
2227
2228 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
2229
2230         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
2231
2232 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
2233
2234         * c-ppoutput.c (cb_include): Don't take a cpp_token.
2235         * cppfiles.c: Don't undef strcmp.
2236         (find_include_file): Don't take a cpp_token.  Check for empty
2237         file names.
2238         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
2239         (cpp_push_include): Simplify.
2240         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
2241         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
2242         (parse_include): Similary.  Don't check for zero-length filenames.
2243         (do_include_common, do_pragma_dependency): Update accordingly.
2244         * cpplib.h (struct cpp_callbacks): Change prototype of include.
2245
2246 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2247
2248         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
2249         details of conflict handling.
2250
2251         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
2252         when conversion overflows.
2253
2254         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
2255
2256         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
2257         before clearing.
2258
2259 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2260
2261         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
2262         have the same form as the old RTL.
2263
2264 2003-04-21  Andreas Jaeger  <aj@suse.de>
2265
2266         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
2267
2268 2003-04-20  Chris Lattner  <sabre@nondot.org>
2269             Zack Weinberg  <zack@codesourcery.com>
2270
2271         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
2272         genrtl_cleanup_stmt.  Correct comment at head of
2273         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
2274
2275         * stmt.c (struct nesting): Kill n_function_calls.
2276         (expand_start_bindings): Don't set
2277         thisblock->data.block.n_function_calls.
2278         (expand_end_bindings): Compare function_call_count against 0.
2279         (expand_cleanups): Kill DONT_DO argument; all callers passed
2280         NULL_TREE. All callers updated to match.
2281
2282 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
2283
2284         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
2285         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
2286         (output_constant_def): Remove code predicated on
2287         defer_addressed_constants_flag.
2288
2289         * output.h: Remove prototypes of deleted functions.
2290         * c-typeck.c (constructor_subconstants_deferred): Kill.
2291         (struct initializer_stack): Remove 'deferred' field.
2292         (start_init): Remove all references to the above.
2293         (finish_init): Likewise. Also remove never-executed call to
2294         output_deferred_addressed_constants.  Pull assignment to
2295         defstr out of if expression.
2296
2297 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
2298
2299         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
2300         NOTE_NEWLINE): Remove.
2301         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
2302         to handle new form of line note type.
2303
2304 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
2305
2306         * target.h (encode_section_info): Add new argument carrying
2307         the RTL to be modified by the hook.
2308
2309         * varasm.c (make_decl_rtl, output_constant_def): Update calls
2310         to encode_section_info.
2311         (default_encode_section_info): Take and use RTL argument,
2312         don't use TREE_CST_RTL or DECL_RTL.
2313         * output.h: Update prototype of default_encode_section_info.
2314         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
2315         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
2316         Update calls to encode_section_info.
2317
2318         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
2319         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
2320         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
2321         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
2322         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
2323         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
2324         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
2325         except for PE dllimport/dllexport.  Update calls to
2326         default_encode_section_info.
2327
2328         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
2329         Update prototypes.
2330
2331         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
2332
2333 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2334
2335         PR/8705
2336         * pa.md (movccfp): New expander.
2337         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
2338         Reverse fcmp conditions.
2339
2340 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2341
2342         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
2343         of operand 1 correctly.
2344
2345 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2346
2347         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
2348         * gcov.c (output_lines): Don't be so fussy about going past EOF.
2349
2350 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
2351
2352         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
2353         (cppcharset.o): New target.
2354         * c-lex.c (is_extended_char): Move to cppcharset.c.
2355         (utf8_extend_token): Delete.
2356         * cppcharset.c: New file.
2357         * cpphash.h (_cpp_valid_ucn): New.
2358         * cpplex.c (lex_identifier): Update prototype.
2359         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
2360         escapes.
2361         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
2362         in cppcharset.c.
2363         (lex_number, lex_identifier, cpp_parse_escape): Update.
2364         (_cpp_lex_direct): Update to handle UCNs.
2365         (cpp_avoid_paste): Don't paste to form a UCN.
2366
2367 2003-04-19  Roger Sayle  <roger@eyesopen.com>
2368
2369         * builtins.c (expand_builtin):  Don't expand a pure or const
2370         built-in function if the result will be ignored and none of
2371         its arguments are volatile.
2372
2373 2003-04-19  Kean Johnston  <jkj@sco.com>
2374
2375         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
2376         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
2377         target fragment now: t-sco5; dont compile crti.o.
2378         * config/i386/sco5.h: major overhaul to remove all COFF remnants
2379         and to use elfos.h for most definitions.
2380         (BSS_SECTION_ASM_OP): set correct segment attributes.
2381         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
2382         (DWARF2_UNWIND_INFO): Always set to 1.
2383         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
2384         (MD_STARTFILE_PREFIX_1): Define.
2385         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
2386         (DEFAULT_LINKER): Define if not specified to configure.
2387         (CTORS_SECTION_ASM_OP): Remove COFF crud.
2388         (DTORS_SECTION_ASM_OP): Remove COFF crud.
2389         (WINT_TYPE): Define.
2390         (SDB_DEBUGGING_INFO): Remove.
2391         (EXTRA_SECTIONS): Likewise.
2392         (EXTRA_SECTION_FUNCTIONS): Likewise.
2393         (CTOR_LIST_BEGIN): Likewise.
2394         (CTOR_LIST_END): Likewise.
2395         (INIT_SECTION_FUNCTION): Likewise.
2396         (FINI_SECTION_FUNCTION): Likewise.
2397         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
2398         (LOCAL_LABEL_PREFIX): Likewise.
2399         (NON_SAVING_SETJMP): Likewise.
2400         (RETURN_POPS_ARGS): Likewise.
2401         (ASM_OUTPUT_SKIP): Likewise.
2402         (TARGET_ASM_NAMED_SECTION): Likewise.
2403         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2404         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2405         (ASM_OUTPUT_IDENT): Likewise.
2406         (ASM_OUTPUT_CASE_LABEL): Likewise.
2407         (ASM_OUTPUT_ASCII): Likewise.
2408         (ASM_OUTPUT_LIMITED_STRING): Likewise.
2409         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2410         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2411         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2412         (ASM_FINISH_DECLARE_OBJECT): Likewise.
2413         (ASM_DECLARE_OBJECT_NAME): Likewise.
2414         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2415         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2416         (ASM_DECLARE_RESULT): Likewise.
2417         (ASM_WEAKEN_LABEL): Likewise.
2418         (SUPPORTS_WEAK): Likewise.
2419         (APPLY_RESULT_SIZE): Likewise.
2420         (LPREFIX): Likewise.
2421         (ALIGN_ASM_OP): Likewise.
2422         (ASCII_DATA_ASM_OP): Likewise.
2423         (IDENT_ASM_OP): Likewise.
2424         (ASM_SHORT): Likewise.
2425         (ASM_LONG): Likewise.
2426         (TYPE_ASM_OP): Likewise.
2427         (SIZE_ASM_OP): Likewise.
2428         (STRING_ASM_OP): Likewise.
2429         (SKIP_ASM_OP): Likewise.
2430         (EH_FRAME_SECTION_ASM_OP): Likewise.
2431         (READONLY_DATA_SECTION_ASM_OP): Likewise.
2432         (INIT_SECTION_ASM_OP): Likewise.
2433         (FINI_SECTION_ASM_OP): Likewise.
2434         (TEXT_SECTION_ASM_OP): Likewise.
2435         (DATA_SECTION_ASM_OP): Likewise.
2436         (TYPE_OPERANT_FORMAT): Likewise.
2437         (ASM_SPEC): Remove COFF code.
2438         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
2439         cause -pg to emit an error; use pcrt1elf.o with -pp
2440         (ENDFILE_SPEC): Likewise.
2441         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
2442         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
2443         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
2444         add -z alt_resolve to support weak symbols the way GCC wants them.
2445         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
2446         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
2447         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
2448         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
2449         (CRTSTUFF_T_CFLAGS_S): Define.
2450         (MULTILIB_OPTIONS): Likewise.
2451         (MULTILIB_DIRNAMES): Likewise.
2452         (MULTILIB_MATCHES): Likewise.
2453         (MULTILIB_EXTRA_OPTS): Likewise.
2454         (LIBGCC): Likewise.
2455         (INSTALL_LIBGCC): Likewise.
2456         (crti.o): Remove.
2457         * config/i386/t-sco5gas: Remove.
2458         * doc/install.texi: Updated for new OpenServer instructions.
2459         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
2460
2461 2003-04-19  Kean Johnston  <jkj@sco.com>
2462
2463         * fixinc/check.tpl: Allow user to over-ride diff program.
2464         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
2465         (sco_math): Added test for SCO math header files.
2466         (sco_regset): Added check for conflicts with ieeefp.h.
2467         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
2468         * fixinc/fixincl.x: Regenerated
2469         * fixinc/tests/base/math.h: Added sco_math tests.
2470         * fixinc/tests/base/string.h: New file.
2471         * fixinc/tests/base/sys/regset.h: New file.
2472
2473 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2474
2475         * cpphash.h (struct cpp_buffer): Remove backup_to.
2476         * cpplex.c (BACKUP, get_effective_char): Die.
2477         (_cpp_skip_block_comment): Assume '*' is location on entry.
2478         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
2479         (IF_NEXT_IS): Update.
2480         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
2481
2482 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
2483
2484         * README.Portability: Move to a new section and obsolete K+R
2485         portability issues.
2486
2487 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
2488
2489         * rtlanal.c (subreg_offset_representable_p):  Fix call of
2490         subreg_lowpart.
2491
2492 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2493
2494         * cpphash.h (struct cpp_reader): New member warned_dollar.
2495         * cpplex.c (continues_identifier_p): New function.
2496         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
2497         lex_number and lex_string, and simplify.
2498         (parse_slow, unescaped_terminator_p): Die.
2499         (_cpp_lex_direct): Update.
2500
2501 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2502
2503         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
2504
2505 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
2506
2507         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
2508         fork behaviour.
2509
2510 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2511
2512         * cppexp.c (eval_token): Permit true and false even if pedantic.
2513
2514 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2515
2516         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
2517
2518 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2519
2520         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
2521         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
2522         (struct include_file): Remove fefcnt, mapped members.
2523         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
2524         (read_include_file): Don't use mmap, terminate buffers in '\r'.
2525         (purge_cache): Don't use munmap.
2526         * cpphash.h (CPP_BUF_COLUMN): Update.
2527         (lexer_state): Remove lexing_comment.
2528         (struct _cpp_line_note): New.
2529         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
2530         next_line and need_line.  Remove col_adjust and saved_flags.
2531         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
2532         _cpp_skip_block_comment, scan_out_logical_line): New.
2533         (_cpp_init_mbchar): Remove.
2534         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
2535         (cpp_read_main_file): Set line to 1 earlier.
2536         (post_options): -traditional-cpp doesn't want trigraphs.
2537         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
2538         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
2539         _cpp_get_fresh_line): New.
2540         (handle_newline, skip_escaped_newlines, trigraph_p,
2541         continue_after_nul, _cpp_init_mbchar): Remove.
2542         (get_effective_char): Update.
2543         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
2544         (skip_line_comment): Simplify.
2545         (skip_whitespace, parse_identifier, parse_slow, parse_number,
2546         parse_string): Update.
2547         (cpp_lex_direct): Use clean lines and process line notes.  Update.
2548         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
2549         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
2550         directly.
2551         (_cpp_handle_directive): Don't set saved_flags.
2552         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
2553         cpp_undef, handle_assertion, cpp_push_buffer): Update.
2554         (_cpp_pop_buffer): Free notes.
2555         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
2556         * cpppch.c (cpp_read_state): \n terminate buffer.
2557         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
2558         (copy_comment): Use _cpp_skip_block_comment.
2559         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
2560         Simplify.
2561         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
2562         save_replacement_text): Update.
2563         (scan_out_logical_line): Update to use clean lines and process
2564         line notes.
2565         * fix-header.c (read_scan_file): Update.
2566
2567 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
2568
2569         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
2570         null begin parameter (as well as pointer to null).
2571         (__deregister_frame_info_bases): Likewise.
2572
2573 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2574
2575         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
2576         hard or virtual register and copy into pseudo if replacement fails.
2577
2578         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
2579
2580         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
2581
2582 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
2583
2584         * calls.c (expand_call): Move special case for constructor calls
2585         to right place. Ensures constructor calls used to initialize
2586         arguments get a clean outgoing argument block for themselves.
2587         Move check for stack deallocation completeness until after last
2588         deallocation.  Add stack_pointer_delta to set of state
2589         variables saved and restored along with current stack_level.
2590
2591         * integrate.c (expand_inline_function): Ensure non-const actuals
2592         don't end up const in the caller's flow after conversion to possibly
2593         const formal type.
2594
2595 2003-04-18  Vincent Celier  <celier@gnat.com>
2596
2597         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
2598         and *_DIV_EXPR as TRUNC_*_EXPR.
2599
2600 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
2601
2602         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
2603         for orphaned jump tables.
2604
2605 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2606
2607         * reload1.c: Revert my previous patch on 2002-04-17.
2608
2609 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2610
2611         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
2612         Add Segher Boessenkool.
2613
2614 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
2615
2616         PR c/9177
2617         * c-decl.c (c_expand_body): Don't garbage collect the function
2618         body if we are going to dump it later.
2619
2620 2003-04-18  Richard Henderson  <rth@redhat.com>
2621
2622         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
2623         (alpha_end_function): Don't set them.
2624         (decl_in_text_section): Remove.
2625         (alpha_encode_section_info): Remove.
2626         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
2627         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
2628         sections, rather than decl_in_text_section results.
2629
2630 2003-04-18  Roger Sayle  <roger@eyesopen.com>
2631
2632         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
2633         and SIGN_EXTRACT.
2634
2635 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2636
2637         PR optimization/7675
2638         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
2639         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
2640         nested functions if they refer to declarations from parent functions.
2641         * stmt.c (expand_decl): Don't put automatic variables in registers
2642         if the DECL_NONLOCAL flag is set.
2643
2644 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
2645
2646         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
2647         consider those to be movable where the source matches
2648         want_to_gcse_p.
2649         (update_ld_motion_stores): In comment, refer to
2650         compute_ld_motion_mems for validity of replacement.
2651
2652 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
2653
2654         * gcov-dump.c (tag_summary): Remove max_sum
2655         * gcov-io.h (gcov_summary, gcov_write_summary,
2656         gcov_read_summary): Kill max_sum.
2657         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
2658         message more verbose.
2659
2660         * emit-rtl.c (subreg_hard_regno):  Check that register is
2661         representable.
2662
2663         * reload.c (reload_inner_reg_of_subreg):  When register is not
2664         representable, reload the whole thing.
2665         (find_reloads): Likewsie.
2666         * rtlanal.c (subreg_representable_p):  New function.
2667
2668         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
2669         allow negative probabilities for edges from the call to exit.
2670         (branch_prob): Do not add fake edges for functions that may return
2671         twice.
2672
2673 2003-04-17  DJ Delorie  <dj@redhat.com>
2674
2675         * toplev.c (target_options): Add value field.
2676         (set_target_switch): Handle target options with values.
2677         * doc/tm.texi: Document how fixed vs variable target
2678         options work.
2679         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
2680         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
2681         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
2682         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
2683         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
2684         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
2685         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
2686         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
2687         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
2688         Add value initializer to target options.
2689
2690 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
2691
2692         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
2693
2694 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2695
2696         * reload1.c (move2add_last_cc0): New.
2697         (reload_cse_move2add): Detect implicit sets.
2698         (move2add_note_store): Notice a store into cc0.
2699
2700 2003-04-17  Roger Sayle  <roger@eyesopen.com>
2701
2702         PR c/10375
2703         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
2704         function attributes.
2705
2706 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
2707
2708         * doc/sourcebuild.texi (Test Suites): Document support for testing
2709         binary compatibility (moved from testsuite/README.compat).
2710
2711 2003-04-17  Richard Henderson  <rth@redhat.com>
2712
2713         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
2714
2715 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2716
2717         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
2718         the one provided by the FSF.
2719
2720 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2721
2722         * doc/install.texi (Binaries): Update URL and list of platforms
2723         provided by ftp.thewrittenword.com.
2724
2725 2003-04-17  Richard Henderson  <rth@redhat.com>
2726
2727         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
2728         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
2729         * config/xtensa/xtensa.md (call, call_value): Likewise.
2730
2731 2003-04-17  Richard Henderson  <rth@redhat.com>
2732
2733         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
2734         (print_operand_address): Likewise.
2735         (ep_memory_operand): Likewise.
2736         (special_symbolref_operand): Likewise.
2737         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
2738         (v850_encode_section_info): Call default_encode_section_info.
2739         (v850_strip_name_encoding): Remove.
2740         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
2741         (ASM_OUTPUT_LABELREF): Remove.
2742         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
2743         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
2744         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
2745         (ENCODED_NAME_P): Remove.
2746         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
2747         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
2748         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
2749
2750 2003-04-17  Richard Henderson  <rth@redhat.com>
2751
2752         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
2753         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
2754         SYMBOL_REF_FUNCTION_P.
2755
2756 2003-04-17  Richard Henderson  <rth@redhat.com>
2757
2758         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
2759         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
2760         (text_segment_operand): Likewise.
2761
2762 2003-04-17  Richard Henderson  <rth@redhat.com>
2763
2764         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
2765         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2766         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2767         (sh_encode_section_info): Remove.
2768         (sh_strip_name_encoding): Remove.
2769         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
2770         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
2771         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
2772         (ASM_OUTPUT_LABELREF): Remove.
2773         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
2774         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
2775
2776 2003-04-17  Richard Henderson  <rth@redhat.com>
2777
2778         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
2779         (tls_model_chars): Remove.
2780         (larl_operand): Use SYMBOL_REF_FLAGS.
2781         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2782         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2783         (s390_output_mi_thunk): Likewise.
2784         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
2785         (s390_function_profiler): Likewise.
2786         (s390_encode_section_info): Use default_encode_section_info
2787         and SYMBOL_FLAG_ALIGN1.
2788         (s390_strip_name_encoding): Remove.
2789         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
2790         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
2791         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
2792
2793 2003-04-17  Richard Henderson  <rth@redhat.com>
2794
2795         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
2796         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
2797         (print_operand_address): Likewise.
2798
2799         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
2800         * config/ns32k/ns32k.c (expand_block_move): Don't check
2801         flag_unroll_loops.
2802
2803 2003-04-17  Richard Henderson  <rth@redhat.com>
2804
2805         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
2806         SYMBOL_REF_FLAG.
2807
2808 2003-04-17  Richard Henderson  <rth@redhat.com>
2809
2810         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
2811
2812         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
2813         (SYMBOL_REF_MODEL): New.
2814         (LIT_NAME_P): Move from m32r.h.
2815         (m32r_select_section): Remove.
2816         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
2817         (m32r_strip_name_encoding): Remove.
2818         (m32r_in_small_data_p): New.
2819         (small_data_operand): Use SYMBOL_REF_SMALL_P.
2820         (addr24_operand): Use SYMBOL_REF_MODEL.
2821         (call26_operand): Likewise.
2822         (addr32_operand): Tidy.
2823         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
2824         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
2825         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
2826         (READONLY_DATA_SECTION_ASM_OP): Remove.
2827         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2828         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
2829         (TARGET_ASM_SELECT_SECTION): Remove.
2830         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
2831         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
2832         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
2833         (ASM_OUTPUT_LABELREF): Remove.
2834
2835 2003-04-17  Richard Henderson  <rth@redhat.com>
2836
2837         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
2838         (encode_section_info): Remove.
2839         * config/ip2k/ip2k-protos.h: Update.
2840
2841 2003-04-17  Richard Henderson  <rth@redhat.com>
2842
2843         * varasm.c (default_encode_section_info): Don't set
2844         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
2845         * config/i370/i370.c (i370_encode_section_info): Remove.
2846         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
2847         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
2848         * config/i370/i370.md (movsi): Likewise.
2849
2850         * config/i370/t-i370: Add missing backslash.
2851
2852 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2853
2854         * doc/invoke.texi (inline-limit): Fix pasto.
2855
2856 2003-04-17  Richard Henderson  <rth@redhat.com>
2857
2858         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
2859         (small_call_insn_operand): Use it.
2860         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
2861         (h8300_eightbit_constant_address_p): Use it.
2862         (SYMBOL_FLAG_TINY_DATA): New.
2863         (h8300_tiny_constant_address_p): Use it.
2864         (h8300_encode_label, h8300_strip_name_encoding): Remove.
2865         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
2866         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
2867         (ASM_OUTPUT_LABELREF): Remove.
2868
2869 2003-04-16  Richard Henderson  <rth@redhat.com>
2870
2871         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
2872         all users with SYMBOL_REF_SMALL_P.
2873         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
2874         (frv_encode_section_info): Remove.
2875         (frv_strip_name_encoding): Remove.
2876         (frv_in_small_data_p): Merge tests from encode_section_info.
2877         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
2878         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
2879         (SDATA_NAME_P): Remove.
2880         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
2881         (ASM_OUTPUT_LABELREF): Remove.
2882         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
2883
2884         * config/frv/frv.c (frv_asm_out_constructor): New.
2885         (frv_asm_out_destructor): New.
2886         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
2887         (DTORS_SECTION_ASM_OP): New.
2888         (ASM_OUTPUT_CONSTRUCTOR): Remove.
2889         (ASM_OUTPUT_DESTRUCTOR): Remove.
2890
2891 2003-04-16  Richard Henderson  <rth@redhat.com>
2892
2893         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
2894         SYMBOL_REF_LOCAL_P; abort if not pic.
2895         (cris_encode_section_info): Remove.
2896
2897 2003-04-16  Richard Henderson  <rth@redhat.com>
2898
2899         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
2900         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
2901
2902         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
2903         flag_inline_trees.
2904
2905 2003-04-16  Richard Henderson  <rth@redhat.com>
2906
2907         * config/avr/avr.c (avr_encode_section_info): Remove.
2908         (avr_insert_attributes): New.
2909         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
2910         (avr_assemble_integer): Likewise.
2911
2912 2003-04-16  Richard Henderson  <rth@redhat.com>
2913
2914         * arc.c (arc_encode_section_info): Remove.
2915         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
2916         (arc_print_operand, arc_print_operand_address): Likewise.
2917         * arc.h (EXTRA_CONSTRAINT): Likewise.
2918
2919 2003-04-16  Roger Sayle  <roger@eyesopen.com>
2920
2921         * c-semantics.c (find_reachable_label): New function to find a
2922         potentially reachable label in an expression.
2923         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
2924         assumes the start of the IF_STMT is unreachable (dead) code.
2925         (expand_unreachable_stmt): Similar to expand_stmt but assumes
2926         the start of the statement list is unreachable (dead) code.
2927         (genrtl_if_stmt):  If the controlling expression of the IF
2928         is constant, use expand_unreachable_stmt for the THEN or ELSE
2929         clause as appropriate.
2930         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
2931         the body of a SWITCH statement.
2932         (expand_stmt): The code immediately following a "return",
2933         "break", "continue" or "goto" is unreachable.
2934         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
2935
2936 2003-04-16  Richard Henderson  <rth@redhat.com>
2937
2938         * rtl.h (MEM_ALIAS_SET): Update documentation.
2939         * doc/rtl.texi (Special Accessors): New node.
2940         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
2941
2942 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
2943
2944         * reload1.c (reload_cse_noop_set_p): Return false if mode of
2945         SET_DEST is not the same as that returned by...
2946         * cselib.h (cselib_reg_set_mode): ... new function.
2947         * cselib.c (cselib_reg_set_mode): Define it.
2948         (REG_VALUES): Document semantics of first element as set mode.
2949         (cselib_subst_to_values): Skip first element if ELT is NULL.
2950         (cselib_lookup): Likewise.  Insert past the first element.
2951         (cselib_invalidate_regno): NULLify first element.
2952         (cselib_record_set): Set first element.
2953
2954 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
2955
2956         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
2957         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
2958         * tree.h: Add prototypes for the two new functions.
2959         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
2960         updates introduced in the previous revision by call to saved_expr_p.
2961         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
2962
2963         * expr.c (store_field): Force usage of bitfield instructions when
2964         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
2965         (expand_expr, case BIT_FIELD_REF): likewise.
2966
2967 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
2968
2969         PR middle-end/8866
2970         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
2971         jumptables.
2972
2973 2003-04-16  Richard Henderson  <rth@redhat.com>
2974
2975         * config/ia64/ia64.c (sdata_symbolic_operand): Use
2976         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
2977         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2978         (function_operand): Use SYMBOL_REF_FUNCTION_P.
2979         (ia64_expand_load_address): Likewise.
2980         (ia64_assemble_integer): Likewise.
2981         (ia64_encode_section_info): Remove.
2982         (ia64_strip_name_encoding): Remove.
2983         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
2984         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
2985
2986 2003-04-16  Richard Henderson  <rth@redhat.com>
2987
2988         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
2989         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
2990         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
2991         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2992         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
2993         (global_symbolic_operand): Similarly.
2994         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
2995         (tls_symbolic_operand_type): Likewise.
2996         (alpha_encode_section_info): Use default_encode_section_info.
2997         (alpha_strip_name_encoding): Remove.
2998         (get_tls_get_addr): Split out from ...
2999         (alpha_legitimize_address): ... here.
3000         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
3001         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
3002         (alpha_initialize_trampoline): Use init_one_libfunc.
3003         (alpha_setup_incoming_varargs): Mark unused parameters.
3004         (alpha_initial_elimination_offset): Likewise.
3005         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
3006         (unicosmk_unique_section): Use default_strip_name_encoding.
3007         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
3008
3009 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
3010
3011         * config.gcc: Add t-spe for eabispe.
3012
3013         * config/rs6000/t-spe: New.
3014
3015 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
3016
3017         Re-apply this patch:
3018
3019         2002-05-16  Dale Johannesen  <dalej@apple.com>
3020           * combine.c (cant_combine_insn_p):  Reenable combinations
3021           involving hard regs unless CLASS_LIKELY_SPILLED_P.
3022
3023 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3024
3025         PR/10271
3026         * pa-protos.h (function_arg): Remove last argument.
3027         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
3028         * pa.h (struct hppa_args): Add member incoming.
3029         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
3030         member incoming.
3031         (FUNCTION_ARG): Revise call to function_arg.
3032         (FUNCTION_INCOMING_ARG): Delete.
3033
3034 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
3035
3036         * configure.in: Unify the code which creates symlinks to a
3037         just-built as, ld, objdump, and nm with the code that detects
3038         their presence for purposes of feature tests.
3039         * configure: Regenerate.
3040
3041 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
3042
3043         * varasm.c (output_constant_def): Do not consult
3044         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
3045         (after_function_constants, output_after_function_constants): Delete.
3046         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
3047         * config/mips/mips-protos.h, config/mips/mips.c
3048         (mips16_constant_after_function_p): Delete.
3049         * config/mips/mips.h: Delete #if-0-ed definition of
3050         CONSTANT_AFTER_FUNCTION_P.
3051         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
3052         mention of CONSTANT_AFTER_FUNCTION_P in comment.
3053
3054 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
3055
3056         * tree.c (next_decl_uid): Mark with GTY.
3057         (next_type_uid): Likewise.
3058
3059 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
3060
3061         PR target/9594:
3062         * sh.c (barrier_align): Also recognize stuff_delay_slot as
3063         an indicator that a barrier was created by branch splitting.
3064
3065 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
3066
3067         * c-decl.c (implicitly_declare): Copy declarations that are going
3068         to be placed in a local scope.
3069
3070 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
3071
3072         * invoke.texi (Spec Files): Wrap if-exists-else example.
3073         (MCore): Remove duplicate @itemx entries and @opindex entries.
3074
3075 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
3076
3077         * unwind.inc (_Unwind_Backtrace): New function.
3078         * unwind.h (_Unwind_Backtrace): Declare it.
3079         * libgcc-std.ver (_Unwind_Backtrace): Export it.
3080
3081 2003-04-14  Jason Merrill  <jason@redhat.com>
3082
3083         PR middle-end/10336, c++/10401
3084         * jump.c (never_reached_warning): Also stop looking if we reach the
3085         beginning of the function.
3086
3087 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3088
3089         PR target/10338
3090         PR bootstrap/10198
3091         PR bootstrap/10140
3092         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
3093
3094 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
3095
3096         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
3097
3098 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3099
3100         * optabs.c (expand_binop): In multi-word add cases, ensure
3101         XTARGET is copied to TARGET if they are different.
3102
3103 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
3104
3105         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
3106         to region, possible after integration of function with unreachable
3107         regions that were optimized away.
3108
3109 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
3110
3111         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
3112         instead of TOC_REGISTER in epilogue in
3113         current_function_calls_eh_return functions.
3114
3115 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
3116
3117         * doc/extend.texi (Empty Structures): Correct description of G++'s
3118         handling of these structures.
3119
3120         * c-decl.c (grokdeclarator): Reject extern redeclarations of
3121         static variables.
3122
3123 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
3124
3125         * config/rs6000/rs6000.md (define_constants): Define constants for
3126         all UNSPEC usage, including new values for TLS support.
3127         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
3128         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
3129         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
3130         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
3131         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
3132         eh_set_lr_di): Use them.
3133         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
3134         rs6000_emit_epilogue) Use them.
3135
3136         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
3137
3138 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
3139
3140         * Makefile.in (c-opts.o): Use custom action.
3141
3142 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
3143
3144         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
3145
3146 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3147
3148         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
3149         handle "superflat arrays" in Ada.
3150
3151         * integrate.c (expand_inline_function): Don't inline if would
3152         lose /u on a BLKmode TARGET.
3153
3154 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
3155
3156         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
3157         extracted from dbxout_type.
3158         (dbxout_range_type): print large bounds in octal format.
3159         (dbxout_type): Replace extracted code by call to
3160         print_int_cst_bounds_in_octal_p.
3161
3162         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
3163         of DW_LANG_Ada83 for Ada units.
3164
3165 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
3166
3167         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
3168         temporary used to round CONST_INT sizes.
3169
3170         * tree.c (int_fits_type_p): Extract generic checks from the case
3171         of constant type bounds. Refine the checks against constant type
3172         bounds to allow for possible decisions against each of these bounds
3173         without requiring both bounds to be constant.
3174         (tree_int_cst_msb): Put back.
3175         * tree.h (tree_int_cst_msb): Likewise.
3176
3177         * global.c (global_conflicts): Prevent allocation of call clobbered
3178         hard regs to pseudos live across abnormal edges, as later passes are
3179         not ready to handle them.
3180
3181         * fold-const.c (fold): Reorder tests for conditional expressions.
3182
3183         * expr.c (highest_pow2_factor): Return unsigned.
3184         * expr.h (offset_address): Likewise.
3185         * emit-rtl.c (offset_address): POW2 argument now unsigned.
3186
3187 2003-04-14  Roger Sayle  <roger@eyesopen.com>
3188
3189         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
3190         string literals at compile-time.
3191
3192 2003-04-14  Roger Sayle  <roger@eyesopen.com>
3193
3194         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
3195         comparison operation and c1/c2 are floating point constants into
3196         x swap(cmp) (c1 - c2).
3197
3198 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
3199
3200         * genautomata.c (output_translate_vect): Fix a typo in loop
3201         condition.
3202
3203 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
3204
3205         PR target/10377
3206         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
3207         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
3208         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
3209         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
3210         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
3211         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
3212         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
3213         ("*extopqihi_swap_side", "*extopqisi_swap_side")
3214         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
3215         When next to constraint R, replace constraint i with n.
3216
3217 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
3218
3219         PR opt/10024
3220         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
3221
3222 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3223
3224         * doc/contrib.texi (Contributors): Correct my entry.
3225
3226 2003-04-13  Roger Sayle  <roger@eyesopen.com>
3227
3228         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
3229         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
3230         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
3231         implies DECL_BUILT_IN to simplify logic.
3232         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
3233
3234 2003-04-13  Roger Sayle  <roger@eyesopen.com>
3235
3236         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
3237         (BT_FN_PTR_SIZE_SIZE): Likewise.
3238         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
3239         New built-in functions for malloc, calloc and strdup respectively.
3240         * calls.c (special_function_p): No need to handle malloc-like
3241         functions any longer.  ECF_MALLOC is set via built-in attributes.
3242
3243         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
3244
3245         * doc/extend.texi: Document these new built-in functions.
3246
3247 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3248
3249         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
3250         (expand_builtin_stpcpy): New.
3251         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
3252         * builtins.def: Add mempcpy & stpcpy support.
3253         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
3254
3255 2003-04-13  Nick Clifton  <nickc@redhat.com>
3256
3257         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
3258         "GCC".
3259         * config/rs6000/40x.md, config/rs6000/603.md,
3260         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
3261         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
3262         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
3263         config/rs6000/aix43.h, config/rs6000/aix51.h,
3264         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
3265         config/rs6000/altivec.h, config/rs6000/altivec.md,
3266         config/rs6000/beos.h, config/rs6000/darwin.h,
3267         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
3268         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
3269         config/rs6000/freebsd.h, config/rs6000/gnu.h,
3270         config/rs6000/host-darwin.c, config/rs6000/linux.h,
3271         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
3272         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
3273         config/rs6000/netbsd.h, config/rs6000/power4.md,
3274         config/rs6000/rios1.md, config/rs6000/rios2.md,
3275         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
3276         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
3277         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
3278         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
3279         config/rs6000/spe.md, config/rs6000/sysv4.h,
3280         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
3281         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
3282
3283 2003-04-13  Nick Clifton  <nickc@redhat.com>
3284
3285         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
3286         support for -mcall-aix switch.
3287         * config/rs6000/eabiaix.h: Delete.
3288         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
3289         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
3290         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
3291         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
3292         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
3293         debug_stack_info, output_function_profiler,
3294         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
3295         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
3296         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
3297         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
3298         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
3299         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
3300         multilibs.
3301         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
3302         (MULTILIB_EXCEPTIONS): Delete.
3303         (MULTILIB_MATCHES): Remove mcall-aix matches.
3304
3305         * doc/fragments.texi: Replace -mcall-aix example with an ARM
3306         one.
3307         * doc/install.texi: Delete powerpc-*-eabiaix target.
3308         * doc/invoke.texi: Remove documentation of mcall-aix switch.
3309         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
3310         * config.gcc: Delete powerpc-*-eabiaix target.
3311
3312 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3313
3314         * doc/invoke.texi: Fix typos.
3315         * doc/tm.texi: Likewise.
3316
3317 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3318
3319         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
3320
3321 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3322
3323         * tree.c (build_constructor): New function.
3324         * tree.h: Prototype it.
3325
3326         * c-typeck.c (build_c_cast, pop_init_level)
3327         * profile.c (build_function_info_value, build_gcov_info_value)
3328         (create_profiler):
3329         Use build_constructor.
3330
3331         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
3332
3333         * objc/objc-act.c (build_constructor):
3334         Rename objc_build_constructor. Use build_constructor.
3335         (build_objc_string_object, objc_add_static_instance)
3336         (init_def_list, init_objc_symtab, init_module_descriptor)
3337         (generate_static_references, build_selector_translation_table)
3338         (build_descriptor_table_initializer, generate_descriptor_table)
3339         (build_protocol_initializer, build_ivar_list_initializer)
3340         (generate_ivars_list, build_dispatch_table_initializer)
3341         (generate_dispatch_table, generate_protocol_list)
3342         (build_category_initializer, build_shared_structure_initializer):
3343         Update to match.
3344