OSDN Git Service

0f1fe500cf0f2fa011ec35b9c8bb4fdaf82c025b
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-05-08  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2
3         * c-decl.c (define_label): Tidy.  Don't use any of
4         error_with_file_and_line or warning_with_file_and_file.
5         (pending_xref_error): Likewise.
6         (store_parm_decls): Likewise.
7         (current_function_prototype_locus): New object.  Package from
8         current_function_prototype_file and current_function_prototype_line.
9         (start_function): Use it.
10         (current_function_prototype_file): Remove.
11         (current_function_prototype_line): Remove;
12
13 2003-05-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14
15         * builtins.c (readonly_data_expr): New function.
16         (expand_builtin_memmove): Optimize any rodata source, not just
17         strings.
18
19 2003-05-07  David Mosberger <davidm@hpl.hp.com>
20
21         * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New.
22
23 2003-05-07  Richard Henderson  <rth@redhat.com>
24
25         * config/i386/i386.c (ix86_split_long_move): Fix base register
26         mode for XFmode splits for TARGET_64BIT.
27
28 2003-05-07  Richard Henderson  <rth@redhat.com>
29
30         * sched-ebb.c (schedule_ebb): Supply the correct starting
31         block number to save_line_notes.
32
33 2003-05-07  Richard Henderson  <rth@redhat.com>
34
35         * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro.
36         (dump_file): Likewise.
37
38 2003-05-07  David Mosberger <davidm@hpl.hp.com>
39
40         * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't
41         forget to preserve gp.
42         * config/ia64/crtend.asm (__do_global_ctors_au): Ditto.
43
44         * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing
45         .prologue directive.
46         Use .skip instead of data8 for .bss section to make Intel
47         Assembler (ias) happy.  Minor whitespace fixups.  Make "nop 0"
48         explicit in the .mib bundles and remove the unnecessary stop
49         bits.  Replace local labels with normal labels, to make ias
50         happy.  Don't register __do_global_ctors_aux here, do it in
51         crtend.asm instead.
52
53         * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register
54         __do_global_ctors_aux in .init_array section instead of
55         declaring it as a hidden global.  Replace local labels with
56         ordinary labels to make ias happy.
57
58 2003-05-07  Richard Henderson  <rth@redhat.com>
59
60         PR c++/10570
61         * except.c: Revert 04-01 and 04-02 forced-unwind changes.
62         * flags.h, toplev.c, doc/invoke.texi: Likewise.
63
64         * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning.
65         * unwind.inc (_Unwind_DeleteException): Check for null
66         exception_cleanup.
67
68         * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New.
69         * unwind.inc (_Unwind_Resume_or_Rethrow): New.
70         * unwind.h: Declare them.
71         * libgcc-std.ver (GCC_3.3): Export them.
72
73 2003-05-07  Richard Henderson  <rth@redhat.com>
74
75         * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr,
76         not _Unwind_Word.
77
78 2003-05-07  Zack Weinberg  <zack@codesourcery.com>
79
80         * stmt.c (force_label_rtx): New function, based on logic
81         formerly found in expand_expr.
82         * expr.h: Prototype it.
83         * expr.c (expand_expr <LABEL_DECL>): Use force_label_rtx if
84         appropriate.
85         * varasm.c (decode_addr_const <LABEL_DECL>): Use force_label_rtx.
86
87         * print-tree.c (debug_tree): Free the table after we're done
88         with it.  Use putc.
89
90 2003-05-07  Aldy Hernandez  <aldyh@redhat.com>
91
92         * config/rs6000/spe.h: Reverse arguments for __ev_subfw.
93         Unreverse arguments for __ev_subw.
94
95         * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly.
96
97 2003-05-07  Nick Clifton  <nickc@redhat.com>
98
99         * config/stormy16/stormy-abi: Update to include
100         R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and
101         R_XSTORMY16_12 relocs.
102
103 2003-05-07  Alan Modra  <amodra@bigpond.net.au>
104
105         * function.c (assign_parms): Correct reversed reg_parm_stack_space
106         test.  Add partial in-regs size to stack_args_size.
107
108 2003-05-07  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
109
110         * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations
111         as a C only option.
112
113 2003-05-07  Nathan Sidwell  <nathan@codesourcery.com>
114
115         * gcov-io.h (GCOV_LOCKED): New #define.
116         (GCOV_LINKAGE): Make sure it is #defined.
117         (gcov_write_string, gcov_write_tag, gcov_write_length,
118         gcov_read_string, gcov_time): Poison in libgcov.
119         (gcov_seek_end): Remove.
120         (gcov_write_tag_length, gcov_sync, gcov_rewrite): New.
121         (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH,
122         GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH,
123         GCOV_TAG_SUMMARY_LENGTH): New #defines.
124         (gcov_write_tag, gcov_write_length): Not in libgcov.
125         * gcov-io.c (gcov_open): Use GCOV_LOCKED.
126         (gcov_write_tag, gcov_write_length): Not in libgcov.
127         (gcov_write_tag_length): New.
128         (gcov_write_summary): Use gcov_write_tag_length.
129         * libgcov.c: Always #include gcov-io.h.
130         (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise.
131         (GCOV_LINKAGE): Define to nothing for L_gcov.
132         (gcov_exit): Replace gcov_write_tag, gcov_write_length with
133         gcov_write_tag_length. Use gcov_rewrite & gcov_seek.
134         * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync.
135         (read_count_file): Likewise.
136         * gcov-dump.c (dump_file): Likewise.
137         * coverag.c (read_counts_file): Likewise.
138
139 2003-05-06  Mark Mitchell  <mark@codesourcery.com>
140
141         PR other/10658
142         * gcc.c (process_command): Update copyright date.
143
144 2003-05-06  Phil Edwards  <pme@gcc.gnu.org>
145
146         * doc/install.texi (mips-*-*):  Add note about libstdc++.
147
148 2003-05-06  DJ Delorie  <dj@redhat.com>
149
150         * config/stormy16/stormy16.c (xstormy16_function_profiler): New.
151         * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it.
152         * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New.
153
154 2003-05-06    <neil@cat.daikokuya.co.uk>
155
156         * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes
157         and -Wstrict-prototypes if C++.
158
159 2003-05-06  Aldy Hernandez  <aldyh@redhat.com>
160
161         * config/rs6000/linuxspe.h: New file.
162
163         * config.gcc: Add powerpc-*-linux-gnuspe* target.
164
165 2003-05-06  Richard Henderson  <rth@redhat.com>
166
167         * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if
168         previous frame didn't save sp.  Clear sp for next frame.
169         (uw_install_context_1): Honor saved sp from frame.
170
171 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
172
173         * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare.
174         (mips_move_1word, mips_move_2words): Remove declaration.
175         (mips_split_64bit_move_p, mips_split_64bit_move): Declare.
176         (mips_restore_gp): Remove insn argument.
177         * config/mips/mips.h (FP_REG_RTX_P): New macro.
178         * config/mips/mips.c (volatile_buffer): Remove.
179         (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New.
180         (mips_move_1word, mips_move_2words): Remove, replacing with...
181         (mips_output_move): ...this new function.
182         (mips_restore_gp): Remove insn argument.  Adjust for above changes.
183         (print_operand): Make '%h' print %hi(op) for HIGH operands.  Remove
184         handling of floating-point constants.  Handle zero CONST_DOUBLE
185         arguments.
186         (mips_annotate_frame_insn): Replace with...
187         (mips_set_frame_expr): ...this, which just takes one argument.
188         (mips_frame_set): Change the register argument to an rtx.
189         (mips_emit_frame_related_store): Use mips_split_64bit_move_p to
190         check whether moves should be split.  Use mips_split_64bit_move
191         to split them.  Use mips_subword to generate the high and low
192         parts of a paired FPR.  Adjust calls to frame_set and
193         mips_set_frame_expr.
194         (mips_expand_prologue): Simplify due to above changes.
195         * config/mips/mips.md:  Add splitters for 64-bit moves on 32-bit
196         targets, replacing xisting register-only versions.
197         (UNSPEC_STORE_DF_HIGH): New unspec.
198         (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs.
199         (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word.
200         (*paradoxical_extendhidi2): Remove.
201         (movdi_internal, movdi_internal2): Use mips_output_move.
202         (*movdi_internal2_mips16, movsi_internal, movcc): Likewise.
203         (movsf_internal1, movsf_internal2): Likewise.
204         (movdf_internal1a): Likewise.  Fix length and type of f <- G case.
205         (movdf_internal1b): Use mips_output_move.  Fix type of f <- G case.
206         (movdf_internal2): Use mips_output_move.  Fix lengths of FPR moves.
207         Add m <- G alternative.
208         (load_df_low, load_df_high, store_df_low): New patterns.
209         (movhi_internal): Use @ template instead of calling a function.
210         Remove unnecessary 'z' alternatives.
211         (movqi_internal): Likewise.
212         (exception_receiver): Update call to mips_restore_gp.
213
214 2003-05-06  Richard Sandiford  <rsandifo@redhat.com>
215
216         * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove.
217         (mips_delegitimize_address): Declare.
218         * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine.
219         (FIND_BASE_TERM): Define.
220         * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Define.
221         (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr.
222         Handle small-data addresses.
223
224 2003-05-05  Roger Sayle  <roger@eyesopen.com>
225
226         * real.c (real_powi): New function to calculate the value of
227         a real raised to an integer power, i.e. pow(x,n) for int n.
228         (real_sqrt): Convert to using the faster do_add, do_multiply
229         and do_divide API for consistency with the rest of real.c.
230         * real.h (real_powi): Prototype here.
231         * builtins.c (fold_builtin):  Avoid local variable mode when
232         evaluating sqrt at compile time.  Attempt to evaluate pow at
233         compile-time, by checking for an integral exponent.
234
235 2003-05-05  Richard Henderson  <rth@redhat.com>
236
237         * doc/extend.texi (Variable Attributes): Re-sort table and tidy.
238
239 2003-05-05  David O'Brien  <obrien@FreeBSD.org>
240
241         * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror
242         other FreeBSD ports.
243         (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports.
244         (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead.
245
246 2003-05-05  Janis Johnson  <janis187@us.ibm.com>
247
248         * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around
249         expanded variables.
250         * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests.
251
252 2003-05-05  Zack Weinberg  <zack@codesourcery.com>
253
254         * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P.
255         * varasm.c (struct varasm_status): Add deferred_constants field.
256         (n_deferred_strings): Delete variable.
257         (n_deferred_constants): New #define.
258         (struct constant_descriptor_tree): Kill next and label fields.
259         (const_hash_table, MAX_HASH_TABLE): Delete.
260         (const_desc_htab): New static variable.
261         (const_hash): Rename const_desc_hash, and make it fit the
262         hashtab.h interface.
263         (const_desc_eq): New.
264         (const_hash_1, compare_constant): Const-ify arguments.
265         (build_constant_desc): Set DEFERRED_CONSTANT_P on all new
266         SYMBOL_REFs.  Clarify comments.  Don't set desc->label.
267         (output_constant_def): Do the lookup/insert using the
268         hashtab.h interface.  Don't muck with n_deferred_constants or
269         DEFERRED_CONSTANT_P here.
270         Always call maybe_output_constant_def_contents.
271         (maybe_output_constant_def_contents): Take a pointer to the
272         descriptor, not the EXP and RTL separately.  Return
273         immediately if this constant is not deferred.  Defer output of
274         everything, except writable string constants.  Update
275         n_deferred_constants here.
276         (output_constant_def_contents): Now takes just one argument,
277         an rtx.  Clear DEFERRED_CONSTANT_P here.
278         (mark_constant_pool): Update for rename of n_deferred_strings.
279         (mark_constant): Don't clear DEFERRED_CONSTANT_P here.
280
281         (init_varasm_status): Clear p->deferred_constants.
282         (init_varasm_once): Call htab_create_ggc for const_desc_htab.
283
284 2003-05-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
285
286         * builtins.c (expand_builtin_stpcpy): Only expand when the length
287         of the source string can be evaluated at compile-time.
288
289 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
290
291         * testsuite/gcc.c-torture/compile/simd-6.c: New.
292
293         * c-typeck.c (digest_init): Handle arrays of vector constants.
294
295 2003-05-05  Jakub Jelinek  <jakub@redhat.com>
296
297         * builtins.c (expand_builtin_mempcpy): New function.
298         (expand_builtin_stpcpy): Optimize stpcpy whose return value is
299         ignored into strcpy no matter what arguments it has.
300         (expand_builtin) <case BUILT_IN_MEMPCPY>: Call
301         expand_builtin_mempcpy.
302
303 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
304
305         * testsuite/gcc.dg/20030505.c: New.
306
307         * c-typeck.c (convert_for_assignment): Opaque pointers can
308         interconvert.
309
310         * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node.
311         (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node.
312         (spe_init_builtins): Rename all pv2si_type_node to
313         opaque_p_V2SI_type_node.
314         Remove declaration of pv2si_type_node.
315         (is_ev64_opaque_type): Accept opaque pointers.
316
317 2003-05-05  Geoffrey Keating  <geoffk@apple.com>
318
319         * config/rs6000/rs6000.c (validate_condition_mode): Use
320         flag_finite_math_only.
321         (rs6000_reverse_condition): Never return UNKNOWN; use
322         flag_finite_math_only.
323         (rs6000_generate_compare): Use flag_finite_math_only.
324         (rs6000_emit_cmove): Handle UNLE.  Support UNEQ under -ffast-math.
325         Use HONOR_* rather than flag_unsafe_math_optimizations.  Correct
326         UNGE and GT cases.  Handle UNEQ and LTGT when ! HONOR_NANS.
327
328         * toplev.c (check_global_declarations): Suppress not-used warning
329         for volatile variables.
330
331 2003-05-05  Olivier Hainque  <hainque@act-europe.fr>
332
333         * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing
334         usage of bitfield instructions for mode1 != BLKmode, only ignoring
335         SLOW_UNALIGNED_ACCESS if the field is not byte aligned.
336         (store_field): Likewise.
337
338 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
339
340         * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add
341         evsubifw to builtins accepting 5-bit unsigned constants.
342         (easy_vector_constant): Return if V1DImode.  Fix typo.
343
344 2003-05-05  Aldy Hernandez  <aldyh@redhat.com>
345
346         * config/rs6000/spe.h: Revert licensing change from last patch.
347
348 2003-05-05  DJ Delorie  <dj@redhat.com>
349
350         * config/stormy16/stormy16.md (negsi2): Allocate the pseudos
351         before reload, but defer the split until after.
352         * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify
353         to match.
354
355 2003-05-05  David Edelsohn  <edelsohn@gnu.org>
356
357         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support.
358         * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440.
359
360 2003-05-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
361
362         * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc
363         is defined.
364
365 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
366
367         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1,
368         ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from
369         ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3.
370
371         (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4,
372         ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1,
373         ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1):
374         New.
375
376         * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument.
377         (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment
378
379         (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY,
380         BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET,
381         BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT,
382         BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY,
383         BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN,
384         BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN,
385         BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN,
386         BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF,
387         BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS,
388         BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED,
389         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED,
390         BUILT_IN_STRDUP): Add "nonnull" attribute.
391
392 2003-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
393
394         * expr.c (store_field): Don't clobber TEMP in shift: it might be
395         a variable.
396         (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR
397         whose purpose is to step up the alignment.
398         (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG.
399
400         * stor-layout.c (compute_record_mode): Relax restriction
401         on fields crossing word boundaries forcing BLKmode.
402
403 2003-05-04  Neil Booth  <neil@daikokuya.co.uk>
404
405         * cppinit.c (cpp_create_reader, post_options): Warn about
406         trigraphs unless explicity set or -trigraphs.
407         * cpplex.c (warn_in_comment): New.
408         (_cpp_process_line_notes): Better handling of -Wtrigraphs.
409         (_cpp_skip_block_comment): Add call to _cpp_process_line_notes.
410         * doc/cppopts.texi, doc/cpp.texi: Update.
411
412 2003-05-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
413
414         * Makefile.in (LIBGCOV): Add _gcov_merge_add.
415         * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting
416         namespace clash.
417         (GCOV_MERGE_FUNCTIONS): New.
418         (gcov_merge_fn): Declare.
419         (struct gcov_ctr_info): New field "merge".
420         (__gcov_merge_add): Declare.
421         * coverage.c (ctr_merge_functions): New.
422         (build_ctr_info_type, build_ctr_info_value): Initialize merge field
423         of gcov_ctr_info type.
424         * libgcov.c (__gcov_merge_add): New.
425         (gcov_exit): Call a hook to merge values of counters.
426
427 2003-05-04  Gabriel Dos Reis <gdr@integrable-solutions.net>
428
429         * toplev.h (pedwarn_with_file_and_line): Don't declare.
430         * diagnostic.c (pedwarn_with_file_and_line): Remove.
431
432 2003-05-04  Gabriel Dos Reis  <gdr@integrable-solutions.net>
433
434         * varasm.c (assemble_variable): Don't use error_with_file_and_line.
435
436 2003-05-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
437
438         * builtins.c (expand_builtin_constant_p, expand_builtin_strlen,
439         expand_builtin_frame_address): Update prototypes.
440         (expand_builtin_constant_p, expand_builtin_strlen,
441         expand_builtin_strcpy, expand_builtin_memset,
442         expand_builtin_bzero, expand_builtin_args_info,
443         expand_builtin_frame_address): Pass in just the argument(s)
444         needed, not the entire expression `exp'.
445         (expand_builtin): Update all calls to these functions.
446
447 2003-05-03  Richard Henderson  <rth@redhat.com>
448
449         * builtins.c (expand_builtin) <BUILT_IN_DWARF_FP_REGNUM>: Remove.
450         <BUILT_IN_DWARF_SP_COLUMN>: New.
451         * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove.
452         (BUILT_IN_DWARF_SP_COLUMN): New.
453         * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove.
454         (expand_builtin_dwarf_sp_column): New.
455         * except.h: Update to match.
456         * unwind-dw2.c (execute_stack_op): Correct stack push typo.
457         (execute_cfa_program): Record location expression address
458         before extracting length.
459         (uw_update_context_1): Install old CFA into stack pointer column.
460         (uw_init_context_1): Set cfa_reg to stack pointer column.
461
462 2003-05-03  Richard Henderson  <rth@redhat.com>
463
464         * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and
465         return bool.
466         (toc_relative_expr_p): Likewise.
467         (SPE_CONST_OFFSET_OK): Move from rs6000.h.
468         (legitimate_constant_pool_address_p): Move from rs6000.h, change
469         into a function, downcase all users.
470         (legitimate_small_data_p): Likewise.
471         (legitimate_offset_address_p): Likewise.
472         (legitimate_indexed_address_p): Likewise.
473         (legitimate_indirect_address_p): Likewise.
474         (legitimate_lo_sum_address_p): Likewise.
475         (rs6000_mode_dependent_address): Likewise.
476         * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove.
477         (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P,
478         LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P,
479         LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P,
480         LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c.
481         (LEGITIMATE_ADDRESS_INTEGER_P): Remove.
482         (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address.
483         * config/rs6000/rs6000-protos.h: Update.
484
485 2003-05-03  Geoffrey Keating  <geoffk@apple.com>
486
487         * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define.
488         (REVERSE_CONDITION): Define.
489
490         * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent
491         to branch_positive_comparison_operator.
492         (ccr_bit): Check that sCOND conditions are actually a positive bit.
493         (print_operand): Remove %D substitution.
494         (rs6000_emit_sCOND): Generate complement operation to ensure that
495         sCOND input is a positive bit.
496         * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the
497         same order as bCOND, and add the missing ones.  Remove the %D
498         substitutions from the scc patterns.
499
500         * simplify-rtx.c (simplify_relational_operation): Add case for
501         ! (fabs(x) < 0.0).
502
503 2003-05-03  Bruce Korb  <bkorb@gnu.org>
504
505         * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts
506         in fixincl.x
507         * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement
508
509 2003-05-03  Aldy Hernandez  <aldyh@redhat.com>
510
511         * config/rs6000/spe.h: Remove unecessary casts.  Misc cleanups.
512
513 2003-05-03  Zack Weinberg  <zack@codesourcery.com>
514
515         PR c/10604
516         * c-common.c (warn_sign_compare): Initialize to -1.
517         * c-opts.c (c_common_init_options): Don't set warn_sign_compare here.
518         (c_common_decode_option <OPT_Wall>): Set warn_sign_compare
519         for C++ only.
520         (c_common_post_options): Set warn_sign_compare from extra_warnings
521         if it's still -1 at this point.
522
523         * toplev.c (maybe_warn_unused_parameter): New static variable.
524         (set_Wextra): New static function.
525         (W_options): Remove "extra".
526         (decode_W_option): Call set_Wextra.
527         (independent_decode_option): Likewise.
528         (set_Wunused): Cooperate with set_Wextra in setting
529         warn_unused_parameter.
530         (rest_of_compilation): No need to check extra_warnings as
531         well as warn_uninitialized.
532
533         * c-typeck.c (build_binary_op, build_conditional_expr):
534         No need to check extra_warnings as well as warn_sign_compare.
535         (internal_build_compound_expr): No need to check extra_warnings
536         as well as warn_unused_value.
537         * function.c (expand_function_end): No need to check extra_warnings
538         as well as warn_unused_parameter.
539         * stmt.c (expand_expr_stmt_value): No need to check extra_warnings
540         as well as warn_unused_value.
541
542         * doc/invoke.texi: Clarify documentation of -Wsign-compare.
543
544         * Makefile.in: Disable -Werror for gengtype-lex.o.
545
546 2003-05-03  Olivier Hainque  <hainque@act-europe.fr>
547
548         * emit-rtl.c (last_call_insn, add_function_usage_to): New functions.
549         * rtl.h (last_call_insn, add_function_usage_to): New prototypes.
550         * builtins.c (expand_builtin_apply): Use the new emit-rtl functions.
551         * calls.c (emit_call_1): Likewise.
552         (expand_call): For calls initializing constant memory, replace
553         emission of standalone mem /u clobber with function usage entry.
554         * expr.c (emit_block_move_via_libcall): Likewise.
555         * cse.c (count_reg_usage, case EXPR_LIST): New case.
556         * flow.c (propagate_one_insn): Pass entire operand of
557         CALL_INSN_FUNCTION_USAGE to mark_used_regs.
558         * integrate.c (try_constants): For CALL_INSNs, substitute constants
559         within the FUNCTION_USAGE also.
560         * loop.c (prescan_loop): Note clobbers of const mem mentioned in
561         FUNCTION_USAGE lists.
562         * reload1.c (replace_pseudos_in): Renamed.
563         (reload): Use it for clobbers surviving until the end of the reload.
564
565 2003-05-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
566
567         * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use
568         gen_lowpart on non-integer modes.
569
570         * stor-layout.c (place_field): When adjusting offset_align, use
571         desired_align, not DECL_ALIGN.
572
573 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
574
575         * c-decl.c (pending_invalid_xref_file): Remove.
576         (pending_invalid_xref_line): Remove.
577         (pending_invalid_xref_location): New.
578         (lookup_label): Use location_t and input_location directly.
579         (lookup_tag): Likewise.
580         (pending_xref_error): Likewise.
581         (c_expand_body_1): Likewise.
582         * c-common.c (x_expand_start_cond): Likewise.
583         * c-semantics.c (genrtl_for_stmt): Likewise.
584         (find_reachable_label): Likewise.
585         * expr.c (expand_expr): Likewise.
586         * integrate.c (output_inline_function): Likewise.
587         * tree-inline.c (find_alloca_call): Likewise.
588         (find_builtin_longjmp_call): Likewise.
589         * gcc.c (input_filename): Make static.
590
591 2003-05-03  Richard Sandiford  <rsandifo@redhat.com>
592
593         * config/mips/mips.md: Fix comment typo.
594
595         * config/mips/mips.c (mips_integer_op): New structure.
596         (MIPS_MAX_INTEGER_OPS): Define.
597         (mips_const_insns): Use mips_build_integer to determine the number
598         of instructions needed to load a CONST_INT.
599         (move_operand): Reject compound CONST_INTs.
600         (mips_build_shift, mips_build_lower, mips_build_integer): New fns.
601         (mips_move_integer): New fn.
602         (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer.
603         (mips_legitimize_move): Only legitimize constants when moving
604         word or subword values.
605
606 2003-05-02  Matt Kraai  <kraai@alumni.cmu.edu>
607
608         * Makefile.in (gcov-iov.h): Use move-if-change and a stamp.
609
610 2003-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
611
612         * builtins.c (expand_builtin_stpcpy): Copy `arglist' before
613         modifying it.
614
615 2003-05-03  Falk Hueffner <falk.hueffner@student.uni-tuebingen.de>
616             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
617
618         * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy
619         Hernandez, and Kazu Hirata.  Update Richard Henderson.
620
621 2003-05-02  Geoffrey Keating  <geoffk@apple.com>
622
623         * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern'
624         to tentative declaration.
625
626         * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete.
627         (SYMBOL_FLAG_SMALL_V4): Delete.
628         * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P.
629         (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4.
630         (rs6000_elf_in_small_data_p): Add extra section names.  Add
631         comment about TREE_PUBLIC test.
632
633         * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call
634         expand_stmt on result of expand_unreachable_stmt.
635
636 2003-05-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
637
638         * doc/contrib.texi (Contributors): Add Daniel Berlin.
639
640 2003-05-02  David Edelsohn  <edelsohn@gnu.org>
641
642         * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease
643         number of automata.
644
645         * config/rs6000/rs6000.c (symbol_ref_operand): Check
646         SYMBOL_REF_FUNCTION_P on AIX.
647         (current_file_function_operand): Same.
648         * config/rs6000/rs6000.md (call,call_value): Force non-function
649         symbol_ref into register on AIX.
650
651 2003-05-02  Alan Modra  <amodra@bigpond.net.au>
652
653         * calls.c (struct arg_data): Move offset, slot_offset, size and
654         alignment_pad to struct locate_and_pad_arg_data.  Update all refs.
655         (initialize_argument_information): Adjust call to locate_and_pad_parm.
656         Delete alignment_pad var.  Don't calculate slot_offset here.
657         (emit_library_call_value_1): Delete alignment_pad, offset and size
658         vars.  Use struct locate_and_pad_arg_data instead.  Adjust refs.
659         Adjust call to locate_and_pad_parm.  Don't tweak arg size for
660         partial in-regs here.  Formatting fixes.
661         * expr.h (struct locate_and_pad_arg_data): New struct.
662         (locate_and_pad_parm): Adjust declaration.
663         * function.c (assign_parms): Localize vars.  Use "locate" instead of
664         other arg location vars.  Don't invoke FUNCTION_ARG or
665         FUNCTION_INCOMING_ARG unless pretend_named is different from
666         named_arg.  Heed MUST_PASS_IN_STACK and set up "partial" before
667         calling locate_and_pad_parm.  Adjust locate_and_pad_parm call.
668         Use slot_offset for stack home of reg parms.  Correct test for
669         parm passed in memory.  Formatting fixes.
670         (locate_and_pad_parm): Add "partial" to params.  Replace offset_ptr
671         arg_size_ptr and alignment pad with "locate".  Set slot_offset here.
672         Correct initial_offset_ptr handling.  Localize vars.  Always pad
673         locate->offset even when in_regs.
674
675 2003-05-02  Nathan Sidwell  <nathan@codesourcery.com>
676
677         * Makefile.in (TREE_H): Replace location.h with input.h.
678         (GTFILES) Remove location.h
679         (gt-lists.h): Replace gt-location.h with gt-input.h
680         * input.h (input_filename, input_line): Remove variables.
681         (location_s, location_t): Move from location.h.
682         (input_location): New.
683         (input_filename, input_line): New #defines.
684         * location.h: Remove.
685         * tree.h: Replace location.h with input.h.
686         (input_filename, input_line): Remove.
687         * diagnostic.h: Replace location.h with input.h.
688         * gcc.h (input_filename, input_filename_length): Remove declarations.
689         * toplev.c (input_filename, input_line): Remove.
690         (input_location): Define.
691         (push_srcloc, pop_srcloc): Adjust.
692         * diagnostic.c (diagnostic_report_current_module): Adjust.
693
694 2003-05-02  Nick Clifton  <nickc@redhat.com>
695
696         * configure.in: Add xstormy16 to list of targets that has a nop
697         instruction and hence which can be tested to see if the
698         assembler supports the --gdwarf2 switch.
699         * configure: Regenerate.
700
701 2003-05-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
702
703         PR target/8257
704         * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue,
705         alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib):
706         Avoid undefined shifts by making the shift operand unsigned.
707
708 2003-05-01  DJ Delorie  <dj@redhat.com>
709
710         * reload.c (find_reloads): Also check that all of a multi-reg
711         value is in the class.
712
713 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
714
715         * scan.h (lineno): Revert the rename here.
716
717 2003-05-01  Stan Shebs  <shebs@apple.com>
718
719         * config/darwin.c (darwin_encode_section_info): Call
720         default_encode_section_info.
721
722 2003-05-01  David Edelsohn  <edelsohn@gnu.org>
723
724         * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr.
725         (movsi_internal1): Use new mfjmpr attribute.
726         (movhi_internal): Same.
727         (movqi_internal): Same.
728         (movcc_internal1): Same.
729         (movdi_internal64): Same.
730         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
731         power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr.
732         * config/rs6000/40x.md: Add fpu_405.
733         * config/rs6000/power4.md: Merge power4lsu and power4disp automata
734         into power4misc automata.  Remove extraneous parentheses.
735         * config/rs6000/440.md: New file.
736         * config/rs6000/rs6000.c (processor_target_table): Add 440,
737         440fp.  Rename 405f to 405fp.
738         (function_arg_padding): Correct formatting.
739         (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases.
740
741 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
742
743         * input.h (lineno): Rename to ...
744         (input_line): ... here.
745         * tree.h (lineno): Rename to ...
746         (input_line): ... here.
747         * scan.h (lineno): Rename to ...
748         (input_line): ... here.
749         * toplev.c (lineno): Rename to ...
750         (input_line): ... here.
751         (push_srcloc, pop_srcloc):  Rename lineno to input_line.
752         * c-common.c (c_expand_start_cond, fname_decl): Likewise.
753         * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag,
754         store_parm_decls, c_expand_body_1): Likewise.
755         * c-errors.c (pedwarn_c99): Likewise.
756         * c-format.c (status_warning): Likewise.
757         * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise.
758         * c-opts.c (c_common_post_options, c_common_parse_file): Likewise.
759         * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise.
760         * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var,
761         gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt,
762         genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt,
763         genrtl_return_stmt, genrtl_for_stmt, build_break_stmt,
764         build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt,
765         prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise.
766         * coverage.c (create_coverage): Likewise.
767         * diagnostic.c (pedwarn, sorry, error, fatal_error,
768         internal_error, warning, diagnostic_report_current_module,
769         inform): Likewise.
770         * expr.c (expand_expr): Likewise.
771         * integrate.c (expand_inline_function,
772         output_inline_function): Likewise.
773         * rtl-error.c (file_and_line_for_asm): Likewise.
774         * tree-inline.c (find_alloca_call, find_builtin_longjmp_call,
775         walk_tree): Likewise.
776         * tree.c (make_node): Likewise.
777         * ada, cp, f, java, objc, treelang: Likewise.
778         * objc/objc-act.c (objc_init): Rename lineno to input_line.
779         (build_module_descriptor, build_selector_translation_table,
780         build_protocol_template, build_method_prototype_list_template,
781         build_category_template, build_selector_table,
782         build_class_template, build_super_template, build_ivar_template,
783         build_ivar_list_template, build_method_list_template,
784         build_method_template, add_instance_variable): Likewise.
785
786         * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter
787         name from input_filename.
788
789 2003-04-30  Eric Christopher  <echristo@redhat.com>
790             Richard Sandiford <rsandifo@redhat.com>
791
792         * configure: Regenerate from patches below.
793         * combine.c (gen_lowpart_for_combine): Fix comment and add tests
794         for all symbolic operands.
795         * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS
796         to function.
797         * config/mips/linux.h: Fix typo.
798         * Merge from mips-3_4-rewrite branch:
799
800         2003-04-07  Richard Sandiford  <rsandifo@redhat.com>
801
802                 * config/mips/mips.c (mips_classify_symbol): Add catch-all case for
803                 handling local labels when TARGET_ABICALLS.
804
805         2003-04-04  Richard Sandiford  <rsandifo@redhat.com>
806
807                 * config/mips/mips-protos.h (mips_expand_epilogue): Add an
808                 integer argument.
809                 (mips_expand_call): Likewise.
810                 * config/mips/mips.h (TARGET_SIBCALLS): New macro.
811                 (FIXED_REGISTERS): Clear $31 entry.
812                 (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise.
813                 (EPILOGUE_USES): Define.
814                 * config/mips/mips.c (mips_function_ok_for_sibcall): New function.
815                 (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it.
816                 (override_options): Add a 'j' register class.
817                 (mips_expand_call): Handle sibcalls
818                 (mips_expand_epilogue): Handle epilogues for sibcalls.
819                 * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue.
820                 (sibcall_epilogue): New pattern.
821                 (call, call_value): Adjust calls to mips_expand_call.
822                 (sibcall, sibcall_value): New expanders.
823                 (sibcall_internal, sibcall_value_internal): New patterns.
824                 (sibcall_value_multiple_internal): New pattern.
825
826         2003-03-25  Richard Sandiford  <rsandifo@redhat.com>
827
828                 * config/mips/mips.md (extended_mips16): New attribute.
829                 (define_attr length): Default to 8 if extended_mips16 == yes.
830                 (truncdisi2): Set extended_mips16 to yes for the sll alternative.
831                 (truncdihi2, truncdiqi2, *extendsidi2): Likewise.
832                 (call_internal): Set extended_mips16 to yes for direct jumps.
833                 Remove redundant mode attribute.
834                 (call_value_internal, call_value_multiple_internal): Likewise.
835                 (call_split): Remove redundant mode attribute.
836                 (call_value_split, call_value_multiple_split): Likewise.
837
838                 * config/mips/mips.c (mips_symbol_insns): Rework.  Fix handling
839                 of unaligned offsets.
840
841                 * config/mips/mips.c (mips_splittable_symbol_p): Fix handling
842                 of SYMBOL_GENERAL.
843
844         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
845
846                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary.
847                 * config/mips/mips.c (override_options): Disable -mexplicit-relocs
848                 for mips16 code.
849
850         2003-03-22  Richard Sandiford  <rsandifo@redhat.com>
851
852                 * config/mips/mips.h (ADDRESS_COST): Define.
853
854         2003-03-20  Richard Sandiford  <rsandifo@redhat.com>
855
856                 * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of
857                 'R' to 'U'.  Make 'R' mean a single-instruction memory reference.
858                 * config/mips/mips.md: Replace 'R' constraints with 'U'.
859
860         2003-03-18  Richard Sandiford  <rsandifo@redhat.com>
861
862                 * config/mips/mips.md (truncdisi2): Add commentary.  Use sll instead
863                 of a two-instruction sequence.  Add register->memory alternative.
864                 (truncdihi2, truncdiqi2): Likewise.
865                 Rework shift/truncate instructions so that they only handle right
866                 shifts of 32 (or more, in the case of arithmetic shifts).
867                 Add patterns for truncate/sign-extend.
868
869         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
870
871                 * configure.in (mips*-*-*): Check for explicit relocation support.
872                 * configure: Regenerate.
873
874         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
875
876                 * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs
877                 and -mno-explicit-relocs.
878                 (MASK_EXPLICIT_RELOCS): Define.
879                 (TARGET_EXPLICIT_RELOCS): Use it.
880                 (mips_split_addresses): Remove declaration.
881                 * config/mips/mips.c (override_options): Update comment for
882                 mips_split_addresses.  Clear MASK_EXPLICIT_RELOCS for non-PIC n64.
883
884         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
885
886                 * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of
887                 a CONST as identity.  Check the return value of gen_lowpart_common.
888
889         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
890
891                 * config/mips/mips.c (mips_legitimize_symbol): Handle small data
892                 references for TARGET_EXPLICIT_RELOCS.
893                 (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if
894                 !TARGET_MIPS16.
895
896         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
897
898                 * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'.
899                 (addsi3): Remove redundant constraints.
900                 (addsi3_internal): Use separate register & constant alternatives.
901                 Use a 'Q' constraint and "addiu" insn for the latter.
902                 (adddi3_internal_3, addsi3_internal_2): Likewise.
903
904         2003-03-13  Richard Sandiford  <rsandifo@redhat.com>
905
906                 * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare.
907                 (mips_expand_unaligned_store): Declare.
908                 * config/mips/mips.c (mips_get_unaligned_mem): New fn.
909                 (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns.
910                 * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove.
911                 (UNSPEC_ULD, UNSPEC_USD): Remove.
912                 (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New.
913                 (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New.
914                 (extv, extzv): Use mips_expand_unaligned_load.
915                 (insv): Use mips_expand_unaligned_store.  Use a reg_or_0_operand
916                 predicate for operand 3.
917                 (movsi_ulw, movsi_usw): Replace with...
918                 (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns.
919                 (movdi_uld, movdi_usd): Likewise replace with...
920                 (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns.
921
922         2003-02-26  Richard Sandiford  <rsandifo@redhat.com>
923
924                 * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare.
925                 * config/mips/mips.h (LEA_REGS): New register class.
926                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it.
927                 (GR_REG_CLASS_P): Include LEA_REGS.
928                 (DANGEROUS_FOR_LA25_P): New macro.
929                 (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition.
930                 Add a T constraint for the DANGEROUS_FOR_LA25_P case.
931                 * config/mips/mips.c (mips_regno_to_class): Change GR_REGS
932                 entries to LEA_REGS.
933                 (mips_global_pic_constant_p): New function.
934                 (override_options): Add 'e' register constraint.
935                 (mips_secondary_reload_class): Return LEA_REGS when reloading
936                 a dangerous constant into a class containing $25.
937                 * config/mips/mips.md (movdi_internal2): Add an e <- T alternative.
938                 (movsi_internal): Likewise.
939
940         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
941
942                 * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro.
943                 * config/mips/mips.md (call_split): New insn.
944                 (call_value_split, call_value_multiple_split): New insns.
945                 (call_internal): Turn into a define_insn_and_split.  Split the
946                 instruction into a call and $gp load if TARGET_SPLIT_CALLS.
947                 (call_value_internal, call_value_multiple_internal): Likewise.
948
949         2003-02-23  Richard Sandiford  <rsandifo@redhat.com>
950
951                 * config/mips/mips.c (mips_reloc_string): Return "%got(" for
952                 RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI.
953                 (mips_encode_section_info): Don't take symbol visibility into
954                 account if TARGET_ABICALLS.  Add more commentary.
955                 * config/mips/mips.md: Add commentary above reloc constants.
956
957         2003-02-12  Richard Sandiford  <rsandifo@redhat.com>
958
959                 * config/mips/mips.c (mips_legitimize_const_move): New, extracted
960                 from mips_legitimize_move.  Legitimize constant pool references.
961                 (mips_legitimize_move): Call mips_legitimize_const_move.  Attach
962                 a REG_EQUAL note to the last instruction.
963
964         2003-02-11  Richard Sandiford  <rsandifo@redhat.com>
965
966                 * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare.
967                 * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New.
968                 (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr.
969                 (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS.
970                 * config/mips/mips.md (UNSPEC_HIGH): New constant.
971                 (UNSPEC_RELOC_GPREL16): Rename to...
972                 (RELOC_GPREL16): ...this.
973                 (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New.
974                 (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New.
975                 (macro_calls): New attribute.
976                 (length): Use it to set the default length of calls.  Don't allow
977                 calls to have delay slots if macro_calls is "yes".
978                 (luisi, luidi): New patterns.
979                 (lowsi, lowdi): Use '%R' to print the relocation.
980                 (lowdi_extend): Remove.
981                 (loadgp): Remove mode from operand 0.  Use '%0' instead of '%a0'.
982                 (call_internal): Merge alternatives.  Always use "jal".
983                 (call_value_internal, call_value_multiple_internal): Likewise.
984                 (reloc_gprel16): Remove.
985                 * config/mips/mips.c (mips_got_alias_set): New variable.
986                 (mips_classify_constant): Handle the new relocation constants.
987                 (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC.
988                 (mips_symbolic_address_p): Return false if generating explicit relocs.
989                 Otherwise allow local PIC symbols to have an offset.
990                 (mips_splittable_symbol_p): New function.
991                 (mips_classify_address): Use it to check whether a LO_SUM is valid.
992                 (mips_const_insns): Always accept HIGH.
993                 (call_insn_operand): Don't accept global symbols if using explicit
994                 relocs.
995                 (move_operand): Don't accept HIGH when generating PIC.
996                 (mips_reloc, mips_lui_reloc): New functions.
997                 (mips_force_temporary): Remove MODE argument.  Expect VALUE to
998                 be a valid right-hand-side for a SET pattern.
999                 (mips_load_got, mips_load_got16, mips_load_got32): New functions.
1000                 (mips_emit_high): New function.
1001                 (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative
1002                 case.  Use mips_splittable_symbol_p to check whether a LO_SUM
1003                 address should be used.  Use mips_emit_high to generate the
1004                 high part of such an address.  Adjust the global symbol + offset
1005                 case to match the change to mips_force_temprorary.
1006                 (mips_legitimize_move): Shuffle call to mips_legitimize_symbol.
1007                 If generating explicit-reloc PIC, load the address of global
1008                 symbols from the GOT.  Use mips_emit_high to emit the high part
1009                 of an address.
1010                 (mips_simplify_dwarf_addr): New function.
1011                 (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s.
1012                 (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT.
1013                 (mips_expand_call): Load the addresses of global functions using
1014                 %call* relocs if generating explicit-reloc PIC.  Don't generate
1015                 an exception_receiver pattern.
1016                 (override_options): Initialize mips_got_alias_set.
1017                 (print_relocation): Remove in favour of...
1018                 (mips_reloc_string): ...this new function.
1019                 (print_operand): Handle '%R'.  Use mips_reloc_string.
1020                 (print_operand_address): Use print_operand to print the symbolic
1021                 part of a LO_SUM address.
1022                 (mips_output_function_prologue): Use .cprestore, reverting last patch.
1023                 (mips_encode_section_info): Factor out DECL_RTL accesses.  Reverse
1024                 sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check
1025                 for local symbols.
1026
1027         2003-02-02  Eric Christopher  <echristo@redhat.com>
1028
1029                 * config/mips/mips.c (mips_sign_extend): Remove.
1030                 * config/mips/mips-protos.h: Ditto.
1031                 * config/mips/mips.md (movdi_internal2_extend): Remove.
1032                 (extendsidi2): Fix mode of convert_memory_address.
1033
1034         2003-01-24  Eric Christopher  <echristo@redhat.com>
1035
1036                 * config/mips/mips.md: Rewrite zero_extend* and extend*
1037                 patterns. Use explicit instructions and split after reload
1038                 for register extensions.
1039                 (ashlsi3_internal1_extend): New combiner pattern for
1040                 shift and extend combinations.
1041                 * config/mips/mips.h: Change Pmode back to ptr_mode
1042                 for performance enhancement.
1043                 * combine.c (expand_compound_operation): Make sure
1044                 that zero_extend operation is profitable.
1045
1046         2003-01-14  Richard Sandiford  <rsandifo@redhat.com>
1047
1048                 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored
1049                 addresses depend on ptr_mode rather than Pmode.
1050                 (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly.
1051                 (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode.
1052                 (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16.
1053                 (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly.
1054                 * config/mips/mips.md (tablejump): Likewise.  Remove Pmode
1055                 condition for selecting cpaddsi or cpadddi: use cpadd instead.
1056                 (tablejump_internal1): Remove condition.
1057                 (tablejump_internal2): Change condition to TARGET_64BIT.
1058                 (cpaddsi): Rename to...
1059                 (cpadd): ...this.
1060                 (cpadddi): Remove.
1061
1062         2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
1063
1064                 * config/mips/mips-protos.h (mips16_constant_after_function_p,
1065                 mips_address_cost, mips_check_split, double_memory_operand,
1066                 mips16_gp_offset, mips16_gp_offset_p, mips16_constant,
1067                 pic_address_needs_scratch, symbolic_operand): Remove declarations.
1068                 (mips_legitimate_address_p): Return bool.
1069                 (mips_address_insns, mips_fetch_insns, mips_const_insns,
1070                 mips_legitimize_address, mips_legitimize_move,
1071                 mips_expand_call): Declare.
1072                 (mips_return_addr): Move outside #ifdef RTX_CODE.
1073
1074                 * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro.
1075                 (PIC_FN_ADDR_REG): New reg_class.
1076                 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries.
1077                 (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG.
1078                 (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND,
1079                 CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros.
1080                 (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros.
1081                 (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S.
1082                 (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p.
1083                 (LEGITIMATE_PIC_OPERAND): Undefine.
1084                 (LEGITIMATE_CONSTANT_P): Use mips_const_insns.
1085                 (LEGITIMIZE_ADDRESS): Use mips_legitimize_address.
1086                 (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block.
1087                 (FUNCTION_MODE): Change to SImode.
1088                 (CONST_COSTS): Use mips_const_insns to calculate the cost of
1089                 most constants.  Treat const_artih_operands specially if they
1090                 occur in a PLUS or MINUS.
1091                 (CONSTANT_POOL_COST): New macro.
1092                 (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2.
1093                 Add LO_SUM handling.
1094                 (ADDRESS_COST): Undefine.
1095                 (PREDICATE_CODES): Add symbolic_operand and const_arith_operand.
1096                 Add CONST to the list of codes for arith_operand.  Add LABEL_REF
1097                 to call_insn_operand and remove CONST_INT.
1098
1099                 * config/mips/mips.c: Include integrate.h.
1100                 (SINGLE_WORD_MODE_P): New macro.
1101                 (mips_constant_type, mips_symbol_type, mips_address_type): New enums.
1102                 (mips_constant_info, mips_address_info): New structs.
1103                 (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG.
1104                 (mips_classify_constant, mips_classify_symbol,
1105                 mips_valid_base_register_p, mips_symbolic_address_p,
1106                 mips_classify_address, mips_symbol_insns,
1107                 mips16_unextended_reference_p, mips_address_insns, mips_const_insns,
1108                 mips_fetch_insns, mips_force_temporary, mips_add_offset,
1109                 mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move,
1110                 mips_print_relocation): New functions.
1111                 (const_arith_operand): New operand predicate.
1112                 (arith_operand): Use it.
1113                 (mips_const_double_ok, mips16_simple_memory_operand,
1114                 simple_memory_operand, double_memory_operand, mips_check_split,
1115                 mips_address_cost, pic_address_needs_scratch, mips16_gp_offset,
1116                 mips16_gp_offset_p, mips16_output_gp_offset,
1117                 mips16_constant_after_function_p, mips16_constant): Remove.
1118                 (call_insn_operand): Be more fussy about symbolic constants.
1119                 Use register_operand.
1120                 (move_operand): Use mips_symbolic_address_p to check symbolic
1121                 operands and general_operand to check the rest.
1122                 (symbolic_operand): Use mips_classify_constant.
1123                 (mips_legitimate_address_p): Use mips_classify_address.
1124                 (mips_move_1word): Combine handling of symbolic addresses.
1125                 Remove special treatment of gp-relative loads for TARGET_MIPS16.
1126                 (move_move_2words): Likewise.  Assume addresses are offsettable
1127                 if they need to refer to more than one word.  Add HIGH handling.
1128                 (mips_restore_gp): Use ptr_mode for the GP save slot.
1129                 (mips_expand_call): New function, combining the old mips.md
1130                 call and call_internal define_expands.  If the address isn't
1131                 a call_insn_operand, force it into a register.  For SVR4 PIC,
1132                 emit an exception_receiver instruction after the call.
1133                 (override_options): Only override flag_pic for TARGET_ABICALLS
1134                 if it is currently zero.  Allow mips_split_addresses when
1135                 Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS.
1136                 Add new register class letter, 'c'.
1137                 (print_operand): Use mips_classify_constant for constant operands.
1138                 (print_operand_address): Use mips_classify_address.
1139                 (mips_output_function_prologue): Don't use .cprestore.
1140                 (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack
1141                 via the frame pointer if current_function_calls_eh_return.
1142                 (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG
1143                 to mark whether a symbol is local or global.
1144                 (build_mips16_call_stub): Expect the address of the function rather
1145                 than a MEM reference to it.  Update call generation sequences.
1146                 (mips16_optimize_gp): Remove Pmode checks.  Temporarily disable
1147                 small-data adjustments.
1148
1149                 * config/mips/mips.md: Remove 'R'/'m' memory distinction.  Use default
1150                 length for loads and stores.
1151                 (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants.
1152                 (define_attr type): Add const and prefetch.
1153                 (define_attr length): Use mips_const_insns for const instructions.
1154                 Use mips_fetch_insns for load and store instructions.
1155                 (define_attr single_insn): New.
1156                 (define_attr can_delay): Use it.
1157                 (define_attr abicalls): Remove.
1158                 (define_delay): Use can_delay.  Always allow calls to have delay slots.
1159                 (addsi3_internal_2): Add 'Q' constraint.
1160                 (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8.
1161                 (high): Remove.
1162                 (lowsi): Renamed from low.
1163                 (lowdi): New pattern.
1164                 (movdi, movsi): Use mips_legitimize_move.  Remove define_split.
1165                 (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4.
1166                 (loadgp): Change operand 0 to an immediate_operand.
1167                 (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd
1168                 beforehand.
1169                 (cpaddsi, cpadddi): New patterns.
1170                 (tablejump_internal3, tablejump_internal4): Remove define_expands
1171                 and associated define_splits.
1172                 (call, call_value): Use mips_expand_call.
1173                 (call_internal): New, replacing all existing call_internal* insns.
1174                 (call_value_internal): Likewise call_value_internal*.
1175                 (call_value_multiple_internal): Likewise call_value_multiple_internal*.
1176                 (untyped_call): Remove if (operands[0]) magic.
1177                 (prefetch_si_address, prefetch_si): Change type to "prefetch".
1178                 (prefetch_di_address, prefetch_di): Likewise.
1179                 (leasi, leadi): Remove.
1180                 (reloc_gprel16): New.
1181
1182                 * config/mips/5400.md (ir_vr54_hilo): Include const type.
1183                 * config/mips/5500.md (ir_vr55_hilo): Likewise.
1184                 * config/mips/sr71k.md (ir_sr70_hilo): Likewise.
1185
1186         2003-01-08  Eric Christopher  <echristo@redhat.com>
1187
1188                 * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI.
1189                 * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and
1190                 configure check for libgloss.
1191                 * config/mips/elf64.h: Ditto.
1192                 * config/mips/mips.c: Remove ABI_MEABI.
1193                 * config/mips/mips.h: Ditto.
1194
1195         2002-11-05  Richard Sandiford  <rsandifo@redhat.com>
1196
1197                 Fix merge fallout.
1198                 * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change.
1199                 (muldi3_internal): Remove outdated comment.
1200                 (*muls_di, *umuls_di): Fix comment and 64-bitness.
1201                 (*smsac_di, *umsac_di): Likewise.  Reformat.
1202                 (umulsi3_highpart): Minor formatting tweaks.
1203                 (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.  Remove
1204                 redundant scratch operand.  Minor formatting tweak.
1205                 (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well.
1206                 (umulsi3_highpart_neg_mulhi_internal): Likewise.  Fix asm template.
1207                 (smulsi3_highpart): As for the unsigned version.
1208                 (smulsi3_highpart_internal): Likewise.
1209                 (smulsi3_highpart_mulhi_internal): Likewise.
1210                 (smulsi3_highpart_neg_mulhi_internal): Likewise.
1211                 (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks.
1212                 (*smul_acc_di): Remove duplicated pattern.
1213                 (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change.
1214                 (anddi3) [unnamed mips16 pattern]: Remove reintroduced length.
1215                 (zero_extendsidi2_internal2): Remove new, but commented-out pattern.
1216
1217         2002-10-22  Eric Christopher  <echristo@redhat.com>
1218
1219                 * config/mips/mips-protos.h (mips_return_addr): New.
1220                 * config/mips/mips.c (mips_return_addr): New.
1221                 (movdi_operand): Remove.
1222                 (se_register_operand): Ditto.
1223                 (se_reg_or_0_operand): Ditto.
1224                 (se_uns_arith_operand): Ditto.
1225                 (se_arith_operand): Ditto.
1226                 (se_nonmemory_operand): Ditto.
1227                 (extend_operator): Ditto.
1228                 (highpart_shift_operator): Ditto.
1229                 (mips_initial_elimination_offset): Remove return address pointer
1230                 elimination.
1231                 (mips_reg_names): Remove $ra.
1232                 (mips_regno_to_class): Ditto.
1233                 * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64
1234                 and TARGET_64BIT.
1235                 (POINTER_BOUNDARY): Remove.
1236                 (POINTERS_EXTEND_UNSIGNED): Define to 0.
1237                 (PROMOTE_MODE): Promote to Pmode.
1238                 (SHORT_IMMEDIATES_SIGN_EXTEND): Define.
1239                 (Pmode): Define to TARGET_64BIT.
1240                 (FUNCTION_MODE): Define as Pmode.
1241                 (mips_args): Remove deleted functions.
1242                 (SIZE_TYPE): Depend on POINTER_SIZE.
1243                 (PTRDIFF_TYPE): Ditto.
1244                 (FIXED_REGISTERS): Fix extra registers.
1245                 (CALL_USED_REGISTERS): Ditto.
1246                 (CALL_REALLY_USED_REGISTERS): Ditto.
1247                 (RAP_REG_NUM): Remove.
1248                 (RETURN_ADDRESS_POINTER_REGNUM): Ditto.
1249                 (RETURN_ADDR_RTX): Define to mips_return_addr.
1250                 (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM.
1251                 (CAN_ELIMINATE): Ditto.
1252                 * config/mips/mips.md: For DImode patterns, take into account
1253                 deletions above. Split mulsidi patterns into sign_extend and
1254                 zero_extend.
1255
1256         2002-10-16  Richard Sandiford  <rsandifo@redhat.com>
1257                     Michael Meissner  <meissner@redhat.com>
1258
1259                 * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code.
1260                 * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to
1261                 mop up unnecessarly moves through LO.
1262                 (*mul_acc_si): Remove vr5400 and vr5500 handling from here.
1263                 (*macc): New pattern for ISA_HAS_MACC.  Add define_peephole2s to
1264                 change mtlo/macc sequences into mul/add sequences when a three-
1265                 address mul is available.
1266                 (*macc2): New pattern.  Add a define_peephole2 to generate it.
1267                 (*mul_sub_si): Fix contraint for operand 5.
1268                 (*muls): Use in 32-bit code as well.
1269                 (*msac): Likewise.  Use msub instead of msac in vr5500 code
1270                 if the destination is LO.  Remove duplicate define_split.
1271                 (*muls_di): Use only in 32-bit code.  Adjust rtl accordingly.
1272                 (*msac_di): Likewise.  Fix formatting.
1273                 (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too.
1274                 (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI.
1275                 (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT.
1276                 (*xmulsi3_neg_highpart_mulhi): Likewise.
1277                 (*mul_acc_64bit_di): Remove.
1278                 (*mul_acc_di): Use only in 32-bit code.  Handle ISA_HAS_MACC as well.
1279
1280         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
1281
1282                 * config/mips/vr.h (DRIVER_SELF_SPECS): Define.
1283                 * config/mips/t-vr (MULTILIB_OPTIONS): Remove mlong32.
1284                 (MULTILIB_DIRNAMES): Remove long32.
1285                 (MULTILIB_EXCEPTIONS): Don't build -mabi=32 -mgp32 multilibs.
1286                 (MULTILIB_REDUNDANT_DIRS): Remove.
1287
1288         2002-10-14  Richard Sandiford  <rsandifo@redhat.com>
1289
1290                 * doc/tm.texi (DRIVER_SELF_SPECS): Document.
1291                 * gcc.c (driver_self_specs): New variable.
1292                 (do_self_spec): New function.
1293                 (main): Use it to process driver_self_specs.
1294
1295         2002-10-09  Richard Sandiford  <rsandifo@redhat.com>
1296
1297                 * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT.
1298                 Remove DImode define_split for !TARGET_64BIT.
1299                 (anddi3): Remove !TARGET_64BIT support from here as well.
1300                 Change operand 2's predicate to se_uns_arith_operand.
1301                 Add constant alternatives to define_insn.
1302                 (iordi3, xordi3, *nordi3): Likewise.
1303                 (anddi3_internal1, xordi3_immed): Remove.
1304
1305         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1306
1307                 * config/mips/mips.h (PROCESSOR_R4121): Rename to PROCESSOR_R4120.
1308                 (TARGET_MIPS4121): Rename to TARGET_MIPS4120.
1309                 * config/mips/mips.c (mips_cpu_info): Rename vr4121 to vr4120.
1310                 * config/mips/mips.md: Apply same renaming here.
1311
1312         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1313
1314                 * config/mips/mips.c (PROCESSOR_R4320, TARGET_MIPS4320): Remove.
1315                 (GENERATE_MULT3_SI): Remove use of TARGET_MIPS4320.
1316                 * config/mips/mips.c (mips_cpu_info): Remove vr4320 entry.
1317                 * config/mips/mips.md (define_attr cpu): Remove r4320.
1318                 Remove vr4320 scheduler and uses of TARGET_MIPS4320.
1319
1320         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1321
1322                 * config/mips/mips.c (mips16_strings): New variable.
1323                 (mips_output_function_epilogue): Clear the SYMBOL_REF_FLAG of every
1324                 symbol in mips16_strings.  Free the list.
1325                 (mips_encode_section_info): Keep track of local strings.
1326
1327         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1328
1329                 * config/mips/mips.md (bunge, bltgt, bungt): New define_expands.
1330                 (sordered_df, sordered_sf): Remove.
1331                 * config/mips/mips.c (get_float_compare_codes): New fn.
1332                 (gen_int_relational, gen_conditional_move): Use it.
1333
1334         2002-10-01  Richard Sandiford  <rsandifo@redhat.com>
1335
1336                 * config/mips/mips-protos.h (mips_emit_fcc_reload): Declare.
1337                 * config/mips/mips.h (PREDICATE_CODES): Add fcc_register_operand.
1338                 * config/mips/mips.c (fcc_register_operand): New function.
1339                 (mips_emit_fcc_reload): New function, extracted from reload_incc.
1340                 (override_options): Allow TFmode values in float registers
1341                 if ISA_HAS_8CC.
1342                 * cnfig/mips/mips.md (reload_incc): Change destination prediate
1343                 to fcc_register_operand.  Remove misleading source constraint.
1344                 Use mips_emit_fcc_reload.
1345                 (reload_outcc): Duplicate reload_incc.
1346
1347
1348 2003-04-30  Diego Novillo  <dnovillo@redhat.com>
1349
1350         * builtins.def (BUILTIN_CONSTANT_P): Mark as constant.
1351
1352 2003-04-30  Geoffrey Keating  <geoffk@apple.com>
1353
1354         * tree-inline.c (inlinable_function_p): Back out last change, it's
1355         unnecessary.
1356
1357 2003-04-30  Steven Bosscher  <steven@gcc.gnu.org>
1358
1359         * ggc-page.c (TREE_EXP_SIZE): Define.
1360         (extra_order_size_table): New entry for expr trees with
1361         two operands.
1362
1363 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1364
1365         * c-common.c (if_elt): Use location_t in lieu of "file, line" pair.
1366         (c_expand_start_cond): Adjust.
1367         (c_expand_end_cond): Don't use warning_with_file_and_file.
1368         (shadow_warning): Likewise.
1369
1370 2003-04-30  Nathan Sidwell  <nathan@codesourcery.com>
1371
1372         * tree.h (DECL_POINTER_DEPTH): Remove.
1373         (struct tree_decl): Remove pointer_depth.
1374
1375 2003-04-30  Janis Johnson  <janis187@us.ibm.com>
1376
1377         * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove.
1378         * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove.
1379         (rs6000_xcoff_encode_section_info): Remove.
1380         (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug.
1381         (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS.
1382         (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,):
1383         Use SYMBOL_REF_FLAGS.
1384         (rs6000_elf_encode_section_info): Call default_encode_section_info for
1385         generic flags, use SYMBOL_REF_FLAGS; code cleanups.
1386         * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
1387         (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New.
1388         * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove.
1389         (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG.
1390
1391 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1392
1393         * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF.
1394
1395 2003-04-30  Andreas Schwab  <schwab@suse.de>
1396
1397         * doc/extend.texi (Other Builtins): Enclose multiple word data
1398         type in braces for @deftypefn.
1399
1400 2003-04-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1401
1402         * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows.
1403
1404         * doc/install.texi (--enable-threads): Document "gnat" option.
1405
1406 2003-04-30  Gabriel Dos Reis <gdr@integrable-solutions.net>
1407
1408         * diagnostic.h (output_formatted_scalar): Tweak.
1409         * diagnostic.c (output_long_decimal): Likewise.
1410         (output_unsigned_decimal): Likewise.
1411         (output_long_unsigned_decimal): Likewise.
1412         (output_octal): Likewise.
1413         (output_long_octal): Likewise.
1414         (output_hexadecimal): Likewise.
1415         (output_long_hexadecimal): Likewise.
1416         (output_pointer): New function.
1417         (output_format): Use it.  Recognize "%p" format specifier.
1418
1419 2003-04-30  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1420
1421         * function.c (purge_addressof_1): Postpone insn in fewer cases.
1422
1423 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1424
1425         * config/rs6000/host-darwin.c (segv_handler): When -dH is used,
1426         call abort() after running out of stack space.
1427
1428         * c-typeck.c (function_types_compatible_p): Ignore incompatible
1429         'volatile' qualifiers on a function's return type in GNU mode.
1430
1431 2003-04-29  Aldy Hernandez  <aldyh@redhat.com>
1432
1433         * expr.c (emit_group_load): Dump parallels of simd types to
1434         memory.
1435
1436 2003-04-29  Vladimir Makarov  <vmakarov@redhat.com>
1437
1438         * genautomata.c (add_vect): Check undefined value for range type
1439         too.
1440
1441 2003-04-29  Phil Edwards  <pme@gcc.gnu.org>
1442
1443         * configure.in:  More general test for cmp --ignore-initial.
1444         * configure:  Regenerate.
1445
1446 2003-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1447
1448         * stor-layout.c (mode_for_size_tree): Use tree_low_cst.
1449         (layout_decl, place_field): Likewise.
1450         Also make minor type and whitespace changes.
1451
1452         * tree.c (save_expr): Don't fold a COMPONENT_REF.
1453
1454 2003-04-29  Olivier Hainque <hainque@act-europe.fr>
1455
1456         * calls.c (expand_call): When modes of target and valreg match, force
1457         sibcall failure when target is a MEM.
1458
1459 2003-04-29  Geoffrey Keating  <geoffk@apple.com>
1460
1461         * tree-inline.c (inlinable_function_p): Don't support inlining
1462         functions using varargs.
1463
1464         * doc/invoke.texi (Overall Options): Mention -x objective-c-header.
1465
1466         * dwarf2out.c (output_call_frame_info): No need to output EH
1467         unwind information if all_throwers_are_sibcalls.
1468
1469         * c-semantics.c (expand_unreachable_stmt): Return a tree.
1470         (expand_stmt): Update for change to expand_unreachable_stmt.
1471         (expand_unreachable_if_stmt): Likewise.
1472
1473         * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake.
1474
1475 2003-04-29  Jason Merrill  <jason@redhat.com>
1476
1477         PR middle-end/10336
1478         * jump.c (never_reached_warning): Really stop looking if we reach
1479         the beginning of the function.
1480
1481 2003-04-29  Bob Wilson  <bob.wilson@acm.org>
1482
1483         * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX):
1484         Remove redundant macros.
1485         (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int".
1486         (LOCAL_LABEL_PREFIX): Define unconditionally.
1487         (NO_DOT_IN_LABEL): Clarify comment.
1488         * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit
1489         definition to "long int".
1490
1491 2003-04-29  Alexander Kabaev  <kan@FreeBSD.ORG>
1492
1493         bootstrap/10452
1494         * gengtype-yacc.y: Improve portability.
1495
1496 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1497
1498         * config.gcc: Install obsolete target list for GCC 3.3.
1499         * doc/install.texi: Mention in specific-target instructions
1500         that certain configurations are deprecated.
1501
1502 2003-04-29  Zack Weinberg  <zack@codesourcery.com>
1503
1504         * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK.
1505
1506 2003-04-29  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1507
1508         * c-pragma.c (maybe_apply_renaming_pragma): Fix typo.
1509         * gcc.c (display_help): Likewise.
1510         * toplev.c (f_options): Likewise.
1511         * params.def (PARAM_MAX_INLINE_SCOPE): Likewise.
1512         * config/c4x/c4x.h (TARGET_SWITCHES): Likewise.
1513         * config/mcore/mcore.h (TARGET_SWITCHES): Likewise.
1514         * config/s390/s390.h (TARGET_SWITCHES): Likewise.
1515         * config/v850/v850.h (TARGET_SWITCHES): Likewise.
1516
1517 2003-04-29  J"orn Rennecke <joern.rennecke@superh.com>
1518
1519         * varasm.c (default_assemble_visibility): Use assemble_name.
1520
1521 2003-04-29  David O'Brien  <obrien@FreeBSD.org>
1522
1523         * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker.
1524         * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro.
1525         (SIZE_TYPE): New macro.
1526         * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro.
1527         (SET_ASM_OP): New macro.
1528         (HANDLE_SYSV_PRAGMA): New macro.
1529         (ASM_WEAKEN_LABEL): New macro.
1530
1531 2003-04-28  Mark Mitchell  <mark@codesourcery.com>
1532
1533         PR c++/10180
1534         * tree-inline.c (expand_call_inline): Call push_srcloc when
1535         encountering EXPR_WITH_FILE_LOCATION.  Honor warn_inline.
1536
1537 2003-04-28  Mike Stump  <mrs@apple.com>
1538
1539         * gdbinit.in: Update to reflect new identifier structure.
1540
1541 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
1542
1543         * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete.
1544         (struct tree_int_cst, struct tree_real_cst, struct tree_string,
1545         struct tree_complex, struct tree_vector): Remove RTL field.
1546         (CONSTRUCTOR_ELTS): Use elt 0.
1547         * tree.def (CONSTRUCTOR): Delete first of its two operands.
1548         * varasm.c (output_constant_def): Remove early exit if
1549         TREE_CST_RTL is set.  Don't set TREE_CST_RTL.
1550         (decode_addr_const): Don't mention TREE_CST_RTL in comment.
1551         * target.h (select_section): Don't mention TREE_CST_RTL in comment.
1552         * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL.
1553
1554 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1555
1556         * c-decl.c (finish_decl): When prototype with asmspec is found
1557         for built-in, adjust built_in_decls as well as expr.c decls.
1558         * expr.c (init_block_move_fn, init_block_clear_fn): New functions.
1559         (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it.
1560         * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes.
1561
1562 2003-04-28  Richard Henderson  <rth@redhat.com>
1563
1564         * config/sparc/sparc.c (print_operand): Add 's' to sign-extend.
1565         * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of
1566         integral constant mult operand.
1567         (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise.
1568         (const_smulsi3_highpart_v8plus): Likewise.
1569         (const_smulsi3_highpart): Likewise.
1570         (const_umulsidi3_sp32): Likewise; sign-extend it in the output.
1571         (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise.
1572         (const_umulsi3_highpart_v8plus): Likewise.
1573         (const_umulsi3_highpart): Likewise.
1574
1575 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1576
1577         * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE):
1578         Define as 1.
1579
1580 2003-04-28  David O'Brien  <obrien@FreeBSD.org>
1581
1582         * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__.
1583
1584 2003-04-28  Jakub Jelinek  <jakub@redhat.com>
1585
1586         * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New.
1587         * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New.
1588         * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New
1589         functions.
1590         (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE.
1591
1592 2003-04-28  Nick Clifton  <nickc@redhat.com>
1593
1594         * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition.
1595
1596 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1597
1598         * expr.c (expand_expr <COMPLEX_CST, STRING_CST>): Always call
1599         output_constant_def, use its result instead of TREE_CST_RTL (exp).
1600         Can assume it has the form (mem (symbol_ref ".LCxxx")).
1601         (expand_expr <COMPONENT_REF>): Can always just extract the
1602         relevant field of a CONSTRUCTOR.
1603         (expand_expr <ARRAY_REF, COMPONENT_REF, BIT_FIELD_REF,
1604         ARRAY_RANGE_REF>): Make control flow explicit.
1605         * varasm.c (output_constant_def): Can look at TREE_CST_RTL of
1606         an INTEGER_CST.
1607
1608 2003-04-27  Kazu Hirata  <kazu@cs.umass.edu>
1609
1610         * reload1.c (reg_set_luid): Fix a comment typo.
1611
1612 2003-04-27  Zack Weinberg  <zack@codesourcery.com>
1613
1614         * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH,
1615         struct deferred_string, const_str_htab): Kill.
1616         (n_deferred_strings): New static variable.
1617         (build_constant_desc): Set SYMBOL_REF_DECL of the new
1618         symbol_ref to point to the constant.
1619         (output_constant_def): When a deferred string is forced out,
1620         just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings.
1621         (mark_constant): Likewise.
1622         (maybe_output_constant_def_contents): When deferring a string
1623         constant, just set STRING_POOL_ADDRESS_P and increment
1624         n_deferred_strings.
1625         (mark_constant_pool): Check n_deferred_strings, not the size
1626         of const_str_htab.
1627         (init_varasm_once): No need to create const_str_htab.
1628
1629         * rtl.def, rtl.h, doc/rtl.texi: Document possibility that
1630         SYMBOL_REF_DECL points to a constant.
1631
1632 2003-04-26  Zack Weinberg  <zack@codesourcery.com>
1633
1634         * varasm.c (output_constant_def): Split out two new static
1635         functions, build_constant_desc and maybe_output_constant_def_contents.
1636         Restructure for comprehensibility.  Don't call
1637         output_addressed_constants.  Treat defstr being non-NULL for
1638         STRING_POOL_ADDRESS_P constants as an invariant.
1639         (struct deferred_string): Remove labelno field.
1640         (output_constant_def_contents): Kill labelno argument. Call
1641         output_addressed_constants here.  Use ASM_OUTPUT_LABEL, not
1642         asm_out.internal_label.
1643         (mark_constant): Update call to output_constant_def_contents.
1644         Treat defstr being non-NULL for STRING_POOL_ADDRESS_P
1645         constants as an invariant.
1646
1647 2003-04-26  Richard Henderson  <rth@redhat.com>
1648
1649         * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P.
1650         (ix86_expand_call, ix86_rtx_consts): Likewise.
1651
1652 2003-04-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1653
1654         * doc/md.texi (cmpstr): Document additional restrictions.
1655
1656 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1657
1658         * flags.h (time_report): Remove.
1659         * timevar.c (timevar_enable): New.
1660         (TIMEVAR_ENABLE): Remove, use timevar_enable.
1661         (timevar_init): Rename from init_timevar.
1662         * timevar.h (timevar_init): Rename from init_timevar.
1663         * toplev.c (time_report): Make static.
1664         (do_compile): Conditionally call init_timevar first.
1665         (preprocess_options): Move some code to do_compile.
1666
1667 2003-04-26  Stephane Carrez  <stcarrez@nerim.fr>
1668
1669         * doc/install.texi (Binaries): Mention binaries for HC11/HC12.
1670
1671 2003-04-26  Neil Booth  <neil@daikokuya.co.uk>
1672
1673         * _cpp_lex_direct: Remove pointless code.
1674
1675 2003-04-26 Stephane Carrez <stcarrez@nerim.fr>
1676
1677         * doc/extend.texi (Function Attributes): Document "near" and "far"
1678         for 68HC11 and 68HC12.
1679
1680 2003-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1681
1682         * expr.c (store_field): When making temporary for store, don't
1683         make it TYPE_QUAL_CONST.
1684
1685 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1686
1687         * toplev.c (read_integral_parameter):  Use "argument" in error
1688         message to distinguish it from actual invalid options.
1689
1690 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1691
1692         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
1693         addition of __PIC__ and __pic__ macros.
1694         * config/xtensa/xtensa.h: Clean up indentation.
1695
1696 2003-04-25  Bob Wilson  <bob.wilson@acm.org>
1697
1698         * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
1699         _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
1700         (SUBTARGET_CPP_SPEC): Define.
1701         (LIB_SPEC): Delete.
1702         * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
1703         * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
1704         * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
1705         Define.
1706         (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
1707         (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
1708
1709 2003-04-25  H.J. Lu <hjl@gnu.org>
1710
1711         * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
1712         for return mode.
1713         (ia64_expand_builtin): Set rmode to SImode for
1714         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
1715         IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
1716         IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
1717         for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
1718
1719 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
1720
1721         * configure.in (make_compare_target):  Test for GNU cmp and set this
1722         variable appropriately.
1723         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
1724         compare4-lean): Rename actual targets to slowcompare*.  New compare*
1725         targets depend on names based on make_compare_target.
1726         * configure:  Regenerated.
1727
1728 2003-04-25  Richard Henderson  <rth@redhat.com>
1729
1730         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
1731         to clobber ar.pfs and ar.unat.
1732         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
1733         fix test for spilling ar.pfs to the stack.
1734
1735 2003-04-25  Richard Henderson  <rth@redhat.com>
1736
1737         PR opt/10315
1738         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
1739         checks during reload; use validize_mem instead of adjust_address.
1740
1741 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
1742
1743         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
1744         return values from recog_memoized().
1745
1746 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1747
1748         PR opt/8705
1749         * gcse.c (try_replace_reg): On a successful substitution of a constant
1750         into a single set, try to simplify the source of the set.
1751         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
1752         constant source.
1753
1754 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
1755
1756         * cpplex.c (cpp_token_len): Tighten up.
1757         (cpp_token_as_text): Need extra byte now.
1758         * cpplib.c (glue_header_name): Need extra 2 bytes.
1759         * cppmacro.c (cpp_macro_definition): Need extra byte.
1760
1761 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
1762
1763         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
1764         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets
1765         where they might be not present. Use their _sp64 equivalent
1766         instead.
1767
1768 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
1769
1770         * i386.md (cvtsi2sdq): Fix typo in previous patch.
1771
1772 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
1773
1774         * configure.in: Check whether mbstowcs works.
1775         * configure, config.in: Regenerate.
1776         * intl.c: Use HAVE_WORKING_MBSTOWCS.
1777
1778 2003-04-24  H.J. Lu <hjl@gnu.org>
1779
1780         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
1781         for __sync_bool_compare_and_swap_di for int return type.
1782
1783         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
1784         Change return type to int.
1785         (__sync_bool_compare_and_swap): Likewise.
1786
1787 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
1788
1789         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
1790         looking for fallthru edge.
1791
1792         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
1793         Fix.
1794         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
1795         athlon-fvector): New.
1796         (athlon_*): Revisit to match new optimization guide.
1797         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
1798         * i386.md (cvt??2?? patterns): Fix modes.
1799         (fistp patterns): Set modes.
1800
1801         Accidentaly commited with my earlier reload patch:
1802         PR c/10308
1803         * reload.c (find_reloads_address_1): Reload plus at the place of
1804         index register.
1805
1806 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
1807
1808         New GCOV_TAG_FUNCTION layout
1809         * coverage.c (struct function_list): Replace name with ident.
1810         (struct counts_entry): Likewise.
1811         (fn_ident): New.
1812         (htab_counts_entry_hash, htab_counts_entry_eq,
1813         htab_counts_entry_del): Adjust.
1814         (reads_count_file, get_coverage_counts,
1815         coverage_begin_output, coverage_end_function): Adjust.
1816         (build_fn_info_type, build_fn_info_value): Likewise.
1817         * gcov-dump.c (tag_function): Adjust.
1818         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1819         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
1820         * gcov.c (struct function_info): Add ident.
1821         (read_graph_file, read_count_file): Adjust.
1822         * libgcov.c (gcov_exit): Adjust.
1823
1824 2003-04-23  Richard Henderson  <rth@redhat.com>
1825
1826         PR opt/8300
1827         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
1828         after initialize_uninitialized_subregs; update reg info assuming
1829         new pseudos were created.
1830
1831 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
1832
1833         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
1834         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
1835         (lex_string): Take cpp_string with full spelling.
1836         (cb_ident): Update.
1837         (c_lex): Update diagnostics.
1838         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
1839         (create_literal): New.
1840         (lex_string): Unterminated literals have type CPP_OTHER.
1841         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
1842         for CPP_OTHER.
1843         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
1844         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
1845         * cpplib.c (parse_include, do_line, do_linemarker,
1846         destringize_and_run): Update for token storing full spelling.
1847         * cpplib.h: Update token spelling types.
1848         * cppmacro.c (stringify_arg, check_trad_stringification):
1849         Update for token storing full spelling.
1850
1851 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
1852
1853         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
1854
1855 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
1856
1857         * arm.h (TARGET_OPTIONS): Add value field.
1858
1859 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
1860
1861         * doc/extend.texi: Remove duplicate 2003 copyright date.
1862
1863 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
1864
1865         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
1866         (libgcov.a): Depends on LIBGCC_DEPS.
1867         * basic-block.h (profile_info): Moved here from coverage.h. Made
1868         a pointer.
1869         * coverage.c (struct function_list): Fixed array of counter types.
1870         (struct counts_entry): Keyed by counter type, contains summary.
1871         (profile_info): Moved to profile.c.
1872         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
1873         vars.
1874         (profiler_label): Remove.
1875         (ctr_labels): New.
1876         (set_purpose, label_for_tag, build_counter_section_fields,
1877         build_counter_section_value, build_counter_section_data_fields,
1878         build_counter_section_data_values, build_function_info_fields,
1879         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
1880         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
1881         build_ctr_info_value, build_gcov_info): New.
1882         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
1883         (reads_counts_file): Adjust.
1884         (get_coverage_counts): Takes counter number. Add summary
1885         parameter. Adjust.
1886         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
1887         create counter array labels.
1888         (coverage_end_function): Adjust.
1889         (create_coverage): Adjust.
1890         (find_counters_section): Remove.
1891         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
1892         (struct section_info, struct profile_info): Remove.
1893         (profile_info): Moved to basic-block.h.
1894         (coverage_counter_ref): Takes a counter number.
1895         (get_coverage_counts): Takes a counter number. Added summary
1896         parameter.
1897         (find_counters_section): Remove.
1898         * gcov-dump.c (tag_arc_counts): Rename to ...
1899         (tag_counters): ... here. Adjust.
1900         (tag_table): Move tag_counters to 3rd entry. Remove
1901         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
1902         (dump_file): Check for counter tag values here.
1903         (tag_summary): Adjust.
1904         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
1905         * gcov-io.h (GCOV_LOCKED): New.
1906         (GCOV_TAG_ARC_COUNTS): Rename to ...
1907         (GCOV_TAG_COUNTS_BASE): ... here.
1908         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
1909         Remove.
1910         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
1911         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
1912         GCOV_TAG_IS_COUNTER): New.
1913         (struct gcov_ctr_summary): New.
1914         (struct gcov_summary): Adjust.
1915         (struct gcov_counter_section): Remove.
1916         struct gcov_counter_section_data): Remove.
1917         (struct gcov_function_info): Rename to ...
1918         (struct gcov_fn_info): ... here. Adjust.
1919         (struct gcov_ctr_info): New.
1920         (struct gcov_info): Adjust.
1921         * gcov.c (read_count_file): Adjust.
1922         (output_lines): Adjust.
1923         * libgcov.c (gcov_exit): Adjust.
1924         (__gcov_flush): Adjust.
1925         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
1926         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
1927         probably_never_executed_bb_p, compute_frequency_function): Adjust
1928         profile_info use.
1929         * profile.c (struct counts_entry): Remove.
1930         (profile_info): Define here.
1931         (get_exec_counts): Adjust get_coverage_counts call.
1932         (compute_branch_probablilities): Remove find_counters_section
1933         call.
1934         (gen_edge_profiler): Adjust coverage_counter_ref call.
1935         * tracer.c (tail_duplicate): Adjust profile_info use.
1936
1937 2003-04-23  Roger Sayle  <roger@eyesopen.com>
1938
1939         PR optimization/10339
1940         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
1941         directly instead of unsafely transforming call into a memcmp.
1942         (expand_builtin_strncmp): Likewise.
1943
1944 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1945
1946         * alias.c (mark_constant_function):  Check for constancy and
1947         purity even of void functions.  Update both the function decl
1948         and the cgraph RTL info with the results.
1949
1950 2003-04-22  Roger Sayle  <roger@eyesopen.com>
1951
1952         * real.c (do_add): Change to return a bool indicating that the
1953         result of the operation may be inexact due to loss of precision.
1954         (do_multiply): Likewise.
1955         (do_divide): Likewise.
1956
1957 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
1958             Loren James Rittle  <ljrittle@acm.org>
1959
1960         * dwarf2out.c (fde_table_allocated): Mark with GTY.
1961         (decl_die_table_allocated): Likewise.
1962         (abbrev_die_table_allocated): Likewise.
1963         (line_info_table_allocated): Likewise.
1964         (separate_line_info_table_allocated): Likewise.
1965         (pubname_table_allocated): Likewise.
1966         (arange_table_allocated): Likewise.
1967         (ranges_table_allocated): Likewise.
1968         (decl_die_table_in_use): Unconditionalize; mark with GTY.
1969         (abbrev_die_table_in_use): Likewise.
1970         (line_info_table_in_use): Likewise.
1971         (separate_line_info_table_in_use): Likewise.
1972         (pubname_table_in_use): Likewise.
1973         (arange_table_in_use): Likewise.
1974         (ranges_table_in_use): Likewise.
1975         (have_location_lists): Likewise.
1976         (emitcount): New GTY-marked static, moved...
1977         (maybe_emit_file): ...from here.
1978         (label_num): New GTY-marked static, moved...
1979         (gen_internal_sym): ...from here.
1980
1981 2003-04-22  Richard Henderson  <rth@redhat.com>
1982
1983         PR 8866
1984         * rtl.h (MEM_NOTRAP_P): New.
1985         (MEM_COPY_ATTRIBUTES): Copy it.
1986         * rtlanal.c (may_trap_p): Check it.
1987         * expr.c (do_tablejump): Set it.
1988         * doc/rtl.texi (Flags): Document it.
1989
1990         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
1991
1992 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
1993
1994         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
1995         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
1996
1997 2003-04-22  Vincent Celier <celier@gnat.com>
1998
1999         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
2000         --enable-threads=gnat.
2001         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
2002         * configure.in: Add gnat to the list of thread packages
2003         * configure: Rebuild.
2004         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
2005
2006 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
2007
2008         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
2009
2010 2003-04-22  Devang Patel  <dpatel@apple.com>
2011
2012         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
2013         parameter count.
2014         (_cpp_copy_replacement_text): Same.
2015
2016 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
2017
2018         * c-lex.c (c_lex): Handle CPP_OTHER differently.
2019         * cppexp.c (_cpp_parse_expr): Similarly.
2020         * cpplex.c (SPELL_CHAR): Remove.
2021         (_cpp_lex_direct): Stray chars are saved as byte strings.
2022         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
2023         handle SPELL_CHAR.
2024         (cpp_avoid_paste): Update handling of CPP_OTHER.
2025         * cpplib.h: Spell CPP_OTHER like a number.
2026         (struct cpp_token): Remove member c.
2027         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
2028
2029 2003-04-22  David Turner <novalis@gnu.org>
2030
2031         * gbl-ctors.h: Add special license exception.
2032         * libgcc2.h: Likewise.
2033         * tsystem.h: Likewise.
2034         * gcov-io.h: Likewise.
2035
2036 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
2037
2038         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
2039         macro defaulting to original BRANCH_COST heuristic.
2040         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
2041
2042         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
2043
2044 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
2045
2046         * config/rs6000/t-spe: Merge in t-fprules into file.
2047
2048         * config.gcc: Add t-spe to powerpc-eabispe.
2049
2050 2003-04-22  Kean Johnston  <jkj@sco.com>
2051
2052         * tlink.c (recompile_files): Add missing '=' to putenv calls
2053
2054 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
2055
2056         * ginclude/stddef.h: Provide C++ safe offsetof.
2057
2058 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
2059
2060         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
2061         for reg notes, if there are no substitutions, just use a SUBREG.
2062
2063 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2064
2065         * Makefile.in (calls.o): Depend on except.h.
2066         * calls.c: Include except.h.
2067         (emit_call_1): Call note_eh_region_may_contain_throw if
2068         appropriate.
2069         * except.c (eh_region): Add may_contain_throw.
2070         (expand_eh_region_end_cleanup): Do not include handler code when
2071         it cannot be reached.
2072         (note_eh_region_may_contain_throw): New function.
2073         * except.h (note_eh_region_may_contain_throw): New function.
2074
2075 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2076
2077         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
2078         changes.
2079
2080 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
2081
2082         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
2083         64-bit long doubles.
2084
2085 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
2086
2087         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
2088         a number of conversions required for type consistency and previously
2089         stripped off by STRIP_NOPS.
2090
2091         * calls.c (expand_call): Prevent sibcall optimization for calls to
2092         nested subprograms.
2093
2094         * expmed.c (extract_bit_field): Reverse operands of && condition to
2095         prevent a potential division by zero in the previously first branch.
2096         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
2097
2098 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
2099
2100         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
2101         (subrange_type_die): Likewise.
2102         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
2103         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
2104
2105 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
2106
2107         Break out coverage routines to new file.
2108         * Makefile.in (COVERAGE_H): New variable
2109         (C_OBJS): Add coverage.o
2110         (coverage.o): New target.
2111         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
2112         dependencies.
2113         (GTFILES): Adjust.
2114         (gt-coverage.h): New target.
2115         (gt-profile.h): Remove.
2116         * profile.h: Remove. Move to ...
2117         * coverage.h: ... here. New. #include gcov-io.h.
2118         * gcov-io.h: Move function definitions to ...
2119         * gcov-io.c: ... here. New.
2120         * profile.c: Move coverage routines to coverage.c.
2121         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
2122         end_branch_prob): Adjust.
2123         * coverage.c: New. Coverage routines from profile.c
2124         (coverage_counter_ref, coverage_init, coverage_finish,
2125         coverage_end_function, coverage_begin_output,
2126         coverage_counter_ref, get_coverage_counts): Define.
2127         * gcov-dump.c, gcov.c: #include gcov-io.c.
2128         * libgcov.c: Likewise. Adjust.
2129         * loop-init.c: Don't #include profile.h
2130         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
2131         * rtl.h: Add coverage prototypes.
2132         * toplev.c (compile_file): Init coverage, not branch_prob.
2133         Always call coverage_finish.
2134         (rest_of_compilation): Call coverage_end_function.
2135
2136 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
2137
2138         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
2139
2140 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
2141
2142         * c-ppoutput.c (cb_include): Don't take a cpp_token.
2143         * cppfiles.c: Don't undef strcmp.
2144         (find_include_file): Don't take a cpp_token.  Check for empty
2145         file names.
2146         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
2147         (cpp_push_include): Simplify.
2148         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
2149         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
2150         (parse_include): Similary.  Don't check for zero-length filenames.
2151         (do_include_common, do_pragma_dependency): Update accordingly.
2152         * cpplib.h (struct cpp_callbacks): Change prototype of include.
2153
2154 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2155
2156         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
2157         details of conflict handling.
2158
2159         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
2160         when conversion overflows.
2161
2162         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
2163
2164         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
2165         before clearing.
2166
2167 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
2168
2169         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
2170         have the same form as the old RTL.
2171
2172 2003-04-21  Andreas Jaeger  <aj@suse.de>
2173
2174         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
2175
2176 2003-04-20  Chris Lattner  <sabre@nondot.org>
2177             Zack Weinberg  <zack@codesourcery.com>
2178
2179         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
2180         genrtl_cleanup_stmt.  Correct comment at head of
2181         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
2182
2183         * stmt.c (struct nesting): Kill n_function_calls.
2184         (expand_start_bindings): Don't set
2185         thisblock->data.block.n_function_calls.
2186         (expand_end_bindings): Compare function_call_count against 0.
2187         (expand_cleanups): Kill DONT_DO argument; all callers passed
2188         NULL_TREE. All callers updated to match.
2189
2190 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
2191
2192         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
2193         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
2194         (output_constant_def): Remove code predicated on
2195         defer_addressed_constants_flag.
2196
2197         * output.h: Remove prototypes of deleted functions.
2198         * c-typeck.c (constructor_subconstants_deferred): Kill.
2199         (struct initializer_stack): Remove 'deferred' field.
2200         (start_init): Remove all references to the above.
2201         (finish_init): Likewise. Also remove never-executed call to
2202         output_deferred_addressed_constants.  Pull assignment to
2203         defstr out of if expression.
2204
2205 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
2206
2207         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
2208         NOTE_NEWLINE): Remove.
2209         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
2210         to handle new form of line note type.
2211
2212 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
2213
2214         * target.h (encode_section_info): Add new argument carrying
2215         the RTL to be modified by the hook.
2216
2217         * varasm.c (make_decl_rtl, output_constant_def): Update calls
2218         to encode_section_info.
2219         (default_encode_section_info): Take and use RTL argument,
2220         don't use TREE_CST_RTL or DECL_RTL.
2221         * output.h: Update prototype of default_encode_section_info.
2222         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
2223         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
2224         Update calls to encode_section_info.
2225
2226         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
2227         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
2228         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
2229         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
2230         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
2231         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
2232         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
2233         except for PE dllimport/dllexport.  Update calls to
2234         default_encode_section_info.
2235
2236         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
2237         Update prototypes.
2238
2239         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
2240
2241 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2242
2243         PR/8705
2244         * pa.md (movccfp): New expander.
2245         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
2246         Reverse fcmp conditions.
2247
2248 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2249
2250         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
2251         of operand 1 correctly.
2252
2253 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
2254
2255         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
2256         * gcov.c (output_lines): Don't be so fussy about going past EOF.
2257
2258 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
2259
2260         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
2261         (cppcharset.o): New target.
2262         * c-lex.c (is_extended_char): Move to cppcharset.c.
2263         (utf8_extend_token): Delete.
2264         * cppcharset.c: New file.
2265         * cpphash.h (_cpp_valid_ucn): New.
2266         * cpplex.c (lex_identifier): Update prototype.
2267         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
2268         escapes.
2269         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
2270         in cppcharset.c.
2271         (lex_number, lex_identifier, cpp_parse_escape): Update.
2272         (_cpp_lex_direct): Update to handle UCNs.
2273         (cpp_avoid_paste): Don't paste to form a UCN.
2274
2275 2003-04-19  Roger Sayle  <roger@eyesopen.com>
2276
2277         * builtins.c (expand_builtin):  Don't expand a pure or const
2278         built-in function if the result will be ignored and none of
2279         its arguments are volatile.
2280
2281 2003-04-19  Kean Johnston  <jkj@sco.com>
2282
2283         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
2284         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
2285         target fragment now: t-sco5; dont compile crti.o.
2286         * config/i386/sco5.h: major overhaul to remove all COFF remnants
2287         and to use elfos.h for most definitions.
2288         (BSS_SECTION_ASM_OP): set correct segment attributes.
2289         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
2290         (DWARF2_UNWIND_INFO): Always set to 1.
2291         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
2292         (MD_STARTFILE_PREFIX_1): Define.
2293         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
2294         (DEFAULT_LINKER): Define if not specified to configure.
2295         (CTORS_SECTION_ASM_OP): Remove COFF crud.
2296         (DTORS_SECTION_ASM_OP): Remove COFF crud.
2297         (WINT_TYPE): Define.
2298         (SDB_DEBUGGING_INFO): Remove.
2299         (EXTRA_SECTIONS): Likewise.
2300         (EXTRA_SECTION_FUNCTIONS): Likewise.
2301         (CTOR_LIST_BEGIN): Likewise.
2302         (CTOR_LIST_END): Likewise.
2303         (INIT_SECTION_FUNCTION): Likewise.
2304         (FINI_SECTION_FUNCTION): Likewise.
2305         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
2306         (LOCAL_LABEL_PREFIX): Likewise.
2307         (NON_SAVING_SETJMP): Likewise.
2308         (RETURN_POPS_ARGS): Likewise.
2309         (ASM_OUTPUT_SKIP): Likewise.
2310         (TARGET_ASM_NAMED_SECTION): Likewise.
2311         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
2312         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2313         (ASM_OUTPUT_IDENT): Likewise.
2314         (ASM_OUTPUT_CASE_LABEL): Likewise.
2315         (ASM_OUTPUT_ASCII): Likewise.
2316         (ASM_OUTPUT_LIMITED_STRING): Likewise.
2317         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
2318         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
2319         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2320         (ASM_FINISH_DECLARE_OBJECT): Likewise.
2321         (ASM_DECLARE_OBJECT_NAME): Likewise.
2322         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2323         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2324         (ASM_DECLARE_RESULT): Likewise.
2325         (ASM_WEAKEN_LABEL): Likewise.
2326         (SUPPORTS_WEAK): Likewise.
2327         (APPLY_RESULT_SIZE): Likewise.
2328         (LPREFIX): Likewise.
2329         (ALIGN_ASM_OP): Likewise.
2330         (ASCII_DATA_ASM_OP): Likewise.
2331         (IDENT_ASM_OP): Likewise.
2332         (ASM_SHORT): Likewise.
2333         (ASM_LONG): Likewise.
2334         (TYPE_ASM_OP): Likewise.
2335         (SIZE_ASM_OP): Likewise.
2336         (STRING_ASM_OP): Likewise.
2337         (SKIP_ASM_OP): Likewise.
2338         (EH_FRAME_SECTION_ASM_OP): Likewise.
2339         (READONLY_DATA_SECTION_ASM_OP): Likewise.
2340         (INIT_SECTION_ASM_OP): Likewise.
2341         (FINI_SECTION_ASM_OP): Likewise.
2342         (TEXT_SECTION_ASM_OP): Likewise.
2343         (DATA_SECTION_ASM_OP): Likewise.
2344         (TYPE_OPERANT_FORMAT): Likewise.
2345         (ASM_SPEC): Remove COFF code.
2346         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
2347         cause -pg to emit an error; use pcrt1elf.o with -pp
2348         (ENDFILE_SPEC): Likewise.
2349         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
2350         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
2351         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
2352         add -z alt_resolve to support weak symbols the way GCC wants them.
2353         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
2354         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
2355         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
2356         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
2357         (CRTSTUFF_T_CFLAGS_S): Define.
2358         (MULTILIB_OPTIONS): Likewise.
2359         (MULTILIB_DIRNAMES): Likewise.
2360         (MULTILIB_MATCHES): Likewise.
2361         (MULTILIB_EXTRA_OPTS): Likewise.
2362         (LIBGCC): Likewise.
2363         (INSTALL_LIBGCC): Likewise.
2364         (crti.o): Remove.
2365         * config/i386/t-sco5gas: Remove.
2366         * doc/install.texi: Updated for new OpenServer instructions.
2367         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
2368
2369 2003-04-19  Kean Johnston  <jkj@sco.com>
2370
2371         * fixinc/check.tpl: Allow user to over-ride diff program.
2372         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
2373         (sco_math): Added test for SCO math header files.
2374         (sco_regset): Added check for conflicts with ieeefp.h.
2375         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
2376         * fixinc/fixincl.x: Regenerated
2377         * fixinc/tests/base/math.h: Added sco_math tests.
2378         * fixinc/tests/base/string.h: New file.
2379         * fixinc/tests/base/sys/regset.h: New file.
2380
2381 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2382
2383         * cpphash.h (struct cpp_buffer): Remove backup_to.
2384         * cpplex.c (BACKUP, get_effective_char): Die.
2385         (_cpp_skip_block_comment): Assume '*' is location on entry.
2386         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
2387         (IF_NEXT_IS): Update.
2388         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
2389
2390 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
2391
2392         * README.Portability: Move to a new section and obsolete K+R
2393         portability issues.
2394
2395 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
2396
2397         * rtlanal.c (subreg_offset_representable_p):  Fix call of
2398         subreg_lowpart.
2399
2400 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2401
2402         * cpphash.h (struct cpp_reader): New member warned_dollar.
2403         * cpplex.c (continues_identifier_p): New function.
2404         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
2405         lex_number and lex_string, and simplify.
2406         (parse_slow, unescaped_terminator_p): Die.
2407         (_cpp_lex_direct): Update.
2408
2409 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2410
2411         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
2412
2413 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
2414
2415         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
2416         fork behaviour.
2417
2418 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2419
2420         * cppexp.c (eval_token): Permit true and false even if pedantic.
2421
2422 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2423
2424         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
2425
2426 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
2427
2428         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
2429         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
2430         (struct include_file): Remove fefcnt, mapped members.
2431         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
2432         (read_include_file): Don't use mmap, terminate buffers in '\r'.
2433         (purge_cache): Don't use munmap.
2434         * cpphash.h (CPP_BUF_COLUMN): Update.
2435         (lexer_state): Remove lexing_comment.
2436         (struct _cpp_line_note): New.
2437         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
2438         next_line and need_line.  Remove col_adjust and saved_flags.
2439         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
2440         _cpp_skip_block_comment, scan_out_logical_line): New.
2441         (_cpp_init_mbchar): Remove.
2442         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
2443         (cpp_read_main_file): Set line to 1 earlier.
2444         (post_options): -traditional-cpp doesn't want trigraphs.
2445         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
2446         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
2447         _cpp_get_fresh_line): New.
2448         (handle_newline, skip_escaped_newlines, trigraph_p,
2449         continue_after_nul, _cpp_init_mbchar): Remove.
2450         (get_effective_char): Update.
2451         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
2452         (skip_line_comment): Simplify.
2453         (skip_whitespace, parse_identifier, parse_slow, parse_number,
2454         parse_string): Update.
2455         (cpp_lex_direct): Use clean lines and process line notes.  Update.
2456         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
2457         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
2458         directly.
2459         (_cpp_handle_directive): Don't set saved_flags.
2460         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
2461         cpp_undef, handle_assertion, cpp_push_buffer): Update.
2462         (_cpp_pop_buffer): Free notes.
2463         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
2464         * cpppch.c (cpp_read_state): \n terminate buffer.
2465         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
2466         (copy_comment): Use _cpp_skip_block_comment.
2467         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
2468         Simplify.
2469         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
2470         save_replacement_text): Update.
2471         (scan_out_logical_line): Update to use clean lines and process
2472         line notes.
2473         * fix-header.c (read_scan_file): Update.
2474
2475 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
2476
2477         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
2478         null begin parameter (as well as pointer to null).
2479         (__deregister_frame_info_bases): Likewise.
2480
2481 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2482
2483         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
2484         hard or virtual register and copy into pseudo if replacement fails.
2485
2486         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
2487
2488         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
2489
2490 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
2491
2492         * calls.c (expand_call): Move special case for constructor calls
2493         to right place. Ensures constructor calls used to initialize
2494         arguments get a clean outgoing argument block for themselves.
2495         Move check for stack deallocation completeness until after last
2496         deallocation.  Add stack_pointer_delta to set of state
2497         variables saved and restored along with current stack_level.
2498
2499         * integrate.c (expand_inline_function): Ensure non-const actuals
2500         don't end up const in the caller's flow after conversion to possibly
2501         const formal type.
2502
2503 2003-04-18  Vincent Celier  <celier@gnat.com>
2504
2505         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
2506         and *_DIV_EXPR as TRUNC_*_EXPR.
2507
2508 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
2509
2510         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
2511         for orphaned jump tables.
2512
2513 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
2514
2515         * reload1.c: Revert my previous patch on 2002-04-17.
2516
2517 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2518
2519         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
2520         Add Segher Boessenkool.
2521
2522 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
2523
2524         PR c/9177
2525         * c-decl.c (c_expand_body): Don't garbage collect the function
2526         body if we are going to dump it later.
2527
2528 2003-04-18  Richard Henderson  <rth@redhat.com>
2529
2530         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
2531         (alpha_end_function): Don't set them.
2532         (decl_in_text_section): Remove.
2533         (alpha_encode_section_info): Remove.
2534         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
2535         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
2536         sections, rather than decl_in_text_section results.
2537
2538 2003-04-18  Roger Sayle  <roger@eyesopen.com>
2539
2540         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
2541         and SIGN_EXTRACT.
2542
2543 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
2544
2545         PR optimization/7675
2546         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
2547         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
2548         nested functions if they refer to declarations from parent functions.
2549         * stmt.c (expand_decl): Don't put automatic variables in registers
2550         if the DECL_NONLOCAL flag is set.
2551
2552 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
2553
2554         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
2555         consider those to be movable where the source matches
2556         want_to_gcse_p.
2557         (update_ld_motion_stores): In comment, refer to
2558         compute_ld_motion_mems for validity of replacement.
2559
2560 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
2561
2562         * gcov-dump.c (tag_summary): Remove max_sum
2563         * gcov-io.h (gcov_summary, gcov_write_summary,
2564         gcov_read_summary): Kill max_sum.
2565         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
2566         message more verbose.
2567
2568         * emit-rtl.c (subreg_hard_regno):  Check that register is
2569         representable.
2570
2571         * reload.c (reload_inner_reg_of_subreg):  When register is not
2572         representable, reload the whole thing.
2573         (find_reloads): Likewsie.
2574         * rtlanal.c (subreg_representable_p):  New function.
2575
2576         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
2577         allow negative probabilities for edges from the call to exit.
2578         (branch_prob): Do not add fake edges for functions that may return
2579         twice.
2580
2581 2003-04-17  DJ Delorie  <dj@redhat.com>
2582
2583         * toplev.c (target_options): Add value field.
2584         (set_target_switch): Handle target options with values.
2585         * doc/tm.texi: Document how fixed vs variable target
2586         options work.
2587         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
2588         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
2589         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
2590         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
2591         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
2592         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
2593         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
2594         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
2595         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
2596         Add value initializer to target options.
2597
2598 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
2599
2600         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
2601
2602 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
2603
2604         * reload1.c (move2add_last_cc0): New.
2605         (reload_cse_move2add): Detect implicit sets.
2606         (move2add_note_store): Notice a store into cc0.
2607
2608 2003-04-17  Roger Sayle  <roger@eyesopen.com>
2609
2610         PR c/10375
2611         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
2612         function attributes.
2613
2614 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
2615
2616         * doc/sourcebuild.texi (Test Suites): Document support for testing
2617         binary compatibility (moved from testsuite/README.compat).
2618
2619 2003-04-17  Richard Henderson  <rth@redhat.com>
2620
2621         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
2622
2623 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
2624
2625         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
2626         the one provided by the FSF.
2627
2628 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2629
2630         * doc/install.texi (Binaries): Update URL and list of platforms
2631         provided by ftp.thewrittenword.com.
2632
2633 2003-04-17  Richard Henderson  <rth@redhat.com>
2634
2635         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
2636         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
2637         * config/xtensa/xtensa.md (call, call_value): Likewise.
2638
2639 2003-04-17  Richard Henderson  <rth@redhat.com>
2640
2641         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
2642         (print_operand_address): Likewise.
2643         (ep_memory_operand): Likewise.
2644         (special_symbolref_operand): Likewise.
2645         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
2646         (v850_encode_section_info): Call default_encode_section_info.
2647         (v850_strip_name_encoding): Remove.
2648         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
2649         (ASM_OUTPUT_LABELREF): Remove.
2650         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
2651         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
2652         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
2653         (ENCODED_NAME_P): Remove.
2654         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
2655         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
2656         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
2657
2658 2003-04-17  Richard Henderson  <rth@redhat.com>
2659
2660         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
2661         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
2662         SYMBOL_REF_FUNCTION_P.
2663
2664 2003-04-17  Richard Henderson  <rth@redhat.com>
2665
2666         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
2667         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
2668         (text_segment_operand): Likewise.
2669
2670 2003-04-17  Richard Henderson  <rth@redhat.com>
2671
2672         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
2673         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2674         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2675         (sh_encode_section_info): Remove.
2676         (sh_strip_name_encoding): Remove.
2677         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
2678         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
2679         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
2680         (ASM_OUTPUT_LABELREF): Remove.
2681         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
2682         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
2683
2684 2003-04-17  Richard Henderson  <rth@redhat.com>
2685
2686         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
2687         (tls_model_chars): Remove.
2688         (larl_operand): Use SYMBOL_REF_FLAGS.
2689         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2690         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
2691         (s390_output_mi_thunk): Likewise.
2692         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
2693         (s390_function_profiler): Likewise.
2694         (s390_encode_section_info): Use default_encode_section_info
2695         and SYMBOL_FLAG_ALIGN1.
2696         (s390_strip_name_encoding): Remove.
2697         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
2698         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
2699         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
2700
2701 2003-04-17  Richard Henderson  <rth@redhat.com>
2702
2703         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
2704         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
2705         (print_operand_address): Likewise.
2706
2707         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
2708         * config/ns32k/ns32k.c (expand_block_move): Don't check
2709         flag_unroll_loops.
2710
2711 2003-04-17  Richard Henderson  <rth@redhat.com>
2712
2713         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
2714         SYMBOL_REF_FLAG.
2715
2716 2003-04-17  Richard Henderson  <rth@redhat.com>
2717
2718         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
2719
2720         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
2721         (SYMBOL_REF_MODEL): New.
2722         (LIT_NAME_P): Move from m32r.h.
2723         (m32r_select_section): Remove.
2724         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
2725         (m32r_strip_name_encoding): Remove.
2726         (m32r_in_small_data_p): New.
2727         (small_data_operand): Use SYMBOL_REF_SMALL_P.
2728         (addr24_operand): Use SYMBOL_REF_MODEL.
2729         (call26_operand): Likewise.
2730         (addr32_operand): Tidy.
2731         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
2732         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
2733         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
2734         (READONLY_DATA_SECTION_ASM_OP): Remove.
2735         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
2736         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
2737         (TARGET_ASM_SELECT_SECTION): Remove.
2738         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
2739         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
2740         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
2741         (ASM_OUTPUT_LABELREF): Remove.
2742
2743 2003-04-17  Richard Henderson  <rth@redhat.com>
2744
2745         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
2746         (encode_section_info): Remove.
2747         * config/ip2k/ip2k-protos.h: Update.
2748
2749 2003-04-17  Richard Henderson  <rth@redhat.com>
2750
2751         * varasm.c (default_encode_section_info): Don't set
2752         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
2753         * config/i370/i370.c (i370_encode_section_info): Remove.
2754         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
2755         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
2756         * config/i370/i370.md (movsi): Likewise.
2757
2758         * config/i370/t-i370: Add missing backslash.
2759
2760 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2761
2762         * doc/invoke.texi (inline-limit): Fix pasto.
2763
2764 2003-04-17  Richard Henderson  <rth@redhat.com>
2765
2766         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
2767         (small_call_insn_operand): Use it.
2768         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
2769         (h8300_eightbit_constant_address_p): Use it.
2770         (SYMBOL_FLAG_TINY_DATA): New.
2771         (h8300_tiny_constant_address_p): Use it.
2772         (h8300_encode_label, h8300_strip_name_encoding): Remove.
2773         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
2774         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
2775         (ASM_OUTPUT_LABELREF): Remove.
2776
2777 2003-04-16  Richard Henderson  <rth@redhat.com>
2778
2779         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
2780         all users with SYMBOL_REF_SMALL_P.
2781         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
2782         (frv_encode_section_info): Remove.
2783         (frv_strip_name_encoding): Remove.
2784         (frv_in_small_data_p): Merge tests from encode_section_info.
2785         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
2786         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
2787         (SDATA_NAME_P): Remove.
2788         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
2789         (ASM_OUTPUT_LABELREF): Remove.
2790         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
2791
2792         * config/frv/frv.c (frv_asm_out_constructor): New.
2793         (frv_asm_out_destructor): New.
2794         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
2795         (DTORS_SECTION_ASM_OP): New.
2796         (ASM_OUTPUT_CONSTRUCTOR): Remove.
2797         (ASM_OUTPUT_DESTRUCTOR): Remove.
2798
2799 2003-04-16  Richard Henderson  <rth@redhat.com>
2800
2801         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
2802         SYMBOL_REF_LOCAL_P; abort if not pic.
2803         (cris_encode_section_info): Remove.
2804
2805 2003-04-16  Richard Henderson  <rth@redhat.com>
2806
2807         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
2808         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
2809
2810         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
2811         flag_inline_trees.
2812
2813 2003-04-16  Richard Henderson  <rth@redhat.com>
2814
2815         * config/avr/avr.c (avr_encode_section_info): Remove.
2816         (avr_insert_attributes): New.
2817         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
2818         (avr_assemble_integer): Likewise.
2819
2820 2003-04-16  Richard Henderson  <rth@redhat.com>
2821
2822         * arc.c (arc_encode_section_info): Remove.
2823         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
2824         (arc_print_operand, arc_print_operand_address): Likewise.
2825         * arc.h (EXTRA_CONSTRAINT): Likewise.
2826
2827 2003-04-16  Roger Sayle  <roger@eyesopen.com>
2828
2829         * c-semantics.c (find_reachable_label): New function to find a
2830         potentially reachable label in an expression.
2831         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
2832         assumes the start of the IF_STMT is unreachable (dead) code.
2833         (expand_unreachable_stmt): Similar to expand_stmt but assumes
2834         the start of the statement list is unreachable (dead) code.
2835         (genrtl_if_stmt):  If the controlling expression of the IF
2836         is constant, use expand_unreachable_stmt for the THEN or ELSE
2837         clause as appropriate.
2838         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
2839         the body of a SWITCH statement.
2840         (expand_stmt): The code immediately following a "return",
2841         "break", "continue" or "goto" is unreachable.
2842         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
2843
2844 2003-04-16  Richard Henderson  <rth@redhat.com>
2845
2846         * rtl.h (MEM_ALIAS_SET): Update documentation.
2847         * doc/rtl.texi (Special Accessors): New node.
2848         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
2849
2850 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
2851
2852         * reload1.c (reload_cse_noop_set_p): Return false if mode of
2853         SET_DEST is not the same as that returned by...
2854         * cselib.h (cselib_reg_set_mode): ... new function.
2855         * cselib.c (cselib_reg_set_mode): Define it.
2856         (REG_VALUES): Document semantics of first element as set mode.
2857         (cselib_subst_to_values): Skip first element if ELT is NULL.
2858         (cselib_lookup): Likewise.  Insert past the first element.
2859         (cselib_invalidate_regno): NULLify first element.
2860         (cselib_record_set): Set first element.
2861
2862 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
2863
2864         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
2865         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
2866         * tree.h: Add prototypes for the two new functions.
2867         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
2868         updates introduced in the previous revision by call to saved_expr_p.
2869         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
2870
2871         * expr.c (store_field): Force usage of bitfield instructions when
2872         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
2873         (expand_expr, case BIT_FIELD_REF): likewise.
2874
2875 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
2876
2877         PR middle-end/8866
2878         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
2879         jumptables.
2880
2881 2003-04-16  Richard Henderson  <rth@redhat.com>
2882
2883         * config/ia64/ia64.c (sdata_symbolic_operand): Use
2884         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
2885         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
2886         (function_operand): Use SYMBOL_REF_FUNCTION_P.
2887         (ia64_expand_load_address): Likewise.
2888         (ia64_assemble_integer): Likewise.
2889         (ia64_encode_section_info): Remove.
2890         (ia64_strip_name_encoding): Remove.
2891         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
2892         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
2893
2894 2003-04-16  Richard Henderson  <rth@redhat.com>
2895
2896         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
2897         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
2898         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
2899         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
2900         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
2901         (global_symbolic_operand): Similarly.
2902         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
2903         (tls_symbolic_operand_type): Likewise.
2904         (alpha_encode_section_info): Use default_encode_section_info.
2905         (alpha_strip_name_encoding): Remove.
2906         (get_tls_get_addr): Split out from ...
2907         (alpha_legitimize_address): ... here.
2908         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
2909         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
2910         (alpha_initialize_trampoline): Use init_one_libfunc.
2911         (alpha_setup_incoming_varargs): Mark unused parameters.
2912         (alpha_initial_elimination_offset): Likewise.
2913         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
2914         (unicosmk_unique_section): Use default_strip_name_encoding.
2915         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
2916
2917 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
2918
2919         * config.gcc: Add t-spe for eabispe.
2920
2921         * config/rs6000/t-spe: New.
2922
2923 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
2924
2925         Re-apply this patch:
2926
2927         2002-05-16  Dale Johannesen  <dalej@apple.com>
2928           * combine.c (cant_combine_insn_p):  Reenable combinations
2929           involving hard regs unless CLASS_LIKELY_SPILLED_P.
2930
2931 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2932
2933         PR/10271
2934         * pa-protos.h (function_arg): Remove last argument.
2935         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
2936         * pa.h (struct hppa_args): Add member incoming.
2937         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
2938         member incoming.
2939         (FUNCTION_ARG): Revise call to function_arg.
2940         (FUNCTION_INCOMING_ARG): Delete.
2941
2942 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2943
2944         * configure.in: Unify the code which creates symlinks to a
2945         just-built as, ld, objdump, and nm with the code that detects
2946         their presence for purposes of feature tests.
2947         * configure: Regenerate.
2948
2949 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
2950
2951         * varasm.c (output_constant_def): Do not consult
2952         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
2953         (after_function_constants, output_after_function_constants): Delete.
2954         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
2955         * config/mips/mips-protos.h, config/mips/mips.c
2956         (mips16_constant_after_function_p): Delete.
2957         * config/mips/mips.h: Delete #if-0-ed definition of
2958         CONSTANT_AFTER_FUNCTION_P.
2959         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
2960         mention of CONSTANT_AFTER_FUNCTION_P in comment.
2961
2962 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
2963
2964         * tree.c (next_decl_uid): Mark with GTY.
2965         (next_type_uid): Likewise.
2966
2967 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
2968
2969         PR target/9594:
2970         * sh.c (barrier_align): Also recognize stuff_delay_slot as
2971         an indicator that a barrier was created by branch splitting.
2972
2973 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
2974
2975         * c-decl.c (implicitly_declare): Copy declarations that are going
2976         to be placed in a local scope.
2977
2978 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
2979
2980         * invoke.texi (Spec Files): Wrap if-exists-else example.
2981         (MCore): Remove duplicate @itemx entries and @opindex entries.
2982
2983 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
2984
2985         * unwind.inc (_Unwind_Backtrace): New function.
2986         * unwind.h (_Unwind_Backtrace): Declare it.
2987         * libgcc-std.ver (_Unwind_Backtrace): Export it.
2988
2989 2003-04-14  Jason Merrill  <jason@redhat.com>
2990
2991         PR middle-end/10336, c++/10401
2992         * jump.c (never_reached_warning): Also stop looking if we reach the
2993         beginning of the function.
2994
2995 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2996
2997         PR target/10338
2998         PR bootstrap/10198
2999         PR bootstrap/10140
3000         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
3001
3002 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
3003
3004         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
3005
3006 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3007
3008         * optabs.c (expand_binop): In multi-word add cases, ensure
3009         XTARGET is copied to TARGET if they are different.
3010
3011 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
3012
3013         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
3014         to region, possible after integration of function with unreachable
3015         regions that were optimized away.
3016
3017 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
3018
3019         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
3020         instead of TOC_REGISTER in epilogue in
3021         current_function_calls_eh_return functions.
3022
3023 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
3024
3025         * doc/extend.texi (Empty Structures): Correct description of G++'s
3026         handling of these structures.
3027
3028         * c-decl.c (grokdeclarator): Reject extern redeclarations of
3029         static variables.
3030
3031 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
3032
3033         * config/rs6000/rs6000.md (define_constants): Define constants for
3034         all UNSPEC usage, including new values for TLS support.
3035         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
3036         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
3037         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
3038         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
3039         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
3040         eh_set_lr_di): Use them.
3041         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
3042         rs6000_emit_epilogue) Use them.
3043
3044         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
3045
3046 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
3047
3048         * Makefile.in (c-opts.o): Use custom action.
3049
3050 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
3051
3052         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
3053
3054 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3055
3056         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
3057         handle "superflat arrays" in Ada.
3058
3059         * integrate.c (expand_inline_function): Don't inline if would
3060         lose /u on a BLKmode TARGET.
3061
3062 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
3063
3064         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
3065         extracted from dbxout_type.
3066         (dbxout_range_type): print large bounds in octal format.
3067         (dbxout_type): Replace extracted code by call to
3068         print_int_cst_bounds_in_octal_p.
3069
3070         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
3071         of DW_LANG_Ada83 for Ada units.
3072
3073 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
3074
3075         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
3076         temporary used to round CONST_INT sizes.
3077
3078         * tree.c (int_fits_type_p): Extract generic checks from the case
3079         of constant type bounds. Refine the checks against constant type
3080         bounds to allow for possible decisions against each of these bounds
3081         without requiring both bounds to be constant.
3082         (tree_int_cst_msb): Put back.
3083         * tree.h (tree_int_cst_msb): Likewise.
3084
3085         * global.c (global_conflicts): Prevent allocation of call clobbered
3086         hard regs to pseudos live across abnormal edges, as later passes are
3087         not ready to handle them.
3088
3089         * fold-const.c (fold): Reorder tests for conditional expressions.
3090
3091         * expr.c (highest_pow2_factor): Return unsigned.
3092         * expr.h (offset_address): Likewise.
3093         * emit-rtl.c (offset_address): POW2 argument now unsigned.
3094
3095 2003-04-14  Roger Sayle  <roger@eyesopen.com>
3096
3097         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
3098         string literals at compile-time.
3099
3100 2003-04-14  Roger Sayle  <roger@eyesopen.com>
3101
3102         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
3103         comparison operation and c1/c2 are floating point constants into
3104         x swap(cmp) (c1 - c2).
3105
3106 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
3107
3108         * genautomata.c (output_translate_vect): Fix a typo in loop
3109         condition.
3110
3111 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
3112
3113         PR target/10377
3114         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
3115         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
3116         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
3117         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
3118         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
3119         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
3120         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
3121         ("*extopqihi_swap_side", "*extopqisi_swap_side")
3122         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
3123         When next to constraint R, replace constraint i with n.
3124
3125 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
3126
3127         PR opt/10024
3128         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
3129
3130 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
3131
3132         * doc/contrib.texi (Contributors): Correct my entry.
3133
3134 2003-04-13  Roger Sayle  <roger@eyesopen.com>
3135
3136         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
3137         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
3138         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
3139         implies DECL_BUILT_IN to simplify logic.
3140         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
3141
3142 2003-04-13  Roger Sayle  <roger@eyesopen.com>
3143
3144         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
3145         (BT_FN_PTR_SIZE_SIZE): Likewise.
3146         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
3147         New built-in functions for malloc, calloc and strdup respectively.
3148         * calls.c (special_function_p): No need to handle malloc-like
3149         functions any longer.  ECF_MALLOC is set via built-in attributes.
3150
3151         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
3152
3153         * doc/extend.texi: Document these new built-in functions.
3154
3155 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3156
3157         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
3158         (expand_builtin_stpcpy): New.
3159         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
3160         * builtins.def: Add mempcpy & stpcpy support.
3161         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
3162
3163 2003-04-13  Nick Clifton  <nickc@redhat.com>
3164
3165         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
3166         "GCC".
3167         * config/rs6000/40x.md, config/rs6000/603.md,
3168         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
3169         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
3170         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
3171         config/rs6000/aix43.h, config/rs6000/aix51.h,
3172         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
3173         config/rs6000/altivec.h, config/rs6000/altivec.md,
3174         config/rs6000/beos.h, config/rs6000/darwin.h,
3175         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
3176         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
3177         config/rs6000/freebsd.h, config/rs6000/gnu.h,
3178         config/rs6000/host-darwin.c, config/rs6000/linux.h,
3179         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
3180         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
3181         config/rs6000/netbsd.h, config/rs6000/power4.md,
3182         config/rs6000/rios1.md, config/rs6000/rios2.md,
3183         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
3184         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
3185         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
3186         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
3187         config/rs6000/spe.md, config/rs6000/sysv4.h,
3188         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
3189         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
3190
3191 2003-04-13  Nick Clifton  <nickc@redhat.com>
3192
3193         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
3194         support for -mcall-aix switch.
3195         * config/rs6000/eabiaix.h: Delete.
3196         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
3197         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
3198         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
3199         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
3200         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
3201         debug_stack_info, output_function_profiler,
3202         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
3203         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
3204         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
3205         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
3206         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
3207         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
3208         multilibs.
3209         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
3210         (MULTILIB_EXCEPTIONS): Delete.
3211         (MULTILIB_MATCHES): Remove mcall-aix matches.
3212
3213         * doc/fragments.texi: Replace -mcall-aix example with an ARM
3214         one.
3215         * doc/install.texi: Delete powerpc-*-eabiaix target.
3216         * doc/invoke.texi: Remove documentation of mcall-aix switch.
3217         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
3218         * config.gcc: Delete powerpc-*-eabiaix target.
3219
3220 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
3221
3222         * doc/invoke.texi: Fix typos.
3223         * doc/tm.texi: Likewise.
3224
3225 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3226
3227         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
3228
3229 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3230
3231         * tree.c (build_constructor): New function.
3232         * tree.h: Prototype it.
3233
3234         * c-typeck.c (build_c_cast, pop_init_level)
3235         * profile.c (build_function_info_value, build_gcov_info_value)
3236         (create_profiler):
3237         Use build_constructor.
3238
3239         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
3240
3241         * objc/objc-act.c (build_constructor):
3242         Rename objc_build_constructor. Use build_constructor.
3243         (build_objc_string_object, objc_add_static_instance)
3244         (init_def_list, init_objc_symtab, init_module_descriptor)
3245         (generate_static_references, build_selector_translation_table)
3246         (build_descriptor_table_initializer, generate_descriptor_table)
3247         (build_protocol_initializer, build_ivar_list_initializer)
3248         (generate_ivars_list, build_dispatch_table_initializer)
3249         (generate_dispatch_table, generate_protocol_list)
3250         (build_category_initializer, build_shared_structure_initializer):
3251         Update to match.
3252
3253 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3254
3255         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
3256
3257 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3258
3259         * config/m68hc11/m68hc11-protos.h
3260         (m68hc11_eq_compare_operator): Declare
3261         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
3262         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
3263         (d_register_operand): Check the operand mode.
3264         (hard_addr_reg_operand): Likewise.
3265
3266 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3267
3268         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
3269         pattern for dbcc/ibcc generation for 68HC12.
3270         ("doloop_end"): New pattern.
3271         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
3272         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
3273         ("m68hc12_dbcc_dec_qi"): New pattern.
3274         ("m68hc12_dbcc_inc_qi"): New pattern.
3275         (split): Add split for the above when we can't use dbcc/ibcc due to
3276         reloading.
3277         (peephole2): Add peephole2 to generate the above when possible.
3278
3279 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3280
3281         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
3282         mode of operand 0.
3283         (peephole2 optimize const load): Likewise for operand 2.
3284         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
3285         clobbers CC_REGNUM.
3286         ("*rotrhi3_with_carry"): Likewise.
3287         (ashift:DI 1 split): Update pattern to create the above rotate.
3288         (lshiftrt:DI 1 split): Likewise.
3289
3290 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3291
3292         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
3293         ("tstqi_z_used" split): Use it.
3294         ("cmphi_z_used"): Likewise.
3295         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
3296         ("cmpqi_z_used"): Likewise.
3297
3298 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
3299
3300         PR c++/7910
3301         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
3302
3303 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
3304
3305         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
3306         * configure, config.in: Regenerate.
3307         * intl.c (gcc_gettext_width): New function.
3308         * intl.h: Prototype it.
3309
3310 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3311
3312         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
3313         recognize -mnorelax.
3314         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
3315         (REG_CLASS_NAMES): Add its name.
3316         (REG_CLASS_CONTENTS): Define its content.
3317
3318 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
3319
3320         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
3321         parameters so that offsets are valid for far definition.
3322         (__mulsi3): Likewise and use ret to return.
3323         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
3324
3325 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
3326
3327         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
3328
3329 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
3330
3331         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
3332         containing a libgcc.a, move lib* to the corresponding stage dir.
3333
3334         * Makefile.in (stage1-start, stage2-start, stage3-start,
3335         stage4-start): Move $(SPECS) to specs in stage dir.
3336         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
3337         back as $(SPECS).
3338
3339         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
3340         object files from the non-libgcc/ multilib directories as well.
3341
3342 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
3343
3344         * profile.c (read_counts_file): Initialise 'checksum'.
3345
3346         * emit-rtl.c (gen_rtx): Really correct typo.
3347
3348         PR c++/9393
3349         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
3350         * configure.in: Check for gettimeofday.
3351         * tree.c (flag_random_seed): Define.
3352         (default_flag_random_seed): New.
3353         (append_random_chars): Use flag_random_seed rather than trying
3354         to acquire randomness here.
3355         * tree.h (default_flag_random_seed): Declare.
3356         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
3357         descriptions.
3358         (decode_f_option): Handle -frandom-seed.
3359         (print_switch_values): Call default_flag_random_seed.
3360         * flags.h (flag_random_seed): Declare.
3361         * configure: Regenerate.
3362         * config.in: Regenerate.
3363         * config/alpha/t-crtfm: Use -frandom-seed.
3364
3365         * doc/extend.texi (Empty Structures): New.
3366
3367         * c-pch.c: Include flags.h.  Add comments to routines.
3368         (struct c_pch_validity): New.
3369         (get_ident): Update PCH file version number.
3370         (pch_init): Output current debugging type.
3371         (c_common_valid_pch): Check debugging type.
3372         * Makefile.in (c-pch.o): Update dependencies.
3373         * flags.h (debug_type_names): Declare.
3374         * toplev.c (debug_type_names): Move out of decode_g_option.
3375
3376 2003-04-11  Eric Christopher  <echristo@redhat.com>
3377
3378         * emit-rtl.c (gen_rtx): Fix typos.
3379
3380 2003-04-11  Richard Henderson  <rth@redhat.com>
3381
3382         * emit-rtl.c (gen_rtx): Zero '0' fields.
3383
3384 2003-04-11  Richard Henderson  <rth@redhat.com>
3385
3386         PR c++/10202
3387         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
3388         not COMPLETE_TYPE_P for re-invoking layout_decl.
3389
3390 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
3391
3392         * doc/bugreport.texi: Fix paragraph breaking between sections
3393         in preparation for TeXinfo's paragraph indentation fixes.
3394         * doc/extend.texi: Ditto.
3395         * doc/invoke.texi: Ditto.
3396         * doc/objc.texi: Ditto.
3397         * doc/gcov.texi: Wrap 'gcov' in @command{}.
3398         * doc/invoke.texi (Darwin Options): Add a preamble.
3399
3400 2003-04-11  Richard Henderson  <rth@redhat.com>
3401
3402         * config/i386/i386.c (tls_model_chars): Remove.
3403         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
3404         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
3405         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
3406         (tls_symbolic_operand_1): Likewise.
3407         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
3408         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
3409         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
3410         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
3411         bits "copied from i386.h" with default_encode_section_info.
3412
3413 2003-04-11  Richard Henderson  <rth@redhat.com>
3414
3415         * rtl.def (SYMBOL_REF): Add two 0 fields.
3416         * gengtype.c (adjust_field_rtx_def): Handle them.
3417         * print-rtl.c (print_rtx): Print them.
3418         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
3419         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
3420         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
3421         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
3422         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
3423         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
3424         (SYMBOL_FLAG_MACH_DEP): New.
3425         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
3426         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
3427         (assemble_static_space): Set SYMBOL_REF_FLAGS.
3428         (assemble_trampoline_template): Likewise.
3429         (output_constant_def, force_const_mem): Likewise.
3430         (default_encode_section_info): New.
3431         * output.h: Declare it.
3432         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
3433
3434 2003-04-11  Richard Henderson  <rth@redhat.com>
3435
3436         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
3437         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
3438         * optabs.c (init_optabs): Initialize them.
3439         (init_libfuncs): Use init_one_libfunc.
3440         * calls.c (expand_call): Use gcov_flush_libfunc.
3441         * expr.c (store_constructor): Use setbits_libfunc.
3442         * function.c (expand_main_function): Use init_one_libfunc.
3443         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
3444
3445 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
3446
3447         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
3448         documentation; add DECL_FRIEND_CONTEXT.
3449
3450 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3451
3452         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
3453         notes on linker selection and configuration for 64-bit HP-UX port.
3454         * doc/invoke.texi (hppa): Remove hppa text from description for
3455         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
3456         and -threads options.
3457
3458         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
3459         libc.a on libdld.sl when -static is specified and -nolibdld is not
3460         specified.
3461         * pa64-hpux.h (LIB_SPEC): Likewise.
3462         * pa-hpux11.h (LIB_SPEC): Likewise.
3463         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
3464         is not specified.
3465
3466 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
3467
3468         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
3469         not IDENTIFIER_LOCAL_VALUE.
3470
3471 2003-04-11  Richard Henderson  <rth@redhat.com>
3472
3473         PR c/10201
3474         * expr.c (expand_expr): Move DECL_RTL frobbing ...
3475         * stor-layout.c (layout_decl): ... here.
3476
3477 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
3478
3479         * doc/invoke.texi: Eliminate extra white-space caused by
3480         @gccoptlist{ on its own line.
3481         * doc/invoke.texi: Ensured there are two spaces between each option.
3482         * doc/invoke.texi: Re-wrapped option lines that were too wide.
3483         Added @gol to options that didn't have them.
3484
3485 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
3486
3487         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
3488         gcov-iov.h.
3489
3490         Simplify interface to gcov reading and writing.
3491         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
3492         gcov_alloc, gcov_modified, gcov_errored): Move into ...
3493         (struct gcov_var gcov_var): ... this static structure.
3494         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
3495         Return void.
3496         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
3497         read object.
3498         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
3499         (gcov_reserve_length): Remove.
3500         (gcov_write_tag): New.
3501         (gcov_write_length): Adjust.
3502         (gcov_read_summary, gcov_write_summary): Adjust.
3503         (gcov_eof, gcov_ok): Rename to ...
3504         (gcov_is_eof, gcov_is_error): ... here. Return error code.
3505         (gcov_save_position, gcov_resync): Rename to ...
3506         (gcov_position, gcov_seek): ... here.
3507         (gcov_skip, gcov_skip_string): Remove.
3508         (gcov_error): Remove.
3509         (gcov_open, gcov_close): Adjust.
3510         * gcov.c (find_source): Take const char *, copy it on allocation.
3511         (read_graph_file): Adjust.
3512         (read_count_file): Adjust.
3513         * libgcov.c (gcov_exit): Adjust.
3514         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
3515         tag_arc_counts, tag_summary): Return void. Adjust.
3516         (struct tag_format): Adjust proc member.
3517         (dump_file): Adjust gcov calls.
3518
3519 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
3520
3521         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
3522         mkfixinc.sh.
3523         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
3524         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
3525         build != host sysrooted builds.
3526         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
3527         TARGET_SYSTEM_ROOT even on sysrooted natives.
3528         * configure: Rebuilt.
3529
3530 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3531
3532         * c-decl.c (struct binding_level): Add shadowed_tags and
3533         function_body; remove this_block, tag_transparent, and
3534         subblocks_tag_transparent; update comments.
3535         (clear_binding_level, lookup_tag_reverse): Kill.
3536         (make_binding_level): Use ggc_alloc_cleared or memset.
3537         (lookup_tag): Remove struct binding_level* parameter.  All
3538         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
3539         current_binding_level->tags if asked for thislevel_only or if
3540         we might have to diagnose "struct foo; union foo;"
3541         (pushlevel): Ignore argument.  Do not push another binding
3542         level on the transition from the parameters to the top level
3543         of the function body; just tweak the flags and proceed.
3544         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
3545         a function body, separate the parameter list from the
3546         top-level local variables.
3547         (set_block): Do nothing.
3548         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
3549         shadowed_tags if necessary.
3550         (warn_if_shadowing): Nuke the special case for local shadowing
3551         parameter.
3552         (pushdecl): Do not create a shadow entry if we are replacing
3553         an older decl in the same binding level.
3554         (pushdecl_function_level): Tweak for new way of indicating
3555         function scope.
3556         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
3557         (start_function): Don't set subblocks_tag_transparent.
3558         (finish_function): Fix up the binding_level stack for totally
3559         empty functions.  Otherwise, don't call poplevel.
3560
3561         * c-common.c (shadow_warning): MANDATORY argument is no longer
3562         necessary.  Always use plain warning.
3563         * c-common.h: Update to match.
3564
3565         * cfglayout.c (scope_to_insns_initialize): Clear block when we
3566         hit the FUNCTION_DECL.
3567         * function.c: Do not create cyclic tree structure.
3568
3569 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3570
3571         * c-tree.h (struct lang_identifier): Replace global_value,
3572         local_value members with symbol_value, tag_value.  Kill
3573         implicit_decl and limbo_value.
3574         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
3575         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
3576         C_MISSING_PROTOTYPE_WARNED): Kill.
3577         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
3578         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
3579         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
3580         (implicit_decl_warning, lookup_name_current_level,
3581         record_function_scope_shadow): Don't prototype.
3582         (pushdecl_function_level): Prototype.
3583
3584         * c-decl.c (truly_local_externals): New variable.
3585         (struct binding_level): Adjust commentary.
3586         (get_function_binding_level, clear_limbo_values,
3587         record_function_scope_shadow): Kill.
3588         (lookup_name_current_level, implicit_decl_warning): Are now static.
3589         (any_external_decl, record_external_decl): New static functions.
3590         (clone_underlying type): Split out of pushdecl.
3591         (c_print_identifier): Update to match changes to struct
3592         lang_identifier.
3593         (poplevel): Delete #if 0 block.  Make externals invisible
3594         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
3595         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
3596         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
3597         (duplicate-decls): For real parm decl after a forward decl,
3598         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
3599         foo(...) { } with only a warning.  Say whether a previous
3600         declaration was implicit.
3601         (warn_if_shadowing): Now handles all shadowing, not just
3602         local-over-local.  Clarify comments.
3603         (pushdecl): Rewritten.  There is no longer a distinction
3604         between global and local symbol values; they're all
3605         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
3606         DECL_EXTERNAL decls, and use any_external_decl to check
3607         against previous externals.  Kill #if 0 blocks.  Don't
3608         tolerate error_mark_node being NULL.
3609         (pushdecl_top_level): Handle only those cases which
3610         Objective C (the only user) needs.
3611         (pushdecl_function_level): New function.
3612         (implicitly_declare): Create ordinary decls with
3613         C_DECL_IMPLICIT set.  Recycle old decls, however they got
3614         created.
3615         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
3616         for C_DECL_INVISIBLE symbols.
3617         (lookup_name_current_level): Likewise.  Use chain_member.
3618         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
3619         Use pushdecl_function_level.
3620         (builtin_function): Use C_DECL_INVISIBLE.
3621         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
3622         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
3623         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
3624         (identifier_global_value): Same.  Must scan
3625         global_binding_level in extremis.
3626
3627         * c-typeck.c (undeclared_variable): New static function, split
3628         from build_external_ref.
3629         (build_external_ref): Use DECL_CONTEXT, not
3630         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
3631         an instance variable.  Restructure for clarity.
3632         * objc/objc-act.c: Use identifier_global_value, not
3633         IDENTIFIER_GLOBAL_VALUE.
3634
3635 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
3636
3637         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
3638         not Working Paper.
3639         * doc/invoke.texi (C++ Dialect Options): Same.
3640
3641 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
3642
3643         * tree.c (tree_operand_check_failed): New function.
3644         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
3645         TREE_RTL_OPERAND_CHECK): New checking macros.
3646         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
3647         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
3648         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
3649         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
3650         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
3651         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
3652         checking macros.
3653
3654 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
3655
3656         PR inline-asm/8803
3657         * function.c (instantate_virtual_regs):  Verify that all ASM statements
3658         match after the virutal regs instantiation.
3659
3660 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3661
3662         * ia64-protos.h (addp4_optimize_ok): New.
3663         * ia64.c (addp4_optimize_ok): New.
3664         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
3665         (*ptr_extend_plus_2): Ditto.
3666
3667 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
3668
3669         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
3670         not with convert_memory_address.
3671         (store_constructor): Ditto, and same for copy_size_rtx.
3672         (expand_expr): Ditto.
3673
3674 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
3675
3676         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
3677
3678 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
3679
3680         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
3681         even if it is configured to be write-through.
3682
3683 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
3684
3685         * config/s390/s390.c (larl_operand): Do not allow symbols
3686         marked with '@'.
3687         (s390_encode_section_info): Mark symbols with forced 1-byte
3688         alignment with '@'.
3689         (s390_strip_name_encoding): Strip '@'.
3690         (legitimize_pic_address): Handle symbols that are not valid
3691         LARL operands in 64-bit mode.
3692
3693 2003-04-10  Andrew Haley  <aph@redhat.com>
3694
3695         * tree-inline.c (inlinable_function_p): Disable inlining for
3696         synchronized methods.
3697
3698 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
3699
3700         * c-common.h (lang_statement_code_p): Remove declaration.
3701         (statement_code_p): Ditto.
3702         (c_common_stmt_codes): Define; list of c-common statement codes.
3703         (statement_code_p): New extern declaration.
3704         (STATEMENT_CODE_P): Define.
3705         (INIT_STATEMENT_CODES): Define.
3706         * c-common.c (statement_code_p): Kill the function, declare
3707         as an array of bools instead.
3708         (lang_statement_code_p): Remove.
3709         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
3710         (c_safe_from_p): Ditto.
3711         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
3712         to initialize the statement_code_p array.
3713         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
3714         statement_code_p.
3715         (copy_tree_r): Ditto.
3716         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
3717         statement tree codes.
3718         * cp/lex.c (cxx_init): Add missing print line break.  Use
3719         INIT_STATEMENT_CODES to initialize the statement_code_p array.
3720         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
3721         instead of statement_code_p.
3722         * cp/pt.c (tsubst_expr): Ditto.
3723         * cp/tree.c (verify_stmt_tree_r): Ditto.
3724         (cp_statement_code_p): Remove.
3725         (init_tree): Don't set lang_statement_code_p, it's gone.
3726
3727 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
3728             Zack Weinberg  <zack@codesourcery.com>
3729
3730         * regrename.c (struct du_chain): Use a bitfield for reg_class.
3731         * cse.c (struct qty_table_elem, struct table_elt, struct set):
3732         Use bitfields for fields holding enum rtx_code or
3733         enum machine_mode values.  Add comments explaining size choices.
3734
3735 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3736
3737         * config/fp-bit.c (unpack_d): Handle pair of doubles with
3738         different signs correctly.
3739
3740 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3741
3742         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
3743         (reg_pending_barrier): Make it of the enumeration type.
3744         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
3745         TRUE_BARRIER.
3746         (sched_analyze): Ditto.
3747         (sched_analyze_insn): Ditto.  Use anti-dependencies for
3748         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
3749         (init_deps_global): Initialize the barrier as NO_BARRIER.
3750
3751 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
3752
3753         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
3754         Check that asm insn starts on a new cycle.  Add nops after asm
3755         insn to end bundle.
3756         (bundling): Move insn type evaluation from the loop.  Call
3757         issue_nops_and_insn with the new parameter.  Ignore changing
3758         position for nops after asm insn.
3759
3760 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
3761
3762         * optabs.c: Comment that gen_add2_insn and others may actually
3763         return emitted insns, if the gen functions turn out to return
3764         emitted insns.
3765         * reload1.c (reload_cse_move2add): Cope with emitted insns from
3766         gen_add2_insn.
3767
3768 2003-04-09  Richard Henderson  <rth@redhat.com>
3769
3770         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
3771         but not tls_symbolic_operand.
3772         (ia64_expand_load_address): Remove scratch operand.
3773         (ia64_expand_tls_address): Split out from ia64_expand_move.
3774         (ia64_expand_move): Split symbolics only after reload.
3775         (ia64_emit_cond_move): New.
3776         * config/ia64/ia64-protos.h: Update.
3777         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
3778         (symbolic splitter): Accept SImode operands too.
3779         (cmove splitter): Use ia64_emit_cond_move.
3780
3781 2003-04-09  Nick Clifton  <nickc@redhat.com>
3782
3783         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
3784         newer.
3785         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
3786         instead of -mno-fpu.
3787         * config/arm/semi.h (ASM_SPEC): Likewise.
3788         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
3789         but only if -msoft-float is specified pass.  Otherwise pass
3790         -mfpu=softvfp.
3791
3792 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3793
3794         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
3795         free_EXPR_LIST_node.
3796
3797 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3798
3799         * fold-const.c (fold):  Use "fold" following build in more places.
3800         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
3801         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
3802
3803 2003-04-08  Roger Sayle  <roger@eyesopen.com>
3804
3805         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
3806         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
3807         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
3808         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
3809         Delete function scope "fcode" variable to avoid shadowing.
3810
3811 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
3812
3813         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
3814         Take into account DWARF_INITIAL_LENGTH_SIZE.
3815
3816 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
3817
3818         * reorg.c (fill_slots_from_thread): When considering changing the
3819         insn following a reg-to-reg copy insn to use the source reg of the
3820         copy, bail out if there's overlap between the registers.
3821
3822 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3823
3824         * function.c (postponed_insns): New.
3825         (purge_addressof_1): Postpone processing of insns if addressofs
3826         are not put into stack.
3827         (purge_addressof): Process postponed insns.
3828
3829 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3830
3831         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
3832         this is FP_MODE_DOUBLE .
3833         * sh.c (ra.h): #include.
3834         (push_regs): Add second parameter.  Changed all callers.
3835         If necessary, set fpscr before saving floating point registers.
3836         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
3837         do saves / restores with SZ == 1.
3838         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
3839         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
3840         registers are being restored, restore FPSCR only after restoring them.
3841
3842 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
3843
3844         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
3845         regardless of architecture.
3846         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
3847
3848 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
3849
3850         * sh.c (push_regs, calc_live_regs): Return int.  Take single
3851         HARD_REG_SET * parameter.  Changed all callers.
3852
3853 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
3854
3855         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
3856         GOTOFF operand.
3857         (legitimize_pic_address): Move plus outside the unspec.
3858         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
3859         for validity.
3860
3861 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
3862
3863         * gcov-io.h (gcov_save_position): Remove __inline__ from
3864         declaration.
3865
3866 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
3867
3868         * doc/install.texi: Use @command and @samp for single- and
3869         multi-word commands respectively.
3870         * doc/makefile.texi: Likewise.
3871         * doc/sourcebuild.texi: Likewise.
3872
3873 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
3874             Richard Henderson  <rth@redhat.com>
3875
3876         PR c/9516
3877         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
3878         favour of looping and tail recursion for TREE_LIST and binops.
3879
3880 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3881
3882         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
3883         for insns without luid.
3884
3885 2003-04-07  Glen Nakamura  <glen@imodulo.com>
3886
3887         PR opt/8634
3888         * explow.c (maybe_set_unchanging): Don't flag non-static const
3889         aggregate type initializers with RTX_UNCHANGING_P.
3890
3891 2003-04-07  Richard Henderson  <rth@redhat.com>
3892
3893         PR opt/8634
3894         * function.c (purge_addressof_1): Don't try arithmetics for
3895         unchanging memories.
3896
3897 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
3898
3899         * doc/sourcebuild.texi (Test Suites): Document testing support for
3900         gcov and profile-directed optimizations; describe gcc.misc-tests.
3901
3902 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
3903
3904         PR target/10077
3905         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
3906
3907 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3908
3909         * doc/rtl.texi (Comparison operations): Update to
3910         record the allowed comparison modes.
3911
3912 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3913
3914         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
3915         V2SI_type_node to opaque_V2SI_type_node.  Rename all
3916         V2SF_type_node to opaque_V2SF_type_node.
3917         (rs6000_init_builtins): Define opaque_V2SI_type_node and
3918         opaque_V2SF_type_node.
3919         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
3920         opaque_V2SF_type_node are opaque types.
3921
3922 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
3923
3924         * gcse.c (replace_store_insn): Use single_set.
3925
3926 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
3927
3928         Change gcov file interface to single file at a time.
3929         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
3930         Convert to C89 prototypes.
3931         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
3932         gcov_error, gcov_modified): New static variables.
3933         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
3934         functions.
3935         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
3936         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
3937         (gcov_read_summary, gcov_write_summary): Adjust.
3938         (gcov_save_position, gcov_reserve_length, gcov_write_length):
3939         Adjust.
3940         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
3941         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
3942         (da_file_position, da_file_seek, da_file_write, da_file_read):
3943         Remove.
3944         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
3945         * gcov.c (gcov_type): Don't typedef here.
3946         (IN_GCOV): #define
3947         (read_graph_file, read_count_file): Adjust.
3948         * gcov-dump.c (gcov_type): Don't typedef here.
3949         (IN_GCOV): #define.
3950         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
3951         Remove FILE parameter, adjust.
3952         (struct tag_format): Adjust proc member.
3953         (dump_file): Adjust.
3954         * libgcov.c (IN_LIBGCOV): #define.
3955         (gcov_exit): Adjust.
3956         * loop-init.c: Don't #include gcov-io.h
3957         * profile.c (struct counts_entry): New structure to hold counter
3958         values.
3959         (struct section_reference, struct da_index_entry): Remove.
3960         (bbg_file, da_file): Remove.
3961         (htab_counts_index_hash, htab_counts_index_eq,
3962         htab_counts_index_del): Replace with ...
3963         (htab_counts_entry_hash, htab_counts_entry_eq,
3964         htab_counts_entry_del): ... these.
3965         (cleanup_counts_index, index_counts_file): Remove.
3966         (read_counts_file): New function.
3967         (get_exec_counts): Adjust.
3968         (compute_branch_probabilities): Don't free the exec counts here.
3969         (branch_prob): Adjust.
3970         (init_branch_prob): Adjust.
3971         (end_branch_prob): Adjust.
3972
3973 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
3974
3975         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3976         -mfloat-gprs.
3977
3978         * config/rs6000/rs6000.c: Delete rs6000_fprs.
3979         Declare rs6000_float_gprs.
3980         Declare rs6000_float_gprs_string.
3981         (rs6000_parse_float_gprs_option): New.
3982         (rs6000_override_options): Genericize rs6000_parse_* calls to use
3983         rs6000_parse_yes_no_option.
3984         Change check for cpu=8540, to use TARGET_E500.
3985         (rs6000_parse_isel_option): Delete.
3986         (rs6000_parse_spe_option): Delete.
3987         (rs6000_parse_vrsave_option): Delete.
3988
3989         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
3990         Define rs6000_float_gprs_string.
3991         (TARGET_OPTIONS): Add rs6000_float_gprs option.
3992
3993         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
3994
3995         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
3996
3997 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
3998
3999         PR opt/10024
4000         * cfglayout.c (cfg_layout_redirect_edge):
4001         Redirect any branch edges unified with the fallthru one.
4002         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
4003         case fallthru edges when called via cfglayout.c
4004
4005 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
4006
4007         * c-typeck.c (output_init_element): Check for type == error_mark_node.
4008
4009 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
4010
4011         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
4012         split.
4013         (a splitter): Do zero-extension via HImode.
4014
4015 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
4016
4017         * doc/invoke.texi: Eliminate extra white-space caused by
4018         @gccoptlist{ on its own line.
4019         * doc/invoke.texi: Ensured there are two spaces between each option.
4020         * doc/invoke.texi: Re-wrapped option lines that were too wide.
4021         Added @gol to options that didn't have them.
4022
4023 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
4024
4025         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
4026
4027 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
4028
4029         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
4030         at the sizes of the relevant structures, rather than relying
4031         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
4032         sizes of any such we don't know about.  Use
4033         lang_hooks.identifier_size for IDENTIFIER_NODE.
4034
4035         (initializer_zerop): Use CONSTRUCTOR_ELTS.
4036         * tree.def: Update commentary.  Make fourth element of
4037         the definition for all 'c' and 'x' nodes zero.
4038
4039         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
4040         * langhooks-def.h: Update to match.
4041         * langhooks.c: New default, lhd_tree_size.
4042
4043         * c-common.def (SRCLOC): Kill.
4044         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
4045         Remove entirely - was already #if-ed out.
4046
4047
4048 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
4049
4050         * mklibgcc.in: Use a here document to avoid running afoul of
4051         shells that generate control-A from "echo \1".
4052
4053 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
4054
4055         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
4056         option.
4057
4058         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
4059         rs6000_spe.
4060
4061         * config/rs6000/eabi.h (TARGET_E500): Define.
4062
4063         * config/rs6000/rs6000.h (TARGET_E500): Define.
4064         (TARGET_OPTIONS): Add spe= option.
4065         Declare rs6000_spe and rs6000_spe_string extern.
4066
4067         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
4068         Change TARGET_SPE to TARGET_E500.
4069         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
4070         !TARGET_FPRS.
4071         (print_operand): Same.
4072         (rs6000_generate_compare): Same.
4073         (output_cbranch): Same.
4074         (rs6000_spe): Declare.
4075         (rs6000_spe_string): Declare.
4076         (rs6000_override_options): Call rs6000_parse_spe_option.
4077         (rs6000_parse_spe_option): New.
4078
4079 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
4080
4081         * hashtable.c (gcc_obstack_init): Delete this function
4082         and everything related to it.
4083         * hashtable.h: Remove prototype.
4084         * bitmap.c (bitmap_element_allocate): Cleanup redundant
4085         defines.  Cleanup some unnecessary whitespace.
4086         * defaults.h (obstack_chunk_alloc): Redefine with
4087         appropriate casts for libiberty obstacks.
4088         (obstack_chunk_free): Ditto.
4089         (OBSTACK_CHUNK_SIZE): Define, default to 0.
4090         (gcc_obstack_init): Define as a call to _obstack_begin.
4091         * tree.c (print_obstack_statistics): Delete this unused
4092         function.
4093         * tree.h (obstack): Don't forward-declare.
4094         (print_obstack_statistics): Delete prototype.
4095         (print_obstack_name): Ditto.
4096         (gcc_obstack_init): Ditto.
4097         * rtl.h (gcc_obstack_init): Ditto.
4098         * java/jv-scan.c (gcc_obstack_init): Delete this
4099         function, its prototype and related defines.
4100         * java/jvgenmain.c (gcc_obstack_init): Delete this
4101         function, and related defines.
4102         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
4103         (obstack_chunk_free): Ditto
4104
4105 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
4106
4107         * dbxout.c (dbxout_handle_pch): Move prototype out from
4108         #if defined DBX_DEBUGGING_INFO.
4109
4110 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
4111
4112         * gcov.c (struct arc_info): Replace local_span with cycle.
4113         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
4114         (solve_flow_graph): Set is_call_return.
4115         (add_line_counts): Adjust. In block mode, blocks attach to last line.
4116         (accumulate_line_counts): Find graph cycles, not spanning tree.
4117         (output_branch_count): Adjust.
4118         (output_lines): Adjust.
4119         * doc/gcov.texi: Update.
4120
4121 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
4122
4123         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
4124         the second alternative to "#".
4125
4126 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
4127
4128         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
4129         (single_zero_operand): Likewise.
4130
4131 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
4132
4133         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
4134         * df.c: Include alloc-pool.h, not obstack.h.
4135         (df_ref_obstack): Remove.
4136         (df_ref_pool, df_link_pool): Add pools.
4137         (df_alloc): Init the new pools.
4138         (df_free): And free them.
4139         (df_link_create): Use the pools.
4140         (df_ref_create): Ditto.
4141
4142 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
4143
4144         * simplify-rtx.c: Fix formatting.
4145
4146 2003-04-05  Andrew Pinski  <apinski@apple.com>
4147
4148         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
4149         reg with reg1 == reg2 and offset1 = -8.
4150
4151 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
4152
4153         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
4154         multiply costs.  Correct Power4 divide costs.
4155         * config/rs6000/power4.md: Restore multiply and FP latency.
4156
4157 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4158
4159         * alias.c (find_base_term): Export.
4160         * rtl.h (find_base_term): Declare.
4161         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
4162         instead of flag_exceptions.  Move test for parameter passing ...
4163         (store_killed_in_insn): ... here.
4164
4165 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4166
4167         PR bootstrap/10267
4168         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
4169         for configuring.
4170
4171 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
4172
4173         * dbxout.c (scope_labelno): Add GTY.
4174         (have_used_extensions): Add GTY.
4175         (source_label_number): Add GTY.
4176         (lastfile): Add GTY.
4177         (lastfile_is_base): New.
4178         (base_input_file): New.
4179         (dbxout_handle_pch): New.
4180         (dbx_debug_hooks): Add handle_pch.
4181         (xcoff_debug_hooks): Likewise.
4182         (dbxout_function_end): Remove scope_labelno.
4183         (dbxout_init): Set base_input_file.
4184         (dbxout_handle_pch): New.
4185         (dbxout_source_file): Honour lastfile_is_base.
4186         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
4187         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
4188         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
4189         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
4190         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
4191         * debug.h (struct gcc_debug_hooks): Add handle_pch.
4192         * c-pch.c (pch_init): Don't call start_source_file, but do call
4193         handle_pch.
4194         (c_common_write_pch): Call handle_pch.
4195         (c_common_read_pch): Don't call start_source_file,
4196         or end_source_file.
4197
4198 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
4199
4200         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
4201         use of default attributes to agree MEM_ALIGN macro.
4202
4203 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
4204
4205         * dbxout.c (dbxout_type): When printing type index of range type
4206         whose bounds are printed in octal format, print type of parent type if
4207         it exists so enumerated type descriptions are not transformed
4208         into unsigned types.
4209
4210 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
4211
4212         * config/h8300/h8300-protos.h: Add a prototype for
4213         compute_a_shift_cc.
4214         * config/h8300/h8300.c (shift_one): Update the CC status.
4215         (shift_two): Likewise.
4216         (output_a_shift_cc): Set cc_inline and cc_special.
4217         (compute_a_shift_cc): New.
4218         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
4219
4220 2003-04-04  Richard Henderson  <rth@redhat.com>
4221
4222         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
4223
4224 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
4225
4226         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
4227         * fixinc/fixincl.x: Rebuilt.
4228         * fixinc/tests/base/stdio.h: Regenerated.
4229
4230 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
4231
4232         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
4233
4234 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
4235
4236         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
4237         (NORMAL_MODE).
4238         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
4239
4240 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4241
4242         * doc/contrib.texi (Contributors): Add entries for Wolfgang
4243         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
4244         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
4245         Danny Smith, and Ulrich Weigand.
4246         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
4247         entry.
4248
4249 2003-04-04  Nick Clifton  <nickc@redhat.com>
4250
4251         * config/sparc/sol2-bi.h: Revert previous delta.
4252         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
4253
4254 2003-04-04  Nick Clifton  <nickc@redhat.com>
4255
4256         * config/v850/v850.c (expand_prologue): Only use register save
4257         helper functions if long calls are not being used.
4258         Add a clobber of r11 id using long calls.
4259         (pattern_is_ok_for_prologue): Account for the extra clobber.
4260         (construct_save_jarl): Likewise.
4261         * config/v850/v850.md (prolog pattern): Do not use this pattern
4262         for v850e's.
4263
4264 2003-04-04  Andreas Schwab  <schwab@suse.de>
4265
4266         * stor-layout.c (layout_decl): Avoid syntax error in last change
4267         when PCC_BITFIELD_TYPE_MATTERS is defined but not
4268         EMPTY_FIELD_BOUNDARY.
4269
4270 2003-04-03  Jason Merrill  <jason@redhat.com>
4271
4272         PR c/10175
4273         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
4274         Look backwards for a line note.
4275
4276 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
4277
4278         * fix-header.c (read_scan_file): Defer switch processing.
4279
4280 2003-04-03  Matt Austern  <austern@apple.com>
4281
4282         * cpppch.c (reset_ht): Remove.
4283         (cpp_read_state): Remove loop to reset hashtable identifiers.
4284         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
4285         after pch file is written.
4286         * ggc.h (gt_pch_fixup_stringpool): Declare.
4287         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
4288         hashnode's value to another hashtable, then clear the original.
4289         (saved_ident_hash): Define.
4290         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
4291         store definitions in ident_hash, and clear ident_hash.
4292         (gt_pch_fixup_stringpool): Define.  Restore definitions from
4293         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
4294
4295 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
4296
4297         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
4298
4299 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4300
4301         PR optimization/10157
4302         * gcse.c (can_copy_p): Rename it to can_copy.
4303         (can_copy_init_p): Remove.
4304         (compute_can_copy): Use can_copy instead of can_copy_p.
4305         (can_copy_p): New exported function. Call compute_can_copy.
4306         (hash_scan_set): Use it.
4307         (gcse_main): Don't call compute_can_copy.
4308         (bypass_jumps): Don't call compute_can_copy.
4309         * rtl.h (can_copy_p): Declare.
4310         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
4311         copy if the mode doesn't support copy operations.
4312
4313 2003-04-03  Jason Merrill  <jason@redhat.com>
4314
4315         * Makefile.in (unstrap): Also remove stage_last.
4316
4317         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
4318         (dwarf2out_source_line): Don't do anything if line==0.
4319
4320         * stor-layout.c (do_type_align): New fn, split out from...
4321         (layout_decl): ...here.  Do all alignment calculations for
4322         FIELD_DECLs here.
4323         (update_alignment_for_field): Not here.
4324         (start_record_layout, debug_rli): Remove unpadded_align.
4325         * tree.h (struct record_layout_info_s): Remove unpadded_align.
4326         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
4327         or DECL_MODE on the CONST_DECLs.
4328         (finish_struct): Don't mess with DECL_ALIGN.
4329
4330 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
4331
4332         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
4333
4334 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
4335
4336         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
4337         function is an interrupt handler.
4338
4339         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
4340         restoring target registers with EH_RETURN_STACKADJ_RTX; use
4341         multiple registers in round-robin fashion.
4342
4343 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4344
4345         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
4346         * system.h (CHAR_BITFIELD): New.
4347
4348 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
4349
4350         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
4351         and LE.
4352         (another peephole2): Likewise.
4353
4354 2003-04-03  Nick Clifton  <nickc@redhat.com>
4355
4356         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
4357         (DEF_ARCH64_SPEC): Likewise.
4358
4359 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
4360
4361         * i386.c (constant_address_p): Use legitimate_constant_p.
4362         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
4363
4364 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
4365
4366         * config/h8300/h8300-protos.h: Add a prototype for
4367         gtle_operator.
4368         * config/h8300/h8300.c (gtle_operator): New.
4369         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
4370         gtle_operator.
4371         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
4372         and LE.
4373
4374 2003-04-02  Richard Henderson  <rth@redhat.com>
4375
4376         * libgcc-std.ver (_Unwind_GetCFA): New.
4377         * unwind-dw2.c (_Unwind_GetCFA): New.
4378         * unwind-libunwind.c (_Unwind_GetCFA): New.
4379         * unwind-sjlj.c (_Unwind_GetCFA): New.
4380         * unwind.h: Declare it.
4381
4382 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
4383
4384         PR inline-asm/8088
4385         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
4386         when MMX/SSE is not available.
4387
4388 2003-04-02  Mike Stump  <mrs@apple.com>
4389
4390         * doc/install.texi (Specific): Update pointers to apple.com.
4391
4392 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
4393
4394         * i386.c (override_options):  Disable red zone by default on i386.
4395         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
4396         Do not test TARGET_64BIT together with TARGET_RED_ZONE
4397
4398 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
4399
4400         * config/h8300/h8300.md (a peephole2): Tighten the condition.
4401
4402 2003-04-02  Richard Henderson  <rth@redhat.com>
4403
4404         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
4405
4406 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
4407
4408         * config/h8300/h8300.md (a peephole2): New.
4409
4410 2003-04-02  Richard Henderson  <rth@redhat.com>
4411
4412         * except.c (sjlj_find_directly_reachable_regions): Recognize when
4413         must-not-throw region has been deleted.
4414
4415 2003-04-02  Richard Henderson  <rth@redhat.com>
4416
4417         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
4418         optimization when flag_exceptions not enabled.
4419
4420 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
4421
4422         * config/rs6000/rs6000.c
4423         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
4424         macros.
4425         (rs6000_issue_rate): Add case for 8540.
4426         (rs6000_use_sched_lookahead): New function.
4427
4428         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
4429         units into MU ones.
4430         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
4431         reservation before retirement.
4432         (ppc8540_multiply, ppc8540_load, ppc8540_store,
4433         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
4434         Remove additional cycle in the reservation before retirement.
4435         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
4436         reservation of ppc8540_issue.
4437
4438 2003-04-02  Andreas Schwab  <schwab@suse.de>
4439
4440         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
4441
4442 2003-04-01  Richard Henderson  <rth@redhat.com>
4443
4444         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
4445         notes for nothrow calls if flag_forced_unwind_exceptions.
4446         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
4447         (sjlj_find_directly_reachable_regions): Likewise.
4448         (reachable_handlers): Likewise.
4449         (can_throw_external): Likewise.
4450         (collect_one_action_chain): Record cleanups after catch-all and
4451         must-not-throw if flag_forced_unwind_exceptions.
4452         * flags.h (flag_forced_unwind_exceptions): Declare.
4453         * toplev.c (flag_forced_unwind_exceptions): New.
4454         (lang_independent_options): Add it.
4455         * doc/invoke.text: Add it.
4456
4457 2003-04-01  David Mosberger <davidm@hpl.hp.com>
4458
4459         * config/ia64/crti.asm: Clean up trailing whitespace.
4460         Remove trailing hashes (#) from identifiers.
4461
4462         * config/ia64/crtn.asm: Ditto.
4463
4464         * config/ia64/crtend.asm: Remove trailing hashes (#) from
4465         identifiers.
4466         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
4467         directives.  Drop explicit bundling---it just makes the code
4468         harder to read.  Don't save/restore gp needlessly.
4469
4470         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
4471         identifiers (they're only needed if the identifier would clash
4472         with a register name otherwise).
4473         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
4474         directives.  Drop explicit bundling---it just makes the code
4475         harder to read.
4476         (__do_jv_register_classes): Ditto.
4477         (.fini_array): Remove "progbits" (newer
4478         assemblers don't like wrong section-types).
4479         (.init_array): Ditto.
4480
4481 2003-04-01  Roger Sayle  <roger@eyesopen.com>
4482
4483         PR fortran/9974
4484         * gcse.c (reg_killed_on_edge): New function to test whether the
4485         given reg is overwritten by any instruction queued on an edge.
4486         (bypass_block): Ignore substitutions killed on incoming edges.
4487         Don't bypass outgoing edges that have queued instructions.
4488
4489 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
4490
4491         * real.h (EXP_BITS): Make room for...
4492         (struct real_value): ... added canonical bit.
4493         (struct real_format): Added pnan.
4494         (mips_single_format, mips_double_format, mips_extended_format,
4495         mips_quad_format): New.
4496         * real.c: Copy p to pnan in all formats.
4497         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
4498         (real_nan): Use pnan to compute significand's shift.
4499         (real_identical): Disregard significand in canonical
4500         NaNs.
4501         (real_hash): Likewise.  Take signalling into account.
4502         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
4503         Disregard significand bits in canonical NaNs.  Set all bits of
4504         canonical NaN if !qnan_msb_set.
4505         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
4506         qnan_msb_set to tell the base double format.
4507         (ibm_extended_format): Use 53 as pnan.
4508         (mips_single_format, mips_double_format, mips_extended_format,
4509         mips_quad_format): Copied from the corresponding ieee/ibm
4510         formats, with qnan_msb_set false.
4511         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
4512         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
4513         * config/mips/mips.c (override_options): Use mips_single_format
4514         and mips_double_format.  Default TFmode to mips_quad_format.
4515         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
4516         * config/mips/t-irix6: Likewise.
4517         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
4518         * config/fp-bit.c (pack_d, unpack_d): Obey it.
4519
4520 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
4521
4522         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
4523         (live_image_destructor): Reset image to initial state.
4524         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
4525
4526 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
4527
4528         * config/sparc/sparc.c (input_operand): Accept bare
4529         CONSTANT_P_RTX operands.
4530
4531 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4532
4533         * gcse.c (struct ls_expr): Added pattern_regs field.
4534         (ldst_entry): Initialize it.
4535         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
4536         (store_ops_ok): Use regs precomputed by them.
4537         (find_loads, store_killed_in_insn, load_kills_store): Change return
4538         type to bool.
4539         (store_killed_before, store_killed_after): Take position of register
4540         set in account.
4541         (reg_set_info): Store position of the setter.
4542         (gcse_main): Enable store motion.
4543         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
4544         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
4545         sharing.
4546         (simple_mem): Enable store motion of non-symbol mems.
4547         (regvec): Type changed.
4548         (LAST_AVAIL_CHECK_FAILURE): New.
4549         (compute_store_table_current_insn): New.
4550         (build_store_vectors): Computation of availability and anticipatability
4551         moved ...
4552         (compute_store_table, find_moveable_store): ... here.
4553         (delete_store): Remove senseless comment.
4554         (store_motion): Reorganize.
4555
4556 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
4557
4558         * config/mips/mips.c (override_options): Provide mappings for
4559         HI_REGNUM and LO_REGNUM.
4560         * config/mips/mips.h (MD_DBX_FIRST): Define.
4561
4562 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4563
4564         * combine.c (merge_outer_ops): Fix typo.
4565
4566         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
4567
4568 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
4569
4570         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
4571         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
4572         imul_compare.  Add lmul_compare.
4573         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
4574         in second pair of dispatch slots.  Model stores more accurately.
4575         Tweak multiply model.  Add bypasses for CR instructions dependent
4576         on complicated compares.
4577         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
4578         (muldi3): Add lmul_compare patterns.
4579         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
4580         and FPSTORE_UX to split instructions and add COMPARE,
4581         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
4582         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
4583         (rs6000_rtx_costs): Separate POWER4 multiply case.
4584
4585 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
4586
4587         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
4588         Do nothing if __builtin_return_address was not used.
4589
4590 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
4591
4592         * i386.md (test patterns):  Allow memory operand in operand1.
4593
4594 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
4595
4596         * testsuite/gcc.c-torture/execute/simd-3.c: New.
4597
4598         * expr.c (expand_expr): Handle VECTOR_CST.
4599         (const_vector_from_tree): New.
4600
4601         * varasm.c (output_constant): Handle VECTOR_CST.
4602
4603         * c-typeck.c (digest_init): Build a vector constant from a
4604         VECTOR_TYPE.
4605
4606         * config/rs6000/rs6000.c: Remove prototype for
4607         easy_vector_constant.
4608         (easy_vector_constant): Add mode parameter.  Rewrite to handle
4609         more easy constants.
4610         (rs6000_emit_move): Pass mode to easy_vector_constant.
4611         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
4612         (emit_easy_vector_insn): New.
4613         (easy_vector_same): New.
4614         (EASY_VECTOR_15): New macro.
4615         (EASY_VECTOR_15_ADD_SELF): New macro.
4616         (bdesc_2arg): Rename to xorv2si3.
4617         (easy_vector_constant_add_self): New.
4618         (input_operand): Allow vector constants.
4619
4620         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
4621         easy_vector_constant, easy_vector_constant_add_self.
4622         (EXTRA_CONSTRAINT): Add 'W'.
4623
4624         * config/rs6000/rs6000-protos.h: Add prototype for
4625         easy_vector_constant, emit_easy_vector_insn.
4626
4627         * config/rs6000/altivec.md (xorv8hi3): New.
4628         (xorv16qi3): New.
4629         Remove all _const0 patterns.
4630         (movv4si_internal): Rewrite to use code.  Add vector constant to
4631         vector alternative.  Add splitter.
4632         (movv8hi_internal): Same.
4633         (movv16qi_internal): Same.
4634         (movv4sf_internal): Same.
4635         Change the unspecs for vspltis* to use constants.
4636
4637         * config/rs6000/spe.md ("xorv4hi3"): New.
4638         ("spe_evxor"): Rename to xorv2si3.
4639         ("xorv1di3"): New.
4640         Remove all _const0 patterns.
4641         (movv2si_internal): Rewrite to use code.  Add vector constant to
4642         alternatives.  Add splitter.
4643         (movv4hi_internal): Add vector constant to alternatives.
4644         (movv1di_internal): Same.
4645         (movv2sf_internal): Same.
4646
4647 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4648
4649         PR c/9936
4650         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
4651         variably-sized arrays in parameters.
4652         (set_save_expr_context): New function.
4653         (c_expand_body): Use it, via walk_tree.
4654
4655 2003-03-31  Eric Christopher  <echristo@redhat.com>
4656
4657         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
4658         (combinable_i3pat): Remove call to expand_field_assignment and
4659         #if 0'd code.
4660
4661 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
4662
4663         PR c++/10278
4664         * c-common.c (finish_label_address_expr): Handle the
4665         error_mark_node.
4666
4667 2003-03-31  Richard Henderson  <rth@redhat.com>
4668
4669         * real.c (real_identical): Reorg so as to not compare
4670         signalling for normals.
4671
4672 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4673
4674         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
4675
4676 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4677
4678         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
4679         notes as they are boggus.
4680         (m68hc11_gen_movqi): Likewise.
4681
4682 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
4683
4684         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
4685         save the soft registers after the frame pointer so that gdb can unwind
4686         the frame more easily.
4687         (expand_epilogue): Likewise in opposite order; allow to use X register
4688         as scratch if the return value is by reference.
4689
4690 2003-03-31  Jason Merrill  <jason@redhat.com>
4691
4692         PR java/10145
4693         * stor-layout.c (update_alignment_for_field): Respect
4694         DECL_USER_ALIGN for zero-length bitfields, too.
4695         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
4696         fields.
4697
4698 2003-03-31  Matt Austern  <austern@apple.com>
4699
4700         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
4701         (count_defs): Keep track of number of defs as well as total size.
4702         (write_defs): Put every definition in cpp_savedstate's defs array.
4703         (comp_hashnode): Define.  Comparison function for qsort.
4704         (cpp_write_pch_deps): Sort definitions before writing them.
4705         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
4706         (collect_ht_nodes): Define.
4707         (cpp_valid_state): When verifying that undefined identifiers in
4708         the pch file are still undefined, read a sorted list of undefined
4709         identifiers, collect all defined identifiers into a sorted list,
4710         and walk through both lists to make sure there's no match.
4711
4712 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4713
4714         * config/h8300/h8300.md (a peephole2): New.
4715
4716 2003-03-31  Michael Matz  <matz@suse.de>
4717
4718         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
4719
4720 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
4721
4722         PR target/10177
4723         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
4724         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
4725         all call-clobbered registers as used.
4726
4727 2003-03-31  Michael Matz  <matz@suse.de>
4728
4729         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
4730         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
4731
4732 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
4733
4734         * gcov.c: Add -a & -u options.
4735         (struct arc_info): Add local_span, is_call_non_return,
4736         is_nonlocal_return, is_unconditional flags, remove is_call flag.
4737         (struct block_info): Add flags, is_call_site, is_nonlocal_return
4738         members. Make encodings a union with span member.
4739         (struct function_info): Add blocks_executed, line, src, line_next
4740         members.
4741         (struct coverage_info): Make branches a union with blocks member.
4742         (struct source_info): Add functions member.
4743         (object_summary, program_count): New global variables.
4744         (flag_all_blocks, flag_unconditional): New flags.
4745         (find_source, output_branch_count): New functions.
4746         (print_usage): Adjust.
4747         (options): Adjust.
4748         (process_args): Adjust.
4749         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
4750         <GCOV_TAG_BLOCKS>: Read flags.
4751         <GCOV_TAG_LINES>: Adjust.
4752         (read_count_file): Process SUMMARY tags.
4753         (solve_flow_graph): Set is_unconditional and clear is_call_site
4754         appropriately.
4755         (add_branch_counts): Adjust. Don't count unconditional branches.
4756         (add_line_counts): Deal with all-blocks mode, accumulate block
4757         coverage.
4758         (accumulate_line_counts): Adjust, generate local spanning tree for
4759         all-blocks mode.
4760         (output_lines): Adjust.
4761         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
4762         * doc/gcov.texi: Document.
4763
4764 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4765
4766         * config/h8300/h8300.md: Organize peephole2's that transform
4767         (compare (reg:HI) (const_int)).
4768
4769 2003-03-31  Roger Sayle  <roger@eyesopen.com>
4770
4771         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
4772         (init_emit_once): Initialize dconstm2 and dconsthalf here.
4773         * real.h (dconstm2, dconsthalf): Add prototypes here.
4774         * real.c (real_sqrt): Use dconsthalf rather than local copy.
4775         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
4776         exp(x/2.0) remember to fold the division if possible.
4777         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
4778         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
4779         1.0/(x*x) and pow(x,0.5) as sqrt(x).
4780
4781 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
4782
4783         * config/h8300/h8300.md (a new peephole2): New.
4784
4785 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
4786
4787         * gcse.c (simple_mem): Return false for floating-point accesses
4788         if flag_float_store is true.
4789
4790 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4791
4792         * gcse.c (gcse_constant_p): New function to identify constants
4793         suitable for constant propagation, including COMPARE with two
4794         integer constant arguments.
4795         (hash_scan_set): Use gcse_constant_p.
4796         (find_avail_set): Likewise.
4797         (cprop_insn): Likewise.
4798         (do_local_cprop): Likewise.
4799         (find_implicit_sets): Likewise.
4800         (find_bypass_set): Likewise.
4801
4802 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
4803
4804         * except.h: Remove definition of varray_type.
4805
4806 2003-03-30  Richard Henderson  <rth@redhat.com>
4807
4808         PR opt/10011, opt/10252:
4809         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
4810         before post-gcse cse pass.
4811
4812 2003-03-30  Roger Sayle  <roger@eyesopen.com>
4813
4814         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
4815
4816 2003-03-30  DJ Delorie  <dj@redhat.com>
4817
4818         * profile.c (instrument_edges): Make sure any newly created
4819         jump insns have correct jump label info.
4820
4821 2003-03-30  Richard Henderson  <rth@redhat.com>
4822
4823         * cfgbuild.c (make_edges): Use tablejump_p.
4824         * cfgcleanup.c (label_is_jump_target_p): Likewise.
4825         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
4826         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
4827         (try_redirect_by_replacing_jump): Likewise.
4828         (redirect_edge_and_branch): Likewise.
4829         * cse.c (fold_rtx): Likewise.
4830         * jump.c (delete_related_insns): Likewise.
4831         * rtlanal.c (get_jump_table_offset): Likewise.
4832         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
4833
4834 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
4835
4836         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
4837         (STRICT2_WARN): Likewise.
4838
4839 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4840
4841         PR other/6955
4842         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
4843         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
4844
4845 2003-03-30  Richard Henderson  <rth@redhat.com>
4846
4847         PR c/10083
4848         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
4849         don't zero_extend const inputs.
4850
4851 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4852
4853         * reload1.c (reload_cse_move2add): Fix a comment typo.
4854
4855 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
4856
4857         * config/h8300/h8300.md (a peephole2): Remove useless code.
4858
4859 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4860
4861         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
4862         (*iorsi3_and_lshiftrt): Likewise.
4863         (*iorsi3_zero_extract): Likewise.
4864
4865 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
4866
4867         * config/h8300/h8300.md (*insv_si_8_8): New.
4868         (*insv_si_8_8_lshiftrt_8): Likewise.
4869         (a peephole2): Likewise.
4870
4871 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4872
4873         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
4874         Uniformly use bugfix instead of bug fix.
4875
4876 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
4877
4878         PR doc/895
4879         * ONEWS: Remove those items that already appear in the EGCS
4880         release notes on our web pages.
4881
4882 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4883
4884         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
4885         TARGET_HARD_FLOAT.  Reformat.
4886         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
4887
4888 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
4889
4890         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
4891         work on Solaris 2.5.1.
4892
4893 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
4894
4895         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
4896         section of h8300.md
4897         (*addsi3_and_nor_r_1): Likewise.
4898
4899 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
4900
4901         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
4902         set up before any trapping memory access if flag_non_call_exceptions.
4903
4904 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
4905
4906         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
4907
4908         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
4909
4910 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
4911
4912         * configure.in: Clarify comments.
4913         * configure: Regenerate.
4914
4915 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
4916
4917         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
4918         label even if pool empty when generating PIC.
4919         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
4920
4921 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
4922             Dhananjay Deshpande  <dhananjayd@kpit.com>
4923
4924         PR target/10205
4925         * config/h8300/h8300.c (h8300_initial_elimination_offset):
4926         Correct the offset computation when TARGET_NORMAL.
4927
4928 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4929
4930         PR target/10067
4931         * config/sparc/sparc.md (jump pattern): Correct order
4932         when issuing the annuling marker.
4933
4934 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4935
4936         PR c/8281
4937         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
4938         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
4939
4940 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4941
4942         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
4943         globalize_label.
4944         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4945         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4946         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4947         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4948         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4949         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
4950         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
4951
4952 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
4953
4954         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
4955         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
4956         notes after hoisting.
4957         (load_mems): Adjust replace_loop_mems call.
4958
4959 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
4960             Richard Henderson  <rth@redhat.com>
4961
4962         PR target/10114 and PR target/10084
4963         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
4964
4965 2003-03-27  Richard Henderson  <rth@redhat.com>
4966
4967         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
4968
4969 2003-03-27  Roger Sayle  <roger@eyesopen.com>
4970
4971         * fold-const.c (fold_inf_compare):  New function to simplify FP
4972         comparisons against +Infinity or -Infinity.
4973         (fold):  Optimize floating point comparisons against Infs and NaNs.
4974
4975 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
4976
4977         * libgcov.c: Provide only dummy functions if libc is not available.
4978
4979 2003-03-27  Richard Henderson  <rth@redhat.com>
4980
4981         * real.h (struct real_value): Add signalling.
4982         (EXP_BITS): Decrement.
4983         * real.c (get_canonical_qnan): Don't set MSB-1.
4984         (get_canonical_snan): Likewise.  Set signalling.
4985         (real_identical): Compare signalling.
4986         (round_for_format): Remove force-one-bit on code.
4987         (real_nan): Likewise.  Set signalling.
4988         (encode_ieee_single): Add force-one-bit code; honor signalling.
4989         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
4990         (decode_ieee_single): Set signalling.
4991         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
4992
4993 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
4994
4995         PR ada/9953
4996         * ada/Makefile.in (gnatlib configuration for HPUX): Split
4997         the general section for HPUX into specific sections for
4998         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
4999         11 case.
5000
5001 2003-03-27  Glen Nakamura  <glen@imodulo.com>
5002
5003         PR opt/10087
5004         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
5005         while incrementing giv.
5006         (record_biv): Check for duplicate biv locations and
5007         set (struct induction *) v->same if found.
5008
5009 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
5010
5011         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
5012         v0.9 API change: replace read of UNW_REG_HANDLER with
5013         unw_get_proc_info().
5014         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
5015         with unw_get_proc_info().
5016         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
5017         unw_get_proc_info().
5018
5019 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
5020
5021         * config/rs6000/8540.md: Use presence_set instead of absence_set.
5022
5023 2003-03-26  Richard Henderson  <rth@redhat.com>
5024
5025         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
5026
5027 2003-03-26  Roger Sayle  <roger@eyesopen.com>
5028
5029         PR bootstrap/10051, PR bootstrap/10169.
5030         * mips-tfile.c (init_file): Don't provide a static initializer.
5031         (initialize_init_file): Initialize the contents of init_file.
5032         (add_file): Call initialize_init_file if not already initialized.
5033
5034 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
5035
5036         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
5037         registers used for global asm variables.
5038         (s390_frame_info, s390_arg_frame_offset): Likewise.
5039         (s390_emit_prologue, s390_emit_epilogue): Likewise.
5040
5041 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
5042
5043         * config/rs6000/8540.md: New file.
5044
5045         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
5046         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
5047         reservations for imul.
5048
5049         * config/rs6000/rs6000.md: Include 8540.md.  Change
5050         delayed_compare onto mult_compare for insns generating
5051         multiplication.
5052         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
5053         New type attribute values.
5054
5055         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
5056         fpsimple instead of fp.
5057         (*divsf3_gpr): Use type vecfdiv instead of fp.
5058         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
5059         instead of vecfloat.
5060         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
5061         (spe_brinc): Use type brinc instead of veccomplex.
5062         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
5063         veccomplex.
5064         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
5065         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
5066         *movv2sf_internal): Define type attribute values for all
5067         alternatives.
5068         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
5069         of fpcompare.
5070         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
5071         instead of fpcompare.
5072
5073 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
5074
5075         * config/rs6000/power4.md: Allow delay between dispatch and
5076         function units for simple instructions.  Correct store units.
5077         Allow branch to occupy as many dispatch slots as necessary.
5078
5079 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
5080
5081         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
5082         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
5083         zero extend old to it.
5084         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
5085         operand.
5086
5087 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
5088
5089         PR target/7784
5090         * reload.c (find_reloads_address): Handle
5091         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
5092         all base registers.
5093
5094 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
5095
5096         PR other/10203
5097         * version.c: Reference the GCC web site in the URL.
5098
5099 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
5100
5101         * c-incpath.c (add_standard_paths): Add both "translated" and
5102         non-translated header paths.
5103
5104 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
5105
5106         * doc/install.texi (*-*-freebsd*): Update with known status.
5107
5108 2003-03-21  Jason Merrill  <jason@redhat.com>
5109
5110         PR optimization/10171
5111         * unroll.c (unroll_loop): Don't delete the jump at the end unless
5112         we also delete a jump at the beginning.
5113
5114 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
5115
5116         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
5117         contributor.
5118
5119 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
5120
5121         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
5122         constants are not expensive.
5123
5124 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
5125
5126         PR opt/10056
5127         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
5128         jump jumping to the next instruction.
5129         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
5130
5131 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5132
5133         * doc/passes.texi (Passes): Properly document that we do not
5134         perform jump2 any longer; remove command-line option -dJ.
5135
5136 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5137
5138         PR optimization/8746
5139         * config/i386/i386.md (and promoting splitters): Disable HImode to
5140         SImode promoting when the sign bit matters and is not preserved, or
5141         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
5142         for size.
5143
5144 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5145
5146         * config/h8300/h8300.md (a peephole2): Extend to support loads
5147         in QImode and HImode.
5148
5149 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
5150
5151         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
5152         _return_far
5153         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
5154         (MULTILIB_EXCEPTIONS): Likewise.
5155         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
5156         by calling some board support routine.
5157         ("call_value"): Likewise.
5158         ("*return_void"): Likewise for return.
5159         ("*return_16bit"): Likewise.
5160         ("*return_32bit"): Likewise.
5161         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
5162         for 68HC11 too.
5163         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
5164         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
5165         -mlong-calls for 68HC11.
5166         * config/m68hc11/larith.asm (declare_near): New macro.
5167         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
5168         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
5169         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
5170         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
5171         (__mulhi32): Likewise.
5172         (ret): Update macro for 68HC11.
5173         (__far_trampoline): Implement for 68HC11.
5174         (__call_a16, __call_a32, __return_void, __return_16): New support
5175         routines for 68HC11 memory bank switching calling support.
5176         (__return_32): Likewise.
5177
5178 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
5179
5180         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
5181
5182 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
5183
5184         * doc/install.texi (Testing): Mention test result links from build
5185         status pages.
5186
5187 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
5188
5189         * function.c (put_var_into_stack): Change bool parameter to int.
5190         (gen_mem_addressof): Likewise.
5191         * rtl.h (gen_mem_addressof): Likewise.
5192         * tree.h (put_var_into_stack): Likewise.
5193         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
5194         gen_mem_addressof or put_var_into_stack.
5195         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
5196         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
5197
5198 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5199
5200         * config/h8300/h8300.md (a peephole2): New.
5201
5202 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
5203
5204         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
5205
5206 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5207
5208         * doc/contrib.texi (Contributors): Update Janis Johnson.
5209
5210 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5211
5212         PR target/10072
5213         * combine.c (simplify_if_then_else): Check that the mode
5214         has MODE_INT class before applying the (OP Z (mult COND C2))
5215         transformation.
5216
5217 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5218
5219         PR optimization/9414
5220         * config/sparc/sparc.md (widening peepholes): Use
5221         widen_memory_access instead of change_address.
5222
5223 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
5224
5225         PR c++/7086
5226         * c-typeck.c (c_mark_addressable): Adjust calls to
5227         put_var_into_stack.
5228         * expr.c (expand_expr): Likewise.
5229         * function.c (put_var_into_stack): Add rescan parameter.  Do not
5230         call fixup_var_refs when rescan is false.
5231         (gen_mem_addressof): Likewise.
5232         (assign_parms): Adjust calls to put_var_into_stack.
5233         (setjmp_protect): Likewise.
5234         (setjmp_protect_args): Likewise.
5235         * rtl.h (gen_mem_addressof): Change prototype.
5236         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
5237         * tree.h (put_var_into_stack): Change prototype.
5238
5239 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
5240
5241         PR middle-end/9967
5242         * builtins.c (expand_builtin_fputs): When optimizing for size,
5243         don't transform fputs into fwrite.
5244
5245 2003-03-23  Glen Nakamura <glen@imodulo.com>
5246
5247         PR c/8224
5248         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
5249         when signedness changes for division or modulus.
5250
5251 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
5252
5253         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
5254         globalize_label.
5255
5256 2003-03-23  Roger Sayle  <roger@eyesopen.com>
5257
5258         PR c/10178
5259         * stmt.c (expand_end_case_type): Check for overflow in range when
5260         determining whether to use a bit-test implementation.
5261
5262 2003-03-23  Richard Henderson  <rth@redhat.com>
5263
5264         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
5265         before flow2.
5266         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
5267
5268 2003-03-23  Richard Henderson  <rth@redhat.com>
5269
5270         PR opt/10116
5271         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
5272         from then_bb or else_bb after flow2.
5273
5274 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
5275
5276         * configure.in: Check whether it is necessary to link against
5277         libm to use ldexp.
5278         * configure: Regenerate.
5279         * Makefile.in: Add LDEXP_LIB substitution variable.
5280
5281 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
5282
5283         * config/h8300/h8300.md: Fix comment typos.
5284
5285 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5286
5287         * pa.c (output_cbranch): Fix typo in comment.
5288
5289 2003-03-22  Richard Henderson <rth@redhat.com>
5290
5291         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
5292         after reload.
5293
5294 2003-03-22  DJ Delorie  <dj at redhat dot com>,
5295         Bruce Korb  <bkorb at gnu dot org>
5296
5297         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
5298         buggy Solaris 2.6 mutex/cond initializers.
5299         (solaris_mutex_init): Rename to solaris_mutex_init_2.
5300         * fixinc/fixincl.x: Regenerate.
5301         * fixinc/tests/base/pthread.h: Update.
5302         * fixinc/fixincl.c(initialize): be explicit about the default case
5303         and indicate verbose level when being very, very verbose.
5304         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
5305
5306 2003-03-22  Andreas Jaeger  <aj@suse.de>
5307
5308         * config/i386/i386.c (ix86_init_machine_status): Return value.
5309
5310 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5311
5312         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
5313         conditional branch to the following instruction.  Use next_real_insn
5314         instead of next_active_insn.
5315         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
5316         instead of next_active_insn.
5317
5318 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
5319
5320         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
5321         instead of 'm' constraint in forced-split alternatives.
5322         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
5323         VALIDATE_ADDRESS parameter to operand_subword.
5324
5325 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
5326
5327         * config/h8300/h8300.c (notice_update_cc): Correctly handle
5328         the case where the set destination is STRICT_LOW_PART.
5329
5330 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
5331
5332         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
5333         c30 instead of a c40 processor.
5334
5335 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
5336
5337         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
5338
5339 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
5340
5341         * c-common.c: Include intl.h.
5342         (shadow_warning): Rewrite to allow better diagnostic translations.
5343         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
5344         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
5345         use it throughout.
5346         * Makefile.in (c-common.o): Add intl.h.
5347
5348 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
5349
5350         * config.gcc: Remove 'float_format'.
5351
5352         * fixproto: Define NULL and size_t in generated stdlib.h and
5353         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
5354         Rearrange file generation loop for readability.  Generate time.h,
5355         string.h if missing.
5356         * tsystem.h: Include <string.h>, <time.h> unconditionally.
5357         * config.gcc: Blow away POSIX defines.
5358
5359 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
5360
5361         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
5362
5363 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
5364
5365         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
5366         writing .interrupt command.
5367         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
5368         if it's a far or near function.
5369         ("call_value"): Likewise.
5370         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
5371         near attributes.
5372         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
5373         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
5374         (m68hc11_initial_elimination_offset): Set current_function_far
5375         according to attributes.
5376         (expand_prologue): Likewise.
5377         (trap_handler_symbol): New global to keep track of trap handlers.
5378         (m68hc11_encode_section_info): Mark symbol as far if needed; set
5379         trap symbol.
5380         (m68hc11_is_far_symbol): New function.
5381         (m68hc11_is_trap_symbol): New function.
5382         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
5383         (m68hc11_is_trap_symbol): Declare.
5384
5385 2003-03-21  Jan Hubicka  <jh@suse.cz>
5386
5387         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
5388         only when amount of saved regs changed.
5389         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
5390         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
5391
5392 2003-03-21  Jan Hubicka  <jh@suse.cz>
5393
5394         PR inline-asm/7916
5395         * function.c (instantiate_virtual_regs_lossage): New function.
5396         (instantiate_virtual_regs_1): Use it.
5397         (instantiate_virtual_regs): Do not continue in substition when insn has
5398         been deleted.
5399
5400 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5401
5402         * combine.c (make_field_assignment): Fix a warning.
5403
5404 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5405
5406         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
5407
5408 2003-03-21  Dale Johannesen  <dalej@apple.com>
5409
5410         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
5411         priority for R2 on Darwin.
5412         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
5413
5414 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
5415
5416         * combine.c (make_field_assignment): Remove unnecessary AND
5417         when storing into zero_extract.
5418
5419 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
5420
5421         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
5422         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
5423         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
5424         in comment.
5425
5426 2003-03-21  DJ Delorie  <dj@redhat.com>
5427
5428         * optabs.c (init_integral_libfuncs): Make sure we init at least up
5429         to "long long" size words.
5430
5431 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
5432
5433         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
5434         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
5435         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
5436
5437 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
5438
5439         PR doc-bug/9813
5440         * doc/extend.texi: Move misplaced paragraph about underscores in
5441         variables in macros.
5442
5443 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
5444             Richard Henderson  <rth@redhat.com>
5445
5446         PR optimization/8366
5447         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
5448         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
5449         PIC+SYMBOLIC_CONST in other modes than Pmode.
5450         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
5451         the form PIC+SYMBOLIC_CONST as mode dependent.
5452
5453 2003-03-21  DJ Delorie  <dj@redhat.com>
5454
5455         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
5456         sure we always emit at least one insn.
5457
5458 2003-03-21  Christopher Faylor  <cgf@redhat.com>
5459
5460         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
5461         stub t-cygming. Use common target header cygming.h. Add extra
5462         c_target_obj and cxx_target_obj file. Default cygwin to posix
5463         threading. Enforce i386 as float format.
5464         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
5465         Remove cygwin.h as target header. Use common target header
5466         cygming.h  Enforce i386 as float format. Correct typo.
5467         * config/i386/cygming.h: New file, containing definitions
5468         common to mingw32 and cygwin.
5469         * config/i386/cygwin.h: Remove definitions common to cygwin and
5470         mingw.  Simplify special spec logic.  Define "wrappers" around
5471         certain include path defines to accommodate -mno-cygwin.
5472         Remove some #if 0'ed code.
5473         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
5474         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
5475         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
5476         * config/i386/mingw32.h: Remove definitions common to cygwin and
5477         mingw.
5478         (EXTRA_OS_CPP_BUILTINS): Adjust.
5479         (TARGET_VERSION): Define.
5480         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
5481         mingw32.h definitions.
5482         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
5483         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
5484         Add compilation rules for cygwin1.o cygwin2.o.
5485         * config/i386/cygwin1.c: New file.
5486         * config/i386/cygwin2.c: New file.
5487         * config/i386/t-cygming: New makefile stub.
5488
5489 2003-03-20  Richard Henderson  <rth@redhat.com>
5490
5491         * fold-const.c (extract_muldiv_1): Revert changing order of
5492         operands in case MULT_EXPR of 2003-02-16 patch.
5493
5494 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
5495         Merge changes from new-regalloc-branch
5496
5497         From Michael Matz  <matz@suse.de>
5498         * df.c (df_ref_record_1): Move init of loc to safe point.
5499         Only recurse on interesting things in parallels.
5500         Handle CLASS_CANNOT_CHANGE_MODE smarter.
5501         (df_uses_record): Ditto.
5502
5503         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
5504         it's already okay to use memory operands in (IE doesn't require
5505         adding another insn or anything).
5506
5507 2003-03-20  Richard Henderson  <rth@redhat.com>
5508
5509         PR middle-end/6348
5510         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
5511         different from word_mode.
5512
5513 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5514
5515         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
5516         source operand to those that can be extracted with bld.
5517
5518 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
5519
5520         PR 10066
5521         * arm.md (UNSPEC_PIC_BASE): New constant.
5522         (pic_add_dot_plus_four): Wrap with unspec.
5523         (pic_add_dot_plus_eight): Likewise.
5524
5525 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5526
5527         * config/h8300/h8300.md (*insv_si_1_n): New.
5528         (*insv_si_1_n_lshiftrt): Likewise.
5529
5530 2003-03-20  Roger Sayle  <roger@eyesopen.com>
5531
5532         * fold-const.c (fold_mathfn_compare): New function to simplify
5533         comparisons against built-in math functions.  Fold comparisons
5534         of sqrt against constants.
5535         (fold): Call fold_mathfn_compare when appropriate.
5536
5537 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
5538
5539         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
5540         information.
5541
5542 2003-03-20  Per Bothner  <pbothner@apple.com>
5543
5544         Various cleanups to help compile server.
5545
5546         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
5547         and pass that to _cpp_init_hashtable.
5548         (cpp_read_main_file):  Drop hash_table* argument; don't call
5549         _cpp_init_hashtable.
5550         * cpplib.h:  Update declarations to match.
5551         * c-opts.c (c_common_init_options):  Pass ident_hash to
5552         cpp_create_reader.
5553         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
5554         * fix-header.c (read_scan_file):  Likewise pass NULL table to
5555         cpp_create_reader rather than cpp_read_main_file.
5556
5557         * cppfiles.c (cpp_rename_file):  Generalized and renamed
5558         to cpp_change_file.
5559         * cpplib.h:  Update declaration to match.
5560         * c-opts.c (push_command_line_line, finish_options):  Change
5561         cpp_rename_file calls to cpp_change_file.
5562
5563         * line-map.c (add_line_map):  Allow leaving the outermost file.
5564         Allowing entering an outermost-file after the initial time.
5565
5566         * toplev.c (pop_srcloc):  Allow popping from initial file.
5567
5568 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
5569
5570         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
5571
5572 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5573
5574         * config/h8300/h8300.md (a peephole2): New.
5575
5576 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
5577
5578         * config/h8300/h8300.md (*addsi3_and_r_1): New.
5579         (*addsi3_and_not_r_1): Likewise.
5580
5581 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
5582
5583         * Makefile.in (STRICT2_WARN): Add @WERROR@.
5584         (GCC_WARN_CFLAGS): Remove $(WERROR).
5585         (fixinc.sh-warn): New.
5586         * ada/Make-lang.in (ada-warn): Add $(WERROR).
5587         * cp/Make-lang.in (cp-warn): Add $(WERROR).
5588         * f/Make-lang.in (f-warn): Add $(WERROR).
5589         * java/Make-lang.in (java-warn): Add $(WERROR).
5590         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
5591
5592 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
5593
5594         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
5595         langhooks-def.h (lhd_tree_dump_dump_tree),
5596         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
5597         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
5598         true and false in return statements.
5599
5600 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
5601
5602         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
5603         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
5604         DWARF_INITIAL_LENGTH_SIZE.
5605         (output_compilation_unit_header, output_pubnames, output_aranges)
5606         (output_line_info): Output 0xffffffff escape value for 64-bit
5607         DWARF extension.
5608         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
5609
5610 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
5611
5612         * config/s390/s390.c (s390_preferred_reload_class): Do not
5613         force constants to the pool unless necessary.
5614         (s390_decompose_address): Prefer to use pointer as base,
5615         not index register.
5616         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
5617         Q alternative.
5618         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
5619         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
5620         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
5621         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
5622         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
5623
5624 2003-03-19  Jan Hubicka  <jh@suse.cz>
5625
5626         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
5627         * i386.c (use_fast_prologue_epilogue): Remove.
5628         (ix86_frame): New field save_regs-using_mov;
5629         (ix86_compute_frame_layout):  Decide on fast prologues;
5630         allocate saved registers in red zone.
5631         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
5632
5633 2003-03-19  Nick Clifton  <nickc@redhat.com>
5634
5635         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
5636
5637 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5638
5639         PR 10062
5640         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
5641         * pa-protos.h (output_lbranch): New prototype.
5642         * pa.c (compute_frame_size): Change size of the frame marker on the
5643         64-bit ports to 48 bytes.
5644         (pa_output_function_prologue): Document why SAVE_SP is set.
5645         (hppa_expand_prologue): Save previous stack pointer into frame marker
5646         on targets which use the hpux unwind library.
5647         (output_cbranch): Use output_lbranch.
5648         (output_lbranch): New function to output long unconditional branches.
5649         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
5650         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
5651         64-bit ports.
5652         * pa.md (jump): Use output_lbranch.
5653         (allocate_stack): New expander for dynamic stack allocation.
5654
5655 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
5656
5657         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
5658         when debugging on XCOFF targets.  Delete "abi" temp.
5659
5660         PR target/10073
5661         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
5662
5663 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
5664
5665         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
5666         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
5667         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5668
5669         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
5670         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
5671         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
5672
5673 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5674
5675         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
5676         the result of machopic_function_base_name.
5677         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
5678         string rather than a static array.
5679
5680         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
5681
5682         * gengtype.c: Include rtl.h.
5683         (enum rtx_code): Don't define.
5684         (rtx_format): Make declaration match rtl.h.
5685         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
5686         users.
5687         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
5688         * Makefile.in (gengtype.o): Update dependencies.
5689
5690 2003-03-18  Andreas Schwab  <schwab@suse.de>
5691
5692         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
5693         martin@blom.org.
5694
5695 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
5696
5697         * function.c (next_block_index): Mark with GTY.
5698
5699         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
5700
5701 2003-03-18  Richard Henderson  <rth@redhat.com>
5702
5703         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
5704         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
5705         until after reload.
5706
5707 2003-03-18  Richard Henderson  <rth@redhat.com>
5708
5709         * builtins.c (expand_builtin_unop): New target_mode operand;
5710         use it to convert the result to the correct mode.
5711         (expand_builtin): Update all callers.
5712
5713 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
5714
5715         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
5716
5717 2003-03-18  Jan Hubicka  <jh@suse.cz>
5718
5719         * i386.md:  Fix previous commit that mistakely applied the patch
5720         twice.
5721
5722         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
5723         canonicalized.
5724         (memrefs_conflict_p): Likewise.
5725         (addr_side_effect_eval): Canonicalize the constructed address.
5726
5727 2003-03-18  Jan Hubicka  <jh@suse.cz>
5728
5729         * i386.md (cvtts?2si peep2): New.
5730
5731 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
5732
5733         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
5734
5735 2003-03-18  Andreas Schwab  <schwab@suse.de>
5736
5737         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
5738         for format.
5739
5740 2003-03-17  Jason Merrill  <jason@redhat.com>
5741
5742         PR c++/10091
5743         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
5744         an unaligned member of TREE_ADDRESSABLE type.
5745
5746 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
5747
5748         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
5749         (TARGET_PROFILE_KERNEL): Define.
5750         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
5751         (PROFILE_BEFORE_PROLOGUE): Don't define.
5752         (PROFILE_KERNEL): Remove hacks.
5753         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
5754         (rs6000_stack_info): No need to save lr if just for profiling when
5755         TARGET_PROFILE_KERNEL.
5756         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
5757         (output_function_profiler): Localize label generation.  Emit code
5758         for kernel profiling.
5759
5760 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
5761
5762         * config/h8300/h8300-protos.h: Add a prototype for
5763         byte_accesses_mergeable_p.
5764         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
5765         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
5766         (a splitter): Likewise.
5767         (*iorsi3_ashift_16_ashift_24): Likewise.
5768         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
5769
5770 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5771
5772         * dwarf2asm.h: Delete obsolete comment.
5773         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
5774         dw2_asm_output_pcrel, dw2_asm_output_addr,
5775         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
5776         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
5777         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
5778         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
5779
5780 2003-03-17  Zack Weinberg <zack@codesourcery.com>
5781
5782         * c-tree.h (struct lang_identifier): Remove error_locus field.
5783         (IDENTIFIER_ERROR_LOCUS): Kill.
5784         (record_function_scope_shadow): New prototype.
5785         * c-typeck.c (build_external_ref): Don't complain if
5786         decl is error_mark_node.  When not at file scope, bind the
5787         decl's local value to error_mark_node to suppress further
5788         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
5789
5790         * c-decl.c (get_function_binding_level): New static function.
5791         (record_function_scope_shadow): New exported function.
5792         (c_make_fname_decl): Use get_function_binding_level.
5793
5794 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
5795
5796         * stmt.c (tail_recursion_args): Call promote_mode to set
5797         unsignedp flag correctly before calling convert_move.
5798
5799 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5800
5801         * loop-unroll.c (decide_peel_completely,
5802         decide_unroll_constant_iterations, decide_unroll_stupid,
5803         decide_unroll_runtime_iterations, decide_peel_simple): Set
5804         loop->has_desc.
5805
5806 2003-03-17  Jan Hubicka  <jh@suse.cz>
5807
5808         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
5809
5810 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
5811
5812         * function.c (assign_parms): For a struct value address passed as
5813         first argument, delay the function's result RTL setup code until
5814         after the emission of parameter conversions.
5815
5816 2003-03-17  Dave Love  <fx@gnu.org>
5817             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5818
5819         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
5820         __arch64__ to match Compaq cc.
5821
5822 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5823
5824         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
5825         (c_common_init): Set EBCDIC in cpp options.
5826         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
5827         not conditional compilation.
5828         * cpplib.h (struct cpp_options): New entry EBCDIC.
5829
5830 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
5831
5832         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
5833
5834 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
5835
5836         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
5837         argument to 0 for redirect_jump.
5838
5839 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
5840
5841         PR c++/8805
5842         * except.c (eh_region_u_cleanup): Add prev_try.
5843         (expand_eh_region_end_cleanup): Set it.
5844         (reachable_handlers): Use it to skip over cleanup blocks.
5845
5846 2003-03-17  Andreas Jaeger  <aj@suse.de>
5847
5848         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
5849
5850 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
5851
5852         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
5853         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
5854         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
5855         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
5856
5857 2003-03-16  Richard Henderson  <rth@redhat.com>
5858
5859         * simplify-rtx (simplify_binary_operation): Don't abort for
5860         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
5861
5862 2003-03-16  Richard Henderson  <rth@redhat.com>
5863
5864         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
5865         optimize_size as well.
5866
5867 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
5868
5869         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
5870         for D register to specify the low part of it, aka B.
5871         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
5872         the register if we are loading 1 or -1 to it; avoid using temp
5873         register when moving X/Y to Y/X.
5874         (m68hc11_gen_movqi): Likewise.
5875         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
5876
5877 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
5878
5879         PR optimization/9016
5880         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
5881         into the constant pool.
5882
5883 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5884
5885         PR target/9164
5886         * tree.c (get_narrower): For extensions with unchanged bit number,
5887         return the unsignedness of the outer mode.
5888
5889 2003-03-16  Roger Sayle  <roger@eyesopen.com>
5890
5891         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
5892         to avoid "may be used uninitialized" warning on ia64-hpux.
5893         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
5894
5895 2003-03-16  Andreas Jaeger  <aj@suse.de>
5896
5897         * configure.in: Improve check for memcheck.h.
5898         * configure: Regenerated.
5899
5900 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
5901
5902         * doc/cppopts.texi: Remove documentation of -A-.
5903
5904 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
5905
5906         * doc/libgcc.texi: Remove @tie.
5907
5908 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
5909
5910         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
5911         (rtx_pair): Added new element update_label_nuses, renamed to
5912         replace_label_data.
5913         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
5914         replace_label_data instead of rtx_pair.
5915         * loop.c (load_mems): Likewise.
5916         * rtlanal.c (replace_label): Replace label in pool constants and in
5917         INSN_LIST (in REG_LABEL note).
5918         (subrtx_p): Renamed to rtx_referenced_p.
5919         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
5920         LABEL_REF with CODE_LABEL, traverse constants from pool.
5921
5922 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
5923             Zack Weinberg  <zack@codesourcery.com>
5924
5925         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
5926         * doc/libgcc.texi: New file.
5927         * doc/interface.texi: Delete paragraph about libgcc interface.
5928         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
5929
5930 2003-03-15  Jason Merrill  <jason@redhat.com>
5931
5932         PR debug/9039
5933         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
5934
5935         PR debug/6387
5936         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
5937         function DIEs at toplevel.
5938         (decls_for_scope): At -g1, don't descend into subblocks.
5939
5940 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
5941
5942         * varasm.c (struct rtx_const): Change type of un.addr member
5943         to struct holding an additional 'symbol' member.
5944         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
5945         with equal string addresses as equal.
5946         (simplify_subtraction): Adapt to struct rtx_const change.
5947
5948 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5949
5950         * fix-header.c (read_scan_file): Read main file before handling -D.
5951
5952 2003-03-15  Roger Sayle  <roger@eyesopen.com>
5953
5954         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
5955         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
5956         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
5957         (find_sub_basic_blocks): Likewise.
5958         * cgraphunit.c (cgraph_expand_functions): Likewise.
5959         * dwarf2out.c (prune_unused_types): Likewise.
5960         * expr.c (store_field): Likewise.
5961         * genextract.c (print_path): Likewise.
5962         * haifa-sched.c (schedule_insn): Likewise.
5963         * lcm.c (compute_antinout_edge): Likewise.
5964         * loop-unroll.c (decide_peel_once_rolling): Likewise.
5965         * ra-colorize.c (ra_colorize_free_all): Likewise.
5966         * ra-debug.c (dump_igraph): Likewise.
5967         (debug_hard_reg_set): Likewise.
5968         * reg-stack.c (reg_to_stack): Likewise.
5969         * rtlanal.c (refers_to_regno_p): Likewise.
5970         * tracer.c (layout_superblocks): Likewise.
5971
5972 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5973
5974         * fix-header.c (read_scan_file): Fix thinko.
5975
5976 2003-03-15  Glen Nakamura  <glen@imodulo.com>
5977
5978         * reload1.c (choose_reload_regs): Use && instead of ||
5979         with REG_CANNOT_CHANGE_MODE_P condition.
5980
5981 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
5982
5983         * Makefile.in: Update.
5984         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
5985         * c-lex.c (init_c_lex): Register builtins hook is dead.
5986         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
5987         (c_common_decode_option): Don't call cpp_handle_option.
5988         Handle -A, -D and -U.
5989         (handle_deferred_opts): Simplify.
5990         (finish_options): Define builtins and command line macros.
5991         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
5992         * cppinit.c: Don't include intl.h.
5993         (init_builtins): Rename cpp_init_builtins.  No hook to call.
5994         (init_library): Don't need to sort options.
5995         (cpp_create_reader): Don't set pending.
5996         (cpp_destroy): Don't free pending.
5997         (struct pending_option, cl_directive_handler, struct cpp_pending,
5998         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
5999         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
6000         cl_options, cpp_handle_option): Remove.
6001         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
6002         cpp_finish_options): Remove.
6003         (cpp_init_builtins): New.
6004         * fix-header.c (read_scan_file): Update to handle -D.  Fix
6005         handling of -I.  Replace call to cpp_finish_options.
6006
6007 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
6008
6009         PR optimization/9387
6010         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
6011         for conditional returns.
6012
6013 2003-03-14  Jason Merrill  <jason@redhat.com>
6014
6015         PR optimization/6871
6016         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
6017
6018 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
6019
6020         * c-opts.c (finish_options): New.
6021         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
6022         (missing_arg): Handle OPT_include and OPT_imacros.
6023         (c_common_init, c_common_parse_file): Use finish_options.
6024         (handle_deferred_opts): Update.
6025         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
6026         (cpp_finish_options): Don't handle -imacros here.
6027         (no_fil): Remove.
6028         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
6029
6030 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
6031
6032         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
6033         rs6000_maybe_dead if !fromprolog.
6034
6035 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
6036
6037         * Makefile.in: Update.
6038         * c-common.h (fe_file_change, pp_file_change): New.
6039         * c-lex.c (init_c_lex): Don't set cb_file_change.
6040         (c_common_parse_file): Move to c-opts.c.
6041         (cb_file_change): Rename fe_file_change.
6042         * c-opts.c: Include debug.h.
6043         (warn_unused_macros, include_cursor): New.
6044         (push_command_line_include, cb_file_change): New.
6045         (COMMAND_LINE_OPTIONS): Handle -include.
6046         (c_common_decode_option): Use local warn_unused_macros.
6047         Handle OPT_include.
6048         (c_common_post_options): Set file change callback.
6049         (handle_deferred_opts): Skip -include.  Don't free the array.
6050         (c_common_init): Call cpp_finish_options here, and push an
6051         initial -include file.
6052         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
6053         (preprocess_file): Don't call cpp_finish_options.
6054         (init_pp_output): Don't set the file change callback.
6055         (pp_file_change): Return if no line commands or no output.
6056         * cpphash.h (next_include_file, first_unused_line): Remove.
6057         * cppinit.c (include_head, include_tail): Remove.
6058         (cpp_destroy): Don't free -include chain.
6059         (cpp_finish_options): Don't handle -include, or worry about
6060         -Wunused-macros.
6061         (_cpp_maybe_push_include_file): Remove.
6062         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
6063         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
6064         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
6065         Used flag is set based upon the state of the warn_unused_macros
6066         flag, and so use of first_unused_line is unnecessary.
6067
6068 2003-03-13  Jan Hubicka  <jh@suse.cz>
6069
6070         * cselib.c (clear_table): Do not take argument; always clear just
6071         used slots.
6072         (cselib_process_insn):  Update call of clear_table
6073         (cselib_init): Do not call clear_table.
6074         (cselib_finish): Clear table.
6075
6076         * cse.c (count_reg_usage): Do not check side_effects_p.
6077         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
6078         like noop.
6079         (find_reg_equal_equiv_note): Do not use find_reg_note.
6080
6081 2003-03-14  Richard Henderson  <rth@redhat.com>
6082
6083         PR target/9700
6084         * config/alpha/alpha.c (alpha_va_start): Account for
6085         current_function_pretend_args_size in the AP offset.
6086
6087         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
6088         (INITIAL_ELIMINATION_OFFSET): Move out of line.
6089         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
6090         (alpha_initial_elimination_offset) New.
6091         * config/alpha/alpha-protos.h: Update.
6092
6093 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
6094
6095         * stmt.c (expand_start_case): Call emit_queue ().
6096
6097 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
6098             Alexandre Oliva  <aoliva@redhat.com>
6099
6100         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
6101         words in new abis.
6102
6103 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
6104
6105         PR optimization/8396
6106         * tree-inline.c (initialize_inlined_parameters): Make sure the value
6107         of read-only constant arguments is passed with the right type.
6108
6109 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
6110
6111         * doc/extend.texi (Function Names): Make the example compilable.
6112
6113 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
6114
6115         * config/rs6000/rs6000.c (processor_target_table): Really allow
6116         GP optional instructions on Power4.
6117
6118 2003-03-13  Roger Sayle  <roger@eyesopen.com>
6119
6120         * calls.c (flags_from_decl_or_type): Factor and remove redundant
6121         conditional tests.
6122
6123 2003-03-13  Mike Stump  <mrs@apple.com>
6124
6125         * ggc-page.c (struct page_entry): Remove varray.h header.
6126         Add index_by_depth field.
6127         Remove save_in_use_p field.
6128         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
6129         by_depth_max, by_depth, and save_in_use fields.
6130         (INITIAL_PTE_COUNT): Add.
6131         (save_in_use_p_i): Add.
6132         (save_in_use_p): Add.
6133         (adjust_depth): Add.
6134         (move_ptes_to_front): Add.
6135         (push_depth): Add.
6136         (push_by_depth): Add.
6137         (prefetch): Add.
6138         (free_page): Add support for and use faster data structures.
6139         (ggc_alloc): Likewise.
6140         (init_ggc): Likewise.
6141         (ggc_recalculate_in_use_p): Likewise.
6142         (ggc_pop_context): Likewise.
6143         (clear_marks): Likewise.
6144         (ggc_pch_read): Likewise.
6145         * Makefile.in (ggc-page.o): Remove varray.h.
6146
6147 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
6148
6149         * ChangeLog: Rotated last year's entries to...
6150         * ChangeLog.8: New.
6151
6152         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
6153         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
6154         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
6155         config/ia64/ia64-protos.h, config/ia64/ia64.c,
6156         config/ia64/ia64.h, config/ia64/ia64.md,
6157         config/ia64/itanium1.md, config/ia64/itanium2.md,
6158         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
6159         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
6160
6161 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
6162
6163         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
6164         Differentiate endianness.
6165         (s6000_override_options): Use cpu type instead of TARGET_SPE.
6166
6167 2003-03-13  Nick Clifton  <nickc@redhat.com>
6168
6169         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
6170         LDM instructions with writeback enabled.
6171         (output_return_instruction): Likewise.
6172
6173         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
6174         (CALL_USED_REGISTERS): Remove definition.
6175         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
6176
6177 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
6178
6179         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
6180         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
6181         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
6182         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
6183         (rs6000_legitimize_address): Formatting.
6184         (rs6000_emit_move): Likewise.
6185         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
6186         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
6187         (rs6000_elf_select_section): Comment reason for shlib being
6188         set for ABI_AIX.
6189         (rs6000_elf_unique_section): Likewise.
6190         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
6191         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
6192         as well as flag_pic.
6193         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
6194         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6195         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
6196
6197 2003-03-13  Richard Henderson  <rth@redhat.com>
6198
6199         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
6200
6201         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
6202         (ia64_gp_save_reg): Remove.
6203         (struct ia64_frame_info): Move to the beginning of the file;
6204         add reg_save_gp.
6205         (ia64_expand_call): Rearrange for new call patterns.
6206         (ia64_reload_gp): New.
6207         (ia64_split_call): New.
6208         (ia64_compute_frame_size): Allocate reg_save_gp.
6209         (ia64_expand_prologue): Save reg_save_gp.
6210         (ia64_expand_epilogue): Don't restore gp.
6211         (ia64_hard_regno_rename_ok): Remove R4 hack.
6212         (ia64_function_ok_for_sibcall): New.
6213         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
6214         call try_split on sibcall pattern.
6215         * config/ia64/ia64-protos.h: Update.
6216         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
6217         Rename from nopic versions.  Confiscate 2nd argument to call as
6218         a marker.
6219         (call_pic, call_value_pic, sibcall_pic): Remove.
6220         (call_gp, call_value_gp, sibcall_gp): New.
6221         (builtin_setjmp_setup): Remove.
6222         (builtin_setjmp_receiver): Call ia64_reload_gp.
6223
6224 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
6225
6226         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
6227         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
6228         "GNU CC" with "GCC".
6229
6230         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
6231         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
6232         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
6233         GCC, not GNU CC.
6234
6235         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
6236         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
6237
6238         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
6239         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
6240         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
6241         "GNU CC" with "GCC".
6242
6243         * config/v850/lib1funcs.asm, config/v850/rtems.h,
6244         config/v850/v850-c.c, config/v850/v850-protos.h,
6245         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
6246         GCC, not GNU CC.
6247
6248         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
6249         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
6250         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
6251         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
6252         GNU CC.
6253
6254 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
6255
6256         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
6257
6258 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
6259
6260         * fixinc/fixinc.interix: Remove dead code (most of it).
6261         * fixinc/fixinc.dgux: Remove.
6262
6263         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
6264         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
6265
6266 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6267
6268         * pa.c (pa_init_builtins): Fix warning.
6269
6270 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
6271
6272         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
6273         (ASM_OUTPUT_XDATA_SHORT): Remove.
6274         (ASM_OUTPUT_XDATA_INT): Remove.
6275         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
6276         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
6277         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
6278         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
6279
6280 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
6281
6282         PR c++/7050
6283         * expr.c (store_expr): Don't attempt to store void-typed trees,
6284         just evaluate them for side effects.
6285
6286 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
6287
6288         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
6289         * cppinit.c (push_include): Move with changes to cppfiles.c.
6290         (cpp_read_main_file): Mark named operators here...
6291         (cpp_finish_options): ...not here.  Update.
6292         (_cpp_maybe_push_include_file): Update.
6293         * cpplib.h (cpp_push_include, cpp_rename_file): New.
6294
6295 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
6296
6297         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
6298         _gcc_COMPUTE_GAS_VERSION.
6299         * configure.in: Use them.
6300         * configure: Regenerate.
6301
6302 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
6303
6304         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
6305         to detect carry.
6306         (subdi3): Reorder emitted instructions.
6307
6308 2003-03-12  Andreas Jaeger  <aj@suse.de>
6309
6310         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
6311         NETBSD_OS_CPP_BUILTINS_LP64.
6312
6313 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
6314
6315         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
6316         Rearrange.  Reorganize.
6317         * configure.in: Rearrange.
6318         * configure: Regenerate.
6319
6320 2003-03-12  Andreas Jaeger  <aj@suse.de>
6321
6322         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
6323         LP64 targets.
6324
6325         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
6326         _LP64.
6327
6328         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
6329         _LP64 macros here.
6330         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
6331
6332         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
6333         NETBSD_OS_CPP_BUILTINS_LP64.
6334         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
6335         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
6336
6337         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
6338
6339 2003-03-12  Jan Hubicka  <jh@suse.cz>
6340
6341         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
6342
6343 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
6344
6345         Fix PR target/9797 and PR c/9853.
6346         * stmt.c (expand_decl_init): Call push_temp_slots () and
6347         pop_temp_slots ().
6348
6349 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
6350
6351         * sh.c: Include basic-block.h.
6352         (sh_output_mi_thunk, emit_load_ptr): New functions.
6353         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
6354
6355 2003-03-12  Nick Clifton  <nickc@redhat.com>
6356
6357         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
6358         (CALL_USED_REGISTERS): Likewise.
6359         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
6360         describing how this value is calculated.
6361
6362 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
6363
6364         * configure.in (rlim_t): Define to long if no valid definition
6365         found in sys/resource.h.
6366         * config.in, configure: Regenerate.
6367
6368 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
6369
6370         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
6371         TARGET_OS_CPP_BUILTINS.
6372         * config/mcore/mcore-pe.h: Similarly.
6373         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
6374         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
6375
6376 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6377
6378         PR c/9928
6379         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
6380         only if it is a VAR_DECL.
6381
6382 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6383
6384         PR optimization/9888
6385         * config/i386/i386.md (jcc_1): Fix range.
6386         (jcc_2): Likewise.
6387         (jump): LIkewise.
6388         (doloop_end_internal): Likewise.
6389
6390 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
6391
6392         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
6393         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
6394         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
6395         DLL_IMPORT_EXPORT_PREFIX and "i."
6396         (i386_pe_dllexport_name_p): Here.
6397         (i386_pe_dllimport_name_p): Here.
6398         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
6399         not 9 chars when getting identifier name.
6400         (i386_pe_mark_dllimport): Here.
6401         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
6402         not 9 chars when getting identifier name. Correct comment.
6403         (i386_pe_strip_name_encoding): Here. Add comments for different
6404         cases.
6405         (gen_fastcall_suffix): Break down xmalloc() argument to
6406         components.
6407         (gen_stdcall_suffix): Likewise.
6408         Update copyright year.
6409
6410 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
6411
6412         PR optimization/9888
6413         * config/i386/i386.md (movsi_1): Remove special alternatives
6414         for %eax register.
6415         (movsi_1_nointernunit): Likewise.
6416         (movhi_1): Likewise.
6417         * config/i386/i386.c (memory_address_length): Do not use
6418         short displacement when there is no base.
6419         (ix86_attr_length_address_default): Handle LEA instructions.
6420
6421 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
6422
6423         * c-cppbuiltin.c (builtin_define_std): Make non-static.
6424
6425 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
6426
6427         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
6428         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
6429         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
6430         * config/freebsd.h (CPP_PREDEFINES): Remove.
6431         (TARGET_OS_CPP_BUILTINS): New.
6432         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
6433         instead of TARGET_OS_CPP_BUILTINS.
6434         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
6435
6436 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
6437
6438         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
6439
6440 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6441
6442         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
6443         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
6444
6445         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
6446
6447 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
6448
6449         * toplev.c (independent_decode_option): Return success for --help,
6450         --target-help and --version.
6451
6452 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
6453
6454         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
6455         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
6456         specified.
6457         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
6458         DRIVER_SELF_SPECS.
6459         (LINK_SPEC): Let endian options affect the linker emulation name.
6460
6461 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
6462
6463         * sh.md (reload_inqi): Fix mode for source in second set.
6464
6465 2003-03-11  Jan Hubicka  <jh@suse.cz>
6466
6467         * cselib.c (cselib_invalidate_mem_1): Move too ...
6468         (cselib_invalidate_mem): ... here; use new list
6469         (dummy_val, first_containing_mem): New static variables.
6470         (clear_table): Initialize first_containing_mem.
6471         (discard_useless_values):  Compact the containing_mem list.
6472         (add_mem_for_addr): Add to the list.
6473         * cselib.h (cselib_val): Add next_containing_mem.
6474
6475 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6476
6477         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
6478         instructions for e500.
6479
6480 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
6481
6482         * Makefile.in: Update.
6483         * c-cppbuiltin.c: Include tm_p.h.
6484
6485 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
6486
6487         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
6488
6489         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
6490         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
6491         (_Unwind_SetGR): Same.
6492         (_Unwind_GetGRPtr): New.
6493         (_Unwind_SetGRPtr): New.
6494         (uw_update_context_1): Use accesor functions instead of accessing
6495         context->reg[] directly.
6496         (uw_install_context_1): Same.
6497         (execute_cfa_program): Same.
6498         (__frame_state_for): Same.
6499
6500         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
6501         the synthetic register offset.
6502
6503         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
6504
6505 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
6506
6507         * config/cris/cris.md: Remove lingering EGCS reference.
6508         ("*extopqihi_side_biap"): For HI operation, match
6509         cris_additive_operand_extend_operator, not
6510         cris_operand_extend_operator.  Adjust condition.
6511         ("*extopqihi_side", "*extopqihi"): Ditto.
6512         ("*extopqisi_side_biap"): Correct operand numbers in condition.
6513         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
6514         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
6515         ("*extophisi_swap"): Ditto.
6516         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
6517         PLUS, not cris_operand_extend_operator.  Adjust condition and
6518         output template.
6519         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
6520         * config/cris/cris.h (PREDICATE_CODES): Add
6521         cris_additive_operand_extend_operator.
6522         * config/cris/cris.c (cris_additive_operand_extend_operator):
6523         New predicate.
6524
6525 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
6526
6527         * df.c (read_modify_subreg_p): Change from static to global.
6528         * df.h (read_modify_subreg_p): Add prototype.
6529         * sched-deps.c (sched_analyze_1): Generate true dependency for
6530         strict_low_part, certain subregs and zero/sign_extract.
6531
6532 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
6533
6534         * Makefile.in: Update.
6535         * c-common.c: Don't include real.h or except.h.
6536         (REGISTER_PREFIX): Remove.
6537         (builtin_define_std, builtin_define_with_value,
6538         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
6539         builtin_define_type_max, builtin_define_type_precision,
6540         builtin_define_float_constants): Move to c-cppbuiltin.c.
6541         (c_stddef_cpp_builtins): New.
6542         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
6543         * c-cppbuiltin.c: New, extracted from c-common.c.
6544         (define__GNUC__): New.
6545         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
6546         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
6547         (cpp_unique_options): Don't support no-gcc.
6548         (do_spec_1): Remove support of version specs.
6549         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
6550         * doc/passes.texi: Update.
6551         * doc/tm.texi: Update.
6552
6553 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6554
6555         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
6556
6557 2003-03-10  Andrew Pinski  <apinski@apple.com>
6558
6559         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
6560         is on should not get here.
6561         (machopic_indirect_data_reference): If dynamic-no-pic is on just
6562         generate high/low parts of the address.
6563         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
6564         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
6565         symbol and labels with a new reg.  Dynamic-no-pic does not have a
6566         pic_offset_table_rtx.
6567         (machopic_select_section): Change references of flag_pic to
6568         MACHOPIC_INDIRECT.
6569         (machopic_asm_out_destructor): Likewise.
6570         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
6571         reference of flag_pic to MACHOPIC_INDIRECT.
6572         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
6573         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
6574         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
6575         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
6576         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
6577         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
6578         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
6579         (TARGET_DYNAMIC_NO_PIC): Define.
6580         (SUBTARGET_SWITCHES): Define, have sub-target switches for
6581         dynamic-no-pic.
6582         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
6583         rs6000_override_options to here. Dynamic-no-pic overrides
6584         pic.
6585         (CC1_SPEC): Change from not static then pic to not static and not
6586         dynamic-no-pic then pic.
6587         * config/rs6000/rs6000.c (rs6000_override_options): Move the
6588         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
6589         (rs6000_legitimize_reload_address): Add case for loading floating in
6590         dynamic-no-pic.
6591         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
6592         of flag_pic to MACHOPIC_INDIRECT.
6593         (secondary_reload_class): Conditional change the reference of
6594         flag_pic to MACHOPIC_INDIRECT.
6595         (rs6000_output_mi_thunk): Change reference of flag_pic to
6596         MACHOPIC_INDIRECT.
6597         (output_profile_hook): Likewise.
6598         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
6599         * config/rs6000/rs6000.md (movdf_low): Add the case for
6600         MACHO_DYNAMIC_NO_PIC_P.
6601         (call): Change references for flag_pic in TARGET_MACHO to
6602         MACHOPIC_INDIRECT.
6603         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
6604         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
6605         * doc/invoke.texi (-mdynamic-no-pic): Document.
6606
6607 2003-03-10  Devang Patel  <dpatel@apple.com>
6608
6609         PR c++/9394
6610         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6611         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6612         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
6613         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
6614         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
6615         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
6616
6617 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
6618
6619         PR optimization/7189
6620         * toplev.c (rest_of_compilation):  Move
6621         check_function_return_warnings up to just after
6622         delete_unreachable_blocks.
6623
6624 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6625
6626         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
6627         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
6628         Declare.
6629         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
6630         for reg rename optimization to avoid using Z and Y registers.
6631
6632 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6633
6634         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
6635         when adding to X and Y since leax/leay are fast.
6636         ("*addhi3"): Accept 'I' constraint when adding to address register.
6637         ("rotlhi3"): Operand 1 must be a register_operand.
6638         (peephole2): New peephole to optimize some adds.
6639         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
6640         to represent -2 .. 2 small integer range.
6641
6642 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
6643
6644         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
6645         each 16-bit rotation.
6646
6647 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
6648
6649         * c-opts.c (add_prefixed_path): Don't use concat.  When
6650         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
6651         cpp_GCC_INCLUDE_DIR_len characters.
6652
6653 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
6654
6655         * testsuite/gcc.dg/altivec-9.c: New file.
6656
6657         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
6658         (rs6000_emit_prologue): Use rs6000_frame_related instead.
6659
6660 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6661
6662         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
6663         vectors.
6664         (__ev_convert_u64): Remove macro.  Define as inline.
6665         (__ev_convert_s64): Same.
6666
6667 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
6668
6669         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
6670         (rs6000_stack_t): Add spe_64bit_regs_used.
6671
6672         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
6673         spe_64bit_regs_used, and use it to determine the size of the
6674         frame.
6675         (spe_func_has_64bit_regs_p): New.
6676         (spe_synthesize_frame_save): New.
6677         (rs6000_frame_related): Handle SPE synthetic registers.
6678         (rs6000_emit_prologue): Only save in 64-bits if the function used
6679         any registers in 64-bit mode.
6680         (rs6000_emit_epilogue): Same, but for restore.
6681
6682 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6683
6684         * arm.h (enum floating_point_type): Delete.  Replace with...
6685         (enum fputype): ... new.
6686         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
6687         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
6688         * arm.md (attr fpu): Reworked for new underlying enum values.
6689         * arm.c (arm_fpu_arch): Now enum fputype.
6690         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
6691         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
6692         Update uses of arm_fpu_arch and arm_fpu_tune.
6693
6694 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
6695
6696         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
6697         (try_crossjump_to_edge): Replace refereces to one jump table by
6698         references to identical jump table.
6699         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
6700         (replace_label): Moved to rtlanal.c.
6701         (struct rtx_pair): Moved to rtl.h.
6702         * rtl.h (struct rtx_pair): Moved from loop.c.
6703         (replace_label): New extern function.
6704         (subrtx_p): New extern function.
6705         (tablejump_p): New extern function.
6706         * rtlanal.c (replace_label): Moved from loop.c.
6707         (subrtx_p_1): New static function.
6708         (subrtx_p): New function.
6709         (tablejump_p): New function.
6710
6711 2003-03-10  Jan Hubicka  <jh@suse.cz>
6712
6713         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
6714
6715         * cfgcleanup.c (merge_blocks): Return where to iterate next.
6716         (try_optimize_cfg): Use return value of merge_blocks
6717
6718 2003-03-10  Michael Matz  <matz@suse.de>
6719
6720         * cfg.c (unchecked_make_edge): New.
6721         (cached_make_edge): Use it.
6722         * basic-block.h (unchecked_make_edge): Declare.
6723         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
6724
6725 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
6726
6727         * fpa.md: New file.  Move all patterns relating to FPA co-processor
6728         to here...
6729         * arm.md: ... from here.
6730         (cirrus.md, fpa.md): Include at end of description.
6731         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
6732         (pic_load_addr_based): Remove register constraint from expander.
6733         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
6734         (sordered, sungt, sunle, sunge, sunlt): Likewise.
6735         (eh_epilogue, tablejump): Likewise.
6736
6737 2003-03-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6738
6739         * tree.c (substitute_in_expr, case 'e'): Only make recursive call
6740         on operands if it has a PLACEHOLDER_EXPR.
6741
6742 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
6743             Mostafa Hagog
6744
6745         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
6746         condition.
6747
6748 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
6749
6750         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
6751         * config/ip2k/ip2k.h: Similarly.
6752         * config/m32r/m32r.h: Similarly.
6753         * config/m68hc11/m68hc11.h: Similarly.
6754         * config/mn10200/mn10200.h: Similarly.
6755         * config/mn10300/mn10300.h: Similarly.
6756         * config/pdp11/pdp11.h: Similarly.
6757         * config/v850/v850.h: Similarly.
6758         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
6759         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
6760         * config/mips/iris3.h: Remove #if 0 block.
6761
6762 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6763             Joern Rennecke <joern.rennecke@superh.com>
6764
6765         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6766         pending argument upon return from handle_braces here.
6767         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6768
6769 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6770             Joern Rennecke <joern.rennecke@superh.com>
6771
6772         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
6773         pending argument upon return from handle_braces here.
6774         (do_spec_2): Instead handle it upon return from do_spec_1 here.
6775
6776 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
6777
6778         * varasm.c (make_decl_one_only): Use declare_weak().
6779
6780 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6781
6782         PR middle-end/9986
6783         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
6784         after the common builtins.
6785         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
6786         * pa.c (TARGET_INIT_BUILTINS): Define.
6787         (pa_init_builtins): New function.
6788
6789         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
6790         space has been allocated for the outgoing arguments, set the arg
6791         pointer for a call emitted after virtuals have been instantiated
6792         using the stack pointer offset, otherwise abort.
6793
6794 2003-03-09  DJ Delorie  <dj@redhat.com>
6795
6796         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
6797
6798 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
6799
6800         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
6801         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
6802         conversion to integer.
6803         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
6804
6805 2003-03-09  Roger Sayle  <roger@eyesopen.com>
6806
6807         * builtins.def: Fix typo and improve grammar.
6808         * loop-unroll.c (decide_peel_completely): Tidy log message.
6809
6810 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
6811
6812         * config/h8300/h8300.md (*tstsi_upper_bit): New.
6813         (*iorsi3_e2f): Likewise.
6814
6815 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6816
6817         * config/h8300/h8300.c (h8300_and_costs): Return the number of
6818         assembly instructions needed.
6819         (h8300_shift_costs): Likewise.
6820
6821 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
6822
6823         * config/cris/aout.h (ENDFILE_SPEC): Undef.
6824
6825         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
6826         moves from here ...
6827         * expr.c (emit_move_insn_1): ... to here.
6828
6829         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
6830         (TARGET_OS_CPP_BUILTINS): New macro.
6831         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
6832         (TARGET_OS_CPP_BUILTINS): New macro.
6833         (CPP_PREDEFINES): Don't define.  Move old definitions and...
6834         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
6835         (TARGET_CPU_CPP_BUILTINS): New macro.
6836         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
6837         definitions and the optional __PIC__, __pic__ and
6838         __NO_UNDERSCORES__ definitions to...
6839         (TARGET_OS_CPP_BUILTINS): New macro.
6840
6841         * flags.h (flag_leading_underscore): Declare.
6842
6843         * c-opts.c (c_common_post_options): On fopen failure, return
6844         false, not NULL.
6845
6846 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6847
6848         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
6849         config.h.
6850         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
6851         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
6852
6853 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6854
6855         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
6856         CPP_PREDEFINES.
6857         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
6858         CPP_PREDEFINES.
6859
6860 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6861
6862         * c-common.h (c_common_init, c_common_post_options): Update.
6863         * c-objc-common.c (c_objc_common_init): Update for new prototype.
6864         * c-opts.c (saved_lineno): New.
6865         (c_common_post_options, c_common_init): Update prototypes,
6866         move call to cpp_read_main_file from latter to former.
6867         * c-tree.h (c_ojbc_common_init): Update.
6868         * langhooks-def.h (lhd_post_options): New.
6869         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
6870         * langhooks.c (lhd_post_options): New.
6871         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
6872         * toplev.c (no_backend): New.
6873         (process_options): Call post_options hook and set main_input_filename
6874         and input_filename here.
6875         (lang_dependent_init, do_compile): post_options hook moved to
6876         process_options.
6877         * objc/objc-act.c (objc_init): Update prototype.
6878         * objc/objc-act.h (objc_init): Update prototype.
6879
6880 2003-03-08  Roger Sayle  <roger@eyesopen.com>
6881
6882         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
6883         a complex or vector type, using a load in the original mode.
6884
6885 2003-03-08  Jan Hubicka  <jh@suse.cz>
6886
6887         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
6888         * gt-cgraph.h: New GC file.
6889         * cgraph.c (known_fns): New static variable.
6890         (cgraph_node): Add the decl into varray.
6891
6892 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6893
6894         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
6895
6896 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
6897
6898         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
6899         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
6900         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
6901         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
6902         All callers changed.
6903         * arm.md, arm.h, arm-protos.h: Updated.
6904
6905         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
6906         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
6907         * arm.c (arm_regno_class, f_register_operand): Updated.
6908
6909 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
6910
6911         * config/cris/cris.h: Remove EGCS references.
6912         (CPP_SPEC): Remove "-$".
6913         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
6914
6915 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6916
6917         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
6918         preference to CPP_PREDEFINES.
6919
6920 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
6921
6922         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
6923
6924 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
6925
6926         * config/h8300/h8300.md (*extzv_16_8): New.
6927
6928 2003-03-08  Jan Hubicka  <jh@suse.cz>
6929
6930         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
6931         * cgraph.h: (cgraph_local_info): Add can_inline_once
6932         (cgraph_global_info): Add inline_once.
6933         (cgraph_node): Add previous.
6934         (cgraph_remove_node): New.
6935         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
6936         function.
6937         (cgraph_optimize): Call it.
6938         (cgraph_finalize_function):  Set inlinable flags.
6939         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
6940         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
6941         (cgraph_expand_function): Likewise.
6942         * cgraph.c
6943         (cgraph_node): Put nodes into doubly linked chain.
6944         (cgraph_remove_node): New function.
6945         * flags.h (flag_inline_functions_called_once): Declare.
6946         * tree-inline.c: Include cgraph.h
6947         (inlinable_functions_p): Add extra argument to bypass limits.
6948         (expand_call_inline):  Obey cgraph flag.
6949         * tree-inline.h (tree_inlinable_function_p): Update prototype.
6950
6951 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6952
6953         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
6954         irreducible loops.
6955
6956         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
6957         loops info correctly.
6958
6959 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
6960
6961         PR middle-end/7796
6962         * unroll.c (calculate_giv_inc): Handle constants being
6963         loaded with LSHIFTRT.
6964
6965 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
6966
6967         * config/rs6000/rs6000.c (processor_target_table): Do not disable
6968         GP optional instructions on Power3, Power4, 620, and 630.
6969
6970 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
6971
6972         * calls.c: Fix comment formatting.
6973         * cfgloopanal.c: Likewise.
6974         * cfgloopmanip.c: Likewise.
6975         * combine.c: Likewise.
6976         * dwarf2out.c: Likewise.
6977         * ggc-common.c: Likewise.
6978         * langhooks.c: Likewise.
6979         * loop-unroll.c: Likewise.
6980         * loop.c: Likewise.
6981         * ra-build.c: Likewise.
6982         * sbitmap.c: Likewise.
6983         * toplev.c: Likewise.
6984
6985 2003-03-07  James E Wilson  <wilson@tuliptree.org>
6986
6987         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
6988
6989 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
6990
6991         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
6992         support -no-integrated-cpp.
6993
6994         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
6995         than langhooks.name.
6996
6997 2003-03-07  Michael Matz  <matz@suse.de>
6998
6999         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
7000         (DF_FOR_REGALLOC): New.
7001         * df.c (df_ref_record): Set DF_REF_STRIPPED.
7002         (read_modify_subreg_p): Simplify.
7003         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
7004         Use DF_FOR_REGALLOC.
7005         * ra.h (struct web): New member subreg_stripped.
7006         (invalid_mode_change_regs): Declare.
7007         * ra.c (invalid_mode_change_regs): New.
7008         (init_ra): Initialize it.
7009         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
7010         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
7011         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
7012         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
7013         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
7014
7015 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
7016
7017         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
7018         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
7019         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
7020         machine description file from ...
7021         * cirrus.md: ... here.
7022
7023 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7024
7025         * config/h8300/h8300.md (a peephole2): Don't use
7026         reg_overlap_mentioned_p.
7027
7028 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
7029
7030         * c-pch.c: Include langhooks.h.
7031         (IDENT_LENGTH): New.
7032         (get_ident): New.
7033         (pch_ident): Delete.
7034         (pch_init): Use get_ident, IDENT_LENGTH.
7035         (c_common_valid_pch): Likewise.  Also, use actual language
7036         in warning message.
7037         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
7038
7039         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
7040         c-parse.in.
7041         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
7042         gt-objc-objc-act.h.
7043         (gt-objc-objc-act.h): New rule.
7044         * objc/lang-specs.h: Support PCH.
7045         * objc/objc-act.c: Include gt-objc-objc-act.h.
7046         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
7047         (build_selector_reference_decl): Move idx out, mark for PCH.
7048         (build_class_reference_decl): Likewise.
7049         (build_objc_string_decl): Move *_idx out, mark for PCH.
7050         (build_tmp_function_decl): Move xxx out, mark for PCH.
7051
7052 2003-03-06  Dale Johannesen  <dalej@apple.com>
7053
7054         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
7055         global functions for inlining on Darwin.
7056
7057 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
7058
7059         * haifa-sched.c (schedule_block): Don't call reorder when sorting
7060         is prohibited.
7061
7062 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
7063
7064         * Makefile.in (c-ppoutput.o): Update.
7065         * c-common.h (init_pp_output): New.
7066         (preprocess_file): Update.
7067         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
7068         Register builtins.
7069         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
7070         Make call to cpp_read_main_file common to whether preprocessing
7071         or not.  Don't register builtins.
7072         * c-ppoutput.c: Include c-pragma.h.
7073         (setup_callbacks): Rename init_pp_output.
7074         (preprocess_file): No longer setup callbacks or call
7075         cpp_read_main_file.
7076         * cpphash.h (_cpp_init_mbchar): New.
7077         * cppinit.c (init_library): Call _cpp_init_mbchar.
7078         * cpplex.c (_cpp_init_mbchar): New.
7079
7080 2003-03-06  Roger Sayle  <roger@eyesopen.com>
7081
7082         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
7083         MEM, try loading the MEM into a register and taking the low-part
7084         of that, to help CSE see the use of the MEM in its true mode.
7085
7086 2003-03-05  Tom Tromey  <tromey@redhat.com>
7087
7088         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
7089         Define.
7090
7091 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
7092
7093         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
7094         operand 2.
7095         ("*ineqbranchsi"): Likewise.
7096
7097 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
7098
7099         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
7100         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
7101         register store followed by a stack increment.
7102
7103 2003-03-05  Chris Moller  <cmoller@redhat.com>
7104
7105         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
7106         to inhibit saving CARRY_REGS.
7107
7108         * config/stormy16/stormy16.c (xs_hi_general_operand):
7109         added predicate to detect and error-out on out-of-range
7110         const_ints for movhi.
7111         * config/stormy16/stormy16.md (movhi): use
7112         xs_hi_general_operand.
7113
7114         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
7115         added a check for local vbl size overflow.
7116         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
7117         added predicate to detect and error-out on out-of-range
7118         const_ints for addhi and subhi.
7119         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
7120         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
7121
7122         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
7123         add a term to accept PRE_MODIFY addresses.
7124         * config/stormy16/stormy16.c (xstormy16_expand_move):
7125         add code to expand PRE_MODIFY addresses to an add followed
7126         by a move.
7127
7128 2003-03-06  Jason Merrill  <jason@redhat.com>
7129
7130         * tree-inline.c (inlinable_function_p): Revert earlier change
7131         pending investigation.
7132
7133 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7134
7135         * config/h8300/h8300.md (a new peephole2): New.
7136
7137 2003-03-06  Jan Hubicka  <jh@suse.cz>
7138
7139         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
7140
7141 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7142
7143         * dwarf2out.c (size_of_die): Compute size of external reference to
7144         die correctly.
7145
7146 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
7147
7148         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
7149         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
7150         expanders.
7151
7152 2003-03-05  Roger Sayle  <roger@eyesopen.com>
7153
7154         * expr.h (lang_expand_expr): Delete obsolete prototype.
7155
7156 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7157
7158         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
7159
7160 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7161
7162         * config/h8300/h8300.md (a peephole2): Generalize to
7163         accept a memory operand.
7164
7165 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
7166
7167         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
7168         * config/alpha/alpha.c (print_operand, case '+'): New.
7169         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
7170         (call_value_osf_1_noreturn): Likewise.
7171
7172 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7173
7174         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
7175         (expand_end_bindings): Likewise.
7176
7177 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7178
7179         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
7180         (epilogue): Don't generate return_external_pic when emitting PA 2.0
7181         code.
7182
7183 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
7184
7185         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
7186
7187         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
7188
7189         * hooks.c (hook_rtx_rtx_null): New.
7190
7191         * hooks.h (hook_rtx_rtx_null): Protoize.
7192
7193         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
7194         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
7195
7196         * target.h (struct gcc_target): Add dwarf_register_span.
7197
7198         * dwarf2out.c (multiple_reg_loc_descriptor): New.
7199         (one_reg_loc_descriptor): New.
7200         (reg_loc_descriptor): Add support for values that span more than
7201         one register.
7202
7203 2003-03-05  Jan Hubicka  <jh@suse.cz>
7204
7205         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
7206         * alias.c:  Include cgraph.h
7207         (mark_constant_function): Use cgraph_rtl_info.
7208         * calls.c:  Include cgraph.h
7209         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
7210         calls.
7211         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
7212         * cgraph.c (cgraph_rtl_info): New function.
7213         * cgraph.h (cgraph_rtl_info): Declare
7214         (cgraph_rtl_info): Likewise.
7215         * function.h (struct function): Add recursive_call_emit.
7216         * toplev.c: Include cgraph.h.
7217         (rest_of_compilation): Set preferred_incoming_stack_boundary.
7218
7219 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7220
7221         * config/h8300/h8300.c (output_simode_bld): Clear the
7222         destination first if possible.
7223         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
7224         alternative.
7225         (extzv_1_r_inv_h8300hs): Likewise.
7226
7227 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7228
7229         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
7230         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
7231         * cfgloop.c (flow_loop_free): Made global.
7232         (establish_preds): New static function.
7233         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
7234         (get_loop_exit_edges): New.
7235         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
7236         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
7237         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
7238         loops.
7239         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
7240         removability of an edge.
7241         (fix_irreducible_loops): New static function.
7242         (find_path, remove_path): Add ability to remove enclosing loops.
7243         (unloop): New.
7244         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
7245         flags.
7246         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
7247         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
7248         not neccessary.
7249         (decide_peel_completely, peel_loops_completely): Allow complete peeling
7250         of non-duplicable once rolling loops.
7251         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
7252
7253 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
7254
7255         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
7256         for align_jumps is 4.
7257
7258         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
7259         use GENERAL_REGS.
7260
7261 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
7262
7263         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
7264         according to va_arg type.
7265         (EXPAND_BUILTIN_VA_ARG): Remove.
7266         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
7267         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
7268
7269 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
7270
7271         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
7272         else clauses.
7273
7274 2003-03-05  Michael Matz  <matz@suse.de>
7275
7276         * i386/i386.c (ix86_save_reg): Also test
7277         current_function_uses_const_pool.
7278
7279 2003-03-05  Michael Matz  <matz@suse.de>
7280
7281         * unwind.h: Add the GPL exception.
7282         * Makefile.in (USER_H): Add unwind.h.
7283
7284 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
7285
7286         PR c/9799
7287         * c-typeck.c (push_init_level): Add sanity check.
7288
7289 2003-03-05  Jan Hubicka  <jh@suse.cz>
7290
7291         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
7292         RTL inlining is done.
7293
7294         * cgraphunit.c (cgraph_mark_local_functions): New local function.
7295         (cgraph_optimize): Mark local functions.
7296         * i386-protos.h (init_cumulative_args): Update prototype.
7297         * i386.c (init_cumulative_args): Use register passing convention for
7298         local functions.
7299
7300         * cgraph.c (cgraph_global_info_ready): New global variable
7301         (cgraph_local_info, cgraph_global_info): New functions.
7302         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
7303         structures.
7304         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
7305         Declare.
7306         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
7307         (cgraph_mark_functions_to_output): Use inline_many.
7308         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
7309         (cgraph_expand_functions): Expand inline functions last.
7310         (cgraph_optimize): Do not emit uneeded functions.
7311
7312 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
7313
7314         * expr.c (convert_modes): Check for legal hard register.
7315
7316 2003-03-04  Tom Tromey  <tromey@redhat.com>
7317
7318         * doc/sourcebuild.texi (Front End Directory): Document tags.
7319         * configure: Rebuilt.
7320         * configure.in (target_list): Added tags.
7321         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
7322         TAGS files by reference.
7323         * objc/Make-lang.in (objc.tags): New target.
7324
7325 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7326
7327         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
7328         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
7329         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
7330         gcov_read_string, gcov_write_length): Modified to enable reading/
7331         writing of whole .da file just once.
7332         (da_file_open, da_file_close, da_file_eof, da_file_error,
7333         da_file_position, da_file_seek, da_file_write, da_file_read): New
7334         functions.
7335         (actual_da_file, actual_da_file_position, actual_da_file_length,
7336         actual_da_file_buffer, actual_da_file_buffer_size): New static
7337         functions.
7338         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
7339         just once.
7340
7341
7342 2003-03-04  Andreas Schwab  <schwab@suse.de>
7343
7344         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
7345         offset without frame pointer.
7346
7347 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
7348
7349         * expr.c (expand_expr): Call promote_mode to set unsignedp.
7350
7351 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
7352
7353         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
7354         * configure: Regenerated.
7355         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
7356
7357 2003-03-04  Andreas Jaeger  <aj@suse.de>
7358
7359         * configure.in: Check for <memcheck.h>.
7360         * configure: Regenerated.
7361
7362         * config.in: Define HAVE_MEMCHECK_H.
7363
7364         * ggc-common.c: Use <memcheck.h> if available instead of
7365         <valgrind.h>.
7366         * ggc-page.c: Likewise.
7367         * cppfiles.c: Likewise.
7368
7369 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
7370
7371         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
7372
7373 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7374
7375         PR c/9262
7376         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
7377         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
7378
7379 2003-03-04  Jan Hubicka  <jh@suse.cz>
7380
7381         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
7382         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
7383         for -O3.
7384
7385 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
7386
7387         * configure.in: Delete three unused variables.  Move a variable
7388         definition closer to its use.  Simplify use_collect2 logic.  Start to
7389         organize.  Simplify tests for in-tree gas and ld.
7390         * configure: Regenerate.
7391
7392 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
7393
7394         * Makefile.in: Update.
7395         * c-common.c (flag_no_line_commands, flag_no_output,
7396         flag_dump_macros, flag_dump_includes): New.
7397         * c-common.h (flag_no_line_commands, flag_no_output,
7398         flag_dump_macros, flag_dump_includes, preprocess_file): New.
7399         (init_c_lex): Update prototype.
7400         * c-lex.c (init_c_lex): Update prototype; move some code to
7401         c_common_init.
7402         * c-opts.c (preprocess_file): Subsume into c_common_init.
7403         (c_common_decode_option): Update flags.
7404         (c_common_init): Move code from preprocess_file and init_c_lex.
7405         (sanitize_cpp_opts): Update.
7406         * c-ppoutput.c: New, cppmain.c almost verbatim.
7407         * cpphash.h (struct printer): Remove.
7408         (struct cpp_reader): Remove print.
7409         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
7410         cpp_preprocess_file): Remove.
7411         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
7412         and dump_includes.
7413         * cppmain.c: Remove.
7414         * doc/passes.texi: Update.
7415
7416 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7417
7418         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
7419         (assign_stack_local_1): Perform overall stack alignment only when
7420         STACK_ALIGNMENT_NEEDED is non-zero.
7421         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
7422
7423         * pa.c (compute_frame_size): Rename fsize to size.  Account for
7424         alignment to a word boundary before general register save block.  Only
7425         account for double-word alignment before floating point register save
7426         block if one or more are saved.  Don't allocate space for %r3 when
7427         frame pointer is needed.
7428         (hppa_expand_prologue): Include alignment to word boundary in local
7429         frame size.
7430         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
7431         (STACK_ALIGNMENT_NEEDED): Define.
7432
7433 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
7434
7435         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
7436         global register variables.
7437
7438 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
7439
7440         * reload.c (reload_adjust_reg_for_mode): New function.
7441         (subst_reloads): Call it.
7442         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
7443         * reload.h (reload_adjust_reg_for_mode): Declare.
7444         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
7445         Call it.
7446
7447 2003-03-03  James E Wilson  <wilson@tuliptree.org>
7448
7449         * optabs.c (add_equal_note): Delete SUBREG_REG use.
7450         Fixes PR c/7872.
7451
7452 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7453
7454         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
7455         (*ixorsi3_lshiftrt_16): New.
7456         (*iorsi3_ashift_16): Remove.
7457
7458 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7459
7460         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
7461         pattern.
7462
7463 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
7464
7465         * doc/install.texi (Specific): Update entry for powerpc-darwin.
7466
7467 2003-03-03  Richard Henderson  <rth@redhat.com>
7468
7469         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
7470
7471 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
7472
7473         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
7474         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
7475         (rs6000_variable_issue): Do not return negative value.
7476         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
7477         scheduling pass.
7478
7479 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7480
7481         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
7482         prune_unused_types calls.
7483
7484 2003-03-03  Jason Merrill  <jason@redhat.com>
7485
7486         * tree-inline.c (find_builtin_longjmp_call): Save and restore
7487         lineno and input_filename.
7488         (find_alloca_call): Likewise.
7489         (inlinable_function_p): Run the langhook earlier.
7490
7491         * calls.c (compute_argument_addresses): Give the new MEMs a
7492         minimum alignment of PARM_BOUNDARY.
7493
7494 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
7495
7496         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
7497         subtarget_asm_isa_spec.
7498         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
7499         (ASM_SPEC): Define as SH_ASM_SPEC.
7500         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
7501         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
7502         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
7503         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
7504
7505         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
7506         and align_jumps if not set.
7507         Force align_jumps to be at least 2.
7508         When relaxing, force align_functions to be at least the maximum of
7509         align_loops, align_jumps and 4.
7510         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
7511         (sh_loop_align): Honour align_loops_log.
7512
7513         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
7514         to check for indirect_jump_scratch.
7515         (indirect_jump_scratch): Add second set.
7516         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
7517         when looking for indirect_jump_scratch.
7518         Extract scratch register taking new structure of indirect_jump_scratch
7519         into account.
7520         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
7521
7522 2003-03-03  Jan Hubicka  <jh@suse.cz>
7523
7524         * calls.c (rtx_for_function_call): Take the address as an argument
7525         (expand_call): Do not modify the expression.
7526
7527         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
7528         optimizing.
7529
7530 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7531
7532         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
7533         TARGET_H8300H and TARGET_H8300S.
7534
7535 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7536
7537         * config/h8300/h8300.md (a peephole2): New.
7538
7539 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7540
7541         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
7542         operands[0] and operands[1] are different.
7543
7544 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
7545
7546         * reload1.c (reload_cse_move2add): Remove variable success.
7547
7548 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7549
7550         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
7551         warnings.
7552
7553 2003-03-02  Richard Henderson  <rth@redhat.com>
7554
7555         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
7556         * config.in, configure: Rebuild.
7557         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
7558         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
7559         paired ldtoffx and ldxmov annotations.
7560         (load_symptr_internal1): Remove.
7561         (load_symptr_high, load_symptr_low): New.
7562
7563 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7564
7565         * c-incpath.c (add_path): Fix sysp assignment.
7566
7567 2003-03-02  Kurt Garloff  <garloff@suse.de>
7568
7569         * params.def: Introduce parameter max-inline-insns-rtl for
7570         a separate limit for the RTL inliner.
7571         * params.h: Likewise.
7572         * integrate.c (function_cannot_inline_p): Use it.
7573         * toplev.c (decode_f_option): Set multiple parameters
7574         controlling inlining with -finline-limit.
7575         * params.def: Fix orthographic and typographic errors.
7576         * doc/invoke.texi: Document parameters controlling inlining
7577         and the way -finline-limit sets multiple of them.
7578
7579         * tree.h (struct tree_decl): Introduce inlined_function_flag,
7580         recording whether the function became eligible for inlining
7581         by a compiler flag rather than the declaration.
7582         Provide DID_INLINE_FUNC macro to access it.
7583         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
7584         * cp/decl.c (grokfndecl): Likewise.
7585         * toplev.c (rest_of_compilation): Likewise.
7586         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
7587         * print-tree.c (print_node): Report it.
7588         * params.def: Introduce new max-inline-insns-auto limit.
7589         * params.h: Likewise.
7590         * tree-inline.c (inlinable_function_p): Apply it to functions
7591         with DID_INLINE_FUNC set.
7592         * toplev.c (decode_f_option): Initialize it from -finline-limit
7593         value.
7594         * doc/invoke.texi: Document new parameter.
7595
7596 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
7597
7598         * fix-header.c (read_scan_file): Don't reference simplify_path.
7599
7600 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7601
7602         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
7603         min/max instructions by default as may result in reload errors.
7604
7605 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7606
7607         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
7608         avoid reload problems; define split for it.
7609
7610 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
7611
7612         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
7613         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
7614         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
7615         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
7616         rotatert and rotate.
7617         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
7618         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
7619         ("*rotrhi3_addr"): New split for shift insns on address register.
7620         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
7621         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
7622         (___rotrhi3): Likewise.
7623         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
7624
7625 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7626
7627         * toplev.c (aux_base_name): Moved from toplev.h.
7628         (filename): Constify.
7629         (lang_dependent_init): Don't duplicate name.
7630         (process_options): Set aux_base_name here, not...
7631         (do_compile): ...here.  Change protoype.
7632         (toplev_main): Move some code from do_compile.
7633         * toplev.h: Remove aux_base_name.
7634
7635 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7636
7637         * config/h8300/h8300-protos.h: Add a prototype for
7638         iorxor_operator.
7639         * config/h8300/h8300.c (print_operand): Handle 'c'.
7640         (iorxor_operator): New.
7641         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
7642         * config/h8300/h8300.md (*iorhi3_zext): Remove.
7643         (*iorsi3_zexthi): Likewise.
7644         (*iorsi3_zextsi): Likewise.
7645         (*xorhi3_zextqi): Likewise.
7646         (*xorsi3_zexthi): Likewise.
7647         (*xorsi3_zextsi): Likewise.
7648         (*ixorhi3_zext): New.
7649         (*ixorsi3_zext_qi): Likewise.
7650         (*ixorsi3_zext_hi): Likewise.
7651
7652 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
7653
7654         * c-incpath.c (remove_component_p, simplify_path): Move back to
7655         cppfiles.c.
7656         (remove_duplicates): Use cpp_simplify_path.
7657         * c-incpath.h (simplify_path): Remove.
7658         * c-lex.c: Don't include c-incpath.h.
7659         (init_c_lex): Remove simplify_path.
7660         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
7661         (find_or_create_entry, validate_pch): Revert.
7662
7663 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
7664
7665         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
7666           an external cpp during compilation.
7667         (option_map): Likewise.
7668         * objc/lang-specs.h (default_compilers): Similarly.
7669         * doc/invoke.texi: Document -no-integrated-cpp flag.
7670
7671 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
7672
7673         * config/h8300/h8300.md (zero_extendqisi2): Change to an
7674         expander.
7675         (*zero_extendqisi2_h8300): New.
7676         (*zero_extendqisi2_h8300hs): New.
7677         (two splitters): New.
7678
7679 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7680
7681         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
7682
7683 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7684
7685         * config/h8300/h8300.md (a peephole2): Remove dead code.
7686
7687 2003-03-01  Roger Sayle  <roger@eyesopen.com>
7688
7689         PR c++/9367
7690         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
7691         (BT_FN_INT_CONST_STRING_VALIST_ARG,
7692         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
7693         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
7694         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
7695         BT_FN_INT_STRING_CONST_STRING_VAR,
7696         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
7697         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
7698         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
7699         ATTR_NONNULL_3): Also include the nothrow attribute.
7700         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
7701         vsnprintf, vscanf, vsscanf): Don't define attributes here.
7702         * builtins.def (putchar, puts): Make full C89 built-ins.
7703         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
7704         vsscanf, vsnprintf, vsprintf): New built-ins.
7705         * c-common.c (c_common_nodes_and_builtins): Handle new macro
7706         DEF_FUNCTION_TYPE_VAR_3.
7707
7708         * doc/extend.texi: Document these new built-in functions.
7709
7710 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7711
7712         * config/h8300/h8300.md (a peephole2): New.
7713
7714 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7715
7716         * predict.c (estimate_bb_frequencies): Correctly set
7717         real_values_initialized after initialization.
7718
7719 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
7720
7721         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
7722         cppinit.o, cppdefault.o, fix-header): Update.
7723         * c-incpath.c: New file.
7724         * c-incpath.h: New file.
7725         * c-lex.c: Include c-incpath.h.
7726         (init_c_lex): Register path simplifier.
7727         * c-opts.c: Include cppdefault.h and c-incpath.h.
7728         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
7729         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
7730         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
7731         (missing_arg, c_common_decode_option): Handle them.
7732         (c_common_post_options): Register include chains.
7733         (print_help): Update.
7734         * cppdefault.h (struct default include): Update.
7735         Move some macros to ...
7736         * cppdefault.c: ... here.
7737         (cpp_include_defaults): Add extra field add_sysroot.
7738         * cppfiles.c (include_file, search_from, find_or_create_entry,
7739         cpp_included, find_include_file, remap_filename): Update for
7740         renaming of search_path to cpp_path, and of the chain headers.
7741         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
7742         * cpphash.h (struct search_path): Move to cpplib.h.
7743         (struct cpp_buffer, struct cpp_reader): Update.
7744         (_cpp_simplify_pathname): Remove.
7745         * cppinit.c: Don't include prefix.h and cppdefault.h.
7746         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
7747         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
7748         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
7749         no_pth, cpp_handle_options): Remove.
7750         (struct pending_option): Remove chain members.
7751         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
7752         cpp_handle_option): Update.
7753         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
7754         (struct cpp_options): Remove quote_include, bracket_include,
7755         include_prefix, include_prefix_len, verbose, ignore_srcdir,
7756         no_standard_includes, no_standard_cplusplus_includes.
7757         (struct cpp_callbacks): Add simplify_path.
7758         (cpp_handle_options): Remove.
7759         * fix-header.c: Include c-incpath.h.
7760         (read_scan_file): Update to use c-incpath functionality.
7761         * doc/passes.texi: Update.
7762
7763 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7764
7765         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
7766         satisfies EXTRA_CONSTRAINT 'U'.
7767
7768 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
7769
7770         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
7771         register.
7772         (*tst_extzv_memqi_1_n): Change to a splitter.
7773         (a peephole2): Update.
7774
7775 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
7776
7777         * predict.c (estimate_bb_frequencies): Initialize the sreal
7778         constants once per compilation.
7779
7780 2003-02-28  Richard Henderson  <rth@redhat.com>
7781
7782         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
7783
7784 2003-02-28  scott snyder  <snyder@fnal.gov>
7785
7786         * flags.h: Add flag_eliminate_unused_debug_types.
7787         * toplev.c: Add flag_eliminate_unused_debug_types.
7788         (f_options): Add -feliminate-unused-debug-types.
7789         * dwarf2out.c (struct file_table): Add emitted member.
7790         (splice_child_die): Fix the parent pointer for the child being
7791         spliced.
7792         (lookup_filename): Maintain file_table.emitted array.  Don't
7793         output .file directive here.
7794         (maybe_emit_file): (new)
7795         (init_file_table): Set up file_table.emitted.
7796         (dwarf2out_source_line): Use maybe_emit_file.
7797         (dwarf2out_start_source_file): Use maybe_emit_file.
7798         (dwarf2out_init): Use maybe_emit_file.
7799         (prune_unused_types_walk_attribs): (new)
7800         (prune_unused_types_mark): (new)
7801         (prune_unused_types_walk): (new)
7802         (prune_unused_types_prune): (new)
7803         (prune_unused_types): (new)
7804         (dwarf2out_finish): Call prune_unused_types if
7805         flag_eliminate_unused_debug_types is set.
7806         * doc/invoke.texi (Option Summary): Add
7807         -feliminate-unused-debug-types.
7808         (Debugging Options): Likewise.
7809
7810 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
7811
7812         * doc/invoke.texi: Change .pch to .gch.
7813         * cppfiles.c (open_file_pch): Likewise.
7814         * gcc.c (default_compilers): Likewise.
7815
7816 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
7817
7818         * floatlib.c: Remove.
7819
7820 2003-02-28  Jason Merrill  <jason@redhat.com>
7821
7822         * stor-layout.c (variable_size): Leave a "minus 1" outside the
7823         SAVE_EXPR.
7824
7825 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
7826
7827         * config/rs6000/power4.md: Add compare bypass.
7828
7829 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
7830
7831         * config/netbsd.h: Update copyright years.
7832         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
7833         -pthread is specified on the command line.
7834
7835 2003-02-28  Dale Johannesen <dalej@apple.com>
7836
7837         * loop.c (struct movable): Add insert_temp, shrink savemode.
7838         (scan_loop): Accept invariants that require copying; mark as
7839         insert_temp.
7840         (combine_movables): Don't combine insert_temp movables.
7841         (move_movables): Insert copies for insert_temp movables.
7842         Don't record the info based on regno for insert_temp's.
7843
7844 2003-02-28  Joel Sherrill <joel@OARcorp.com>
7845
7846         PR 9638/other
7847         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
7848         this constant defaults to 1.
7849
7850 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
7851
7852         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
7853
7854 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
7855
7856         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
7857         ARMv5e processor, not just for XScale.  Instructions are predicable.
7858         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
7859
7860 2003-02-28  Nick Clifton  <nickc@redhat.com>
7861
7862         * config/arm/arm.c (note_invalid_constants): Change parameter type
7863         from bool to int.
7864
7865 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
7866
7867         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
7868         test of bit 7.
7869         (*tst_extzv_memqi_1_n): Likewise.
7870         (a peephole2): New.
7871
7872 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
7873
7874         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
7875         #ifndef __mips16.
7876
7877 2003-02-28  Jan Hubicka  <jh@suse.cz>
7878
7879         * combine.c (gen_lowpart_for_combine): Update handling of
7880         subregs_of_mode
7881         * flow.c (life_analysis, mark_used_regs): Likewise.
7882         * regclass.c (subregs_of_mode): Turn into single bitmap.
7883         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
7884         dealing with subregs_of_mode
7885         * regs.h (subregs_of_mode): Update prototype.
7886
7887 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
7888
7889         * emit-rtl.c (set_reg_attrs_for_parm): New function.
7890         * rtl.h (set_reg_attrs_for_parm): New exported function.
7891         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
7892         set_reg_attrs_from_mem.
7893
7894 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7895             Zack Weinberg <zack@codesourcery.com>
7896
7897         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
7898
7899 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
7900
7901         * reload1.c (sext_for_mode): Remove.
7902         (reload_cse_move2add): Use trunc_int_for_mode instead of
7903         sext_for_mode.
7904         (move2add_note_store): Likewise.
7905         Reset register information if we see a set in non-integer
7906         mode.
7907
7908 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
7909
7910         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
7911         option.
7912         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
7913         * config/rs6000/aix51.h: Same.
7914         * config/rs6000/aix52.h: Same.
7915         * config/rs6000/power4.md: Additional VMX bypasses.
7916
7917 2003-02-27   Geert Bosch <bosch@gnat.com>
7918
7919         * toplev.c (print_version): Add indentation for GGC heuristics and
7920         output after printing version information.
7921
7922 2003-02-27  James E Wilson  <wilson@tuliptree.org>
7923
7924         * combine.c (simplify_comparison): Require integral mode when
7925         permuting SUBREG with AND.
7926
7927 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
7928
7929         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
7930
7931 2003-02-27  Nick Clifton  <nickc@redhat.com>
7932
7933         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
7934         deleted when cirrus instructions were added.
7935
7936 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
7937
7938         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
7939         POSIX thread support by default.
7940
7941 2003-02-27  Roger Sayle  <roger@eyesopen.com>
7942
7943         * config/i386/cygwin.h: Don't include any other files directly.
7944         * config/i386/mingw32.h: Don't include cygwin.h directly.
7945         * config.gcc (cygwin, mingw32, uwin): Instead make these files
7946         explicit in the tm_files variable.
7947
7948 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
7949
7950         * config/rs6000/rs6000.md: Add TI constant splitter.
7951
7952 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
7953
7954         * builtins.c (purge_builtin_constant_p): Handle subreg of
7955         constant_p_rtx too.
7956
7957         * function.c (assign_stack_local_1): Truncate constant added to
7958         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
7959
7960 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
7961
7962         * config.gcc: Add power4 to PowerPC with_cpu list.
7963
7964 2003-02-26  Jan Hubicka  <jh@suse.cz>
7965
7966         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
7967
7968 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7969
7970         * gcov-dump.c (print_prefix): Fix signedness warning.
7971         * gcov-io.h (struct counter_section, struct counter_section_data): New.
7972         (struct function_info): n_arc_counts field removed, n_counter_sections,
7973         counter_sections fields added.
7974         (struct gcov_info): arc_counts, n_arc_counts fields removed,
7975         n_counter_sections, counter_sections fields added.
7976         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
7977         profile sections.
7978         * profile.h (MAX_COUNTER_SECTIONS): New.
7979         (struct section_info): New.
7980         (struct profile_info): count_instrumented_edges,
7981         count_edges_instrumented_now fields removed, n_sections, section_info
7982         fields added.
7983         (find_counters_section): Declare.
7984         * profile.c (struct function_list): count_edges field removed,
7985         n_counter_sections, counter_sections fields added.
7986         (set_purpose, label_for_tag, build_counter_section_fields,
7987         build_counter_section_value, build_counter_section_data_fields,
7988         build_counter_section_data_value, build_function_info_fields,
7989         build_function_info_value, build_gcov_info_fields,
7990         build_gcov_info_value): New static functions.
7991         (find_counters_section): New function.
7992         (instrument_edges, get_exec_counts, compute_branch_probabilities,
7993         branch_prob, create_profiler): Modified to support multiple profile
7994         sections.
7995
7996 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7997
7998         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
7999         is 8 * STACK_BOUNDARY.
8000         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
8001
8002 2003-02-26  Michael Matz  <matz@suse.de>
8003
8004         * ra-colorize.c (merge_moves): Fix list handling.
8005
8006 2003-02-26  Nick Clifton  <nickc@redhat.com>
8007
8008         * config/arm/arm.c (is_load_address): Rename to...
8009         (arm_memory_load_p) ... this and make it check for SUBREGs and
8010         constant loads that will be converted into loads from the
8011         minipool.
8012         (is_cirrus_insn): Rename to ...
8013         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
8014         of CIRRUS_NO with CIRRUS_NOT.
8015         (cirrus_reorg): Use renamed functions.
8016         (note_invalid_constants): Change from a void function to bool.
8017         Add an extra parameter, saying whether the fixups should be
8018         pushed.  Return true if fixups are needed.
8019         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
8020         of CIRRUS_NO with CIRRUS_NOT.
8021         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
8022         other floating point co-processors can also affect this.
8023         * config/arm/arm.md ("type" attribute): Add mav_farith and
8024         mav_dmult.  Replace references to "cirrus_type" attribute with
8025         "type".
8026         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
8027         ("cirrus_type" attribute): Delete - use "type" instead.
8028         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
8029         'normal'.
8030
8031 2003-02-25  Jan Hubicka  <jh@suse.cz>
8032
8033         * objc-act.c: Include cgraph.h
8034         (mark_referenced_methods): New function.
8035         (objc_init): Call it.
8036         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
8037
8038         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
8039         mode.
8040
8041         * optabs.c (expand_fix): Do not widen the input operand.
8042
8043         * expr.c (emit_group_store):  Fix crash when converting single
8044         register into complex register.
8045
8046         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
8047         * alias.c: Include timevar.h
8048         (init_alias_analysis):  Set timevar
8049         * jump.c: Include timevar.h
8050         (rebuild_jump_labels):  Set timevar
8051         * regcalss.c: Include timevar.h
8052         (reg_scan):  Set timevar
8053         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
8054
8055 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8056
8057         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
8058
8059         * Makefile.in (loop-unroll.o): New.
8060         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
8061         (unroll_and_peel_loops): Declare.
8062         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
8063         flag_old_unroll_loops.
8064         * loop.c (loop_invariant_p): Ditto.
8065         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
8066         flag_old_unroll_all_loops.
8067         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
8068         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
8069         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
8070         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
8071         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
8072         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
8073         PARAM_MAX_ONCE_PEELED_INSNS): New.
8074         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
8075         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
8076         instead of old one.
8077         (flag_peel_loops): New.
8078         (lang_independent_options): The new flags added.
8079         (rest_of_compilation): Call new unroller.
8080         (process_options): Setup flags for coexistence of old and new unroller.
8081         * doc/invoke.texi: Document new options.
8082         * doc/passes.texi: Document new unroller pass.
8083
8084 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
8085
8086         * fixinc/fixincl.x: Regenerate
8087
8088 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
8089
8090         * function.c (assign_parms): Set reg_attrs for parameters passed in
8091         registers.
8092
8093 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
8094
8095         PR target/9681
8096         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
8097
8098 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
8099
8100         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
8101         pseudo-op.
8102
8103 2003-02-25  Roger Sayle  <roger@eyesopen.com>
8104
8105         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
8106         * cse.c (invalidate_skipped_set):  Likewise.
8107         * integrate.c (subst_constants):  Likewise.
8108         * jump.c (reversed_comparison_code_parts):  Likewise.
8109         * loop.c (canonicalize_condition):  Likewise.
8110         * simplify-rtx.c (simplify_relational_operation):  Likewise.
8111
8112 2003-02-25  Roger Sayle  <roger@eyesopen.com>
8113
8114         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
8115         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
8116         the appropriate macro to define built-in function.
8117         (fmod,fmodf,fmodl): New built-in functions.
8118
8119         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
8120
8121 2003-02-25  Richard Henderson  <rth@redhat.com>
8122
8123         * config/i386/i386.c (function_arg): Pass variable sized
8124         structures correctly on the stack.
8125
8126 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
8127
8128         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
8129         does not reduce the cost of SET.
8130
8131 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8132
8133         PR target/9732
8134         * config/rs6000/rs6000.c (first_reg_to_save): Handle
8135         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
8136         (rs6000_emit_prologue): Likewise.
8137         (rs6000_emit_epilogue): Likewise.
8138         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
8139         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
8140
8141 2003-02-25  Richard Henderson  <rth@redhat.com>
8142
8143         * real.c (real_to_integer2): Force overflow result only for
8144         unsigned overflow.
8145
8146 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
8147
8148         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
8149
8150 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
8151             Richard Henderson  <rth@redhat.com>
8152
8153         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
8154         there is no similar load.
8155
8156 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
8157             Richard Henderson  <rth@redhat.com>
8158
8159         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
8160         sched-rgn.c.
8161         (add_forward_dependence): New function prototype.
8162
8163         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
8164         sched-init.h.
8165         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
8166         them to haifa-sched.c.
8167
8168         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
8169         haifa_classify_insn): Move them from sched-rgn.c.
8170
8171         * sched-deps.c (add_dependence): Return flag of creating a new
8172         entry.
8173         (add_forward_dependence): New function.
8174         (compute_forward_dependences): Use the function.
8175
8176         * sched-ebb.c (earliest_block_with_similiar_load): New function.
8177         (add_deps_for_risky_insns): New function.
8178         (schedule_ebb): Call the function.
8179
8180 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
8181
8182         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
8183         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
8184
8185         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
8186         opaque types fail.
8187
8188         * c-typeck.c (comptypes): Change call to vector_types_compatible
8189         to vector_opaque_p.
8190         (convert_for_assignment): Call vector_opaque_p instead of
8191         vector_types_compatible.
8192         (really_start_incremental_init): Disallow initialization of opaque
8193         types.
8194
8195         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
8196         Define TARGET_VECTOR_OPAQUE_P.
8197         (TARGET_INITIALIZER): Same.
8198
8199         * target.h (struct gcc_target): Remove vector_types_compatible.
8200         Add vector_opaque_p.
8201
8202         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
8203         Remove.
8204         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
8205         a vector type.  Change return type to bool.
8206         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
8207         (TARGET_VECTOR_OPAQUE_P): Define.
8208
8209         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
8210         target hook.
8211         Include target.h.
8212         (cp_parser_init_declarator): Fix typo in function comments.
8213
8214 2003-02-25  Jan Hubicka  <jh@suse.cz>
8215
8216         * Makefile.in (lcm.o):  Add dependency on function.h
8217         * lcm.c (function.h): Include.
8218         * i386.c (machine_function, ix86_stack_locals,
8219         * ix86_save_varrargs_registers) : Move to
8220         ...
8221         * i386.h (machine_function, ix86_stack_locals,
8222         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
8223         (ix86_optimize_mode_switching): New.
8224         * i386.md (fix patterns): Set ix86_optimize_mode_switching
8225
8226 2003-02-25  Nick Clifton  <nickc@redhat.com>
8227
8228         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
8229         of fourth arg is 'fndecl' not 'indirect'.  Update comment
8230         describing the function's parameters.
8231
8232 2003-02-24  Jan Hubicka  <jh@suse.cz>
8233
8234         * combine.c (simplify_shift_const):  Fix previous patch.
8235
8236 2003-02-24  Jeff Law  <law@redhat.com>
8237
8238         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
8239         alternative.
8240         (testsi_1, testhi_1, testqi_1): Likewise.
8241
8242 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8243
8244         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
8245         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
8246         * doc/extend.texi (Tru64 Pragmas): Reflect this.
8247
8248         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
8249         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
8250         * fixinc/fixincl.x: Regenerate.
8251         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
8252         testcase.
8253         Fixes PR c/5059, c/6126, other/9671.
8254
8255 2003-02-24  Roger Sayle  <roger@eyesopen.com>
8256
8257         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
8258         from handle_braces in "%{...}".
8259
8260 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
8261
8262         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
8263         (prepare_move_operands): Handle TLS operands.
8264         (tls_symbolic_operand): New.
8265         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
8266         (legitimize_pic_address): Do nothing for the TLS symbol.
8267         (sh_encode_section_info): Handle TLS case.
8268         (sh_strip_name_encoding): Drop TLS encoding.
8269         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
8270         * config/sh/sh.h (SH_TLS_ENCODING): Define.
8271         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
8272         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
8273         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
8274         * config/sh/sh.md: Define TLS UNSPEC constants.
8275         (type): Add tls_load.
8276         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
8277         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
8278         ("tls_initial_exec"): New insn.
8279         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
8280         ("load_gbr"): New insn.
8281
8282         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
8283         * configure: Regenerate.
8284
8285 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
8286
8287         PR 9297, PR 9722
8288         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
8289         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
8290         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
8291         (enum block_op_methods): Reorder for better store_expr optimization.
8292         * expr.c (store_expr): Test bit 1 of "want_value" for call param
8293         stores, test bit 0 for original want_value meaning.  Pass
8294         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
8295         recursive calls, and calls to expand_param.
8296         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
8297         expected, set target to 0 rather than to subtarget.  Formatting.
8298
8299 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
8300
8301         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
8302
8303 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8304
8305         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
8306         new default behavior.
8307         * ggc-common.c: Include sys/resource.h.
8308         (ggc_rlimit_bound): New function.
8309         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
8310         defaults to account for rlimits.
8311
8312 2003-02-22  Richard Henderson  <rth@redhat.com>
8313
8314         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
8315
8316 2003-02-22  Kelley Cook <kelley@dwhoops.info>
8317
8318         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
8319         (ix86_tune_string): Rename from ix86_cpu_string.
8320
8321 2003-02-22  Kelley Cook <kelleycook@comcast.net>
8322
8323         * config/i386/i386.c: Replace "mcpu" with "mtune".
8324         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
8325         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
8326         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
8327         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
8328
8329 2003-02-23  Andreas Schwab  <schwab@suse.de>
8330
8331         * config.gcc: Delete references to m68k/t-linux and
8332         m68k/t-linux-aout.
8333         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
8334
8335 2003-02-22  Jan Hubicka  <jh@suse.cz>
8336
8337         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
8338         of track scheduling patch.
8339
8340 2003-02-22  Jan Hubicka  <jh@suse.cz>
8341
8342         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
8343         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
8344
8345 2003-02-22  Jan Hubicka  <jh@suse.cz>
8346
8347         * c-decl.c (c_expand_body_1): Fix.
8348
8349 2003-02-22  Jan Hubicka  <jh@suse.cz>
8350
8351         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
8352
8353         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
8354         when not optimizing.
8355         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
8356         when not expensive.
8357         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
8358         optimizing;  Delete trivially dead insns early; fix optimize check.
8359
8360         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
8361         dependency on cgraph.h
8362         * c-decl.c: Include cgraph.h
8363         (finish_function): Update call of tree_inlinable_function_p.
8364         * c-objc-common.c: Include cgraph.h
8365         * cgraph.h: New file.
8366         * cgraphunit.c: New file.
8367         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
8368         (cgraph_nodes, cgraph_n_nodes): Globalize.
8369         (cgraph_finalize_function, cgraph_finalize_compilation_unit
8370         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
8371         Move into cgraphunit.c
8372         * tree-inline.c: Include cgraph.h
8373         * tree-inline.c: Include cgraph.h
8374
8375 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
8376
8377         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
8378         for copying a register.
8379
8380 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
8381
8382         PR other/3782
8383         * toplev.c (process_options): If flag_detailed_statistics is set,
8384         then set time_report as well.
8385
8386         PR c/8828
8387         * jump.c (never_reached_warning): Don't fall through BARRRIER
8388         insns.  Update comments to reflect what the function really does.
8389
8390 2003-02-21  Roger Sayle  <roger@eyesopen.com>
8391
8392         * fold-const.c (omit_one_operand): No longer static.
8393         * tree.h (omit_one_operand): Prototype here.
8394         (div_and_round_double): Keep fold-const.c prototypes together.
8395         * builtins.c (builtin_mathfn_code): Handle binary built-in
8396         funtions, such as "pow" and "atan2".
8397         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
8398         Simplify optimizations using "type" the builtin's return type.
8399
8400 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
8401
8402         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
8403         Fix functionalization typo.
8404
8405         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
8406         in an asm.
8407
8408 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8409
8410         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
8411         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
8412         documentation.
8413         * ggc-common.c: Include params.h
8414         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
8415         init_ggc_heuristics): New functions.
8416         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
8417         init_ggc_heuristics): Prototype.
8418         * toplev.c (print_version):  Output GGC heuristics.
8419         (parse_options_and_default_flags): Call init_ggc_heuristics.
8420
8421 2003-02-22  Jan Hubicka  <jh@suse.cz>
8422
8423         * i386.c (def_builtin):  Special case 64bit builtins.
8424         (MASK_SSE164, MASK_SSE264): New constants.
8425         (builtin_description): Add 64bit builtins.
8426         (ix86_init_mmx_sse_builtins): Likewise.
8427         * i386.h (enum ix86_builtins): Likewise.
8428         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
8429         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
8430         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
8431         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
8432         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
8433         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
8434         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
8435
8436 2003-02-22  Jan Hubicka  <jh@suse.cz>
8437
8438         * i386.c (builtin_description): Add __builtin_ia32_paddq and
8439         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
8440          and __builtin_ia32_psubq128.
8441         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
8442         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
8443         (mmx_adddi3, mmx_subdi3): New.
8444         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
8445         * xmmintrin.h (_mm_movepi64_pi64): New.
8446         (_mm_add_epi64, _mm_sub_epi64): fix.
8447         (_mm_mul_pu16): Rename to...
8448         (_mm_mul_su32): ... this one.
8449
8450         * builtins.c (expand_builtin_expect):  Do not predict
8451         flag_guess_branch_prob is not set.
8452         * c-semantics.c (expand_stmt): Likewise.
8453         * predict.c (predict_insn): Likewise.
8454         * stmt.c (expand_continue_loop): Likewise.
8455         * toplev.c (rest_of_compilation): Do not call
8456         note_prediction_to_br_prob and note_prediction_to_br_prob
8457         when not optimizing.
8458
8459 2003-02-21  Jan Hubicka  <jh@suse.cz>
8460
8461         * cfgrtl.c (commit_edge_insertions):  Call
8462         find_many_sub_basic_block only when some code has been emitted.
8463         (commit_edge_insertions_watch_calls): Bring into sync with
8464         commit_edge_insertions
8465
8466 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
8467
8468         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
8469
8470         * sh.md (binary_sf_op): Use extra constant operand instead of
8471         negating constant operand 4.
8472         * sh.c (sh_expand_binop_v2sf): Supply it.
8473
8474 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
8475
8476         * cpphash.h (struct lexer_state): Add directive_wants_padding.
8477         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
8478         for directives of type INCL.
8479         (glue_header_name, parse_include): Use get_token_no_padding.
8480         * cppmacro.c (replace_args): If directive_wants_padding,
8481         provide padding tokens.
8482
8483 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
8484
8485         * config/h8300/h8300.md (a peephole2): New.
8486
8487 2003-02-21  Jan Hubicka  <jh@suse.cz>
8488
8489         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
8490         (commit_edge_insertions): Call find_many_sub_basic_blocks
8491
8492         * reg-stack.c (convert_regs): Cleax aux for blocks.
8493
8494 2003-02-21  Jan Hubicka  <jh@suse.cz>
8495
8496         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
8497
8498 2003-02-21  Glen Nakamura  <glen@imodulo.com>
8499
8500         PR optimization/8613
8501         * builtins.c (expand_builtin): Emit postincrements before expanding
8502         builtin functions.
8503
8504 2003-02-21  Ben Elliston  <bje@redhat.com>
8505
8506         PR other/5634
8507         * doc/install.texi (Configuration): Explain using $HOME instead of
8508         the ~ metacharacter when referring to home directories.
8509
8510 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
8511
8512         * configure.in (TARGET_SYSTEM_ROOT): Set default to
8513         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
8514         '${exec_prefix}' (in addition to the expansion thereof) as
8515         relocatable.
8516         * configure: Rebuilt.
8517
8518 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8519
8520         * config/h8300/h8300.md (addhi3_incdec): Change the name to
8521         *addhi3_incdec.
8522         (addsi3_incdec): Change the name to *addsi3_incdec.
8523
8524 2003-02-20  Roger Sayle  <roger@eyesopen.com>
8525
8526         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
8527
8528 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
8529
8530         PR fortran/9038
8531         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
8532         options to be ignored.
8533         (c_common_decode_option): Ignore them when preprocessing.
8534
8535 2003-02-20  Jan Hubicka  <jh@suse.cz>
8536
8537         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
8538         global variables.
8539         (lang_independent_options):  Add -fsched2-use-superblocks
8540         -fsced2-use-traces.
8541         (rest_of_compilation): Deal with it.
8542         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
8543         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
8544         Declare.
8545         * rtl.h (reg_to_stack):  Update prototype.
8546         * reg-stack.c (reg_to_stack): Return when something has changed;
8547         update liveness when executing after superblock scheduling.
8548
8549         * combine.c (simplify_shift_const):  Simplify few special cases
8550         into constants.
8551
8552 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
8553
8554         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
8555         (add.,subf.,neg.): Change attribute to fast_compare.
8556         All DFA descriptions updated.
8557
8558 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
8559
8560         Change base class access representation.
8561         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
8562         TREE_VIA_PRIVATE): Remove.
8563         (BINFO_BASEACCESSES): New binfo elt.
8564         (BINFO_BASEACCESS): New accessor.
8565         (BINFO_ELTS): Increase.
8566         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
8567         (access_public_node, access_protected_node,
8568         access_private_node): New global nodes.
8569         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
8570         * dbxout.c (dbxout_type): Adjust.
8571         * dwarf2out.c (gen_inheritance_die): Add access parameter.
8572         (gen_member_die): Adjust.
8573         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
8574         (output_type): Adjust.
8575         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
8576
8577         Change base class access representation. Share virtual base
8578         binfos.
8579         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
8580         call.
8581         * cp/class.c (build_base_path): Likewise.
8582         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
8583         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
8584         (make_new_vtable): Adjust.
8585         (force_canonical_binfo_r): Delete.
8586         (force_canonical_binfo): Delete.
8587         (mark_primary_virtual_base): Delete.
8588         (dfs_unshared_virtual_bases): Delete.
8589         (mark_primary_bases): Adjust.
8590         (maybe_warn_about_overly_private_class): Adjust.
8591         (dfs_base_derived_from): Delete.
8592         (base_derived_from): Follow the inheritance chain.
8593         (struct find_final_overrider_data): Add vpath member.
8594         (dfs_find_final_overrider): Adjust.
8595         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
8596         (find_final_overrider): Adjust.
8597         (update_vtable_entry_for_fn): Adjust.
8598         (modify_all_vtables): Adjust.
8599         (walk_subobject_offsets): Adjust.
8600         (layout_nonempty_base_or_field): Adjust.
8601         (layout_empty_base): Remove last parameter. Adjust.
8602         (build_base_field): Adjust.
8603         (build_base_fields): Adjust.
8604         (propagate_binfo_offsets): Remove last parameter. Adjust.
8605         (dfs_set_offset_for_unshared_vbases): Delete.
8606         (layout_virtual_bases): Adjust.
8607         (finish_struct_1): Adjust.
8608         (init_class_processing): Don't init access nodes.
8609         (dfs_get_primary_binfo): Delete.
8610         (get_primary_binfo): Adjust.
8611         (dump_class_hierarchy_r): Remove most derived arg, add IGO
8612         parameter. Adjust.
8613         (dump_class_hierarchy): Adjust.
8614         (finish_vtbls): Adjust.
8615         (get_original_base): Delete.
8616         (build_vtt_inits): Adjust.
8617         (dfs_build_secondary_vptr_vtt_inits): Adjust.
8618         (dfs_ctor_vtable_bases_queue_p): Adjust.
8619         (build_ctor_vtbl_group): Adjust.
8620         (dfs_accumulate_vtbl_inits): Adjust.
8621         (build_vtbl_initializer): Adjust.
8622         (build_vbase_offset_vtbl_entries): Adjust.
8623         (add_vcall_offset_vtbl_entries_1): Adjust.
8624         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
8625         (access_*_node): Remove.
8626         (CANONICAL_BINFO): Delete.
8627         (BINFO_UNSHARED_MARKED): Remove.
8628         (BINFO_MARKED): Set LANG_FLAG_0 directly.
8629         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
8630         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
8631         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
8632         Delete.
8633         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
8634         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
8635         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
8636         Delete.
8637         (BINFO_DEPENDENT_BASE_P): New.
8638         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
8639         index.
8640         (markedp, unmarkedp): Adjust.
8641         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
8642         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
8643         find_vbase_instance, binfo_for_vbase): Delete.
8644         (copied_binfo, original_binfo): Declare.
8645         (finish_base_specifier): Add virtual_p arg.
8646         (unshare_base_binfos): Delete.
8647         (copy_base_binfos): Declare.
8648         (reverse_path): Delete.
8649         * cp/decl.c (xref_basetypes): Access and virtuality passed
8650         differently. Don't copy direct base binfos here. Call
8651         copy_base_binfos.
8652         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
8653         (initialize_vtbl_ptrs): Adjust.
8654         (expand_member_init): Adjust.
8655         * cp/parser.c (cp_parser_base_specifier): Adjust.
8656         * cp/pt.c (instantiate_class_template): Adjust.
8657         (get_template_base_recursive): Adjust.
8658         * cp/rtti.c (get_pseudo_ti_init): Adjust.
8659         (get_pseudo_ti_desc): Adjust.
8660         * cp/tree.c (unshare_base_binfos): Rename to ...
8661         (copy_base_binfos): ... here, reimplement.
8662         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
8663         (reverse_path): Remove.
8664         * cp/typeck.c (get_delta_difference): Adjust error messages.
8665         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
8666         * cp/search.c (lookup_base_r): Adjust.
8667         (dynamic_cast_base_recurse): Adjust.
8668         (canonical_binfo): Remove.
8669         (dfs_canonical_queue): Remove.
8670         (dfs_assert_unmarked_p): Remove.
8671         (assert_canonical_unmarked): Remove.
8672         (shared_marked_p, shared_unmarked_p): Remove.
8673         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
8674         (dfs_access_in_type): Adjust.
8675         (access_in_type): Adjust.
8676         (dfs_accessible_queue_p): Adjust.
8677         (dfs_accessible_p): Adjust.
8678         (is_subobject_of_p_1, is_subobject_of_p): Remove.
8679         (struct lookup_field_info): Remove from_dep_base_p field.
8680         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
8681         (lookup_field_r): Remove dependent base code.
8682         (lookup_member): Likewise.
8683         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
8684         (dfs_unmarked_real_bases_queue_p): Remove.
8685         (dfs_marked_real_bases_queue_p): Remove.
8686         (dfs_skip_vbases): Remove.
8687         (dfs_get_pure_virtuals): Adjust.
8688         (markedp, unmarkedp): Adjust.
8689         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
8690         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
8691         (dfs_unmark): Adjust.
8692         (dfs_get_vbase_types):Remove.
8693         (dfs_build_inheritance_graph_order): Remove.
8694         (get_vbase_types): Remove
8695         (dfs_find_vbase_instance): Remove.
8696         (find_vbase_instance): Remove.
8697         (dfs_debug_unmarkedp): Adjust.
8698         (dependent_base_p): Remove.
8699         (dfs_push_type_decls): Adjust.
8700         (dfs_push_decls): Adjust.
8701         (dfs_no_overlap_yet): Adjust.
8702         (copied_binfo): New function.
8703         (original_binfo): New function.
8704         (binfo_for_vbase): Remove.
8705
8706         Change base class access representation.
8707         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
8708         (add_interface_do): Likewise.
8709
8710 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
8711
8712         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
8713         * config/rs6000/power4.md (power4-store,power4-vecstore): New
8714         insn reservations.
8715         (power4-fpstore): Compact.
8716
8717 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
8718
8719         * config/h8300/h8300.md (*iorsi3_w): New.
8720
8721 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8722
8723         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
8724         * rtl.c (reg_note_name): Likewise.
8725         * rtl.h (enum reg_note): Likewise.
8726         * doc/invoke.texi: Likewise.
8727         * doc/rtl.texi: Likewise.
8728
8729 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
8730
8731         * bb-reorder.c (find_traces_1_round): Fix comment typo.
8732
8733 2003-02-19  Roger Sayle  <roger@eyesopen.com>
8734
8735         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
8736         addition in the presence of signaling NaNs.
8737
8738 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
8739
8740         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
8741
8742 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
8745         ORing with 0xffff??00 with the highest bit of the ?? part set.
8746         (compute_logical_op_length): Update.
8747         (compute_logical_op_cc): Likewise.
8748
8749 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
8750
8751         * bb-reorder.c (find_traces_1_round): Fixed condition for small
8752         destination block with multiple predecessors.
8753         (connect_traces): Check whether the block is a start of trace.
8754
8755 2003-02-19  Jan Hubicka  <jh@suse.cz>
8756
8757         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
8758         * function.c (assign_params): Likewise.
8759         * arm-protos.h (arm_init_cumulative_args): Update prototype.
8760         * arm.c (arm_init_cumulative_args): Update function.
8761         * arm.h (INIT_CUMULATIVE_ARGS): Update.
8762         * avr-protos.h (init_cumulative_args): Update prototype.
8763         * avr.c (init_cumulative_args): Update function.
8764         * avr.h (INIT_CUMULATIVE_ARGS): Update.
8765         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
8766         * d30v.c (d30v_init_cumulative_args): Update function.
8767         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
8768         * frv-protos.h (frv_init_cumulative_args): Update prototype.
8769         * frv.c (frv_init_cumulative_args): Update function.
8770         * frv.h (INIT_CUMULATIVE_ARGS): Update.
8771         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
8772         * pa.h (INIT_CUMULATIVE_ARGS): Update.
8773         * sparc-protos.h (init_cumulative_args): Update prototype.
8774         * sparc.c (init_cumulative_args): Update function.
8775         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
8776         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
8777
8778 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8779
8780         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
8781         (*ashiftsi_sextqi_7): Likewise.
8782
8783 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8784
8785         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
8786         ISO C99 and C++.
8787
8788         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
8789         for C++ on IRIX 6.5.1[89].
8790         * fixinc/tests/base/internal/sgimacros.h: New file.
8791
8792         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
8793         * fixinc/tests/base/internal/wchar_core.h: New file.
8794
8795         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
8796         socklen_t definition.
8797         * fixinc/fixincl.x: Regenerate.
8798         * fixinc/tests/base/sys/socket.h: New file.
8799         Fixes PR libgcj/9652.
8800
8801 2003-02-19  Jan Hubicka  <jh@suse.cz>
8802
8803         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
8804
8805 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
8806
8807         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
8808         align_jumps_max_skip and align_loops_max_skip.
8809
8810 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
8811
8812         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
8813         test size if named section.
8814
8815 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
8816
8817         * expr.c (expand_expr): Use gen_int_mode for the argument
8818         to gen_rtx_MULT.
8819
8820 2003-02-19  Jan Hubicka  <jh@suse.cz>
8821
8822         * i386.md (cosxf2):  Fix conditional.
8823
8824 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8825
8826         * config/h8300/h8300.md (extendqisi2): Change to an expander.
8827         (*extendqisi2_h8300): New.
8828         (*extendqisi2_h8300hs): Likewise.
8829
8830 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
8831
8832         * config/h8300/h8300-protos.h: Update the prototype for
8833         split_adds_subs.  Remove the prototypes for
8834         const_int_le_2_operand and const_int_le_6_operand.
8835         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
8836         (const_int_le_2_operand): Remove.
8837         (const_int_le_6_operand): Likewise.
8838         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
8839         for const_int_le_2_operand and const_int_le_6_operand.
8840         * config/h8300/h8300.md: Update all uses of split_adds_subs.
8841         (a peephole2): New.
8842
8843 2003-02-18  Jan Hubicka  <jh@suse.cz>
8844
8845         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
8846         (cgraph_expand_function): Rewrite.
8847
8848 2003-02-18  Matt Austern <austern@apple.com>
8849
8850         * toplev.c, langhooks.c, langhooks-def.h: Move
8851         write_global_declarations from toplev.c to langhooks.c.
8852
8853 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8854
8855         * config/h8300/h8300.c (general_operand_src): Always check
8856         MODE.
8857         (general_operand_dst): Likewise.
8858
8859 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8860
8861         * convert.c (convert_to_real): Also optimize (float)log(x) into
8862         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
8863
8864 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
8865
8866         * config/sh/sh.c (unspec_caller_rtx_p): New.
8867         (sh_cannot_copy_insn_p): New.
8868         (TARGET_CANNOT_COPY_INSN_P): New.
8869
8870 2003-02-18  Richard Henderson  <rth@redhat.com>
8871
8872         * c-common.c (handle_used_attribute): Accept static data too.
8873
8874 2003-02-18  Nick Clifton  <nickc@redhat.com>
8875             Aldy Hernandez  <aldyh@redhat.com>
8876
8877         * testsuite/gcc.dg/20030218-1.c: New.
8878
8879         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
8880
8881         * target-def.h (TARGET_INITIALIZER): Add
8882         TARGET_VECTOR_TYPES_COMPATIBLE.
8883         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
8884
8885         * target.h (struct gcc_target): Add field vector_types_compatible.
8886
8887         * c-typeck.c (comptypes): Take into account
8888         TARGET_VECTOR_TYPES_COMPATIBLE.
8889         (convert_for_assignment): Same.
8890
8891         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
8892         (rs6000_spe_vector_types_compatible): New.
8893         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
8894
8895 2003-02-19  Andreas Schwab  <schwab@suse.de>
8896
8897         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
8898         * toplev.c: Include langhooks-def.h.
8899
8900 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
8901
8902         * config/mips/mips.h (enum processor_type): Sort entries
8903         alphabetically.
8904         * config/mips/mips.md (define_attr cpu): Sync with processor_type
8905         enum values, including adding entries that were missing.
8906
8907 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
8908
8909         * sh.c (calc_live_regs): Also check GET_CODE when checking if
8910         initial value for PR_REG is still the PR_REG register.
8911
8912 2003-02-18  Jim Wilson  <wilson@redhat.com>
8913
8914         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
8915         instruction in output template.
8916         (bsp_value): Change output template from string to C code, add %,
8917         before actual instruction.
8918         (flushrs): Mark as not predicable.
8919
8920 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
8921
8922         * inclhack.def (netbsd_bogus_semicolon): New fix.
8923         * fixincl.x: Rebuilt.
8924         * tests/base/ctype.h: Update.
8925
8926 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8927
8928         * fold-const.c (negate_expr_p): New function to determine whether
8929         an expression can be negated cheaply.
8930         (fold) [MINUS_EXPR]: Use it to determine whether to transform
8931         -A - B into -B - A for floating point types.
8932
8933 2003-02-18  Roger Sayle  <roger@eyesopen.com>
8934
8935         * sbitmap.c (sbitmap_resize): New function.
8936         * sbitmap.h (sbitmap_resize): Prototype here.
8937         * recog.c (split_all_insns): Use sbitmap_resize.
8938
8939 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
8940
8941         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
8942         insn length.
8943         (extendqisi2): Likewise.
8944         (*extendhisi2_h8300): Likewise.
8945
8946 2003-02-18  Matt Austern <austern@apple.com>
8947
8948         * langhooks.h, langhooks-def.h: introduce new langhook,
8949         final_write_globals, with write_global_declarations as default.
8950         * toplev.c: Move invocation of wrapup_global_declarations from
8951         compile_file to new function, write_global_declarations.  Change
8952         compile_file to use final_write_globals hook.  Change
8953         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
8954         conditional.
8955
8956 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8957
8958         * pa.md: Correct and enhance comment.
8959
8960 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
8961
8962         * gcc.c (validate_switches): Don't scan past closing '}'.
8963
8964 2003-02-18  Ben Elliston  <bje@redhat.com>
8965
8966         PR c++/1607
8967         * doc/extend.texi (Function Attributes): Document the effect of
8968         the C++ "this" parameter on the counting of arguments for the
8969         "format" and "format_arg" attributes.
8970
8971 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
8972
8973         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
8974         (__ev_stdw): Same.
8975         (__ev_stdh): Same.
8976
8977 2003-02-17  Jan Hubicka  <jh@suse.cz>
8978
8979         * recog.c (split_all_insns):  Fix memory overflow.
8980
8981 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
8982
8983         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
8984         (cmphi): Likewise.
8985         (*cmphi_h8300): Likewise.
8986         (*cmphi_h8300hs): Likewise.
8987         (cmpsi): Likewise.
8988         (7 peephole2): Likewise.
8989
8990 2003-02-16  Jan Hubicka  <jh@suse.cz>
8991
8992         * c-typeck.c (build_c_cast):  Fold constant variables into
8993         initial values.
8994
8995 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
8996
8997         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
8998         (Binaries): Ditto for Sinix/Reliant Unix.
8999
9000 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
9001
9002         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
9003         not overlap the final result register.
9004
9005 2003-02-16 Arend Bayer <arend.bayer@web.de>
9006            Richard Henderson  <rth@redhat.com>
9007
9008         PR c/8068
9009         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
9010         rearrange mult arguments for less recursion.
9011         (extract_muldiv): New.  Prevent runaway recursion.
9012
9013 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
9014
9015         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
9016         MASK_ALIGN_DOUBLE.
9017
9018 2003-02-15  Roger Sayle  <roger@eyesopen.com>
9019
9020         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
9021         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
9022         (ext_80387_constants_table): Global table of 80387 special constants
9023         guarded by ext_80387_constants_init flag when not initialized.
9024         (init_ext_80387_constants): New function to initialize this table.
9025         (standard_80387_constant_p): Extend to recognize extra 80387
9026         constants, in XFmode, on processors where this is a win.
9027         (standard_80387_constant_opcode): New function to return the
9028         opcode associated with standard_80387_constant_p.
9029         (standard_80387_constant_rtx): New function to return the XFmode
9030         CONST_DOUBLE associated with standard_80387_constant_p.
9031         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
9032
9033         * config/i386/i386-protos.h (standard_80387_constant_opcode):
9034         Prototype here.
9035         (standard_80387_constant_rtx): Likewise.
9036
9037         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
9038         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
9039         *movtf_integer): Simplify using new standard_80387_constant_opcode.
9040
9041 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
9042
9043         * doc/invoke.texi (Optimize Options): Correct @option syntax.
9044
9045 2003-02-15  Richard Henderson  <rth@redhat.com>
9046
9047         * Makefile.in (cfglayout.o): Depend on TARGET_H.
9048         * cfglayout.c: Include target.h.
9049         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
9050         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
9051         * target.h (struct gcc_target): Add cannot_copy_insn_p.
9052
9053         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
9054         (TARGET_CANNOT_COPY_INSN_P): New.
9055         (override_options): Revert 2003-02-08 hack.
9056
9057 2003-02-15  Richard Henderson  <rth@redhat.com>
9058
9059         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
9060         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
9061
9062 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
9063
9064         * config/rs6000/rs6000.h (processor_type): Add PPC440.
9065         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
9066         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
9067         TARGET_SCHED_VARIABLE_ISSUE): Define.
9068         (rs6000_use_dfa_pipeline_interface): New function.
9069         (rs6000_multipass_dfa_lookahead): New Function.
9070         (rs6000_variable_issue): New function.
9071         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
9072         (rs6000_issue_rate): Add PPC440.
9073         * config/rs6000/rs6000.md (unspec list): Correct typo.
9074         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
9075         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
9076         cmp, delayed_cr, mfcr, mtcr.
9077         (automata_option): Set "ndfa".
9078         (extendMMNN2): Update attributes.
9079         (movcc_internal1): Discourage move to non-cr0.  Update
9080         attributes.
9081         (movMM_update): Update attributes.
9082         (cmpMM_internal): Update attributes.
9083         (sCC CR materialization): Update attributes.
9084         (branch patterns): Do not discourage non-cr0.
9085         (cr logical patterns): Prefer destructive register allocation.
9086         Update attributes.
9087         (movesi_from_cr): Update attribute.
9088         (mtcrf_operation): Update attribute.
9089         (mtcrfsi): Update attribute.
9090         * config/rs6000/40x.md: New file.
9091         * config/rs6000/603.md: New file.
9092         * config/rs6000/6xx.md: New file.
9093         * config/rs6000/7450.md: New file.
9094         * config/rs6000/7xx.md: New file.
9095         * config/rs6000/mpc.md: New file.
9096         * config/rs6000/power4.md: New file.
9097         * config/rs6000/rios1.md: New file.
9098         * config/rs6000/rios2.md: New file.
9099         * config/rs6000/rs64.md: New file.
9100         [Some DFA descriptions based on work by Michael Hayes]
9101
9102 2003-02-15  Richard Henderson  <rth@redhat.com>
9103
9104         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
9105         successors with multiple predecessors.
9106         (connect_traces): Try harder to copy traces of length 1.
9107
9108         * function.h (struct function): Add computed_goto_common_label,
9109         computed_goto_common_reg.
9110         * function.c (free_after_compilation): Zap them.
9111         * stmt.c (expand_computed_goto): Use them to produce one
9112         indirect branch per function.
9113
9114 2003-02-15  Richard Henderson  <rth@redhat.com>
9115
9116         * cfgcleanup.c: Include params.h.
9117         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
9118         too many outgoing edges from a block.
9119         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
9120         * params.def (max-crossjump-edges): New.
9121         * doc/invoke.texi: Document it.
9122
9123 2003-02-15  Richard Henderson  <rth@redhat.com>
9124
9125         * recog.c (split_all_insns): Include new blocks in life update;
9126         do a global life update.
9127
9128 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
9129
9130         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
9131         Update copyright.
9132         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
9133         -mno-cygwin case.
9134
9135 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9136
9137         PR optimization/7702
9138         * reload1.c (reload_cse_simplify_set): Honor
9139         CANNOT_CHANGE_MODE_CLASS.
9140
9141 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
9142
9143         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
9144         function.
9145         * config/mn10300/mn10300-protos.h: Declare it.
9146         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
9147         attribute cc of instructions that may use clr.
9148
9149 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
9150
9151         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
9152         (x - (x & y)) is found.
9153
9154 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9155
9156         * configure.in: Fix typo.
9157         * configure: Regenerate.
9158
9159 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
9160
9161         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
9162
9163 2003-02-13  Adam Nemet  <anemet@lnxw.com>
9164
9165         PR opt/2391
9166         * combine.c: Fix spelling in comment.
9167         (cached_nonzero_bits): New function.
9168         (cached_num_sign_bit_copies): New function.
9169         (nonzero_bits_with_known): New macro.
9170         (num_sign_bit_copies_with_known): New macro.
9171         (nonzero_bits1): Rename from nonzero_bits.  Add three new
9172         arguments.  Change calls from nonzero_bits to
9173         nonzero_bits_with_known.
9174         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
9175         three new arguments.  Change calls from num_sign_bit_copies to
9176         num_sign_bit_copies_with_known.
9177         (nonzero_bits): New macro.
9178         (num_sign_bit_copies): New macro.
9179         (update_table_tick): Don't traverse identical subexpression more
9180         than once.
9181         (get_last_value_validate): Likewise.
9182
9183 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
9184
9185         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
9186         * function.h (struct emit_status): Length of regno_pointer_align
9187         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
9188         not regno_pointer_align_length (i.e. length actually used, not
9189         length as allocated)
9190
9191         * config/i386/i386.c (struct stack_local_entry): New.
9192         (struct machine_function): Replace huge array with alist.
9193         (assign_386_stack_local): Change to match.
9194
9195 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
9196
9197         * inclhack.def (hpux_long_double): Tighten select and add bypass
9198         regexp.
9199         * fixincl.x: Rebuilt.
9200
9201 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
9202
9203         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
9204         edge and block ends with a jump insn it must be simple jump.
9205
9206 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
9207
9208         * Makefile.in (PREPROCESSOR_DEFINES): Add
9209         @TARGET_SYSTEM_ROOT_DEFINE@.
9210         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
9211         is specified or if building a cross compiler.
9212         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
9213         if the sysroot is under $exec_prefix.
9214         * configure: Regenerated.
9215         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
9216         defined.
9217         (struct default_include): Add add_sysroot field.
9218         (cpp_SYSROOT): Declare.
9219         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
9220         field.
9221         (cpp_SYSROOT): New variable.
9222         * cppinit.c (cpp_create_reader): Initialize
9223         CPP_OPTION (pfile, sysroot).
9224         (init_standard_includes): Handle add_sysroot.  Do not
9225         add unrelocated copies of relocated directories.
9226         (COMMAND_LINE_OPTIONS): Add -isysroot.
9227         (cpp_handle_option): Handle -isysroot.
9228         * cpplib.h (struct cpp_options): Add sysroot member.
9229         * gcc.c (The Specs Language): Update description of %I.
9230         (target_system_root_changed): New variable.
9231         (process_command): Conditionalize make_relative_prefix call
9232         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
9233         target_system_root_changed.
9234         (do_spec_1): Add -isysroot to %I.
9235         * doc/invoke.texi (Spec Files): Update description of %I.
9236         * doc/install.texi (--with-sysroot): Update comment about
9237         relocation.
9238
9239 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
9240
9241         * config/h8300/h8300.md (a peephole2): New.
9242
9243 2003-02-13  Robert Lipe <robertlipe@usa.net>
9244             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9245
9246         * doc/install.texi (Specific): Update three SCO-related URLs.
9247
9248 2003-02-13  Andreas Schwab  <schwab@suse.de>
9249
9250         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
9251         Parenthesize properly.
9252         (NPREDECESORS): Parenthesize properly.
9253
9254 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9255
9256         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
9257
9258 2003-02-12  Roger Sayle  <roger@eyesopen.com>
9259
9260         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
9261         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
9262
9263         * reg-stack.c (subst_stack_regs_pat): Add support for binary
9264         UNSPEC instructions (e.g. "fpatan").
9265
9266 2003-02-12  Mike Stump  <mrs@apple.com>
9267
9268         * varray.c (element_size): Remove.
9269         (uses_ggc): Remove.
9270         (element): Add.
9271         (varray_init): Use new interface.
9272         (varray_grow): Use new interface.
9273         (varray_clear): Use new interface.
9274
9275 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
9276
9277         * config/rs6000/spe.h: Add casts to the arguments of the following
9278         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
9279         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
9280         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
9281         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
9282         __ev_get_u16, __ev_get_s16.
9283
9284 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
9285
9286         * config/h8300/h8300.md (a peephole2): New.
9287
9288 2003-02-12  Jan Hubicka  <jh@suse.cz>
9289
9290         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
9291         (OBJS): Add callgraph.o
9292         (callgraph.o): New.
9293         * c-decl.c (expand_body_1): Break out from ...
9294         (expand_body): This one;  change calling convention
9295         (finish_function): Move some of expand_body logic here.
9296         (c_expand_deferred_function): Update call of expand_body
9297         (c_expand_stmt): Use c_expand_body_1.
9298         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
9299         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
9300         * c-tree.h (c_expand_body): Declare.
9301         * callgraph.c: New file.
9302         * flags.h (flag_unit_at_a_time): Declare.
9303         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
9304         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
9305         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
9306         * langhooks.h (struct lang_hooks_for_callgraph): New.
9307         (struct lang_hooks): Add callgraph field.
9308         * toplev.c (flag_unit_at_a_time): New.
9309         (lang_independent_options): Add flag_unit_at_a_time.
9310         (process_options): Disable unit-at-a-time mode for frontends not
9311         supporting callgraph.
9312         * tree-inline.c (typedef struct inline_data): Add "decl"
9313         (expand_call_inline): Update callgraph.
9314         (optimize_inline_calls): Set id.decl.
9315         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
9316         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
9317         cgraph_calls_p): Declare.
9318         * invoke.texi (-funit-at-a-time): Document
9319
9320 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
9321
9322         * config/rs6000/spe.h: Fix misc formatting.
9323         (__ev_create_ufix32_fs): Cast ev argument.
9324         (__ev_create_sfix32_fs): Same.
9325         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
9326         (__ev_get_ufix32_fs_internal): Same.
9327
9328 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
9329
9330         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
9331         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
9332
9333 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
9334
9335         * cpplib.c (do_include_common): Move warnings for
9336         #include_next and #import out to callers.  Use early-return
9337         instead of nested ifs.  Don't do check_eol here.
9338         (parse_include): Do check_eol here with the rest of the
9339         parsing stuff.
9340         (do_include_next, do_import): Now handle warnings.
9341
9342 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
9343
9344         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
9345
9346 2003-02-12  Jan Hubicka  <jh@suse.cz>
9347
9348         * predict.c (estimate_probability):  Fix roundoff error.
9349
9350 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
9351
9352         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
9353         (two peephole2): New.
9354
9355 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
9356
9357         * config/h8300/h8300.md (several peephole2): Replace
9358         find_regno_note with peep2_reg_dead_p.
9359
9360 2003-02-11  Richard Henderson  <rth@redhat.com>
9361
9362         * gcse.c (lookup_set): Remove unused argument PAT.  Update
9363         both callers.
9364
9365 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
9366
9367         * diagnostic.c (real_abort): New.
9368         (diagnostic_report_diagnostic): Call real_abort on error.
9369         * diagnostic.h (diagnostic_abort_on_error): New.
9370         (struct diagnostic_context): Add abort_on_error field.
9371         * toplev.c (setup_core_dumping): New.
9372         (decode_d_option): Handle 'H' case.
9373         * doc/invoke.texi (Debugging Options): Document -dH.
9374
9375 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
9376
9377         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
9378         which refers to obsolete directories.
9379
9380 2003-02-11  Richard Henderson  <rth@redhat.com>
9381
9382         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
9383
9384 2002-10-21  Jan Hubicka  <jh@suse.cz>
9385
9386         * i386.c (contains_128bit_aligned_vector_p): New function.
9387         (ix86_function_arg_boundary): Properly align vector modes.
9388
9389 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
9390
9391         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
9392         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
9393         as a SET pattern.
9394
9395 2003-02-11  Roger Sayle  <roger@eyesopen.com>
9396
9397         * builtins.c:  Fix failure caused by commiting wrong patch.
9398
9399 2003-02-11  Dale Johannesen  <dalej@apple.com>
9400         * ra-build.c (compare_and_free_webs):  Relax checking.
9401         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
9402         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
9403
9404 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
9405
9406         PR optimization/9651
9407         * rtlanal.c (may_trap_p): Handle FIX.
9408
9409 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
9410
9411         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
9412         * doc/invoke.texi: Extra alias.
9413
9414 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
9415
9416         * config/rs6000/host-darwin.c: Fix comment.
9417
9418 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
9419
9420         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
9421         predicate for mod result.
9422
9423 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9424
9425         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
9426         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
9427         * fixincl.x: Rebuilt.
9428         * tests/base/stdlib.h: Update.
9429         * tests/base/ctype.h: New file.
9430
9431 2003-02-11  Jan Hubicka  <jh@suse.cz>
9432
9433         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
9434
9435 2003-02-11  Richard Henderson  <rth@redhat.com>
9436
9437         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
9438         appropriated as globals.
9439         (ix86_expand_clrstr): Similarly.
9440         * config/i386/i386.md (cmpstrsi): Similarly.
9441
9442 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9443
9444         * config/h8300/h8300.md (a peephole2): Add a case of 255.
9445
9446 2003-02-11  Roger Sayle  <roger@eyesopen.com>
9447
9448         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
9449         (pow_optab, atan2_optab): Define corresponding macros.
9450         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
9451         * genopinit.c (optabs): Implement pow_optab and atan2_optab
9452         using pow?f3 and atan2?f3 patterns.
9453         * builtins.c (expand_errno_check): New function to update errno
9454         if necessary, split out from expand_builtin_mathfn.
9455         (expand_builtin_mathfn): Use expand_errno_check.
9456         (expand_builtin_mathfn_2): New function to handle expanding binary
9457         math functions, reusing the code in expand_errno_check.
9458         (expand_builtin): Handle the pow and atan2 math built-ins,
9459         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
9460         expand_builtin_mathfn_2.
9461
9462         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
9463
9464 2003-02-11  Jan Hubicka  <jh@suse.cz>
9465
9466         * combine.c (combine_simplify_rtx): Fix folding of
9467         nested float_truncates.
9468
9469 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9470
9471         * config/h8300/h8300.md (a peephole2): Fix a typo.
9472
9473 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
9474
9475         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
9476         register number.
9477
9478 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
9479
9480         * config/h8300/h8300-protos.h: Add a prototype for
9481         gtuleu_operator.
9482         * config/h8300/h8300.c (gtuleu_operator): New.
9483         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
9484         * config/h8300/h8300.md (a peephole2): New.
9485
9486 2003-02-11  Jan Hubicka  <jh@suse.cz>
9487
9488         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
9489
9490 2003-02-11  Jan Hubicka  <jh@suse.cz>
9491
9492         * predict.c (choose_function_section): Choose sections correctly.
9493
9494 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9495
9496         * reload1.c (first_label_num): New.
9497         (reload): Index offsets_known_at and offsets_at using difference of
9498         label number and first label number.  Don't use offset pointers.
9499         (set_label_offsets, set_initial_label_offsets): Likewise.
9500
9501 2003-02-10  Roger Sayle  <roger@eyesopen.com>
9502
9503         * mips-tfile.c (init_file): Add missing initializers in the
9504         "#ifdef __alpha" case.
9505         (file_offset, max_file_offset): Declare as unsigned long.
9506         (write_varray): Cast to "unsigned long" in comparisons against
9507         either file_offset or max_file_offset.
9508         (write_object): Likewise.
9509         (read_seek): Likewise.
9510         (copy_object): Likewise. Declare "ifd" as int to match its use
9511         in add_ext_symbol, and avoid signed/unsigned conditional warning.
9512
9513 2003-02-10  Nick Clifton  <nickc@redhat.com>
9514             Aldy Hernandez  <aldyh@redhat.com>
9515
9516         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
9517         override options which have been specified on the command line.
9518
9519 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9520
9521         * config/h8300/h8300.md (abssf2): New.
9522         (*abssf2_h8300): Likewise.
9523         (*abssf2_h8300hs): Likewise.
9524
9525 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
9526
9527         * tree.c (build_tree_list):  Fix parameter names in comment.
9528
9529 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
9530
9531         * config/rs6000/ppc64-fp.c: New file.
9532         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
9533
9534 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
9535
9536         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
9537         * bb-reorder.c (make_reorder_chain): Deleted.
9538         (make_reorder_chain_1): Deleted.
9539         (find_traces): New function.
9540         (rotate_loop): New function.
9541         (mark_bb_visited): New function.
9542         (find_traces_1_round): New function.
9543         (copy_bb): New function.
9544         (bb_to_key): New function.
9545         (better_edge_p): New function.
9546         (connect_traces): New function.
9547         (copy_bb_p): New function.
9548         (get_uncond_jump_length): New function.
9549         (reorder_basic_blocks): Use new functions (Software Trace Cache).
9550         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
9551         boundaries.
9552
9553 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
9554
9555         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
9556
9557 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
9558
9559         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
9560         (DECL_LIVE_RANGE_RTL): Remove.
9561
9562 2003-02-10  Nick Clifton  <nickc@redhat.com>
9563
9564         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
9565         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
9566         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
9567         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
9568         config/arm/freebsd.h, config/arm/linux-elf.h,
9569         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
9570         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
9571         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
9572         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
9573         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
9574         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
9575         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
9576         and reformat as appropriate.
9577
9578 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
9579
9580         * config/h8300/clzsi2.c: Remove.
9581         * config/h8300/ctzsi2.c: Likewise.
9582         * config/h8300/paritysi2.c: Likewise.
9583         * config/h8300/popcountsi2.c: Likewise.
9584         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
9585         ctzsi2, paritysi2, and popcountsi2.
9586
9587 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
9588             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
9589
9590         PR c/7741
9591         * c-decl.c (duplicate_decls): Discard the initializer of the
9592         new decl when the types are conflicting.
9593
9594 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
9595
9596         * Makefile.in (sreal.o): Added.
9597         (predict.o): Depends on sreal.h instead of real.h.
9598         * sreal.c: New file.
9599         * sreal.h: New file.
9600         * predict.c: Use sreal.c instead of real.c.
9601
9602 2003-02-10  Nick Clifton  <nickc@redhat.com>
9603
9604         * Contributed support for the Cirrus EP9312 "Maverick"
9605         floating point co-processor.  Written by Aldy Hernandez
9606         <aldyh@redhat.com>.
9607         (config/arm/arm.c): Add Cirrus support.
9608         (config/arm/arm.h): Likewise.
9609         (config/arm/aout.h): Likewise.
9610         (config/arm/arm.md): Likewise.
9611         (config/arm/arm-protos.h): Likewise.
9612         (config.gcc): Likewise.
9613         (doc/invoke.texi): Describe new -mcpu value and new
9614         -mcirrus-fix-invalid-insns switch,
9615         (cirrus.md): New file.
9616
9617 2003-02-10  Jan Hubicka  <jh@suse.cz>
9618
9619         * combine.c (combine_simplify_rtx): Simplify using
9620         (float_truncate (float x)) is (float x)
9621         (float_extend (float_extend x)) is (float_extend x).
9622
9623 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
9624
9625         * calls.c (try_to_integrate): Tidy stack_usage_map access.
9626         (emit_library_call_value_1): Likewise.  Formatting.
9627         (store_one_arg): Likewise.
9628
9629 2003-02-09  Nick Clifton  <nickc@redhat.com>
9630             Aldy Hernandez  <aldyh@redhat.com>
9631
9632         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
9633         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
9634         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
9635         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
9636         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
9637         docs.  Add range test for immediate value.
9638
9639 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
9640
9641         Rename spe_evxor to xorv2si3.
9642         (xorv4hi3): New.
9643         (xorv1di3): New.
9644
9645 2003-02-10  Glen Nakamura  <glen@imodulo.com>
9646
9647         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
9648         tag.
9649
9650 2003-02-10  Jan Hubicka  <jh@suse.cz>
9651
9652         * i386.c (vector_move_operand): New predicate.
9653         (ix86_expand_vector_move): Be happy about 0.
9654         * i386.h (PREDICATE_CODES): Add sse-move_operand.
9655         * i386.md (mov*_internal): Add 'C' alternative.
9656
9657 2003-02-09  Jan Hubicka  <jh@suse.cz>
9658
9659         * i386.md (floathi*): Deal with SSE.
9660
9661 2003-02-09  Jan Hubicka  <jh@suse.cz>
9662
9663         * simplify-rtx.c (simplify_unary_operation,
9664         simplify_binary_operation):  Deal with vector modes
9665         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
9666
9667 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
9668
9669         * toplev.c (rest_of_compilation): Recompute register usage after
9670         split_all_insns.
9671
9672 2003-02-09  Richard Henderson  <rth@redhat.com>
9673
9674         * libgcc-std.ver (__clztf2): New.
9675         (__ctztf2, __popcounttf2, __paritytf2): New.
9676         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
9677         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
9678         adjust code to match the different type sizes.
9679         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
9680         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
9681
9682         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
9683         TImode; select word_mode and twice that.
9684         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
9685         select the modes from float, double, and long double.
9686         (init_optabs): Remove duplicate initializations.
9687
9688 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9689
9690         * doc/install.texi: Squeeze and streamline section on
9691         testing and regression checking.
9692
9693 2003-02-09  Jan Hubicka  <jh@suse.cz>
9694
9695         * i386.md (ahi?v*3): Set third operand type to TImode.
9696         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
9697
9698         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
9699         integer mode.
9700
9701         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
9702         Change code so they are arithmetic expressions now.
9703         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
9704         simplify_ternary_operation): Deal with VEC_* expressions.
9705
9706         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
9707
9708 2003-02-08  Jan Hubicka  <jh@suse.cz>
9709
9710         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
9711         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
9712         possibly got duplicated.
9713
9714 2003-02-08  Richard Henderson  <rth@redhat.com>
9715
9716         * config/alpha/alpha.c (override_options): Turn off explicit
9717         relocs until post-peep2 code duplication resolved.
9718
9719 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9720
9721         * optabs.c (expand_unop): Widen clz properly when clz is done
9722         via libcall.
9723
9724 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9725
9726         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
9727         * config/h8300/crti.asm: Likewise.
9728         * config/h8300/crtn.asm: Likewise.
9729         * config/h8300/ctzsi2.c: Likewise.
9730         * config/h8300/fixunssfsi.c: Likewise.
9731         * config/h8300/h8300-protos.h: Likewise.
9732         * config/h8300/h8300.c: Likewise.
9733         * config/h8300/h8300.h: Likewise.
9734         * config/h8300/h8300.md: Likewise.
9735         * config/h8300/paritysi2.c: Likewise.
9736         * config/h8300/popcountsi2.c: Likewise.
9737         * config/h8300/rtems.h: Likewise.
9738
9739 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9740
9741         * doc/invoke.texi: Documentation for my previous commit.
9742         * doc/passes.texi: Ditto.
9743
9744 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9745
9746         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
9747         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9748         Declare.
9749         (DLTHE_FLAG_UPDATE_FREQ): New.
9750         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
9751         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
9752         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
9753         fix_bb_placement, fix_bb_placements, place_new_loop,
9754         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
9755         New static functions.
9756         (fix_loop_placement, can_duplicate_loop_p,
9757         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
9758         New functions.
9759
9760         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
9761         unswitch_loops): Declare.
9762         * loop-init.c: New file.
9763         * loop-unswitch.c: New file.
9764         * Makefile.in (loop-init.o, loop-unswitch.o): New.
9765         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
9766         * toplev.c (DFI_loop2): New dump.
9767         (flag_unswitch_loops): New.
9768         (lang_independent_options): Add it.
9769         (rest_of_compilation): Call new loop optimizer.
9770         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
9771
9772 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
9773
9774         * config/h8300/clzsi2.c: New.
9775         * config/h8300/ctzsi2.c: Likewise.
9776         * config/h8300/paritysi2.c: Likewise.
9777         * config/h8300/popcountsi2.c: Likewise.
9778         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
9779
9780 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
9781
9782         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
9783         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
9784         (ctzsi2): New pattern.
9785         (ffssi2): Use clz instead of unspec.
9786         (clzdi2): Rename from cntlzd2.
9787         (ctzdi2): New pattern.
9788         (ffsdi2): Use clz instead of unspec.
9789
9790 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
9791
9792         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
9793         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
9794         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
9795         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
9796
9797 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
9798
9799         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
9800
9801 2003-02-07  Richard Henderson  <rth@redhat.com>
9802
9803         PR 9226
9804         * gcse.c (local_cprop_find_used_regs): New.
9805         (local_cprop_pass): Use it.
9806
9807 2003-02-07  Fred Fish  <fnf@intrinsity.com>
9808
9809         * mips-tfile.c (parse_def): Parenthesize assignments to fix
9810         precedence bugs.
9811
9812 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
9813
9814         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
9815
9816 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9817
9818         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
9819         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
9820         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
9821         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
9822         builtin functions (and their __builtin_* variants).
9823         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
9824         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
9825         when not optimizing.
9826
9827         * doc/extend.texi: Document new pow and atan2 builtins, and
9828         their float and long double variants.  Realphabetize builtins.
9829
9830 2003-02-07  Jan Hubicka  <jh@suse.cz>
9831
9832         * i386.md (sse2_nandv2di3): Fix.
9833
9834 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
9835
9836         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
9837         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
9838         definition.
9839         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
9840         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
9841
9842 2003-02-07  Jan Hubicka  <jh@suse.cz>
9843
9844         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
9845
9846 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
9847
9848         * cfg.c (dump_flow_info): Add back accidently deleted line.
9849
9850 2003-02-07  Andrey Petrov <petrov@netbsd.org>
9851
9852         * optabs.c (expand_float): Search wider integer modes first.
9853
9854 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
9855
9856         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
9857         based on preprocessor flag.
9858
9859 2003-02-07  Roger Sayle  <roger@eyesopen.com>
9860             Richard Henderson  <rth@redhat.com>
9861
9862         * gcse.c (implicit_sets): New.
9863         (compute_hash_table_work): Include them in hash table.
9864         (find_implicit_sets, fis_get_condition): New.
9865         (one_cprop_pass): Allocate and free implicit_sets; call
9866         find_implicit_sets before building hash table.
9867
9868 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
9869
9870         * config/t-netbsd (USER_H): Revert previous change.
9871
9872 2003-02-07  Gabor Greif  <ggreif@lucent.com>
9873
9874         * doc/c-tree.texi (Namespaces): Fix typo.
9875
9876 2003-02-07  Jan Hubicka  <jh@suse.cz>
9877
9878         * regrename.c (do_replace, find_oldest_value_reg,
9879         copyprop_hardreg_forward_1): Update register attributes.
9880
9881 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
9882
9883         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
9884         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
9885         variables starting with underscore.
9886         (struct unit_usage): New structure.
9887         (unit_usages, cycle_alt_unit_usages): New global variables.
9888         (check_unit_distribution_in_reserv): Remove it.
9889         (store_alt_unit_usage): New function.
9890         (check_regexp_units_distribution): Rewrite it.
9891
9892 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9893
9894         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
9895         target_cpu_default.
9896         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
9897         if not MASK_NO_SPACE_REGS.
9898         (output_call): Adjust return pointer, don't load new space register
9899         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
9900         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
9901         TARGET_NO_SPACE_REGS is true.
9902         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
9903         conditions.
9904         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
9905         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
9906         true.  Use bve when TARGET_64BIT is true.
9907
9908 2003-02-06  Richard Henderson  <rth@redhat.com>
9909
9910         * combine.c (nonzero_bits): Fix double break.
9911
9912 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
9913             Richard Henderson <rth@redhat.com>
9914
9915         PR c/9530
9916         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
9917         from functions that return a float to functions that don't.
9918
9919 2003-02-06  Jan Hubicka  <jh@suse.cz>
9920
9921         * i386.c (x86_inter_unit_moves): New variable.
9922         (ix86_secondary_memory_needed): Fix 64bit case, honor
9923         TARGET_INTER_UNIT_MOVES
9924         * i386.h (x86_inter_unit_moves): Declare.
9925         (TARGET_INTER_UNIT_MOVES): New macro.
9926         * i386.md (movsi_1): Cleanup constraints; disable
9927         when not doing inter-unit moves.
9928         (movsi_1_nointernunit): New.
9929         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
9930         (movdi_1_rex64_nointerunit): New.
9931         (mivsf_1): disable when not doing inter-unit moves.
9932         (movsf_1_nointerunit): New.
9933
9934         * basic-block.h (inside_basic_block_p):  Declare.
9935         * cfgbuild.c (inside_basic_block_p): Make global.
9936         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
9937         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
9938         update CFG.
9939         (fix_basic_block_boundaries, add_missing_bbs): New.
9940         (rank): Use profile.
9941         (scheudle_ebbs): Rely on CFG; update coments.
9942
9943 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
9944
9945         * Makefile.in (host_hook_obj): New.
9946         (OBJS): Add $(host_hook_obj).
9947         (host_default.o): New rule.
9948         * config.gcc (host_hook_obj): New, default to host-default.o.
9949         (powerpc-*-darwin*): Use host-darwin.o.
9950         (out_host_hook_obj): New.
9951         * configure: Regenerate.
9952         * configure.in: Print information about out_host_hook_obj, substitute
9953         into output files.
9954         * host-default.c: New file.
9955         * hosthooks.h: New file.
9956         * toplev.c (general_init): Call host_hooks.extra_signals.
9957         * config/rs6000/host-darwin.c: New file.
9958         * config/rs6000/x-darwin: New file.
9959         * doc/hostconfig.texi: Add documentation for new host hook.
9960         Rearrange existing documentation.
9961
9962 2003-02-05  Roger Sayle  <roger@eyesopen.com>
9963
9964         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
9965         with *targetm.delegitimize_address.
9966         (rtl_for_decl_location): Likewise.
9967         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
9968         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
9969
9970         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9971         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
9972         prototype.
9973         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
9974         i386_simplify_dwarf_addr.  Made static.  Prototyped.
9975         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
9976         i386_simplify_dwarf_addr to ix86_delegitimize_address.
9977         (ix86_find_base_term): Likewise.
9978         (maybe_get_pool_constant): Likewise.
9979
9980         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
9981         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
9982         prototype.
9983         * config/s390/s390.c (s390_delegitimize_address): Renamed from
9984         s390_simplify_dwarf_addr.  Made static.  Prototyped.
9985         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
9986
9987 2003-02-05  Richard Henderson  <rth@redhat.com>
9988
9989         PR c/8602
9990         * integrate.c (output_inline_function): Reset input_filename
9991         and lineno from the decl before rest_of_compilation.
9992
9993 2003-02-05  Richard Henderson  <rth@redhat.com>
9994
9995         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
9996         (CTZ_DEFINED_VALUE_AT_ZERO): New.
9997         * doc/rtl.texi, doc/tm.texi: Document them.
9998
9999         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
10000         of the value at zero properly.
10001         * fold-const.c (tree_expr_nonnegative_p): Likewise.
10002         * simplify-rtx.c (simplify_unary_operation): Likewise.
10003
10004         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
10005         (CTZ_DEFINED_VALUE_AT_ZERO): New.
10006
10007         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
10008         (TARGET_EXPAND_BUILTIN): Remove.
10009         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
10010         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
10011         (enum arm_builtins): Remove.
10012         * config/arm/arm.md (UNSPEC_CLZ): Remove.
10013         (clzsi2): Rename from clz; use clz instead of unspec.
10014         (ctzsi2): New.
10015         * config/arm/arm-protos.h: Update.
10016
10017 2003-02-05  Jan Hubicka  <jh@suse.cz>
10018
10019         * i386-protos.h (x86_emit_floatuns):  Declare.
10020         * i386.c (x86_emit_floatuns): New global function.
10021         * i386.md (floatunssisf2, floatunsdisf2,
10022         floatunsdidf2):  New patterns.
10023
10024 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10025
10026         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
10027
10028 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
10029
10030         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
10031           config/ia64/linux.h
10032
10033 2003-02-05  Roger Sayle  <roger@eyesopen.com>
10034
10035         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
10036
10037 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
10038
10039         PR optimization/8555
10040         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
10041         instead of aborting.
10042
10043 2003-02-04  Richard Henderson  <rth@redhat.com>
10044
10045         * config/i386/i386.md (UNSPEC_BSF): Remove.
10046         (ffssi2): Split into cmove and no_cmove insns and splitters;
10047         lose pentium float trick for now.
10048         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
10049         (ctzsi2, clzsi2, bsr): New.
10050
10051 2003-02-04  Richard Henderson  <rth@redhat.com>
10052
10053         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
10054         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
10055         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
10056         (ffsdi2): Use popcount instead of unspec.
10057         (popcountdi2): Rename from *popcnt.
10058         (ctzdi2, clzdi2, getf_exp_tf): New.
10059
10060 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
10061
10062         * genconfig.c (main): Generate CC0_P.
10063         * rtl.h (CC0_P): Remove.
10064
10065 2003-02-04  Richard Henderson  <rth@redhat.com>
10066
10067         * libgcc2.h, libgcc2.c (__ffsSI2): New.
10068         (__ffsDI2): Rename from __ffsdi2.
10069         * mklibgcc.in (lib2funcs): Add _ffssi2.
10070
10071 2003-02-04  Richard Henderson  <rth@redhat.com>
10072
10073         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
10074         rounds with a "bit table" lookup.
10075
10076 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
10077
10078         * reload.c (find_reloads): Do not use the mode specified in the insn
10079         pattern as reload mode for address operands.  Do not generate optional
10080         reloads for operands where a mandatory reload was already pushed.
10081
10082 2003-02-04  Richard Henderson  <rth@redhat.com>
10083
10084         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
10085         builtins instead of inline assembly.
10086
10087 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
10088
10089         PR c/9376
10090         * libgcc2.c (__subvdi3): Fix typo.
10091
10092 2003-02-04  Jan Hubicka  <jh@suse.cz>
10093
10094         * i386.md (movti_rex64):  Fix constraint.
10095
10096 2003-02-04  Jan Hubicka  <jh@suse.cz>
10097
10098         * i386.md (vector push splitters):  Fix typo in resolving conflict.
10099
10100 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
10101
10102         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
10103
10104 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
10105
10106         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
10107         for recent libstdc++.  Remove formatting cruft.
10108
10109 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
10110
10111         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
10112         attribute even if input file name is absolute, but one of the
10113         includes is relative.
10114
10115 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
10116
10117         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
10118         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
10119         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
10120
10121 2003-02-03  Richard Henderson  <rth@redhat.com>
10122
10123         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
10124         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
10125         return type to "int".  Shuffle declarations and undef int trap.
10126         * libgcc2.h: Remove their declarations.
10127         * optabs.c (expand_unop): Force outmode to int for bitops.
10128
10129 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
10130
10131         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
10132         coprocessor registers before floating-point registers.
10133         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
10134         to account for a previously removed register.
10135         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
10136         Delete unused macros.
10137
10138 2003-02-03  Jan Hubicka  <jh@suse.cz>
10139
10140         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
10141         (mov*_internal): Fix predicates; require one of operands to not be
10142         memory.
10143         (SSE?MMX move expanders):  Fix predicates; force one of operands to
10144         register.
10145         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
10146         (movups/movupd/movdqu patterns): Force one of operands to not be
10147         memory.
10148
10149 2003-02-03  Roger Sayle  <roger@eyesopen.com>
10150
10151         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
10152         takes a single rtx and returns it unmodified.
10153         * hooks.h (hook_rtx_rtx_identity): Prototype here.
10154         * target.h (struct gcc_target): Add "delegitimize_address"
10155         field to target structure.
10156         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
10157         for delegitimize_address target using hook_rtx_rtx_identity.
10158         (TARGET_INITIALIZER): Initialize delegitimize_address field
10159         using TARGET_DELEGITIMIZE_ADDRESS macro.
10160         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
10161         extensions of constant pool references.  Use delegitimize_address
10162         to undo the obfuscation of "-fpic".
10163         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
10164
10165         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
10166         i386_simplify_dwarf_addr.
10167         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
10168         (maybe_get_pool_constant): Likewise.
10169
10170 2003-02-03  Jan Hubicka  <jh@suse.cz>
10171
10172         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
10173
10174 2003-02-03  Jan Hubicka  <jh@suse.cz>
10175
10176         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
10177
10178 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10179
10180         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
10181         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
10182
10183 2003-02-02  Andreas Schwab  <schwab@suse.de>
10184
10185         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
10186
10187 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
10188
10189         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
10190         (epilogue_insns): Likewise.
10191
10192 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10193
10194         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
10195
10196 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10197
10198         * pa-protos.h (attr_length_millicode_call): Remove second argument.
10199         (attr_length_indirect_call, attr_length_indirect_call,
10200         attr_length_save_restore_dltp): New prototypes.
10201         * pa.c (attr_length_millicode_call): Remove second argument.  Check
10202         INSN_ADDRESSES_SET_P in distance calculation.
10203         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
10204         INSN_ADDRESSES.
10205         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
10206         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
10207         Call attr_length_call directly.
10208         (attr_length_indirect_call, output_indirect_call,
10209         attr_length_save_restore_dltp): New functions.
10210         * pa.md (attr_length_millicode_call): Drop second argument from all
10211         patterns.
10212         (return_internal_pic): Delete.
10213         (return_external_pic): Remove use of PIC register and pic operand and
10214         flag checks.
10215         (epilogue): Use return_internal for both normal and pic code.
10216         (call, call_value): Emit new 32-bit pic patterns for symref and
10217         indirect calls.  Remove uses for arg pointer and pic register.
10218         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
10219         call_reg_pic_post_reload, call_val_symref_pic,
10220         call_val_symref_pic_post_reload, call_val_reg_pic,
10221         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
10222         Implement define_split and define_peephole2 patterns for pre reload
10223         patterns.
10224         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
10225         call_value_internal_reg_64bit): Shorten names.
10226         (all call patterns): Explicitly indicate registers used and clobbered.
10227         Use attr_length_indirect_call and attr_length_save_restore_dltp for
10228         attribute length calculation.  Move code generation for indirect calls
10229         to output_indirect_call.
10230         (sibcall, sibcall_value): Don't restore PIC register.
10231         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
10232         register retore.
10233
10234 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10235
10236         * doc/install.texi (Testing): Simplify and compress instructions
10237         concerning Dejagnu.
10238
10239 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10240
10241         * collect2.c (pexecute_pid): Rename to pid.
10242         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
10243         pid.
10244
10245 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
10246
10247         * doc/extend.texi (Function Attributes): Remove documentation
10248         for PowerPC Windows NT function attributes..
10249
10250 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
10251
10252         * dwarf2out.c (gen_type_die): Check for typedefs before calling
10253         for TYPE_MAIN_VARIANT.
10254
10255 2003-02-01  Richard Henderson  <rth@redhat.com>
10256
10257         * libgcc2.c: Include auto-host.h.
10258         (ATTRIBUTE_HIDDEN): New.
10259         (__clz_tab): Don't declare here for clz and ctz.
10260         (__clzsi2, __clzdi2): Use count_leading_zeros.
10261         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
10262         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
10263         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
10264         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
10265
10266 2003-02-01  Richard Henderson  <rth@redhat.com>
10267
10268         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
10269         to the conditional.
10270         (ashlsi3_1_zext splitter): Likewise.
10271
10272 2003-02-01  Richard Henderson  <rth@redhat.com>
10273
10274         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
10275         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
10276         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
10277         return type to Wtype.
10278
10279         * libgcc-std.ver (GCC_3.4): Fix inheritance.
10280
10281         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
10282         expander input constraint.
10283
10284 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
10285
10286         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
10287         OTI_parity.
10288         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
10289         * optabs.c (widen_clz, expand_parity): New.
10290         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
10291         for libcalls to clz, ctz, popcount, and parity.
10292         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
10293         parity_optab, and set up libfunc handlers.
10294         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
10295         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
10296         __popcount_tab): New.
10297         * libgcc2.h: Declare them.
10298         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
10299         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
10300         and parity_optab.
10301         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
10302         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
10303         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
10304         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
10305         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
10306         BUILT_IN_PARITYLL): New.
10307         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
10308         and add optab argument.
10309         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
10310         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
10311         * expr.c (expand_expr): Handle them.
10312         * fold-const.c (tree_expr_nonnegative_p): Likewise.
10313         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
10314         * reload1.c (eliminate_regs): Handle them.
10315         (elimination_effects): Likewise.
10316         * function.c (instantiate_virtual_regs_1): Likewise
10317         * genattrtab.c (check_attr_value): Likewise.
10318         * simplify-rtx.c (simplify_unary_operation): Likewise.
10319         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
10320         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
10321         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
10322         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
10323         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
10324         __builtin_arm_clz.
10325         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
10326         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
10327         * doc/extend.texi (Other Builtins): Add new builtins.
10328         * doc/md.texi (Standard Names): Add new patterns.
10329
10330 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
10331
10332         * reload.c: Revert 2003-01-31 change.
10333
10334 2003-02-01  Jan Hubicka  <jh@suse.cz>
10335
10336         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
10337
10338 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
10339
10340         * flags.h (flag_volatile): Remove declaration.
10341         (flag_volatile_global, flag_volatile_static): Likewise.
10342         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
10343         * toplev.c (flag_volatile): Remove definition.
10344         (flag_volatile_global, flag_volatile_static): Likewise.
10345         (f_options): Remove corresponding entries here.
10346         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
10347         or flag_volatile_static.
10348         * doc/invoke.texi: Remove documentation of -fvolatile,
10349         -fvolatile-global and -fvolatile-static.
10350
10351 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10352
10353         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
10354         updating of total_code_bytes from prologue to epilogue.
10355
10356 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
10357
10358         * reload.c (find_reloads): Do not use the mode specified in the insn
10359         pattern as reload mode for address operands.  Do not generate optional
10360         reloads for operands where a mandatory reload was already pushed.
10361         Generate optional reloads only in the final pass though find_reloads.
10362         (have_replacement_p): New function.
10363
10364 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10365
10366         * doc/install.texi (Testing): Remove a reference to our obsolete
10367         /testresults web pages and strip redundant information concerning
10368         test results.
10369         (Binaries): Refer to Microsoft Windows instead of listing all
10370         possible variants.
10371
10372 2003-02-01  Jan Hubicka  <jh@suse.cz>
10373
10374         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
10375         RTL chain.
10376
10377         * combine.c (simplify_set): Reverse order of ragumetns to
10378         REG_CANNOT_CHANGE_MODE_P
10379         * df.c (df_def_record_1): Likewise.
10380         * recog.c (register_operand): Likewise.
10381         * simplify-rtx.c (simplify_subreg): Likewise.
10382         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
10383         CANNOT_CHANGE_MODE_CLASS.
10384         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
10385         Likewise.
10386         * reload.c (push_reload): Likewise.
10387         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10388         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10389         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10390         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
10391         * mips.c (mips_cannot_change_mode_class): Update.
10392         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10393         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10394         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10395         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
10396         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
10397         * sh.c (sh_cannot_change_mode_class): Update.
10398         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
10399         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
10400
10401 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
10402
10403         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
10404         change to LINK_COMMAND_SPEC in gcc.c.
10405
10406 2003-01-31  Jan Hubicka  <jh@suse.cz>
10407
10408         PR c/9506
10409         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
10410
10411 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10412
10413         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
10414         duplicated code.
10415
10416 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
10417
10418         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
10419         (BINFO_ELTS): New #define.
10420         * stor-layout.c (finalize_record_size): Don't set them.
10421         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
10422         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
10423         (BINFO_LANG_ELTS): New #define.
10424         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
10425         * java/class.c (make_class): Use BINFO_ELTS.
10426         (set_super_info): Likewse.
10427         (add_interface_do): Likewise.
10428         * objc/objc-act.c (start_class): Use BINFO_ELTS.
10429
10430 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
10431
10432         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
10433         (times): Don't ever declare if not HAVE_TIMES.
10434         (clock): Don't ever declare if not HAVE_CLOCK.
10435
10436 2003-01-30  Richard Henderson  <rth@redhat.com>
10437
10438         * flow.c (update_life_info): Zap life info after cleanup_cfg.
10439         (regno_uninitialized): Use correct live at function entry set.
10440         (regno_clobbered_at_setjmp): Likewise.
10441
10442         * expr.c (store_expr): Promote all MEM intermediates to regs.
10443
10444 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10445
10446         * config/arm/arm.c: Fix comment typos.
10447         * config/arm/arm.h: Likewise.
10448         * config/arm/netbsd-elf.h: Likewise.
10449         * config/arm/netbsd.h: Likewise.
10450
10451 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
10452
10453         * gengtype.c (struct walk_type_data): Add needs_cast_p.
10454         (walk_type): Set needs_cast_p in walk_type_data.
10455         (write_types_process_field): Supply casts when required to suppress
10456         warnings.
10457         (write_root): Cast gt_pch_n_S to suppress warning.
10458         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
10459         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
10460         when they might exist.
10461         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
10462         insn-conditions.o, and rs6000.o.
10463
10464 2003-01-30  Richard Henderson  <rth@redhat.com>
10465
10466         * ggc-page.c (G.context_depth_allocations): New.
10467         (G.context_depth_collections): New.
10468         (alloc_page): Set G.context_depth_allocations.
10469         (ggc_collect): Set G.context_depth_collections.
10470         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
10471         (ggc_pop_context): Early exit for no allocations or collections.
10472
10473 2003-01-30  Richard Henderson  <rth@redhat.com>
10474
10475         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
10476
10477 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
10478
10479         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
10480         size, the link register is always saved if any other register is
10481         saved.
10482
10483 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10484
10485         * config/h8300/h8300-protos.h: Update the prototype for
10486         compute_plussi_cc.
10487         (cpp_reader): Declare before it is used.
10488         * config/h8300/h8300.c (compute_plussi_cc): Change the return
10489         type to int.
10490         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
10491         see an unknown H8 variant.
10492
10493 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
10494
10495         PR target/9316
10496         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
10497         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
10498         * config/rs6000/t-rtems: New file. multilib variants to match OS.
10499         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
10500         rs6000/t-ppcgas so we get the desired multilibs.
10501
10502 2003-01-30  Nick Clifton  <nickc@redhat.com>
10503
10504         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
10505         when popping saved IP register off the stack.
10506
10507 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10508
10509         * config/rs6000/aix43.h: Fix comment typos.
10510         * config/rs6000/aix51.h: Likewise.
10511         * config/rs6000/aix52.h: Likewise.
10512         * config/rs6000/altivec.h: Likewise.
10513         * config/rs6000/rs6000.c: Likewise.
10514         * config/rs6000/rs6000.h: Likewise.
10515         * config/rs6000/rs6000.md: Likewise.
10516         * config/rs6000/spe.md: Likewise.
10517
10518 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
10519
10520         * c-common.c (builtin_define_float_constants): Define
10521         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
10522
10523 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
10524
10525         * config/sh/lib1funcs.asm: Fix comment typos.
10526         * config/sh/linux.h: Likewise.
10527         * config/sh/sh.c: Likewise.
10528         * config/sh/sh.md: Likewise.
10529
10530 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
10531
10532         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
10533
10534 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
10535
10536         * config/fp-bit.h (__make_dp): Declare if TMODES.
10537
10538 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
10539
10540         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
10541         general_operand_src and general_operand_dst.
10542
10543 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
10544
10545         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
10546         Return true for variable sized types.
10547         (rs6000_va_arg): Handle variable sized types passed by reference
10548         on non-SVR4 ABI.
10549
10550 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
10551
10552         * arm.c (arm_legtimize_address): New function.
10553         * arm-protos.h (arm_legtimize_address): Add prototype.
10554         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
10555         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
10556         do ... while (0)
10557
10558 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10559
10560         PR bootstrap/9296
10561         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
10562         depended on it being defined until now.
10563
10564 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10565
10566         PR target/9295
10567         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
10568         RTEMS code knows which C++ initialization style the toolset
10569         configuration is using.
10570
10571 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10572
10573         PR bootstrap/9293
10574         * config/m68k/t-crtstuff: Replace spaces with tabs, add
10575          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
10576
10577 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
10578
10579         PR bootstrap/9292
10580         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
10581         RTEMS threads.
10582         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
10583
10584 2003-01-29  Nick Clifton  <nickc@redhat.com>
10585
10586         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
10587         not $(srcdir).
10588
10589 2003-01-29  Andrew Haley  <aph@redhat.com>
10590
10591         * tree-inline.c (walk_tree): Add CHAR_TYPE.
10592
10593 2003-01-29  Jan Hubicka  <jh@suse.cz>
10594
10595         * i386.md (subdi3_carry_rex64): Fix typo.
10596
10597 2003-01-28  Stan Shebs  <shebs@apple.com>
10598
10599         * coretypes.h (cpp_reader): Forward declare struct.
10600         * c-pragma.h (cpp_reader): Remove forward declaration.
10601         * hashtable.h (cpp_reader): Likewise.
10602         * scan.h (cpp_reader): Likewise.
10603         * tree.h (cpp_reader): Likewise.
10604         * config/darwin-protos.h (cpp_reader): Likewise.
10605         * config/arm/arm-protos.h (cpp_reader): Likewise.
10606         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
10607         struct cpp_reader in prototypes.
10608
10609 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
10610
10611         * doc/install.texi: Add documentation for installation into
10612         tooldirs and with DESTDIR.
10613
10614 2003-01-28  Richard Henderson  <rth@redhat.com>
10615
10616         * config.gcc (ia64*-*-aix*): Remove.
10617         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
10618         * config/ia64/unwind-aix.c: Remove file.
10619
10620 2003-01-28  Andreas Schwab  <schwab@suse.de>
10621
10622         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
10623         register.
10624         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
10625         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
10626         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
10627         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
10628         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
10629         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
10630         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
10631
10632 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10633
10634         * combine.c (nonzero_bits): Fix check for negative divide operands.
10635
10636 2003-01-28  Richard Henderson  <rth@redhat.com>
10637
10638         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
10639         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
10640
10641 2003-01-28  Richard Henderson  <rth@redhat.com>
10642
10643         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
10644
10645         * config/cris/cris.c (cris_address_cost): Make static.
10646         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
10647         * config/cris/cris.h (ADDRESS_COST): Remove.
10648         * config/cris/cris-protos.h: Update.
10649
10650 2003-01-23  Mike Stump  <mrs@apple.com>
10651
10652         * regclass.c (init_reg_autoinc): New function.
10653         (regclass): Move initialization of forbidden_inc_dec_class from
10654         here...
10655         (init_regs): to here.  Avoids reinitialization for each function,
10656         saving compilation time.
10657
10658 2003-01-28  Jason Merrill  <jason@redhat.com>
10659
10660         * cpplib.h (struct cpp_options): Add warn_deprecated field.
10661         * cppinit.c (cpp_create_reader): Turn it on by default.
10662         * c-opts.c (c_common_decode_option): Set it.
10663         * cpplib.c (do_pragma_once): Only complain about #pragma once
10664         if warn_deprecated is set.
10665
10666 2003-01-28  Dale Johannesen  <dalej@apple.com>
10667
10668         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
10669         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
10670         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
10671
10672 2003-01-28  Richard Henderson  <rth@redhat.com>
10673
10674         * target.h (targetm.address_cost): New.
10675         * target-def.h (TARGET_ADDRESS_COST): New.
10676         (TARGET_RTX_COSTS): Uncomment.  Oops.
10677         * cse.c (address_cost): Use new target hook.
10678         (default_address_cost): New.
10679         * output.h (default_address_cost): Declare.
10680         * hooks.c (hook_int_rtx_0): New.
10681         * hooks.h (hook_int_rtx_0): Declare.
10682         * loop.c (combine_givs_p): Remove if 0 code.
10683         * system.h (ADDRESS_COST): Poison.
10684
10685         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
10686         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
10687         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
10688         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
10689         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
10690         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
10691         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10692         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
10693         (ADDRESS_COST): Remove.
10694
10695         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
10696         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
10697         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
10698         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
10699         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
10700         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
10701         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
10702         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
10703         config/mips/mips.c, config/mips/mips.h,
10704         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
10705         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
10706         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
10707         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
10708         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
10709         config/vax/vax.c, config/vax/vax.h
10710         (foo_address_cost): Make static.
10711         (TARGET_ADDRESS_COST): New.
10712         (ADDRESS_COST): Remove.
10713
10714         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
10715         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
10716         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
10717         config/stormy16/stormy16.h
10718         (ADDRESS_COST): Move code ...
10719         (foo_address_cost): ... here.
10720         (TARGET_ADDRESS_COST): New.
10721
10722         * config/m32r/m32r.c (m32r_address_cost): Remove.
10723         * config/m32r/m32r-protos.h: Update.
10724
10725         * config/mmix/mmix.c (mmix_address_cost): Remove.
10726         * config/mmix/mmix-protos.h: Update.
10727
10728         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
10729         mn10300_address_cost; move unsig allocation ...
10730         (mn10300_address_cost): ... here.
10731         (TARGET_ADDRESS_COST): New.
10732         * config/mn10300/mn10300-protos.h: Update.
10733         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
10734
10735         * doc/tm.texi: Update.
10736
10737 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10738
10739         * haifa-sched.c (schedule_insn): Return necessary cycle advance
10740         after issuing the insn.
10741         (rank_for_schedule): Make a insn with /S the highest priority
10742         insn.
10743         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
10744         (choose_ready): Check SCHED_GROUP_P.
10745         (schedule_block): Advance cycle after issuing insn if it is
10746         necessary.  Don't reorder insns if there is an insn with /S.
10747         (set_priorities): Ignore schedule groups.
10748
10749         * sched-deps.c (remove_dependence, group_leader): Remove the
10750         functions.
10751         (add_dependence): Ignore schedule groups.
10752         (set_sched_group_p): Don't make copy of dependencies from previous
10753         insn of the schedule group.  Add anti-dependency to the previous
10754         insn of the schedule group.
10755         (compute_forward_dependences): Ignore schedule groups.
10756
10757         * sched-ebb.c (init_ready_list): Ignore schedule groups.
10758
10759         * sched-rgn.c (init_ready_list): Ditto.
10760         (can_schedule_ready_p): Ditto.
10761
10762 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
10763
10764         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
10765         register to another one.
10766
10767 2003-01-28  Richard Henderson  <rth@redhat.com>
10768
10769         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
10770
10771 2003-01-28  Roger Sayle  <roger@eyesopen.com>
10772
10773         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
10774
10775 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
10776
10777         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
10778         class contains a floating-point register, return the size of the
10779         mode in half words.
10780
10781 2003-01-28  Jan Hubicka  <jh@suse.cz>
10782
10783         * i386.c (ix86_carry_flag_operator):  New predicate.
10784         (fcmov_operator): Fix whitespace.
10785         (ix86_expand_carry_flag_compare):  Deal with floating point.
10786         (ix86_expand_int_movcc): Deal with fp; update insn expansion
10787         (ix86_expand_int_addcc): Likewise.
10788         (ix86_expand_strlensi_unroll_1): likewsie.
10789         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
10790         * i386.md (add?i_carry_rex64): Use new predicate.
10791         (sub?i3_carry_rex64): Likewise.
10792         (x86_mov?icc_0_m1*): Likewise.
10793
10794 2003-01-28  Andreas Schwab  <schwab@suse.de>
10795
10796         * cfgloopmanip.c (create_preheader): Initialize src to avoid
10797         warning.
10798
10799         * expmed.c (emit_store_flag): Fix cast to avoid sign
10800         comparison warning.
10801
10802         * combine.c (force_to_mode): Add cast to fix warning when
10803         STORE_FLAG_VALUE is negative.
10804
10805 2003-01-27  Richard Henderson  <rth@redhat.com>
10806
10807         * Makefile.in (cse.o): Depend on TARGET_H.
10808         * cse.c (rtx_cost): Use targetm.rtx_costs.
10809         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
10810         * doc/tm.texi: Update.
10811
10812         * target.h (targetm.rtx_costs): New.
10813         * target-def.h (TARGET_RTX_COSTS): New.
10814         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
10815         * hooks.h: Update.
10816
10817         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
10818         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
10819         * config/alpha/alpha.h (PROCESSOR_MAX): New.
10820         (CONST_COSTS, RTX_COSTS): Remove.
10821
10822         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
10823         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
10824         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
10825         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
10826         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
10827         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
10828         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
10829         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
10830         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
10831         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
10832         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
10833         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
10834         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
10835         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
10836         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
10837         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
10838         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
10839         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
10840         config/v850/v850.c, config/v850/v850.h,
10841         config/xtensa/xtensa.c, config/xtensa/xtensa.h
10842         (CONST_COSTS, RTX_COSTS): Move code ...
10843         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
10844
10845         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
10846         (arm_rtx_costs, TARGET_RTX_COSTS): New.
10847         * config/arm/arm-protos.h: Update.
10848         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
10849
10850         * config/avr/avr.h (CONST_COSTS): Move code ...
10851         * config/avr/avr.c (avr_rtx_costs): ... here.
10852         (default_rtx_costs): Make static.
10853         * config/avr/avr-protos.h: Update.
10854
10855         * config/h8300/h8300.c (const_costs): Make static.
10856         (h8300_and_costs, h8300_shift_costs): Likewise.
10857         * config/h8300/h8300-protos.h: Update.
10858
10859         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
10860         (CONST_COSTS): Move code ...
10861         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
10862         default_rtx_costs; update for signature change.
10863         * config/ip2k/ip2k-protos.h: Update.
10864
10865         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
10866         (CONST_COSTS): Move code ...
10867         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
10868         (TARGET_RTX_COSTS): New.
10869         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
10870         * config/m68hc11/m68hc11-protos.h: Update.
10871
10872         * config/m68k/m68k.c (const_int_cost): Make static.
10873         * config/m68k/m68k-protos.h: Update.
10874
10875         * config/mcore/mcore.c (mcore_const_costs): Make static.
10876         (mcore_and_cost, mcore_ior_cost): Likewise.
10877         * config/mcore/mcore-protos.h: Update.
10878
10879         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
10880         (mmix_rtx_cost_recalculated): Remove.
10881         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
10882         * config/mmix/mmix-protos.h: Update.
10883
10884         * config/sh/sh.c (shiftcosts): Make static.
10885         (addsubcosts, andcosts, multcosts): Likewise.
10886         * config/sh/sh-protos.h: Update.
10887
10888         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
10889         (sparc_rtx_costs): Make static; update for change in signature.
10890         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
10891         * config/sparc/sparc-protos.h: Update.
10892
10893         * config/v850/v850.c (const_costs): Make static.
10894         * config/v850/v850-protos.h: Update.
10895
10896         * config/vax/vax.h (RTX_COSTS): Remove.
10897         (CONST_COSTS): Move code ...
10898         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
10899         from vax_rtx_cost.
10900         (vax_rtx_costs, TARGET_RTX_COSTS): New.
10901
10902 2003-01-27  Richard Henderson  <rth@redhat.com>
10903
10904         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
10905         * config/vax/vax-protos.h: Update.  Really.
10906
10907 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
10908
10909         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
10910         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
10911         zero if no hardware floating point.
10912         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
10913         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
10914         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
10915         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
10916         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
10917         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
10918         even FP registers on N32 and N64.
10919         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
10920         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
10921         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
10922         even-register-like alignment to 128-bit arguments.
10923         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
10924         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
10925         on N32 or N64.
10926         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
10927         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
10928         (TPBIT): Set to tp-bit.c.
10929         (tp-bit.c): Create out of fp-bit.c.
10930
10931 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
10932
10933         * c-parse.in: Remove '%expect 32' directive in objc mode.
10934
10935 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
10936
10937         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
10938         (LIBGCOV): New variable.
10939         (libgcc.mk): Add LIBGCOV.
10940         (LIBGCC_DEPS): Add libgcov.c.
10941         (libgcov.a): New target.
10942         (clean): Remove libgcov.a.
10943         (install-libgcc): Do libgcov too.
10944         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
10945         with libgcov.a.
10946         * libgcc2.c (L_gcov): Move into ...
10947         * libgcov.c: ... here. New file.
10948         * mklibgcc.in: Add libgcov rules.
10949         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
10950
10951         * doc/invoke.texi (profile-arcs, test-coverage): Update and
10952         clarify.
10953
10954         * profile.c (index_counts_file): Remove duplicate check for open file.
10955
10956 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
10957
10958         * gcc/doc/invoke.texi (Optimization Options): Group together
10959         optional and experimental flags.  Move trapv and bounds-check
10960         out of this section.  Group floating point flags together.
10961         (Code Gen Options): Move trapv and bounds-check to here.
10962
10963 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
10964
10965         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
10966
10967 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
10968
10969         PR optimization/9090
10970         * function.c (purge_addressof_1): After pushing an addressed register
10971         onto the stack, simplify the result.
10972
10973 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10974
10975         * doc/extend.texi: Fix typo.
10976
10977 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10978
10979         * doc/cppopts.texi: Fix typo.
10980         * doc/objc.texi: Likewise.
10981         * doc/passes.texi: Likewise.
10982
10983 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
10984
10985         * real.c (ibm_extended_format): Add 53 to minimum exponent.
10986         (encode_ibm_extended): Adjust.
10987
10988 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
10989
10990         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
10991         timevar_id enumerations.
10992
10993 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10994
10995         * combine.c: Fix formatting.
10996
10997 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10998
10999         * doc/gccint.texi: Update the copyright.
11000
11001 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
11002
11003         * doc/cpp.texi: Fix typos.
11004         * doc/extend.texi: Likewise.
11005         * doc/gty.texi: Likewise.
11006         * doc/install.texi: Likewise.
11007         * doc/passes.texi: Likewise.
11008         * doc/rtl.texi: Likewise.
11009         * doc/tm.texi: Likewise.
11010
11011 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
11012
11013         * config/ia64/fde-glibc.c: Fix comment typos.
11014         * config/ia64/hpux.h: Likewise.
11015         * config/ia64/ia64.c: Likewise.
11016         * config/ia64/ia64.h: Likewise.
11017         * config/ia64/unwind-ia64.c: Likewise.
11018
11019 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
11020
11021         * config/i386/i386-modes.def: Fix comment typos.
11022         * config/i386/i386.c: Likewise.
11023         * config/i386/i386.md: Likewise.
11024
11025 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
11026
11027         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
11028         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
11029         ASM_FINISH_DECLARE_OBJECT before defining it.
11030         * toplev.c (rest_of_decl_compilation):  Don't define
11031         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
11032         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
11033         parameters for DWARF2 targets because they _are_ used.
11034
11035 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
11036
11037         * fp-bit.h: Define macros for TFmode floating-point constants
11038         in IBM-extended TFmode types.
11039         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
11040         widths.
11041         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
11042         TFmode type.
11043
11044         * config/fp-bit.h: Define macros for TFmode floating-point
11045         constants in IEEE quad TFmode type.  Declare functions according
11046         to L_ macros.
11047         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
11048         (TFtype, TItype, UTItype): Define if TMODES is defined.
11049         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
11050         (F_T_BITOFF, D_T_BITOFF): Define.
11051         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
11052         guaranteed to be wide enough.
11053         * config/fp-bit.c: Check for L_ macros for tf functions.
11054         (__thenan_tf): New.
11055         (nan): Adjust.
11056         (pack_d, unpack_d): Support IEEE 854 quad type.
11057         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
11058         from FRAC_NBITS, FRAC_BITS and NGARDS.
11059         (usi_to_float): Cast constants to be shifted to fractype
11060         instead of assuming long long is wide enough.
11061         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
11062
11063 2003-01-26  Andreas Jaeger  <aj@suse.de>
11064
11065         * df.c: Remove prototype of unused function df_regno_rtl_debug.
11066
11067 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
11068
11069         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
11070         (DBBIT_FUNCS): Added _df_to_tf.
11071         (TPBIT_FUNCS): New.
11072         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
11073         (LIBGCC_DEPS): Added TPBIT.
11074         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
11075
11076         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
11077         been able to move the result to target.
11078
11079         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
11080         for the appropriate mode.
11081
11082         * calls.c (emit_library_call_value_1): Handle return values
11083         in a PARALLEL.
11084
11085         * rtl.c (get_mode_alignment): Moved to...
11086         * stor-layout.c: ... here.
11087
11088         * print-rtl.c (print_rtx): Don't print MEM details in
11089         GENERATOR_FILEs.
11090
11091 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
11092
11093         * df.h: Update comments, tidy formatting.
11094         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
11095         REVERSE, UNION, INTERSECTION.  All uses updated.
11096         (OLD_DF_INTERFACE): Remove.
11097         (struct insn_info): Remove commented out insn field.
11098         * df.c: Update comments, tidy formatting.
11099         (df_def_table_realloc): Remove.
11100
11101
11102 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
11103
11104         * calls.c (save_fixed_argument_area): Tidy.
11105         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
11106         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
11107         call chain loop at 1 if !try_tail_call.  Formatting.
11108         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
11109         Use save_fixed_argument_area and restore_fixed_argument_area.
11110
11111 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11112
11113         * df.c (df_uses_record): Handle CC0.
11114
11115 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
11116
11117         * reload.c (maybe_memory_address_p): New function.
11118         (find_reloads_address): Use it instead of memory_address_p.
11119
11120 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
11121
11122         * final.c (shorten_branches): Align the address of code label
11123         when computing initial lengths and addresses.
11124
11125 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11126
11127         * config/m68hc11/m68hc11.md: Fix a comment typo.
11128
11129 2003-01-25  Andreas Jaeger  <aj@suse.de>
11130
11131         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
11132         TARGET_MACHO.
11133
11134 2003-01-25  Roger Sayle  <roger@eyesopen.com>
11135
11136         * gcse.c (bypass_last_basic_block): New global variable.
11137         (bypass_block):  Use redirect_edge_and_branch_force to redirect
11138         fall-through edges.  Use bypass_last_basic_block to determine
11139         which blocks have valid PRE information.
11140         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
11141
11142 2003-01-25  Jan Hubicka  <jh@suse.cz>
11143
11144         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
11145
11146 2003-01-25  Jan Hubicka  <jh@suse.cz>
11147                               Eric Botcazou <ebotcazou@libertysurf.fr>
11148         PR opt/8492
11149         * gcse.c (one_cprop_pass): Delete unreachable blocks.
11150
11151 2003-01-25  Richard Henderson  <rth@redhat.com>
11152
11153         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
11154         from ia64_aix_select_rtx_section.
11155         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
11156         instead of saving and restoring flag_pic.
11157         (ia64_rwreloc_unique_section): Similarly.
11158         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
11159         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
11160         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
11161         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
11162
11163 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11164
11165         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
11166         comment.
11167
11168 2003-01-25  Richard Henderson  <rth@redhat.com>
11169
11170         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
11171
11172 2003-01-25  Kelley Cook <kelleycook@comcast.net>
11173
11174         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
11175
11176 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
11177
11178         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
11179         type for bitmaps.  Use unsigned long.
11180         (nBITMAP_WORD_BITS): New macro.
11181         (BITMAP_WORD_BITS): New macro.
11182         (rest of file): Use it.
11183         * bitmap.c: Use it.
11184
11185 2003-01-25  Richard Henderson  <rth@redhat.com>
11186
11187         2002-02-19  Robert Lipe  <robertlipe@usa.net>
11188         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
11189
11190 2003-01-25  Roger Sayle  <roger@eyesopen.com>
11191
11192         * builtins.c (purge_builtin_constant_p): Scan insn stream
11193         sequentially rather than by basic block.
11194         * function.c (purge_addressof): Simplify test with INSN_P.
11195
11196 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
11197
11198         * combine.c (simplify_comparison, case AND): Remove a redundant test.
11199
11200 2003-01-25  Roger Sayle  <roger@eyesopen.com>
11201
11202         * function.h (struct function): New field calls_constant_p.
11203         (current_function_calls_constant_p): New macro for above.
11204         * function.c (prepare_function_start): Initialize calls_eh_return
11205         and calls_constant_p.
11206         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
11207         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
11208         when the current_function_calls_constant_p.
11209         * integrate.c (expand_inline_function): Set calls_constant_p if
11210         the function being inlined has calls_constant_p set.
11211
11212 2003-01-25  Roger Sayle  <roger@eyesopen.com>
11213
11214         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
11215         optimizing, even if flag_gcse is true.
11216         * toplev.c (rest_of_compilation): purge_builtin_constant_p
11217         only needs to be called when "optimize > 0 && flag_gcse".
11218
11219 2003-01-25  Roger Sayle  <roger@eyesopen.com>
11220
11221         * stmt.c (emit_case_bit_tests): New routine to implement suitable
11222         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
11223         (case_bit_test_cmp): New comparison function for "qsort" to order
11224         case_bit_tests by decreasing number of destination nodes.
11225         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
11226         (expand_end_case_type): Use emit_case_bit_tests to implement
11227         suitable switch statments.
11228         (CASE_USE_BIT_TESTS): New target macro to disable the above.
11229         * Makefile.in (stmt.o): Add dependency on optab.h.
11230         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
11231
11232 2003-01-23  Andreas Schwab  <schwab@suse.de>
11233
11234         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
11235         __do_global_ctors_aux hidden global and don't put it in
11236         .init_array.
11237         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
11238         instead so that it comes first.
11239
11240 2003-01-25  Jan Hubicka  <jh@suse.cz>
11241
11242         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
11243         subreg is read/modify.
11244
11245 2003-01-25  Jan Hubicka  <jh@suse.cz>
11246
11247         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
11248         do libcall for large blocks.
11249         * i386.md (comi patterns): Set type to ssecomi.
11250         (sse2_unpck?pd): Fix mode of vec_select.
11251
11252         * cse.c: Include except.h
11253         (cse_set_around_loop):  Do not create new basic blocks.
11254         * Makefile.in (cse.o): Add dependnecy on except.h
11255
11256 2003-01-25  Jan Hubicka  <jh@suse.cz>
11257
11258         * builtins.c (fold_trunc_transparent_mathfn): New function.
11259         (fold_builtin): Use it.
11260         * convert.c (convert_to_real): Re-enable code to convert
11261         math functions; add support for floor familly functions.
11262
11263 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11264
11265         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
11266         dependencies on coretypes.h and $(TM_H).
11267
11268 2003-01-25  Jan Hubicka  <jh@suse.cz>
11269
11270         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
11271
11272 2003-01-24  Stuart Hastings  <stuart@apple.com>
11273
11274         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
11275
11276 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
11277
11278         * config/c4x/c4x.md (UNSPEC_BU): New constants.
11279         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
11280         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
11281         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
11282         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
11283         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
11284         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
11285         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
11286
11287 2003-01-24  Jan Hubicka  <jh@suse.cz>
11288
11289         * emit-rtl.c (reg_attrs_htab): New static variable.
11290         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
11291         functions.
11292         (reg_rtx): Do not maintain regno_decl.
11293         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
11294         set_mem_attrs_from_reg): New global function.
11295         (init_emit): Do not initialize regno_decl.
11296         (init_emit_once): initialize reg_attrs_htab.
11297         * final.c (alter_subreg): Do not replace REG by SUBREG.
11298         (gen_mem_expr_from_op): Improve output.
11299         (output_asm_operands): Likewise.
11300         * function.c (assign_params): Do not set REGNO_DECL.
11301         * function.h (struct function): Kill regno_decl.
11302         (REGNO_DECL): Kill.
11303         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
11304         * print_rtl.c (print_rtx): Output REG information.
11305         * regclass.c (reg_scan_mark_refs): Update attrs.
11306         * reload1.c (alter_reg): Likewise.
11307         * simplify_rtx.c (simplify_subreg): Likewise.
11308         * stmt.c (expand_decl): Likewise.
11309         * rtl.def (REG): Add new field.
11310         * rtl.h (struct reg_attrs): New.
11311         (rtunion_def): At rtreg.
11312         (X0MEMATTR): Add checking.
11313         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
11314         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
11315         Declare.
11316         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
11317
11318 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
11319
11320         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
11321         (xtensa_emit_call, print_operand): Fix printf format strings
11322         to avoid compile warnings.
11323         (xtensa_function_prologue, xtensa_function_epilogue): Change type
11324         of "size" argument to HOST_WIDE_INT to fix compile warnings.
11325         * config/xtensa/xtensa-protos.h
11326         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
11327
11328 2003-01-24  Jan Hubicka  <jh@suse.cz>
11329
11330         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
11331         (implicit_built_in_decls): New global array.
11332         (mathfn_built_in): New global function.
11333         (fold_trunc_transparent_mathfn): New static function
11334         (expand_builtin_strstr, expand_bultin_strchr,
11335         expand_builtin_strpbrk, expand_builtin_strcpy,
11336         expand_builtin_strncpy, expand_bultin_strcmp,
11337         expand_bultin_strncat, expand_builtin_fputs): Use
11338         implicint_built_in_decls.
11339         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
11340         * builtins.def: Fix comments.
11341         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
11342         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
11343         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
11344         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
11345         (DEF_C99_C90RES_BULTIN): New.
11346         (*f, *l builtins): Update.
11347         * c-common.c (DEF_BUILTIN): Initialize implicit array.
11348         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
11349         * convert.c (strip_float_extensions): New global function.
11350         * tree.h (DEF_BUILTIN): Accept 10 arguments.
11351         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
11352         Declare.
11353         * java/builtins.c (define_builtin): Handle implicit.
11354         (DEF_BUILTIN): Update.
11355         * tm.texi (TARGET_C99_FUNCTIONS): Document.
11356         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
11357         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
11358         when using glibc2.
11359
11360 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
11361
11362         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
11363         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
11364         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
11365         * config/xtensa/crti.asm: New file.
11366         * config/xtensa/crtn.asm: New file.
11367         * config/xtensa/t-elf: New file.
11368         * config/xtensa/t-linux: New file.
11369         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
11370         Move various CFLAGS settings to new t-elf file.
11371
11372 2003-01-24  Richard Henderson  <rth@redhat.com>
11373
11374         PR optimization/4382
11375         * tree-inline.c (find_builtin_longjmp_call_1): New.
11376         (find_builtin_longjmp_call): New.
11377         (inlinable_function_p): Use it.
11378
11379 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11380
11381         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
11382         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
11383         * config/i386/i386.c (function_arg_pass_by_reference): New.
11384         (ix86_va_arg): Support arguments passed by reference.
11385
11386 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11387
11388         * cfgloopanal.c: New file.
11389         * cfgloopmanip.c: New file.
11390         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
11391         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
11392         cfglayout.o): Add dependency on cfgloop.h.
11393         (cfgloop.o): Add flags.h dependency.
11394         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
11395         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
11396         (struct loop, struct loops, flow_loops_find, flow_loops_update,
11397         flow_loops_free, flow_loops_dump, flow_loop_dump,
11398         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
11399         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
11400         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
11401         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
11402         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
11403         find_common_loop, verify_loop_structure): Declarations moved to ...
11404         * cfgloop.h: New file.
11405         * bb-reorder.c (reorder_basic_blocks): Modified.
11406         * cfglayout.c: Include cfgloop.h.
11407         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
11408         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
11409         (break_superblocks): New static function.
11410         (cfg_layout_finalize): Use it.
11411         (cfg_layout_split_block): New function.
11412         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
11413         fields.
11414         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
11415         changed.
11416         (cfg_layout_split_block): Declare.
11417         * cfgloop.c: Include cfgloop.h and flags.h.
11418         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
11419         get_loop_body): Avoid signed versus unsigned comparison warnings.
11420         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
11421         loop_latch_edge): Modified.
11422         (verify_loop_structure): Modified to use flags stored in loop structure;
11423         check irreducible loops.
11424         (cancel_loop, cancel_loop_tree): New functions.
11425         (estimate_probability): Use loop analysis code for predictions.
11426         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
11427         warnings.
11428         * doloop.c: Include cfgloop.h.
11429         * loop.c: Include cfgloop.h.
11430         * predict.c: Include cfgloop.h.
11431         * toplev.c: Include cfgloop.h.
11432         * unroll.c: Include cfgloop.h.
11433         * tracer.c (tracer): Modified.
11434
11435 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11436
11437         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
11438
11439 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
11440
11441         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
11442         * configure: Regenerate.
11443
11444         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
11445         (tls_symbolic_reference_mentioned_p): Add prototype.
11446         (s390_tls_get_offset): Add prototype.
11447         (emit_pic_move): Remove prototype, replace by ...
11448         (emit_symbolic_move): .. this new prototype.
11449
11450         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
11451         (tls_model_chars): New global variable.
11452         (s390_encode_section_info): Encode TLS model.
11453         Use targetm.binds_local_p to check for local symbols.
11454         (s390_strip_name_encoding): New function.
11455         (TARGET_STRIP_NAME_ENCODING): Define.
11456
11457         (get_thread_pointer): New function.
11458         (legitimize_tls_address): New function.
11459         (legitimize_address): Call it.
11460         (emit_pic_move): Remove, replace by ...
11461         (emit_symbolic_move): ... this new function.
11462
11463         (larl_operand): Handle TLS operands.
11464         (legitimate_constant_p): Likewise.
11465         (s390_decompose_address): Likewise.
11466         (s390_cannot_force_const_mem): New function.
11467         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
11468
11469         (s390_output_symbolic_const): Handle TLS unspecs.
11470         (print_operand): New code 'J'.
11471         (machine_function): Add struct member 'some_ld_name'.
11472         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
11473
11474         (enum s390_builtin): New type.
11475         (code_for_builtin_64, code_for_builtin_31): New global variables.
11476         (s390_init_builtins, s390_expand_builtin): New functions.
11477         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
11478
11479         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
11480         (ASM_OUTPUT_LABELREF): Define.
11481         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
11482
11483         * config/s390/s390.md: Define TLS UNSPEC constants.
11484         ("movdi", "movsi"): Handle TLS operands.
11485         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
11486         ("*tls_load_64", "*tls_load_31"): New insns.
11487         ("call_value_tls", "call_value_tls_exp"): New expanders.
11488         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
11489         "bas_tls_64", "bas_tls_31"): New insns.
11490
11491 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
11492
11493         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
11494         spe ABI is configured, if requested.
11495
11496 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11497
11498         * doc/passes.texi: Fix typo.
11499
11500 2003-01-24  Andreas Schwab  <schwab@suse.de>
11501
11502         * stor-layout.c (excess_unit_span): Only define if used.
11503
11504 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
11505
11506         * gcc/doc/invoke.texi (Optimization Options): List -O levels
11507         for each optimization flag.
11508
11509 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
11510
11511         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
11512
11513 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11514
11515         * doc/bugreport.texi: Use @command instead of @code for commands.
11516         * doc/collect2.texi: Likewise.
11517         * doc/headerdirs.texi: Likewise.
11518         * doc/invoke.texi: Likewise.
11519         * doc/standards.texi: Likewise.
11520         * doc/tm.texi: Likewise.
11521         * doc/trouble.texi: Likewise.
11522
11523 2003-01-24  Nick Clifton  <nickc@redhat.com>
11524
11525         * config/arm/arm.c (use_return_insn): Do not use a single return
11526         instruction for interrupt handelrs which have to create a stack
11527         frame.
11528         (arm_expand_prologue): Do not pre-bias the return address of
11529         interrupt handlers which create a stack frame.
11530
11531 2003-01-24  Nick Clifton  <nickc@redhat.com>
11532
11533         * Add sh2e support:
11534
11535         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
11536
11537                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
11538                 med_cbranches.  Fix logic in short_cbranches.
11539
11540         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
11541
11542                 * config/sh/sh.md (delay for cbranch): Don't annul delay
11543                 slots on SH2e.
11544                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
11545                 cbranch with unfilled delay slot on SH2e.
11546                 (output_branch): Fill with a nop the delay slot of a
11547                 branch that required a delay slot but didn't get one.
11548
11549         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
11550
11551                 * doc/invoke.texi (SH options): Document -m2e.
11552                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
11553                 * config/sh/lib1funcs.asm: Likewise.
11554                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
11555                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
11556                 not __sh1__.
11557                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
11558                 SH2E up.
11559                 (SH3E_BIT): Renamed to...
11560                 (SH_E_BIT): ... this.  Replace all uses.
11561                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
11562                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
11563                 (TARGET_SWITCHES): Added 2e.
11564                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
11565                 (processor_type): Added PROCESSOR_SH2E.
11566                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
11567                 TARGET_SH2E, except in sqrtsf2_i.
11568                 (attribute cpu): Added sh2e.
11569                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
11570                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
11571                 * config.gcc: Add sh2e target support.
11572
11573 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
11574
11575         Rename -W to -Wextra.
11576         * c-decl.c:  Update comments.
11577         * c-typeck.c:  Likewise.
11578         * flags.h:  Likewise.
11579         * function.c:  Likewise.
11580         * stmt.c:  Likewise.
11581         * toplev.c:  Update comments.
11582         (W_options):  Add 'extra'.
11583         (display_help):  Remove '-W'.
11584         (decode_W_option):  Special warn_uninitialized treatment in the case
11585         of -Wextra.
11586         * doc/invoke.texi:  Update with new entries.
11587
11588 2003-01-23  Richard Henderson  <rth@redhat.com>
11589
11590         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
11591         in no-else-block case.  Add commentary.
11592
11593 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11594
11595         * configure.in: Revert last change.
11596
11597 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11598
11599         * configure.in: Don't include ansidecl.h in tconfig.h.
11600         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
11601         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
11602         ATTRIBUTE_UNUSED.
11603
11604         * configure: Regenerate.
11605
11606 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
11607
11608         PR java/6748
11609         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
11610         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
11611         kernels.
11612
11613 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11614
11615         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
11616
11617 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
11618
11619         * genattrtab.c (write_attr_get): Mark 'insn' paramter
11620         as ATTRIBUTE_UNUSED.
11621
11622 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
11623
11624         * arm.c (thumb_base_register_rtx_p): New function.
11625         (thumb_index_register_rtx_p): New function.
11626         (thumb_legitimate_address_p): New function.
11627         (thumb_legitimate_offset_p): New function.
11628         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
11629         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
11630         definitions.
11631         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
11632         (THUMB_LEGITIMATE_OFFSET): Delte.
11633         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
11634         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
11635         (thumb_legitimate_offset_p): Likewise.
11636
11637 2003-01-23  Andreas Schwab  <schwab@suse.de>
11638
11639         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
11640
11641 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11642
11643         * fixinc/Makefile.in (FL_LIST): Revert last change.
11644
11645 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
11646
11647         PR other/7341
11648         * invoke.texi (ftest-coverage): Fix broken cross-reference.
11649         Change @code to @command for gcov command.
11650
11651         * gcc.texi: Adjust title of gcov section.
11652         Adjust copyright.
11653         * gcov.texi: Likewise.
11654
11655 2003-01-22  Roger Sayle  <roger@eyesopen.com>
11656
11657         PR optimization/8423
11658         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
11659         its argument is constant, or 0 if !flag_gcse.
11660         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
11661         if it's argument is constant.
11662         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
11663         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
11664         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
11665         * builtins.c (purge_builtin_constant_p): New function to force
11666         instantiation of any remaining CONSTANT_P_RTX nodes.
11667         * rtl.h (purge_builtin_constant_p): Prototype here.
11668         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
11669         pass after GCSE and before loop.
11670         (flag_gcse): No longer static.
11671         * flags.h (flag_gcse): Prototype here.
11672
11673 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11674
11675         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
11676         introduced by last change.
11677
11678 2003-01-22  Andreas Schwab  <schwab@suse.de>
11679
11680         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
11681
11682 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
11683
11684         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
11685         request a scratch reg on H8S when the shift count is 8.
11686
11687 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
11688
11689         * config/s390/s390-protos.h (preferred_la_operand_p):
11690         Remove second parameter.
11691         * config/s390/s390.c (preferred_la_operand_p): Likewise.
11692         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
11693         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
11694         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
11695         Add peepholes to transform ADD to LOAD ADDRESS.
11696
11697 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
11698
11699         * arm.c (arm_address_register_rtx_p): New function.
11700         (arm_legitimate_address_p): New function.
11701         (arm_legitimate_index_p): New function.
11702         (legitimize_pic_address): Use arm_legitimate_index_p.
11703         * arm-protos.h (arm_legtimate_address_p): Add prototype.
11704         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
11705         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
11706
11707 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
11708
11709         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
11710         * config/s390/2064.md (define_bypass): Correct 'Load' and
11711         'Load-address' bypass values.
11712
11713 2003-01-22  Andreas Schwab  <schwab@suse.de>
11714
11715         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
11716
11717 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11718
11719         * genautomata.c (output_internal_insn_latency_func,
11720         output_print_reservation_func): Short circuit when there is no
11721         automaton to generate code for.
11722
11723 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11724
11725         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
11726         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
11727
11728 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
11729
11730         * config/rs6000/rs6000.md: Remove warning.
11731         (builtin_setjmp_receiver): Likewise.
11732         * config/darwin.c (update_stubs): Slightly improve terrible hack
11733         with identifiers.  Add comment pointing out problems with it.
11734         (update_non_lazy_ptrs): Likewise.
11735
11736 2003-01-21  Richard Henderson  <rth@redhat.com>
11737
11738         * dwarf2out.c (lookup_filename): Fix printf format warning.
11739         * system.h (fread_unlocked, fwrite_unlocked): Undef.
11740
11741         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
11742         (fixincl.o-warn, gnu-regex.o-warn): New.
11743         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
11744         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
11745         * fixinc/fixincl.c (process): Fix printf format warning.
11746
11747 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11748
11749         * dwarf2out (output_file_names): Don't crash if called
11750         with empty file_table.
11751
11752 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11753
11754         * genautomata.c (output_internal_insn_latency_func): Add
11755         missing break statement to generated code.
11756
11757 2003-01-21  Roger Sayle  <roger@eyesopen.com>
11758
11759         * stmt.c (same_case_target_p): New function to determine whether
11760         two case labels branch to the same target.  Split out from...
11761         (group_case_nodes): ... here.  Use same_case_target_p instead.
11762         (strip_default_case_nodes): Remove explicit case nodes
11763         that branch to the default destination.
11764         (expand_end_case_type): Call strip_default_case_nodes after
11765         group_case_nodes, to simplify the case-list before we count it.
11766         Only generate table_label RTX when actually needed.  Try to share
11767         thiscase->exit_label and thiscase->data.case_stmt.default_label
11768         when a switch has no explicit default case.  Simplify test for
11769         constant index.
11770
11771 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11772
11773         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
11774         \t.
11775         (*negsf2_h8300hs): Likewise.
11776         (*addsi3_lshiftrt_16_zexthi): Likewise.
11777         (*iorhi3_lshiftrt_8): Likewise.
11778
11779 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
11780
11781         * dwarf2out.c (fde_table_in_use): Mark GTY.
11782         (dwarf2out_cfi_label_num): New variable, marked GTY.
11783         (dwarf2out_cfi_label): Use it instead of static label_num.
11784         * emit-rtl.c (label_num): Mark GTY.
11785
11786 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
11787
11788         * config/h8300/h8300.c (output_plussi): Support H8/300.
11789         (compute_plussi_length): Likewise.
11790         (compute_plussi_cc): Likewise.
11791         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
11792         output assembly instructions.
11793
11794 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11795
11796         * calls.c (fix_unsafe_tree): Prototype.
11797
11798         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
11799         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
11800         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
11801         c-parse.o-warn): Add -Wno-error.
11802         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
11803
11804         * configure.in (--enable-werror): Add new flag.
11805         * doc/install.texi (--enable-werror): Document.
11806         * configure: Regenerate.
11807
11808         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
11809
11810 2003-01-21  Andreas Schwab  <schwab@suse.de>
11811
11812         * genautomata.c (output_internal_insn_latency_func): Fix missing
11813         close paren in output.
11814
11815 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
11816
11817         * genautomata.c: Space savings in generated code:
11818         (output_dfa_insn_code_func): Split out the table-enlargement
11819         path to an out-of-line static function, dfa_insn_code_enlarge.
11820         (output_internal_insn_latency_func): Use a lookup table for the
11821         default latencies.
11822         (output_print_reservation_func): Use a lookup table for the
11823         strings.
11824
11825 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
11826
11827         PR opt/7507
11828         * calls.c (fix_unsafe_tree): Split out from ...
11829         (expand_call): ... here.  Use it on the function address too.
11830
11831 2003-01-20  Richard Henderson  <rth@redhat.com>
11832
11833         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
11834
11835 2003-01-20  Richard Henderson  <rth@redhat.com>
11836
11837         PR opt/7154
11838         * stmt.c (expand_asm_operands): Validize memory operands.
11839
11840 2003-01-20  Richard Henderson  <rth@redhat.com>
11841
11842         PR opt/8848
11843         * ifcvt.c (noce_process_if_block): Correct arguments to
11844         modified_between_p for no-else-block case.
11845
11846 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11847
11848         * config/h8300/h8300.c (const_costs): Remove a warning.
11849         (output_plussi): Likewise.
11850         (compute_plussi_length): Likewise.
11851         (compute_plussi_cc): Likewise.
11852
11853 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11854
11855         * config/h8300/h8300.md (addsi_h8300): Remove the last
11856         alternative.
11857
11858 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11859
11860         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
11861
11862 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11863
11864         * system.h (__NO_STRING_INLINES): Define.
11865
11866 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11867
11868         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
11869         is not a scalar int mode.
11870
11871 2003-01-20  Roger Sayle  <roger@eyesopen.com>
11872
11873         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
11874         insn's notes following a substitution inside a libcall.
11875
11876 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
11877
11878         * configure.in: Check for system-provided 'uchar' type.
11879         * configure, config.in: Regenerate.
11880         * cpphash.h: Only typedef 'uchar' if the system doesn't.
11881
11882 2003-01-20  Richard Henderson  <rth@redhat.com>
11883
11884         * expr.h (MUST_PASS_IN_STACK): Move implementation...
11885         * calls.c (default_must_pass_in_stack): ... here.
11886
11887 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
11888
11889         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
11890
11891         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
11892
11893         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
11894         Wrap up definition of `insn_alts'.
11895
11896         * genattrtab.c (main): Wrap up `insn_alts'.
11897
11898 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11899
11900         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
11901         prototyping.
11902         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
11903
11904         * config.in, configure: Regenerate.
11905
11906 2003-01-20  Nick Clifton  <nickc@redhat.com>
11907
11908         * config/arm/arm.md (sibcall_epilogue): Add an
11909         UNSPEC_PROLOGUE_USE to prevent the link register from being
11910         considered dead.
11911
11912 2003-01-20  Jan Hubicka  <jh@suse.cz>
11913
11914         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
11915
11916 2003-01-20  Andreas Schwab  <schwab@suse.de>
11917
11918         * system.h: Don't declare strsignal if the decl test hasn't been
11919         run yet.
11920
11921 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
11922
11923         * config/h8300/h8300.c (notice_update_cc): Don't assume that
11924         recog_data.operands[0] is always associated with cc0.
11925
11926 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
11927
11928         * collect2.c (ldgetname): Expand declaration to prototype.
11929         * read-rtl.c (atoll): Add prototype.
11930         * system.h (strsignal): Also declare if no declaration found.
11931
11932 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
11933
11934         * config.gcc (mips64*-*-linux*): Added.
11935         * config/mips/linux64.h, config/mips/t-linux64: New file.
11936         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
11937         * config/mips/mips.c (override_options): Use it.
11938         * config/mips/mips.h (TARGET_SWITCHES): Added...
11939         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
11940         * Makefile.in (SPECS): New.
11941         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
11942         * gcc.c (process_command): Move self-spec processing past spec
11943         file loading.
11944         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
11945         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
11946         CRTSTUFF_T_CFLAGS.
11947         (SPECS): Document.
11948         * doc/invoke.texi (-mabi-fake-default): Document.
11949
11950 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
11951
11952         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
11953         z_reg, z_reg_qi): Declare static and GTY().
11954         (da_reg): Remove.
11955         (create_regs_rtx): Don't create da_reg.
11956         ("gt-m68hc11.h"): Include for GTY roots.
11957         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
11958         and GTY() here.
11959         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
11960         (m68hc11_soft_tmp_reg): Likewise.
11961         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
11962
11963 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11964
11965         * basic-block.h: Fix comment formatting.
11966         * calls.c: Likewise.
11967         * combine.c: Likewise.
11968         * convert.c: Likewise.
11969         * gcov.c: Likewise.
11970         * haifa-sched.c: Likewise.
11971         * libgcc2.c: Likewise.
11972         * loop.c: Likewise.
11973         * profile.c: Likewise.
11974         * system.h: Likewise.
11975
11976 2003-01-18  Roger Sayle  <roger@eyesopen.com>
11977
11978         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
11979
11980 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11981
11982         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
11983
11984 2003-01-17  Dale Johannesen  <dalej@apple.com>
11985
11986         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
11987           (*floatunssidf2_internal):  Ditto.
11988
11989 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
11990
11991         * alias.c: Fix comment typos.
11992         * basic-block.h: Likewise.
11993         * c-common.c: Likewise.
11994         * c-common.h: Likewise.
11995         * c-decl.c: Likewise.
11996         * c-opts.c: Likewise.
11997         * c-pragma.c: Likewise.
11998         * c-pretty-print.h: Likewise.
11999         * cfg.c: Likewise.
12000         * cfganal.c: Likewise.
12001         * cfgbuild.c: Likewise.
12002         * cfgcleanup.c: Likewise.
12003         * cfglayout.c: Likewise.
12004         * cfgrtl.c: Likewise.
12005         * convert.c: Likewise.
12006         * cpphash.h: Likewise.
12007         * cpplex.c: Likewise.
12008         * cpplib.h: Likewise.
12009         * df.h: Likewise.
12010         * diagnostic.c: Likewise.
12011         * diagnostic.h: Likewise.
12012         * dwarf2.h: Likewise.
12013
12014 2003-01-17  Stan Shebs  <shebs@apple.com>
12015
12016         * config/darwin-protos.h: Forward-declare struct cpp_reader.
12017
12018 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
12019
12020         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
12021         mistake in last checkin.
12022
12023 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
12024
12025         * et-forest.c: Fix comment typos.
12026         * et-forest.h: Likewise.
12027         * except.c: Likewise.
12028         * expr.c: Likewise.
12029         * flags.h: Likewise.
12030         * flow.c: Likewise.
12031         * gcc.c: Likewise.
12032         * gcse.c: Likewise.
12033         * genattrtab.c: Likewise.
12034         * genautomata.c: Likewise.
12035         * gengtype.c: Likewise.
12036         * genrecog.c: Likewise.
12037         * global.c: Likewise.
12038         * gthr-rtems.h: Likewise.
12039
12040 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12041
12042         * i386.c (x86_function_profiler): Fix format specifier.
12043
12044 2003-01-17  Richard Henderson  <rth@redhat.com>
12045
12046         * gengtype.c (walk_type): Allow paramN_is.
12047
12048 2003-01-17  Nick Clifton  <nickc@redhat.com>
12049
12050         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
12051
12052 2003-01-16  Richard Henderson  <rth@redhat.com>
12053
12054         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
12055
12056 2003-01-16  Richard Henderson  <rth@redhat.com>
12057
12058         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
12059         (alpha_next_sequence_number): Likewise.
12060         (alpha_this_literal_sequence_number): Likewise.
12061         (alpha_this_gpdisp_sequence_number): Likewise.
12062         (struct alpha_funcs, alpha_funcs_num): Likewise.
12063         (struct alpha_links): Fix branch merge error.
12064         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
12065
12066 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
12067
12068         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
12069         R. Ghazi.
12070
12071 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
12072
12073         * ifcvt.c: Fix comment typos.
12074         * lcm.c: Likewise.
12075         * libgcc2.c: Likewise.
12076         * local-alloc.c: Likewise.
12077         * loop.c: Likewise.
12078         * predict.c: Likewise.
12079         * ra-build.c: Likewise.
12080         * ra.c: Likewise.
12081         * ra-colorize.c: Likewise.
12082         * ra.h: Likewise.
12083         * ra-rewrite.c: Likewise.
12084         * regmove.c: Likewise.
12085         * reload.h: Likewise.
12086         * rtlanal.c: Likewise.
12087         * toplev.c: Likewise.
12088         * tree.h: Likewise.
12089         * unwind-dw2-fde-glibc.c: Likewise.
12090         * vmsdbgout.c: Likewise.
12091
12092 2003-01-16  Richard Henderson  <rth@redhat.com>
12093
12094         * dwarf2out.c (struct file_table): Remove.
12095         (FILE_TABLE_INCREMENT): Remove.
12096         (file_table): Make a varray; mark for GC.  Update all users.
12097         (file_table_last_lookup_index): Extract from struct file_table.
12098         (output_file_names): Fix unsigned compare warnings.
12099         (add_name_attribute): Remove inline marker.
12100         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
12101         (lookup_filename): Don't manage size of file_table.
12102         (init_file_table): Allocate file_table with GC.
12103         (dwarf2out_init): Don't record main_input_filename here.
12104         (dwarf2out_finish): Do it here instead.
12105
12106 2003-01-16  Bruce Korb  <bkorb@gnu.org>
12107
12108         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
12109
12110 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
12111
12112         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
12113         instead of rotldi3_mextr.
12114
12115 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
12116
12117         * haifa-sched.c (move_insn): Restore moving all schedule group.
12118         (set_priorities): Restore taking SCHED_GROUP_P into account.
12119
12120         * sched-deps.c (add_dependence): Restore processing the last group
12121         insn.
12122         (remove_dependence, group_leader): Restore the functions.
12123         (set_sched_group_p): Restore adding dependencies from previous insn
12124         in the group.
12125         (compute_forward_dependences): Restore usage of group_leader.
12126
12127         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
12128         account.
12129
12130         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
12131         account.
12132         (can_schedule_ready_p): Ditto.
12133         (add_branch_dependences): Restore skipping over the group insns.
12134
12135 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
12136
12137         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
12138         68HC12 pre/post inc/dec side effects.
12139
12140 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
12141
12142         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
12143
12144 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
12145
12146         * sh.md (mshflo_w_x): Fix description of operation.
12147
12148 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
12149
12150         * config/rs6000/rs6000.h: Mention Altivec registers in
12151         commentary.  Fix typo.
12152
12153 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
12154
12155         * config/rs6000/rs6000.md (movti_string): Remove clobber.
12156         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
12157         generate PARALLEL with clobber for TARGET_POWER.
12158
12159 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12160
12161         * ra-colorize.c (colorize_one_web): Initialize variable.
12162         * regmove.c (fixup_match_1): Likewise.
12163         * reload1.c (reload_as_needed): Likewise.
12164         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
12165
12166 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12167
12168         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
12169
12170 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12171
12172         * dbxout.c (lastfile, cwd): Fix `unused' warning.
12173         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
12174         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
12175         is_main_source, file_table, decl_die_table_in_use,
12176         abbrev_die_table_in_use, line_info_table_in_use,
12177         separate_line_info_table_in_use, pubname_table_in_use,
12178         arange_table_in_use, ranges_table_in_use,
12179         current_function_has_inlines): Likewise.
12180         * flow.c (life_analysis): Likewise.
12181         * genemit.c (gen_insn): Likewise.
12182         * protoize.c (cplus_suffix): Likewise.
12183
12184         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
12185         * arm.h (ROUND_UP_WORD): Likewise.
12186
12187         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
12188         warning.
12189         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
12190         init_emit_once): Likewise.
12191         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
12192         Likewise.
12193         * function.c (assign_stack_temp_for_type): Likewise.
12194         * loop.c (loop_invariant_p): Likewise.
12195         * recog.c (push_operand): Likewise.
12196         * regclass.c (init_reg_sets_1): Likewise.
12197         * reload.c (update_auto_inc_notes): Likewise.
12198         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
12199         * stmt.c (expand_asm_operands): Likewise.
12200         * stor-layout.c (start_record_layout): Likewise.
12201
12202 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
12203
12204         * config/c4x/c4x.md (epilogue): Correct last patch.
12205
12206 2003-01-15  Richard Henderson  <rth@redhat.com>
12207
12208         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
12209         also check that GP is being used.
12210         (alpha_find_lo_sum_using_gp): New.
12211         (alpha_does_function_need_gp): Use get_attr_usegp.
12212         * config/alpha/alpha-protos.h: Update.
12213         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
12214         as needed.
12215
12216 2003-01-15  Roger Sayle  <roger@eyesopen.com>
12217
12218         * gcse.c (one_cprop_pass): Change function arguments to take both
12219         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
12220         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
12221         (bypass_jumps): New function to perform separate jump bypassing pass.
12222         * rtl.h (bypass_jumps): Add function prototype.
12223         * timevar.def (TV_BYPASS): New timing variable.
12224         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
12225         (dump_file): New entry for the bypass RTL dump file.
12226         (rest_of_compilation): Insert new jump bypassing optimization
12227         pass after loop.
12228         * doc/passes.texi: Document new pass.
12229
12230 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
12231
12232         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
12233         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
12234         * pa.h (TARGET_SOM_SDEF): Define.
12235         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
12236
12237 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
12238
12239         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
12240         allocate 4-bytes of locals on 68HC11.
12241         (expand_epilogue): Likewise.
12242         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
12243
12244 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
12245
12246         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
12247         and -mshort-double to the assembler to specify the ABI.
12248         (LINK_SPEC): Likewise.
12249         (CPP_SPEC): Pass HCS12 specific define.
12250         (MASK_M68S12): New define.
12251         (TARGET_M68S12): Likewise.
12252         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
12253         (TARGET_VERSION): Update.
12254         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
12255         (LINK_SPEC): Update.
12256         (ASM_SPEC): Update.
12257         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
12258         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
12259
12260 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
12261
12262         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
12263         the return code.
12264
12265 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
12266
12267         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
12268         flag before setting it.
12269
12270 2003-01-15  Roger Sayle  <roger@eyesopen.com>
12271
12272         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
12273         when loop condition is known true, i.e.  "while (1) { ... }".
12274         (genrtl_for_stmt): Similarly for "for" statements.
12275
12276 2003-01-15  Roger Sayle  <roger@eyesopen.com>
12277
12278         * real.c (real_sqrt): Return a bool result indicating whether
12279         a floating point exception or trap should be raised.
12280         * real.h (real_sqrt): Update function prototype.
12281         * builtins.c (fold_builtin): Only fold non-trapping square
12282         roots unless we're ignoring errno and trapping math.
12283
12284 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
12285
12286         * expr.h (emit_conditional_add): Add PARAMS to declaration.
12287         * gengtype-lex.l (malloc, realloc): Move defines after include of
12288         system.h.  Remove duplicate include of system.h.
12289
12290 2003-01-15  Roger Sayle  <roger@eyesopen.com>
12291
12292         PR middle-end/9009
12293         * optabs.c (expand_unop):  When manipulating the FP sign bit
12294         using integer operations, account for targets with different
12295         integer and FP word orders.
12296         (expand_abs): Likewise.
12297
12298 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
12299
12300         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
12301         file extension in section name.
12302
12303 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
12304
12305         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
12306         constant offset.
12307
12308 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
12309
12310         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
12311         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
12312         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
12313         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
12314
12315 2003-01-15  Jan Hubicka  <jh@suse.cz>
12316
12317         PR f/9258
12318         * global.c (struct allocno): Add no_stack_reg.
12319         (global_conflicts): Set no_stack_reg.
12320         (find_reg): Use it.
12321
12322         * convert.c (convert_to_real): Fold - and abs only when profitable.
12323         * fold-const.c (fold): Fold truncates in - and abs.
12324
12325 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
12326
12327         Segher Boessenkool  <segher@koffie.nl>
12328
12329         * predict.c (real_inv_br_prob_base): New variable.
12330         (propagate_freq): Use multiply by reciprocal instead of
12331         division.  Don't divide by 1.0 at all.
12332         (estimate_bb_frequencies): Similar.
12333
12334 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
12335
12336         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
12337         * configure: Rebuilt.
12338
12339 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
12340
12341         * config/s390/s390.c (s390_safe_attr_type): New function.
12342         (s390_use_dfa_pipeline_interface): New function, return true for z900.
12343         (s390_issue_rate): New function.
12344         (s390_agen_dep_p): New function.
12345         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
12346         (s390_adjust_cost): Return 'cost' if new DFA is used.
12347         (s390_adjust_priority): Delete function.
12348         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
12349         * config/s390/s390.md (atype attribute): Attribute 'atype' default
12350         determined by 'op_type'.
12351         (type attribute): Added more type attributes.
12352         * config/s390/2064.md: New DFA description for z900 pipeline.
12353
12354 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
12355
12356         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
12357         forced to memory.  Fixes PR bootstrap/9036.
12358
12359         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
12360         to set $gp before the call.
12361
12362 2003-01-14  Richard Henderson  <rth@redhat.com>
12363
12364         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
12365         for force_const_mem.
12366
12367 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12368
12369         * genattr.c (main): Rearrange output to avoid prototype warning.
12370         * genautomata.c (transform_3): Fix ambiguous-else warning.
12371         * local-alloc.c (requires_inout): Add parentheses around
12372         assignment used as truth-value.
12373         * timevar.c: Move system includes above local includes.  Include
12374         toplev.h
12375         * Makefile.in (timevar.o): Depend on toplev.h.
12376
12377 2003-01-14  Denis Chertykov  <denisc@overta.ru>
12378
12379         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
12380         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
12381
12382         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
12383         attributes.
12384         (TARGET_ATTRIBUTE_TABLE): New macro.
12385         (valid_machine_type_attribute): Remove.
12386         (valid_machine_decl_attribute): Remove.
12387         (ip2k_handle_progmem_attribute): New function.
12388         (ip2k_handle_fndecl_attribute): New function.
12389
12390 2003-01-10  Andrew Haley  <aph@redhat.com>
12391
12392         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
12393         registers to be in correct order.  Add rip.
12394
12395 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
12396
12397         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
12398         (*iorsi3_and_lshiftrt_9_sb): Likewise.
12399
12400 2003-01-14  Jan Hubicka  <jh@suse.cz>
12401
12402         * convert.c (strip_float_extensions):  Look for narrowest type handling
12403         FP constants.
12404
12405         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
12406         float1 CMP float2.
12407         * convert.c (strip_float_extensions): Make global.
12408         * tree.h (strip_float_extensions): Declare.
12409
12410 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
12411
12412         * timevar.def: define TV_NAME_LOOKUP.
12413         * timevar.c (timevar_pop): Be verbose when aborting.
12414
12415 2003-01-13  Andreas Schwab  <schwab@suse.de>
12416
12417         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
12418         $(parsedir), just move the temporary file at the end.
12419         ($(parsedir)/gengtype-yacc.c): Likewise.
12420
12421 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
12422
12423         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
12424         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
12425         splitting.
12426         * configure: Rebuilt.
12427
12428 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12429
12430         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
12431         internal_mcount): Don't use PARAMS.
12432         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
12433         ISO C style.
12434         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
12435
12436 2003-01-13  Andreas Schwab  <schwab@suse.de>
12437
12438         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
12439         directive.
12440
12441 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
12442
12443         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
12444         (*iorsi3_and_lshiftrt_n_sb): Likewise.
12445
12446 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
12447
12448         PR c++/9264
12449         * c-lex.c (c_lex): Set the token value to error_mark_node for
12450         invalid numeric constants.
12451
12452 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12453
12454         * c-pch.c (asm_file_startpos): Change to `long'.
12455         (pch_init): Use ftell, not ftello.
12456         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
12457         Use `long' instead of `off_t'.
12458         (c_common_read_pch): Likewise.
12459         * ggc-common.c (gt_pch_save): Use long/ftell instead of
12460         off_t/ftello.
12461
12462 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
12463
12464         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
12465
12466 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
12467
12468         * arm-protos.h (struct cpp_reader): Add declaration.
12469
12470 2003-01-11  Jan Hubicka  <jh@suse.cz>
12471
12472         PR target/9068
12473         * i386.c (output_fp_compare): Fix typo.
12474
12475 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
12476
12477         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
12478
12479 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
12480
12481         * Makefile.in (parsedir): New variable.
12482         (docobjdir): New variable.
12483         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
12484         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
12485         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
12486         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
12487         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
12488         Use docobjdir.
12489         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
12490         objc.maintainer-clean): Use parsedir.
12491
12492         * varasm.c (struct constant_descriptor_rtx): Remove unused
12493         `label' field.
12494
12495         * toplev.c (documented_lang_options): Document -Winvalid-pch.
12496
12497 2003-01-10  Richard Henderson  <rth@redhat.com>
12498
12499         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
12500         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
12501
12502 2003-01-10  Richard Henderson  <rth@redhat.com>
12503
12504         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
12505         not INTEGRAL_MODE_P when widening extensions.
12506
12507 2003-01-10  Richard Henderson  <rth@redhat.com>
12508
12509         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
12510
12511 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
12512
12513         * ggc-page.c (ggc_collect): Avoid overflow computing
12514         min_expand.
12515
12516         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
12517         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
12518         Remove calls.
12519         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
12520
12521 2003-01-10  Jan Hubicka  <jh@suse.cz>
12522
12523         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
12524         with weird operands.
12525
12526 2003-01-10  Dale Johannesen <dalej@apple.com>
12527
12528         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
12529         parameters.  Call check_sibcall_argument_overlap if indicated.
12530         (check_sibcall_argument_overlap):  Add mark_stored_args_map
12531         parameter.  Don't mark parameter area as clobbered if not set.
12532         (expand_call):  Adjust calls to above.
12533
12534 2003-01-10 Kelley Cook <kelleycook@comcast.net>
12535
12536         * configure.in (linker read-only and read-write section mixing):
12537         Squelch some assembler warnings.
12538         * configure: Likewise.
12539
12540 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
12541
12542         * doc/invoke.texi: Document -mtune, delete -mcpu
12543         option for S/390 and zSeries.
12544         * config/s390/s390.c (s390_tune_string) New variable.
12545         (s390_cpu_string) Delete variable.
12546         (override_options): Use s390_tune_string instead of
12547         s390_cpu_string.
12548         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
12549
12550 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12551
12552         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
12553
12554 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
12555
12556         * jump.c (next_nonnote_insn_in_loop): New function.
12557         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
12558         next_nonnote_insn.
12559         (duplicate_loop_exit_test). Likewise.
12560
12561 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
12562
12563         Merge from pch-branch:
12564
12565         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
12566
12567         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
12568         load.
12569
12570         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
12571
12572         * cpplib.c (count_registered_pragmas): New function.
12573         (save_registered_pragmas): New function.
12574         (_cpp_save_pragma_names): New function.
12575         (restore_registered_pragmas): New function.
12576         (_cpp_restore_pragma_names): New function.
12577         * cpphash.h (_cpp_save_pragma_names): Prototype.
12578         (_cpp_restore_pragma_names): Likewise.
12579         * cpppch.c (struct save_macro_item): Split from save_macro_data.
12580         (struct save_macro_data): New field 'saved_pragmas'.
12581         (save_macros): Update for changes to struct save_macro_data.
12582         (cpp_prepare_state): Call _cpp_save_pragma_names, update
12583         for changes to struct save_macro_data.
12584         (cpp_read_state): Call _cpp_restore_pragma_names, update
12585         for changes to struct save_macro_data.
12586
12587         * cpppch.c (cpp_read_state): Restore the hashtable references
12588         in the cpp_reader.
12589
12590         * tree.h (built_in_decls): Mark for PCH.
12591
12592         * dbxout.c (lastfile): Don't mark for PCH.
12593
12594         * ggc.h: Document PCH calls into memory managers.
12595
12596         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
12597
12598         * doc/invoke.texi (Precompiled Headers): Document the
12599         directory form of PCH.
12600         * cppfiles.c (validate_pch): New function.
12601         (open_file_pch): Search suitably-named directories for PCH files.
12602
12603         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
12604
12605         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
12606         reorder options.
12607         (Type Information): Mention that the information is also
12608         used to implement PCH.
12609         * doc/passes.texi (Passes): Improve documentation of
12610         language-specific files.
12611
12612         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
12613
12614         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
12615         (struct walk_type_data): Add reorder_fn field.
12616         (walk_type): Process 'reorder' option.
12617         (write_types_process_field): Reorder parameters to gt_pch_note_object,
12618         call reorder_note_routine.
12619         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
12620         (ggc_wtd): Update for change to struct write_types_data.
12621         (pch_wtd): Likewise.
12622         * ggc.h (gt_pch_note_object): Reorder parameters.
12623         (gt_handle_reorder): New definition.
12624         (gt_pch_note_reorder): New prototype.
12625         * ggc-common.c (struct ptr_data): Add reorder_fn.
12626         (gt_pch_note_object): Reorder parameters.
12627         (gt_pch_note_reorder): New.
12628         (gt_pch_save): Call reorder_fn.
12629         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
12630
12631         * dbxout.c (cwd): Don't mark for PCH.
12632
12633         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
12634
12635         * gengtype.c (finish_root_table): Fix some warnings.
12636         (write_root): Handle TYPE_STRING.
12637         * ggc.h (gt_ggc_m_S): Add prototype.
12638         * stringpool.c (gt_ggc_m_S): New function.
12639
12640         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
12641
12642         * dwarf2out.c (dw2_string_counter): New.
12643         (AT_string_form): Use it.
12644         (same_dw_val_p): Update for removal of hashtable.h hash tables.
12645
12646         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
12647
12648         * dbxout.c: Include gt-dbxout.h.
12649         (lastfile): Mark for PCH/GGC.
12650         (cwd): Likewise.
12651         (struct typeinfo): Likewise.
12652         (typevec): Likewise.
12653         (typevec_len): Likewise.
12654         (next_type_number): Likewise.
12655         (struct dbx_file): Likewise.
12656         (current_file): Likewise.
12657         (next_file_number): Likewise.
12658         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
12659         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
12660         (dbxout_end_source_file): Don't free struct dbx_file.
12661         (dbxout_type): Use GGC to allocate typevec.
12662         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
12663         (GTFILES): Add dbxout.c.
12664         (gt-dbxout.h): New rule.
12665
12666         * Makefile.in (c-pch.o): Add debug.h as dependency.
12667         * c-pch.c: Include debug.h.
12668         (pch_init): Call start_source_file to keep nesting right.
12669         (c_common_read_pch): Add orig_name parameter.  Call
12670         start_source_file debug hook.  Call end_source_file debug hook.
12671         * c-common.h (c_common_read_pch): Update prototype.
12672         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
12673         callback.
12674         * cppfiles.c (struct include_file): Add new field `header_name'.
12675         (find_or_create_entry): Default it to `name'.
12676         (open_file_pch): Set it to the original header file searched for.
12677         (stack_include_file): Don't stack an empty buffer, just handle
12678         PCH files immediately.  Pass header_name field to read_pch callback.
12679
12680         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
12681
12682         * function.c (funcdef_no): Mark to be saved in a PCH.
12683
12684         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
12685
12686         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
12687
12688         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
12689
12690         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
12691
12692         * optabs.h (code_to_optab): Add GTY marker.
12693
12694         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
12695
12696         * Makefile.in (GTFILES): Add cpplib.h.
12697         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
12698         * c-decl.c (build_compound_literal): Don't use var_labelno.
12699         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
12700         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
12701         * varasm.c (const_labelno): Use gengtype to mark.
12702         (var_labelno): Likewise.
12703         (in_section): Likewise.
12704         (in_named_name): Likewise.
12705         (struct in_named_entry): Likewise.
12706         (in_named_htab): Likewise.
12707         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
12708         (init_varasm_once): Use GGC to allocate in_named_htab.
12709         * config/darwin.c (current_pic_label_num): Mark for PCH.
12710
12711         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
12712
12713         * ggc-simple.c (init_ggc_pch): New stub procedure.
12714         (ggc_pch_count_object): Likewise.
12715         (ggc_pch_total_size): Likewise.
12716         (ggc_pch_this_base): Likewise.
12717         (ggc_pch_alloc_object): Likewise.
12718         (ggc_pch_prepare_write): Likewise.
12719         (ggc_pch_write_object): Likewise
12720         (ggc_pch_finish): Likewise.
12721         (ggc_pch_read): Likewise.
12722
12723         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
12724
12725         * c-pch.c (c_common_write_pch): Write the macro definitions after
12726         the GCed data.
12727         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
12728         definitions after the GCed data.
12729         * cpplib.c (save_macros): New.
12730         (reset_ht): New.
12731         (cpp_write_pch_deps): Split out of cpp_write_pch.
12732         (cpp_write_pch_state): Split out of cpp_write_pch.
12733         (cpp_write_pch): Delete.
12734         (struct save_macro_data): Delete.
12735         (cpp_prepare_state): New.
12736         (cpp_read_state): Erase and restore initial macro definitions.
12737         * cpplib.h (struct save_macro_data): Forward-declare.
12738         (cpp_write_pch_deps): Prototype.
12739         (cpp_write_pch_state): Prototype.
12740         (cpp_write_pch): Delete prototype.
12741         (cpp_prepare_state): Prototype.
12742         (cpp_read_state): Add fourth argument.
12743
12744         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
12745
12746         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
12747         (write_array): Remove warning.
12748
12749         * gengtype.c (contains_scalar_p): New.
12750         (finish_root_table): Add the table to all languages, even if it's
12751         empty.
12752         (write_roots): Output gt_pch_scalar_rtab.
12753         * ggc-common.c (gt_pch_save): Write out scalars.
12754         (gt_pch_restore): Read scalars back.
12755
12756         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
12757         (struct page_entry): Delete pch_page field.
12758         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
12759         (clear_marks): Likewise.
12760         (sweep_pages): Likewise.
12761         (poison_pages): Likewise.
12762         (ggc_print_statistics): Likewise.
12763         (ggc_pch_read): Don't free objects read from a PCH.
12764         Properly set up in_use_p and page_tails.
12765
12766         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
12767
12768         * gengtype.c (struct write_types_data): New.
12769         (struct walk_type_data): Make `cookie' const; add extra
12770         prev_val item; add `orig_s' field.
12771         (walk_type): Update prev_val[3].
12772         (write_types_process_field): New.
12773         (write_func_for_structure): Take write_types_data structure.
12774         (write_types): New.
12775         (ggc_wtd): New.
12776         (pch_wtd): New.
12777         (write_types_local_process_field): New.
12778         (gc_mark_process_field): Delete.
12779         (write_local_func_for_structure): New.
12780         (gc_mark_func_name): Delete.
12781         (write_gc_types): Delete.
12782         (write_local): New.
12783         (finish_root_table): Don't include 'ggc_' in PFX.
12784         (write_root): Rename from write_root.  Fill pchw field of structures.
12785         (write_array): New.
12786         (write_roots): Rename from write_gc_roots.  Split out to write_array.
12787         Update to changes to other routines.  Write gt_pch_cache_rtab table.
12788         (main): Write PCH walking routines.
12789         * ggc-common.c: Include toplev.h, sys/mman.h.
12790         (ggc_mark_roots): For cache hashtables, also mark the hash table
12791         and the array of entries.
12792         (saving_htab): New.
12793         (struct ptr_data): New.
12794         (POINTER_HASH): New.
12795         (gt_pch_note_object): New.
12796         (saving_htab_hash): New.
12797         (saving_htab_eq): New.
12798         (struct traversal_state): New.
12799         (call_count): New.
12800         (call_alloc): New.
12801         (compare_ptr_data): New.
12802         (relocate_ptrs): New.
12803         (write_pch_globals): New.
12804         (struct mmap_info): New.
12805         (gt_pch_save): New.
12806         (gt_pch_restore): New.
12807         * ggc-page.c (ROUND_UP_VALUE): New.
12808         (ROUND_UP): New.
12809         (struct page_entry): Add field `pch_page'.
12810         (init_ggc): Use ROUND_UP.
12811         (struct ggc_pch_data): Declare.
12812         (init_ggc_pch): New.
12813         (ggc_pch_count_object): New.
12814         (ggc_pch_total_size): New.
12815         (ggc_pch_this_base): New.
12816         (ggc_pch_alloc_object): New.
12817         (ggc_pch_prepare_write): New.
12818         (ggc_pch_write_object): New.
12819         (ggc_pch_finish): New.
12820         (ggc_pch_read): New.
12821         * ggc.h (gt_pointer_operator): New.
12822         (gt_note_pointers): New.
12823         (gt_pch_note_object): New prototype.
12824         (gt_pointer_walker): New.
12825         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
12826         (LAST_GGC_ROOT_TAB): Update.
12827         (gt_pch_cache_rtab): Declare.
12828         (gt_pch_scalar_rtab): Declare.
12829         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
12830         (LAST_GGC_CACHE_TAB): Update.
12831         (gt_pch_save_stringpool): Declare.
12832         (gt_pch_restore_stringpool): Declare.
12833         (gt_pch_p_S): Declare.
12834         (gt_pch_n_S): Declare.
12835         (struct ggc_pch_data): Forward-declare.
12836         (init_ggc_pch): Declare.
12837         (ggc_pch_count_object): Declare.
12838         (ggc_pch_total_size): Declare.
12839         (ggc_pch_this_base): Declare.
12840         (ggc_pch_alloc_object): Declare.
12841         (ggc_pch_prepare_write): Declare.
12842         (ggc_pch_write_object): Declare.
12843         (ggc_pch_finish): Declare.
12844         (ggc_pch_read): Declare.
12845         (gt_pch_save): Declare.
12846         (gt_pch_restore): Declare.
12847         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
12848         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
12849         const_double_htab, mem_attrs_htab using GGC.
12850         * c-pch.c: Include ggc.h.
12851         (pch_init): Allow reading PCH file back.
12852         (c_common_write_pch): Call gt_pch_save.
12853         (c_common_read_pch): Call gt_pch_restore.
12854         * c-parse.in (init_reswords): Delete now-untrue comment.
12855         Allocate ridpointers using GGC.
12856         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
12857         calling expand_deferred_fns.
12858         * c-common.h (ridpointers): Mark for GTY machinery.
12859         * Makefile.in (stringpool.o): Update dependencies.
12860         (c-pch.o): Update dependencies.
12861         (ggc-common.o): Update dependencies.
12862         * stringpool.c: Include gt-stringpool.h.
12863         (gt_pch_p_S): New.
12864         (gt_pch_n_S): New.
12865         (struct string_pool_data): New.
12866         (spd): New.
12867         (gt_pch_save_stringpool): New.
12868         (gt_pch_restore_stringpool): New.
12869         * tree.c (init_ttree): Make type_hash_table allocated using GC.
12870
12871         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
12872
12873         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
12874         (output_mangled_typename): Don't pass size_t to printf.
12875
12876         * tree.h (union tree_type_symtab): Add tag to `address' field.
12877         (union tree_decl_u2): Add tag to 'i' field.
12878         * varasm.c (union rtx_const_un): Add tags to all fields.
12879         * gengtype.c (struct walk_type_data): New.
12880         (output_escaped_param): Take struct walk_type_data parameter.
12881         (write_gc_structure_fields): Delete.
12882         (walk_type): New.
12883         (write_gc_marker_routine_for_structure): Delete.
12884         (write_func_for_structure): New.
12885         (gc_mark_process_field): New.
12886         (gc_mark_func_name): New.
12887         (gc_counter): Delete.
12888         (write_gc_types): Use write_func_for_structure.
12889         (write_gc_roots): Use walk_type.
12890
12891         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
12892
12893         * ggc-common.c (ggc_mark_roots): Delete 'x'.
12894         (ggc_splay_dont_free): Fix warning about unused 'x'.
12895         (ggc_print_common_statistics): Remove warnings.
12896
12897         2002-10-01  Mike Stump  <mrs@apple.com>
12898
12899         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
12900         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
12901
12902         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
12903             Catherine Moore  <clm@redhat.com>
12904
12905         * Makefile (c-pch.o): Update dependencies.
12906         (LIBCPP_OBJS): Add cpppch.o.
12907         (cpppch.o): New.
12908         * c-common.c (c_common_init): Don't call pch_init here.
12909         * c-common.h (c_common_read_pch): Update prototype.
12910         * c-lex.c (c_common_parse_file): Call pch_init here.
12911         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
12912         (c_common_decode_option): Handle them.
12913         * c-pch.c: Include c-pragma.h.
12914         (save_asm_offset): Delete.
12915         (pch_init): Move contents of save_asm_offset into here, call
12916         cpp_save_state.
12917         (c_common_write_pch): Call cpp_write_pch.
12918         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
12919         cpp_valid_state.
12920         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
12921         * cppfiles.c (stack_include_file): Update for change to
12922         parameters of cb.read_pch.
12923         * cpphash.h (struct cpp_reader): Add `savedstate' field.
12924         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
12925         `restore_pch_deps' fields.
12926         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
12927         (cpp_save_state): Prototype.
12928         (cpp_write_pch): Prototype.
12929         (cpp_valid_state): Prototype.
12930         (cpp_read_state): Prototype.
12931         * cpppch.c: New file.
12932         * flags.h (version_flag): Remove prototype.
12933         * mkdeps.c (deps_save): New.
12934         (deps_restore): New.
12935         * mkdeps.h (deps_save): Prototype.
12936         (deps_restore): Prototype.
12937         * toplev.c (late_init_hook): Delete.
12938         (version_flag): Make static again.
12939         (compile_file): Don't call late_init_hook.
12940         * toplev.h (late_init_hook): Delete.
12941         * doc/cppopts.texi: Document -fpch-deps.
12942         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
12943
12944         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
12945
12946         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
12947         callers.
12948         (c_common_valid_pch): Rename from c_valid_pch, change callers.
12949         (c_common_read_pch): Rename from c_read_pch, change callers.
12950
12951         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
12952         a space between it and its argument.
12953
12954         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
12955
12956         * c-pch.c: New file.
12957         * toplev.h (late_init_hook): Declare.
12958         * toplev.c (late_init_hook): Define.
12959         (version_flag): Make globally visible.
12960         (compile_file): Call late_init_hook.
12961         (init_asm_output): Make output file seekable.
12962         * gcc.c (default_compilers): Update c-header rule.
12963         * flags.h (version_flag): Declare.
12964         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
12965         fields.
12966         * cppfiles.c (struct include_file): Add 'pch' field.
12967         (INCLUDE_PCH_P): New.
12968         (open_file_pch): New.
12969         (stack_include_file): Handle PCH files specially.
12970         (find_include_file): Call open_file_pch instead of open_file.
12971         (_cpp_read_file): Explain why open_file is used instead of
12972         open_file_pch.
12973         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
12974         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
12975         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
12976         in cpplib callbacks.
12977         * c-common.c (pch_file): Correct comment.
12978         (allow_pch): Define.
12979         (c_common_init): Call pch_init.
12980         * c-common.h (allow_pch): Declare.
12981         (pch_init): Declare.
12982         (c_valid_pch): Declare.
12983         (c_read_pch): Declare.
12984         (c_write_pch): Declare.
12985         * Makefile.in (c-pch.o): New.
12986         (C_AND_OBJC_OBJS): Add c-pch.o.
12987         * doc/invoke.texi (Precompiled Headers): Add index entries,
12988         complete truncated paragraph.
12989
12990         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
12991
12992         * c-common.c: (pch_file): Define.
12993         * c-common.h (pch_file): Declare.
12994         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
12995         (missing_arg): Require --output-pch= to have an argument.
12996         (c_common_decode_option): Handle --output-pch=.
12997         * gcc.c: Document new %V.
12998         (default_compilers): Handle compiling C header files.
12999         (do_spec_1): Implement %V.
13000         (main): Handle "gcc foo.h" without trying to run linker.
13001         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
13002         (Overall Options): Document what the driver does with header files,
13003         document new -x option possibilities.
13004         (Invoking G++): More documentation for PCH.
13005         (Precompiled Headers): New.
13006
13007         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
13008
13009         * ggc.h: Don't include varray.h.  Rearrange functions to be more
13010         organized.
13011         (ggc_add_root): Delete.
13012         (ggc_mark_rtx): Delete.
13013         (ggc_mark_tree): Delete.
13014         (struct ggc_statistics): Remove contents.
13015         * ggc-common.c: Remove unneeded includes.
13016         (struct ggc_root): Delete.
13017         (roots): Delete.
13018         (ggc_add_root): Delete.
13019         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
13020         (ggc_print_common_statistics): Remove most of the contents.
13021         * Makefile.in (GGC_H): No longer uses varray.h.
13022         (ggc-common.o): Update dependencies.
13023         (c-parse.o): Add varray.h to dependencies.
13024         (c-common.o): Add varray.h.
13025         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
13026         (mark_ident_hash): Rename to ggc_mark_stringpool.
13027         (init_stringpool): Don't use ggc_add_root.
13028         * c-parse.in: Include varray.h.
13029         * c-common.c: Include varray.h.
13030         * objc/Make-lang.in (objc-act.o): Add varray.h.
13031         * objc/objc-act.c: Include varray.h.
13032
13033         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
13034
13035         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
13036         (dw_cfi_oprnd1_desc): Likewise.
13037
13038         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
13039
13040         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
13041         move out of ifdef.
13042         (alpha_links): Use gengtype to mark; move out of ifdef.
13043         (mark_alpha_links_node): Delete.
13044         (mark_alpha_links): Delete.
13045         (alpha_need_linkage): Use GGC to allocate splay tree, struct
13046         alpha_links, strings.  Don't use ggc_add_root.
13047         * ggc-common.c (ggc_splay_alloc): New.
13048         (ggc_splay_dont_free): New.
13049         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
13050         (ggc_mark_tree): Likewise.
13051         (splay_tree_new_ggc): New.
13052         (ggc_splay_alloc): Declare.
13053         (ggc_splay_dont_free): Declare.
13054         * dwarf2asm.c: Include gt-dwarf2asm.h.
13055         (mark_indirect_pool_entry): Delete.
13056         (mark_indirect_pool): Delete.
13057         (indirect_pool): Use gengtype to mark.
13058         (dw2_force_const_mem): Don't use ggc_add_root.
13059         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
13060         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
13061         (gt-dwarf2asm.h): Depend on s-gtype.
13062
13063         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
13064
13065         * tree.h (union tree_type_symtab): Mark `die' field.
13066         * Makefile.in (dwarf2out.o): Update dependencies.
13067         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
13068         hash tables.
13069         (dw_cfi_oprnd1_desc): New function.
13070         (dw_cfi_oprnd2_desc): New function.
13071         (indirect_string_alloc): Delete.
13072         (debug_str_do_hash): New function.
13073         (debug_str_eq): New function.
13074         (mark_limbo_die_list): Delete.
13075         (dwarf2out_init): Don't call ggc_add_root.
13076
13077 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
13078
13079         The following changes are merged from itanium-sched-branch:
13080
13081         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
13082
13083         * doc/md.texi: Clarify assignment of units to automata description.
13084
13085         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
13086
13087         * genautomata.c (unit_decl): Remove members
13088         `the_same_automaton_unit' and
13089         `the_same_automaton_message_reported_p'.
13090         (process_unit_to_form_the_same_automaton_unit_lists,
13091         form_the_same_automaton_unit_lists_from_regexp,
13092         form_the_same_automaton_unit_lists, the_same_automaton_lists):
13093         Remove them.
13094         (annotation_message_reported_p): New global variable.
13095         (check_unit_distribution_in_reserv,
13096         check_regexp_units_distribution): New functions.
13097         (check_unit_distributions_to_automata): Rewrite it.
13098
13099         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
13100
13101         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
13102         Use continue instead of break if cycle is too big.
13103
13104         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
13105
13106         * genautomata.c (check_unit_distributions_to_automata): Output at
13107         most one message for a unit.
13108         (process_unit_to_form_the_same_automaton_unit_lists): Check
13109         automaton of units instead of units themself.
13110
13111         * doc/md.texi: Describe the constraint about assigning unit to
13112         automata.
13113
13114         2002-12-20  Jan Hubicka  <jH@suse.cz>
13115                     Vladimir Makarov  <vmakarov@redhat.com>
13116
13117         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
13118         and `in_set_p'.
13119         (gen_cpu_unit): Initialize the new members.
13120         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
13121         up `min_occ_cycle_num'.
13122         (evaluate_max_reserv_cycles): Change the function call.
13123         (CLEAR_BIT): New macro.
13124         (states_union, state_shift): Use the mask.
13125         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
13126         (form_reservs_matter): New function.
13127         (make_automaton): Call the function and use the mask.
13128         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
13129         account.
13130
13131         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
13132
13133         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
13134
13135         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
13136
13137         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
13138         for Itanium.
13139
13140         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
13141
13142         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
13143         default cpu.
13144
13145         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
13146                 2002-10-31  Dale Johannesen <dalej@apple.com>
13147
13148         * haifa-sched.c (find_set_reg_weight): New function.
13149         (find_insn_reg_weight): Use the new function.
13150         (schedule_block): Do sorting ready queue always
13151         after insn issue.
13152
13153         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
13154
13155         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
13156
13157         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
13158
13159         * haifa-sched.c (choice_entry): New structure.
13160         (choice_stack, cycle_issued_insns): New variables.
13161         (max_issue): Rewrite it.
13162         (choose_ready): Set up ready_try for unknown insns too.
13163         (schedule_block): Allocate and free choice_stack.  Set up
13164         and modify cycle_issued_insns.
13165
13166         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
13167         with and without filling the bundle.
13168         (bundling): Combine calls of issue_nops_and_insn.
13169
13170         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
13171
13172         * config/ia64/itanium1.md: New file.
13173
13174         * config/ia64/itanium2.md: New file.
13175
13176         * config/ia64/ia64.md: Move DFA descriptions into the new files.
13177         Remove the old pipeline description.
13178
13179         * config/ia64/ia64.c (ia64_override_options): Add aliases of
13180         itanium processor names.
13181
13182         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
13183
13184         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
13185         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
13186
13187         * config/ia64/ia64.md: Add descriptions for Itanium2.
13188
13189         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
13190
13191         * config/ia64/ia64.h (processor_type): New enumeration.
13192         (ia64_tune, ia64_tune_string): New external declarations.
13193         (TARGET_OPTIONS): Add option `tune='.
13194
13195         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
13196         variables.
13197         (ia64_override_options): Set up `ia64_tune'.
13198         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
13199         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
13200         (bundling): Add nops for MM-insns only for Itanium.
13201         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
13202         Itanium.
13203
13204         * config/ia64/ia64.md (cpu): New attribute.
13205         (DFA description): Enable it only for Itanium.
13206
13207         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
13208                     Richard Henderson  <rth@redhat.com>
13209
13210         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
13211         MASK_EARLY_STOP_BITS.
13212         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
13213         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
13214         `early-stop-bits'.
13215
13216         * config/ia64/ia64.c (ia64_dfa_new_cycle,
13217         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
13218         instead of TARGET_TUNE_STOP_BITS.
13219
13220         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
13221         `-mearly-stop-bits'.
13222
13223         * config/ia64/ia64.c (automata_option "v"): Comment it.
13224
13225         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
13226
13227         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
13228         New macros.
13229         (TARGET_SWITCHES): Add entries for the new option.
13230
13231         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
13232         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
13233         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
13234         global variables.
13235         (ia64_sched_reorder2): Set up `clocks'.
13236         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
13237         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
13238         queue when TARGET_TUNE_STOP_BITS.
13239         (bundling): Insert additional nops for MM-insns.
13240         (final_emit_insn_group_barriers): Add insertion of stop bits
13241         according `stops_p'.
13242         (ia64_reorg): Initiate the new varibales.
13243
13244         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
13245
13246         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
13247
13248         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
13249         insns at the end of block insn scheduling.
13250
13251         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
13252
13253         * sched-deps.c (remove_dependence, group_leader): Remove it.
13254         (add_dependence): Add dependence to group leader to.
13255         (set_sched_group_p): Add dependence to the first insn of the
13256         schedule group too.
13257         (sched_analyze_insn): Make dependence to jump as anti-dependence.
13258         Change true dependence by anti-dependence when
13259         `reg_pending_barrier'.
13260
13261         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
13262         add_branch_dependences): Ignore schedule groups.
13263
13264         * sched-ebb.c (init_ready_list): Ditto.
13265
13266         * (move_insn, set_priorities): Ditto.
13267
13268         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
13269         flag is clear after reload.
13270         (adjust_cost): Change cost only for output dependencies.
13271
13272         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
13273
13274         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
13275
13276         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
13277
13278         * target.h (gcc_target): Add member
13279         `dependencies_evaluation_hook'.
13280
13281         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
13282         macro.
13283         (TARGET_SCHED): Add initiatialization of the new member.
13284
13285         * sched-ebb.c: Include `target.h'.
13286         (schedule_ebb): Call `dependencies_evaluation_hook'.
13287
13288         * sched-rgn.c (schedule_region): Call
13289         `dependencies_evaluation_hook'.
13290
13291         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
13292         New macro.
13293         (ia64_dependencies_evaluation_hook): New function.
13294
13295         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
13296         Describe the new hook.
13297
13298         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
13299
13300         * target.h (gcc_target): Add members
13301         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
13302
13303         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
13304         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
13305         macros.
13306         (TARGET_SCHED): Add initiatialization of the new members.
13307
13308         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
13309         insn scheduling too.
13310         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
13311         initialize `ready_try'.
13312         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
13313         `dfa_new_cycle' says not to do it.
13314
13315         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
13316         bundling.
13317
13318         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
13319
13320         * config/ia64/ia64.c: Include `hashtab.h'.
13321         (ia64_first_cycle_multipass_dfa_lookahead_guard,
13322         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
13323         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
13324         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
13325         bundle_state_eq_p, insert_bundle_state,
13326         initiate_bundle_state_table, finish_bundle_state_table,
13327         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
13328         get_template, get_next_important_insn, bundling): New functions.
13329         (ia64_internal_sched_reorder): Remove it.
13330         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
13331         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
13332         (ia64_safe_itanium_requires_unit0): Remove it.
13333         (group_barrier_needed_p): Place group barrier right before a real
13334         insn.
13335         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
13336         Remove them.
13337         (bundle_name): New variable.
13338         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
13339         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
13340         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
13341         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
13342         temp_dfa_state, prev_cycle_state): New global variables.
13343         (insn_matches_slot, maybe_rotate, finish_last_head,
13344         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
13345         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
13346         find_best_packet, itanium_reorder, dump_current_packet,
13347         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
13348         (sched_data, sched_ready, sched_types): Remove them.
13349         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
13350         `init_insn_group_barriers'.
13351         (ia64_sched_reorder, ia64_sched_reorder2): Call
13352         ia64_dfa_sched_reorder.
13353         (ia64_variable_issue): Rewrite it.
13354         (bundle_state): New structure.
13355         (index_to_bundle_states, bundle_states_num,
13356         allocated_bundle_states_chain, free_bundle_state_chain): New
13357         global variables.
13358         (ia64_sched_finish): Add stop bits and call `bundling' after the
13359         2nd insn scheduling.
13360         (ia64_use_dfa_pipeline_interface): Return zero always.
13361         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
13362         insn scheduling.
13363         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
13364         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
13365         (ia64_reorg): Add bundling insns.
13366
13367         * doc/tm.texi
13368         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
13369         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
13370
13371         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
13372
13373         * config/ia64/ia64.md: Add Itanium1 DFA description.
13374         (itanium_class): Add `nop' and `pre_cycle'.  Add
13375         define_function_unit for `nop'.
13376         (nop): Change attribute `itanium_class'.
13377         (pre_cycle): New define_insn.
13378
13379         * config/ia64/ia64-protos.h (bundling_p): New external variable.
13380         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
13381         ia64_produce_address_p): New function prototypes.
13382
13383         * config/ia64/ia64.c (bundling_p): New global variable.
13384         (ia64_use_dfa_pipeline_interface,
13385         ia64_first_cycle_multipass_dfa_lookahead,
13386         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
13387         functions.
13388         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
13389         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
13390         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
13391         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
13392         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
13393         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
13394         (dfa_pre_cycle_insn): New variable.
13395
13396         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
13397
13398         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
13399         constructions.
13400
13401         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
13402         New function prototypes.
13403
13404         * genattrtab.c (main): Process the new constructions.
13405
13406         * genautomata.c (gen_presence_absence_set,
13407         process_presence_absence_names, process_presence_absence_patterns,
13408         add_presence_absence, check_absence_pattern_sets): Add parameter
13409         `final_p'.
13410         (unit_decl): Add new members `final_presence_list' and
13411         `final_absence_list'.
13412         (unit_pattern_rel_decl): Add new member `final_p'.
13413         (gen_final_presence_set, gen_final_absence_set): New functions.
13414         (process_decls): Use member `final_p'.
13415         (temp_reserv): New global variable.
13416         (reserv_sets_are_intersected): Add processing `final_presence_set'
13417         and `final_absence_set'.
13418         (initiate_states): Allocate `temp_reserv'.
13419         (unit_final_presence_set_table, unit_final_absence_set_table): New
13420         gloabal variables.
13421         (initiate_presence_absence_pattern_sets): Initiate them.
13422         (NDFA_to_DFA): Fix typo.
13423         (output_description): Output `final_presence_set' and
13424         `final_absence_set'.
13425
13426         * doc/md.texi (final_presence_set, final_absence_set): Describe
13427         them.
13428
13429         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
13430
13431         * genautomata.c (transform_3): Process a missing case (nothing on
13432         unit place).
13433
13434         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
13435
13436         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
13437         comments about queried units and the minimization.
13438
13439         * doc/md.texi: Ditto.
13440
13441         * genautomata.c (create_composed_state): Return nonzero if the new
13442         state has been created.
13443         (first_cycle_unit_presence): New function.
13444         (state_is_differed): Add new parameter.  Use the new function.
13445         Take queried units into account.
13446         (partition_equiv_class): Pass additional parameter to
13447         `state_is_differed'.
13448         (merge_states): Process composed states too.
13449         (build_automaton, create_automata, output_min_issue_delay_table,
13450         output_tables, output_statistics): Output more information.
13451         (output_reserved_units_table): Use function
13452         `first_cycle_unit_presence'.
13453         (output_tables): Output table of queried units even if the
13454         minimization is switched on.
13455         (write_automata): Output code for querying units even if the
13456         minimization is switched on.
13457
13458         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
13459
13460         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
13461         syntax of the constructions.
13462
13463         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
13464         extended syntax of the constructions.
13465
13466         * genautomata.c (unit_rel_decl): Rename it to
13467         `unit_pattern_rel_decl'.
13468         (pattern_set_el, pattern_reserv): New structures.
13469         (pattern_set_el_t, pattern_reserv_t): New types.
13470         (gen_presence_absence_set): New function.
13471         (process_presence_absence): Remove it.
13472         (process_presence_absence_names,
13473         process_presence_absence_patterns): New functions.
13474         (get_presence_absence_set): Remove it.
13475         (initiate_presence_absence_sets): Rename it on
13476         `initiate_presence_absence_pattern_sets'.  Use new function
13477         `form_reserv_sets_list'.
13478         (form_reserv_sets_list, check_presence_pattern_sets,
13479         check_absence_pattern_sets, output_pattern_set_el_list): New
13480         functions.
13481         (unit_decl): Change types of members `presence_list' and
13482         `absence_list'.
13483         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
13484         (decl): Change types of members `excl', `presence', and `absence'.
13485         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
13486         at the end of the vector.
13487         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
13488         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
13489         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
13490         (gen_presence_set, gen_absence_set): Use new function
13491         `gen_presence_absence_set'.
13492         (add_presence_absence): Process `pattern_list' instead of
13493         `source_list'.
13494         (process_decls): USe new functions
13495         `process_presence_absence_names' and
13496         `process_presence_absence_patterns'.
13497         (reserv_sets_are_intersected): Use new function
13498         `check_presence_pattern_sets'.
13499         (presence_set, absence_set): Remove them.
13500         (unit_presence_set_table, unit_absence_set_table): New global
13501         variables.
13502         (output_description): Use new function
13503         `output_pattern_set_el_list'.
13504         (generate): Use `initiate_presence_absence_pattern_sets'.
13505
13506         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
13507
13508         * genattr.c (main): Add output of prototype of new interface
13509         function `dfa_clean_insn_cache'.
13510
13511         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
13512         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
13513         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
13514         the generated code.
13515         (write_automata): Call the new function.
13516
13517 2003-01-09  Jan Hubicka  <jh@suse.cz>
13518
13519         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
13520         correctly.
13521
13522 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
13523
13524         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
13525
13526 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
13527
13528         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
13529         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
13530         (CONSTRAINT_LEN): Provide default definition.
13531         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
13532         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
13533         (EXTRA_CONSTRAINT_STR): Likewise.
13534         (REG_CLASS_FROM_CONSTRAINT): Define.
13535         * genoutput.c (check_constraint_len, constraint_len): New functions.
13536         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
13537         constraint / modifier.
13538         (gen_insn): Call check_constraint_len.
13539         * local-alloc.c (block_alloc): Update to use new macros / pass
13540         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
13541         * ra-build.c (handle_asm_insn): Likewise.
13542         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
13543         (constrain_operands, peep2_find_free_register): Likewise.
13544         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
13545         * regmove.c (find_matches): Likewise.
13546         * reload.c (push_secondary_reload, find_reloads): Likewise.
13547         (alternative_allows_memconst): Likewise.
13548         * reload1.c (maybe_fix_stack_asms): Likewise.
13549         (reload_cse_simplify_operands): Likewise.
13550         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
13551         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
13552         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
13553         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
13554         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
13555         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
13556
13557         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
13558
13559 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13560
13561         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
13562         length.
13563         (*extzv_1_r_h8300hs): Likewise.
13564         (*extzv_1_r_inv_h8300): Likewise.
13565         (*extzv_1_r_inv_h8300hs): Likewise.
13566
13567 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13568
13569         * config/h8300/h8300.h (PREDICATE_CODES): New.
13570
13571 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
13572
13573         * config/h8300/h8300.md (*addsi3_upper): New.
13574         (*iorsi3_shift): Likewise.
13575         (two splitters): Likewise.
13576         (*addsi3_shift): Likewise.
13577         (two splitters): Likewise.
13578
13579 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
13580
13581         * Makefile.in (optabs.o): Add dependency on basic-block.h.
13582         * basic-block.h (control_flow_insn_p): Fuction was exported.
13583         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
13584         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
13585         notes only when the region is contained in a single basic block.
13586
13587 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13588
13589         PR inline-asm/8832
13590         * tree.h (expand_asm): New prototype.
13591         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
13592         to do so.
13593         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
13594         down to expand_asm.
13595         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
13596         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
13597         (volatile_refs_p) [ASM_INPUT]: Likewise.
13598         (side_effects_p) [ASM_INPUT]: Likewise.
13599
13600 2003-01-09  Jan Hubicka  <jh@suse.cz>
13601
13602         * i386.md (*mul*): FIx constraints; remove confused comment; fix
13603         athlon_decode attributes
13604         (imul/k8 optimization peep2s): New.
13605
13606         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
13607         * i386.md (type attribute): Add ssecomi.
13608         (unit, memory, prefix attributes): Handle ssecomi.
13609         (cvt?2? patterns): Fix athlon_decode attribute
13610         (comi patterns): Set attribute to ssecomi.
13611
13612         PR target/8343
13613         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
13614
13615 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
13616
13617         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
13618         that match register_operands.
13619         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
13620         register_operand the default case.
13621
13622 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
13623
13624         PR c/8032
13625         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
13626         an empty element, do not advance the pointer to unfilled
13627         fields if there are pending initializers.
13628
13629 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
13630
13631         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
13632         (install-gcc-tooldir, install-cpp, installdirs,
13633         install-common, install-driver, install-info, install-man,
13634         install-headers, install-include-dir, install-headers-tar,
13635         install-headers-cpio, install-headers-cp, install-mkheaders,
13636         install-collect2, uninstall): Prepend $(DESTDIR) to
13637         destination paths in all (un)installation commands.
13638         (install-driver): Rewrite $(LN) commands to support DESTDIR
13639         with "ln" as well as with "ln -s".
13640         (installdirs): Simply use mkinstalldirs.
13641         (install-libgcc, install-multilib): Also pass DESTDIR.
13642         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
13643         installation destination variable ldir.
13644         * config/alpha/t-osf4, config/arm/t-netbsd,
13645         config/ia64/t-hpux, config/mips/t-iris5-6,
13646         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
13647         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
13648         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
13649         in the definition of SHLIB_INSTALL.
13650         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
13651         $(libsubdir) in the installation commands.
13652
13653 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
13654
13655         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
13656         non-optimizing compile.
13657         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
13658         compile.
13659
13660 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
13661
13662         * config/i386/i386.c (ix86_attribute_table): Add new attributes
13663         ms_struct and gcc_struct.
13664         (ix86_handle_struct_attribute): New function.
13665         (ix86_ms_bitfield_layout_p): Update to take new attributes
13666         into account.
13667         * doc/extend.texi: Document new attributes.
13668         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
13669
13670 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
13671
13672         PR optimization/8750
13673         * config/i386/i386.c (ix86_expand_prologue): Don't allow
13674         scheduling pass to move insns across __alloca call.
13675
13676 2003-01-08  Dale Johannesen  <dalej@apple.com>
13677
13678         * config/rs6000/rs6000.md:  Replace *store_multiple_string
13679         with *stmsi[3-8].
13680
13681 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
13682
13683         PR target/9210
13684         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
13685         Set SYMBOL_REF_FLAG on local data sym_ref.
13686
13687 2003-01-08  Dale Johannesen  <dalej@apple.com>
13688
13689         * function.c (assign_parms):  Don't set pretend_args_size if
13690           REG_PARM_STACK_SPACE.
13691           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
13692           pretend_args_size.
13693
13694 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
13695
13696         * gcc.hlp: Delete.
13697
13698 2003-01-09  Jan Hubicka  <jh@suse.cz>
13699
13700         * i386.c  (ix86_expand_int_addcc): Fix thinko.
13701
13702 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
13703
13704         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
13705         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
13706         as hook_bool_tree_hwi_hwi_tree_true.
13707         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
13708         (rs6000_emit_epilogue): Same.
13709         (rs6000_output_mi_thunk): Re-implement as RTL.
13710         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
13711         xcoffout_declare_function if any debugging enabled.
13712
13713 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
13714
13715         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
13716         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
13717         * config/mips/mips.h (enum processor_type): Rename
13718         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
13719         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
13720         Add PROCESSOR_M4K.
13721         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
13722         (ISA_MIPS32R2): New define.
13723         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
13724         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
13725         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
13726         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
13727         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
13728         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
13729         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
13730         compiling MIPS16 code.
13731         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
13732         comment.
13733         (ISA_HAS_SEB_SEH): New define.
13734         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
13735         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
13736         processor_type value renaming.  Add support for MIPS32R2.
13737         Clean up comments, and move "sb1" entry with other MIPS64 CPU
13738         entries.
13739         (override_options): Reimplement -mipsN option handling so that
13740         it will work correctly for -mips32r2.  Avoid branch-likely
13741         instructions on MIPS32R2.
13742         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
13743         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
13744         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
13745         (extendhisi2_hw, extendqisi2_hw): New.
13746         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
13747         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
13748         MIPS32R2, and MIPS64.
13749         (LINK_SPEC): Pass -mips32r2 to linker.
13750         * config/mips/t-isa3264: Built -mips32r2 multilibs.
13751         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
13752         for mips32r2 in the -march description.  Alphabetically sort
13753         CPU names in the -march description.  Add long-missed -mips32
13754         and -mips64 to MIPS option summary.
13755
13756         * config.gcc: Update copyright years to include 2003.
13757         * config/mips/mips.c: Likewise.
13758         * config/mips/mips.h: Likewise.
13759         * config/mips/mips.md: Likewise.
13760         * config/mips/netbsd.h: Likewise.
13761         * doc/invoke.texi: Likewise.
13762
13763 2003-01-08  Andreas Schwab  <schwab@suse.de>
13764
13765         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
13766         variable.
13767         * configure: Regenerated.
13768
13769 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13770
13771         * config/h8300/h8300.c (output_logical_op): Replace byte/word
13772         extraction of det with b0, b1, w0, w2, etc.
13773         (compute_logical_op_length): Likewise.
13774         (compute_logical_op_cc): Likewise.
13775
13776 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
13777
13778         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
13779         HIGH on all variants.
13780
13781 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
13782
13783         * Makefile.in (PARTITION_H): New.
13784         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
13785         * basic-block.h: Include hard-reg-set.h.
13786
13787 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
13788
13789         * arm.h (ENABLE_XF_PATTERNS): Delete.
13790         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
13791         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
13792         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
13793         (cmpxf_trap): Delete.
13794         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
13795
13796 2003-01-08  Jan Hubicka  <jh@suse.cz>
13797
13798         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
13799         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
13800         (add??cc): New expanders.
13801         * i386.c (expand_int_addcc): New function.
13802         * i386-protos.h (expand_int_addcc): Declare.
13803
13804         * alias.c (memory_modified_1): New static function.
13805         (memory_modified): New static varaible.
13806         (memory_modified_in_insn_p): New global function.
13807         * rtl.h (memory_modified_in_insn_p): Declare.
13808         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
13809         references.
13810
13811         * expr.h (emit_conditional_add): Declare.
13812
13813 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
13814
13815         PR other/8947
13816         * doc/invoke.texi (-malign-double): Explain that the option breaks
13817         binary compatibility.
13818
13819 2003-01-08  Andreas Schwab  <schwab@suse.de>
13820
13821         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
13822         should come from the generic *-*-linux* entry.
13823
13824 2003-01-07  Jan Hubicka  <jh@suse.cz>
13825
13826         * cselib.c (cselib_current_insn_in_libcall): New static variable.
13827         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
13828         we are inside libcall.
13829         * cselib.h (elt_loc_list): Add in_libcall.
13830         * gcse.c (do_local_cprop): Do not copy propagate using insns
13831         in libcalls.
13832
13833 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
13834
13835         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
13836         not normally affect to issue rate.
13837
13838 2003-01-07  Jan Hubicka  <jh@suse.cz>
13839
13840         * genopinit.c (optabs): Add addc_optab.
13841         * ifcvt.c (noce_try_store_flag): Rename to ...
13842         (noce_try_addcc): ... this one; handle generic conditional increment.
13843         (noce_process_if_block): Update noce_try_addcc call.
13844         * optabs.c (emit_conditional_add): New.
13845         (init_obtabs): Initialize addc_optab.
13846         * optabs.h (optab_index): Add OTI_addcc.
13847         (addcc_optab): New macro.
13848         * md.texi: Document addMcc
13849
13850         PR target/8322
13851         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
13852         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13853         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
13854
13855         * reload1.c (delete_output_reload): Avoid repeated attempts
13856         to delete insn.
13857
13858 2003-01-07  Andreas Schwab  <schwab@suse.de>
13859
13860         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
13861         Move --enable-initfini-array check ...
13862         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
13863         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
13864         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
13865         * configure: Rebuild.
13866
13867 2003-01-07  Richard Henderson  <rth@redhat.com>
13868
13869         * alias.c (find_base_value): Only use new_reg_base_value shortcut
13870         if the register is set once.
13871
13872 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
13873
13874         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
13875         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
13876         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
13877
13878 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
13879             Sunil Davasam  <sunil.k.davasam@intel.com>
13880
13881         PR libstdc++/9076
13882         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
13883         DW_CFA_same_value, read next and ignore.
13884
13885 2003-01-07  Richard Henderson  <rth@redhat.com>
13886
13887         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
13888
13889 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13890
13891         * cfg.c: Include alloc-pool.h
13892         (edge_pool): New pool.
13893         (bb_pool): New pool.
13894         (first_deleted_edge): Remove.
13895         (first_deleted_block): Remove.
13896         (init_flow): Alloc/free the pools.
13897         (free_edge): Use pools.
13898         (alloc_block): Ditto.
13899         (expunge_block): Ditto.
13900         (cached_make_edge): Ditto.
13901
13902         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
13903
13904 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
13905
13906         * et-forest.c: Include alloc-pool.h.
13907         (struct et_forest): Add node_pool and occur_pool.
13908         (et_forest_create): Create the new pools.
13909         (et_forest_delete): Delete them.
13910         (et_forest_add_node): Allocate and free using pools.
13911         (et_forest_add_edge): Ditto.
13912         (et_forest_remove_node): Ditto.
13913         (et_forest_remove_edge): Ditto.
13914
13915         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
13916
13917 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
13918
13919         * config/h8300/h8300.c (output_logical_op): Simplify and
13920         optimize the handling of SImode.
13921         * config/h8300/h8300.c (compute_logical_op_length): Update
13922         accordingly.
13923         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
13924
13925 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
13926
13927         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
13928         big-endian correction to indirect arguments too.
13929
13930 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13931
13932         Segher Boessenkool  <segher@koffie.nl>
13933
13934         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
13935         (alt_reg_names): Ditto, fix formatting.
13936         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
13937
13938 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13939
13940         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
13941         (output_logical_op): Constify intval and det.
13942         (compute_logical_length): Likewise.
13943         (compute_logical_cc): Likewise.
13944         (output_a_shift): Constify mask.
13945         (h8300_encode_label): Constify len.
13946
13947 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13948
13949         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
13950         (h8300_expand_epilogue): Likewise.
13951
13952 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
13953
13954         Segher Boessenkool  <segher@koffie.nl>
13955
13956         * config/rs6000/altivec.md: Remove spaces from assembler
13957         instruction argument lists.
13958
13959 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13960
13961         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
13962         c4x_assembler_function_p.
13963         (c4x_null_epilogue_p): Complement return value, all uses updated.
13964         (c4x_insert_attributes): Add naked.
13965         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
13966         * doc/extend.texi: Update C4x function attributes.
13967
13968 2003-01-06  Richard Henderson  <rth@redhat.com>
13969
13970         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
13971         properly when changing "local-ness".
13972         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
13973
13974 2003-01-06  Dale Johannesen  <dalej@apple.com>
13975
13976         * config/darwin-protos.h:  Add prototypes for new section functions.
13977
13978 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
13979
13980         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
13981         to EABI.
13982
13983 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
13984
13985         * hwint.h: If the current compiler has no 64-bit type at all,
13986         make HOST_WIDEST_INT 32 bits.
13987
13988 2003-01-06  Eric Christopher  <echristo@redhat.com>
13989
13990         * config/mips/mips.md (movdf_internal2): Fix constraints.
13991
13992 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
13993
13994         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
13995
13996 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
13997
13998         * config/mips/mips.md (leadi): Use dla rather than la.
13999
14000 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
14001
14002         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
14003         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
14004
14005 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14006
14007         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
14008         redefinition.
14009
14010 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14011
14012         * config/h8300/h8300.md (*extzv_8_23): New.
14013
14014 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
14015
14016         * pa64-hpux.h (JCR_SECTION_NAME): Define.
14017         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
14018         USE_EH_FRAME_REGISTRY when defining.
14019
14020 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
14021
14022         * config/h8300/h8300.c (output_a_shift): Do not output a
14023         variable shift.
14024         * config/h8300/h8300.md (two splitters): New.
14025
14026 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
14027
14028         * config/mips/mips.md: Disable the movstrsi define_split.
14029
14030 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14031
14032         * alloc-pool.c: Don't include "libiberty.h".
14033         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
14034         * convert.c (convert_to_real): Hide unused variable.
14035
14036 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14037
14038         * Makefile.in (gtyp-gen.h): Const-ify.
14039         * gcov-dump.c (tag_table): Likewise.
14040
14041 2003-01-04  Bruce Korb  <bkorb@gnu.org>
14042
14043         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
14044         of *both* the file name and the fix name.
14045
14046 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
14047
14048         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
14049         collect2.
14050         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
14051         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
14052         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
14053         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
14054         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
14055         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
14056         elfos.h.
14057         (EH_FRAME_IN_DATA_SECTION): Delete define.
14058         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
14059         (STARTFILE_SPEC): Use crtbegin.o.
14060         (ENDFILE_SPEC): Use crtend.o.
14061         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
14062         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
14063         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
14064         DTOR_LIST_BEGIN): Define.
14065         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
14066         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
14067         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
14068
14069 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
14070
14071         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
14072         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
14073         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
14074         Cleanup handling of replacement text.
14075         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
14076
14077 2003-01-04  Bruce Korb  <bkorb@gnu.org>
14078
14079         * fixinc/tests/base/math.h: removed obsolete results
14080         * fixinc/tests/base/stdlib.h: ditto
14081         * fixinc/tests/base/sys/param.h: ditto
14082         * fixinc/tests/base/sys/stat.h: ditto
14083         * fixinc/tests/base/time.h: ditto
14084         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
14085         * fixinc/tests/base/sys/byteorder.h: ditto
14086         * fixinc/inclhack.def: Remove superfluous backslashes
14087
14088 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
14089
14090         * config/h8300/h8300-protos.h: Add prototypes for
14091         the new functions defined below.
14092         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
14093         define.
14094         (dosize): Emit RTL instead of assembly code.
14095         (push): Likewise.
14096         (pop): Likewise.
14097         (h8300_output_function_prologue): Remove.
14098         (h8300_expand_prologue): New.
14099         (h8300_expand_epilogue): New.
14100         (h8300_output_function_epilogue): Do only the reset of
14101         pragma_saveall.
14102         * config/h8300/h8300.md (push_h8300): New.
14103         (push_h8300hs): Likewise.
14104         (pop_h8300): Likewise.
14105         (pop_h8300hs): Likewise.
14106         (*stm_h8300s_2): Change the name to stm_h8300s_2.
14107         (*stm_h8300s_3): Change the name to stm_h8300s_3.
14108         (*stm_h8300s_4): Change the name to stm_h8300s_4.
14109         (*ldm_h8300s_2): New.
14110         (*ldm_h8300s_3): Likewise.
14111         (*ldm_h8300s_4): Likewise.
14112         (return): Likewise.
14113         (*return_1): Likewise.
14114         (prologue): Likewise.
14115         (epilogue): Likewise.
14116         (monitor_prologue): Likewise.
14117
14118 2003-01-03  Dale Johannesen  <dalej@apple.com>
14119
14120         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
14121           machopic_picsymbol_stub1.
14122           (EXTRA_SECTION_FUNCTIONS):  Ditto.
14123         * rs6000/rs6000.c:  Update copyright.
14124           (machopic_output_stub):  Use them.  Remove an insn from stub code.
14125
14126 2003-01-02  Jason Merrill  <jason@redhat.com>
14127
14128         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
14129
14130         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
14131         static/external decls.
14132
14133         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
14134         outermost scope.
14135         * c-decl.c (c_make_fname_decl): Push the decls there, too.
14136
14137 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
14138
14139         * config/h8300/h8300-protos.h: Add a prototype for
14140         h8300_current_function_interrupt_function_p.
14141         * config/h8300/h8300.c (interrupt_handler): Remove.
14142         (os_task): Likewise.
14143         (monitor): Likewise.
14144         (pragma_interrupt): New.
14145         (WORD_REG_USED): Use
14146         h8300_current_function_interrupt_function_p.
14147         (dosize): Likewise.
14148         (h8300_output_function_prologue): Likewise.
14149         Do not set interrupt_handler, os_task, monitor.
14150         (h8300_output_function_prologue): Use
14151         h8300_current_function_interrupt_function_p.
14152         Do not set interrupt_handler, os_task, monitor.
14153         (h8300_current_function_interrupt_function_p): New.
14154         (h8300_pr_interrupt): Set pragma_interrupt.
14155         (h8300_insert_attributes): Reset pragma_interrupt.
14156
14157 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
14158
14159         * doc/install.texi (Configuration): Fix markup for reference to
14160         gcc/config.gcc.
14161
14162 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14163
14164         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
14165         (*iorhi3_two_qi): Likewise.
14166         (*iorsi3_zexthi): Likewise.
14167         (*xorhi3_zextqi): Likewise.
14168         (*xorsi3_zexthi): Likewise.
14169         (*xorsi3_zextqi): Likewise.
14170
14171 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
14172
14173         * config/h8300/h8300.c (stack_pointer_operand): New.
14174         (const_int_gt_2_operand): Likewise.
14175         (const_int_ge_8_operand): Likewise.
14176         * config/h8300/h8300.md (a splitter): Likewise.
14177         (a peephole2): Likewise.
14178         * config/h8300/h8300-protos.h: Add prototypes for the new
14179         functions above.
14180
14181 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
14182
14183         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
14184         objc/objc-act.h: Fix copyright years.
14185
14186 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
14187
14188         * doc/passes.texi: Fix documentation for -fssa-ccp
14189
14190 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
14191
14192         * gccbug.in: Update for new categories.
14193
14194 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
14195
14196         * config/h8300/h8300.md: Reorder some patterns.
14197
14198 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
14199
14200         * config/h8300/h8300.c (output_logical_op): Fix a warning.
14201
14202 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
14203
14204         * config/darwin-protos.h, config/c4x/c4x-protos.h,
14205         config/cris/cris-protos.h, config/i370/i370-protos.h,
14206         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
14207         config/v850/v850-protos.h: Use struct, and don't conditionally
14208         compile on GCC_C_PRAGMA_H.
14209
14210 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
14211
14212         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
14213         * config/h8300/h8300-protos.h: Likewise.
14214         * config/sh/sh-protos.h: Likewise.
14215
14216 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
14217
14218         * config/arm/arm-protos.h: Use struct cpp_reader instead of
14219         cpp_reader.
14220         * config/h8300/h8300-protos.h: Likewise.
14221         * config/sh/sh-protos.h: Likewise.
14222
14223 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
14224
14225         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
14226         arm_pr_long_calls_off): Use struct.
14227         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
14228         : Similarly.
14229         Don't include cpplib.h.
14230         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
14231         sh_pr_nosave_low_regs): Similarly.
14232
14233 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
14234
14235         * config/h8300/h8300.c: Include cpplib.h.
14236
14237 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
14238
14239         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
14240           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
14241           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
14242           "GCC" in the copyright header.
14243
14244 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
14245
14246         * c-pragma.c (c_register_pragma): New.
14247         (init_pragma): Use it.
14248         * c-pragma.h (cpp_register_pragma): Don't declare.
14249         (c_register_pragma): New.
14250         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
14251         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
14252         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
14253         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
14254         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
14255         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
14256         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
14257         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
14258         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
14259         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
14260         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
14261         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
14262
14263 See ChangeLog.8 for earlier changes.